linux-man.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ioctl.2: note "int request" form, HISTORYise a bit
@ 2023-09-04 14:29 наб
  2023-09-04 15:41 ` Jakub Wilk
  2023-09-13 15:24 ` Alejandro Colomar
  0 siblings, 2 replies; 8+ messages in thread
From: наб @ 2023-09-04 14:29 UTC (permalink / raw)
  To: Alejandro Colomar (man-pages); +Cc: linux-man

[-- Attachment #1: Type: text/plain, Size: 2540 bytes --]

Bit me in https://github.com/thecoshman/http/issues/155:
musl (and, thus, bionic) takes an int!

Kill the "POSIX says 'request' is int" comment,
POSIX says nothing about ioctl:
it invented tc[gs]etattr() and tc[gs]etwinsize() to avoid having
ioctl() at all, and STREAMS is long dead from POSIX.

Note how the interface evolved in HISTORY. The NetBSD CVS has
  revision 1.1
  date: 1993-03-21 10:45:37 +0100;  author: cgd;  state: Exp;
  branches:  1.1.1;
  Initial revision
  ----------------------------
  revision 1.1.1.2
  date: 1995-02-27 11:49:43 +0100;  author: cgd;  state: Exp;  lines: +6
  -6;
  from Lite
  ----------------------------
  revision 1.1.1.1
  date: 1993-03-21 10:45:37 +0100;  author: cgd;  state: Exp;  lines: +0
  -0;
  initial import of 386bsd-0.1 sources
  ----------------------------
and it's char * in 1.1.1.1 and 1.1.1.2 but ... in 1.1, so hell knows.

Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
---
 man2/ioctl.2 | 40 ++++++++++++++++++++++++++++++++++++----
 1 file changed, 36 insertions(+), 4 deletions(-)

diff --git a/man2/ioctl.2 b/man2/ioctl.2
index 6b55d47c9..a658da354 100644
--- a/man2/ioctl.2
+++ b/man2/ioctl.2
@@ -20,9 +20,8 @@ .SH SYNOPSIS
 .nf
 .B #include <sys/ioctl.h>
 .PP
-.BI "int ioctl(int " fd ", unsigned long " request ", ...);"
-.\" POSIX says 'request' is int, but glibc has the above
-.\" See https://bugzilla.kernel.org/show_bug.cgi?id=42705
+.BI "int ioctl(int " fd ", unsigned long " request ", ...);" "\fR  /* glibc, BSD */\fP"
+.BI "int ioctl(int " fd ", int " request ", ...);" "\fR            /* musl, other UNIX */\fP"
 .fi
 .SH DESCRIPTION
 The
@@ -103,7 +102,40 @@ .SH VERSIONS
 .SH STANDARDS
 None.
 .SH HISTORY
-Version\~7 AT&T UNIX.
+Version\~7 AT&T UNIX has
+.nf
+.ti +.5i
+.BI "ioctl(int " fildes ", int " request ", struct sgttyb *" argp );
+.fi
+(where
+.B struct sgttyb
+has historically been used by
+.BR stty (2)
+and
+.BR gtty(2),
+and is polymorphic by request type (like a
+.B void *
+would be, if it had been available)).
+.PP
+SysIII documents
+.I arg
+without a type at all.
+.PP
+4.3BSD has
+.nf
+.ti +.5i
+.BI "ioctl(int " d ", unsigned long " request ", char *" argp );
+.fi
+(with
+.B char *
+similarly in for
+.BR "void *" ).
+.PP
+SysVr4 has
+.nf
+.ti +.5i
+.BI "int ioctl(int " fildes ", int " request ", ... /* " arg " */);"
+.fi
 .SH NOTES
 In order to use this call, one needs an open file descriptor.
 Often the
-- 
2.39.2

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-09-13 21:23 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-04 14:29 [PATCH] ioctl.2: note "int request" form, HISTORYise a bit наб
2023-09-04 15:41 ` Jakub Wilk
2023-09-04 15:58   ` наб
2023-09-13 15:24 ` Alejandro Colomar
2023-09-13 16:02   ` наб
2023-09-13 16:44     ` Alejandro Colomar
2023-09-13 17:49       ` G. Branden Robinson
2023-09-13 21:23         ` Alejandro Colomar

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 NNTP newsgroup(s).