71 |
#define scm_vtable_index_printer 2 /* A printer for this struct type. */ |
#define scm_vtable_index_printer 2 /* A printer for this struct type. */ |
72 |
#define scm_vtable_offset_user 3 /* Where do user fields start? */ |
#define scm_vtable_offset_user 3 /* Where do user fields start? */ |
73 |
|
|
74 |
typedef size_t (*scm_t_struct_free) (scm_t_bits * vtable, scm_t_bits * data); |
typedef void (*scm_t_struct_free) (scm_t_bits * vtable, scm_t_bits * data); |
75 |
|
|
76 |
#define SCM_STRUCTF_MASK (0xFFF << 20) |
#define SCM_STRUCTF_MASK (0xFFF << 20) |
77 |
#define SCM_STRUCTF_ENTITY (1L << 30) /* Indicates presence of proc slots */ |
#define SCM_STRUCTF_ENTITY (1L << 30) /* Indicates presence of proc slots */ |
107 |
|
|
108 |
|
|
109 |
|
|
110 |
SCM_API scm_t_bits * scm_alloc_struct (int n_words, int n_extra, char * who); |
SCM_API scm_t_bits * scm_alloc_struct (int n_words, int n_extra, |
111 |
SCM_API size_t scm_struct_free_0 (scm_t_bits * vtable, scm_t_bits * data); |
const char *what); |
112 |
SCM_API size_t scm_struct_free_light (scm_t_bits * vtable, scm_t_bits * data); |
SCM_API void scm_struct_free_0 (scm_t_bits * vtable, scm_t_bits * data); |
113 |
SCM_API size_t scm_struct_free_standard (scm_t_bits * vtable, scm_t_bits * data); |
SCM_API void scm_struct_free_light (scm_t_bits * vtable, scm_t_bits * data); |
114 |
SCM_API size_t scm_struct_free_entity (scm_t_bits * vtable, scm_t_bits * data); |
SCM_API void scm_struct_free_standard (scm_t_bits * vtable, scm_t_bits * data); |
115 |
|
SCM_API void scm_struct_free_entity (scm_t_bits * vtable, scm_t_bits * data); |
116 |
SCM_API SCM scm_make_struct_layout (SCM fields); |
SCM_API SCM scm_make_struct_layout (SCM fields); |
117 |
SCM_API SCM scm_struct_p (SCM x); |
SCM_API SCM scm_struct_p (SCM x); |
118 |
SCM_API SCM scm_struct_vtable_p (SCM x); |
SCM_API SCM scm_struct_vtable_p (SCM x); |