VSF Documented
reent.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_SYS_REENT_H__
2#define __VSF_LINUX_SYS_REENT_H__
3
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10struct _reent {
11 int _errno;
12};
13
14#define __errno_r(r) ((r)->_errno)
15
16extern struct _reent *__vsf_linux_getreent(void);
17#define __getreent() __vsf_linux_getreent()
18
19#if VSF_LINUX_APPLET_USE_REENT == ENABLED
20typedef struct vsf_linux_reent_vplt_t {
22
24 // implement __vsf_linux_errno for compatibility because older image need this
27# ifndef __VSF_APPLET__
29# endif
30#endif
31
32#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_REENT_LIB__))\
33 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_REENT == ENABLED
34
35#ifndef VSF_LINUX_APPLET_REENT_VPLT
36# if VSF_LINUX_USE_APPLET == ENABLED
37# define VSF_LINUX_APPLET_REENT_VPLT \
38 ((vsf_linux_reent_vplt_t *)(VSF_LINUX_APPLET_VPLT->reent_vplt))
39# else
40# define VSF_LINUX_APPLET_REENT_VPLT \
41 ((vsf_linux_reent_vplt_t *)vsf_vplt((void *)0))
42# endif
43#endif
44
45#define VSF_LINUX_APPLET_REENT_ENTRY(__NAME) \
46 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_REENT_VPLT, __NAME)
47#define VSF_LINUX_APPLET_REENT_IMP(...) \
48 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_REENT_VPLT, __VA_ARGS__)
49
50VSF_LINUX_APPLET_REENT_IMP(__vsf_linux_getreent, struct _reent *, void) {
52 return VSF_LINUX_APPLET_REENT_ENTRY(__vsf_linux_getreent)();
53}
54
55VSF_LINUX_APPLET_REENT_IMP(__vsf_linux_errno, int *, void) {
57 return VSF_LINUX_APPLET_REENT_ENTRY(__vsf_linux_errno)();
58}
59
60#else
61
62extern struct _reent *__vsf_linux_getreent(void);
63extern int * __vsf_linux_errno(void);
64
65#endif
66
67#ifdef __cplusplus
68}
69#endif
70
71#endif // __VSF_LINUX_SYS_REENT_H__
struct _reent * __vsf_linux_getreent(void)
Definition vsf_linux.c:776
int * __vsf_linux_errno(void)
Definition vsf_linux.c:783
__VSF_VPLT_DECORATOR__ vsf_linux_reent_vplt_t vsf_linux_reent_vplt
Definition vsf_linux.c:5100
Definition reent.h:10
int _errno
Definition reent.h:11
Definition reent.h:20
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(__vsf_linux_errno)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(__vsf_linux_getreent)
vsf_vplt_info_t info
Definition reent.h:21
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
Generated from commit: vsfteam/vsf@3b461d0