123456789101112131415161718192021222324252627282930313233 |
- #ifndef MM_SLAB_H
- #define MM_SLAB_H
- /*
- * Internal slab definitions
- */
- /*
- * State of the slab allocator.
- *
- * This is used to describe the states of the allocator during bootup.
- * Allocators use this to gradually bootstrap themselves. Most allocators
- * have the problem that the structures used for managing slab caches are
- * allocated from slab caches themselves.
- */
- enum slab_state {
- DOWN, /* No slab functionality yet */
- PARTIAL, /* SLUB: kmem_cache_node available */
- PARTIAL_ARRAYCACHE, /* SLAB: kmalloc size for arraycache available */
- PARTIAL_L3, /* SLAB: kmalloc size for l3 struct available */
- UP, /* Slab caches usable but not all extras yet */
- FULL /* Everything is working */
- };
- extern enum slab_state slab_state;
- /* The slab cache mutex protects the management structures during changes */
- extern struct mutex slab_mutex;
- extern struct list_head slab_caches;
- struct kmem_cache *__kmem_cache_create(const char *name, size_t size,
- size_t align, unsigned long flags, void (*ctor)(void *));
- #endif
|