X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=klibc_fixups.h;h=f6c91cdd9444fb61e11055a19417c85fd191b409;hp=19bfd51caa672c1de1e01270053abcedfda121ee;hb=b085ec0d561983a2000e122f005439f154dd96f2;hpb=82962619c626edfc68d39f0b179a909dd3dd0a6b diff --git a/klibc_fixups.h b/klibc_fixups.h index 19bfd51ca..f6c91cdd9 100644 --- a/klibc_fixups.h +++ b/klibc_fixups.h @@ -1,7 +1,7 @@ #ifdef __KLIBC__ #ifndef KLIBC_FIXUPS_H -#define KLIBC_FIXUPS_H +#define KLIBC_FIXUPS_H struct passwd { char *pw_name; /* user name */ @@ -23,6 +23,49 @@ struct group { struct passwd *getpwnam(const char *name); struct group *getgrnam(const char *name); -#endif +#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__ */