| ... | @@ -4027,50 +4027,354 @@ pub const DT = struct { | ... | @@ -4027,50 +4027,354 @@ pub const DT = struct { |
| 4027 | pub const WHT = 14; | 4027 | pub const WHT = 14; |
| 4028 | }; | 4028 | }; |
| 4029 | | 4029 | |
| 4030 | pub const T = struct { | 4030 | pub const T = if (is_mips) struct { |
| 4031 | pub const CGETS = if (is_mips) 0x540D else 0x5401; | 4031 | pub const CGETA = 0x5401; |
| 4032 | pub const CSETS = if (is_mips) 0x540e else 0x5402; | 4032 | pub const CSETA = 0x5402; |
| 4033 | pub const CSETSW = if (is_mips) 0x540f else 0x5403; | 4033 | pub const CSETAW = 0x5403; |
| 4034 | pub const CSETSF = if (is_mips) 0x5410 else 0x5404; | 4034 | pub const CSETAF = 0x5404; |
| 4035 | pub const CGETA = if (is_mips) 0x5401 else 0x5405; | 4035 | |
| 4036 | pub const CSETA = if (is_mips) 0x5402 else 0x5406; | 4036 | pub const CSBRK = 0x5405; |
| 4037 | pub const CSETAW = if (is_mips) 0x5403 else 0x5407; | 4037 | pub const CXONC = 0x5406; |
| 4038 | pub const CSETAF = if (is_mips) 0x5404 else 0x5408; | 4038 | pub const CFLSH = 0x5407; |
| 4039 | pub const CSBRK = if (is_mips) 0x5405 else 0x5409; | 4039 | |
| 4040 | pub const CXONC = if (is_mips) 0x5406 else 0x540A; | 4040 | pub const CGETS = 0x540d; |
| 4041 | pub const CFLSH = if (is_mips) 0x5407 else 0x540B; | 4041 | pub const CSETS = 0x540e; |
| 4042 | pub const IOCEXCL = if (is_mips) 0x740d else 0x540C; | 4042 | pub const CSETSW = 0x540f; |
| 4043 | pub const IOCNXCL = if (is_mips) 0x740e else 0x540D; | 4043 | pub const CSETSF = 0x5410; |
| 4044 | pub const IOCSCTTY = if (is_mips) 0x7472 else 0x540E; | 4044 | |
| 4045 | pub const IOCGPGRP = if (is_mips) 0x5472 else 0x540F; | 4045 | pub const IOCEXCL = 0x740d; |
| 4046 | pub const IOCSPGRP = if (is_mips) 0x741d else 0x5410; | 4046 | pub const IOCNXCL = 0x740e; |
| 4047 | pub const IOCOUTQ = if (is_mips) 0x7472 else 0x5411; | 4047 | pub const IOCOUTQ = 0x7472; |
| 4048 | pub const IOCSTI = if (is_mips) 0x5472 else 0x5412; | 4048 | pub const IOCSTI = 0x5472; |
| 4049 | pub const IOCGWINSZ = if (is_mips or is_ppc) 0x40087468 else 0x5413; | 4049 | pub const IOCMGET = 0x741d; |
| 4050 | pub const IOCSWINSZ = if (is_mips or is_ppc) 0x80087467 else 0x5414; | 4050 | pub const IOCMBIS = 0x741b; |
| 4051 | pub const IOCMGET = if (is_mips) 0x741d else 0x5415; | 4051 | pub const IOCMBIC = 0x741c; |
| 4052 | pub const IOCMBIS = if (is_mips) 0x741b else 0x5416; | 4052 | pub const IOCMSET = 0x741a; |
| 4053 | pub const IOCMBIC = if (is_mips) 0x741c else 0x5417; | 4053 | pub const IOCPKT = 0x5470; |
| 4054 | pub const IOCMSET = if (is_mips) 0x741a else 0x5418; | 4054 | pub const IOCPKT_DATA = 0x00; |
| 4055 | pub const IOCGSOFTCAR = if (is_mips) 0x5481 else 0x5419; | 4055 | pub const IOCPKT_FLUSHREAD = 0x01; |
| 4056 | pub const IOCSSOFTCAR = if (is_mips) 0x5482 else 0x541A; | 4056 | pub const IOCPKT_FLUSHWRITE = 0x02; |
| 4057 | pub const FIONREAD = if (is_mips) 0x467F else 0x541B; | 4057 | pub const IOCPKT_STOP = 0x04; |
| | 4058 | pub const IOCPKT_START = 0x08; |
| | 4059 | pub const IOCPKT_NOSTOP = 0x10; |
| | 4060 | pub const IOCPKT_DOSTOP = 0x20; |
| | 4061 | pub const IOCPKT_IOCTL = 0x40; |
| | 4062 | pub const IOCSWINSZ = IOCTL.IOW('t', 103, winsize); |
| | 4063 | pub const IOCGWINSZ = IOCTL.IOR('t', 104, winsize); |
| | 4064 | pub const IOCNOTTY = 0x5471; |
| | 4065 | pub const IOCSETD = 0x7401; |
| | 4066 | pub const IOCGETD = 0x7400; |
| | 4067 | |
| | 4068 | pub const FIOCLEX = 0x6601; |
| | 4069 | pub const FIONCLEX = 0x6602; |
| | 4070 | pub const FIOASYNC = 0x667d; |
| | 4071 | pub const FIONBIO = 0x667e; |
| | 4072 | pub const FIOQSIZE = 0x667f; |
| | 4073 | |
| | 4074 | pub const IOCGLTC = 0x7474; |
| | 4075 | pub const IOCSLTC = 0x7475; |
| | 4076 | pub const IOCSPGRP = IOCTL.IOW('t', 118, c_int); |
| | 4077 | pub const IOCGPGRP = IOCTL.IOR('t', 119, c_int); |
| | 4078 | pub const IOCCONS = IOCTL.IOW('t', 120, c_int); |
| | 4079 | |
| | 4080 | pub const FIONREAD = 0x467f; |
| 4058 | pub const IOCINQ = FIONREAD; | 4081 | pub const IOCINQ = FIONREAD; |
| 4059 | pub const IOCLINUX = if (is_mips) 0x5483 else 0x541C; | 4082 | |
| 4060 | pub const IOCCONS = if (is_mips) IOCTL.IOW('t', 120, c_int) else 0x541D; | 4083 | pub const IOCGETP = 0x7408; |
| 4061 | pub const IOCGSERIAL = if (is_mips) 0x5484 else 0x541E; | 4084 | pub const IOCSETP = 0x7409; |
| 4062 | pub const IOCSSERIAL = if (is_mips) 0x5485 else 0x541F; | 4085 | pub const IOCSETN = 0x740a; |
| 4063 | pub const IOCPKT = if (is_mips) 0x5470 else 0x5420; | 4086 | |
| 4064 | pub const FIONBIO = if (is_mips) 0x667e else 0x5421; | 4087 | pub const IOCSBRK = 0x5427; |
| 4065 | pub const IOCNOTTY = if (is_mips) 0x5471 else 0x5422; | 4088 | pub const IOCCBRK = 0x5428; |
| 4066 | pub const IOCSETD = if (is_mips) 0x7401 else 0x5423; | 4089 | pub const IOCGSID = 0x7416; |
| 4067 | pub const IOCGETD = if (is_mips) 0x7400 else 0x5424; | 4090 | pub const CGETS2 = IOCTL.IOR('T', 0x2a, termios2); |
| 4068 | pub const CSBRKP = if (is_mips) 0x5486 else 0x5425; | 4091 | pub const CSETS2 = IOCTL.IOW('T', 0x2b, termios2); |
| | 4092 | pub const CSETSW2 = IOCTL.IOW('T', 0x2c, termios2); |
| | 4093 | pub const CSETSF2 = IOCTL.IOW('T', 0x2d, termios2); |
| | 4094 | pub const IOCGRS485 = IOCTL.IOR('T', 0x2e, serial_rs485); |
| | 4095 | pub const IOCSRS485 = IOCTL.IOWR('T', 0x2f, serial_rs485); |
| | 4096 | pub const IOCGPTN = IOCTL.IOR('T', 0x30, c_uint); |
| | 4097 | pub const IOCSPTLCK = IOCTL.IOW('T', 0x31, c_int); |
| | 4098 | pub const IOCGDEV = IOCTL.IOR('T', 0x32, c_uint); |
| | 4099 | pub const IOCSIG = IOCTL.IOW('T', 0x36, c_int); |
| | 4100 | pub const IOCVHANGUP = 0x5437; |
| | 4101 | pub const IOCGPKT = IOCTL.IOR('T', 0x38, c_int); |
| | 4102 | pub const IOCGPTLCK = IOCTL.IOR('T', 0x39, c_int); |
| | 4103 | pub const IOCGEXCL = IOCTL.IOR('T', 0x40, c_int); |
| | 4104 | pub const IOCGPTPEER = IOCTL.IO('T', 0x41); |
| | 4105 | pub const IOCGISO7816 = IOCTL.IOR('T', 0x42, serial_iso7816); |
| | 4106 | pub const IOCSISO7816 = IOCTL.IOWR('T', 0x43, serial_iso7816); |
| | 4107 | |
| | 4108 | pub const IOCSCTTY = 0x5480; |
| | 4109 | pub const IOCGSOFTCAR = 0x5481; |
| | 4110 | pub const IOCSSOFTCAR = 0x5482; |
| | 4111 | pub const IOCLINUX = 0x5483; |
| | 4112 | pub const IOCGSERIAL = 0x5484; |
| | 4113 | pub const IOCSSERIAL = 0x5485; |
| | 4114 | pub const CSBRKP = 0x5486; |
| | 4115 | pub const IOCSERCONFIG = 0x5488; |
| | 4116 | pub const IOCSERGWILD = 0x5489; |
| | 4117 | pub const IOCSERSWILD = 0x548a; |
| | 4118 | pub const IOCGLCKTRMIOS = 0x548b; |
| | 4119 | pub const IOCSLCKTRMIOS = 0x548c; |
| | 4120 | pub const IOCSERGSTRUCT = 0x548d; |
| | 4121 | pub const IOCSERGETLSR = 0x548e; |
| | 4122 | pub const IOCSERGETMULTI = 0x548f; |
| | 4123 | pub const IOCSERSETMULTI = 0x5490; |
| | 4124 | pub const IOCMIWAIT = 0x5491; |
| | 4125 | pub const IOCGICOUNT = 0x5492; |
| | 4126 | } else if (is_ppc) struct { |
| | 4127 | pub const FIOCLEX = IOCTL.IO('f', 1); |
| | 4128 | pub const FIONCLEX = IOCTL.IO('f', 2); |
| | 4129 | pub const FIOASYNC = IOCTL.IOW('f', 125, c_int); |
| | 4130 | pub const FIONBIO = IOCTL.IOW('f', 126, c_int); |
| | 4131 | pub const FIONREAD = IOCTL.IOR('f', 127, c_int); |
| | 4132 | pub const IOCINQ = FIONREAD; |
| | 4133 | pub const FIOQSIZE = IOCTL.IOR('f', 128, c_longlong); // loff_t -> __kernel_loff_t -> long long |
| | 4134 | |
| | 4135 | pub const IOCGETP = IOCTL.IOR('t', 8, sgttyb); |
| | 4136 | pub const IOCSETP = IOCTL.IOW('t', 9, sgttyb); |
| | 4137 | pub const IOCSETN = IOCTL.IOW('t', 10, sgttyb); |
| | 4138 | |
| | 4139 | pub const IOCSETC = IOCTL.IOW('t', 17, tchars); |
| | 4140 | pub const IOCGETC = IOCTL.IOR('t', 18, tchars); |
| | 4141 | pub const CGETS = IOCTL.IOR('t', 19, termios); |
| | 4142 | pub const CSETS = IOCTL.IOW('t', 20, termios); |
| | 4143 | pub const CSETSW = IOCTL.IOW('t', 21, termios); |
| | 4144 | pub const CSETSF = IOCTL.IOW('t', 22, termios); |
| | 4145 | |
| | 4146 | pub const CGETA = IOCTL.IOR('t', 23, termio); |
| | 4147 | pub const CSETA = IOCTL.IOW('t', 24, termio); |
| | 4148 | pub const CSETAW = IOCTL.IOW('t', 25, termio); |
| | 4149 | pub const CSETAF = IOCTL.IOW('t', 28, termio); |
| | 4150 | |
| | 4151 | pub const CSBRK = IOCTL.IO('t', 29); |
| | 4152 | pub const CXONC = IOCTL.IO('t', 30); |
| | 4153 | pub const CFLSH = IOCTL.IO('t', 31); |
| | 4154 | |
| | 4155 | pub const IOCSWINSZ = IOCTL.IOW('t', 103, winsize); |
| | 4156 | pub const IOCGWINSZ = IOCTL.IOR('t', 104, winsize); |
| | 4157 | pub const IOCSTART = IOCTL.IO('t', 110); |
| | 4158 | pub const IOCSTOP = IOCTL.IO('t', 111); |
| | 4159 | pub const IOCOUTQ = IOCTL.IOR('t', 115, c_int); |
| | 4160 | |
| | 4161 | pub const IOCGLTC = IOCTL.IOR('t', 116, ltchars); |
| | 4162 | pub const IOCSLTC = IOCTL.IOW('t', 117, ltchars); |
| | 4163 | pub const IOCSPGRP = IOCTL.IOW('t', 118, c_int); |
| | 4164 | pub const IOCGPGRP = IOCTL.IOR('t', 119, c_int); |
| | 4165 | |
| | 4166 | pub const IOCEXCL = 0x540c; |
| | 4167 | pub const IOCNXCL = 0x540d; |
| | 4168 | pub const IOCSCTTY = 0x540e; |
| | 4169 | |
| | 4170 | pub const IOCSTI = 0x5412; |
| | 4171 | pub const IOCMGET = 0x5415; |
| | 4172 | pub const IOCMBIS = 0x5416; |
| | 4173 | pub const IOCMBIC = 0x5417; |
| | 4174 | pub const IOCMSET = 0x5418; |
| | 4175 | pub const IOCM_LE = 0x001; |
| | 4176 | pub const IOCM_DTR = 0x002; |
| | 4177 | pub const IOCM_RTS = 0x004; |
| | 4178 | pub const IOCM_ST = 0x008; |
| | 4179 | pub const IOCM_SR = 0x010; |
| | 4180 | pub const IOCM_CTS = 0x020; |
| | 4181 | pub const IOCM_CAR = 0x040; |
| | 4182 | pub const IOCM_RNG = 0x080; |
| | 4183 | pub const IOCM_DSR = 0x100; |
| | 4184 | pub const IOCM_CD = IOCM_CAR; |
| | 4185 | pub const IOCM_RI = IOCM_RNG; |
| | 4186 | pub const IOCM_OUT1 = 0x2000; |
| | 4187 | pub const IOCM_OUT2 = 0x4000; |
| | 4188 | pub const IOCM_LOOP = 0x8000; |
| | 4189 | |
| | 4190 | pub const IOCGSOFTCAR = 0x5419; |
| | 4191 | pub const IOCSSOFTCAR = 0x541a; |
| | 4192 | pub const IOCLINUX = 0x541c; |
| | 4193 | pub const IOCCONS = 0x541d; |
| | 4194 | pub const IOCGSERIAL = 0x541e; |
| | 4195 | pub const IOCSSERIAL = 0x541f; |
| | 4196 | pub const IOCPKT = 0x5420; |
| | 4197 | pub const IOCPKT_DATA = 0; |
| | 4198 | pub const IOCPKT_FLUSHREAD = 1; |
| | 4199 | pub const IOCPKT_FLUSHWRITE = 2; |
| | 4200 | pub const IOCPKT_STOP = 4; |
| | 4201 | pub const IOCPKT_START = 8; |
| | 4202 | pub const IOCPKT_NOSTOP = 16; |
| | 4203 | pub const IOCPKT_DOSTOP = 32; |
| | 4204 | pub const IOCPKT_IOCTL = 64; |
| | 4205 | |
| | 4206 | pub const IOCNOTTY = 0x5422; |
| | 4207 | pub const IOCSETD = 0x5423; |
| | 4208 | pub const IOCGETD = 0x5424; |
| | 4209 | pub const CSBRKP = 0x5425; |
| 4069 | pub const IOCSBRK = 0x5427; | 4210 | pub const IOCSBRK = 0x5427; |
| 4070 | pub const IOCCBRK = 0x5428; | 4211 | pub const IOCCBRK = 0x5428; |
| 4071 | pub const IOCGSID = if (is_mips) 0x7416 else 0x5429; | 4212 | pub const IOCGSID = 0x5429; |
| 4072 | pub const IOCGRS485 = 0x542E; | 4213 | pub const IOCGRS485 = 0x542e; |
| 4073 | pub const IOCSRS485 = 0x542F; | 4214 | pub const IOCSRS485 = 0x542f; |
| | 4215 | pub const IOCGPTN = IOCTL.IOR('T', 0x30, c_uint); |
| | 4216 | pub const IOCSPTLCK = IOCTL.IOW('T', 0x31, c_int); |
| | 4217 | pub const IOCGDEV = IOCTL.IOR('T', 0x32, c_uint); |
| | 4218 | pub const IOCSIG = IOCTL.IOW('T', 0x36, c_int); |
| | 4219 | pub const IOCVHANGUP = 0x5437; |
| | 4220 | pub const IOCGPKT = IOCTL.IOR('T', 0x38, c_int); |
| | 4221 | pub const IOCGPTLCK = IOCTL.IOR('T', 0x39, c_int); |
| | 4222 | pub const IOCGEXCL = IOCTL.IOR('T', 0x40, c_int); |
| | 4223 | pub const IOCGPTPEER = IOCTL.IO('T', 0x41); |
| | 4224 | pub const IOCGISO7816 = IOCTL.IOR('T', 0x42, serial_iso7816); |
| | 4225 | pub const IOCSISO7816 = IOCTL.IOWR('T', 0x43, serial_iso7816); |
| | 4226 | |
| | 4227 | pub const IOCSERCONFIG = 0x5453; |
| | 4228 | pub const IOCSERGWILD = 0x5454; |
| | 4229 | pub const IOCSERSWILD = 0x5455; |
| | 4230 | pub const IOCGLCKTRMIOS = 0x5456; |
| | 4231 | pub const IOCSLCKTRMIOS = 0x5457; |
| | 4232 | pub const IOCSERGSTRUCT = 0x5458; |
| | 4233 | pub const IOCSERGETLSR = 0x5459; |
| | 4234 | pub const IOCSER_TEMT = 0x01; |
| | 4235 | pub const IOCSERGETMULTI = 0x545a; |
| | 4236 | pub const IOCSERSETMULTI = 0x545b; |
| | 4237 | |
| | 4238 | pub const IOCMIWAIT = 0x545c; |
| | 4239 | pub const IOCGICOUNT = 0x545d; |
| | 4240 | } else if (is_sparc) struct { |
| | 4241 | // Entries with double-underscore prefix have not been translated as they are unsupported. |
| | 4242 | |
| | 4243 | pub const CGETA = IOCTL.IOR('T', 1, termio); |
| | 4244 | pub const CSETA = IOCTL.IOW('T', 2, termio); |
| | 4245 | pub const CSETAW = IOCTL.IOW('T', 3, termio); |
| | 4246 | pub const CSETAF = IOCTL.IOW('T', 4, termio); |
| | 4247 | pub const CSBRK = IOCTL.IO('T', 5); |
| | 4248 | pub const CXONC = IOCTL.IO('T', 6); |
| | 4249 | pub const CFLSH = IOCTL.IO('T', 7); |
| | 4250 | pub const CGETS = IOCTL.IOR('T', 8, termios); |
| | 4251 | pub const CSETS = IOCTL.IOW('T', 9, termios); |
| | 4252 | pub const CSETSW = IOCTL.IOW('T', 10, termios); |
| | 4253 | pub const CSETSF = IOCTL.IOW('T', 11, termios); |
| | 4254 | pub const CGETS2 = IOCTL.IOR('T', 12, termios2); |
| | 4255 | pub const CSETS2 = IOCTL.IOW('T', 13, termios2); |
| | 4256 | pub const CSETSW2 = IOCTL.IOW('T', 14, termios2); |
| | 4257 | pub const CSETSF2 = IOCTL.IOW('T', 15, termios2); |
| | 4258 | pub const IOCGDEV = IOCTL.IOR('T', 0x32, c_uint); |
| | 4259 | pub const IOCVHANGUP = IOCTL.IO('T', 0x37); |
| | 4260 | pub const IOCGPKT = IOCTL.IOR('T', 0x38, c_int); |
| | 4261 | pub const IOCGPTLCK = IOCTL.IOR('T', 0x39, c_int); |
| | 4262 | pub const IOCGEXCL = IOCTL.IOR('T', 0x40, c_int); |
| | 4263 | pub const IOCGRS485 = IOCTL.IOR('T', 0x41, serial_rs485); |
| | 4264 | pub const IOCSRS485 = IOCTL.IOWR('T', 0x42, serial_rs485); |
| | 4265 | pub const IOCGISO7816 = IOCTL.IOR('T', 0x43, serial_iso7816); |
| | 4266 | pub const IOCSISO7816 = IOCTL.IOWR('T', 0x44, serial_iso7816); |
| | 4267 | |
| | 4268 | pub const IOCGETD = IOCTL.IOR('t', 0, c_int); |
| | 4269 | pub const IOCSETD = IOCTL.IOW('t', 1, c_int); |
| | 4270 | pub const IOCEXCL = IOCTL.IO('t', 13); |
| | 4271 | pub const IOCNXCL = IOCTL.IO('t', 14); |
| | 4272 | pub const IOCCONS = IOCTL.IO('t', 36); |
| | 4273 | pub const IOCGSOFTCAR = IOCTL.IOR('t', 100, c_int); |
| | 4274 | pub const IOCSSOFTCAR = IOCTL.IOW('t', 101, c_int); |
| | 4275 | pub const IOCSWINSZ = IOCTL.IOW('t', 103, winsize); |
| | 4276 | pub const IOCGWINSZ = IOCTL.IOR('t', 104, winsize); |
| | 4277 | pub const IOCMGET = IOCTL.IOR('t', 106, c_int); |
| | 4278 | pub const IOCMBIC = IOCTL.IOW('t', 107, c_int); |
| | 4279 | pub const IOCMBIS = IOCTL.IOW('t', 108, c_int); |
| | 4280 | pub const IOCMSET = IOCTL.IOW('t', 109, c_int); |
| | 4281 | pub const IOCSTART = IOCTL.IO('t', 110); |
| | 4282 | pub const IOCSTOP = IOCTL.IO('t', 111); |
| | 4283 | pub const IOCPKT = IOCTL.IOW('t', 112, c_int); |
| | 4284 | pub const IOCNOTTY = IOCTL.IO('t', 113); |
| | 4285 | pub const IOCSTI = IOCTL.IOW('t', 114, c_char); |
| | 4286 | pub const IOCOUTQ = IOCTL.IOR('t', 115, c_int); |
| | 4287 | pub const IOCCBRK = IOCTL.IO('t', 122); |
| | 4288 | pub const IOCSBRK = IOCTL.IO('t', 123); |
| | 4289 | pub const IOCSPGRP = IOCTL.IOW('t', 130, c_int); |
| | 4290 | pub const IOCGPGRP = IOCTL.IOR('t', 131, c_int); |
| | 4291 | pub const IOCSCTTY = IOCTL.IO('t', 132); |
| | 4292 | pub const IOCGSID = IOCTL.IOR('t', 133, c_int); |
| | 4293 | pub const IOCGPTN = IOCTL.IOR('t', 134, c_uint); |
| | 4294 | pub const IOCSPTLCK = IOCTL.IOW('t', 135, c_int); |
| | 4295 | pub const IOCSIG = IOCTL.IOW('t', 136, c_int); |
| | 4296 | pub const IOCGPTPEER = IOCTL.IO('t', 137); |
| | 4297 | |
| | 4298 | pub const FIOCLEX = IOCTL.IO('f', 1); |
| | 4299 | pub const FIONCLEX = IOCTL.IO('f', 2); |
| | 4300 | pub const FIOASYNC = IOCTL.IOW('f', 125, c_int); |
| | 4301 | pub const FIONBIO = IOCTL.IOW('f', 126, c_int); |
| | 4302 | pub const FIONREAD = IOCTL.IOR('f', 127, c_int); |
| | 4303 | pub const IOCINQ = FIONREAD; |
| | 4304 | pub const FIOQSIZE = IOCTL.IOR('f', 128, c_longlong); // loff_t -> __kernel_loff_t -> long long |
| | 4305 | |
| | 4306 | pub const IOCLINUX = 0x541c; |
| | 4307 | pub const IOCGSERIAL = 0x541e; |
| | 4308 | pub const IOCSSERIAL = 0x541f; |
| | 4309 | pub const CSBRKP = 0x5425; |
| | 4310 | pub const IOCSERCONFIG = 0x5453; |
| | 4311 | pub const IOCSERGWILD = 0x5454; |
| | 4312 | pub const IOCSERSWILD = 0x5455; |
| | 4313 | pub const IOCGLCKTRMIOS = 0x5456; |
| | 4314 | pub const IOCSLCKTRMIOS = 0x5457; |
| | 4315 | pub const IOCSERGSTRUCT = 0x5458; |
| | 4316 | pub const IOCSERGETLSR = 0x5459; |
| | 4317 | pub const IOCSERGETMULTI = 0x545a; |
| | 4318 | pub const IOCSERSETMULTI = 0x545b; |
| | 4319 | pub const IOCMIWAIT = 0x545c; |
| | 4320 | pub const IOCGICOUNT = 0x545d; |
| | 4321 | |
| | 4322 | pub const IOCPKT_DATA = 0; |
| | 4323 | pub const IOCPKT_FLUSHREAD = 1; |
| | 4324 | pub const IOCPKT_FLUSHWRITE = 2; |
| | 4325 | pub const IOCPKT_STOP = 4; |
| | 4326 | pub const IOCPKT_START = 8; |
| | 4327 | pub const IOCPKT_NOSTOP = 16; |
| | 4328 | pub const IOCPKT_DOSTOP = 32; |
| | 4329 | pub const IOCPKT_IOCTL = 64; |
| | 4330 | } else struct { |
| | 4331 | pub const CGETS = 0x5401; |
| | 4332 | pub const CSETS = 0x5402; |
| | 4333 | pub const CSETSW = 0x5403; |
| | 4334 | pub const CSETSF = 0x5404; |
| | 4335 | pub const CGETA = 0x5405; |
| | 4336 | pub const CSETA = 0x5406; |
| | 4337 | pub const CSETAW = 0x5407; |
| | 4338 | pub const CSETAF = 0x5408; |
| | 4339 | pub const CSBRK = 0x5409; |
| | 4340 | pub const CXONC = 0x540a; |
| | 4341 | pub const CFLSH = 0x540b; |
| | 4342 | pub const IOCEXCL = 0x540c; |
| | 4343 | pub const IOCNXCL = 0x540d; |
| | 4344 | pub const IOCSCTTY = 0x540e; |
| | 4345 | pub const IOCGPGRP = 0x540f; |
| | 4346 | pub const IOCSPGRP = 0x5410; |
| | 4347 | pub const IOCOUTQ = 0x5411; |
| | 4348 | pub const IOCSTI = 0x5412; |
| | 4349 | pub const IOCGWINSZ = 0x5413; |
| | 4350 | pub const IOCSWINSZ = 0x5414; |
| | 4351 | pub const IOCMGET = 0x5415; |
| | 4352 | pub const IOCMBIS = 0x5416; |
| | 4353 | pub const IOCMBIC = 0x5417; |
| | 4354 | pub const IOCMSET = 0x5418; |
| | 4355 | pub const IOCGSOFTCAR = 0x5419; |
| | 4356 | pub const IOCSSOFTCAR = 0x541a; |
| | 4357 | pub const FIONREAD = 0x541b; |
| | 4358 | pub const IOCINQ = FIONREAD; |
| | 4359 | pub const IOCLINUX = 0x541c; |
| | 4360 | pub const IOCCONS = 0x541d; |
| | 4361 | pub const IOCGSERIAL = 0x541e; |
| | 4362 | pub const IOCSSERIAL = 0x541f; |
| | 4363 | pub const IOCPKT = 0x5420; |
| | 4364 | pub const FIONBIO = 0x5421; |
| | 4365 | pub const IOCNOTTY = 0x5422; |
| | 4366 | pub const IOCSETD = 0x5423; |
| | 4367 | pub const IOCGETD = 0x5424; |
| | 4368 | pub const CSBRKP = 0x5425; |
| | 4369 | pub const IOCSBRK = 0x5427; |
| | 4370 | pub const IOCCBRK = 0x5428; |
| | 4371 | pub const IOCGSID = 0x5429; |
| | 4372 | pub const CGETS2 = IOCTL.IOR('T', 0x2a, termios2); |
| | 4373 | pub const CSETS2 = IOCTL.IOW('T', 0x2b, termios2); |
| | 4374 | pub const CSETSW2 = IOCTL.IOW('T', 0x2c, termios2); |
| | 4375 | pub const CSETSF2 = IOCTL.IOW('T', 0x2d, termios2); |
| | 4376 | pub const IOCGRS485 = 0x542e; |
| | 4377 | pub const IOCSRS485 = 0x542f; |
| 4074 | pub const IOCGPTN = IOCTL.IOR('T', 0x30, c_uint); | 4378 | pub const IOCGPTN = IOCTL.IOR('T', 0x30, c_uint); |
| 4075 | pub const IOCSPTLCK = IOCTL.IOW('T', 0x31, c_int); | 4379 | pub const IOCSPTLCK = IOCTL.IOW('T', 0x31, c_int); |
| 4076 | pub const IOCGDEV = IOCTL.IOR('T', 0x32, c_uint); | 4380 | pub const IOCGDEV = IOCTL.IOR('T', 0x32, c_uint); |
| ... | @@ -4083,6 +4387,93 @@ pub const T = struct { | ... | @@ -4083,6 +4387,93 @@ pub const T = struct { |
| 4083 | pub const IOCGPKT = IOCTL.IOR('T', 0x38, c_int); | 4387 | pub const IOCGPKT = IOCTL.IOR('T', 0x38, c_int); |
| 4084 | pub const IOCGPTLCK = IOCTL.IOR('T', 0x39, c_int); | 4388 | pub const IOCGPTLCK = IOCTL.IOR('T', 0x39, c_int); |
| 4085 | pub const IOCGEXCL = IOCTL.IOR('T', 0x40, c_int); | 4389 | pub const IOCGEXCL = IOCTL.IOR('T', 0x40, c_int); |
| | 4390 | pub const IOCGPTPEER = IOCTL.IO('T', 0x41); |
| | 4391 | pub const IOCGISO7816 = IOCTL.IOR('T', 0x42, serial_iso7816); |
| | 4392 | pub const IOCSISO7816 = IOCTL.IOWR('T', 0x43, serial_iso7816); |
| | 4393 | |
| | 4394 | pub const FIONCLEX = 0x5450; |
| | 4395 | pub const FIOCLEX = 0x5451; |
| | 4396 | pub const FIOASYNC = 0x5452; |
| | 4397 | pub const IOCSERCONFIG = 0x5453; |
| | 4398 | pub const IOCSERGWILD = 0x5454; |
| | 4399 | pub const IOCSERSWILD = 0x5455; |
| | 4400 | pub const IOCGLCKTRMIOS = 0x5456; |
| | 4401 | pub const IOCSLCKTRMIOS = 0x5457; |
| | 4402 | pub const IOCSERGSTRUCT = 0x5458; |
| | 4403 | pub const IOCSERGETLSR = 0x5459; |
| | 4404 | pub const IOCSERGETMULTI = 0x545a; |
| | 4405 | pub const IOCSERSETMULTI = 0x545b; |
| | 4406 | |
| | 4407 | pub const IOCMIWAIT = 0x545c; |
| | 4408 | pub const IOCGICOUNT = 0x545d; |
| | 4409 | |
| | 4410 | pub const FIOQSIZE = switch (native_arch) { |
| | 4411 | .arm, |
| | 4412 | .armeb, |
| | 4413 | .thumb, |
| | 4414 | .thumbeb, |
| | 4415 | .m68k, |
| | 4416 | .s390x, |
| | 4417 | => 0x545e, |
| | 4418 | else => 0x5460, |
| | 4419 | }; |
| | 4420 | |
| | 4421 | pub const IOCPKT_DATA = 0; |
| | 4422 | pub const IOCPKT_FLUSHREAD = 1; |
| | 4423 | pub const IOCPKT_FLUSHWRITE = 2; |
| | 4424 | pub const IOCPKT_STOP = 4; |
| | 4425 | pub const IOCPKT_START = 8; |
| | 4426 | pub const IOCPKT_NOSTOP = 16; |
| | 4427 | pub const IOCPKT_DOSTOP = 32; |
| | 4428 | pub const IOCPKT_IOCTL = 64; |
| | 4429 | |
| | 4430 | pub const IOCSER_TEMT = 0x01; |
| | 4431 | }; |
| | 4432 | |
| | 4433 | pub const serial_rs485 = extern struct { |
| | 4434 | flags: u32, |
| | 4435 | delay_rts_before_send: u32, |
| | 4436 | delay_rts_after_send: u32, |
| | 4437 | extra: extern union { |
| | 4438 | _pad1: [5]u32, |
| | 4439 | s: extern struct { |
| | 4440 | addr_recv: u8, |
| | 4441 | addr_dest: u8, |
| | 4442 | _pad2: [2]u8, |
| | 4443 | _pad3: [4]u32, |
| | 4444 | }, |
| | 4445 | }, |
| | 4446 | }; |
| | 4447 | |
| | 4448 | pub const serial_iso7816 = extern struct { |
| | 4449 | flags: u32, |
| | 4450 | tg: u32, |
| | 4451 | sc_fi: u32, |
| | 4452 | sc_di: u32, |
| | 4453 | clk: u32, |
| | 4454 | _reserved: [5]u32, |
| | 4455 | }; |
| | 4456 | |
| | 4457 | pub const SER = struct { |
| | 4458 | pub const RS485 = struct { |
| | 4459 | pub const ENABLED = 1 << 0; |
| | 4460 | pub const RTS_ON_SEND = 1 << 1; |
| | 4461 | pub const RTS_AFTER_SEND = 1 << 2; |
| | 4462 | pub const RX_DURING_TX = 1 << 4; |
| | 4463 | pub const TERMINATE_BUS = 1 << 5; |
| | 4464 | pub const ADDRB = 1 << 6; |
| | 4465 | pub const ADDR_RECV = 1 << 7; |
| | 4466 | pub const ADDR_DEST = 1 << 8; |
| | 4467 | }; |
| | 4468 | |
| | 4469 | pub const ISO7816 = struct { |
| | 4470 | pub const ENABLED = 1 << 0; |
| | 4471 | pub const T_PARAM = 0x0f << 4; |
| | 4472 | |
| | 4473 | pub fn T(t: anytype) @TypeOf(t) { |
| | 4474 | return (t & 0x0f) << 4; |
| | 4475 | } |
| | 4476 | }; |
| 4086 | }; | 4477 | }; |
| 4087 | | 4478 | |
| 4088 | pub const EPOLL = struct { | 4479 | pub const EPOLL = struct { |
| ... | @@ -5885,319 +6276,507 @@ pub const rusage = extern struct { | ... | @@ -5885,319 +6276,507 @@ pub const rusage = extern struct { |
| 5885 | pub const THREAD = 1; | 6276 | pub const THREAD = 1; |
| 5886 | }; | 6277 | }; |
| 5887 | | 6278 | |
| 5888 | pub const NCCS = switch (native_arch) { | 6279 | pub const NCC = if (is_ppc) 10 else 8; |
| 5889 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => 19, | 6280 | pub const NCCS = if (is_mips) 32 else if (is_ppc) 19 else if (is_sparc) 17 else 32; |
| 5890 | else => 32, | 6281 | |
| 5891 | }; | 6282 | pub const speed_t = if (is_ppc) enum(c_uint) { |
| 5892 | | 6283 | B0 = 0x0000000, |
| 5893 | pub const speed_t = switch (native_arch) { | 6284 | B50 = 0x0000001, |
| 5894 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => enum(u32) { | 6285 | B75 = 0x0000002, |
| 5895 | B0 = 0o0000000, | 6286 | B110 = 0x0000003, |
| 5896 | B50 = 0o0000001, | 6287 | B134 = 0x0000004, |
| 5897 | B75 = 0o0000002, | 6288 | B150 = 0x0000005, |
| 5898 | B110 = 0o0000003, | 6289 | B200 = 0x0000006, |
| 5899 | B134 = 0o0000004, | 6290 | B300 = 0x0000007, |
| 5900 | B150 = 0o0000005, | 6291 | B600 = 0x0000008, |
| 5901 | B200 = 0o0000006, | 6292 | B1200 = 0x0000009, |
| 5902 | B300 = 0o0000007, | 6293 | B1800 = 0x000000a, |
| 5903 | B600 = 0o0000010, | 6294 | B2400 = 0x000000b, |
| 5904 | B1200 = 0o0000011, | 6295 | B4800 = 0x000000c, |
| 5905 | B1800 = 0o0000012, | 6296 | B9600 = 0x000000d, |
| 5906 | B2400 = 0o0000013, | 6297 | B19200 = 0x000000e, |
| 5907 | B4800 = 0o0000014, | 6298 | B38400 = 0x000000f, |
| 5908 | B9600 = 0o0000015, | 6299 | |
| 5909 | B19200 = 0o0000016, | 6300 | B57600 = 0x00000010, |
| 5910 | B38400 = 0o0000017, | 6301 | B115200 = 0x00000011, |
| 5911 | | 6302 | B230400 = 0x00000012, |
| 5912 | B57600 = 0o00020, | 6303 | B460800 = 0x00000013, |
| 5913 | B115200 = 0o00021, | 6304 | B500000 = 0x00000014, |
| 5914 | B230400 = 0o00022, | 6305 | B576000 = 0x00000015, |
| 5915 | B460800 = 0o00023, | 6306 | B921600 = 0x00000016, |
| 5916 | B500000 = 0o00024, | 6307 | B1000000 = 0x00000017, |
| 5917 | B576000 = 0o00025, | 6308 | B1152000 = 0x00000018, |
| 5918 | B921600 = 0o00026, | 6309 | B1500000 = 0x00000019, |
| 5919 | B1000000 = 0o00027, | 6310 | B2000000 = 0x0000001a, |
| 5920 | B1152000 = 0o00030, | 6311 | B2500000 = 0x0000001b, |
| 5921 | B1500000 = 0o00031, | 6312 | B3000000 = 0x0000001c, |
| 5922 | B2000000 = 0o00032, | 6313 | B3500000 = 0x0000001d, |
| 5923 | B2500000 = 0o00033, | 6314 | B4000000 = 0x0000001e, |
| 5924 | B3000000 = 0o00034, | 6315 | |
| 5925 | B3500000 = 0o00035, | 6316 | pub const EXTA = speed_t.B19200; |
| 5926 | B4000000 = 0o00036, | 6317 | pub const EXTB = speed_t.B38400; |
| 5927 | }, | 6318 | } else if (is_sparc) enum(c_uint) { |
| 5928 | else => enum(u32) { | 6319 | B0 = 0x0000000, |
| 5929 | B0 = 0o0000000, | 6320 | B50 = 0x0000001, |
| 5930 | B50 = 0o0000001, | 6321 | B75 = 0x0000002, |
| 5931 | B75 = 0o0000002, | 6322 | B110 = 0x0000003, |
| 5932 | B110 = 0o0000003, | 6323 | B134 = 0x0000004, |
| 5933 | B134 = 0o0000004, | 6324 | B150 = 0x0000005, |
| 5934 | B150 = 0o0000005, | 6325 | B200 = 0x0000006, |
| 5935 | B200 = 0o0000006, | 6326 | B300 = 0x0000007, |
| 5936 | B300 = 0o0000007, | 6327 | B600 = 0x0000008, |
| 5937 | B600 = 0o0000010, | 6328 | B1200 = 0x0000009, |
| 5938 | B1200 = 0o0000011, | 6329 | B1800 = 0x000000a, |
| 5939 | B1800 = 0o0000012, | 6330 | B2400 = 0x000000b, |
| 5940 | B2400 = 0o0000013, | 6331 | B4800 = 0x000000c, |
| 5941 | B4800 = 0o0000014, | 6332 | B9600 = 0x000000d, |
| 5942 | B9600 = 0o0000015, | 6333 | B19200 = 0x000000e, |
| 5943 | B19200 = 0o0000016, | 6334 | B38400 = 0x000000f, |
| 5944 | B38400 = 0o0000017, | 6335 | |
| 5945 | | 6336 | B57600 = 0x00001001, |
| 5946 | B57600 = 0o0010001, | 6337 | B115200 = 0x00001002, |
| 5947 | B115200 = 0o0010002, | 6338 | B230400 = 0x00001003, |
| 5948 | B230400 = 0o0010003, | 6339 | B460800 = 0x00001004, |
| 5949 | B460800 = 0o0010004, | 6340 | B76800 = 0x00001005, |
| 5950 | B500000 = 0o0010005, | 6341 | B153600 = 0x00001006, |
| 5951 | B576000 = 0o0010006, | 6342 | B307200 = 0x00001007, |
| 5952 | B921600 = 0o0010007, | 6343 | B614400 = 0x00001008, |
| 5953 | B1000000 = 0o0010010, | 6344 | B921600 = 0x00001009, |
| 5954 | B1152000 = 0o0010011, | 6345 | B500000 = 0x0000100a, |
| 5955 | B1500000 = 0o0010012, | 6346 | B576000 = 0x0000100b, |
| 5956 | B2000000 = 0o0010013, | 6347 | B1000000 = 0x0000100c, |
| 5957 | B2500000 = 0o0010014, | 6348 | B1152000 = 0x0000100d, |
| 5958 | B3000000 = 0o0010015, | 6349 | B1500000 = 0x0000100e, |
| 5959 | B3500000 = 0o0010016, | 6350 | B2000000 = 0x0000100f, |
| 5960 | B4000000 = 0o0010017, | 6351 | |
| 5961 | }, | 6352 | pub const EXTA = speed_t.B19200; |
| 5962 | }; | 6353 | pub const EXTB = speed_t.B38400; |
| 5963 | | 6354 | } else enum(c_uint) { |
| 5964 | pub const tc_iflag_t = switch (native_arch) { | 6355 | B0 = 0x0000000, |
| 5965 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => packed struct(u32) { | 6356 | B50 = 0x0000001, |
| 5966 | IGNBRK: bool = false, | 6357 | B75 = 0x0000002, |
| 5967 | BRKINT: bool = false, | 6358 | B110 = 0x0000003, |
| 5968 | IGNPAR: bool = false, | 6359 | B134 = 0x0000004, |
| 5969 | PARMRK: bool = false, | 6360 | B150 = 0x0000005, |
| 5970 | INPCK: bool = false, | 6361 | B200 = 0x0000006, |
| 5971 | ISTRIP: bool = false, | 6362 | B300 = 0x0000007, |
| 5972 | INLCR: bool = false, | 6363 | B600 = 0x0000008, |
| 5973 | IGNCR: bool = false, | 6364 | B1200 = 0x0000009, |
| 5974 | ICRNL: bool = false, | 6365 | B1800 = 0x000000a, |
| 5975 | IXON: bool = false, | 6366 | B2400 = 0x000000b, |
| 5976 | IXOFF: bool = false, | 6367 | B4800 = 0x000000c, |
| 5977 | IXANY: bool = false, | 6368 | B9600 = 0x000000d, |
| 5978 | IUCLC: bool = false, | 6369 | B19200 = 0x000000e, |
| 5979 | IMAXBEL: bool = false, | 6370 | B38400 = 0x000000f, |
| 5980 | IUTF8: bool = false, | 6371 | |
| 5981 | _: u17 = 0, | 6372 | B57600 = 0x00001001, |
| 5982 | }, | 6373 | B115200 = 0x00001002, |
| 5983 | else => packed struct(u32) { | 6374 | B230400 = 0x00001003, |
| 5984 | IGNBRK: bool = false, | 6375 | B460800 = 0x00001004, |
| 5985 | BRKINT: bool = false, | 6376 | B500000 = 0x00001005, |
| 5986 | IGNPAR: bool = false, | 6377 | B576000 = 0x00001006, |
| 5987 | PARMRK: bool = false, | 6378 | B921600 = 0x00001007, |
| 5988 | INPCK: bool = false, | 6379 | B1000000 = 0x00001008, |
| 5989 | ISTRIP: bool = false, | 6380 | B1152000 = 0x00001009, |
| 5990 | INLCR: bool = false, | 6381 | B1500000 = 0x0000100a, |
| 5991 | IGNCR: bool = false, | 6382 | B2000000 = 0x0000100b, |
| 5992 | ICRNL: bool = false, | 6383 | B2500000 = 0x0000100c, |
| 5993 | IUCLC: bool = false, | 6384 | B3000000 = 0x0000100d, |
| 5994 | IXON: bool = false, | 6385 | B3500000 = 0x0000100e, |
| 5995 | IXANY: bool = false, | 6386 | B4000000 = 0x0000100f, |
| 5996 | IXOFF: bool = false, | 6387 | |
| 5997 | IMAXBEL: bool = false, | 6388 | pub const EXTA = speed_t.B19200; |
| 5998 | IUTF8: bool = false, | 6389 | pub const EXTB = speed_t.B38400; |
| 5999 | _: u17 = 0, | 6390 | }; |
| 6000 | }, | 6391 | |
| 6001 | }; | 6392 | pub const tcflag_t = if (native_arch == .sparc) c_ulong else c_uint; |
| 6002 | | 6393 | |
| 6003 | pub const tc_oflag_t = switch (native_arch) { | 6394 | pub const tc_iflag_t = if (is_ppc) packed struct(tcflag_t) { |
| 6004 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => packed struct(u32) { | 6395 | IGNBRK: bool = false, |
| 6005 | OPOST: bool = false, | 6396 | BRKINT: bool = false, |
| 6006 | ONLCR: bool = false, | 6397 | IGNPAR: bool = false, |
| 6007 | OLCUC: bool = false, | 6398 | PARMRK: bool = false, |
| 6008 | OCRNL: bool = false, | 6399 | INPCK: bool = false, |
| 6009 | ONOCR: bool = false, | 6400 | ISTRIP: bool = false, |
| 6010 | ONLRET: bool = false, | 6401 | INLCR: bool = false, |
| 6011 | OFILL: bool = false, | 6402 | IGNCR: bool = false, |
| 6012 | OFDEL: bool = false, | 6403 | ICRNL: bool = false, |
| 6013 | NLDLY: u2 = 0, | 6404 | IXON: bool = false, |
| 6014 | TABDLY: u2 = 0, | 6405 | IXOFF: bool = false, |
| 6015 | CRDLY: u2 = 0, | 6406 | IXANY: bool = false, |
| 6016 | FFDLY: u1 = 0, | 6407 | IUCLC: bool = false, |
| 6017 | BSDLY: u1 = 0, | 6408 | IMAXBEL: bool = false, |
| 6018 | VTDLY: u1 = 0, | 6409 | IUTF8: bool = false, |
| 6019 | _: u15 = 0, | 6410 | _15: u17 = 0, |
| 6020 | }, | 6411 | } else packed struct(tcflag_t) { |
| 6021 | else => packed struct(u32) { | 6412 | IGNBRK: bool = false, |
| 6022 | OPOST: bool = false, | 6413 | BRKINT: bool = false, |
| 6023 | OLCUC: bool = false, | 6414 | IGNPAR: bool = false, |
| 6024 | ONLCR: bool = false, | 6415 | PARMRK: bool = false, |
| 6025 | OCRNL: bool = false, | 6416 | INPCK: bool = false, |
| 6026 | ONOCR: bool = false, | 6417 | ISTRIP: bool = false, |
| 6027 | ONLRET: bool = false, | 6418 | INLCR: bool = false, |
| 6028 | OFILL: bool = false, | 6419 | IGNCR: bool = false, |
| 6029 | OFDEL: bool = false, | 6420 | ICRNL: bool = false, |
| 6030 | NLDLY: u1 = 0, | 6421 | IUCLC: bool = false, |
| 6031 | CRDLY: u2 = 0, | 6422 | IXON: bool = false, |
| 6032 | TABDLY: u2 = 0, | 6423 | IXANY: bool = false, |
| 6033 | BSDLY: u1 = 0, | 6424 | IXOFF: bool = false, |
| 6034 | VTDLY: u1 = 0, | 6425 | IMAXBEL: bool = false, |
| 6035 | FFDLY: u1 = 0, | 6426 | IUTF8: bool = false, |
| 6036 | _: u16 = 0, | 6427 | _15: u17 = 0, |
| 6037 | }, | 6428 | }; |
| 6038 | }; | 6429 | |
| 6039 | | 6430 | pub const NLDLY = if (is_ppc) enum(u2) { |
| 6040 | pub const CSIZE = enum(u2) { CS5, CS6, CS7, CS8 }; | 6431 | NL0 = 0, |
| 6041 | | 6432 | NL1 = 1, |
| 6042 | pub const tc_cflag_t = switch (native_arch) { | 6433 | NL2 = 2, |
| 6043 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => packed struct(u32) { | 6434 | NL3 = 3, |
| 6044 | _0: u8 = 0, | 6435 | } else enum(u1) { |
| 6045 | CSIZE: CSIZE = .CS5, | 6436 | NL0 = 0, |
| 6046 | CSTOPB: bool = false, | 6437 | NL1 = 1, |
| 6047 | CREAD: bool = false, | 6438 | }; |
| 6048 | PARENB: bool = false, | 6439 | |
| 6049 | PARODD: bool = false, | 6440 | pub const CRDLY = enum(u2) { |
| 6050 | HUPCL: bool = false, | 6441 | CR0 = 0, |
| 6051 | CLOCAL: bool = false, | 6442 | CR1 = 1, |
| 6052 | _: u16 = 0, | 6443 | CR2 = 2, |
| 6053 | }, | 6444 | CR3 = 3, |
| 6054 | else => packed struct(u32) { | 6445 | }; |
| 6055 | _0: u4 = 0, | 6446 | |
| 6056 | CSIZE: CSIZE = .CS5, | 6447 | pub const TABDLY = enum(u2) { |
| 6057 | CSTOPB: bool = false, | 6448 | TAB0 = 0, |
| 6058 | CREAD: bool = false, | 6449 | TAB1 = 1, |
| 6059 | PARENB: bool = false, | 6450 | TAB2 = 2, |
| 6060 | PARODD: bool = false, | 6451 | TAB3 = 3, |
| 6061 | HUPCL: bool = false, | 6452 | |
| 6062 | CLOCAL: bool = false, | 6453 | pub const XTABS = TABDLY.TAB3; |
| 6063 | _: u20 = 0, | 6454 | }; |
| 6064 | }, | 6455 | |
| 6065 | }; | 6456 | pub const BSDLY = enum(u1) { |
| 6066 | | 6457 | BS0 = 0, |
| 6067 | pub const tc_lflag_t = switch (native_arch) { | 6458 | BS1 = 1, |
| 6068 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => packed struct(u32) { | 6459 | }; |
| 6069 | _0: u1 = 0, | 6460 | |
| 6070 | ECHOE: bool = false, | 6461 | pub const VTDLY = enum(u1) { |
| 6071 | ECHOK: bool = false, | 6462 | VT0 = 0, |
| 6072 | ECHO: bool = false, | 6463 | VT1 = 1, |
| 6073 | ECHONL: bool = false, | 6464 | }; |
| 6074 | _5: u2 = 0, | 6465 | |
| 6075 | ISIG: bool = false, | 6466 | pub const FFDLY = enum(u1) { |
| 6076 | ICANON: bool = false, | 6467 | FF0 = 0, |
| 6077 | _9: u1 = 0, | 6468 | FF1 = 1, |
| 6078 | IEXTEN: bool = false, | 6469 | }; |
| 6079 | _11: u11 = 0, | 6470 | |
| 6080 | TOSTOP: bool = false, | 6471 | pub const tc_oflag_t = if (is_ppc) packed struct(tcflag_t) { |
| 6081 | _23: u8 = 0, | 6472 | OPOST: bool = false, |
| 6082 | NOFLSH: bool = false, | 6473 | ONLCR: bool = false, |
| 6083 | }, | 6474 | OLCUC: bool = false, |
| 6084 | .mips, .mipsel, .mips64, .mips64el => packed struct(u32) { | 6475 | OCRNL: bool = false, |
| 6085 | ISIG: bool = false, | 6476 | ONOCR: bool = false, |
| 6086 | ICANON: bool = false, | 6477 | ONLRET: bool = false, |
| 6087 | _2: u1 = 0, | 6478 | OFILL: bool = false, |
| 6088 | ECHO: bool = false, | 6479 | OFDEL: bool = false, |
| 6089 | ECHOE: bool = false, | 6480 | NLDLY: NLDLY = 0, |
| 6090 | ECHOK: bool = false, | 6481 | TABDLY: TABDLY = 0, |
| 6091 | ECHONL: bool = false, | 6482 | CRDLY: CRDLY = 0, |
| 6092 | NOFLSH: bool = false, | 6483 | FFDLY: FFDLY = 0, |
| 6093 | IEXTEN: bool = false, | 6484 | BSDLY: BSDLY = 0, |
| 6094 | _9: u6 = 0, | 6485 | VTDLY: VTDLY = 0, |
| 6095 | TOSTOP: bool = false, | 6486 | _17: u15 = 0, |
| 6096 | _: u16 = 0, | 6487 | } else if (is_sparc) packed struct(tcflag_t) { |
| 6097 | }, | 6488 | OPOST: bool = false, |
| 6098 | else => packed struct(u32) { | 6489 | OLCUC: bool = false, |
| 6099 | ISIG: bool = false, | 6490 | ONLCR: bool = false, |
| 6100 | ICANON: bool = false, | 6491 | OCRNL: bool = false, |
| 6101 | _2: u1 = 0, | 6492 | ONOCR: bool = false, |
| 6102 | ECHO: bool = false, | 6493 | ONLRET: bool = false, |
| 6103 | ECHOE: bool = false, | 6494 | OFILL: bool = false, |
| 6104 | ECHOK: bool = false, | 6495 | OFDEL: bool = false, |
| 6105 | ECHONL: bool = false, | 6496 | NLDLY: NLDLY = .NL0, |
| 6106 | NOFLSH: bool = false, | 6497 | CRDLY: CRDLY = .CR0, |
| 6107 | TOSTOP: bool = false, | 6498 | TABDLY: TABDLY = .TAB0, |
| 6108 | _9: u6 = 0, | 6499 | BSDLY: BSDLY = .BS0, |
| 6109 | IEXTEN: bool = false, | 6500 | VTDLY: VTDLY = .VT0, |
| 6110 | _: u16 = 0, | 6501 | FFDLY: FFDLY = .FF0, |
| 6111 | }, | 6502 | PAGEOUT: bool = false, |
| | 6503 | WRAP: bool = false, |
| | 6504 | _18: u14 = 0, |
| | 6505 | } else packed struct(tcflag_t) { |
| | 6506 | OPOST: bool = false, |
| | 6507 | OLCUC: bool = false, |
| | 6508 | ONLCR: bool = false, |
| | 6509 | OCRNL: bool = false, |
| | 6510 | ONOCR: bool = false, |
| | 6511 | ONLRET: bool = false, |
| | 6512 | OFILL: bool = false, |
| | 6513 | OFDEL: bool = false, |
| | 6514 | NLDLY: NLDLY = .NL0, |
| | 6515 | CRDLY: CRDLY = .CR0, |
| | 6516 | TABDLY: TABDLY = .TAB0, |
| | 6517 | BSDLY: BSDLY = .BS0, |
| | 6518 | VTDLY: VTDLY = .VT0, |
| | 6519 | FFDLY: FFDLY = .FF0, |
| | 6520 | _16: u16 = 0, |
| | 6521 | }; |
| | 6522 | |
| | 6523 | pub const CSIZE = enum(u2) { |
| | 6524 | CS5 = 0, |
| | 6525 | CS6 = 1, |
| | 6526 | CS7 = 2, |
| | 6527 | CS8 = 3, |
| | 6528 | }; |
| | 6529 | |
| | 6530 | pub const tc_cflag_t = if (is_ppc) packed struct(tcflag_t) { |
| | 6531 | _0: u8 = 0, |
| | 6532 | CSIZE: CSIZE = .CS5, |
| | 6533 | CSTOPB: bool = false, |
| | 6534 | CREAD: bool = false, |
| | 6535 | PARENB: bool = false, |
| | 6536 | PARODD: bool = false, |
| | 6537 | HUPCL: bool = false, |
| | 6538 | CLOCAL: bool = false, |
| | 6539 | _16: u13 = 0, |
| | 6540 | ADDRB: bool = false, |
| | 6541 | CMSPAR: bool = false, |
| | 6542 | CRTSCTS: bool = false, |
| | 6543 | } else packed struct(tcflag_t) { |
| | 6544 | _0: u4 = 0, |
| | 6545 | CSIZE: CSIZE = .CS5, |
| | 6546 | CSTOPB: bool = false, |
| | 6547 | CREAD: bool = false, |
| | 6548 | PARENB: bool = false, |
| | 6549 | PARODD: bool = false, |
| | 6550 | HUPCL: bool = false, |
| | 6551 | CLOCAL: bool = false, |
| | 6552 | _12: u17 = 0, |
| | 6553 | ADDRB: bool = false, |
| | 6554 | CMSPAR: bool = false, |
| | 6555 | CRTSCTS: bool = false, |
| | 6556 | }; |
| | 6557 | |
| | 6558 | pub const tc_lflag_t = if (is_mips) packed struct(tcflag_t) { |
| | 6559 | ISIG: bool = false, |
| | 6560 | ICANON: bool = false, |
| | 6561 | XCASE: bool = false, |
| | 6562 | ECHO: bool = false, |
| | 6563 | ECHOE: bool = false, |
| | 6564 | ECHOK: bool = false, |
| | 6565 | ECHONL: bool = false, |
| | 6566 | NOFLSH: bool = false, |
| | 6567 | IEXTEN: bool = false, |
| | 6568 | ECHOCTL: bool = false, |
| | 6569 | ECHOPRT: bool = false, |
| | 6570 | ECHOKE: bool = false, |
| | 6571 | _12: u1 = 0, |
| | 6572 | FLUSHO: bool = false, |
| | 6573 | PENDIN: bool = false, |
| | 6574 | TOSTOP: bool = false, |
| | 6575 | EXTPROC: bool = false, |
| | 6576 | _17: u16 = 0, |
| | 6577 | } else if (is_ppc) packed struct(tcflag_t) { |
| | 6578 | ECHOKE: bool = false, |
| | 6579 | ECHOE: bool = false, |
| | 6580 | ECHOK: bool = false, |
| | 6581 | ECHO: bool = false, |
| | 6582 | ECHONL: bool = false, |
| | 6583 | ECHOPRT: bool = false, |
| | 6584 | ECHOCTL: bool = false, |
| | 6585 | ISIG: bool = false, |
| | 6586 | ICANON: bool = false, |
| | 6587 | _9: u1 = 0, |
| | 6588 | IEXTEN: bool = false, |
| | 6589 | _11: u3 = 0, |
| | 6590 | XCASE: bool = false, |
| | 6591 | _15: u7 = 0, |
| | 6592 | TOSTOP: bool = false, |
| | 6593 | FLUSHO: bool = false, |
| | 6594 | _24: u4 = 0, |
| | 6595 | EXTPROC: bool = false, |
| | 6596 | PENDIN: bool = false, |
| | 6597 | _30: u1 = 0, |
| | 6598 | NOFLSH: bool = false, |
| | 6599 | } else if (is_sparc) packed struct(tcflag_t) { |
| | 6600 | ISIG: bool = false, |
| | 6601 | ICANON: bool = false, |
| | 6602 | XCASE: bool = false, |
| | 6603 | ECHO: bool = false, |
| | 6604 | ECHOE: bool = false, |
| | 6605 | ECHOK: bool = false, |
| | 6606 | ECHONL: bool = false, |
| | 6607 | NOFLSH: bool = false, |
| | 6608 | TOSTOP: bool = false, |
| | 6609 | ECHOCTL: bool = false, |
| | 6610 | ECHOPRT: bool = false, |
| | 6611 | ECHOKE: bool = false, |
| | 6612 | DEFECHO: bool = false, |
| | 6613 | FLUSHO: bool = false, |
| | 6614 | PENDIN: bool = false, |
| | 6615 | IEXTEN: bool = false, |
| | 6616 | EXTPROC: bool = false, |
| | 6617 | _17: u15 = 0, |
| | 6618 | } else packed struct(tcflag_t) { |
| | 6619 | ISIG: bool = false, |
| | 6620 | ICANON: bool = false, |
| | 6621 | XCASE: bool = false, |
| | 6622 | ECHO: bool = false, |
| | 6623 | ECHOE: bool = false, |
| | 6624 | ECHOK: bool = false, |
| | 6625 | ECHONL: bool = false, |
| | 6626 | NOFLSH: bool = false, |
| | 6627 | TOSTOP: bool = false, |
| | 6628 | ECHOCTL: bool = false, |
| | 6629 | ECHOPRT: bool = false, |
| | 6630 | ECHOKE: bool = false, |
| | 6631 | FLUSHO: bool = false, |
| | 6632 | _13: u1 = 0, |
| | 6633 | PENDIN: bool = false, |
| | 6634 | IEXTEN: bool = false, |
| | 6635 | EXTPROC: bool = false, |
| | 6636 | _17: u15 = 0, |
| 6112 | }; | 6637 | }; |
| 6113 | | 6638 | |
| 6114 | pub const cc_t = u8; | 6639 | pub const cc_t = u8; |
| 6115 | | 6640 | |
| 6116 | /// Indices into the `cc` array in the `termios` struct. | 6641 | /// Indices into the `cc` array in the `termios` struct. |
| 6117 | pub const V = switch (native_arch) { | 6642 | pub const V = if (is_mips) enum(u32) { |
| 6118 | .mips, .mipsel, .mips64, .mips64el => enum { | 6643 | INTR = 0, |
| 6119 | INTR, | 6644 | QUIT = 1, |
| 6120 | QUIT, | 6645 | ERASE = 2, |
| 6121 | ERASE, | 6646 | KILL = 3, |
| 6122 | KILL, | 6647 | MIN = 4, |
| 6123 | MIN, | 6648 | TIME = 5, |
| 6124 | TIME, | 6649 | EOL2 = 6, |
| 6125 | EOL2, | 6650 | SWTC = 7, |
| 6126 | SWTC, | 6651 | START = 8, |
| 6127 | START, | 6652 | STOP = 9, |
| 6128 | STOP, | 6653 | SUSP = 10, |
| 6129 | SUSP, | 6654 | REPRINT = 12, |
| 6130 | reserved, | 6655 | DISCARD = 13, |
| 6131 | REPRINT, | 6656 | WERASE = 14, |
| 6132 | DISCARD, | 6657 | LNEXT = 15, |
| 6133 | WERASE, | 6658 | EOF = 16, |
| 6134 | LNEXT, | 6659 | EOL = 17, |
| 6135 | EOF, | 6660 | } else if (is_ppc) enum(u32) { |
| 6136 | EOL, | 6661 | INTR = 0, |
| 6137 | }, | 6662 | QUIT = 1, |
| 6138 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => enum { | 6663 | ERASE = 2, |
| 6139 | INTR, | 6664 | KILL = 3, |
| 6140 | QUIT, | 6665 | EOF = 4, |
| 6141 | ERASE, | 6666 | MIN = 5, |
| 6142 | KILL, | 6667 | EOL = 6, |
| 6143 | EOF, | 6668 | TIME = 7, |
| 6144 | MIN, | 6669 | EOL2 = 8, |
| 6145 | EOL, | 6670 | SWTC = 9, |
| 6146 | TIME, | 6671 | WERASE = 10, |
| 6147 | EOL2, | 6672 | REPRINT = 11, |
| 6148 | SWTC, | 6673 | SUSP = 12, |
| 6149 | WERASE, | 6674 | START = 13, |
| 6150 | REPRINT, | 6675 | STOP = 14, |
| 6151 | SUSP, | 6676 | LNEXT = 15, |
| 6152 | START, | 6677 | DISCARD = 16, |
| 6153 | STOP, | 6678 | } else enum(u32) { |
| 6154 | LNEXT, | 6679 | INTR = 0, |
| 6155 | DISCARD, | 6680 | QUIT = 1, |
| 6156 | }, | 6681 | ERASE = 2, |
| 6157 | else => enum { | 6682 | KILL = 3, |
| 6158 | INTR, | 6683 | EOF = 4, |
| 6159 | QUIT, | 6684 | TIME = 5, |
| 6160 | ERASE, | 6685 | MIN = 6, |
| 6161 | KILL, | 6686 | SWTC = 7, |
| 6162 | EOF, | 6687 | START = 8, |
| 6163 | TIME, | 6688 | STOP = 9, |
| 6164 | MIN, | 6689 | SUSP = 10, |
| 6165 | SWTC, | 6690 | EOL = 11, |
| 6166 | START, | 6691 | REPRINT = 12, |
| 6167 | STOP, | 6692 | DISCARD = 13, |
| 6168 | SUSP, | 6693 | WERASE = 14, |
| 6169 | EOL, | 6694 | LNEXT = 15, |
| 6170 | REPRINT, | 6695 | EOL2 = 16, |
| 6171 | DISCARD, | | |
| 6172 | WERASE, | | |
| 6173 | LNEXT, | | |
| 6174 | EOL2, | | |
| 6175 | }, | | |
| 6176 | }; | 6696 | }; |
| 6177 | | 6697 | |
| 6178 | pub const TCSA = std.posix.TCSA; | 6698 | pub const TCSA = std.posix.TCSA; |
| 6179 | | 6699 | |
| 6180 | pub const termios = switch (native_arch) { | 6700 | pub const sgttyb = if (is_mips or is_ppc or is_sparc) extern struct { |
| 6181 | .powerpc, .powerpcle, .powerpc64, .powerpc64le => extern struct { | 6701 | ispeed: c_char, |
| 6182 | iflag: tc_iflag_t, | 6702 | ospeed: c_char, |
| 6183 | oflag: tc_oflag_t, | 6703 | erase: c_char, |
| 6184 | cflag: tc_cflag_t, | 6704 | kill: c_char, |
| 6185 | lflag: tc_lflag_t, | 6705 | flags: if (is_mips) c_int else c_short, |
| 6186 | cc: [NCCS]cc_t, | 6706 | } else void; |
| 6187 | line: cc_t, | 6707 | |
| 6188 | ispeed: speed_t, | 6708 | pub const tchars = if (is_mips or is_ppc or is_sparc) extern struct { |
| 6189 | ospeed: speed_t, | 6709 | intrc: c_char, |
| 6190 | }, | 6710 | quitc: c_char, |
| 6191 | else => extern struct { | 6711 | startc: c_char, |
| 6192 | iflag: tc_iflag_t, | 6712 | stopc: c_char, |
| 6193 | oflag: tc_oflag_t, | 6713 | eofc: c_char, |
| 6194 | cflag: tc_cflag_t, | 6714 | brkc: c_char, |
| 6195 | lflag: tc_lflag_t, | 6715 | } else void; |
| 6196 | line: cc_t, | 6716 | |
| 6197 | cc: [NCCS]cc_t, | 6717 | pub const ltchars = if (is_mips or is_ppc or is_sparc) extern struct { |
| 6198 | ispeed: speed_t, | 6718 | suspc: c_char, |
| 6199 | ospeed: speed_t, | 6719 | dsuspc: c_char, |
| 6200 | }, | 6720 | rprntc: c_char, |
| | 6721 | flushc: c_char, |
| | 6722 | werasc: c_char, |
| | 6723 | lnextc: c_char, |
| | 6724 | } else void; |
| | 6725 | |
| | 6726 | pub const termio = extern struct { |
| | 6727 | iflag: c_ushort, |
| | 6728 | oflag: c_ushort, |
| | 6729 | cflag: c_ushort, |
| | 6730 | lflag: c_ushort, |
| | 6731 | line: if (is_mips) c_char else u8, |
| | 6732 | cc: [if (is_mips) NCCS else NCC]u8, |
| | 6733 | }; |
| | 6734 | |
| | 6735 | pub const termios = if (is_mips or is_sparc) extern struct { |
| | 6736 | iflag: tc_iflag_t, |
| | 6737 | oflag: tc_oflag_t, |
| | 6738 | cflag: tc_cflag_t, |
| | 6739 | lflag: tc_lflag_t, |
| | 6740 | line: cc_t, |
| | 6741 | cc: [NCCS]cc_t, |
| | 6742 | } else if (is_ppc) extern struct { |
| | 6743 | iflag: tc_iflag_t, |
| | 6744 | oflag: tc_oflag_t, |
| | 6745 | cflag: tc_cflag_t, |
| | 6746 | lflag: tc_lflag_t, |
| | 6747 | cc: [NCCS]cc_t, |
| | 6748 | line: cc_t, |
| | 6749 | ispeed: speed_t, |
| | 6750 | ospeed: speed_t, |
| | 6751 | } else extern struct { |
| | 6752 | iflag: tc_iflag_t, |
| | 6753 | oflag: tc_oflag_t, |
| | 6754 | cflag: tc_cflag_t, |
| | 6755 | lflag: tc_lflag_t, |
| | 6756 | line: cc_t, |
| | 6757 | cc: [NCCS]cc_t, |
| | 6758 | ispeed: speed_t, |
| | 6759 | ospeed: speed_t, |
| | 6760 | }; |
| | 6761 | |
| | 6762 | pub const termios2 = if (is_mips) extern struct { |
| | 6763 | iflag: tc_iflag_t, |
| | 6764 | oflag: tc_oflag_t, |
| | 6765 | cflag: tc_cflag_t, |
| | 6766 | lflag: tc_lflag_t, |
| | 6767 | cc: [NCCS]cc_t, |
| | 6768 | line: cc_t, |
| | 6769 | ispeed: speed_t, |
| | 6770 | ospeed: speed_t, |
| | 6771 | } else extern struct { |
| | 6772 | iflag: tc_iflag_t, |
| | 6773 | oflag: tc_oflag_t, |
| | 6774 | cflag: tc_cflag_t, |
| | 6775 | lflag: tc_lflag_t, |
| | 6776 | line: cc_t, |
| | 6777 | cc: [NCCS + if (is_sparc) 2 else 0]cc_t, |
| | 6778 | ispeed: speed_t, |
| | 6779 | ospeed: speed_t, |
| 6201 | }; | 6780 | }; |
| 6202 | | 6781 | |
| 6203 | pub const SIOCGIFINDEX = 0x8933; | 6782 | pub const SIOCGIFINDEX = 0x8933; |