Added weak attribute definition
[akaros.git] / kern / include / kmalloc.h
index 09ff188..1c06403 100644 (file)
@@ -5,8 +5,7 @@
  * Kevin Klues <klueska@cs.berkeley.edu>    
  */
 
-#ifndef ROS_KERN_KMALLOC_H
-#define ROS_KERN_KMALLOC_H
+#pragma once
 
 #include <ros/common.h>
 #include <kref.h>
 #define KMALLOC_LARGEST KMALLOC_SMALLEST << NUM_KMALLOC_CACHES
 
 void kmalloc_init(void);
-void* kmalloc(size_t size, int flags);
-void* kzmalloc(size_t size, int flags);
+void *kmalloc(size_t size, int flags);
+void *kmalloc_array(size_t nmemb, size_t size, int flags);
+void *kzmalloc(size_t size, int flags);
 void *kmalloc_align(size_t size, int flags, size_t align);
 void *kzmalloc_align(size_t size, int flags, size_t align);
 void *krealloc(void *buf, size_t size, int flags);
+void *kreallocarray(void *buf, size_t nmemb, size_t size, int flags);
 int kmalloc_refcnt(void *buf);
 void kmalloc_incref(void *buf);
 void kfree(void *buf);
@@ -30,7 +31,8 @@ void *debug_canary;
 
 /* Flags to pass to kmalloc */
 /* Not implemented yet. Block until it is available. */
-#define KMALLOC_WAIT                   4
+#define KMALLOC_WAIT                   (1 << 2)
+#define KMALLOC_ERROR                  (1 << 3)
 
 /* Kmalloc tag flags looks like this:
  *
@@ -58,6 +60,3 @@ struct kmalloc_tag {
        uint32_t canary;
        int flags;
 };
-
-#endif //ROS_KERN_KMALLOC_H
-