jdk/src/solaris/classes/sun/nio/fs/UnixNativeDispatcher.java
changeset 3065 452aaa2899fc
parent 2057 3acf8e5e2ca0
child 5506 202f599c92aa
--- a/jdk/src/solaris/classes/sun/nio/fs/UnixNativeDispatcher.java	Fri Jun 26 18:39:45 2009 -0700
+++ b/jdk/src/solaris/classes/sun/nio/fs/UnixNativeDispatcher.java	Sat Jun 27 21:46:53 2009 +0100
@@ -542,8 +542,17 @@
      */
     static native byte[] strerror(int errnum);
 
-    // initialize field IDs
-    private static native void initIDs();
+    // indicates if openat, unlinkat, etc. is supported
+    private static final boolean hasAtSysCalls;
+    static boolean supportsAtSysCalls() {
+        return hasAtSysCalls;
+    }
+
+    // initialize syscalls and fieldIDs
+    private static native int init();
+
+    // flags returned by init to indicate capabilities
+    private static final int HAS_AT_SYSCALLS = 0x1;
 
     static {
         AccessController.doPrivileged(new PrivilegedAction<Void>() {
@@ -551,6 +560,8 @@
                 System.loadLibrary("nio");
                 return null;
         }});
-        initIDs();
+        int flags = init();
+
+        hasAtSysCalls = (flags & HAS_AT_SYSCALLS) > 0;
     }
 }