From 1386442ebc5b681b0ded431880198e3beb6da483 Mon Sep 17 00:00:00 2001 From: Pavel Charvat Date: Fri, 1 Jun 2007 14:40:02 +0200 Subject: [PATCH] lib: added {big,page}_alloc_zero routines --- lib/bigalloc.c | 16 ++++++++++++++++ lib/lib.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/lib/bigalloc.c b/lib/bigalloc.c index a1060e60..ee84b7b5 100644 --- a/lib/bigalloc.c +++ b/lib/bigalloc.c @@ -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) { diff --git a/lib/lib.h b/lib/lib.h index 7e0e7f09..92c89152 100644 --- 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 -- 2.39.2