diff --git a/headers/private/kernel/slab/Slab.h b/headers/private/kernel/slab/Slab.h index a7586a87c0..e422b73246 100644 --- a/headers/private/kernel/slab/Slab.h +++ b/headers/private/kernel/slab/Slab.h @@ -52,6 +52,8 @@ void object_cache_free(object_cache *cache, void *object); status_t object_cache_reserve(object_cache *cache, size_t object_count, uint32 flags); +void object_cache_get_usage(object_cache *cache, size_t *_allocatedMemory); + #ifdef __cplusplus } #endif diff --git a/src/system/kernel/slab/Slab.cpp b/src/system/kernel/slab/Slab.cpp index 4461cbd4f8..b86869ba9a 100644 --- a/src/system/kernel/slab/Slab.cpp +++ b/src/system/kernel/slab/Slab.cpp @@ -594,7 +594,7 @@ object_cache_init(object_cache *cache, const char *name, size_t objectSize, cache->free_pages = area_free_pages; } - register_low_resource_handler(object_cache_low_memory, cache, + register_low_resource_handler(object_cache_low_memory, cache, B_KERNEL_RESOURCE_PAGES | B_KERNEL_RESOURCE_MEMORY, 5); MutexLocker _(sObjectCacheListLock); @@ -904,6 +904,14 @@ object_cache_reserve(object_cache *cache, size_t objectCount, uint32 flags) } +void +object_cache_get_usage(object_cache *cache, size_t *_allocatedMemory) +{ + MutexLocker _(cache->lock); + *_allocatedMemory = cache->usage; +} + + slab * object_cache::InitSlab(slab *slab, void *pages, size_t byteCount) {