5 #define MAX_INIT_RECORDS 100
10 void AddFunction(void (*func
)(void));
11 void AddFunction(bool (*func
)(void));
12 void AddFunction(void *func
);
16 void *fFunctions
[MAX_INIT_RECORDS
];
17 int fCount
; // counting on behavior of auto-initilization to 0
23 InitAdder(InitList
*initlist
, void (*func
)(void)) { initlist
->AddFunction(func
); }
24 InitAdder(InitList
*initlist
, bool (*func
)(void)) { initlist
->AddFunction(func
); }
25 InitAdder(InitList
&initlist
, void (*func
)(void)) { initlist
.AddFunction(func
); }
26 InitAdder(InitList
&initlist
, bool (*func
)(void)) { initlist
.AddFunction(func
); }
29 #define INITFUNC(TARGET) \
30 static void __InitFunc(void); \
31 static InitAdder _ia(TARGET, __InitFunc); \
32 static void __InitFunc(void) \