#include #include #include "syscall.h" int getrandom(void *buf, size_t len) { int ret, pre_errno = errno; if (len > 256) { errno = EIO; return -1; } do { ret = syscall(SYS_getrandom, buf, len, 0); } while (ret == -1 && errno == EINTR); if (ret != len) return -1; errno = pre_errno; return 0; }