]> gitweb.factorcode.org Git - factor.git/blob - vm/alien.hpp
Merge Phil Dawes' VM work
[factor.git] / vm / alien.hpp
1 namespace factor
2 {
3
4 PRIMITIVE(displaced_alien);
5 PRIMITIVE(alien_address);
6
7 PRIMITIVE(alien_signed_cell);
8 PRIMITIVE(set_alien_signed_cell);
9 PRIMITIVE(alien_unsigned_cell);
10 PRIMITIVE(set_alien_unsigned_cell);
11 PRIMITIVE(alien_signed_8);
12 PRIMITIVE(set_alien_signed_8);
13 PRIMITIVE(alien_unsigned_8);
14 PRIMITIVE(set_alien_unsigned_8);
15 PRIMITIVE(alien_signed_4);
16 PRIMITIVE(set_alien_signed_4);
17 PRIMITIVE(alien_unsigned_4);
18 PRIMITIVE(set_alien_unsigned_4);
19 PRIMITIVE(alien_signed_2);
20 PRIMITIVE(set_alien_signed_2);
21 PRIMITIVE(alien_unsigned_2);
22 PRIMITIVE(set_alien_unsigned_2);
23 PRIMITIVE(alien_signed_1);
24 PRIMITIVE(set_alien_signed_1);
25 PRIMITIVE(alien_unsigned_1);
26 PRIMITIVE(set_alien_unsigned_1);
27 PRIMITIVE(alien_float);
28 PRIMITIVE(set_alien_float);
29 PRIMITIVE(alien_double);
30 PRIMITIVE(set_alien_double);
31 PRIMITIVE(alien_cell);
32 PRIMITIVE(set_alien_cell);
33
34 PRIMITIVE(dlopen);
35 PRIMITIVE(dlsym);
36 PRIMITIVE(dlclose);
37 PRIMITIVE(dll_validp);
38
39 PRIMITIVE(vm_ptr);
40
41 VM_C_API char *alien_offset(cell object, factorvm *vm);
42 VM_C_API char *unbox_alien(factorvm *vm);
43 VM_C_API void box_alien(void *ptr, factorvm *vm);
44 VM_C_API void to_value_struct(cell src, void *dest, cell size, factorvm *vm);
45 VM_C_API void box_value_struct(void *src, cell size,factorvm *vm);
46 VM_C_API void box_small_struct(cell x, cell y, cell size,factorvm *vm);
47 VM_C_API void box_medium_struct(cell x1, cell x2, cell x3, cell x4, cell size,factorvm *vm);
48
49 }