summaryrefslogtreecommitdiff
path: root/include/user/kernel/clib.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--include/user/kernel/clib.h39
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