summaryrefslogtreecommitdiff
path: root/include/mimalloc-internal.h
diff options
context:
space:
mode:
authordaan <daanl@outlook.com>2019-08-29 09:52:22 -0700
committerdaan <daanl@outlook.com>2019-08-29 09:52:22 -0700
commitf35f6435080c69170e4ea86eb44e9629cf6102bf (patch)
treea871c32b491551148bf0aecc39fe6e04d654c977 /include/mimalloc-internal.h
parent71121a74579a5d9522eaad7a8d7d923074520f6f (diff)
parent7bf12c7b5fbb2aa7c156360a145545c7a45be90f (diff)
merge from dev
Diffstat (limited to 'include/mimalloc-internal.h')
-rw-r--r--include/mimalloc-internal.h33
1 files changed, 9 insertions, 24 deletions
diff --git a/include/mimalloc-internal.h b/include/mimalloc-internal.h
index 06d1704..2648653 100644
--- a/include/mimalloc-internal.h
+++ b/include/mimalloc-internal.h
@@ -22,12 +22,13 @@ terms of the MIT license. A copy of the license can be found in the file
// "options.c"
-void _mi_fputs(FILE* out, const char* prefix, const char* message);
-void _mi_fprintf(FILE* out, const char* fmt, ...);
+void _mi_fputs(mi_output_fun* out, const char* prefix, const char* message);
+void _mi_fprintf(mi_output_fun* out, const char* fmt, ...);
void _mi_error_message(const char* fmt, ...);
void _mi_warning_message(const char* fmt, ...);
void _mi_verbose_message(const char* fmt, ...);
void _mi_trace_message(const char* fmt, ...);
+void _mi_options_init(void);
// "init.c"
extern mi_stats_t _mi_stats_main;
@@ -45,8 +46,7 @@ void* _mi_os_alloc(size_t size, mi_stats_t* stats); // to allocat
void _mi_os_free(void* p, size_t size, mi_stats_t* stats); // to free thread local data
// memory.c
-void* _mi_mem_alloc_aligned(size_t size, size_t alignment, bool commit, size_t* id, mi_os_tld_t* tld);
-void* _mi_mem_alloc(size_t size, bool commit, size_t* id, mi_os_tld_t* tld);
+void* _mi_mem_alloc_aligned(size_t size, size_t alignment, bool* commit, bool* large, size_t* id, mi_os_tld_t* tld);
void _mi_mem_free(void* p, size_t size, size_t id, mi_stats_t* stats);
bool _mi_mem_reset(void* p, size_t size, mi_stats_t* stats);
@@ -318,39 +318,24 @@ static inline mi_page_queue_t* mi_page_queue(const mi_heap_t* heap, size_t size)
}
+
//-----------------------------------------------------------
// Page flags
//-----------------------------------------------------------
-static inline uintptr_t mi_page_thread_id(const mi_page_t* page) {
- return (page->flags & ~MI_PAGE_FLAGS_MASK);
-}
-
-static inline void mi_page_init_flags(mi_page_t* page, uintptr_t thread_id) {
- mi_assert_internal((thread_id & MI_PAGE_FLAGS_MASK) == 0);
- page->flags = thread_id;
-}
-
-static inline void mi_page_set_thread_id(mi_page_t* page, uintptr_t thread_id) {
- mi_assert_internal((thread_id & MI_PAGE_FLAGS_MASK) == 0);
- page->flags = thread_id | (page->flags & MI_PAGE_FLAGS_MASK);
-}
-
static inline bool mi_page_is_in_full(const mi_page_t* page) {
- return ((page->flags & 0x01) != 0);
+ return page->flags.in_full;
}
static inline void mi_page_set_in_full(mi_page_t* page, bool in_full) {
- if (in_full) page->flags |= 0x01;
- else page->flags &= ~0x01;
+ page->flags.in_full = in_full;
}
static inline bool mi_page_has_aligned(const mi_page_t* page) {
- return ((page->flags & 0x02) != 0);
+ return page->flags.has_aligned;
}
static inline void mi_page_set_has_aligned(mi_page_t* page, bool has_aligned) {
- if (has_aligned) page->flags |= 0x02;
- else page->flags &= ~0x02;
+ page->flags.has_aligned = has_aligned;
}