|
@@ -61,15 +61,16 @@
|
|
|
/* The amount of extra space used by the malloc header. */
|
|
|
#define MALLOC_HEADER_SIZE MALLOC_ALIGNMENT
|
|
|
|
|
|
+/* Set up the malloc header, and return the user address of a malloc block. */
|
|
|
+#define MALLOC_SETUP(base, size) \
|
|
|
+ (MALLOC_SET_SIZE (base, size), (void *)((char *)base + MALLOC_HEADER_SIZE))
|
|
|
+/* Set the size of a malloc allocation, given the base address. */
|
|
|
+#define MALLOC_SET_SIZE(base, size) (*(size_t *)(base) = (size))
|
|
|
+
|
|
|
/* Return base-address of a malloc allocation, given the user address. */
|
|
|
#define MALLOC_BASE(addr) ((void *)((char *)addr - MALLOC_HEADER_SIZE))
|
|
|
/* Return the size of a malloc allocation, given the user address. */
|
|
|
#define MALLOC_SIZE(addr) (*(size_t *)MALLOC_BASE(addr))
|
|
|
-/* Sets the size of a malloc allocation, given the user address. */
|
|
|
-#define MALLOC_SET_SIZE(addr, size) (*(size_t *)MALLOC_BASE(addr) = (size))
|
|
|
-
|
|
|
-/* Return the user address of a malloc allocation, given the base address. */
|
|
|
-#define MALLOC_ADDR(base) ((void *)((char *)base + MALLOC_HEADER_SIZE))
|
|
|
|
|
|
|
|
|
/* Locking for multithreaded apps. */
|