50 #undef scm_make_smob_type
59 uintptr_t v = (uintptr_t) item;
69 return item_lhs == item_rhs;
82 *slot = (
void *) gsmob_code;
115 base->empty_base_class = 0;
171 smobnum = SCM_SMOBNUM (smob);
172 name = SCM_SMOBNAME (smobnum);
174 result = scm_from_latin1_symbol (kind);
190 const struct objfile_data *data_key,
196 g_smob->
next = objfile_data (objfile, data_key);
199 set_objfile_data (objfile, data_key, g_smob);
210 const struct objfile_data *data_key,
215 else if (objfile != NULL)
216 set_objfile_data (objfile, data_key, g_smob->
next);
227 htab_t htab = htab_create_alloc (7, hash_fn, eq_fn,
240 void **slot = htab_find_slot (htab, base, INSERT);
265 void **slot = htab_find_slot (htab, base, NO_INSERT);
268 htab_clear_slot (htab, slot);
280 Return the kind of the GDB object, e.g., <gdb:breakpoint>, as a symbol." },
GDB_SMOB_HEAD SCM containing_scm
void gdbscm_init_eqable_gsmob(eqable_gdb_smob *base, SCM containing_scm)
void gdbscm_define_functions(const scheme_function *, int is_public)
static int eq_scm_t_bits(const void *item_lhs, const void *item_rhs)
void gdbscm_clear_eqable_gsmob_ptr_slot(htab_t htab, eqable_gdb_smob *base)
void gdbscm_fill_eqable_gsmob_ptr_slot(eqable_gdb_smob **slot, eqable_gdb_smob *base)
htab_t gdbscm_create_eqable_gsmob_ptr_map(htab_hash hash_fn, htab_eq eq_fn)
eqable_gdb_smob ** gdbscm_find_eqable_gsmob_ptr_slot(htab_t htab, eqable_gdb_smob *base)
static int gdbscm_is_gsmob(SCM scm)
void gdbscm_init_gsmob(gdb_smob *base)
struct _chained_gdb_smob * next
static void register_gsmob(scm_t_bits gsmob_code)
GDB_SMOB_HEAD struct _chained_gdb_smob * prev
void gdbscm_initialize_smobs(void)
void gdbscm_add_objfile_ref(struct objfile *objfile, const struct objfile_data *data_key, chained_gdb_smob *g_smob)
char * xstrprintf(const char *format,...)
scm_t_bits gdbscm_make_smob_type(const char *name, size_t size)
void gdbscm_remove_objfile_ref(struct objfile *objfile, const struct objfile_data *data_key, chained_gdb_smob *g_smob)
#define scm_make_smob_type
void gdbscm_init_chained_gsmob(chained_gdb_smob *base)
static SCM gsscm_get_gsmob_arg_unsafe(SCM self, int arg_pos, const char *func_name)
const struct frame_base * base
static SCM gdbscm_gsmob_kind(SCM self)
static hashval_t hash_scm_t_bits(const void *item)
PTR xcalloc(size_t number, size_t size)
static htab_t registered_gsmobs