Add userspace implementation of getrandom() for FreeBSD 11

This commit is contained in:
Gleb Popov 2021-02-25 09:49:07 +03:00 committed by Wim Taymans
parent 087811e171
commit 9f53057b51

View file

@ -29,6 +29,24 @@
#endif
#include <sys/random.h>
#ifdef __FreeBSD__
#include <sys/param.h>
#include <fcntl.h>
// FreeBSD versions < 12 do not have getrandom() syscall
// Give a poor-man implementation here
// Can be removed after September 30, 2021
#if __FreeBSD_version < 1200000
ssize_t getrandom(void *buf, size_t buflen, unsigned int flags) {
int fd = open("/dev/random", O_CLOEXEC);
if (fd < 0)
return -1;
ssize_t bytes = read(fd, buf, buflen);
close(fd);
return bytes;
}
#endif
#endif
#include <spa/debug/types.h>
#include "pipewire/impl.h"