53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
CELL allot_alien(CELL delegate, CELL displacement);
 | 
						|
 | 
						|
DECLARE_PRIMITIVE(displaced_alien);
 | 
						|
DECLARE_PRIMITIVE(alien_address);
 | 
						|
 | 
						|
DLLEXPORT void *alien_offset(CELL object);
 | 
						|
 | 
						|
void fixup_alien(F_ALIEN* d);
 | 
						|
 | 
						|
DLLEXPORT void *unbox_alien(void);
 | 
						|
DLLEXPORT void box_alien(void *ptr);
 | 
						|
 | 
						|
DECLARE_PRIMITIVE(alien_signed_cell);
 | 
						|
DECLARE_PRIMITIVE(set_alien_signed_cell);
 | 
						|
DECLARE_PRIMITIVE(alien_unsigned_cell);
 | 
						|
DECLARE_PRIMITIVE(set_alien_unsigned_cell);
 | 
						|
DECLARE_PRIMITIVE(alien_signed_8);
 | 
						|
DECLARE_PRIMITIVE(set_alien_signed_8);
 | 
						|
DECLARE_PRIMITIVE(alien_unsigned_8);
 | 
						|
DECLARE_PRIMITIVE(set_alien_unsigned_8);
 | 
						|
DECLARE_PRIMITIVE(alien_signed_4);
 | 
						|
DECLARE_PRIMITIVE(set_alien_signed_4);
 | 
						|
DECLARE_PRIMITIVE(alien_unsigned_4);
 | 
						|
DECLARE_PRIMITIVE(set_alien_unsigned_4);
 | 
						|
DECLARE_PRIMITIVE(alien_signed_2);
 | 
						|
DECLARE_PRIMITIVE(set_alien_signed_2);
 | 
						|
DECLARE_PRIMITIVE(alien_unsigned_2);
 | 
						|
DECLARE_PRIMITIVE(set_alien_unsigned_2);
 | 
						|
DECLARE_PRIMITIVE(alien_signed_1);
 | 
						|
DECLARE_PRIMITIVE(set_alien_signed_1);
 | 
						|
DECLARE_PRIMITIVE(alien_unsigned_1);
 | 
						|
DECLARE_PRIMITIVE(set_alien_unsigned_1);
 | 
						|
DECLARE_PRIMITIVE(alien_float);
 | 
						|
DECLARE_PRIMITIVE(set_alien_float);
 | 
						|
DECLARE_PRIMITIVE(alien_double);
 | 
						|
DECLARE_PRIMITIVE(set_alien_double);
 | 
						|
DECLARE_PRIMITIVE(alien_cell);
 | 
						|
DECLARE_PRIMITIVE(set_alien_cell);
 | 
						|
 | 
						|
DLLEXPORT void to_value_struct(CELL src, void *dest, CELL size);
 | 
						|
DLLEXPORT void box_value_struct(void *src, CELL size);
 | 
						|
DLLEXPORT void box_small_struct(CELL x, CELL y, CELL size);
 | 
						|
 | 
						|
INLINE F_DLL *untag_dll(CELL tagged)
 | 
						|
{
 | 
						|
	type_check(DLL_TYPE,tagged);
 | 
						|
	return (F_DLL*)UNTAG(tagged);
 | 
						|
}
 | 
						|
 | 
						|
DECLARE_PRIMITIVE(dlopen);
 | 
						|
DECLARE_PRIMITIVE(dlsym);
 | 
						|
DECLARE_PRIMITIVE(dlclose);
 |