summaryrefslogtreecommitdiffstats
path: root/newlib/libc/include/pwd.h
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/include/pwd.h')
-rw-r--r--newlib/libc/include/pwd.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/newlib/libc/include/pwd.h b/newlib/libc/include/pwd.h
index 1526abfb6..d849f5fe4 100644
--- a/newlib/libc/include/pwd.h
+++ b/newlib/libc/include/pwd.h
@@ -41,7 +41,7 @@ extern "C" {
#include <sys/types.h>
-#ifndef _POSIX_SOURCE
+#if __BSD_VISIBLE
#define _PATH_PASSWD "/etc/passwd"
#define _PASSWORD_LEN 128 /* max length, not counting NULL */
@@ -61,16 +61,24 @@ struct passwd {
#ifndef __INSIDE_CYGWIN__
struct passwd *getpwuid (uid_t);
struct passwd *getpwnam (const char *);
+
+#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500
int getpwnam_r (const char *, struct passwd *,
char *, size_t , struct passwd **);
int getpwuid_r (uid_t, struct passwd *, char *,
size_t, struct passwd **);
-#ifndef _POSIX_SOURCE
+#endif
+
+#if __XSI_VISIBLE >= 500
struct passwd *getpwent (void);
void setpwent (void);
void endpwent (void);
#endif
+
+#if __BSD_VISIBLE
+int setpassent (int);
#endif
+#endif /*!__INSIDE_CYGWIN__*/
#ifdef __cplusplus
}