< prev index next >

test/jdk/java/nicl/System/UnixSystem.java

Print this page




  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /*
  25  * @test
  26  * @modules java.base/jdk.internal.misc
  27  */
  28 
  29 import java.io.File;
  30 import java.io.FileOutputStream;
  31 import java.lang.invoke.MethodHandles;
  32 import java.nicl.*;
  33 import java.nicl.types.*;
  34 import java.nicl.metadata.*;
  35 
  36 public class UnixSystem {
  37     @NativeHeader
  38     static interface system {
  39         @C(file="dummy", line=1, column=1, USR="c:@F@getpid")
  40         @NativeType(layout="()i", ctype="dummy", size=1)
  41         @CallingConvention(value=1)
  42         public abstract int getpid();
  43 
  44         @C(file="dummy", line=1, column=1, USR="c:@F@snprintf")
  45         @NativeType(layout="(p:clp:c*)i", ctype="dummy", size=1)
  46         @CallingConvention(value=1)
  47         public abstract int snprintf(Pointer<Byte> buf, long size, Pointer<Byte> fmt, Object... args);
  48 
  49         @C(file="dummy", line=1, column=1, USR="c:@F@strerror")
  50         @NativeType(layout="(i)p:c", ctype="dummy", size=1)
  51         @CallingConvention(value=1)
  52         public abstract Pointer<Byte> strerror(int errno);
  53 
  54         @C(file="dummy", line=1, column=1, USR="c:@errno")
  55         @NativeType(layout="i", ctype="dummy", size=4)
  56         public abstract int errno$get();
  57 
  58         @C(file="dummy", line=1, column=1, USR="c:@environ")
  59         @NativeType(layout="p:p:V", ctype="dummy", size=8, name="environ")
  60         public abstract Pointer<Pointer<Byte>> environ$get();
  61 
  62         public abstract Pointer<Pointer<Pointer<Byte>>> environ$ptr();
  63     }
  64 
  65     @NativeHeader
  66     static interface LinuxSystem {
  67         @C(file="dummy", line=1, column=1, USR="c:@F@__xstat")
  68         @NativeType(layout="(ip:cp:[iiiiiiiiiiiii])i", ctype="dummy", size=1)
  69         @CallingConvention(value=1)
  70         public abstract int __xstat(int ver, Pointer<Byte> path, Pointer<stat> buf);
  71 
  72         @NativeType(layout="[iiiiiiiiiiiii]", ctype="dummy", size=144, isRecordType=true)
  73         @C(file="dummy", line=47, column=11, USR="C:@S@MyStruct")
  74         static interface stat extends Struct<stat> {
  75             @Offset(offset=384l)
  76             @C(file="dummy", line=47, column=11, USR="c:@SA@stat@st_size")
  77             @NativeType(layout="i", ctype="off_t", size=4l)
  78             int st_size$get();
  79             void st_size$set(int i);
  80         }
  81     }
  82 
  83     @NativeHeader
  84     static interface MacOSXSystem {
  85         @C(file="dummy", line=1, column=1, USR="c:@F@stat")
  86         @NativeType(layout="(p:cp:[iSSQIIi[ll][ll][ll][ll]qqiIIi2q])i", ctype="dummy", size=1)
  87         @CallingConvention(value=1)
  88         public abstract int stat$INODE64(Pointer<Byte> path, Pointer<stat> buf);
  89 
  90 
  91         @NativeType(layout="[iSSQIIi[ll][ll][ll][ll]qqiIIi2q]", ctype="dummy", size=144, isRecordType=true)
  92         @C(file="dummy", line=47, column=11, USR="C:@S@MyStruct")
  93         static interface stat extends Struct<stat> {
  94             @Offset(offset=768l)
  95             @C(file="dummy", line=47, column=11, USR="c:@SA@stat@st_size")
  96             @NativeType(layout="l", ctype="off_t", size=4l)
  97             long st_size$get();
  98             void st_size$set(long i);
  99         }
 100     }
 101 
 102     private static final String OS = System.getProperty("os.name");
 103 
 104     public void testGetpid() {
 105         system i = Libraries.bind(MethodHandles.lookup(), system.class);
 106 
 107         long actual = i.getpid();
 108         long expected = ProcessHandle.current().pid();
 109 
 110         if (actual != expected) {
 111             throw new RuntimeException("Actual pid: " + actual + " does not match expected pid: " + expected);
 112         }
 113     }
 114 
 115     private static String lowerAndSprintf(system i, String fmt, Object... args) {
 116         System.err.println("lowerAndSprintf fmt=" + fmt);




  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 /*
  25  * @test
  26  * @modules java.base/jdk.internal.misc
  27  */
  28 
  29 import java.io.File;
  30 import java.io.FileOutputStream;
  31 import java.lang.invoke.MethodHandles;
  32 import java.nicl.*;
  33 import java.nicl.types.*;
  34 import java.nicl.metadata.*;
  35 
  36 public class UnixSystem {
  37     @NativeHeader
  38     static interface system {
  39         @NativeLocation(file="dummy", line=1, column=1, USR="c:@F@getpid")
  40         @NativeType(layout="()i", ctype="dummy")

  41         public abstract int getpid();
  42 
  43         @NativeLocation(file="dummy", line=1, column=1, USR="c:@F@snprintf")
  44         @NativeType(layout="(p:clp:c*)i", ctype="dummy")

  45         public abstract int snprintf(Pointer<Byte> buf, long size, Pointer<Byte> fmt, Object... args);
  46 
  47         @NativeLocation(file="dummy", line=1, column=1, USR="c:@F@strerror")
  48         @NativeType(layout="(i)p:c", ctype="dummy")

  49         public abstract Pointer<Byte> strerror(int errno);
  50 
  51         @NativeLocation(file="dummy", line=1, column=1, USR="c:@errno")
  52         @NativeType(layout="i", ctype="dummy")
  53         public abstract int errno$get();
  54 
  55         @NativeLocation(file="dummy", line=1, column=1, USR="c:@environ")
  56         @NativeType(layout="p:p:V", ctype="dummy", name="environ")
  57         public abstract Pointer<Pointer<Byte>> environ$get();
  58 
  59         public abstract Pointer<Pointer<Pointer<Byte>>> environ$ptr();
  60     }
  61 
  62     @NativeHeader
  63     static interface LinuxSystem {
  64         @NativeLocation(file="dummy", line=1, column=1, USR="c:@F@__xstat")
  65         @NativeType(layout="(ip:cp:[iiiiiiiiiiiii])i", ctype="dummy")

  66         public abstract int __xstat(int ver, Pointer<Byte> path, Pointer<stat> buf);
  67 
  68         @NativeLocation(file="dummy", line=47, column=11, USR="C:@S@MyStruct")
  69         @NativeStruct("[iiiiiiiiiiiii]")
  70         static interface stat extends Struct<stat> {
  71             @Offset(offset=384l)
  72             @NativeLocation(file="dummy", line=47, column=11, USR="c:@SA@stat@st_size")
  73             @NativeType(layout="i", ctype="off_t")
  74             int st_size$get();
  75             void st_size$set(int i);
  76         }
  77     }
  78 
  79     @NativeHeader
  80     static interface MacOSXSystem {
  81         @NativeLocation(file="dummy", line=1, column=1, USR="c:@F@stat")
  82         @NativeType(layout="(p:cp:[iSSQIIi[ll][ll][ll][ll]qqiIIi2q])i", ctype="dummy")

  83         public abstract int stat$INODE64(Pointer<Byte> path, Pointer<stat> buf);
  84 
  85 
  86         @NativeLocation(file="dummy", line=47, column=11, USR="C:@S@MyStruct")
  87         @NativeStruct("[iSSQIIi[ll][ll][ll][ll]qqiIIi2q]")
  88         static interface stat extends Struct<stat> {
  89             @Offset(offset=768l)
  90             @NativeLocation(file="dummy", line=47, column=11, USR="c:@SA@stat@st_size")
  91             @NativeType(layout="l", ctype="off_t")
  92             long st_size$get();
  93             void st_size$set(long i);
  94         }
  95     }
  96 
  97     private static final String OS = System.getProperty("os.name");
  98 
  99     public void testGetpid() {
 100         system i = Libraries.bind(MethodHandles.lookup(), system.class);
 101 
 102         long actual = i.getpid();
 103         long expected = ProcessHandle.current().pid();
 104 
 105         if (actual != expected) {
 106             throw new RuntimeException("Actual pid: " + actual + " does not match expected pid: " + expected);
 107         }
 108     }
 109 
 110     private static String lowerAndSprintf(system i, String fmt, Object... args) {
 111         System.err.println("lowerAndSprintf fmt=" + fmt);


< prev index next >