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:
Hugo Santos
2007-04-28 18:53:58 +00:00
parent fd62d01f27
commit 11b5020f2f
14 changed files with 647 additions and 943 deletions
+9 -16
View File
@@ -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)
{