VSF Documented
random.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_SYS_RANDOM_H__
2#define __VSF_LINUX_SYS_RANDOM_H__
3
5#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
6# include "../sys/types.h"
7#else
8# include <sys/types.h>
9#endif
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15#if VSF_LINUX_CFG_WRAPPER == ENABLED
16#define getrandom VSF_LINUX_WRAPPER(getrandom)
17#endif
18
19#define GRND_NONBLOCK 0x0001
20#define GRND_RANDOM 0x0002
21
22#if VSF_LINUX_APPLET_USE_SYS_RANDOM == ENABLED
25
28# ifndef __VSF_APPLET__
30# endif
31#endif
32
33#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_SYS_RANDOM_LIB__))\
34 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_SYS_RANDOM == ENABLED
35
36#ifndef VSF_LINUX_APPLET_SYS_RANDOM_VPLT
37# if VSF_LINUX_USE_APPLET == ENABLED
38# define VSF_LINUX_APPLET_SYS_RANDOM_VPLT \
39 ((vsf_linux_sys_random_vplt_t *)(VSF_LINUX_APPLET_VPLT->sys_random_vplt))
40# else
41# define VSF_LINUX_APPLET_SYS_RANDOM_VPLT \
42 ((vsf_linux_sys_random_vplt_t *)vsf_vplt((void *)0))
43# endif
44#endif
45
46#define VSF_LINUX_APPLET_SYS_RANDOM_ENTRY(__NAME) \
47 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_SYS_RANDOM_VPLT, __NAME)
48#define VSF_LINUX_APPLET_SYS_RANDOM_IMP(...) \
49 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_SYS_RANDOM_VPLT, __VA_ARGS__)
50
51VSF_LINUX_APPLET_SYS_RANDOM_IMP(getrandom, ssize_t, void *buf, size_t buflen, unsigned int flags) {
53 return VSF_LINUX_APPLET_SYS_RANDOM_ENTRY(getrandom)(buf, buflen, flags);
54}
55
56#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_SYS_RANDOM
57
58ssize_t getrandom(void *buf, size_t buflen, unsigned int flags);
59
60#endif // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_SYS_RANDOM
61
62#ifdef __cplusplus
63}
64#endif
65
66#endif
int ssize_t
Definition types.h:68
Definition random.h:23
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getrandom)
vsf_vplt_info_t info
Definition random.h:24
__VSF_VPLT_DECORATOR__ vsf_linux_sys_random_vplt_t vsf_linux_sys_random_vplt
Definition vsf_linux.c:4737
#define getrandom
Definition random.h:16
Definition vsf_cfg.h:95
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165