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

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

> 
>>
>> 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  7:05 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20210725225506.7404-1-pali@kernel.org>
     [not found] ` <271f5402-95f5-4e65-84ee-a227879e1c33@gmail.com>
     [not found]   ` <20210729173118.pud4xucnt4kncvol@pali>
     [not found]     ` <7d48a1dd-9641-53e9-bb65-868c86f22821@gmail.com>
     [not found]       ` <20210730000915.d6ieqiuqah4tjjxf@pali>
2021-07-30  7:04         ` Alejandro Colomar (man-pages) via Libc-alpha [this message]
2021-07-30 10:56           ` [PATCH] ioctl_tty.2: Document ioctls: TCGETS2, TCSETS2, TCSETSW2, TCSETSF2 Pali Rohár via Libc-alpha
     [not found]       ` <20210730002104.ug6gfh3xh4anh3e5@pali>
2021-07-30  7:59         ` Alejandro Colomar (man-pages) via Libc-alpha
2021-07-30 10:48 ` [PATCH v2] " Pali Rohár via Libc-alpha
2021-07-30 18:20   ` Alejandro Colomar (man-pages) via Libc-alpha

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=35947a18-65b8-6c31-2715-42f9a5c2c6f7@gmail.com \
    --to=libc-alpha@sourceware.org \
    --cc=alx.manpages@gmail.com \
    --cc=linux-man@vger.kernel.org \
    --cc=mtk.manpages@gmail.com \
    --cc=pali@kernel.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).