X-Git-Url: https://git.xonotic.org/?p=xonotic%2Fd0_blind_id.git;a=blobdiff_plain;f=d0.h;h=6c55afeb50f24bd316079ae46582e65f8020b19b;hp=53860dadb71eb069189a6fc6e28b8ace01190a30;hb=HEAD;hpb=2b63a3cb35d3d16f4a204a1d402303b196dce126 diff --git a/d0.h b/d0.h index 53860da..6c55afe 100644 --- a/d0.h +++ b/d0.h @@ -38,12 +38,29 @@ #include // size_t -#define EXPORT __attribute__((__visibility__("default"))) -#define WARN_UNUSED_RESULT __attribute__((warn_unused_result)) -#define BOOL int +#define D0_EXPORT __attribute__((__visibility__("default"))) +#define D0_USED __attribute__((used)) +#define D0_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#define D0_BOOL int -extern void *(*d0_malloc)(size_t len); -extern void (*d0_free)(void *p); -extern const char *d0_bsd_license_notitce; +typedef void *(d0_malloc_t)(size_t len); +typedef void (d0_free_t)(void *p); +typedef void *(d0_createmutex_t)(void); +typedef void (d0_destroymutex_t)(void *); +typedef int (d0_lockmutex_t)(void *); // zero on success +typedef int (d0_unlockmutex_t)(void *); // zero on success + +extern d0_malloc_t *d0_malloc; +extern d0_free_t *d0_free; +extern d0_createmutex_t *d0_createmutex; +extern d0_destroymutex_t *d0_destroymutex; +extern d0_lockmutex_t *d0_lockmutex; +extern d0_unlockmutex_t *d0_unlockmutex; + +void d0_setmallocfuncs(d0_malloc_t *m, d0_free_t *f); +void d0_setmutexfuncs(d0_createmutex_t *c, d0_destroymutex_t *d, d0_lockmutex_t *l, d0_unlockmutex_t *u); +void d0_initfuncs(void); // initializes them, this needs to be only called internally once + +extern const char *d0_bsd_license_notice; #endif