Index: linux-2.6.18-rc4/include/linux/slabifier.h =================================================================== --- linux-2.6.18-rc4.orig/include/linux/slabifier.h 2006-08-09 20:05:37.958793371 -0700 +++ linux-2.6.18-rc4/include/linux/slabifier.h 2006-08-09 20:10:14.759071845 -0700 @@ -41,7 +41,7 @@ struct slab { * on and off lists and therefore influences sslab overhead. */ -extern int slab_create(struct slab *s, size_t size, int order, gfp_t flags); +extern int slab_create(struct slab *s, size_t size, int order, struct allocator *); extern void *slab_alloc(struct slab *, gfp_t); extern void *slab_zalloc(struct slab *, gfp_t); @@ -77,3 +77,13 @@ extern int slab_pointer_valid(struct sla extern unsigned long slab_objects(struct slab *); +/* Slab allocators */ +struct slab_allocator { + struct page *(*allocate)(int order, gfp_t flags); + void (*free)(int order); +}; + +extern struct slab_allocator page_allocator; +extern struct slab_allocator vmalloc_alloc; +extern struct slab_allocator uncached_alloc; +