1#ifndef __VSF_LINUX_GRP_H__
2#define __VSF_LINUX_GRP_H__
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
16#if VSF_LINUX_CFG_WRAPPER == ENABLED
17# define initgroups VSF_LINUX_WRAPPER(initgroups)
18# define getgroups VSF_LINUX_WRAPPER(getgroups)
19# define setgroups VSF_LINUX_WRAPPER(setgroups)
20# define getgrnam VSF_LINUX_WRAPPER(getgrnam)
21# define getgrgid VSF_LINUX_WRAPPER(getgrgid)
22# define getgrnam_r VSF_LINUX_WRAPPER(getgrnam_r)
23# define getgrgid_r VSF_LINUX_WRAPPER(getgrgid_r)
24# define getgrent VSF_LINUX_WRAPPER(getgrent)
25# define setgrent VSF_LINUX_WRAPPER(setgrent)
26# define endgrent VSF_LINUX_WRAPPER(endgrent)
36#if VSF_LINUX_APPLET_USE_GRP == ENABLED
51# ifndef __VSF_APPLET__
56#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_GRP_LIB__))\
57 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_GRP == ENABLED
59#ifndef VSF_LINUX_APPLET_GRP_VPLT
60# if VSF_LINUX_USE_APPLET == ENABLED
61# define VSF_LINUX_APPLET_GRP_VPLT \
62 ((vsf_linux_grp_vplt_t *)(VSF_LINUX_APPLET_VPLT->grp_vplt))
64# define VSF_LINUX_APPLET_GRP_VPLT \
65 ((vsf_linux_grp_vplt_t *)vsf_vplt((void *)0))
69#define VSF_LINUX_APPLET_GRP_ENTRY(__NAME) \
70 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_GRP_VPLT, __NAME)
71#define VSF_LINUX_APPLET_GRP_IMP(...) \
72 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_GRP_VPLT, __VA_ARGS__)
86VSF_LINUX_APPLET_GRP_IMP(
getgrnam,
struct group *,
const char *name) {
88 return VSF_LINUX_APPLET_GRP_ENTRY(
getgrnam)(name);
92 return VSF_LINUX_APPLET_GRP_ENTRY(
getgrgid)(gid);
94VSF_LINUX_APPLET_GRP_IMP(
getgrnam_r,
int,
const char *name,
struct group *grp,
char *buf,
size_t buflen,
struct group **result) {
96 return VSF_LINUX_APPLET_GRP_ENTRY(
getgrnam_r)(name, grp, buf, buflen, result);
100 return VSF_LINUX_APPLET_GRP_ENTRY(
getgrgid_r)(gid, grp, buf, buflen, result);
104 return VSF_LINUX_APPLET_GRP_ENTRY(
getgrent)();
106VSF_LINUX_APPLET_GRP_IMP(
setgrent,
void,
void) {
108 VSF_LINUX_APPLET_GRP_ENTRY(
setgrent)();
110VSF_LINUX_APPLET_GRP_IMP(
endgrent,
void,
void) {
112 VSF_LINUX_APPLET_GRP_ENTRY(
endgrent)();
123 char *buf,
size_t buflen,
struct group **result);
125 char *buf,
size_t buflen,
struct group **result);
#define getgrent
Definition grp.h:24
__VSF_VPLT_DECORATOR__ vsf_linux_grp_vplt_t vsf_linux_grp_vplt
Definition vsf_linux.c:4960
#define setgroups
Definition grp.h:19
#define getgrgid_r
Definition grp.h:23
#define initgroups
Definition grp.h:17
#define endgrent
Definition grp.h:26
#define getgrnam_r
Definition grp.h:22
#define getgrnam
Definition grp.h:20
#define getgroups
Definition grp.h:18
#define setgrent
Definition grp.h:25
#define getgrgid
Definition grp.h:21
unsigned int gid_t
Definition types.h:91
gid_t gr_gid
Definition grp.h:32
char ** gr_mem
Definition grp.h:33
char * gr_passwd
Definition grp.h:31
char * gr_name
Definition grp.h:30
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getgrnam)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setgroups)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getgroups)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(initgroups)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(endgrent)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getgrgid_r)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getgrnam_r)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getgrgid)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(setgrent)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(getgrent)
vsf_vplt_info_t info
Definition grp.h:38
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165
uint32_t size
Definition vsf_memfs.h:50