rewrote the object cache (slab) implementation a bit, preparing for further integration.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20887 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -18,29 +18,22 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct depot_magazine {
|
||||
struct depot_magazine *next;
|
||||
uint16_t current_round, round_count;
|
||||
void *rounds[0];
|
||||
} depot_magazine;
|
||||
typedef struct base_depot {
|
||||
benaphore lock;
|
||||
struct depot_magazine *full, *empty;
|
||||
size_t full_count, empty_count;
|
||||
struct depot_cpu_store *stores;
|
||||
|
||||
void (*return_object)(struct base_depot *depot, void *object);
|
||||
} base_depot;
|
||||
|
||||
|
||||
typedef struct depot_cpu_store {
|
||||
benaphore lock;
|
||||
depot_magazine *loaded, *previous;
|
||||
struct depot_magazine *loaded, *previous;
|
||||
} depot_cpu_store;
|
||||
|
||||
|
||||
typedef struct base_depot {
|
||||
benaphore lock;
|
||||
depot_magazine *full, *empty;
|
||||
size_t full_count, empty_count;
|
||||
depot_cpu_store *stores;
|
||||
|
||||
void (*return_object)(base_depot *depot, void *object);
|
||||
} base_depot;
|
||||
|
||||
|
||||
static inline depot_cpu_store *
|
||||
base_depot_cpu(base_depot *depot)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user