summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/main/java/com/yahoo/io/NativeC.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/io/NativeC.java')
-rw-r--r--vespajlib/src/main/java/com/yahoo/io/NativeC.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/io/NativeC.java b/vespajlib/src/main/java/com/yahoo/io/NativeC.java
new file mode 100644
index 00000000000..7dbf4015bcf
--- /dev/null
+++ b/vespajlib/src/main/java/com/yahoo/io/NativeC.java
@@ -0,0 +1,25 @@
+package com.yahoo.io;
+
+import com.sun.jna.LastErrorException;
+import com.sun.jna.Native;
+import com.sun.jna.Platform;
+
+class NativeC {
+ private final static Throwable initException = loadLibrary();
+ private static Throwable loadLibrary() {
+ if (Platform.isLinux()) {
+ try {
+ Native.register(Platform.C_LIBRARY_NAME);
+ } catch (Throwable e) {
+ return e;
+ }
+ } else {
+ return new RuntimeException("Platform is unsúpported. Only supported on linux.");
+ }
+ return null;
+ }
+ static Throwable init() {
+ return initException;
+ }
+ static native int posix_fadvise(int fd, long offset, long len, int flag) throws LastErrorException;
+}