psxsdk/libpsx/src/atexit.c

24 lines
316 B
C

#include <stdlib.h>
static void *f_ptr[32];
static int f_ptr_pos = 0;
int atexit(void (*function)(void))
{
if(f_ptr_pos >= 32)
return -1;
f_ptr[f_ptr_pos++] = function;
return 0;
}
void call_atexit_callbacks(void)
{
int i;
void (*f)(void);
for(i = (f_ptr_pos - 1); i >= 0; i--)
(f = f_ptr[i])();
}