summaryrefslogtreecommitdiff
path: root/include/user/kernel/clib.h
diff options
context:
space:
mode:
authorReiko Asakura2020-07-22 20:45:28 -0400
committerReiko Asakura2020-07-22 20:45:28 -0400
commitde22644bc8cc5fa7684077062717258d69b21c4e (patch)
tree202e507a54e9f089d22c790d8dd3f03bbeaa0b29 /include/user/kernel/clib.h
parentAdd SceSas internal functions (diff)
downloadvds-libraries-de22644bc8cc5fa7684077062717258d69b21c4e.tar.gz
Add all prototypes for SceClibMspace functions
Diffstat (limited to 'include/user/kernel/clib.h')
-rw-r--r--include/user/kernel/clib.h32
1 files changed, 29 insertions, 3 deletions
diff --git a/include/user/kernel/clib.h b/include/user/kernel/clib.h
index b22eb3f..209f1a2 100644
--- a/include/user/kernel/clib.h
+++ b/include/user/kernel/clib.h
@@ -46,9 +46,35 @@ int sceClibMemcmp(const void *s1, const void *s2, SceSize len);
void *sceClibMemchr(const void *src, int ch, SceSize len);
-void *sceClibMspaceCreate(void *base, SceSize size);
-void *sceClibMspaceMalloc(void *space, SceSize size);
-void sceClibMspaceFree(void *space, void *ptr);
+/* 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
}