diff options
author | daan <daanl@outlook.com> | 2019-08-29 09:52:22 -0700 |
---|---|---|
committer | daan <daanl@outlook.com> | 2019-08-29 09:52:22 -0700 |
commit | f35f6435080c69170e4ea86eb44e9629cf6102bf (patch) | |
tree | a871c32b491551148bf0aecc39fe6e04d654c977 /include/mimalloc-internal.h | |
parent | 71121a74579a5d9522eaad7a8d7d923074520f6f (diff) | |
parent | 7bf12c7b5fbb2aa7c156360a145545c7a45be90f (diff) |
merge from dev
Diffstat (limited to 'include/mimalloc-internal.h')
-rw-r--r-- | include/mimalloc-internal.h | 33 |
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; } |