Merge branch 'master' into sata-ahci-dev
[lunaix-os.git] / lunaix-os / kernel / mm / valloc.c
index 0c4d4d4020e2167cf85c7a5d304812f80abc144a..631f39ee6f0ccd8070f8882bce4a40193588c1f3 100644 (file)
@@ -1,4 +1,6 @@
+#include <klibc/string.h>
 #include <lunaix/mm/cake.h>
+#include <lunaix/mm/valloc.h>
 
 #define MAX_CLASS 6
 
@@ -8,7 +10,7 @@ static char piles_names[MAX_CLASS][PILE_NAME_MAXLEN] = {
 };
 
 static char piles_names_dma[MAX_CLASS][PILE_NAME_MAXLEN] = {
-    "valloc_dma_128", "valloc_dma_512", "valloc_dma_512",
+    "valloc_dma_128", "valloc_dma_256", "valloc_dma_512",
     "valloc_dma_1k",  "valloc_dma_2k",  "valloc_dma_4k"
 };
 
@@ -64,6 +66,14 @@ valloc(unsigned int size)
     return __valloc(size, &piles);
 }
 
+void*
+vcalloc(unsigned int size)
+{
+    void* ptr = __valloc(size, &piles);
+    memset(ptr, 0, size);
+    return ptr;
+}
+
 void
 vfree(void* ptr)
 {
@@ -76,6 +86,14 @@ valloc_dma(unsigned int size)
     return __valloc(size, &piles_dma);
 }
 
+void*
+vcalloc_dma(unsigned int size)
+{
+    void* ptr = __valloc(size, &piles_dma);
+    memset(ptr, 0, size);
+    return ptr;
+}
+
 void
 vfree_dma(void* ptr)
 {