sandbox: vm: fix vm_cache.c_hdr_size not being calculated

This commit is contained in:
2023-02-02 21:03:27 +00:00
parent d43347436f
commit 90dd51008f

View File

@@ -16,9 +16,9 @@ vm_cache_t *vm_cache_create(const char *name, size_t objsz, vm_cache_flags_t fla
new_cache->c_name = name;
new_cache->c_obj_size = objsz;
new_cache->c_flags = flags;
vm_cache_init(new_cache);
return new_cache;
}
@@ -31,7 +31,7 @@ void vm_cache_init(vm_cache_t *cache)
size_t available = vm_page_order_to_bytes(cache->c_page_order);
size_t space_per_item = cache->c_obj_size;
/* align to 16-byte boundary */
if (space_per_item & 0xF) {
space_per_item &= ~0xF;
@@ -43,7 +43,7 @@ void vm_cache_init(vm_cache_t *cache)
if (!(cache->c_flags & VM_CACHE_OFFSLAB)) {
available -= sizeof(vm_slab_t);
}
/* one entry in the freelist per object slot */
space_per_item += sizeof(unsigned int);
@@ -51,6 +51,8 @@ void vm_cache_init(vm_cache_t *cache)
cache->c_slabs_full = QUEUE_INIT;
cache->c_slabs_partial = QUEUE_INIT;
cache->c_slabs_empty = QUEUE_INIT;
cache->c_hdr_size = sizeof(vm_slab_t) + (sizeof(unsigned int) * cache->c_obj_count);
}
void vm_cache_destroy(vm_cache_t *cache)