manual2.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. import _cffi_backend
  2. ffi = _cffi_backend.FFI(b"manual2",
  3. _version = 0x2601,
  4. _types = b'\x00\x00\x01\x0D\x00\x00\x07\x01\x00\x00\x00\x0F\x00\x00\x00\x09\x00\x00\x00\x0B\x00\x00\x01\x03',
  5. _globals = (b'\xff\xff\xff\x0bAA',0,b'\xff\xff\xff\x0bBB',-1,b'\xff\xff\xff\x0bCC',2,b'\xff\xff\xff\x1fFOO',0x9999999999999999,b'\x00\x00\x00#close',0,b'\x00\x00\x05#stdout',0),
  6. _struct_unions = ((b'\x00\x00\x00\x03\x00\x00\x00\x00point_s',b'\x00\x00\x01\x11\xff\xff\xff\xffx',b'\x00\x00\x01\x11\xff\xff\xff\xffy'),),
  7. _enums = (b'\x00\x00\x00\x04\x00\x00\x00\x07myenum_e\x00AA,BB,CC',),
  8. _typenames = (b'\x00\x00\x00\x01myint_t',),
  9. )
  10. # trying it out
  11. lib = ffi.dlopen(None)
  12. assert lib.AA == 0
  13. assert lib.BB == -1
  14. assert lib.FOO == 0x9999999999999999
  15. x = lib.close(-42)
  16. assert x == -1
  17. print lib.stdout
  18. print ffi.new("struct point_s *")
  19. print ffi.offsetof("struct point_s", "x")
  20. print ffi.offsetof("struct point_s", "y")
  21. print ffi.new("struct point_s[CC]")
  22. assert ffi.sizeof("struct point_s[CC]") == 2 * ffi.sizeof("struct point_s")
  23. print ffi.cast("enum myenum_e", 2)
  24. print ffi.cast("myint_t", -2)
  25. assert ffi.typeof("myint_t") == ffi.typeof("int")
  26. del ffi, lib