[1/5] login: Consolidate utmp and utmpx headers
Commit Message
It moves the 'struct lastlog', 'struct utmp', and 'struct utmpx' to
specific files and consolidates the s390-32 utmp.h and utmpx.h headers.
Checked on x86_64-linux-gnu and i686-linux-gnu. I also checked with
a build for s390-linux-gnu.
---
bits/struct_lastlog.h | 34 +++++
bits/struct_utmp.h | 55 ++++++++
bits/utmp.h | 48 +------
login/Makefile | 3 +-
sysdeps/gnu/bits/struct_utmpx.h | 55 ++++++++
sysdeps/gnu/bits/utmpx.h | 34 +----
.../sysv/linux/s390/bits/struct_lastlog.h | 35 +++++
.../unix/sysv/linux/s390/bits/struct_utmp.h | 51 +++++++
.../s390/bits/{utmpx.h => struct_utmpx.h} | 57 +-------
sysdeps/unix/sysv/linux/s390/bits/utmp.h | 127 ------------------
10 files changed, 238 insertions(+), 261 deletions(-)
create mode 100644 bits/struct_lastlog.h
create mode 100644 bits/struct_utmp.h
create mode 100644 sysdeps/gnu/bits/struct_utmpx.h
create mode 100644 sysdeps/unix/sysv/linux/s390/bits/struct_lastlog.h
create mode 100644 sysdeps/unix/sysv/linux/s390/bits/struct_utmp.h
rename sysdeps/unix/sysv/linux/s390/bits/{utmpx.h => struct_utmpx.h} (56%)
delete mode 100644 sysdeps/unix/sysv/linux/s390/bits/utmp.h
Comments
On Wed, 29 Jul 2020, Adhemerval Zanella via Libc-alpha wrote:
> It moves the 'struct lastlog', 'struct utmp', and 'struct utmpx' to
> specific files and consolidates the s390-32 utmp.h and utmpx.h headers.
>
> Checked on x86_64-linux-gnu and i686-linux-gnu. I also checked with
> a build for s390-linux-gnu.
> ---
> bits/struct_lastlog.h | 34 +++++
> bits/struct_utmp.h | 55 ++++++++
An installed header just defining a single type should be
bits/types/<type>.h, not bits/<type>.h.
On 29/07/2020 18:08, Joseph Myers wrote:
> On Wed, 29 Jul 2020, Adhemerval Zanella via Libc-alpha wrote:
>
>> It moves the 'struct lastlog', 'struct utmp', and 'struct utmpx' to
>> specific files and consolidates the s390-32 utmp.h and utmpx.h headers.
>>
>> Checked on x86_64-linux-gnu and i686-linux-gnu. I also checked with
>> a build for s390-linux-gnu.
>> ---
>> bits/struct_lastlog.h | 34 +++++
>> bits/struct_utmp.h | 55 ++++++++
>
> An installed header just defining a single type should be
> bits/types/<type>.h, not bits/<type>.h.
>
Ack, I fixed it on the 'login: Move gnu utmpx to default implementation'
patch as well for utmpx.h header.
Hi Adhemerval,
> It moves the 'struct lastlog', 'struct utmp', and 'struct utmpx' to
> specific files and consolidates the s390-32 utmp.h and utmpx.h
> headers.
>
> Checked on x86_64-linux-gnu and i686-linux-gnu. I also checked with
> a build for s390-linux-gnu.
> ---
> bits/struct_lastlog.h | 34 +++++
> bits/struct_utmp.h | 55 ++++++++
> bits/utmp.h | 48 +------
> login/Makefile | 3 +-
> sysdeps/gnu/bits/struct_utmpx.h | 55 ++++++++
> sysdeps/gnu/bits/utmpx.h | 34 +----
> .../sysv/linux/s390/bits/struct_lastlog.h | 35 +++++
> .../unix/sysv/linux/s390/bits/struct_utmp.h | 51 +++++++
> .../s390/bits/{utmpx.h => struct_utmpx.h} | 57 +-------
> sysdeps/unix/sysv/linux/s390/bits/utmp.h | 127
> ------------------ 10 files changed, 238 insertions(+), 261
> deletions(-) create mode 100644 bits/struct_lastlog.h
> create mode 100644 bits/struct_utmp.h
> create mode 100644 sysdeps/gnu/bits/struct_utmpx.h
> create mode 100644 sysdeps/unix/sysv/linux/s390/bits/struct_lastlog.h
> create mode 100644 sysdeps/unix/sysv/linux/s390/bits/struct_utmp.h
> rename sysdeps/unix/sysv/linux/s390/bits/{utmpx.h => struct_utmpx.h}
> (56%) delete mode 100644 sysdeps/unix/sysv/linux/s390/bits/utmp.h
>
Thanks for refactoring and consolidating the code.
Reviewed-by: Lukasz Majewski <lukma@denx.de>
> diff --git a/bits/struct_lastlog.h b/bits/struct_lastlog.h
> new file mode 100644
> index 0000000000..122a44abd0
> --- /dev/null
> +++ b/bits/struct_lastlog.h
> @@ -0,0 +1,34 @@
> +/* The 'struct lastlog' type.
> + Copyright (C) 2020 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +#ifndef _UTMP_H
> +# error "Never include <bits/struct_lastlog.h> directly; use
> <utmp.h> instead." +#endif
> +
> +/* The structure describing an entry in the database of
> + previous logins. */
> +struct lastlog
> + {
> +#if __WORDSIZE_TIME64_COMPAT32
> + int32_t ll_time;
> +#else
> + __time_t ll_time;
> +#endif
> + char ll_line[UT_LINESIZE];
> + char ll_host[UT_HOSTSIZE];
> + };
> diff --git a/bits/struct_utmp.h b/bits/struct_utmp.h
> new file mode 100644
> index 0000000000..4b05c91515
> --- /dev/null
> +++ b/bits/struct_utmp.h
> @@ -0,0 +1,55 @@
> +/* The 'struct utmp' type, describing entries in the utmp file.
> + Copyright (C) 2020 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +#ifndef _UTMP_H
> +# error "Never include <bits/struct_utmp.h> directly; use <utmp.h>
> instead." +#endif
> +
> +/* The structure describing an entry in the user accounting
> database. */ +struct utmp
> +{
> + short int ut_type; /* Type of login. */
> + pid_t ut_pid; /* Process ID of login
> process. */
> + char ut_line[UT_LINESIZE]
> + __attribute_nonstring__; /* Devicename. */
> + char ut_id[4]
> + __attribute_nonstring__; /* Inittab ID. */
> + char ut_user[UT_NAMESIZE]
> + __attribute_nonstring__; /* Username. */
> + char ut_host[UT_HOSTSIZE]
> + __attribute_nonstring__; /* 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 when
> compiled
> + 32- and 64-bit. This allows data files and shared memory to be
> + shared between 32- and 64-bit applications. */
> +#if __WORDSIZE_TIME64_COMPAT32
> + int32_t ut_session; /* Session ID, used for
> windowing. */
> + struct
> + {
> + int32_t tv_sec; /* Seconds. */
> + int32_t tv_usec; /* Microseconds. */
> + } ut_tv; /* Time entry was made. */
> +#else
> + long int ut_session; /* Session ID, used for
> windowing. */
> + struct timeval ut_tv; /* Time entry was made. */
> +#endif
> +
> + int32_t ut_addr_v6[4]; /* Internet address of remote host.
> */
> + char __glibc_reserved[20]; /* Reserved for future
> use. */ +};
> diff --git a/bits/utmp.h b/bits/utmp.h
> index b82d14536f..1647d0c67b 100644
> --- a/bits/utmp.h
> +++ b/bits/utmp.h
> @@ -31,18 +31,7 @@
> #define UT_HOSTSIZE 256
>
>
> -/* The structure describing an entry in the database of
> - previous logins. */
> -struct lastlog
> - {
> -#if __WORDSIZE_TIME64_COMPAT32
> - int32_t ll_time;
> -#else
> - __time_t ll_time;
> -#endif
> - char ll_line[UT_LINESIZE];
> - char ll_host[UT_HOSTSIZE];
> - };
> +#include <bits/struct_lastlog.h>
>
>
> /* The structure describing the status of a terminated process. This
> @@ -53,40 +42,7 @@ struct exit_status
> short int e_exit; /* Process exit status. */
> };
>
> -
> -/* The structure describing an entry in the user accounting
> database. */ -struct utmp
> -{
> - short int ut_type; /* Type of login. */
> - pid_t ut_pid; /* Process ID of login
> process. */
> - char ut_line[UT_LINESIZE]
> - __attribute_nonstring__; /* Devicename. */
> - char ut_id[4]
> - __attribute_nonstring__; /* Inittab ID. */
> - char ut_user[UT_NAMESIZE]
> - __attribute_nonstring__; /* Username. */
> - char ut_host[UT_HOSTSIZE]
> - __attribute_nonstring__; /* 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 when
> compiled
> - 32- and 64-bit. This allows data files and shared memory to be
> - shared between 32- and 64-bit applications. */
> -#if __WORDSIZE_TIME64_COMPAT32
> - int32_t ut_session; /* Session ID, used for
> windowing. */
> - struct
> - {
> - int32_t tv_sec; /* Seconds. */
> - int32_t tv_usec; /* Microseconds. */
> - } ut_tv; /* Time entry was made. */
> -#else
> - long int ut_session; /* Session ID, used for
> windowing. */
> - struct timeval ut_tv; /* Time entry was made. */
> -#endif
> -
> - int32_t ut_addr_v6[4]; /* Internet address of remote host.
> */
> - char __glibc_reserved[20]; /* Reserved for future
> use. */ -};
> +#include <bits/struct_utmp.h>
>
> /* Backwards compatibility hacks. */
> #define ut_name ut_user
> diff --git a/login/Makefile b/login/Makefile
> index d897057bbd..58d5d4d64a 100644
> --- a/login/Makefile
> +++ b/login/Makefile
> @@ -23,7 +23,8 @@ subdir := login
>
> include ../Makeconfig
>
> -headers := utmp.h bits/utmp.h lastlog.h pty.h
> +headers := utmp.h bits/utmp.h lastlog.h pty.h
> bits/struct_lastlog.h \
> + bits/struct_utmp.h bits/struct_utmpx.h
>
> routines := getlogin getlogin_r setlogin getlogin_r_chk \
> getutent getutent_r getutid getutline getutid_r
> getutline_r \ diff --git a/sysdeps/gnu/bits/struct_utmpx.h
> b/sysdeps/gnu/bits/struct_utmpx.h new file mode 100644
> index 0000000000..8bfc786cd8
> --- /dev/null
> +++ b/sysdeps/gnu/bits/struct_utmpx.h
> @@ -0,0 +1,55 @@
> +/* The 'struct utmpx' type.
> + Copyright (C) 2020 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +#ifndef _UTMPX_H
> +# error "Never include <bits/struct_utmpx.h> directly; use <utmpx.h>
> instead." +#endif
> +
> +/* The structure describing an entry in the user accounting
> database. */ +struct utmpx
> +{
> + short int ut_type; /* Type of login. */
> + __pid_t ut_pid; /* Process ID of login process. */
> + char ut_line[__UT_LINESIZE]
> + __attribute_nonstring__; /* Devicename. */
> + char ut_id[4]
> + __attribute_nonstring__; /* Inittab ID. */
> + char ut_user[__UT_NAMESIZE]
> + __attribute_nonstring__; /* Username. */
> + char ut_host[__UT_HOSTSIZE]
> + __attribute_nonstring__; /* Hostname for remote login. */
> + struct __exit_status ut_exit; /* Exit status of a process
> marked
> + as DEAD_PROCESS. */
> +
> +/* The fields ut_session and ut_tv must be the same size when
> compiled
> + 32- and 64-bit. This allows files and shared memory to be shared
> + between 32- and 64-bit applications. */
> +#if __WORDSIZE_TIME64_COMPAT32
> + __int32_t ut_session; /* Session ID, used for
> windowing. */
> + struct
> + {
> + __int32_t tv_sec; /* Seconds. */
> + __int32_t tv_usec; /* Microseconds. */
> + } ut_tv; /* Time entry was made. */
> +#else
> + long int ut_session; /* Session ID, used for
> windowing. */
> + struct timeval ut_tv; /* Time entry was made. */
> +#endif
> + __int32_t ut_addr_v6[4]; /* Internet address of remote
> host. */
> + char __glibc_reserved[20]; /* Reserved for future
> use. */ +};
> diff --git a/sysdeps/gnu/bits/utmpx.h b/sysdeps/gnu/bits/utmpx.h
> index dfd55bfcc3..12ee26871e 100644
> --- a/sysdeps/gnu/bits/utmpx.h
> +++ b/sysdeps/gnu/bits/utmpx.h
> @@ -51,39 +51,7 @@ struct __exit_status
> };
>
>
> -/* The structure describing an entry in the user accounting
> database. */ -struct utmpx
> -{
> - short int ut_type; /* Type of login. */
> - __pid_t ut_pid; /* Process ID of login process. */
> - char ut_line[__UT_LINESIZE]
> - __attribute_nonstring__; /* Devicename. */
> - char ut_id[4]
> - __attribute_nonstring__; /* Inittab ID. */
> - char ut_user[__UT_NAMESIZE]
> - __attribute_nonstring__; /* Username. */
> - char ut_host[__UT_HOSTSIZE]
> - __attribute_nonstring__; /* Hostname for remote login. */
> - struct __exit_status ut_exit; /* Exit status of a process
> marked
> - as DEAD_PROCESS. */
> -
> -/* The fields ut_session and ut_tv must be the same size when
> compiled
> - 32- and 64-bit. This allows files and shared memory to be shared
> - between 32- and 64-bit applications. */
> -#if __WORDSIZE_TIME64_COMPAT32
> - __int32_t ut_session; /* Session ID, used for
> windowing. */
> - struct
> - {
> - __int32_t tv_sec; /* Seconds. */
> - __int32_t tv_usec; /* Microseconds. */
> - } ut_tv; /* Time entry was made. */
> -#else
> - long int ut_session; /* Session ID, used for
> windowing. */
> - struct timeval ut_tv; /* Time entry was made. */
> -#endif
> - __int32_t ut_addr_v6[4]; /* Internet address of remote
> host. */
> - char __glibc_reserved[20]; /* Reserved for future
> use. */ -};
> +#include <bits/struct_utmpx.h>
>
>
> /* Values for the `ut_type' field of a `struct utmpx'. */
> diff --git a/sysdeps/unix/sysv/linux/s390/bits/struct_lastlog.h
> b/sysdeps/unix/sysv/linux/s390/bits/struct_lastlog.h new file mode
> 100644 index 0000000000..2fa409aeec
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/s390/bits/struct_lastlog.h
> @@ -0,0 +1,35 @@
> +/* The 'struct lastlog' type.
> + Copyright (C) 2020 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +#ifndef _UTMP_H
> +# error "Never include <bits/struct_lastlog.h> directly; use
> <utmp.h> instead." +#endif
> +
> +/* The structure describing an entry in the database of
> + previous logins. */
> +struct lastlog
> + {
> +#if __WORDSIZE == 32
> + int64_t ll_time;
> +#else
> + __time_t ll_time;
> +#endif
> + char ll_line[UT_LINESIZE];
> + char ll_host[UT_HOSTSIZE];
> + };
> +
> diff --git a/sysdeps/unix/sysv/linux/s390/bits/struct_utmp.h
> b/sysdeps/unix/sysv/linux/s390/bits/struct_utmp.h new file mode 100644
> index 0000000000..748240e528
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/s390/bits/struct_utmp.h
> @@ -0,0 +1,51 @@
> +/* The 'struct utmp' type, describing entries in the utmp file.
> + Copyright (C) 2020 Free Software Foundation, Inc.
> + This file is part of the GNU C Library.
> +
> + The GNU C Library is free software; you can redistribute it and/or
> + modify it under the terms of the GNU Lesser General Public
> + License as published by the Free Software Foundation; either
> + version 2.1 of the License, or (at your option) any later version.
> +
> + The GNU C Library is distributed in the hope that it will be
> useful,
> + but WITHOUT ANY WARRANTY; without even the implied warranty of
> + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> + Lesser General Public License for more details.
> +
> + You should have received a copy of the GNU Lesser General Public
> + License along with the GNU C Library; if not, see
> + <https://www.gnu.org/licenses/>. */
> +
> +/* The structure describing an entry in the user accounting
> database. */ +struct utmp
> +{
> + short int ut_type; /* Type of login. */
> + pid_t ut_pid; /* Process ID of login
> process. */
> + char ut_line[UT_LINESIZE]
> + __attribute_nonstring__; /* Devicename. */
> + char ut_id[4]
> + __attribute_nonstring__; /* Inittab ID. */
> + char ut_user[UT_NAMESIZE]
> + __attribute_nonstring__; /* Username. */
> + char ut_host[UT_HOSTSIZE]
> + __attribute_nonstring__; /* 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 when
> compiled
> + 32- and 64-bit. This allows data files and shared memory to be
> + shared between 32- and 64-bit applications. */
> +#if __WORDSIZE == 32
> + int64_t ut_session; /* Session ID, used for
> windowing. */
> + struct
> + {
> + int64_t tv_sec; /* Seconds. */
> + int64_t tv_usec; /* Microseconds. */
> + } ut_tv; /* Time entry was made. */
> +#else
> + long int ut_session; /* Session ID, used for
> windowing. */
> + struct timeval ut_tv; /* Time entry was made. */
> +#endif
> +
> + int32_t ut_addr_v6[4]; /* Internet address of remote host.
> */
> + char __glibc_reserved[20]; /* Reserved for future
> use. */ +};
> diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
> b/sysdeps/unix/sysv/linux/s390/bits/struct_utmpx.h similarity index
> 56% rename from sysdeps/unix/sysv/linux/s390/bits/utmpx.h
> rename to sysdeps/unix/sysv/linux/s390/bits/struct_utmpx.h
> index d68df97bef..67fd7be51c 100644
> --- a/sysdeps/unix/sysv/linux/s390/bits/utmpx.h
> +++ b/sysdeps/unix/sysv/linux/s390/bits/struct_utmpx.h
> @@ -1,5 +1,5 @@
> -/* Structures and definitions for the user accounting database. GNU
> version.
> - Copyright (C) 1997-2020 Free Software Foundation, Inc.
> +/* The 'struct utmpx' type.
> + Copyright (C) 2020 Free Software Foundation, Inc.
> This file is part of the GNU C Library.
>
> The GNU C Library is free software; you can redistribute it and/or
> @@ -17,40 +17,9 @@
> <https://www.gnu.org/licenses/>. */
>
> #ifndef _UTMPX_H
> -# error "Never include <bits/utmpx.h> directly; use <utmpx.h>
> instead." +# error "Never include <bits/struct_utmpx.h> directly; use
> <utmpx.h> instead." #endif
>
> -#include <bits/types.h>
> -#include <sys/time.h>
> -#include <bits/wordsize.h>
> -
> -
> -#ifdef __USE_GNU
> -# include <paths.h>
> -# define _PATH_UTMPX _PATH_UTMP
> -# define _PATH_WTMPX _PATH_WTMP
> -#endif
> -
> -
> -#define __UT_LINESIZE 32
> -#define __UT_NAMESIZE 32
> -#define __UT_HOSTSIZE 256
> -
> -
> -/* The structure describing the status of a terminated process. This
> - type is used in `struct utmpx' below. */
> -struct __exit_status
> - {
> -#ifdef __USE_GNU
> - short int e_termination; /* Process termination status.
> */
> - short int e_exit; /* Process exit status. */
> -#else
> - short int __e_termination; /* Process termination status.
> */
> - short int __e_exit; /* Process exit status. */
> -#endif
> - };
> -
> -
> /* The structure describing an entry in the user accounting
> database. */ struct utmpx
> {
> @@ -84,23 +53,3 @@ struct utmpx
> __int32_t ut_addr_v6[4]; /* Internet address of remote
> host. */ char __glibc_reserved[20]; /* Reserved for
> future use. */ };
> -
> -
> -/* Values for the `ut_type' field of a `struct utmpx'. */
> -#define EMPTY 0 /* No valid user accounting
> information. */ -
> -#ifdef __USE_GNU
> -# define RUN_LVL 1 /* The system's runlevel. */
> -#endif
> -#define BOOT_TIME 2 /* Time of system boot. */
> -#define NEW_TIME 3 /* Time after system clock changed.
> */ -#define OLD_TIME 4 /* Time when system clock
> changed. */ -
> -#define INIT_PROCESS 5 /* Process spawned by the init
> process. */ -#define LOGIN_PROCESS 6 /* Session leader
> of a logged in user. */ -#define USER_PROCESS 7 /*
> Normal process. */ -#define DEAD_PROCESS 8 /*
> Terminated process. */ -
> -#ifdef __USE_GNU
> -# define ACCOUNTING 9 /* System accounting. */
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/bits/utmp.h
> b/sysdeps/unix/sysv/linux/s390/bits/utmp.h deleted file mode 100644
> index ec0ee02303..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/bits/utmp.h
> +++ /dev/null
> @@ -1,127 +0,0 @@
> -/* The `struct utmp' type, describing entries in the utmp file. GNU
> version.
> - Copyright (C) 1993-2020 Free Software Foundation, Inc.
> - This file is part of the GNU C Library.
> -
> - The GNU C Library is free software; you can redistribute it and/or
> - modify it under the terms of the GNU Lesser General Public
> - License as published by the Free Software Foundation; either
> - version 2.1 of the License, or (at your option) any later version.
> -
> - The GNU C Library is distributed in the hope that it will be
> useful,
> - but WITHOUT ANY WARRANTY; without even the implied warranty of
> - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> - Lesser General Public License for more details.
> -
> - You should have received a copy of the GNU Lesser General Public
> - License along with the GNU C Library; if not, see
> - <https://www.gnu.org/licenses/>. */
> -
> -#ifndef _UTMP_H
> -# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
> -#endif
> -
> -#include <paths.h>
> -#include <sys/time.h>
> -#include <sys/types.h>
> -#include <bits/wordsize.h>
> -
> -
> -#define UT_LINESIZE 32
> -#define UT_NAMESIZE 32
> -#define UT_HOSTSIZE 256
> -
> -
> -/* The structure describing an entry in the database of
> - previous logins. */
> -struct lastlog
> - {
> -#if __WORDSIZE == 32
> - int64_t ll_time;
> -#else
> - __time_t ll_time;
> -#endif
> - char ll_line[UT_LINESIZE];
> - char ll_host[UT_HOSTSIZE];
> - };
> -
> -
> -/* The structure describing the status of a terminated process. This
> - type is used in `struct utmp' below. */
> -struct exit_status
> - {
> - short int e_termination; /* Process termination status.
> */
> - short int e_exit; /* Process exit status. */
> - };
> -
> -
> -/* The structure describing an entry in the user accounting
> database. */ -struct utmp
> -{
> - short int ut_type; /* Type of login. */
> - pid_t ut_pid; /* Process ID of login
> process. */
> - char ut_line[UT_LINESIZE]
> - __attribute_nonstring__; /* Devicename. */
> - char ut_id[4]
> - __attribute_nonstring__; /* Inittab ID. */
> - char ut_user[UT_NAMESIZE]
> - __attribute_nonstring__; /* Username. */
> - char ut_host[UT_HOSTSIZE]
> - __attribute_nonstring__; /* 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 when
> compiled
> - 32- and 64-bit. This allows data files and shared memory to be
> - shared between 32- and 64-bit applications. */
> -#if __WORDSIZE == 32
> - int64_t ut_session; /* Session ID, used for
> windowing. */
> - struct
> - {
> - int64_t tv_sec; /* Seconds. */
> - int64_t tv_usec; /* Microseconds. */
> - } ut_tv; /* Time entry was made. */
> -#else
> - long int ut_session; /* Session ID, used for
> windowing. */
> - struct timeval ut_tv; /* Time entry was made. */
> -#endif
> -
> - int32_t ut_addr_v6[4]; /* Internet address of remote host.
> */
> - char __glibc_reserved[20]; /* Reserved for future
> use. */ -};
> -
> -/* Backwards compatibility hacks. */
> -#define ut_name ut_user
> -#ifndef _NO_UT_TIME
> -/* We have a problem here: `ut_time' is also used otherwise. Define
> - _NO_UT_TIME if the compiler complains. */
> -# define ut_time ut_tv.tv_sec
> -#endif
> -#define ut_xtime ut_tv.tv_sec
> -#define ut_addr ut_addr_v6[0]
> -
> -
> -/* Values for the `ut_type' field of a `struct utmp'. */
> -#define EMPTY 0 /* No valid user accounting
> information. */ -
> -#define RUN_LVL 1 /* The system's runlevel. */
> -#define BOOT_TIME 2 /* Time of system boot. */
> -#define NEW_TIME 3 /* Time after system clock changed.
> */ -#define OLD_TIME 4 /* Time when system clock
> changed. */ -
> -#define INIT_PROCESS 5 /* Process spawned by the init
> process. */ -#define LOGIN_PROCESS 6 /* Session leader
> of a logged in user. */ -#define USER_PROCESS 7 /*
> Normal process. */ -#define DEAD_PROCESS 8 /*
> Terminated process. */ -
> -#define ACCOUNTING 9
> -
> -/* Old Linux name for the EMPTY type. */
> -#define UT_UNKNOWN EMPTY
> -
> -
> -/* Tell the user that we have a modern system with UT_HOST, UT_PID,
> - UT_TYPE, UT_ID and UT_TV fields. */
> -#define _HAVE_UT_TYPE 1
> -#define _HAVE_UT_PID 1
> -#define _HAVE_UT_ID 1
> -#define _HAVE_UT_TV 1
> -#define _HAVE_UT_HOST 1
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de
new file mode 100644
@@ -0,0 +1,34 @@
+/* The 'struct lastlog' type.
+ Copyright (C) 2020 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _UTMP_H
+# error "Never include <bits/struct_lastlog.h> directly; use <utmp.h> instead."
+#endif
+
+/* The structure describing an entry in the database of
+ previous logins. */
+struct lastlog
+ {
+#if __WORDSIZE_TIME64_COMPAT32
+ int32_t ll_time;
+#else
+ __time_t ll_time;
+#endif
+ char ll_line[UT_LINESIZE];
+ char ll_host[UT_HOSTSIZE];
+ };
new file mode 100644
@@ -0,0 +1,55 @@
+/* The 'struct utmp' type, describing entries in the utmp file.
+ Copyright (C) 2020 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _UTMP_H
+# error "Never include <bits/struct_utmp.h> directly; use <utmp.h> instead."
+#endif
+
+/* The structure describing an entry in the user accounting database. */
+struct utmp
+{
+ short int ut_type; /* Type of login. */
+ pid_t ut_pid; /* Process ID of login process. */
+ char ut_line[UT_LINESIZE]
+ __attribute_nonstring__; /* Devicename. */
+ char ut_id[4]
+ __attribute_nonstring__; /* Inittab ID. */
+ char ut_user[UT_NAMESIZE]
+ __attribute_nonstring__; /* Username. */
+ char ut_host[UT_HOSTSIZE]
+ __attribute_nonstring__; /* 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 when compiled
+ 32- and 64-bit. This allows data files and shared memory to be
+ shared between 32- and 64-bit applications. */
+#if __WORDSIZE_TIME64_COMPAT32
+ int32_t ut_session; /* Session ID, used for windowing. */
+ struct
+ {
+ int32_t tv_sec; /* Seconds. */
+ int32_t tv_usec; /* Microseconds. */
+ } ut_tv; /* Time entry was made. */
+#else
+ long int ut_session; /* Session ID, used for windowing. */
+ struct timeval ut_tv; /* Time entry was made. */
+#endif
+
+ int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __glibc_reserved[20]; /* Reserved for future use. */
+};
@@ -31,18 +31,7 @@
#define UT_HOSTSIZE 256
-/* The structure describing an entry in the database of
- previous logins. */
-struct lastlog
- {
-#if __WORDSIZE_TIME64_COMPAT32
- int32_t ll_time;
-#else
- __time_t ll_time;
-#endif
- char ll_line[UT_LINESIZE];
- char ll_host[UT_HOSTSIZE];
- };
+#include <bits/struct_lastlog.h>
/* The structure describing the status of a terminated process. This
@@ -53,40 +42,7 @@ struct exit_status
short int e_exit; /* Process exit status. */
};
-
-/* The structure describing an entry in the user accounting database. */
-struct utmp
-{
- short int ut_type; /* Type of login. */
- pid_t ut_pid; /* Process ID of login process. */
- char ut_line[UT_LINESIZE]
- __attribute_nonstring__; /* Devicename. */
- char ut_id[4]
- __attribute_nonstring__; /* Inittab ID. */
- char ut_user[UT_NAMESIZE]
- __attribute_nonstring__; /* Username. */
- char ut_host[UT_HOSTSIZE]
- __attribute_nonstring__; /* 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 when compiled
- 32- and 64-bit. This allows data files and shared memory to be
- shared between 32- and 64-bit applications. */
-#if __WORDSIZE_TIME64_COMPAT32
- int32_t ut_session; /* Session ID, used for windowing. */
- struct
- {
- int32_t tv_sec; /* Seconds. */
- int32_t tv_usec; /* Microseconds. */
- } ut_tv; /* Time entry was made. */
-#else
- long int ut_session; /* Session ID, used for windowing. */
- struct timeval ut_tv; /* Time entry was made. */
-#endif
-
- int32_t ut_addr_v6[4]; /* Internet address of remote host. */
- char __glibc_reserved[20]; /* Reserved for future use. */
-};
+#include <bits/struct_utmp.h>
/* Backwards compatibility hacks. */
#define ut_name ut_user
@@ -23,7 +23,8 @@ subdir := login
include ../Makeconfig
-headers := utmp.h bits/utmp.h lastlog.h pty.h
+headers := utmp.h bits/utmp.h lastlog.h pty.h bits/struct_lastlog.h \
+ bits/struct_utmp.h bits/struct_utmpx.h
routines := getlogin getlogin_r setlogin getlogin_r_chk \
getutent getutent_r getutid getutline getutid_r getutline_r \
new file mode 100644
@@ -0,0 +1,55 @@
+/* The 'struct utmpx' type.
+ Copyright (C) 2020 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _UTMPX_H
+# error "Never include <bits/struct_utmpx.h> directly; use <utmpx.h> instead."
+#endif
+
+/* The structure describing an entry in the user accounting database. */
+struct utmpx
+{
+ short int ut_type; /* Type of login. */
+ __pid_t ut_pid; /* Process ID of login process. */
+ char ut_line[__UT_LINESIZE]
+ __attribute_nonstring__; /* Devicename. */
+ char ut_id[4]
+ __attribute_nonstring__; /* Inittab ID. */
+ char ut_user[__UT_NAMESIZE]
+ __attribute_nonstring__; /* Username. */
+ char ut_host[__UT_HOSTSIZE]
+ __attribute_nonstring__; /* Hostname for remote login. */
+ struct __exit_status ut_exit; /* Exit status of a process marked
+ as DEAD_PROCESS. */
+
+/* The fields ut_session and ut_tv must be the same size when compiled
+ 32- and 64-bit. This allows files and shared memory to be shared
+ between 32- and 64-bit applications. */
+#if __WORDSIZE_TIME64_COMPAT32
+ __int32_t ut_session; /* Session ID, used for windowing. */
+ struct
+ {
+ __int32_t tv_sec; /* Seconds. */
+ __int32_t tv_usec; /* Microseconds. */
+ } ut_tv; /* Time entry was made. */
+#else
+ long int ut_session; /* Session ID, used for windowing. */
+ struct timeval ut_tv; /* Time entry was made. */
+#endif
+ __int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __glibc_reserved[20]; /* Reserved for future use. */
+};
@@ -51,39 +51,7 @@ struct __exit_status
};
-/* The structure describing an entry in the user accounting database. */
-struct utmpx
-{
- short int ut_type; /* Type of login. */
- __pid_t ut_pid; /* Process ID of login process. */
- char ut_line[__UT_LINESIZE]
- __attribute_nonstring__; /* Devicename. */
- char ut_id[4]
- __attribute_nonstring__; /* Inittab ID. */
- char ut_user[__UT_NAMESIZE]
- __attribute_nonstring__; /* Username. */
- char ut_host[__UT_HOSTSIZE]
- __attribute_nonstring__; /* Hostname for remote login. */
- struct __exit_status ut_exit; /* Exit status of a process marked
- as DEAD_PROCESS. */
-
-/* The fields ut_session and ut_tv must be the same size when compiled
- 32- and 64-bit. This allows files and shared memory to be shared
- between 32- and 64-bit applications. */
-#if __WORDSIZE_TIME64_COMPAT32
- __int32_t ut_session; /* Session ID, used for windowing. */
- struct
- {
- __int32_t tv_sec; /* Seconds. */
- __int32_t tv_usec; /* Microseconds. */
- } ut_tv; /* Time entry was made. */
-#else
- long int ut_session; /* Session ID, used for windowing. */
- struct timeval ut_tv; /* Time entry was made. */
-#endif
- __int32_t ut_addr_v6[4]; /* Internet address of remote host. */
- char __glibc_reserved[20]; /* Reserved for future use. */
-};
+#include <bits/struct_utmpx.h>
/* Values for the `ut_type' field of a `struct utmpx'. */
new file mode 100644
@@ -0,0 +1,35 @@
+/* The 'struct lastlog' type.
+ Copyright (C) 2020 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#ifndef _UTMP_H
+# error "Never include <bits/struct_lastlog.h> directly; use <utmp.h> instead."
+#endif
+
+/* The structure describing an entry in the database of
+ previous logins. */
+struct lastlog
+ {
+#if __WORDSIZE == 32
+ int64_t ll_time;
+#else
+ __time_t ll_time;
+#endif
+ char ll_line[UT_LINESIZE];
+ char ll_host[UT_HOSTSIZE];
+ };
+
new file mode 100644
@@ -0,0 +1,51 @@
+/* The 'struct utmp' type, describing entries in the utmp file.
+ Copyright (C) 2020 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+/* The structure describing an entry in the user accounting database. */
+struct utmp
+{
+ short int ut_type; /* Type of login. */
+ pid_t ut_pid; /* Process ID of login process. */
+ char ut_line[UT_LINESIZE]
+ __attribute_nonstring__; /* Devicename. */
+ char ut_id[4]
+ __attribute_nonstring__; /* Inittab ID. */
+ char ut_user[UT_NAMESIZE]
+ __attribute_nonstring__; /* Username. */
+ char ut_host[UT_HOSTSIZE]
+ __attribute_nonstring__; /* 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 when compiled
+ 32- and 64-bit. This allows data files and shared memory to be
+ shared between 32- and 64-bit applications. */
+#if __WORDSIZE == 32
+ int64_t ut_session; /* Session ID, used for windowing. */
+ struct
+ {
+ int64_t tv_sec; /* Seconds. */
+ int64_t tv_usec; /* Microseconds. */
+ } ut_tv; /* Time entry was made. */
+#else
+ long int ut_session; /* Session ID, used for windowing. */
+ struct timeval ut_tv; /* Time entry was made. */
+#endif
+
+ int32_t ut_addr_v6[4]; /* Internet address of remote host. */
+ char __glibc_reserved[20]; /* Reserved for future use. */
+};
similarity index 56%
rename from sysdeps/unix/sysv/linux/s390/bits/utmpx.h
rename to sysdeps/unix/sysv/linux/s390/bits/struct_utmpx.h
@@ -1,5 +1,5 @@
-/* Structures and definitions for the user accounting database. GNU version.
- Copyright (C) 1997-2020 Free Software Foundation, Inc.
+/* The 'struct utmpx' type.
+ Copyright (C) 2020 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -17,40 +17,9 @@
<https://www.gnu.org/licenses/>. */
#ifndef _UTMPX_H
-# error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
+# error "Never include <bits/struct_utmpx.h> directly; use <utmpx.h> instead."
#endif
-#include <bits/types.h>
-#include <sys/time.h>
-#include <bits/wordsize.h>
-
-
-#ifdef __USE_GNU
-# include <paths.h>
-# define _PATH_UTMPX _PATH_UTMP
-# define _PATH_WTMPX _PATH_WTMP
-#endif
-
-
-#define __UT_LINESIZE 32
-#define __UT_NAMESIZE 32
-#define __UT_HOSTSIZE 256
-
-
-/* The structure describing the status of a terminated process. This
- type is used in `struct utmpx' below. */
-struct __exit_status
- {
-#ifdef __USE_GNU
- short int e_termination; /* Process termination status. */
- short int e_exit; /* Process exit status. */
-#else
- short int __e_termination; /* Process termination status. */
- short int __e_exit; /* Process exit status. */
-#endif
- };
-
-
/* The structure describing an entry in the user accounting database. */
struct utmpx
{
@@ -84,23 +53,3 @@ struct utmpx
__int32_t ut_addr_v6[4]; /* Internet address of remote host. */
char __glibc_reserved[20]; /* Reserved for future use. */
};
-
-
-/* Values for the `ut_type' field of a `struct utmpx'. */
-#define EMPTY 0 /* No valid user accounting information. */
-
-#ifdef __USE_GNU
-# define RUN_LVL 1 /* The system's runlevel. */
-#endif
-#define BOOT_TIME 2 /* Time of system boot. */
-#define NEW_TIME 3 /* Time after system clock changed. */
-#define OLD_TIME 4 /* Time when system clock changed. */
-
-#define INIT_PROCESS 5 /* Process spawned by the init process. */
-#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */
-#define USER_PROCESS 7 /* Normal process. */
-#define DEAD_PROCESS 8 /* Terminated process. */
-
-#ifdef __USE_GNU
-# define ACCOUNTING 9 /* System accounting. */
-#endif
deleted file mode 100644
@@ -1,127 +0,0 @@
-/* The `struct utmp' type, describing entries in the utmp file. GNU version.
- Copyright (C) 1993-2020 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <https://www.gnu.org/licenses/>. */
-
-#ifndef _UTMP_H
-# error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
-#endif
-
-#include <paths.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <bits/wordsize.h>
-
-
-#define UT_LINESIZE 32
-#define UT_NAMESIZE 32
-#define UT_HOSTSIZE 256
-
-
-/* The structure describing an entry in the database of
- previous logins. */
-struct lastlog
- {
-#if __WORDSIZE == 32
- int64_t ll_time;
-#else
- __time_t ll_time;
-#endif
- char ll_line[UT_LINESIZE];
- char ll_host[UT_HOSTSIZE];
- };
-
-
-/* The structure describing the status of a terminated process. This
- type is used in `struct utmp' below. */
-struct exit_status
- {
- short int e_termination; /* Process termination status. */
- short int e_exit; /* Process exit status. */
- };
-
-
-/* The structure describing an entry in the user accounting database. */
-struct utmp
-{
- short int ut_type; /* Type of login. */
- pid_t ut_pid; /* Process ID of login process. */
- char ut_line[UT_LINESIZE]
- __attribute_nonstring__; /* Devicename. */
- char ut_id[4]
- __attribute_nonstring__; /* Inittab ID. */
- char ut_user[UT_NAMESIZE]
- __attribute_nonstring__; /* Username. */
- char ut_host[UT_HOSTSIZE]
- __attribute_nonstring__; /* 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 when compiled
- 32- and 64-bit. This allows data files and shared memory to be
- shared between 32- and 64-bit applications. */
-#if __WORDSIZE == 32
- int64_t ut_session; /* Session ID, used for windowing. */
- struct
- {
- int64_t tv_sec; /* Seconds. */
- int64_t tv_usec; /* Microseconds. */
- } ut_tv; /* Time entry was made. */
-#else
- long int ut_session; /* Session ID, used for windowing. */
- struct timeval ut_tv; /* Time entry was made. */
-#endif
-
- int32_t ut_addr_v6[4]; /* Internet address of remote host. */
- char __glibc_reserved[20]; /* Reserved for future use. */
-};
-
-/* Backwards compatibility hacks. */
-#define ut_name ut_user
-#ifndef _NO_UT_TIME
-/* We have a problem here: `ut_time' is also used otherwise. Define
- _NO_UT_TIME if the compiler complains. */
-# define ut_time ut_tv.tv_sec
-#endif
-#define ut_xtime ut_tv.tv_sec
-#define ut_addr ut_addr_v6[0]
-
-
-/* Values for the `ut_type' field of a `struct utmp'. */
-#define EMPTY 0 /* No valid user accounting information. */
-
-#define RUN_LVL 1 /* The system's runlevel. */
-#define BOOT_TIME 2 /* Time of system boot. */
-#define NEW_TIME 3 /* Time after system clock changed. */
-#define OLD_TIME 4 /* Time when system clock changed. */
-
-#define INIT_PROCESS 5 /* Process spawned by the init process. */
-#define LOGIN_PROCESS 6 /* Session leader of a logged in user. */
-#define USER_PROCESS 7 /* Normal process. */
-#define DEAD_PROCESS 8 /* Terminated process. */
-
-#define ACCOUNTING 9
-
-/* Old Linux name for the EMPTY type. */
-#define UT_UNKNOWN EMPTY
-
-
-/* Tell the user that we have a modern system with UT_HOST, UT_PID,
- UT_TYPE, UT_ID and UT_TV fields. */
-#define _HAVE_UT_TYPE 1
-#define _HAVE_UT_PID 1
-#define _HAVE_UT_ID 1
-#define _HAVE_UT_TV 1
-#define _HAVE_UT_HOST 1