linux.rs 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. use crate::platform::types::*;
  2. use crate::platform::Sys;
  3. #[no_mangle]
  4. pub unsafe extern "C" fn ioctl(fd: c_int, request: c_ulong, out: *mut c_void) -> c_int {
  5. // TODO: Somehow support varargs to syscall??
  6. Sys::ioctl(fd, request, out)
  7. }
  8. pub const TCGETS: c_ulong = 0x5401;
  9. pub const TCSETS: c_ulong = 0x5402;
  10. pub const TCSETSW: c_ulong = 0x5403;
  11. pub const TCSETSF: c_ulong = 0x5404;
  12. pub const TCGETA: c_ulong = 0x5405;
  13. pub const TCSETA: c_ulong = 0x5406;
  14. pub const TCSETAW: c_ulong = 0x5407;
  15. pub const TCSETAF: c_ulong = 0x5408;
  16. pub const TCSBRK: c_ulong = 0x5409;
  17. pub const TCXONC: c_ulong = 0x540A;
  18. pub const TCFLSH: c_ulong = 0x540B;
  19. pub const TIOCEXCL: c_ulong = 0x540C;
  20. pub const TIOCNXCL: c_ulong = 0x540D;
  21. pub const TIOCSCTTY: c_ulong = 0x540E;
  22. pub const TIOCGPGRP: c_ulong = 0x540F;
  23. pub const TIOCSPGRP: c_ulong = 0x5410;
  24. pub const TIOCOUTQ: c_ulong = 0x5411;
  25. pub const TIOCSTI: c_ulong = 0x5412;
  26. pub const TIOCGWINSZ: c_ulong = 0x5413;
  27. pub const TIOCSWINSZ: c_ulong = 0x5414;
  28. pub const TIOCMGET: c_ulong = 0x5415;
  29. pub const TIOCMBIS: c_ulong = 0x5416;
  30. pub const TIOCMBIC: c_ulong = 0x5417;
  31. pub const TIOCMSET: c_ulong = 0x5418;
  32. pub const TIOCGSOFTCAR: c_ulong = 0x5419;
  33. pub const TIOCSSOFTCAR: c_ulong = 0x541A;
  34. pub const FIONREAD: c_ulong = 0x541B;
  35. pub const TIOCINQ: c_ulong = FIONREAD;
  36. pub const TIOCLINUX: c_ulong = 0x541C;
  37. pub const TIOCCONS: c_ulong = 0x541D;
  38. pub const TIOCGSERIAL: c_ulong = 0x541E;
  39. pub const TIOCSSERIAL: c_ulong = 0x541F;
  40. pub const TIOCPKT: c_ulong = 0x5420;
  41. pub const FIONBIO: c_ulong = 0x5421;
  42. pub const TIOCNOTTY: c_ulong = 0x5422;
  43. pub const TIOCSETD: c_ulong = 0x5423;
  44. pub const TIOCGETD: c_ulong = 0x5424;
  45. pub const TCSBRKP: c_ulong = 0x5425;
  46. pub const TIOCSBRK: c_ulong = 0x5427;
  47. pub const TIOCCBRK: c_ulong = 0x5428;
  48. pub const TIOCGSID: c_ulong = 0x5429;
  49. pub const TIOCGRS485: c_ulong = 0x542E;
  50. pub const TIOCSRS485: c_ulong = 0x542F;
  51. pub const TIOCGPTN: c_ulong = 0x8004_5430;
  52. pub const TIOCSPTLCK: c_ulong = 0x4004_5431;
  53. pub const TIOCGDEV: c_ulong = 0x8004_5432;
  54. pub const TCGETX: c_ulong = 0x5432;
  55. pub const TCSETX: c_ulong = 0x5433;
  56. pub const TCSETXF: c_ulong = 0x5434;
  57. pub const TCSETXW: c_ulong = 0x5435;
  58. pub const TIOCSIG: c_ulong = 0x4004_5436;
  59. pub const TIOCVHANGUP: c_ulong = 0x5437;
  60. pub const TIOCGPKT: c_ulong = 0x8004_5438;
  61. pub const TIOCGPTLCK: c_ulong = 0x8004_5439;
  62. pub const TIOCGEXCL: c_ulong = 0x8004_5440;
  63. pub const TIOCGPTPEER: c_ulong = 0x5441;
  64. pub const FIONCLEX: c_ulong = 0x5450;
  65. pub const FIOCLEX: c_ulong = 0x5451;
  66. pub const FIOASYNC: c_ulong = 0x5452;
  67. pub const TIOCSERCONFIG: c_ulong = 0x5453;
  68. pub const TIOCSERGWILD: c_ulong = 0x5454;
  69. pub const TIOCSERSWILD: c_ulong = 0x5455;
  70. pub const TIOCGLCKTRMIOS: c_ulong = 0x5456;
  71. pub const TIOCSLCKTRMIOS: c_ulong = 0x5457;
  72. pub const TIOCSERGSTRUCT: c_ulong = 0x5458;
  73. pub const TIOCSERGETLSR: c_ulong = 0x5459;
  74. pub const TIOCSERGETMULTI: c_ulong = 0x545A;
  75. pub const TIOCSERSETMULTI: c_ulong = 0x545B;
  76. pub const TIOCMIWAIT: c_ulong = 0x545C;
  77. pub const TIOCGICOUNT: c_ulong = 0x545D;
  78. pub const FIOQSIZE: c_ulong = 0x5460;
  79. pub const TIOCPKT_DATA: c_ulong = 0;
  80. pub const TIOCPKT_FLUSHREAD: c_ulong = 1;
  81. pub const TIOCPKT_FLUSHWRITE: c_ulong = 2;
  82. pub const TIOCPKT_STOP: c_ulong = 4;
  83. pub const TIOCPKT_START: c_ulong = 8;
  84. pub const TIOCPKT_NOSTOP: c_ulong = 16;
  85. pub const TIOCPKT_DOSTOP: c_ulong = 32;
  86. pub const TIOCPKT_IOCTL: c_ulong = 64;
  87. pub const TIOCSER_TEMT: c_ulong = 0x01;
  88. pub const TIOCM_LE: c_ulong = 0x001;
  89. pub const TIOCM_DTR: c_ulong = 0x002;
  90. pub const TIOCM_RTS: c_ulong = 0x004;
  91. pub const TIOCM_ST: c_ulong = 0x008;
  92. pub const TIOCM_SR: c_ulong = 0x010;
  93. pub const TIOCM_CTS: c_ulong = 0x020;
  94. pub const TIOCM_CAR: c_ulong = 0x040;
  95. pub const TIOCM_RNG: c_ulong = 0x080;
  96. pub const TIOCM_DSR: c_ulong = 0x100;
  97. pub const TIOCM_CD: c_ulong = TIOCM_CAR;
  98. pub const TIOCM_RI: c_ulong = TIOCM_RNG;
  99. pub const TIOCM_OUT1: c_ulong = 0x2000;
  100. pub const TIOCM_OUT2: c_ulong = 0x4000;
  101. pub const TIOCM_LOOP: c_ulong = 0x8000;
  102. pub const N_TTY: c_ulong = 0;
  103. pub const N_SLIP: c_ulong = 1;
  104. pub const N_MOUSE: c_ulong = 2;
  105. pub const N_PPP: c_ulong = 3;
  106. pub const N_STRIP: c_ulong = 4;
  107. pub const N_AX25: c_ulong = 5;
  108. pub const N_X25: c_ulong = 6;
  109. pub const N_6PACK: c_ulong = 7;
  110. pub const N_MASC: c_ulong = 8;
  111. pub const N_R3964: c_ulong = 9;
  112. pub const N_PROFIBUS_FDL: c_ulong = 10;
  113. pub const N_IRDA: c_ulong = 11;
  114. pub const N_SMSBLOCK: c_ulong = 12;
  115. pub const N_HDLC: c_ulong = 13;
  116. pub const N_SYNC_PPP: c_ulong = 14;
  117. pub const N_HCI: c_ulong = 15;
  118. pub const FIOSETOWN: c_ulong = 0x8901;
  119. pub const SIOCSPGRP: c_ulong = 0x8902;
  120. pub const FIOGETOWN: c_ulong = 0x8903;
  121. pub const SIOCGPGRP: c_ulong = 0x8904;
  122. pub const SIOCATMARK: c_ulong = 0x8905;
  123. pub const SIOCGSTAMP: c_ulong = 0x8906;
  124. pub const SIOCGSTAMPNS: c_ulong = 0x8907;
  125. pub const SIOCADDRT: c_ulong = 0x890B;
  126. pub const SIOCDELRT: c_ulong = 0x890C;
  127. pub const SIOCRTMSG: c_ulong = 0x890D;
  128. pub const SIOCGIFNAME: c_ulong = 0x8910;
  129. pub const SIOCSIFLINK: c_ulong = 0x8911;
  130. pub const SIOCGIFCONF: c_ulong = 0x8912;
  131. pub const SIOCGIFFLAGS: c_ulong = 0x8913;
  132. pub const SIOCSIFFLAGS: c_ulong = 0x8914;
  133. pub const SIOCGIFADDR: c_ulong = 0x8915;
  134. pub const SIOCSIFADDR: c_ulong = 0x8916;
  135. pub const SIOCGIFDSTADDR: c_ulong = 0x8917;
  136. pub const SIOCSIFDSTADDR: c_ulong = 0x8918;
  137. pub const SIOCGIFBRDADDR: c_ulong = 0x8919;
  138. pub const SIOCSIFBRDADDR: c_ulong = 0x891a;
  139. pub const SIOCGIFNETMASK: c_ulong = 0x891b;
  140. pub const SIOCSIFNETMASK: c_ulong = 0x891c;
  141. pub const SIOCGIFMETRIC: c_ulong = 0x891d;
  142. pub const SIOCSIFMETRIC: c_ulong = 0x891e;
  143. pub const SIOCGIFMEM: c_ulong = 0x891f;
  144. pub const SIOCSIFMEM: c_ulong = 0x8920;
  145. pub const SIOCGIFMTU: c_ulong = 0x8921;
  146. pub const SIOCSIFMTU: c_ulong = 0x8922;
  147. pub const SIOCSIFNAME: c_ulong = 0x8923;
  148. pub const SIOCSIFHWADDR: c_ulong = 0x8924;
  149. pub const SIOCGIFENCAP: c_ulong = 0x8925;
  150. pub const SIOCSIFENCAP: c_ulong = 0x8926;
  151. pub const SIOCGIFHWADDR: c_ulong = 0x8927;
  152. pub const SIOCGIFSLAVE: c_ulong = 0x8929;
  153. pub const SIOCSIFSLAVE: c_ulong = 0x8930;
  154. pub const SIOCADDMULTI: c_ulong = 0x8931;
  155. pub const SIOCDELMULTI: c_ulong = 0x8932;
  156. pub const SIOCGIFINDEX: c_ulong = 0x8933;
  157. pub const SIOGIFINDEX: c_ulong = SIOCGIFINDEX;
  158. pub const SIOCSIFPFLAGS: c_ulong = 0x8934;
  159. pub const SIOCGIFPFLAGS: c_ulong = 0x8935;
  160. pub const SIOCDIFADDR: c_ulong = 0x8936;
  161. pub const SIOCSIFHWBROADCAST: c_ulong = 0x8937;
  162. pub const SIOCGIFCOUNT: c_ulong = 0x8938;
  163. pub const SIOCGIFBR: c_ulong = 0x8940;
  164. pub const SIOCSIFBR: c_ulong = 0x8941;
  165. pub const SIOCGIFTXQLEN: c_ulong = 0x8942;
  166. pub const SIOCSIFTXQLEN: c_ulong = 0x8943;
  167. pub const SIOCDARP: c_ulong = 0x8953;
  168. pub const SIOCGARP: c_ulong = 0x8954;
  169. pub const SIOCSARP: c_ulong = 0x8955;
  170. pub const SIOCDRARP: c_ulong = 0x8960;
  171. pub const SIOCGRARP: c_ulong = 0x8961;
  172. pub const SIOCSRARP: c_ulong = 0x8962;
  173. pub const SIOCGIFMAP: c_ulong = 0x8970;
  174. pub const SIOCSIFMAP: c_ulong = 0x8971;
  175. pub const SIOCADDDLCI: c_ulong = 0x8980;
  176. pub const SIOCDELDLCI: c_ulong = 0x8981;
  177. pub const SIOCDEVPRIVATE: c_ulong = 0x89F0;
  178. pub const SIOCPROTOPRIVATE: c_ulong = 0x89E0;