105 lines
4.8 KiB
C
105 lines
4.8 KiB
C
/*
|
|
* spigot.h - calculate pi and e by spigot algorithm
|
|
*
|
|
* Written by Shiro Kawai (shiro@acm.org)
|
|
* I put this program in public domain. Use it as you like.
|
|
*/
|
|
|
|
extern ScmObj size_of_int8();
|
|
extern ScmObj size_of_uint8();
|
|
extern ScmObj size_of_int16();
|
|
extern ScmObj size_of_uint16();
|
|
extern ScmObj size_of_int32();
|
|
extern ScmObj size_of_uint32();
|
|
extern ScmObj size_of_int64();
|
|
extern ScmObj size_of_uint64();
|
|
extern ScmObj size_of_char();
|
|
extern ScmObj size_of_unsigned_char();
|
|
extern ScmObj size_of_short();
|
|
extern ScmObj size_of_unsigned_short();
|
|
extern ScmObj size_of_int();
|
|
extern ScmObj size_of_unsigned_int();
|
|
extern ScmObj size_of_long();
|
|
extern ScmObj size_of_unsigned_long();
|
|
extern ScmObj size_of_float();
|
|
extern ScmObj size_of_double();
|
|
extern ScmObj size_of_string();
|
|
extern ScmObj size_of_pointer();
|
|
extern ScmObj size_of_void();
|
|
extern ScmObj shared_object_load(ScmString* path);
|
|
extern ScmObj pointer_null();
|
|
extern ScmObj is_pointer_null();
|
|
extern ScmObj pointer_allocate(int size);
|
|
extern ScmObj pointer_address(ScmObj object);
|
|
extern ScmObj is_pointer(ScmObj pointer);
|
|
extern ScmObj pointer_free(ScmObj pointer);
|
|
|
|
extern ScmObj pointer_set_int8(ScmObj pointer, int offset, int8_t value);
|
|
extern ScmObj pointer_set_uint8(ScmObj pointer, int offset, uint8_t value);
|
|
extern ScmObj pointer_set_int16(ScmObj pointer, int offset, int16_t value);
|
|
extern ScmObj pointer_set_uint16(ScmObj pointer, int offset, uint16_t value);
|
|
extern ScmObj pointer_set_int32(ScmObj pointer, int offset, int32_t value);
|
|
extern ScmObj pointer_set_uint32(ScmObj pointer, int offset, uint32_t value);
|
|
extern ScmObj pointer_set_int64(ScmObj pointer, int offset, int64_t value);
|
|
extern ScmObj pointer_set_uint64(ScmObj pointer, int offset, uint64_t value);
|
|
extern ScmObj pointer_set_char(ScmObj pointer, int offset, char value);
|
|
extern ScmObj pointer_set_unsigned_char(ScmObj pointer, int offset, unsigned char value);
|
|
extern ScmObj pointer_set_short(ScmObj pointer, int offset, short value);
|
|
extern ScmObj pointer_set_unsigned_short(ScmObj pointer, int offset, unsigned short value);
|
|
extern ScmObj pointer_set_int(ScmObj pointer, int offset, int value);
|
|
extern ScmObj pointer_set_unsigned_int(ScmObj pointer, int offset, unsigned int value);
|
|
extern ScmObj pointer_set_long(ScmObj pointer, int offset, long value);
|
|
extern ScmObj pointer_set_unsigned_long(ScmObj pointer, int offset, unsigned long value);
|
|
extern ScmObj pointer_set_float(ScmObj pointer, int offset, float value);
|
|
extern ScmObj pointer_set_double(ScmObj pointer, int offset, double value);
|
|
extern ScmObj pointer_set_pointer(ScmObj pointer, int offset, ScmObj value);
|
|
|
|
extern ScmObj pointer_get_int8(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_uint8(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_int16(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_uint16(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_int32(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_uint32(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_int64(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_uint64(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_char(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_unsigned_char(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_short(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_unsigned_short(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_int(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_unsigned_int(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_long(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_unsigned_long(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_float(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_double(ScmObj pointer, int offset);
|
|
extern ScmObj pointer_get_pointer(ScmObj pointer, int offset);
|
|
|
|
extern ScmObj string_to_pointer(ScmObj string);
|
|
extern ScmObj pointer_to_string(ScmObj pointer);
|
|
extern ScmObj pffi_dlerror();
|
|
extern ScmObj pffi_dlsym(ScmObj shared_object, ScmObj c_name);
|
|
extern ScmObj internal_ffi_call(ScmObj nargs, ScmObj rtype, ScmObj atypes, ScmObj fn, ScmObj rvalue, ScmObj avalues);
|
|
|
|
extern ScmObj get_ffi_type_int8();
|
|
extern ScmObj get_ffi_type_uint8();
|
|
extern ScmObj get_ffi_type_int16();
|
|
extern ScmObj get_ffi_type_uint16();
|
|
extern ScmObj get_ffi_type_int32();
|
|
extern ScmObj get_ffi_type_uint32();
|
|
extern ScmObj get_ffi_type_int64();
|
|
extern ScmObj get_ffi_type_uint64();
|
|
extern ScmObj get_ffi_type_char();
|
|
extern ScmObj get_ffi_type_unsigned_char();
|
|
extern ScmObj get_ffi_type_short();
|
|
extern ScmObj get_ffi_type_unsigned_short();
|
|
extern ScmObj get_ffi_type_int();
|
|
extern ScmObj get_ffi_type_unsigned_int();
|
|
extern ScmObj get_ffi_type_long();
|
|
extern ScmObj get_ffi_type_unsigned_long();
|
|
extern ScmObj get_ffi_type_float();
|
|
extern ScmObj get_ffi_type_double();
|
|
extern ScmObj get_ffi_type_void();
|
|
extern ScmObj get_ffi_type_pointer();
|
|
|
|
extern void Scm_Init_gauchelib(void);
|