unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
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 --]

      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).