x86: Rename VPD (XCC)
[akaros.git] / kern / include / slab.h
index 6291f2a..28e89a7 100644 (file)
@@ -112,9 +112,11 @@ struct kmem_cache {
        struct kmem_slab_list full_slab_list;
        struct kmem_slab_list partial_slab_list;
        struct kmem_slab_list empty_slab_list;
-       void (*ctor)(void *, size_t);
-       void (*dtor)(void *, size_t);
+       int (*ctor)(void *obj, void *priv, int flags);
+       void (*dtor)(void *obj, void *priv);
+       void *priv;
        unsigned long nr_cur_alloc;
+       unsigned long nr_direct_allocs_ever;
        struct hash_helper hh;
        struct kmem_bufctl_list *alloc_hash;
        struct kmem_bufctl_list static_hash[HASH_INIT_SZ];
@@ -128,8 +130,9 @@ extern struct kmem_cache_tailq all_kmem_caches;
 struct kmem_cache *kmem_cache_create(const char *name, size_t obj_size,
                                      int align, int flags,
                                      struct arena *source,
-                                     void (*ctor)(void *, size_t),
-                                     void (*dtor)(void *, size_t));
+                                     int (*ctor)(void *, void *, int),
+                                     void (*dtor)(void *, void *),
+                                     void *priv);
 void kmem_cache_destroy(struct kmem_cache *cp);
 /* Front end: clients of caches use these */
 void *kmem_cache_alloc(struct kmem_cache *cp, int flags);
@@ -142,9 +145,5 @@ unsigned int kmc_nr_pcpu_caches(void);
 void __kmem_cache_create(struct kmem_cache *kc, const char *name,
                          size_t obj_size, int align, int flags,
                          struct arena *source,
-                         void (*ctor)(void *, size_t),
-                         void (*dtor)(void *, size_t));
-
-/* Debug */
-void print_kmem_cache(struct kmem_cache *kc);
-void print_kmem_slab(struct kmem_slab *slab);
+                         int (*ctor)(void *, void *, int),
+                         void (*dtor)(void *, void *), void *priv);