7 #define InitSemaphore(x)
8 #define ObtainSemaphore(x)
9 #define ObtainSemaphoreShared(x)
10 #define ReleaseSemaphore(x)
17 /* Array of pointers to methodtables for this class */
18 struct Node ClassNode
;
24 /* The number of methods that are new for this class */
29 /* Can also be gotten with indexing the ClassTable */
30 struct IClass
*SuperClass
;
33 #if (HASHED_METHODS || HASHED_STRINGS)
34 struct MethodBucket
**HashTable
;
36 ULONG NumMethods
; /* Number of buckets in the hashtable */
40 struct InterfaceBucket
**HashTable
;
68 #define NUM_METHOD_BITS 10
69 #define METHOD_MASK ((1 << NUM_METHOD_BITS) - 1)
71 #define BASEOBJECT(obj) ((Object *)(_OBJ(obj) + 1))
72 #define _OBJECT(obj) (_OBJ(obj) - 1)
73 #define _OBJ(obj) ((struct _Object *)(obj))
75 #define INST_DATA(cl, obj) \
76 (((VOID *)(obj)) + _OBJECT(obj)->o_Class->InstOffset)
79 (_OBJECT(obj)->o_Class)
82 /** Root class defs */
83 #define ROOTCLASS "rootclass"
86 #if (HASHED_METHODS || HASHED_IFS)
89 # define MIDX_Dispose 1
92 # define Root_Base (I_Root << NUM_METHOD_BITS)
94 # define M_New (I_Root + MIDX_New)
95 # define M_Dispose (I_Root + MIDX_Dispose)
100 # define M_Dispose "Dispose"
112 struct List ClassList
;
113 struct Bucket
**IDHashTable
;