From: Lukasz Majewski <lukma@denx.de>
To: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Cc: Alistair Francis <alistair.francis@wdc.com>, libc-alpha@sourceware.org
Subject: Re: [PATCH 1/5] login: Consolidate utmp and utmpx headers
Date: Thu, 22 Oct 2020 10:06:01 +0200 [thread overview]
Message-ID: <20201022100601.081e092d@jawa> (raw)
In-Reply-To: <20200729205117.2925113-1-adhemerval.zanella@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 24964 bytes --]
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
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
prev parent reply other threads:[~2020-10-22 8:06 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-29 20:51 [PATCH 1/5] login: Consolidate utmp and utmpx headers Adhemerval Zanella via Libc-alpha
2020-07-29 20:51 ` [PATCH 2/5] login: Move gnu utmpx to default implementaion Adhemerval Zanella via Libc-alpha
2020-10-22 8:15 ` Lukasz Majewski
2020-10-22 9:16 ` Andreas Schwab
2020-07-29 20:51 ` [PATCH 3/5] login: Add 64-bit time support Adhemerval Zanella via Libc-alpha
2020-07-29 21:17 ` Joseph Myers
2020-07-30 12:34 ` Adhemerval Zanella via Libc-alpha
2020-08-02 19:02 ` Maciej W. Rozycki via Libc-alpha
2020-08-02 22:05 ` Adhemerval Zanella via Libc-alpha
2020-10-22 9:16 ` Lukasz Majewski
2020-07-29 20:51 ` [PATCH 4/5] login: User 64-bit time on struct lastlog Adhemerval Zanella via Libc-alpha
2020-07-29 21:04 ` Andreas Schwab
2020-07-29 21:14 ` Andreas Schwab
2020-07-30 12:39 ` Adhemerval Zanella via Libc-alpha
2020-07-30 16:19 ` Florian Weimer via Libc-alpha
2020-07-30 18:54 ` Joseph Myers
2020-07-30 21:53 ` Adhemerval Zanella via Libc-alpha
2020-07-31 0:31 ` Joseph Myers
2020-07-30 21:46 ` Adhemerval Zanella via Libc-alpha
2020-10-22 9:25 ` Lukasz Majewski
2020-07-29 20:51 ` [PATCH 5/5] Remove __WORDSIZE_TIME64_COMPAT32 Adhemerval Zanella via Libc-alpha
2020-10-22 9:31 ` Lukasz Majewski
2020-07-29 21:08 ` [PATCH 1/5] login: Consolidate utmp and utmpx headers Joseph Myers
2020-07-30 12:36 ` Adhemerval Zanella via Libc-alpha
2020-10-22 8:06 ` Lukasz Majewski [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/libc/involved.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201022100601.081e092d@jawa \
--to=lukma@denx.de \
--cc=adhemerval.zanella@linaro.org \
--cc=alistair.francis@wdc.com \
--cc=libc-alpha@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).