Hi Johannes, Thanks for the review. On Wed, Jul 13, 2022 at 09:05:03AM +0200, Johannes Berg wrote: > On Wed, 2022-07-13 at 01:27 +0200, Jason A. Donenfeld wrote: > > > > +++ b/arch/um/include/shared/os.h > > @@ -11,6 +11,12 @@ > > #include <irq_user.h> > > #include <longjmp.h> > > #include <mm_id.h> > > +/* This is to get size_t */ > > +#ifndef __UM_HOST__ > > +#include <linux/types.h> > > +#else > > +#include <stddef.h> > > +#endif > > > > #define CATCH_EINTR(expr) while ((errno = 0, ((expr) < 0)) && (errno == EINTR)) > > > > @@ -243,6 +249,7 @@ extern void stack_protections(unsigned long address); > > extern int raw(int fd); > > extern void setup_machinename(char *machine_out); > > extern void setup_hostinfo(char *buf, int len); > > +extern ssize_t os_getrandom(void *buf, size_t len, unsigned int flags); > > For me, this doesn't compile, and per the man-page on my system, ssize_t > requires <sys/types.h>, not <stddef.h>? What you say about types.h strikes me as true from how libc programming usually works everywhere else. But I actually copy and pasted that snippet, including the comment, from user.h. So I guess user.h doesn't break because of something else. Anyway, I'll change it to sys/types.h and send a v2. Jason