VSF Documented
libgen.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_LIBGEN_H__
2#define __VSF_LINUX_LIBGEN_H__
3
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10#define VSF_LINUX_LIBGEN_WRAPPER(__api) VSF_SHELL_WRAPPER(vsf_linux_libgen, __api)
11
12#if VSF_LINUX_LIBGEN_CFG_WRAPPER == ENABLED
13#define basename VSF_LINUX_LIBGEN_WRAPPER(basename)
14#define dirname VSF_LINUX_LIBGEN_WRAPPER(dirname)
15#endif
16
17#if VSF_LINUX_APPLET_USE_LIBGEN == ENABLED
20
24# ifndef __VSF_APPLET__
26# endif
27#endif
28
29#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_LIBGEN_LIB__))\
30 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_LIBGEN == ENABLED
31
32#ifndef VSF_LINUX_APPLET_LIBGEN_VPLT
33# if VSF_LINUX_USE_APPLET == ENABLED
34# define VSF_LINUX_APPLET_LIBGEN_VPLT \
35 ((vsf_linux_libgen_vplt_t *)(VSF_LINUX_APPLET_VPLT->libgen_vplt))
36# else
37# define VSF_LINUX_APPLET_LIBGEN_VPLT \
38 ((vsf_linux_libgen_vplt_t *)vsf_vplt((void *)0))
39# endif
40#endif
41
42#define VSF_LINUX_APPLET_LIBGEN_ENTRY(__NAME) \
43 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_LIBGEN_VPLT, __NAME)
44#define VSF_LINUX_APPLET_LIBGEN_IMP(...) \
45 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_LIBGEN_VPLT, __VA_ARGS__)
46
47VSF_LINUX_APPLET_LIBGEN_IMP(basename, char *, char *path) {
49 return VSF_LINUX_APPLET_LIBGEN_ENTRY(basename)(path);
50}
51VSF_LINUX_APPLET_LIBGEN_IMP(dirname, char *, char *path) {
53 return VSF_LINUX_APPLET_LIBGEN_ENTRY(dirname)(path);
54}
55
56#else // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_LIBGEN
57
58char * basename(char *);
59char * dirname(char *);
60
61#endif // __VSF_APPLET__ && VSF_LINUX_APPLET_USE_LIBGEN
62
63#ifdef __cplusplus
64}
65#endif
66
67#endif
#define dirname
Definition libgen.h:14
#define basename
Definition libgen.h:13
__VSF_VPLT_DECORATOR__ vsf_linux_libgen_vplt_t vsf_linux_libgen_vplt
Definition vsf_linux_libgen.c:70
Definition libgen.h:18
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(basename)
vsf_vplt_info_t info
Definition libgen.h:19
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(dirname)
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