chiark / gitweb /
[PATCH] finally solve the bad sysfs-timing for all of us
[elogind.git] / klibc_fixups.h
1 #ifdef __KLIBC__
2
3 #ifndef KLIBC_FIXUPS_H
4 #define KLIBC_FIXUPS_H
5
6 struct passwd {
7         char    *pw_name;       /* user name */
8         char    *pw_passwd;     /* user password */
9         uid_t   pw_uid;         /* user id */
10         gid_t   pw_gid;         /* group id */
11         char    *pw_gecos;      /* real name */
12         char    *pw_dir;        /* home directory */
13         char    *pw_shell;      /* shell program */
14 };
15
16 struct group {
17         char    *gr_name;       /* group name */
18         char    *gr_passwd;     /* group password */
19         gid_t   gr_gid;         /* group id */
20         char    **gr_mem;       /* group members */
21 };
22
23 struct passwd *getpwnam(const char *name);
24 struct group *getgrnam(const char *name);
25
26
27 #define UT_LINESIZE             32
28 #define UT_NAMESIZE             32
29 #define UT_HOSTSIZE             256
30 #define USER_PROCESS            7       /* normal process */
31 #define ut_time                 ut_tv.tv_sec
32
33
34 extern int ufd;
35
36 struct exit_status {
37         short int e_termination;        /* process termination status */
38         short int e_exit;               /* process exit status */
39 };
40
41 struct utmp
42 {
43         short int ut_type;              /* type of login */
44         pid_t ut_pid;                   /* pid of login process */
45         char ut_line[UT_LINESIZE];      /* devicename */
46         char ut_id[4];                  /* Inittab id  */
47         char ut_user[UT_NAMESIZE];      /* username  */
48         char ut_host[UT_HOSTSIZE];      /* hostname for remote login */
49         struct exit_status ut_exit;     /* exit status of a process marked as DEAD_PROCESS */
50         /* The ut_session and ut_tv fields must be the same size for 32 and 64-bit */
51 #if __WORDSIZE == 64 && defined __WORDSIZE_COMPAT32
52         int32_t ut_session;             /* sid used for windowing */
53         struct {
54                 int32_t tv_sec;         /* seconds */
55                 int32_t tv_usec;        /* microseconds */
56         } ut_tv;
57 #else
58         long int ut_session;
59         struct timeval ut_tv;
60 #endif
61         int32_t ut_addr_v6[4];          /* internet address of remote host */
62         char __unused[20];              /* reserved for future use */
63 };
64
65 struct utmp *getutent(void);
66 void setutent(void);
67 void endutent(void);
68
69
70 #endif /* KLIBC_FIXUPS_H */
71 #endif /* __KLIBC__ */