37 #ifndef PLATFORMSPECIFICFUNCTIONS_C_H_ 38 #define PLATFORMSPECIFICFUNCTIONS_C_H_ 45 extern int (*PlatformSpecificSetJmp)(void (*
function) (
void*),
void* data);
46 extern void (*PlatformSpecificLongJmp)(void);
47 extern void (*PlatformSpecificRestoreJumpBuffer)(void);
50 extern double (*GetPlatformSpecificTimeInMillis)(void);
51 extern const char* (*GetPlatformSpecificTimeString)(void);
54 extern int (*PlatformSpecificVSNprintf)(
char *str,
size_t size,
const char* format, va_list va_args_list);
57 extern double (*PlatformSpecificFabs)(
double d);
58 extern int (*PlatformSpecificIsNan)(
double d);
59 extern int (*PlatformSpecificIsInf)(
double d);
60 extern int (*PlatformSpecificAtExit)(void(*func)(void));
63 typedef void* PlatformSpecificFile;
65 extern PlatformSpecificFile (*PlatformSpecificFOpen)(
const char* filename,
const char* flag);
66 extern void (*PlatformSpecificFPuts)(
const char* str, PlatformSpecificFile file);
67 extern void (*PlatformSpecificFClose)(PlatformSpecificFile file);
69 extern int (*PlatformSpecificPutchar)(
int c);
70 extern void (*PlatformSpecificFlush)(void);
73 extern void* (*PlatformSpecificMalloc)(
size_t size);
74 extern void* (*PlatformSpecificRealloc)(
void* memory,
size_t size);
75 extern void (*PlatformSpecificFree)(
void* memory);
76 extern void* (*PlatformSpecificMemCpy)(
void* s1,
const void* s2,
size_t size);
77 extern void* (*PlatformSpecificMemset)(
void* mem,
int c,
size_t size);
79 typedef void* PlatformSpecificMutex;
80 extern PlatformSpecificMutex (*PlatformSpecificMutexCreate)(void);
81 extern void (*PlatformSpecificMutexLock)(PlatformSpecificMutex mtx);
82 extern void (*PlatformSpecificMutexUnlock)(PlatformSpecificMutex mtx);
83 extern void (*PlatformSpecificMutexDestroy)(PlatformSpecificMutex mtx);