X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=klibc_fixups.h;h=f6c91cdd9444fb61e11055a19417c85fd191b409;hp=a89638ead4b428e27eac67b3d463882e37b28e89;hb=27c3403dd810e53f6c9b8dffe34af7798a4b52d3;hpb=fee6f4150d0d5fbfc1ba74130bac1ae21ce69c81 diff --git a/klibc_fixups.h b/klibc_fixups.h index a89638ead..f6c91cdd9 100644 --- a/klibc_fixups.h +++ b/klibc_fixups.h @@ -1,8 +1,17 @@ #ifdef __KLIBC__ #ifndef KLIBC_FIXUPS_H -#define 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 */ @@ -11,28 +20,52 @@ struct group { char **gr_mem; /* group members */ }; -static inline struct group *getgrnam(const char *name) -{ - return NULL; -} +struct passwd *getpwnam(const char *name); +struct group *getgrnam(const char *name); -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 */ +#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 */ }; -static inline struct passwd *getpwnam(const char *name) +struct utmp { - return NULL; -} + 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 -#endif +#endif /* KLIBC_FIXUPS_H */ +#endif /* __KLIBC__ */