diff options
Diffstat (limited to '')
-rw-r--r-- | include/user/kernel/clib.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/include/user/kernel/clib.h b/include/user/kernel/clib.h index a7aa75e..7367686 100644 --- a/include/user/kernel/clib.h +++ b/include/user/kernel/clib.h @@ -13,6 +13,7 @@ extern "C" { * * @return none */ +__attribute__((__noreturn__)) void sceClibAbort(void); char sceClibLookCtypeTable(char ch); @@ -20,8 +21,14 @@ char sceClibLookCtypeTable(char ch); int sceClibTolower(char ch); int sceClibToupper(char ch); +__attribute__((__format__(__printf__, 1, 2))) int sceClibPrintf(const char *fmt, ...); + +int sceClibVprintf(const char *fmt, va_list args); + +__attribute__((__format__(__printf__, 3, 4))) int sceClibSnprintf(char *dst, SceSize dst_max_size, const char *fmt, ...); + int sceClibVsnprintf(char *dst, SceSize dst_max_size, const char *fmt, va_list args); char *sceClibStrncpy(char *dst, const char *src, SceSize len); @@ -45,6 +52,38 @@ int sceClibMemcmp(const void *s1, const void *s2, SceSize len); void *sceClibMemchr(const void *src, int ch, SceSize len); +long long sceClibStrtoll(const char *str, char **endptr, int base); + +/* mspace functions */ + +typedef void* SceClibMspace; + +typedef struct SceClibMspaceStats { + SceSize maxSystemSize; + SceSize currentSystemSize; + SceSize maxInUseSize; + SceSize currentInUseSize; + SceSize reserved[4]; +} SceClibMspaceStats; + +/* create and destroy mspace */ +SceClibMspace sceClibMspaceCreate(void *base, SceSize capacity); +SceInt32 sceClibMspaceDestroy(SceClibMspace msp); + +/* allocator and deallocator */ +void *sceClibMspaceMalloc(SceClibMspace msp, SceSize size); +void sceClibMspaceFree(SceClibMspace msp, void *ptr); +void *sceClibMspaceCalloc(SceClibMspace msp, SceSize nelem, SceSize size); +void *sceClibMspaceMemalign(SceClibMspace msp, SceSize boundary, SceSize size); +void *sceClibMspaceRealloc(SceClibMspace msp, void *ptr, SceSize size); +void *sceClibMspaceReallocalign(SceClibMspace msp, void *ptr, SceSize size, SceSize boundary); + +/* utility */ +SceSize sceClibMspaceMallocUsableSize(void *p); +SceInt32 sceClibMspaceMallocStats(SceClibMspace msp, SceClibMspaceStats *buf); +SceInt32 sceClibMspaceMallocStatsFast(SceClibMspace msp, SceClibMspaceStats *buf); +SceInt32 sceClibMspaceIsHeapEmpty(SceClibMspace msp); + #ifdef __cplusplus } #endif |