~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux/include/linux/slab.h

Version: ~ [ 2.4.0 ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * linux/mm/slab.h
  3  * Written by Mark Hemment, 1996.
  4  * (markhe@nextd.demon.co.uk)
  5  */
  6 
  7 #if     !defined(_LINUX_SLAB_H)
  8 #define _LINUX_SLAB_H
  9 
 10 #if     defined(__KERNEL__)
 11 
 12 typedef struct kmem_cache_s kmem_cache_t;
 13 
 14 #include        <linux/mm.h>
 15 #include        <linux/cache.h>
 16 
 17 /* flags for kmem_cache_alloc() */
 18 #define SLAB_BUFFER             GFP_BUFFER
 19 #define SLAB_ATOMIC             GFP_ATOMIC
 20 #define SLAB_USER               GFP_USER
 21 #define SLAB_KERNEL             GFP_KERNEL
 22 #define SLAB_NFS                GFP_NFS
 23 #define SLAB_DMA                GFP_DMA
 24 
 25 #define SLAB_LEVEL_MASK         (__GFP_WAIT|__GFP_HIGH|__GFP_IO)
 26 #define SLAB_NO_GROW            0x00001000UL    /* don't grow a cache */
 27 
 28 /* flags to pass to kmem_cache_create().
 29  * The first 3 are only valid when the allocator as been build
 30  * SLAB_DEBUG_SUPPORT.
 31  */
 32 #define SLAB_DEBUG_FREE         0x00000100UL    /* Peform (expensive) checks on free */
 33 #define SLAB_DEBUG_INITIAL      0x00000200UL    /* Call constructor (as verifier) */
 34 #define SLAB_RED_ZONE           0x00000400UL    /* Red zone objs in a cache */
 35 #define SLAB_POISON             0x00000800UL    /* Poison objects */
 36 #define SLAB_NO_REAP            0x00001000UL    /* never reap from the cache */
 37 #define SLAB_HWCACHE_ALIGN      0x00002000UL    /* align objs on a h/w cache lines */
 38 #define SLAB_CACHE_DMA          0x00004000UL    /* use GFP_DMA memory */
 39 
 40 /* flags passed to a constructor func */
 41 #define SLAB_CTOR_CONSTRUCTOR   0x001UL         /* if not set, then deconstructor */
 42 #define SLAB_CTOR_ATOMIC        0x002UL         /* tell constructor it can't sleep */
 43 #define SLAB_CTOR_VERIFY        0x004UL         /* tell constructor it's a verify call */
 44 
 45 /* prototypes */
 46 extern void kmem_cache_init(void);
 47 extern void kmem_cache_sizes_init(void);
 48 
 49 extern kmem_cache_t *kmem_find_general_cachep(size_t, int gfpflags);
 50 extern kmem_cache_t *kmem_cache_create(const char *, size_t, size_t, unsigned long,
 51                                        void (*)(void *, kmem_cache_t *, unsigned long),
 52                                        void (*)(void *, kmem_cache_t *, unsigned long));
 53 extern int kmem_cache_destroy(kmem_cache_t *);
 54 extern int kmem_cache_shrink(kmem_cache_t *);
 55 extern void *kmem_cache_alloc(kmem_cache_t *, int);
 56 extern void kmem_cache_free(kmem_cache_t *, void *);
 57 
 58 extern void *kmalloc(size_t, int);
 59 extern void kfree(const void *);
 60 
 61 extern void kmem_cache_reap(int);
 62 extern int slabinfo_read_proc(char *page, char **start, off_t off,
 63                                  int count, int *eof, void *data);
 64 extern int slabinfo_write_proc(struct file *file, const char *buffer,
 65                            unsigned long count, void *data);
 66 
 67 /* System wide caches */
 68 extern kmem_cache_t     *vm_area_cachep;
 69 extern kmem_cache_t     *mm_cachep;
 70 extern kmem_cache_t     *names_cachep;
 71 extern kmem_cache_t     *files_cachep;
 72 extern kmem_cache_t     *filp_cachep;
 73 extern kmem_cache_t     *dquot_cachep;
 74 extern kmem_cache_t     *bh_cachep;
 75 extern kmem_cache_t     *fs_cachep;
 76 extern kmem_cache_t     *sigact_cachep;
 77 
 78 #endif  /* __KERNEL__ */
 79 
 80 #endif  /* _LINUX_SLAB_H */
 81 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.