/*
    AUTOMATICALLY GENERATED BY tspec 2.10
    API SUBSET: posix:grp.h (VERSION 2.6)
*/

#ifndef __TDF_POSIX_GRP_H
#define __TDF_POSIX_GRP_H

#ifdef __cplusplus
extern "C" {
#endif

#pragma TenDRA declaration block api__posix__grp begin

#ifndef __TDF_POSIX_SYS_TYPES_H
#pragma extend interface "../posix.api/sys/types.h"
#endif /* __TDF_POSIX_SYS_TYPES_H */
/* This type is abstracted */
#if __STRICT_POSIX
typedef gid_t __local_grp_gid_t;
#else /* __STRICT_POSIX */
#pragma token ARITHMETIC __local_grp_gid_t # posix.grp.__local_grp_gid_t
#pragma token PROC (EXP rvalue : __local_grp_gid_t : ) EXP rvalue : gid_t : __grp_gid2gid # posix.grp.__grp_gid2gid
#pragma token PROC (EXP rvalue : gid_t : ) EXP rvalue : __local_grp_gid_t : __gid2grp_gid # posix.grp.__gid2grp_gid
#ifndef __BUILDING_LIBS
#pragma accept conversion __grp_gid2gid
#pragma accept conversion __gid2grp_gid
#endif /* __BUILDING_LIBS */
#endif /* __STRICT_POSIX */
#pragma token STRUCT TAG group # posix.grp.group
#pragma token MEMBER char * : struct group : gr_name # posix.grp.group.gr_name
#pragma token MEMBER __local_grp_gid_t : struct group : gr_gid # posix.grp.group.gr_gid
#pragma token MEMBER char ** : struct group : gr_mem # posix.grp.group.gr_mem
#pragma token FUNC struct group * (const char *) : getgrnam # posix.grp.getgrnam
#pragma token FUNC struct group * (gid_t) : getgrgid # posix.grp.getgrgid

#if __STRICT_POSIX
#else /* __STRICT_POSIX */
#pragma interface __local_grp_gid_t __grp_gid2gid __gid2grp_gid
#endif /* __STRICT_POSIX */
#pragma interface TAG group TAG group.gr_name TAG group.gr_gid
#pragma interface TAG group.gr_mem getgrnam getgrgid

#pragma TenDRA declaration block end

#ifdef __cplusplus
}
#endif

#endif /* __TDF_POSIX_GRP_H */
