// SPDX-License-Identifier: MPL-2.0 #ifndef SH_LIB_TEST_SLABS_H #define SH_LIB_TEST_SLABS_H #include "std/type.h" #include "std/status.h" #include "memory/page.h" #include "memory/slab.h" #include "cpu/tsc.h" // Load the number of iterations for benchmakrs for slabs test. void sh_test_slabs_load_iterations_count(sh_uint64 iterations_num); // Test and benchmark physical region objects slab allocator SH_STATUS sh_test_slabs_benchmark_region_physical(sh_slab_reg_phys_SLAB_ALLOCATOR *alloc,sh_page_PAGE_TABLE_POOL *ptp); // Test and benchmark virtual region objects slab allocator SH_STATUS sh_test_slabs_benchmark_region_virtual(sh_slab_reg_virt_SLAB_ALLOCATOR *alloc,sh_page_PAGE_TABLE_POOL *ptp); // Test and benchmark radix nodes objects slab allocator SH_STATUS sh_test_slabs_benchmark_radix_node(struct sh_slab_radix_node_SLAB_ALLOCATOR *alloc,sh_page_PAGE_TABLE_POOL *ptp); // Test and benchmark all slab allocators SH_STATUS sh_test_slabs_benchmark(sh_slab_reg_phys_SLAB_ALLOCATOR *alloc_reg_phys,sh_slab_reg_virt_SLAB_ALLOCATOR *alloc_reg_virt,struct sh_slab_radix_node_SLAB_ALLOCATOR *alloc_radix_node,sh_page_PAGE_TABLE_POOL *ptp); #endif