1 /* SPDX-License-Identifier: GPL-2.0 */ 2 3 #ifndef __ASM_VDSO_GETRANDOM_H 4 #define __ASM_VDSO_GETRANDOM_H 5 6 #ifndef __ASSEMBLY__ 7 8 #include <vdso/datapage.h> 9 #include <asm/vdso/vsyscall.h> 10 #include <asm/syscall.h> 11 #include <asm/unistd.h> 12 #include <asm/page.h> 13 14 /** 15 * getrandom_syscall - Invoke the getrandom() syscall. 16 * @buffer: Destination buffer to fill with random bytes. 17 * @len: Size of @buffer in bytes. 18 * @flags: Zero or more GRND_* flags. 19 * Returns: The number of random bytes written to @buffer, or a negative value indicating an error. 20 */ getrandom_syscall(void * buffer,size_t len,unsigned int flags)21static __always_inline ssize_t getrandom_syscall(void *buffer, size_t len, unsigned int flags) 22 { 23 return syscall3(__NR_getrandom, (long)buffer, (long)len, (long)flags); 24 } 25 26 #endif /* !__ASSEMBLY__ */ 27 28 #endif /* __ASM_VDSO_GETRANDOM_H */ 29