From patchwork Sat Aug 2 14:23:07 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella Netto X-Patchwork-Id: 2290 Received: (qmail 5798 invoked by alias); 2 Aug 2014 14:23:26 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 5786 invoked by uid 89); 2 Aug 2014 14:23:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: e24smtp02.br.ibm.com Message-ID: <53DCF44B.8010408@linux.vnet.ibm.com> Date: Sat, 02 Aug 2014 11:23:07 -0300 From: Adhemerval Zanella User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: libc-alpha@sourceware.org Subject: Re: [PATCH] PowerPC: Fix termios definitions References: <53D109AE.7070006@linux.vnet.ibm.com> <53DAF2CA.5040700@redhat.com> In-Reply-To: <53DAF2CA.5040700@redhat.com> X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14080214-2194-0000-0000-00000027F675 Hi Carlos, Ignore my last patch [1] related to this, it has some issues. I addressed your comments in this one [1] https://sourceware.org/ml/libc-alpha/2014-08/msg00011.html On 31-07-2014 22:52, Carlos O'Donell wrote: > On 07/24/2014 09:27 AM, Adhemerval Zanella wrote: >> This patch fixes the incorrect guard by __USE_MISC of struct winsize and >> struct termios in powerpc termios header. Current states leads to build >> failures if the program defines _XOPEN_SOURCE, but not _DEFAULT_SOURCE >> or either _BSD_SOURCE or _SVID_SOURCE. Without any definition, >> __USE_MISC will not be defined and neither the struct definitions. > Is struct termios a real problem? > > Isn't the minimal fix to just move winsize into the ppc-specific > ioctl-types.h like it is for all other machines? > > I don't care really, moving both makes ioctl-types.h match the > generic Linux version and that's very good for ppc64le. > > OK to checkin if you make it match the generic ioctl-types.h more > e.g. add the missing comments for winsize. Ok, done. Now the headers only differ basically for NCC definition. > --- a/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h > +++ b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h > @@ -2,4 +2,57 @@ > # error "Never use directly; include instead." > #endif > > -#include > +/* Get definition of constants for use with `ioctl'. */ > +#include > + > +struct winsize > + { > + unsigned short int ws_row; > + unsigned short int ws_col; > + unsigned short int ws_xpixel; > + unsigned short int ws_ypixel; > + }; > + > Could you make this match bits/ioctl-types.h as much as > possible? > > That way when I do a diff against bits/ioctl-types.h it > shows what's different and what's not. Done. > >> + { >> + unsigned short int c_iflag; /* input mode flags */ >> + unsigned short int c_oflag; /* output mode flags */ >> + unsigned short int c_cflag; /* control mode flags */ >> + unsigned short int c_lflag; /* local mode flags */ >> + unsigned char c_line; /* line discipline */ >> + unsigned char c_cc[NCC]; /* control characters */ >> +}; >> + > OK. Again make sure a diff against the power version shows > as the difference only those changes if possible. Done. Below the fixed patch, checked on powerpc64/powerpc64le. I'll check it Monday. --- * sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h (struct winsize): Moved definition from termios.h. (struct termio): Likewise. (NCC, TIOCM_LE, TIOCM_DTR, TIOCM_RTS, TIOCM_ST, TIOCM_SR, TIOCM_CTS, TIOCM_CAR, TIOCM_RNG, TIOCM_DSR, TIOCM_CD, TIOCM_RI, N_TTY, N_SLIP, N_MOUSE, N_PPP, N_STRIP, N_AX25, N_X25, N_6PACK, N_MASC, N_R3964, N_PROFIBUS_FDL, N_IRDA, N_SMSBLOCK, N_HDLC, N_SYNC_PPP, N_HCI): Likewise. * sysdeps/unix/sysv/linux/powerpc/bits/termios.h (struct winsize): Remove definition. (struct termio): Likewise. (NCC, TIOCM_LE, TIOCM_DTR, TIOCM_RTS, TIOCM_ST, TIOCM_SR, TIOCM_CTS, TIOCM_CAR, TIOCM_RNG, TIOCM_DSR, TIOCM_CD, TIOCM_RI, N_TTY, N_SLIP, N_MOUSE, N_PPP, N_STRIP, N_AX25, N_X25, N_6PACK, N_MASC, N_R3964, N_PROFIBUS_FDL, N_IRDA, N_SMSBLOCK, N_HDLC, N_SYNC_PPP, N_HCI): Likewise. --- diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h index 87b8265..418a5b6 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/ioctl-types.h @@ -1,5 +1,77 @@ +/* Structure types for pre-termios terminal ioctls. Linux/powerpc version. + Copyright (C) 2014 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 + . */ + #ifndef _SYS_IOCTL_H # error "Never use directly; include instead." #endif -#include +/* Get definition of constants for use with `ioctl'. */ +#include + + +struct winsize + { + unsigned short int ws_row; + unsigned short int ws_col; + unsigned short int ws_xpixel; + unsigned short int ws_ypixel; + }; + +#define NCC 10 +struct termio + { + unsigned short int c_iflag; /* input mode flags */ + unsigned short int c_oflag; /* output mode flags */ + unsigned short int c_cflag; /* control mode flags */ + unsigned short int c_lflag; /* local mode flags */ + unsigned char c_line; /* line discipline */ + unsigned char c_cc[NCC]; /* control characters */ +}; + +/* modem lines */ +#define TIOCM_LE 0x001 +#define TIOCM_DTR 0x002 +#define TIOCM_RTS 0x004 +#define TIOCM_ST 0x008 +#define TIOCM_SR 0x010 +#define TIOCM_CTS 0x020 +#define TIOCM_CAR 0x040 +#define TIOCM_RNG 0x080 +#define TIOCM_DSR 0x100 +#define TIOCM_CD TIOCM_CAR +#define TIOCM_RI TIOCM_RNG + +/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ + +/* line disciplines */ +#define N_TTY 0 +#define N_SLIP 1 +#define N_MOUSE 2 +#define N_PPP 3 +#define N_STRIP 4 +#define N_AX25 5 +#define N_X25 6 /* X.25 async */ +#define N_6PACK 7 +#define N_MASC 8 /* Mobitex module */ +#define N_R3964 9 /* Simatic R3964 module */ +#define N_PROFIBUS_FDL 10 /* Profibus */ +#define N_IRDA 11 /* Linux IR */ +#define N_SMSBLOCK 12 /* SMS block mode */ +#define N_HDLC 13 /* synchronous HDLC */ +#define N_SYNC_PPP 14 /* synchronous PPP */ +#define N_HCI 15 /* Bluetooth HCI UART */ diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h index b971d3c..bd29608 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/termios.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/termios.h @@ -226,32 +226,6 @@ struct termios { #ifdef __USE_MISC -struct sgttyb { - char sg_ispeed; - char sg_ospeed; - char sg_erase; - char sg_kill; - short sg_flags; -}; - -struct tchars { - char t_intrc; - char t_quitc; - char t_startc; - char t_stopc; - char t_eofc; - char t_brkc; -}; - -struct ltchars { - char t_suspc; - char t_dsuspc; - char t_rprntc; - char t_flushc; - char t_werasc; - char t_lnextc; -}; - /* Used for packet mode */ #define TIOCPKT_DATA 0 #define TIOCPKT_FLUSHREAD 1 @@ -261,24 +235,6 @@ struct ltchars { #define TIOCPKT_NOSTOP 16 #define TIOCPKT_DOSTOP 32 - -struct winsize { - unsigned short ws_row; - unsigned short ws_col; - unsigned short ws_xpixel; - unsigned short ws_ypixel; -}; - -#define NCC 10 -struct termio { - unsigned short c_iflag; /* input mode flags */ - unsigned short c_oflag; /* output mode flags */ - unsigned short c_cflag; /* control mode flags */ - unsigned short c_lflag; /* local mode flags */ - unsigned char c_line; /* line discipline */ - unsigned char c_cc[NCC]; /* control characters */ -}; - /* c_cc characters */ #define _VINTR 0 #define _VQUIT 1 @@ -291,38 +247,7 @@ struct termio { #define _VEOL2 8 #define _VSWTC 9 -/* modem lines */ -#define TIOCM_LE 0x001 -#define TIOCM_DTR 0x002 -#define TIOCM_RTS 0x004 -#define TIOCM_ST 0x008 -#define TIOCM_SR 0x010 -#define TIOCM_CTS 0x020 -#define TIOCM_CAR 0x040 -#define TIOCM_RNG 0x080 -#define TIOCM_DSR 0x100 -#define TIOCM_CD TIOCM_CAR -#define TIOCM_RI TIOCM_RNG - /* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */ #define TIOCSER_TEMT 0x01 /* Transmitter physically empty */ -/* line disciplines */ -#define N_TTY 0 -#define N_SLIP 1 -#define N_MOUSE 2 -#define N_PPP 3 -#define N_STRIP 4 -#define N_AX25 5 -#define N_X25 6 /* X.25 async */ -#define N_6PACK 7 -#define N_MASC 8 /* Mobitex module */ -#define N_R3964 9 /* Simatic R3964 module */ -#define N_PROFIBUS_FDL 10 /* Profibus */ -#define N_IRDA 11 /* Linux IR */ -#define N_SMSBLOCK 12 /* SMS block mode */ -#define N_HDLC 13 /* synchronous HDLC */ -#define N_SYNC_PPP 14 /* synchronous PPP */ -#define N_HCI 15 /* Bluetooth HCI UART */ - #endif /* __USE_MISC */