Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
mm
slab.h
Go to the documentation of this file.
1
#ifndef MM_SLAB_H
2
#define MM_SLAB_H
3
/*
4
* Internal slab definitions
5
*/
6
7
/*
8
* State of the slab allocator.
9
*
10
* This is used to describe the states of the allocator during bootup.
11
* Allocators use this to gradually bootstrap themselves. Most allocators
12
* have the problem that the structures used for managing slab caches are
13
* allocated from slab caches themselves.
14
*/
15
enum
slab_state
{
16
DOWN
,
/* No slab functionality yet */
17
PARTIAL
,
/* SLUB: kmem_cache_node available */
18
PARTIAL_ARRAYCACHE
,
/* SLAB: kmalloc size for arraycache available */
19
PARTIAL_L3
,
/* SLAB: kmalloc size for l3 struct available */
20
UP
,
/* Slab caches usable but not all extras yet */
21
FULL
/* Everything is working */
22
};
23
24
extern
enum
slab_state
slab_state
;
25
26
/* The slab cache mutex protects the management structures during changes */
27
extern
struct
mutex
slab_mutex
;
28
29
/* The list of all slab caches on the system */
30
extern
struct
list_head
slab_caches
;
31
32
/* The slab cache that manages slab cache information */
33
extern
struct
kmem_cache
*
kmem_cache
;
34
35
/* Functions provided by the slab allocators */
36
extern
int
__kmem_cache_create
(
struct
kmem_cache *,
unsigned
long
flags
);
37
38
#ifdef CONFIG_SLUB
39
struct
kmem_cache *
__kmem_cache_alias
(
const
char
*
name
,
size_t
size
,
40
size_t
align
,
unsigned
long
flags
,
void
(*
ctor
)(
void
*));
41
#else
42
static
inline
struct
kmem_cache *
__kmem_cache_alias
(
const
char
*name,
size_t
size,
43
size_t
align,
unsigned
long
flags,
void
(*
ctor
)(
void
*))
44
{
return
NULL
; }
45
#endif
46
47
48
int
__kmem_cache_shutdown
(
struct
kmem_cache *);
49
50
#endif
Generated on Thu Jan 10 2013 14:52:36 for Linux Kernel by
1.8.2