#define disable_expand(M) ((M)->mflags |= USE_NOEXPAND_BIT)
#define use_trace(M) ((M)->mflags & USE_TRACE_BIT)
#define enable_trace(M) ((M)->mflags |= USE_TRACE_BIT)
-#define disable_trace(M) ((M)->mflags |= USE_TRACE_BIT)
+#define disable_trace(M) ((M)->mflags &= ~USE_TRACE_BIT)
#define set_lock(M,L)\
((M)->mflags = (L)?\
return ret;
}
+CLIB_NOSANITIZE_ADDR
size_t destroy_mspace(mspace msp) {
size_t freed = 0;
mstate ms = (mstate)msp;
*sizep = this_seg->size;
}
-CLIB_NOSANITIZE_ADDR
+CLIB_NOSANITIZE_ADDR __clib_export
int mspace_is_heap_object (mspace msp, void *p)
{
msegment *this_seg;
return 0;
}
-CLIB_NOSANITIZE_ADDR
+CLIB_NOSANITIZE_ADDR __clib_export
void* mspace_get_aligned (mspace msp,
unsigned long n_user_data_bytes,
unsigned long align,
* the base of the dlmalloc object
*/
n_user_data_bytes += sizeof(unsigned);
-
- /*
- * Alignment requests less than the size of an mmx vector are ignored
- */
- if (align < sizeof (uword)) {
- rv = mspace_malloc (msp, n_user_data_bytes);
- if (rv == 0)
- return rv;
-
- if (use_trace(ms)) {
- mchunkptr p = mem2chunk(rv);
- size_t psize = chunksize(p);
-
- mheap_get_trace ((unsigned long)rv + sizeof (unsigned), psize);
- }
-
- wwp = (unsigned *)rv;
- *wwp = 0;
- rv += sizeof (unsigned);
-
- return rv;
- }
+ align = align < MALLOC_ALIGNMENT ? MALLOC_ALIGNMENT : align;
/*
* Alignment requests greater than 4K must be at offset zero,
return (void *) searchp;
}
-CLIB_NOSANITIZE_ADDR
+CLIB_NOSANITIZE_ADDR __clib_export
void mspace_put (mspace msp, void *p_arg)
{
char *object_header;
mspace_free (msp, p_arg);
}
-CLIB_NOSANITIZE_ADDR
+CLIB_NOSANITIZE_ADDR __clib_export
size_t mspace_usable_size_with_delta (const void *p)
{
size_t usable_size;