55,8 → 55,6 |
/* cache_create flags */ |
#define SLAB_CACHE_NOMAGAZINE 0x1 /**< Do not use per-cpu cache */ |
#define SLAB_CACHE_SLINSIDE 0x2 /**< Have control structure inside SLAB */ |
/** We add magazine cache later, if we have this flag */ |
#define SLAB_CACHE_MAGDEFERRED (0x4 | SLAB_CACHE_NOMAGAZINE) |
|
typedef struct { |
link_t link; |
66,13 → 64,6 |
}slab_magazine_t; |
|
typedef struct { |
slab_magazine_t *current; |
slab_magazine_t *last; |
SPINLOCK_DECLARE(lock); |
}slab_mag_cache_t; |
|
|
typedef struct { |
char *name; |
|
link_t link; |
101,7 → 92,11 |
SPINLOCK_DECLARE(maglock); |
|
/** CPU cache */ |
slab_mag_cache_t *mag_cache; |
struct { |
slab_magazine_t *current; |
slab_magazine_t *last; |
SPINLOCK_DECLARE(lock); |
}mag_cache[0]; |
}slab_cache_t; |
|
extern slab_cache_t * slab_cache_create(char *name, |
118,7 → 113,6 |
|
/** Initialize SLAB subsytem */ |
extern void slab_cache_init(void); |
extern void slab_enable_cpucache(void); |
|
/* KConsole debug */ |
extern void slab_print_list(void); |
126,4 → 120,5 |
/* Malloc support */ |
extern void * kalloc(unsigned int size, int flags); |
extern void kfree(void *obj); |
|
#endif |