1*a9643ea8Slogwang /* $OpenBSD: explicit_bzero.c,v 1.3 2014/06/21 02:34:26 matthew Exp $ */ 2*a9643ea8Slogwang /* 3*a9643ea8Slogwang * Public domain. 4*a9643ea8Slogwang * Written by Matthew Dempsky. 5*a9643ea8Slogwang */ 6*a9643ea8Slogwang 7*a9643ea8Slogwang #include <sys/cdefs.h> 8*a9643ea8Slogwang __FBSDID("$FreeBSD$"); 9*a9643ea8Slogwang 10*a9643ea8Slogwang #ifdef _KERNEL 11*a9643ea8Slogwang #include <sys/libkern.h> 12*a9643ea8Slogwang #else 13*a9643ea8Slogwang #include <string.h> 14*a9643ea8Slogwang #endif /* _KERNEL */ 15*a9643ea8Slogwang 16*a9643ea8Slogwang __attribute__((weak)) void __explicit_bzero_hook(void *, size_t); 17*a9643ea8Slogwang 18*a9643ea8Slogwang __attribute__((weak)) void __explicit_bzero_hook(void * buf,size_t len)19*a9643ea8Slogwang__explicit_bzero_hook(void *buf, size_t len) 20*a9643ea8Slogwang { 21*a9643ea8Slogwang } 22*a9643ea8Slogwang 23*a9643ea8Slogwang void explicit_bzero(void * buf,size_t len)24*a9643ea8Slogwangexplicit_bzero(void *buf, size_t len) 25*a9643ea8Slogwang { 26*a9643ea8Slogwang memset(buf, 0, len); 27*a9643ea8Slogwang __explicit_bzero_hook(buf, len); 28*a9643ea8Slogwang } 29