8#define HSD_CLASS_INFO(o) ((HSD_ClassInfo*) o)
9#define HSD_CLASS_METHOD(o) (((HSD_Class*) o)->class_info)
10#define HSD_PARENT_INFO(o) ((o)->parent.head.parent)
12#define next_p(p) (p != NULL ? p->next : NULL)
14typedef struct _HSD_Class {
18typedef struct _HSD_ClassInfoHead {
19 void (*info_init)(void);
26 struct _HSD_ClassInfo*
next;
32typedef struct _HSD_ClassInfo {
33 struct _HSD_ClassInfoHead head;
35 int (*init)(
struct _HSD_Class*
c);
36 void (*release)(
struct _HSD_Class*
c);
37 void (*destroy)(
struct _HSD_Class*
c);
38 void (*amnesia)(
struct _HSD_ClassInfo*
c);
41typedef struct _HSD_FreeList {
42 struct _HSD_FreeList*
next;
45typedef struct _HSD_MemoryEntry {
50 struct _HSD_MemoryEntry*
next;
58 char* base_class_library,
char* type,
s32 info_size,
void * hsdNew(HSD_ClassInfo *)
Definition class.c:291
int _hsdClassInit(HSD_Class *arg0)
Definition class.c:255
HSD_MemoryEntry * GetMemoryEntry(s32 idx)
Definition class.c:76
void _hsdClassAmnesia(HSD_ClassInfo *info)
Definition class.c:269
void * hsdAllocMemPiece(s32 size)
Definition class.c:160
HSD_ClassInfo hsdClass
Definition class.c:13
#define HSD_CLASS_METHOD(o)
Definition class.h:9
void _hsdClassDestroy(HSD_Class *cls)
Definition class.c:262
HSD_ClassInfo * hsdSearchClassInfo(const char *class_name)
Definition class.c:464
void class_set_flags(HSD_ClassInfo *class_info, s32 set, s32 reset)
Definition class.c:413
bool hsdIsDescendantOf(void *info, void *p)
Definition class.c:367
void hsdInitClassInfo(HSD_ClassInfo *class_info, HSD_ClassInfo *parent_info, char *base_class_library, char *type, s32 info_size, s32 class_size)
Definition class.c:29
void ForgetClassLibraryChild(const char *library_name, HSD_ClassInfo *class_info)
Definition class.c:434
static void hsdDelete(void *object)
Definition class.h:85
void ClassInfoInit(HSD_ClassInfo *info)
Definition class.c:21
void OSReport_PrintSpaces(s32 count)
Definition class.c:57
void ForgetClassLibraryReal(HSD_ClassInfo *class_info)
Definition class.c:418
void hsdFreeMemPiece(void *mem, s32 size)
Definition class.c:229
void hsdDumpClassStat(HSD_ClassInfo *info, bool recursive, s32 level)
Definition class.c:490
bool hsdChangeClass(void *object, void *class_info)
Definition class.c:362
HSD_Class * _hsdClassAlloc(HSD_ClassInfo *info)
Definition class.c:243
void _hsdClassRelease(HSD_Class *cls)
Definition class.c:260
void DumpClassStat(HSD_ClassInfo *info, s32 level)
Definition class.c:480
void hsdForgetClassLibrary(const char *library_name)
Definition class.c:448
bool hsdObjIsDescendantOf(HSD_Obj *o, HSD_ClassInfo *p)
Definition class.c:393
static void reset(HSD_GObj *gobj)
Definition ftPe_SpecialN.c:146
#define NULL
A null pointer.
Definition stddef.h:19
char * library_name
Definition class.h:21
struct _HSD_ClassInfo * next
Definition class.h:26
struct _HSD_ClassInfo * child
Definition class.h:27
struct _HSD_ClassInfo * parent
Definition class.h:25
s16 obj_size
Definition class.h:23
u32 flags
Definition class.h:20
s16 info_size
Definition class.h:24
u32 nb_peak
Definition class.h:29
u32 nb_exist
Definition class.h:28
char * class_name
Definition class.h:22
struct _HSD_ClassInfo * class_info
Definition class.h:15
struct _HSD_FreeList * next
Definition class.h:42
struct _HSD_FreeList * free_list
Definition class.h:49
u32 nb_alloc
Definition class.h:47
struct _HSD_MemoryEntry * next
Definition class.h:50
u32 size
Definition class.h:46
u32 nb_free
Definition class.h:48