2004-09-19 17:39:28 -04:00
|
|
|
typedef struct {
|
|
|
|
CELL header;
|
2006-02-19 20:53:18 -05:00
|
|
|
CELL alien;
|
|
|
|
CELL displacement;
|
2005-04-09 18:30:46 -04:00
|
|
|
bool expired;
|
2004-09-19 17:39:28 -04:00
|
|
|
} ALIEN;
|
|
|
|
|
2005-04-09 18:30:46 -04:00
|
|
|
INLINE ALIEN* untag_alien_fast(CELL tagged)
|
2004-09-19 17:39:28 -04:00
|
|
|
{
|
|
|
|
return (ALIEN*)UNTAG(tagged);
|
|
|
|
}
|
|
|
|
|
2006-02-19 20:53:18 -05:00
|
|
|
ALIEN *make_alien(CELL delegate, CELL displacement);
|
2004-12-25 05:49:30 -05:00
|
|
|
|
2005-06-28 23:50:23 -04:00
|
|
|
void primitive_expired(void);
|
2005-04-09 18:30:46 -04:00
|
|
|
void primitive_displaced_alien(void);
|
|
|
|
void primitive_alien_address(void);
|
|
|
|
|
2005-09-03 14:48:25 -04:00
|
|
|
void* alien_offset(CELL object);
|
|
|
|
|
2005-12-12 18:51:45 -05:00
|
|
|
void primitive_alien_to_string(void);
|
|
|
|
void primitive_string_to_alien(void);
|
|
|
|
|
2006-02-19 20:53:18 -05:00
|
|
|
void fixup_alien(ALIEN* d);
|
|
|
|
void collect_alien(ALIEN* d);
|
2005-04-09 18:30:46 -04:00
|
|
|
|
2006-02-19 20:53:18 -05:00
|
|
|
DLLEXPORT void *unbox_alien(void);
|
|
|
|
DLLEXPORT void box_alien(CELL ptr);
|
2005-04-09 18:30:46 -04:00
|
|
|
|
2005-03-28 23:45:13 -05:00
|
|
|
void primitive_alien_signed_cell(void);
|
|
|
|
void primitive_set_alien_signed_cell(void);
|
|
|
|
void primitive_alien_unsigned_cell(void);
|
|
|
|
void primitive_set_alien_unsigned_cell(void);
|
|
|
|
void primitive_alien_signed_8(void);
|
|
|
|
void primitive_set_alien_signed_8(void);
|
|
|
|
void primitive_alien_unsigned_8(void);
|
|
|
|
void primitive_set_alien_unsigned_8(void);
|
|
|
|
void primitive_alien_signed_4(void);
|
|
|
|
void primitive_set_alien_signed_4(void);
|
|
|
|
void primitive_alien_unsigned_4(void);
|
|
|
|
void primitive_set_alien_unsigned_4(void);
|
|
|
|
void primitive_alien_signed_2(void);
|
|
|
|
void primitive_set_alien_signed_2(void);
|
|
|
|
void primitive_alien_unsigned_2(void);
|
|
|
|
void primitive_set_alien_unsigned_2(void);
|
|
|
|
void primitive_alien_signed_1(void);
|
|
|
|
void primitive_set_alien_signed_1(void);
|
|
|
|
void primitive_alien_unsigned_1(void);
|
|
|
|
void primitive_set_alien_unsigned_1(void);
|
2005-05-05 03:12:37 -04:00
|
|
|
void primitive_alien_float(void);
|
|
|
|
void primitive_set_alien_float(void);
|
|
|
|
void primitive_alien_double(void);
|
|
|
|
void primitive_set_alien_double(void);
|
2006-02-06 01:43:59 -05:00
|
|
|
|
2006-02-20 14:27:45 -05:00
|
|
|
DLLEXPORT void unbox_value_struct(void *dest, CELL size);
|
2006-03-10 22:16:46 -05:00
|
|
|
DLLEXPORT void box_value_struct(void *src, CELL size);
|