Physical memory init uses multiboot info
[akaros.git] / kern / include / kmalloc.h
index 93c841b..c2774cf 100644 (file)
@@ -16,9 +16,6 @@
 #define KMALLOC_LARGEST KMALLOC_SMALLEST << NUM_KMALLOC_CACHES
 #define KMALLOC_OFFSET ROUNDUP(sizeof(struct kmalloc_tag), KMALLOC_ALIGNMENT)
 
-void* (DALLOC(n) boot_alloc)(uint32_t n, uint32_t align);
-void* (DALLOC(n*sz) boot_calloc)(uint32_t n, size_t sz, uint32_t align);
-
 void kmalloc_init(void);
 void* (DALLOC(size) kmalloc)(size_t size, int flags);
 void* (DALLOC(size) krealloc)(void* buf, size_t size, int flags);
@@ -32,11 +29,11 @@ void  (DFREE(addr) kfree)(void *addr);
 
 struct kmalloc_tag {
        int flags;
+       uint32_t canary;
        union {
-               struct kmem_cache *my_cache;
-               size_t num_pages;
+               struct kmem_cache *my_cache WHEN(flags == KMALLOC_TAG_CACHE);
+               size_t num_pages WHEN(flags == KMALLOC_TAG_PAGES);
        };
-       uint32_t canary;
 };
 
 #endif //ROS_KERN_KMALLOC_H