|
@@ -45,6 +45,31 @@ static inline struct kmem_cache *__kmem_cache_alias(const char *name, size_t siz
|
|
|
#endif
|
|
|
|
|
|
|
|
|
+/* Legal flag mask for kmem_cache_create(), for various configurations */
|
|
|
+#define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | SLAB_PANIC | \
|
|
|
+ SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS )
|
|
|
+
|
|
|
+#if defined(CONFIG_DEBUG_SLAB)
|
|
|
+#define SLAB_DEBUG_FLAGS (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER)
|
|
|
+#elif defined(CONFIG_SLUB_DEBUG)
|
|
|
+#define SLAB_DEBUG_FLAGS (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER | \
|
|
|
+ SLAB_TRACE | SLAB_DEBUG_FREE)
|
|
|
+#else
|
|
|
+#define SLAB_DEBUG_FLAGS (0)
|
|
|
+#endif
|
|
|
+
|
|
|
+#if defined(CONFIG_SLAB)
|
|
|
+#define SLAB_CACHE_FLAGS (SLAB_MEM_SPREAD | SLAB_NOLEAKTRACE | \
|
|
|
+ SLAB_RECLAIM_ACCOUNT | SLAB_TEMPORARY | SLAB_NOTRACK)
|
|
|
+#elif defined(CONFIG_SLUB)
|
|
|
+#define SLAB_CACHE_FLAGS (SLAB_NOLEAKTRACE | SLAB_RECLAIM_ACCOUNT | \
|
|
|
+ SLAB_TEMPORARY | SLAB_NOTRACK)
|
|
|
+#else
|
|
|
+#define SLAB_CACHE_FLAGS (0)
|
|
|
+#endif
|
|
|
+
|
|
|
+#define CACHE_CREATE_MASK (SLAB_CORE_FLAGS | SLAB_DEBUG_FLAGS | SLAB_CACHE_FLAGS)
|
|
|
+
|
|
|
int __kmem_cache_shutdown(struct kmem_cache *);
|
|
|
|
|
|
struct seq_file;
|