public void testLookupGlobalVariable() { NativeLibrary lib = NativeLibrary.getInstance("testlib"); Pointer global = lib.getGlobalVariableAddress("test_global"); assertNotNull("Test variable not found", global); final int MAGIC = 0x12345678; assertEquals("Wrong value for library global variable", MAGIC, global.getInt(0)); global.setInt(0, MAGIC + 1); assertEquals("Library global variable not updated", MAGIC + 1, global.getInt(0)); }
@Override public void fromNative(Runtime runtime, Pointer memory, long offset) { switch (runtime.findType(typeAlias).getNativeType()) { case SCHAR: case UCHAR: value = memory.getByte(offset); break; case SSHORT: case USHORT: value = memory.getShort(offset); break; case SINT: case UINT: value = memory.getInt(offset); break; case SLONG: case ULONG: value = memory.getLong(offset); break; case SLONGLONG: case ULONGLONG: value = memory.getLongLong(offset); break; case ADDRESS: value = memory.getAddress(offset); break; case FLOAT: value = memory.getFloat(offset); break; case DOUBLE: value = memory.getDouble(offset); break; default: throw new UnsupportedOperationException("unsupported type: " + typeAlias); } }
public int h_errno() { return h_errnoPtr.getInt(0); }