mescc: Mes C Library: Fix isatty for x86_64.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 23 Nov 2019 20:29:36 +0000 (21:29 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 23 Nov 2019 20:29:36 +0000 (21:29 +0100)
* lib/linux/ioctl.c (ioctl3): New function.
* include/sys/ioctl.h: Declare it.
* lib/posix/isatty.c (__tcgetattr): Use it.

include/sys/ioctl.h
lib/linux/ioctl.c
lib/posix/isatty.c

index f26c9f8ea38795e5fe3ef23474cb2fd068157dce..2650929eea811f502c7f0788365d945b5c09a73d 100644 (file)
@@ -29,6 +29,7 @@
 #define TCGETS 0x5401
 #define TCGETA 0x5405
 int ioctl (int fd, unsigned long request, ...);
+int ioctl3 (int fd, unsigned long request, long data);
 
 #endif // ! SYSTEM_LIBC
 
index 5e45c8c7ed994355292aee90ccd870851970ec9b..7df28a0b1b56dc45108f8707be39548d79e0e44f 100644 (file)
@@ -33,3 +33,10 @@ ioctl (int filedes, unsigned long command, ...)
   va_end (ap);
   return r;
 }
+
+int
+ioctl3 (int filedes, unsigned long command, long data)
+{
+  int r = _sys_call3 (SYS_ioctl, filedes, command, data);
+  return r;
+}
index db2319ec30607d22bf248604c3e401c45359c748..cf983f6ced0070bac586aad8e6011f4e5db49bb6 100644 (file)
@@ -58,7 +58,7 @@ int
 __tcgetattr (int filedes, struct termios *termios_p)
 {
   struct ktermios kernel_termios;
-  int r = ioctl (filedes, TCGETS, &kernel_termios);
+  int r = ioctl3 (filedes, TCGETS, (long) &kernel_termios);
 
   termios_p->c_iflag = kernel_termios.c_iflag;
   termios_p->c_oflag = kernel_termios.c_oflag;