aboutsummaryrefslogtreecommitdiff
path: root/include/malloc_np.h
diff options
context:
space:
mode:
authorJason Evans <jasone@FreeBSD.org>2015-08-18 00:21:25 +0000
committerJason Evans <jasone@FreeBSD.org>2015-08-18 00:21:25 +0000
commitd0e79aa362ed3a077477d26af7a40f64f4516e90 (patch)
treeec1bf01436900198985847d5fded5190c930cf79 /include/malloc_np.h
parent2cb71df1837a503cbd96becc1593b7b02a53068b (diff)
Notes
Diffstat (limited to 'include/malloc_np.h')
-rw-r--r--include/malloc_np.h57
1 files changed, 29 insertions, 28 deletions
diff --git a/include/malloc_np.h b/include/malloc_np.h
index 193307b5b459d..5f9d8134791fb 100644
--- a/include/malloc_np.h
+++ b/include/malloc_np.h
@@ -36,6 +36,23 @@
#include <strings.h>
__BEGIN_DECLS
+typedef void *(chunk_alloc_t)(void *, size_t, size_t, bool *, bool *, unsigned);
+typedef bool (chunk_dalloc_t)(void *, size_t, bool, unsigned);
+typedef bool (chunk_commit_t)(void *, size_t, size_t, size_t, unsigned);
+typedef bool (chunk_decommit_t)(void *, size_t, size_t, size_t, unsigned);
+typedef bool (chunk_purge_t)(void *, size_t, size_t, size_t, unsigned);
+typedef bool (chunk_split_t)(void *, size_t, size_t, size_t, bool, unsigned);
+typedef bool (chunk_merge_t)(void *, size_t, void *, size_t, bool, unsigned);
+typedef struct {
+ chunk_alloc_t *alloc;
+ chunk_dalloc_t *dalloc;
+ chunk_commit_t *commit;
+ chunk_decommit_t *decommit;
+ chunk_purge_t *purge;
+ chunk_split_t *split;
+ chunk_merge_t *merge;
+} chunk_hooks_t;
+
size_t malloc_usable_size(const void *ptr);
void malloc_stats_print(void (*write_cb)(void *, const char *),
@@ -49,48 +66,32 @@ int mallctlbymib(const size_t *mib, size_t miblen, void *oldp,
#define MALLOCX_LG_ALIGN(la) (la)
#define MALLOCX_ALIGN(a) (ffsl(a)-1)
#define MALLOCX_ZERO ((int)0x40)
-#define MALLOCX_ARENA(a) ((int)(((a)+1) << 8))
+#define MALLOCX_TCACHE(tc) ((int)(((tc)+2) << 8))
+#define MALLOCX_TCACHE_NONE MALLOCX_TCACHE(-1)
+#define MALLOCX_ARENA(a) ((int)(((a)+1) << 20))
void *mallocx(size_t size, int flags);
void *rallocx(void *ptr, size_t size, int flags);
size_t xallocx(void *ptr, size_t size, size_t extra, int flags);
size_t sallocx(const void *ptr, int flags);
void dallocx(void *ptr, int flags);
+void sdallocx(void *ptr, size_t size, int flags);
size_t nallocx(size_t size, int flags);
-#define ALLOCM_LG_ALIGN(la) (la)
-#define ALLOCM_ALIGN(a) (ffsl(a)-1)
-#define ALLOCM_ZERO ((int)0x40)
-#define ALLOCM_NO_MOVE ((int)0x80)
-
-#define ALLOCM_SUCCESS 0
-#define ALLOCM_ERR_OOM 1
-#define ALLOCM_ERR_NOT_MOVED 2
-
-int allocm(void **ptr, size_t *rsize, size_t size, int flags) __nonnull(1);
-int rallocm(void **ptr, size_t *rsize, size_t size, size_t extra,
- int flags) __nonnull(1);
-int sallocm(const void *ptr, size_t *rsize, int flags) __nonnull(1);
-int dallocm(void *ptr, int flags) __nonnull(1);
-int nallocm(size_t *rsize, size_t size, int flags);
-
-void * __calloc(size_t, size_t) __malloc_like;
-void * __malloc(size_t) __malloc_like;
-void * __realloc(void *, size_t);
-void __free(void *);
-int __posix_memalign(void **, size_t, size_t);
-size_t __malloc_usable_size(const void *);
+void * __calloc(size_t number, size_t size) __malloc_like;
+void * __malloc(size_t size) __malloc_like;
+void * __realloc(void *ptr, size_t size);
+void __free(void *ptr);
+int __posix_memalign(void **ptr, size_t alignment, size_t size);
+void *__aligned_alloc(size_t alignment, size_t size);
+size_t __malloc_usable_size(const void *ptr);
void *__mallocx(size_t size, int flags);
void *__rallocx(void *ptr, size_t size, int flags);
size_t __xallocx(void *ptr, size_t size, size_t extra, int flags);
size_t __sallocx(const void *ptr, int flags);
void __dallocx(void *ptr, int flags);
+void __sdallocx(void *ptr, size_t size, int flags);
size_t __nallocx(size_t size, int flags);
-int __allocm(void **, size_t *, size_t, int) __nonnull(1);
-int __rallocm(void **, size_t *, size_t, size_t, int) __nonnull(1);
-int __sallocm(const void *, size_t *, int) __nonnull(1);
-int __dallocm(void *, int) __nonnull(1);
-int __nallocm(size_t *, size_t, int);
__END_DECLS
#endif /* _MALLOC_NP_H_ */