#ifdef __KLIBC__ #ifndef KLIBC_FIXUPS_H #define KLIBC_FIXUPS_H struct passwd { char *pw_name; /* user name */ char *pw_passwd; /* user password */ uid_t pw_uid; /* user id */ gid_t pw_gid; /* group id */ char *pw_gecos; /* real name */ char *pw_dir; /* home directory */ char *pw_shell; /* shell program */ }; struct group { char *gr_name; /* group name */ char *gr_passwd; /* group password */ gid_t gr_gid; /* group id */ char **gr_mem; /* group members */ }; struct passwd *getpwnam(const char *name); struct group *getgrnam(const char *name); #define UT_LINESIZE 32 #define UT_NAMESIZE 32 #define UT_HOSTSIZE 256 #define USER_PROCESS 7 /* normal process */ #define ut_time ut_tv.tv_sec extern int ufd; struct exit_status { short int e_termination; /* process termination status */ short int e_exit; /* process exit status */ }; struct utmp { short int ut_type; /* type of login */ pid_t ut_pid; /* pid of login process */ char ut_line[UT_LINESIZE]; /* devicename */ char ut_id[4]; /* Inittab id */ char ut_user[UT_NAMESIZE]; /* username */ char ut_host[UT_HOSTSIZE]; /* hostname for remote login */ struct exit_status ut_exit; /* exit status of a process marked as DEAD_PROCESS */ /* The ut_session and ut_tv fields must be the same size for 32 and 64-bit */ #if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32 int32_t ut_session; /* sid used for windowing */ struct { int32_t tv_sec; /* seconds */ int32_t tv_usec; /* microseconds */ } ut_tv; #else long int ut_session; struct timeval ut_tv; #endif int32_t ut_addr_v6[4]; /* internet address of remote host */ char __unused[20]; /* reserved for future use */ }; struct utmp *getutent(void); void setutent(void); void endutent(void); #endif /* KLIBC_FIXUPS_H */ #endif /* __KLIBC__ */