1 #ifndef __STDC_WANT_LIB_EXT1__
2 #define __STDC_WANT_LIB_EXT1__ 1
5 #include "ruby/missing.h"
30 #ifndef FUNC_UNOPTIMIZED
31 # define FUNC_UNOPTIMIZED(x) x
35 #ifndef HAVE_EXPLICIT_BZERO
36 #ifdef HAVE_EXPLICIT_MEMSET
38 explicit_bzero(
void *b,
size_t len)
40 (void)explicit_memset(b, 0, len);
42 #elif defined HAVE_MEMSET_S
44 explicit_bzero(
void *b,
size_t len)
46 memset_s(b, len, 0, len);
48 #elif defined SecureZeroMemory
50 explicit_bzero(
void *b,
size_t len)
52 SecureZeroMemory(b, len);
55 #elif defined HAVE_FUNC_WEAK
58 WEAK(
void ruby_explicit_bzero_hook_unused(
void *buf,
size_t len));
60 ruby_explicit_bzero_hook_unused(
void *buf,
size_t len)
65 explicit_bzero(
void *b,
size_t len)
68 ruby_explicit_bzero_hook_unused(b, len);
73 FUNC_UNOPTIMIZED(
void explicit_bzero(
void *b,
size_t len));
77 explicit_bzero(
void *b,
size_t len)
85 volatile char* p = (
volatile char*)b;