All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali@kernel.org>
To: "Alejandro Colomar (man-pages)" <alx.manpages@gmail.com>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>,
	linux-man@vger.kernel.org, Glibc <libc-alpha@sourceware.org>
Subject: Re: [PATCH] ioctl_tty.2: Document ioctls: TCGETS2, TCSETS2, TCSETSW2, TCSETSF2
Date: Fri, 30 Jul 2021 12:56:11 +0200	[thread overview]
Message-ID: <20210730105611.rtmd5642ed2ountm@pali> (raw)
In-Reply-To: <35947a18-65b8-6c31-2715-42f9a5c2c6f7@gmail.com>

On Friday 30 July 2021 09:04:46 Alejandro Colomar (man-pages) wrote:
> CC += glibc
> 
> On 7/30/21 2:09 AM, Pali Rohár wrote:
> > Hello!
> > 
> > On Friday 30 July 2021 01:39:11 Alejandro Colomar (man-pages) wrote:
> > > Hi Pali,
> > > 
> > > On 7/29/21 7:31 PM, Pali Rohár wrote:
> > > > 
> > > > > > +.IR "<asm/termbits.h>" .
> > > 
> > > Is that the header that the user should include?
> > 
> > Yes.
> > 
> > > I don't know.  I typically avoid 'asm/' includes, but maybe in this case
> > > it's the correct one.  Shouldn't the user maybe include <linux/termios.h>?
> > 
> > Problem is that you cannot include <linux/termios.h> together with
> > <sys/ioctl.h>. It cause redefinition of symbols and compile errors.
> > 
> > And without <sys/ioctl.h> you cannot call ioctl() function which
> > basically means that you cannot use TCGETS2 (as it is ioctl).
> 
> Seems fair.
> 
> > 
> > Probably this is a bug in glibc header files...
> 
> I CCed glibc just in case they want to comment.
> 
> > 
> > So currently it is needed to include <asm/termbits.h> file to use
> > TCGETS2 ioctl. I'm not sure if it is "correct", but it is the only
> > possible option for now about which I know (unless you want to
> > copy+paste structures and macros from that file into your program, to
> > avoid inclusion of asm/* files).
> 
> Re copy&paste: no thanks :)
> 
> > 
> > If you want, I can send a patch for ioctl_tty.2 example section with
> > simple C program to show how to use TCGETS2/TCSETS2 ioctl.
> 
> Great!  Please CC glibc in the patch.
> 
> > 
> > > user@sqli:/usr/include$ grep -rn 'struct termios {'
> > > asm-generic/termbits.h:12:struct termios {
> > > user@sqli:/usr/include$ grep -rn '<asm-generic/termbits.h>'
> > > x86_64-linux-gnu/asm/termbits.h:1:#include <asm-generic/termbits.h>
> > > user@sqli:/usr/include$ grep -rn '<asm/termbits.h>'
> > > asm-generic/termios.h:12:#include <asm/termbits.h>
> > > user@sqli:/usr/include$ grep -rn '<asm-generic/termios.h>'
> > > x86_64-linux-gnu/asm/termios.h:1:#include <asm-generic/termios.h>
> > > user@sqli:/usr/include$ grep -rn '<asm/termios.h>'
> > > linux/termios.h:6:#include <asm/termios.h>
> > > user@sqli:/usr/include$ grep -rn '<linux/termios.h>'
> > > user@sqli:/usr/include$
> > > 
> > > 
> > > > > > +These ioctls are not supported on all architectures.
> > > > > > +.IP
> > > > > > +.BI "TCGETS2	struct termios2 *" argp
> > > > > 
> > > > > Please follow the same style as in the rest of the page:
> > > > > 
> > > > > .TP
> > > > > .B TCGETS2
> > > > > Argument:
> > > > > .BI "struct termios2 *" argp
> > > > > 
> > > > > Unless there's a good reason not to.
> > > > 
> > > > Few lines below in this file is:
> > > > 
> > > > .IR "struct termios\ *" .
> > > > .IP
> > > > .BI "TCGETA	struct termio *" argp
> > > > .IP
> > > > .BI "TCSETA	const struct termio *" argp
> > > > .IP
> > > > .BI "TCSETAW	const struct termio *" argp
> > > > .IP
> > > > .BI "TCSETAF	const struct termio *" argp
> > > > 
> > > > Therefore I used same style for TCGETS2...
> > > > 
> > > > So, how should I format this part to be consistent?
> > > 
> > > 
> > > Hmm, sorry, I didn't see those.
> > 
> > Ah, now I see that Michael one hour later (after I sent this patch)
> > fixed above style to another. See commit aceee9e827e6.
> > 
> > But changed it to another new style:
> > 
> > .RS
> > .TS
> > lb l.
> > TCGETA	\fBstruct termio *\fPargp
> > TCSETA	\fBconst struct termio *\fPargp
> > TCSETAW	\fBconst struct termio *\fPargp
> > TCSETAF	\fBconst struct termio *\fPargp
> > .TE
> > .RE
> > 
> > > So there's a mix in the file.
> > > The more correct form is the one I used, so please use that one (the one
> > > with .TP)
> > 
> > So, could you check with Michael which style to use? Because now there
> > are 3 different (yours, Michael's and the one which was there before)
> > and I'm really not sure what is correct...
> 
> Sorry, I was also confused, as I had Michael's version, and didn't see the
> table he reformatted, which I now understand was what you were doing (in the
> old format).  So if what you wrote corresponds to what Michael reformatted,
> please use Michael's new format (the table).
> 
> Thanks,
> 
> Alex

Hello! Now I sent a new version and reformatted this part according to
Michael style.

> > 
> > > 
> > > Thanks,
> > > 
> > > Alex
> > > 
> > > 
> > > > 
> > > > > > +.IP
> > > > > > +.BI "TCSETS2	const struct termios2 *" argp
> > > > > > +.IP
> > > > > > +.BI "TCSETSW2	const struct termios2 *" argp
> > > > > > +.IP
> > > > > > +.BI "TCSETSF2	const struct termios2 *" argp
> > > > > > +.PP
> > > > > > +The following four ioctls are just like
> > > > > > +.BR TCGETS ,
> > > > > > +.BR TCSETS ,
> > > > > > +.BR TCSETSW ,
> > > > > > +.BR TCSETSF ,
> > > > > > +except that they take a
> > > > > >     .I "struct termio\ *"
> > > > > >     instead of a
> > > > > >     .IR "struct termios\ *" .
> > > > > > 
> > > > > 
> > > > > 
> > > > > -- 
> > > > > Alejandro Colomar
> > > > > Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/
> > > > > http://www.alejandro-colomar.es/
> > > 
> > > 
> > > -- 
> > > Alejandro Colomar
> > > Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/
> > > http://www.alejandro-colomar.es/
> 
> 
> -- 
> Alejandro Colomar
> Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/
> http://www.alejandro-colomar.es/

  reply	other threads:[~2021-07-30 10:56 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-25 22:55 [PATCH] ioctl_tty.2: Document ioctls: TCGETS2, TCSETS2, TCSETSW2, TCSETSF2 Pali Rohár
2021-07-29 11:30 ` Alejandro Colomar (man-pages)
2021-07-29 17:31   ` Pali Rohár
2021-07-29 23:39     ` Alejandro Colomar (man-pages)
2021-07-30  0:09       ` Pali Rohár
2021-07-30  7:04         ` Alejandro Colomar (man-pages)
2021-07-30 10:56           ` Pali Rohár [this message]
2021-07-30  0:21       ` Pali Rohár
2021-07-30  7:59         ` Alejandro Colomar (man-pages)
2021-07-30 10:48 ` [PATCH v2] " Pali Rohár
2021-07-30 18:20   ` Alejandro Colomar (man-pages)

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210730105611.rtmd5642ed2ountm@pali \
    --to=pali@kernel.org \
    --cc=alx.manpages@gmail.com \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-man@vger.kernel.org \
    --cc=mtk.manpages@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.