16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 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 */ 27 28 import java.lang.invoke.MethodHandles; 29 import java.nicl.*; 30 import java.nicl.types.*; 31 import java.nicl.metadata.*; 32 33 public class GlobalVariable { 34 @NativeHeader 35 static interface globvar { 36 @C(file="dummy", line=1, column=1, USR="c:@F@init") 37 @NativeType(layout="()V", ctype="dummy", size=1) 38 @CallingConvention(value=1) 39 public abstract void init(); 40 41 @C(file="dummy", line=1, column=1, USR="c:@global_boolean") 42 @NativeType(layout="B", ctype="dummy", size=1, name="global_boolean") 43 public abstract boolean global_boolean$get(); 44 public abstract void global_boolean$set(boolean arg); 45 public abstract Pointer<Boolean> global_boolean$ptr(); 46 47 @C(file="dummy", line=1, column=1, USR="c:@global_i8") 48 @NativeType(layout="c", ctype="dummy", size=1, name="global_i8") 49 public abstract byte global_i8$get(); 50 public abstract void global_i8$set(byte arg); 51 public abstract Pointer<Byte> global_i8$ptr(); 52 53 @C(file="dummy", line=1, column=1, USR="c:@global_i16") 54 @NativeType(layout="s", ctype="dummy", size=2, name="global_i16") 55 public abstract short global_i16$get(); 56 public abstract void global_i16$set(short arg); 57 public abstract Pointer<Short> global_i16$ptr(); 58 59 @C(file="dummy", line=1, column=1, USR="c:@global_i32") 60 @NativeType(layout="i", ctype="dummy", size=4, name="global_i32") 61 public abstract int global_i32$get(); 62 public abstract void global_i32$set(int arg); 63 public abstract Pointer<Integer> global_i32$ptr(); 64 65 @C(file="dummy", line=1, column=1, USR="c:@global_i64") 66 @NativeType(layout="l", ctype="dummy", size=8, name="global_i64") 67 public abstract long global_i64$get(); 68 public abstract void global_i64$set(long arg); 69 public abstract Pointer<Long> global_i64$ptr(); 70 71 @C(file="dummy", line=1, column=1, USR="c:@global_f32") 72 @NativeType(layout="f", ctype="dummy", size=4, name="global_f32") 73 public abstract float global_f32$get(); 74 public abstract void global_f32$set(float arg); 75 public abstract Pointer<Float> global_f32$ptr(); 76 77 @C(file="dummy", line=1, column=1, USR="c:@global_d64") 78 @NativeType(layout="d", ctype="dummy", size=8, name="global_d64") 79 public abstract double global_d64$get(); 80 public abstract void global_d64$set(double arg); 81 public abstract Pointer<Double> global_d64$ptr(); 82 83 @NativeType(layout="[i]", ctype="dummy", size=4, isRecordType=true) 84 @C(file="dummy", line=47, column=11, USR="C:@S@MyStruct") 85 static interface MyStruct extends Struct<MyStruct> { 86 @Offset(offset=0l) 87 @C(file="dummy", line=47, column=11, USR="c:@SA@MyStruct@FI@i") 88 @NativeType(layout="i", ctype="int", size=4l) 89 int i$get(); 90 void i$set(int i); 91 } 92 93 @C(file="dummy", line=1, column=1, USR="c:@global_struct") 94 @NativeType(layout="[i]", ctype="dummy", size=4, name="global_struct") 95 public abstract MyStruct global_struct$get(); 96 public abstract void global_struct$set(MyStruct arg); 97 public abstract Pointer<MyStruct> global_struct$ptr(); 98 } 99 100 private final globvar i; 101 { 102 i = Libraries.bind(globvar.class, Libraries.loadLibrary(MethodHandles.lookup(), "GlobalVariable")); 103 i.init(); 104 } 105 106 public void testboolean() { 107 // boolean 108 assertTrue(i.global_boolean$get()); 109 assertTrue(i.global_boolean$ptr().get()); 110 111 i.global_boolean$set(false); 112 113 assertFalse(i.global_boolean$get()); 114 assertFalse(i.global_boolean$ptr().get()); | 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 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 */ 27 28 import java.lang.invoke.MethodHandles; 29 import java.nicl.*; 30 import java.nicl.types.*; 31 import java.nicl.metadata.*; 32 33 public class GlobalVariable { 34 @NativeHeader 35 static interface globvar { 36 @NativeLocation(file="dummy", line=1, column=1, USR="c:@F@init") 37 @NativeType(layout="()V", ctype="dummy") 38 public abstract void init(); 39 40 @NativeLocation(file="dummy", line=1, column=1, USR="c:@global_boolean") 41 @NativeType(layout="B", ctype="dummy", name="global_boolean") 42 public abstract boolean global_boolean$get(); 43 public abstract void global_boolean$set(boolean arg); 44 public abstract Pointer<Boolean> global_boolean$ptr(); 45 46 @NativeLocation(file="dummy", line=1, column=1, USR="c:@global_i8") 47 @NativeType(layout="c", ctype="dummy", name="global_i8") 48 public abstract byte global_i8$get(); 49 public abstract void global_i8$set(byte arg); 50 public abstract Pointer<Byte> global_i8$ptr(); 51 52 @NativeLocation(file="dummy", line=1, column=1, USR="c:@global_i16") 53 @NativeType(layout="s", ctype="dummy", name="global_i16") 54 public abstract short global_i16$get(); 55 public abstract void global_i16$set(short arg); 56 public abstract Pointer<Short> global_i16$ptr(); 57 58 @NativeLocation(file="dummy", line=1, column=1, USR="c:@global_i32") 59 @NativeType(layout="i", ctype="dummy", name="global_i32") 60 public abstract int global_i32$get(); 61 public abstract void global_i32$set(int arg); 62 public abstract Pointer<Integer> global_i32$ptr(); 63 64 @NativeLocation(file="dummy", line=1, column=1, USR="c:@global_i64") 65 @NativeType(layout="l", ctype="dummy", name="global_i64") 66 public abstract long global_i64$get(); 67 public abstract void global_i64$set(long arg); 68 public abstract Pointer<Long> global_i64$ptr(); 69 70 @NativeLocation(file="dummy", line=1, column=1, USR="c:@global_f32") 71 @NativeType(layout="f", ctype="dummy", name="global_f32") 72 public abstract float global_f32$get(); 73 public abstract void global_f32$set(float arg); 74 public abstract Pointer<Float> global_f32$ptr(); 75 76 @NativeLocation(file="dummy", line=1, column=1, USR="c:@global_d64") 77 @NativeType(layout="d", ctype="dummy", name="global_d64") 78 public abstract double global_d64$get(); 79 public abstract void global_d64$set(double arg); 80 public abstract Pointer<Double> global_d64$ptr(); 81 82 @NativeLocation(file="dummy", line=47, column=11, USR="C:@S@MyStruct") 83 @NativeStruct("[i]") 84 static interface MyStruct extends Struct<MyStruct> { 85 @Offset(offset=0l) 86 @NativeLocation(file="dummy", line=47, column=11, USR="c:@SA@MyStruct@FI@i") 87 @NativeType(layout="i", ctype="int") 88 int i$get(); 89 void i$set(int i); 90 } 91 92 @NativeLocation(file="dummy", line=1, column=1, USR="c:@global_struct") 93 @NativeType(layout="[i]", ctype="dummy", name="global_struct") 94 public abstract MyStruct global_struct$get(); 95 public abstract void global_struct$set(MyStruct arg); 96 public abstract Pointer<MyStruct> global_struct$ptr(); 97 } 98 99 private final globvar i; 100 { 101 i = Libraries.bind(globvar.class, Libraries.loadLibrary(MethodHandles.lookup(), "GlobalVariable")); 102 i.init(); 103 } 104 105 public void testboolean() { 106 // boolean 107 assertTrue(i.global_boolean$get()); 108 assertTrue(i.global_boolean$ptr().get()); 109 110 i.global_boolean$set(false); 111 112 assertFalse(i.global_boolean$get()); 113 assertFalse(i.global_boolean$ptr().get()); |