From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1414 invoked by alias); 9 Oct 2002 13:07:02 -0000 Mailing-List: contact libc-hacker-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-hacker-owner@sources.redhat.com Received: (qmail 1396 invoked from network); 9 Oct 2002 13:07:00 -0000 Received: from unknown (HELO d06lmsgate-7.uk.ibm.com) (194.196.100.253) by sources.redhat.com with SMTP; 9 Oct 2002 13:07:00 -0000 Received: from d06relay02.portsmouth.uk.ibm.com (d06relay02.portsmouth.uk.ibm.com [9.166.84.148]) by d06lmsgate-7.uk.ibm.com (1.0.0) with ESMTP id OAA52074; Wed, 9 Oct 2002 14:07:08 +0100 Received: from mschwid3 (dhcp162105.boeblingen.de.ibm.com [9.164.162.105]) by d06relay02.portsmouth.uk.ibm.com (8.12.3/NCO/VER6.4) with ESMTP id g99D6vjm118226; Wed, 9 Oct 2002 14:06:58 +0100 Content-Type: text/plain; charset="us-ascii" From: Martin Schwidefsky Organization: IBM Deutschland GmbH To: libc-hacker@sources.redhat.com Subject: utmp.h & utmpx.h for s390. Date: Wed, 09 Oct 2002 06:15:00 -0000 Cc: bk@suse.de, aj@suse.de MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200210091505.12166.schwidefsky@de.ibm.com> X-SW-Source: 2002-10/txt/msg00041.txt.bz2 Hi folks, Jakub Jelinek writes: > I haven't changed s390x, but IMHO it is better to recompile the affected > apps now in the /usr/lib -> /usr/lib64 transition which changes most > of the things anyway, than to suffer forever. All I can say is: he is right. I wanted to look into versioned symbols for the glibc functions that are affected by the utmp.h/utmpx.h change but I am too busy with other stuff right now (and I know that extreme caution is required for anything to do with versioning). I just copied the utmp.h/utmpx.h headers from powerpc/x86_64 to the s390 folder so credits go to Steven and Jakub. blue skies, Martin. 2002-10-09 Steven Munroe Jakub Jelinek * sysdeps/s390/s390-32/bits/wordsize.h (__WORDSIZE_COMPAT32): Define. * sysdeps/s390/s390-64/bits/wordsize.h (__WORDSIZE_COMPAT32): Define. * sysdeps/unix/sysv/linux/s390/bits/utmp.h: New file. * sysdeps/unix/sysv/linux/s390/bits/utmpx.h: New file. diff -urN libc-head/sysdeps/s390/s390-32/bits/wordsize.h libc-s390/sysdeps/= s390/s390-32/bits/wordsize.h --- libc-head/sysdeps/s390/s390-32/bits/wordsize.h Wed Oct 2 22:52:30 2002 +++ libc-s390/sysdeps/s390/s390-32/bits/wordsize.h Wed Oct 9 14:50:44 2002 @@ -2,6 +2,7 @@ =20 #if defined __s390x__ # define __WORDSIZE 64 +# define __WORDSIZE_COMPAT32 1 #else # define __WORDSIZE 32 #endif diff -urN libc-head/sysdeps/s390/s390-64/bits/wordsize.h libc-s390/sysdeps/= s390/s390-64/bits/wordsize.h --- libc-head/sysdeps/s390/s390-64/bits/wordsize.h Wed Oct 2 22:57:48 2002 +++ libc-s390/sysdeps/s390/s390-64/bits/wordsize.h Wed Oct 9 14:51:03 2002 @@ -2,6 +2,7 @@ =20 #if defined __s390x__ # define __WORDSIZE 64 +# define __WORDSIZE_COMPAT32 1 #else # define __WORDSIZE 32 #endif diff -urN libc-head/sysdeps/unix/sysv/linux/s390/bits/utmp.h libc-s390/sysd= eps/unix/sysv/linux/s390/bits/utmp.h --- libc-head/sysdeps/unix/sysv/linux/s390/bits/utmp.h Thu Jan 1 01:00:00 = 1970 +++ libc-s390/sysdeps/unix/sysv/linux/s390/bits/utmp.h Wed Oct 9 14:44:48 = 2002 @@ -0,0 +1,126 @@ +/* The `struct utmp' type, describing entries in the utmp file. GNU versi= on. + Copyright (C) 1993, 1996, 1997, 1998, 1999, 2002=20 + 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _UTMP_H +# error "Never include directly; use instead." +#endif + +#include +#include +#include +#include + + +#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 =3D=3D 64 && defined __WORDSIZE_COMPAT32 + int32_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]; /* Devicename. */ + char ut_id[4]; /* Inittab ID. */ + char ut_user[UT_NAMESIZE]; /* Username. */ + char ut_host[UT_HOSTSIZE]; /* Hostname for remote login. */ + struct exit_status ut_exit; /* Exit status of a process marked + as DEAD_PROCESS. */ + +/* The fields ut_session and ut_tv must be the same size when compiled=20 + 32- and 64-bit. This allows files and shared memory to be shared=20 + between 32/64bit applications. For example /var/run/utmp. */ +#if __WORDSIZE =3D=3D 64 && defined __WORDSIZE_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 __unused[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 diff -urN libc-head/sysdeps/unix/sysv/linux/s390/bits/utmpx.h libc-s390/sys= deps/unix/sysv/linux/s390/bits/utmpx.h --- libc-head/sysdeps/unix/sysv/linux/s390/bits/utmpx.h Thu Jan 1 01:00:00= 1970 +++ libc-s390/sysdeps/unix/sysv/linux/s390/bits/utmpx.h Wed Oct 9 14:44:52= 2002 @@ -0,0 +1,102 @@ +/* Structures and definitions for the user accounting database. GNU versi= on. + Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, In= c. + 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, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + 02111-1307 USA. */ + +#ifndef _UTMPX_H +# error "Never include directly; use instead." +#endif + +#include +#include + + +#ifdef __USE_GNU +# include +# 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 +{ + short int ut_type; /* Type of login. */ + __pid_t ut_pid; /* Process ID of login process. */ + char ut_line[__UT_LINESIZE]; /* Devicename. */ + char ut_id[4]; /* Inittab ID. */ + char ut_user[__UT_NAMESIZE]; /* Username. */ + char ut_host[__UT_HOSTSIZE]; /* Hostname for remote login. */ + struct __exit_status ut_exit; /* Exit status of a process marked + as DEAD_PROCESS. */ + +/* The 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/64bit applications. */ +#if __WORDSIZE =3D=3D 64 && defined __WORDSIZE_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 __unused[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