2 * lock-free-alloc.h: Lock free allocator.
4 * (C) Copyright 2011 Novell, Inc
7 #ifndef __MONO_LOCKFREEALLOC_H__
8 #define __MONO_LOCKFREEALLOC_H__
12 #include "lock-free-queue.h"
15 MonoLockFreeQueue partial;
16 unsigned int slot_size;
17 } MonoLockFreeAllocSizeClass;
19 struct _MonoLockFreeAllocDescriptor;
22 struct _MonoLockFreeAllocDescriptor *active;
23 MonoLockFreeAllocSizeClass *sc;
24 } MonoLockFreeAllocator;
26 void mono_lock_free_allocator_init_size_class (MonoLockFreeAllocSizeClass *sc, unsigned int slot_size) MONO_INTERNAL;
27 void mono_lock_free_allocator_init_allocator (MonoLockFreeAllocator *heap, MonoLockFreeAllocSizeClass *sc) MONO_INTERNAL;
29 gpointer mono_lock_free_alloc (MonoLockFreeAllocator *heap) MONO_INTERNAL;
30 void mono_lock_free_free (gpointer ptr) MONO_INTERNAL;
32 gboolean mono_lock_free_allocator_check_consistency (MonoLockFreeAllocator *heap) MONO_INTERNAL;