mirror of
https://github.com/ish-app/ish.git
synced 2026-01-18 13:57:29 +00:00
19 lines
457 B
C
19 lines
457 B
C
#include <fcntl.h>
|
|
#include "kernel/calls.h"
|
|
|
|
dword_t sys_getrandom(addr_t buf_addr, dword_t len, dword_t flags) {
|
|
if (len > 256)
|
|
return _EIO;
|
|
char buf[len];
|
|
int dev_random = open("/dev/urandom", O_RDONLY);
|
|
if (dev_random < 0)
|
|
return _EIO;
|
|
int err = read(dev_random, buf, len);
|
|
close(dev_random);
|
|
if (err < 0)
|
|
return _EIO;
|
|
if (user_write(buf_addr, buf, len))
|
|
return _EFAULT;
|
|
return len;
|
|
}
|