blob: 92dcf34ee31cc9a1df8f2e7091bf385a1cf7f9f7 [file] [log] [blame]
/**
* D header file for POSIX.
*
* Copyright: Copyright Sean Kelly 2005 - 2009, Sönke Ludwig 2013.
* License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
* Authors: Sean Kelly, Alex Rønne Petersen, Sönke Ludwig
* Standards: The Open Group Base Specifications Issue 6, IEEE Std 1003.1, 2004 Edition
*/
/* Copyright Sean Kelly 2005 - 2009.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
module core.sys.posix.grp;
import core.sys.posix.config;
public import core.sys.posix.sys.types; // for gid_t, uid_t
version (OSX)
version = Darwin;
else version (iOS)
version = Darwin;
else version (TVOS)
version = Darwin;
else version (WatchOS)
version = Darwin;
version (Posix):
extern (C):
nothrow:
@nogc:
@system:
//
// Required
//
/*
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
group* getgrnam(const scope char*);
group* getgrgid(gid_t);
*/
version (CRuntime_Glibc)
{
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
}
else version (Darwin)
{
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
}
else version (FreeBSD)
{
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
}
else version (NetBSD)
{
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
}
else version (OpenBSD)
{
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
}
else version (DragonFlyBSD)
{
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
}
else version (Solaris)
{
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
}
else version (CRuntime_Bionic)
{
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
}
else version (CRuntime_UClibc)
{
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
}
else version (CRuntime_Musl)
{
struct group
{
char* gr_name;
char* gr_passwd;
gid_t gr_gid;
char** gr_mem;
}
}
else
{
static assert(false, "Unsupported platform");
}
group* getgrnam(const scope char*);
group* getgrgid(gid_t);
//
// Thread-Safe Functions (TSF)
//
/*
int getgrnam_r(const scope char*, group*, char*, size_t, group**);
int getgrgid_r(gid_t, group*, char*, size_t, group**);
*/
version (CRuntime_Glibc)
{
int getgrnam_r(const scope char*, group*, char*, size_t, group**);
int getgrgid_r(gid_t, group*, char*, size_t, group**);
}
else version (Darwin)
{
int getgrnam_r(const scope char*, group*, char*, size_t, group**);
int getgrgid_r(gid_t, group*, char*, size_t, group**);
}
else version (FreeBSD)
{
int getgrnam_r(const scope char*, group*, char*, size_t, group**);
int getgrgid_r(gid_t, group*, char*, size_t, group**);
}
else version (NetBSD)
{
int getgrnam_r(const scope char*, group*, char*, size_t, group**);
int getgrgid_r(gid_t, group*, char*, size_t, group**);
}
else version (OpenBSD)
{
int getgrnam_r(const scope char*, group*, char*, size_t, group**);
int getgrgid_r(gid_t, group*, char*, size_t, group**);
}
else version (DragonFlyBSD)
{
int getgrnam_r(const scope char*, group*, char*, size_t, group**);
int getgrgid_r(gid_t, group*, char*, size_t, group**);
}
else version (Solaris)
{
int getgrnam_r(const scope char*, group*, char*, int, group**);
int getgrgid_r(gid_t, group*, char*, int, group**);
}
else version (CRuntime_Bionic)
{
}
else version (CRuntime_UClibc)
{
int getgrnam_r(const scope char*, group*, char*, size_t, group**);
int getgrgid_r(gid_t, group*, char*, size_t, group**);
}
else version (CRuntime_Musl)
{
int getgrnam_r(const scope char*, group*, char*, size_t, group**);
int getgrgid_r(gid_t, group*, char*, size_t, group**);
}
else
{
static assert(false, "Unsupported platform");
}
//
// XOpen (XSI)
//
/*
struct group *getgrent(void);
void endgrent(void);
void setgrent(void);
*/
version (CRuntime_Glibc)
{
group* getgrent();
@trusted void endgrent();
@trusted void setgrent();
}
else version (Darwin)
{
group* getgrent();
@trusted void endgrent();
@trusted void setgrent();
}
else version (FreeBSD)
{
group* getgrent();
@trusted void endgrent();
@trusted void setgrent();
}
else version (NetBSD)
{
group* getgrent();
@trusted void endgrent();
@trusted void setgrent();
}
else version (OpenBSD)
{
group* getgrent();
@trusted void endgrent();
@trusted void setgrent();
}
else version (DragonFlyBSD)
{
group* getgrent();
@trusted void endgrent();
@trusted void setgrent();
}
else version (Solaris)
{
group* getgrent();
@trusted void endgrent();
@trusted void setgrent();
}
else version (CRuntime_Bionic)
{
}
else version (CRuntime_UClibc)
{
group* getgrent();
@trusted void endgrent();
@trusted void setgrent();
}
else version (CRuntime_Musl)
{
group* getgrent();
@trusted void endgrent();
@trusted void setgrent();
}
else
{
static assert(false, "Unsupported platform");
}