chiark / gitweb /
[PATCH] fix NAME="foo-%c{N}" gets a truncated name
[elogind.git] / klibc_fixups.h
index a89638ead4b428e27eac67b3d463882e37b28e89..f6c91cdd9444fb61e11055a19417c85fd191b409 100644 (file)
@@ -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__ */