[PATCH 1/5] login: Consolidate utmp and utmpx headers
Lukasz Majewski
lukma@denx.de
Thu Oct 22 08:06:01 GMT 2020
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://sourceware.org/pipermail/libc-alpha/attachments/20201022/0bd9b9c3/attachment.sig>
More information about the Libc-alpha
mailing list