X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Futils%2Flock-free-alloc.h;h=70d550d95c239b6b6d5ce5d868f31633a590c7d1;hb=f6b8e1f10d5cd18826aad50e5a2b8d2aabf3222a;hp=ed07a2971a5a54f788a922de691c6090e79e9064;hpb=5e2b29222f106aeed5f5096ca183e09766e433b8;p=mono.git diff --git a/mono/utils/lock-free-alloc.h b/mono/utils/lock-free-alloc.h index ed07a2971a5..70d550d95c2 100644 --- a/mono/utils/lock-free-alloc.h +++ b/mono/utils/lock-free-alloc.h @@ -33,6 +33,7 @@ typedef struct { MonoLockFreeQueue partial; unsigned int slot_size; + unsigned int block_size; } MonoLockFreeAllocSizeClass; struct _MonoLockFreeAllocDescriptor; @@ -40,14 +41,19 @@ struct _MonoLockFreeAllocDescriptor; typedef struct { struct _MonoLockFreeAllocDescriptor *active; MonoLockFreeAllocSizeClass *sc; + MonoMemAccountType account_type; } MonoLockFreeAllocator; -void mono_lock_free_allocator_init_size_class (MonoLockFreeAllocSizeClass *sc, unsigned int slot_size) MONO_INTERNAL; -void mono_lock_free_allocator_init_allocator (MonoLockFreeAllocator *heap, MonoLockFreeAllocSizeClass *sc) MONO_INTERNAL; +#define LOCK_FREE_ALLOC_SB_MAX_SIZE 16384 +#define LOCK_FREE_ALLOC_SB_HEADER_SIZE (sizeof (gpointer)) +#define LOCK_FREE_ALLOC_SB_USABLE_SIZE(block_size) ((block_size) - LOCK_FREE_ALLOC_SB_HEADER_SIZE) -gpointer mono_lock_free_alloc (MonoLockFreeAllocator *heap) MONO_INTERNAL; -void mono_lock_free_free (gpointer ptr) MONO_INTERNAL; +MONO_API void mono_lock_free_allocator_init_size_class (MonoLockFreeAllocSizeClass *sc, unsigned int slot_size, unsigned int block_size); +MONO_API void mono_lock_free_allocator_init_allocator (MonoLockFreeAllocator *heap, MonoLockFreeAllocSizeClass *sc, MonoMemAccountType account_type); -gboolean mono_lock_free_allocator_check_consistency (MonoLockFreeAllocator *heap) MONO_INTERNAL; +MONO_API gpointer mono_lock_free_alloc (MonoLockFreeAllocator *heap); +MONO_API void mono_lock_free_free (gpointer ptr, size_t block_size); + +MONO_API gboolean mono_lock_free_allocator_check_consistency (MonoLockFreeAllocator *heap); #endif