GRND_NONBLOCK
gflags |= GRND_NONBLOCK;
if (flags & ~(GRND_RANDOM|GRND_INSECURE|GRND_NONBLOCK)) {
KASSERT((flags & ~(GRND_RANDOM|GRND_INSECURE|GRND_NONBLOCK)) == 0);
if (!ISSET(flags, GRND_NONBLOCK) && !ISSET(flags, GRND_INSECURE))
n = getrandom(buf, sizeof buf, GRND_NONBLOCK);
n = getrandom(buf, sizeof buf, GRND_INSECURE|GRND_NONBLOCK);
n = getrandom(buf, sizeof buf, GRND_RANDOM|GRND_NONBLOCK);
GRND_RANDOM|GRND_INSECURE|GRND_NONBLOCK);
__CTASSERT(~(GRND_RANDOM|GRND_INSECURE|GRND_NONBLOCK));
~(GRND_RANDOM|GRND_INSECURE|GRND_NONBLOCK));
n = getrandom(NULL, sizeof buf, GRND_INSECURE|GRND_NONBLOCK);