]> mj.ucw.cz Git - libucw.git/commitdiff
lib: added {big,page}_alloc_zero routines
authorPavel Charvat <pavel.charvat@netcentrum.cz>
Fri, 1 Jun 2007 12:40:02 +0000 (14:40 +0200)
committerPavel Charvat <pavel.charvat@netcentrum.cz>
Fri, 1 Jun 2007 12:40:02 +0000 (14:40 +0200)
lib/bigalloc.c
lib/lib.h

index a1060e60be7d3cb7185bfff87b4f4c92aa33083f..ee84b7b5e6efa0362e6047391a9433f9b6d4ad1e 100644 (file)
@@ -26,6 +26,14 @@ page_alloc(u64 len)
   return p;
 }
 
+void *
+page_alloc_zero(u64 len)
+{
+  void *p = page_alloc(len);
+  bzero(p, len);
+  return p;
+}
+
 void
 page_free(void *start, u64 len)
 {
@@ -67,6 +75,14 @@ big_alloc(u64 len)
   return p;
 }
 
+void *
+big_alloc_zero(u64 len)
+{
+  void *p = big_alloc(len);
+  bzero(p, big_round(len));
+  return p;
+}
+
 void
 big_free(void *start, u64 len)
 {
index 7e0e7f094097e430f7ccadc385ce926bd86c57a8..92c891526767e8b7333c55900596a15d266ebbeb 100644 (file)
--- a/lib/lib.h
+++ b/lib/lib.h
@@ -269,10 +269,12 @@ byte *str_format_flags(byte *dest, const byte *fmt, uns flags);
 /* bigalloc.c */
 
 void *page_alloc(u64 len) LIKE_MALLOC; // allocates a multiple of CPU_PAGE_SIZE bytes with mmap
+void *page_alloc_zero(u64 len) LIKE_MALLOC;
 void page_free(void *start, u64 len);
 void *page_realloc(void *start, u64 old_len, u64 new_len);
 
 void *big_alloc(u64 len) LIKE_MALLOC; // allocate a large memory block in the most efficient way available
+void *big_alloc_zero(u64 len) LIKE_MALLOC;
 void big_free(void *start, u64 len);
 
 #endif