diff --git a/headers/private/kernel/slab/Slab.h b/headers/private/kernel/slab/Slab.h index 8197d98147..366cd0dfa0 100644 --- a/headers/private/kernel/slab/Slab.h +++ b/headers/private/kernel/slab/Slab.h @@ -43,8 +43,7 @@ extern "C" { #endif object_cache* create_object_cache(const char* name, size_t objectSize, - size_t alignment, void* cookie, object_cache_constructor constructor, - object_cache_destructor destructor); + uint32 flags); object_cache* create_object_cache_etc(const char* name, size_t objectSize, size_t alignment, size_t maxByteUsage, size_t magazineCapacity, size_t maxMagazineCount, uint32 flags, void* cookie, diff --git a/src/add-ons/kernel/bus_managers/scsi/ccb.cpp b/src/add-ons/kernel/bus_managers/scsi/ccb.cpp index 7e7e9d757e..3394284664 100644 --- a/src/add-ons/kernel/bus_managers/scsi/ccb.cpp +++ b/src/add-ons/kernel/bus_managers/scsi/ccb.cpp @@ -71,7 +71,7 @@ scsi_free_ccb(scsi_ccb *ccb) status_t init_ccb_alloc() { - sCcbPool = create_object_cache("scsi ccb", sizeof(scsi_ccb), 0, NULL, NULL, NULL); + sCcbPool = create_object_cache("scsi ccb", sizeof(scsi_ccb), 0); if (sCcbPool == NULL) return B_NO_MEMORY; diff --git a/src/add-ons/kernel/bus_managers/scsi/scatter_gather.cpp b/src/add-ons/kernel/bus_managers/scsi/scatter_gather.cpp index 63272f8c19..c5b12049ff 100644 --- a/src/add-ons/kernel/bus_managers/scsi/scatter_gather.cpp +++ b/src/add-ons/kernel/bus_managers/scsi/scatter_gather.cpp @@ -163,8 +163,7 @@ int init_temp_sg(void) { sTempScatterGatherPool = create_object_cache("scsi temp s/g", - MAX_TEMP_SG_FRAGMENTS * sizeof(physical_entry), 0, - NULL, NULL, NULL); + MAX_TEMP_SG_FRAGMENTS * sizeof(physical_entry), 0); if (sTempScatterGatherPool == NULL) return B_NO_MEMORY; diff --git a/src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp b/src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp index ae167c47ef..946c29b1b7 100644 --- a/src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp @@ -1152,13 +1152,12 @@ packagefs_std_ops(int32 op, ...) PackageFileHeapAccessorBase::sQuadChunkCache = quadChunkCache = create_object_cache("pkgfs heap buffers", PackageFileHeapAccessorBase::kChunkSize * 4, - 0, NULL, NULL, NULL); + 0); object_cache_set_minimum_reserve(quadChunkCache, 1); TwoKeyAVLTreeNode::sNodeCache = - create_object_cache_etc("pkgfs TKAVLTreeNodes", - sizeof(TwoKeyAVLTreeNode), 8, - 0, 0, 0, CACHE_NO_DEPOT, NULL, NULL, NULL, NULL); + create_object_cache("pkgfs TKAVLTreeNodes", + sizeof(TwoKeyAVLTreeNode), CACHE_NO_DEPOT); error = PackageFSRoot::GlobalInit(); if (error != B_OK) { diff --git a/src/add-ons/kernel/file_systems/packagefs/util/ClassCache.h b/src/add-ons/kernel/file_systems/packagefs/util/ClassCache.h index 82eb7551b1..4de1b83ec6 100644 --- a/src/add-ons/kernel/file_systems/packagefs/util/ClassCache.h +++ b/src/add-ons/kernel/file_systems/packagefs/util/ClassCache.h @@ -18,8 +18,8 @@ if (size != sizeof(CLASS)) \ panic("unexpected size passed to operator new!"); \ if (s##CLASS##Cache == NULL) { \ - s##CLASS##Cache = create_object_cache_etc("pkgfs " #CLASS "s", \ - sizeof(CLASS), 8, 0, 0, 0, CACHE_NO_DEPOT, NULL, NULL, NULL, NULL); \ + s##CLASS##Cache = create_object_cache("pkgfs " #CLASS "s", \ + sizeof(CLASS), CACHE_NO_DEPOT); \ } \ \ return object_cache_alloc(s##CLASS##Cache, 0); \ diff --git a/src/add-ons/kernel/network/stack/net_buffer.cpp b/src/add-ons/kernel/network/stack/net_buffer.cpp index 769e796b65..4f64cef52d 100644 --- a/src/add-ons/kernel/network/stack/net_buffer.cpp +++ b/src/add-ons/kernel/network/stack/net_buffer.cpp @@ -2316,12 +2316,12 @@ std_ops(int32 op, ...) // and keep around half-constructed buffers in the slab sNetBufferCache = create_object_cache("net buffer cache", - sizeof(net_buffer_private), 8, NULL, NULL, NULL); + sizeof(net_buffer_private), 0); if (sNetBufferCache == NULL) return B_NO_MEMORY; - sDataNodeCache = create_object_cache("data node cache", BUFFER_SIZE, - 0, NULL, NULL, NULL); + sDataNodeCache = create_object_cache("data node cache", + BUFFER_SIZE, 0); if (sDataNodeCache == NULL) { delete_object_cache(sNetBufferCache); return B_NO_MEMORY; diff --git a/src/libs/compat/freebsd_network/mbuf.c b/src/libs/compat/freebsd_network/mbuf.c index a538a0a25b..0e2d3fb1ed 100644 --- a/src/libs/compat/freebsd_network/mbuf.c +++ b/src/libs/compat/freebsd_network/mbuf.c @@ -317,19 +317,16 @@ init_mbufs() if (status != B_OK) goto clean; - sMBufCache = create_object_cache("mbufs", MSIZE, 8, NULL, NULL, NULL); + sMBufCache = create_object_cache("mbufs", MSIZE, 0); if (sMBufCache == NULL) goto clean; - sChunkCache = create_object_cache("mbuf chunks", MCLBYTES, 0, NULL, NULL, - NULL); + sChunkCache = create_object_cache("mbuf chunks", MCLBYTES, 0); if (sChunkCache == NULL) goto clean; - sJumbo9ChunkCache = create_object_cache("mbuf jumbo9 chunks", MJUM9BYTES, 0, - NULL, NULL, NULL); + sJumbo9ChunkCache = create_object_cache("mbuf jumbo9 chunks", MJUM9BYTES, 0); if (sJumbo9ChunkCache == NULL) goto clean; - sJumboPageSizeCache = create_object_cache("mbuf page size chunks", - MJUMPAGESIZE, 0, NULL, NULL, NULL); + sJumboPageSizeCache = create_object_cache("mbuf page chunks", MJUMPAGESIZE, 0); if (sJumboPageSizeCache == NULL) goto clean; return B_OK; diff --git a/src/system/kernel/cache/block_cache.cpp b/src/system/kernel/cache/block_cache.cpp index de30baf330..4aaced6cc5 100644 --- a/src/system/kernel/cache/block_cache.cpp +++ b/src/system/kernel/cache/block_cache.cpp @@ -2971,13 +2971,13 @@ wait_for_notifications(block_cache* cache) status_t block_cache_init(void) { - sBlockCache = create_object_cache_etc("cached blocks", sizeof(cached_block), - 8, 0, 0, 0, CACHE_LARGE_SLAB, NULL, NULL, NULL, NULL); + sBlockCache = create_object_cache("cached blocks", sizeof(cached_block), + CACHE_LARGE_SLAB); if (sBlockCache == NULL) return B_NO_MEMORY; sCacheNotificationCache = create_object_cache("cache notifications", - sizeof(cache_listener), 8, NULL, NULL, NULL); + sizeof(cache_listener), 0); if (sCacheNotificationCache == NULL) return B_NO_MEMORY; diff --git a/src/system/kernel/fs/fifo.cpp b/src/system/kernel/fs/fifo.cpp index 6f5f4f5dbf..29171dfdc4 100644 --- a/src/system/kernel/fs/fifo.cpp +++ b/src/system/kernel/fs/fifo.cpp @@ -1332,9 +1332,8 @@ create_fifo_vnode(fs_volume* superVolume, fs_vnode* vnode) void fifo_init() { - sRingBufferCache = create_object_cache_etc("fifo ring buffers", - kRingBufferCacheObjectSize, 0, 0, 0, 0, CACHE_NO_DEPOT, - NULL, NULL, NULL, NULL); + sRingBufferCache = create_object_cache("fifo ring buffers", + kRingBufferCacheObjectSize, CACHE_NO_DEPOT); add_debugger_command_etc("fifo", &Inode::Dump, "Print info about the specified FIFO node", diff --git a/src/system/kernel/fs/vfs.cpp b/src/system/kernel/fs/vfs.cpp index d484636b6d..c032622b1b 100644 --- a/src/system/kernel/fs/vfs.cpp +++ b/src/system/kernel/fs/vfs.cpp @@ -5278,18 +5278,18 @@ vfs_init(kernel_args* args) panic("vfs_init: error creating mounts hash table\n"); sPathNameCache = create_object_cache("vfs path names", - B_PATH_NAME_LENGTH, 8, NULL, NULL, NULL); + B_PATH_NAME_LENGTH, 0); if (sPathNameCache == NULL) panic("vfs_init: error creating path name object_cache\n"); object_cache_set_minimum_reserve(sPathNameCache, 1); sVnodeCache = create_object_cache("vfs vnodes", - sizeof(struct vnode), 8, NULL, NULL, NULL); + sizeof(struct vnode), 0); if (sVnodeCache == NULL) panic("vfs_init: error creating vnode object_cache\n"); sFileDescriptorCache = create_object_cache("vfs fds", - sizeof(file_descriptor), 8, NULL, NULL, NULL); + sizeof(file_descriptor), 0); if (sFileDescriptorCache == NULL) panic("vfs_init: error creating file descriptor object_cache\n"); diff --git a/src/system/kernel/slab/Slab.cpp b/src/system/kernel/slab/Slab.cpp index e306eb303a..c4d4e9fae4 100644 --- a/src/system/kernel/slab/Slab.cpp +++ b/src/system/kernel/slab/Slab.cpp @@ -1151,12 +1151,10 @@ object_cache_maintainer(void*) object_cache* -create_object_cache(const char* name, size_t object_size, size_t alignment, - void* cookie, object_cache_constructor constructor, - object_cache_destructor destructor) +create_object_cache(const char* name, size_t object_size, uint32 flags) { - return create_object_cache_etc(name, object_size, alignment, 0, 0, 0, 0, - cookie, constructor, destructor, NULL); + return create_object_cache_etc(name, object_size, 0, 0, 0, 0, flags, + NULL, NULL, NULL, NULL); } diff --git a/src/system/kernel/thread.cpp b/src/system/kernel/thread.cpp index 7064b950d8..3ffdc6f5f5 100644 --- a/src/system/kernel/thread.cpp +++ b/src/system/kernel/thread.cpp @@ -2743,8 +2743,8 @@ thread_init(kernel_args *args) panic("thread_init(): failed to init thread hash table!"); // create the thread structure object cache - sThreadCache = create_object_cache("threads", sizeof(Thread), 64, NULL, - NULL, NULL); + sThreadCache = create_object_cache_etc("threads", sizeof(Thread), 64, + 0, 0, 0, 0, NULL, NULL, NULL, NULL); // Note: The x86 port requires 64 byte alignment of thread structures. if (sThreadCache == NULL) panic("thread_init(): failed to allocate thread object cache!"); diff --git a/src/system/kernel/vm/VMAnonymousCache.cpp b/src/system/kernel/vm/VMAnonymousCache.cpp index b7874246d4..0de4a554b4 100644 --- a/src/system/kernel/vm/VMAnonymousCache.cpp +++ b/src/system/kernel/vm/VMAnonymousCache.cpp @@ -1551,8 +1551,7 @@ void swap_init(void) { // create swap block cache - sSwapBlockCache = create_object_cache("swapblock", sizeof(swap_block), - sizeof(void*), NULL, NULL, NULL); + sSwapBlockCache = create_object_cache("swapblock", sizeof(swap_block), 0); if (sSwapBlockCache == NULL) panic("swap_init(): can't create object cache for swap blocks\n"); diff --git a/src/system/kernel/vm/VMCache.cpp b/src/system/kernel/vm/VMCache.cpp index 03a27bb87b..fb6b66c622 100644 --- a/src/system/kernel/vm/VMCache.cpp +++ b/src/system/kernel/vm/VMCache.cpp @@ -507,20 +507,19 @@ vm_cache_init(kernel_args* args) { // Create object caches for the structures we allocate here. gCacheRefObjectCache = create_object_cache("cache refs", sizeof(VMCacheRef), - 0, NULL, NULL, NULL); + 0); #if ENABLE_SWAP_SUPPORT gAnonymousCacheObjectCache = create_object_cache("anon caches", - sizeof(VMAnonymousCache), 0, NULL, NULL, NULL); + sizeof(VMAnonymousCache), 0); #endif gAnonymousNoSwapCacheObjectCache = create_object_cache( - "anon no-swap caches", sizeof(VMAnonymousNoSwapCache), 0, NULL, NULL, - NULL); + "anon no-swap caches", sizeof(VMAnonymousNoSwapCache), 0); gVnodeCacheObjectCache = create_object_cache("vnode caches", - sizeof(VMVnodeCache), 0, NULL, NULL, NULL); + sizeof(VMVnodeCache), 0); gDeviceCacheObjectCache = create_object_cache("device caches", - sizeof(VMDeviceCache), 0, NULL, NULL, NULL); + sizeof(VMDeviceCache), 0); gNullCacheObjectCache = create_object_cache("null caches", - sizeof(VMNullCache), 0, NULL, NULL, NULL); + sizeof(VMNullCache), 0); if (gCacheRefObjectCache == NULL #if ENABLE_SWAP_SUPPORT diff --git a/src/system/kernel/vm/VMKernelAddressSpace.cpp b/src/system/kernel/vm/VMKernelAddressSpace.cpp index 81c58b9c4d..e4972e6a6c 100644 --- a/src/system/kernel/vm/VMKernelAddressSpace.cpp +++ b/src/system/kernel/vm/VMKernelAddressSpace.cpp @@ -87,12 +87,12 @@ status_t VMKernelAddressSpace::InitObject() { fAreaObjectCache = create_object_cache("kernel areas", - sizeof(VMKernelArea), 0, NULL, NULL, NULL); + sizeof(VMKernelArea), 0); if (fAreaObjectCache == NULL) return B_NO_MEMORY; fRangesObjectCache = create_object_cache("kernel address ranges", - sizeof(Range), 0, NULL, NULL, NULL); + sizeof(Range), 0); if (fRangesObjectCache == NULL) return B_NO_MEMORY; diff --git a/src/tests/add-ons/kernel/kernelland_emu/slab.cpp b/src/tests/add-ons/kernel/kernelland_emu/slab.cpp index 810660cf7d..cca68a850d 100644 --- a/src/tests/add-ons/kernel/kernelland_emu/slab.cpp +++ b/src/tests/add-ons/kernel/kernelland_emu/slab.cpp @@ -31,12 +31,10 @@ struct ObjectCache { object_cache * -create_object_cache(const char *name, size_t objectSize, - size_t alignment, void *cookie, object_cache_constructor constructor, - object_cache_destructor destructor) +create_object_cache(const char *name, size_t object_size, uint32 flags) { - return new(std::nothrow) ObjectCache(name, objectSize, alignment, - 0, 0, cookie, constructor, destructor, NULL); + return create_object_cache_etc(name, object_size, 0, 0, 0, 0, flags, + NULL, NULL, NULL, NULL); }