1#ifndef __VSF_LINUX_LIBGEN_H__
2#define __VSF_LINUX_LIBGEN_H__
10#define VSF_LINUX_LIBGEN_WRAPPER(__api) VSF_SHELL_WRAPPER(vsf_linux_libgen, __api)
12#if VSF_LINUX_LIBGEN_CFG_WRAPPER == ENABLED
13#define basename VSF_LINUX_LIBGEN_WRAPPER(basename)
14#define dirname VSF_LINUX_LIBGEN_WRAPPER(dirname)
17#if VSF_LINUX_APPLET_USE_LIBGEN == ENABLED
24# ifndef __VSF_APPLET__
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
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))
37# define VSF_LINUX_APPLET_LIBGEN_VPLT \
38 ((vsf_linux_libgen_vplt_t *)vsf_vplt((void *)0))
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__)
47VSF_LINUX_APPLET_LIBGEN_IMP(
basename,
char *,
char *path) {
49 return VSF_LINUX_APPLET_LIBGEN_ENTRY(
basename)(path);
51VSF_LINUX_APPLET_LIBGEN_IMP(
dirname,
char *,
char *path) {
53 return VSF_LINUX_APPLET_LIBGEN_ENTRY(
dirname)(path);
#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
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(basename)
vsf_vplt_info_t info
Definition libgen.h:19
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(dirname)
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165