diff options
Diffstat (limited to 'include/user/kernel/clib.h')
-rw-r--r-- | include/user/kernel/clib.h | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/include/user/kernel/clib.h b/include/user/kernel/clib.h index a7aa75e..209f1a2 100644 --- a/include/user/kernel/clib.h +++ b/include/user/kernel/clib.h @@ -21,6 +21,7 @@ int sceClibTolower(char ch); int sceClibToupper(char ch); int sceClibPrintf(const char *fmt, ...); +int sceClibVprintf(const char *fmt, va_list args); 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); @@ -45,6 +46,36 @@ int sceClibMemcmp(const void *s1, const void *s2, SceSize len); void *sceClibMemchr(const void *src, int ch, SceSize len); +/* 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 |