add consistent reserved fields in mips64/n32 termios structures
authorRich Felker <dalias@aerifal.cx>
Sun, 3 Jul 2016 14:49:52 +0000 (10:49 -0400)
committerRich Felker <dalias@aerifal.cx>
Sun, 3 Jul 2016 14:49:52 +0000 (10:49 -0400)
the (unused) speed fields were omitted when these ports were first
added (within this release cycle, so not present in any release yet)
in accordance with how glibc defines the structure on mips archs.
however their omission does not match existing musl practice/intent.

glibc provides its own, mostly-unified termios structure definition
and performs translation in userspace to match the kernel structure
for the arch, but has gratuitous differences on a few archs like mips,
presumably as a result of historical mistakes. some other libcs use
the kernel definitions directly. musl essentially does that, by
matching the kernel layout in the part of the structure the kernel
will read/write, but leaves additional space at the end for
extensibility. these are nominally the (nonstandard) speed fields and
(on most archs) extra c_cc elements, but since they are not used they
could be repurposed if there's ever a need.

arch/mips64/bits/termios.h
arch/mipsn32/bits/termios.h

index 3a7d5a139be4ef9d9ed26c06d0bb49c0faaeca68..b19d48673cde38ded848aea94a959ed2051cfc99 100644 (file)
@@ -5,6 +5,8 @@ struct termios {
        tcflag_t c_lflag;
        cc_t c_line;
        cc_t c_cc[NCCS];
+       speed_t __c_ispeed;
+       speed_t __c_ospeed;
 };
 
 #define VINTR     0
index 3a7d5a139be4ef9d9ed26c06d0bb49c0faaeca68..b19d48673cde38ded848aea94a959ed2051cfc99 100644 (file)
@@ -5,6 +5,8 @@ struct termios {
        tcflag_t c_lflag;
        cc_t c_line;
        cc_t c_cc[NCCS];
+       speed_t __c_ispeed;
+       speed_t __c_ospeed;
 };
 
 #define VINTR     0