/* $NetBSD: pwd.h,v 1.2 2009/01/11 02:46:25 christos Exp $ */ #ifndef _COMPAT_PWD_H_ #define _COMPAT_PWD_H_ #include #include #include struct passwd; struct passwd50 { __aconst char *pw_name; /* user name */ __aconst char *pw_passwd; /* encrypted password */ uid_t pw_uid; /* user uid */ gid_t pw_gid; /* user gid */ int32_t pw_change; /* password change time */ __aconst char *pw_class; /* user login class */ __aconst char *pw_gecos; /* general information */ __aconst char *pw_dir; /* home directory */ __aconst char *pw_shell; /* default shell */ int32_t pw_expire; /* account expiration */ }; __BEGIN_DECLS static __inline void passwd_to_passwd50(const struct passwd *p, struct passwd50 *q) { q->pw_name = p->pw_name; q->pw_passwd = p->pw_passwd; q->pw_uid = p->pw_uid; q->pw_gid = p->pw_gid; q->pw_change = (int32_t)p->pw_change; q->pw_class = p->pw_class; q->pw_gecos = p->pw_gecos; q->pw_dir = p->pw_dir; q->pw_shell = p->pw_shell; q->pw_expire = (int32_t)p->pw_expire; } static __inline void passwd50_to_passwd(const struct passwd50 *p, struct passwd *q) { q->pw_name = p->pw_name; q->pw_passwd = p->pw_passwd; q->pw_uid = p->pw_uid; q->pw_gid = p->pw_gid; q->pw_change = p->pw_change; q->pw_class = p->pw_class; q->pw_gecos = p->pw_gecos; q->pw_dir = p->pw_dir; q->pw_shell = p->pw_shell; q->pw_expire = p->pw_expire; } struct passwd50 *getpwuid(uid_t); struct passwd50 *getpwnam(const char *); #if (_POSIX_C_SOURCE - 0) >= 199506L || (_XOPEN_SOURCE - 0) >= 500 || \ defined(_REENTRANT) || defined(_NETBSD_SOURCE) int getpwnam_r(const char *, struct passwd50 *, char *, size_t, struct passwd50 **); int getpwuid_r(uid_t, struct passwd50 *, char *, size_t, struct passwd50 **); #endif #if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE) struct passwd50 *getpwent(void); #endif #if defined(_NETBSD_SOURCE) int pw_scan(char *, struct passwd50 *, int *); int getpwent_r(struct passwd50 *, char *, size_t, struct passwd50 **); #endif #if defined(_NETBSD_SOURCE) int pwcache_userdb(int (*)(int), void (*)(void), struct passwd50 * (*)(const char *), struct passwd50 * (*)(uid_t)); #endif struct passwd *__getpwuid50(uid_t); struct passwd *__getpwnam50(const char *); #if (_POSIX_C_SOURCE - 0) >= 199506L || (_XOPEN_SOURCE - 0) >= 500 || \ defined(_REENTRANT) || defined(_NETBSD_SOURCE) int __getpwnam_r50(const char *, struct passwd *, char *, size_t, struct passwd **); int __getpwuid_r50(uid_t, struct passwd *, char *, size_t, struct passwd **); #endif #if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE) struct passwd *__getpwent50(void); #endif #if defined(_NETBSD_SOURCE) int __pw_scan50(char *, struct passwd *, int *); int __getpwent_r50(struct passwd *, char *, size_t, struct passwd **); #endif int setpassent(int); #if defined(_NETBSD_SOURCE) int __pwcache_userdb50(int (*)(int), void (*)(void), struct passwd * (*)(const char *), struct passwd * (*)(uid_t)); #endif __END_DECLS #endif /* !_COMPAT_PWD_H_ */