From 55e86a81b7d5c5c9b30129c8436b626fd7e5747f Mon Sep 17 00:00:00 2001 From: phk Date: Fri, 20 Oct 2000 17:54:55 +0000 Subject: Introduce the M_ZERO flag to malloc(9) Instead of: foo = malloc(sizeof(foo), M_WAIT); bzero(foo, sizeof(foo)); You can now (and please do) use: foo = malloc(sizeof(foo), M_WAIT | M_ZERO); In the future this will enable us to do idle-time pre-zeroing of malloc-space. --- sys/kern/kern_malloc.c | 3 +++ sys/sys/malloc.h | 1 + 2 files changed, 4 insertions(+) (limited to 'sys') diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c index a2e77fd..f268be6 100644 --- a/sys/kern/kern_malloc.c +++ b/sys/kern/kern_malloc.c @@ -280,6 +280,9 @@ out: ksp->ks_maxused = ksp->ks_memuse; splx(s); mtx_exit(&malloc_mtx, MTX_DEF); + /* XXX: Do idle pre-zeroing. */ + if (va != NULL && (flags & M_ZERO)) + bzero(va, size); return ((void *) va); } diff --git a/sys/sys/malloc.h b/sys/sys/malloc.h index 3ea2012..935ec3e 100644 --- a/sys/sys/malloc.h +++ b/sys/sys/malloc.h @@ -46,6 +46,7 @@ #define M_NOWAIT 0x0001 /* do not block */ #define M_USE_RESERVE 0x0002 /* can alloc out of reserve memory */ #define M_ASLEEP 0x0004 /* async sleep on failure */ +#define M_ZERO 0x0008 /* bzero the allocation */ #define M_MAGIC 877983977 /* time when first defined :-) */ -- cgit v1.1