lib.rs 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. //! unistd implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/unistd.h.html
  2. #![no_std]
  3. extern crate common;
  4. pub use common::*;
  5. pub const NULL: c_int = 0;
  6. pub const R_OK: c_int = 1;
  7. pub const W_OK: c_int = 2;
  8. pub const X_OK: c_int = 4;
  9. pub const F_OK: c_int = 8;
  10. pub const SEEK_SET: c_int = 0;
  11. pub const SEEK_CUR: c_int = 1;
  12. pub const SEEK_END: c_int = 2;
  13. pub const F_ULOCK: c_int = 0;
  14. pub const F_LOCK: c_int = 1;
  15. pub const F_TLOCK: c_int = 2;
  16. pub const F_TEST: c_int = 3;
  17. pub const STDIN_FILENO: c_int = 0;
  18. pub const STDOUT_FILENO: c_int = 1;
  19. pub const STDERR_FILENO: c_int = 2;
  20. #[no_mangle]
  21. pub extern "C" fn _exit(status: c_int) {
  22. unimplemented!();
  23. }
  24. #[no_mangle]
  25. pub extern "C" fn access(path: *const c_char, amode: c_int) -> c_int {
  26. unimplemented!();
  27. }
  28. #[no_mangle]
  29. pub extern "C" fn alarm(seconds: c_uint) -> c_uint {
  30. unimplemented!();
  31. }
  32. #[no_mangle]
  33. pub extern "C" fn brk(addr: *mut c_void) -> c_int {
  34. unimplemented!();
  35. }
  36. #[no_mangle]
  37. pub extern "C" fn chdir(path: *const c_char) -> c_int {
  38. unimplemented!();
  39. }
  40. #[no_mangle]
  41. pub extern "C" fn chroot(path: *const c_char) -> c_int {
  42. unimplemented!();
  43. }
  44. #[no_mangle]
  45. pub extern "C" fn chown(path: *const c_char, owner: uid_t, group: gid_t) -> c_int {
  46. unimplemented!();
  47. }
  48. #[no_mangle]
  49. pub extern "C" fn close(fildes: c_int) -> c_int {
  50. unimplemented!();
  51. }
  52. #[no_mangle]
  53. pub extern "C" fn confstr(name: c_int, buf: *mut c_char, len: size_t) -> size_t {
  54. unimplemented!();
  55. }
  56. #[no_mangle]
  57. pub extern "C" fn crypt(key: *const c_char, salt: *const c_char) -> *mut c_char {
  58. unimplemented!();
  59. }
  60. #[no_mangle]
  61. pub extern "C" fn ctermid(s: *mut c_char) -> *mut c_char {
  62. unimplemented!();
  63. }
  64. #[no_mangle]
  65. pub extern "C" fn cuserid(s: *mut c_char) -> *mut c_char {
  66. unimplemented!();
  67. }
  68. #[no_mangle]
  69. pub extern "C" fn dup(fildes: c_int) -> c_int {
  70. unimplemented!();
  71. }
  72. #[no_mangle]
  73. pub extern "C" fn dup2(fildes: c_int, fildes2: c_int) -> c_int {
  74. unimplemented!();
  75. }
  76. #[no_mangle]
  77. pub extern "C" fn encrypt(block: [c_char; 64], edflag: c_int) {
  78. unimplemented!();
  79. }
  80. #[no_mangle]
  81. pub extern "C" fn execl(path: *const c_char, arg0: *const c_char /* TODO: , mut args: ... */) -> c_int {
  82. unimplemented!();
  83. }
  84. #[no_mangle]
  85. pub extern "C" fn execle(path: *const c_char, arg0: *const c_char /* TODO: , mut args: ... */) -> c_int {
  86. unimplemented!();
  87. }
  88. #[no_mangle]
  89. pub extern "C" fn execlp(file: *const c_char, arg0: *const c_char /* TODO: , mut args: ... */) -> c_int {
  90. unimplemented!();
  91. }
  92. #[no_mangle]
  93. pub extern "C" fn execv(path: *const c_char, argv: *const *mut c_char) -> c_int {
  94. unimplemented!();
  95. }
  96. #[no_mangle]
  97. pub extern "C" fn execve(path: *const c_char, argv: *const *mut c_char, envp: *const *mut c_char) -> c_int {
  98. unimplemented!();
  99. }
  100. #[no_mangle]
  101. pub extern "C" fn execvp(file: *const c_char, argv: *const *mut c_char) -> c_int {
  102. unimplemented!();
  103. }
  104. #[no_mangle]
  105. pub extern "C" fn fchown(fildes: c_int, owner: uid_t, group: gid_t) -> c_int {
  106. unimplemented!();
  107. }
  108. #[no_mangle]
  109. pub extern "C" fn fchdir(fildes: c_int) -> c_int {
  110. unimplemented!();
  111. }
  112. #[no_mangle]
  113. pub extern "C" fn fdatasync(fildes: c_int) -> c_int {
  114. unimplemented!();
  115. }
  116. #[no_mangle]
  117. pub extern "C" fn fork() -> pid_t {
  118. unimplemented!();
  119. }
  120. #[no_mangle]
  121. pub extern "C" fn fpathconf(fildes: c_int, name: c_int) -> c_long {
  122. unimplemented!();
  123. }
  124. #[no_mangle]
  125. pub extern "C" fn fsync(fildes: c_int) -> c_int {
  126. unimplemented!();
  127. }
  128. #[no_mangle]
  129. pub extern "C" fn ftruncate(fildes: c_int, length: off_t) -> c_int {
  130. unimplemented!();
  131. }
  132. #[no_mangle]
  133. pub extern "C" fn getcwd(buf: *mut c_char, size: size_t) -> *mut c_char {
  134. unimplemented!();
  135. }
  136. #[no_mangle]
  137. pub extern "C" fn getdtablesize() -> c_int {
  138. unimplemented!();
  139. }
  140. #[no_mangle]
  141. pub extern "C" fn getegid() -> gid_t {
  142. unimplemented!();
  143. }
  144. #[no_mangle]
  145. pub extern "C" fn geteuid() -> uid_t {
  146. unimplemented!();
  147. }
  148. #[no_mangle]
  149. pub extern "C" fn getgid() -> gid_t {
  150. unimplemented!();
  151. }
  152. #[no_mangle]
  153. pub extern "C" fn getgroups(gidsetsize: c_int, grouplist: *mut gid_t) -> c_int {
  154. unimplemented!();
  155. }
  156. #[no_mangle]
  157. pub extern "C" fn gethostid() -> c_long {
  158. unimplemented!();
  159. }
  160. #[no_mangle]
  161. pub extern "C" fn getlogin() -> *mut c_char {
  162. unimplemented!();
  163. }
  164. #[no_mangle]
  165. pub extern "C" fn getlogin_r(name: *mut c_char, namesize: size_t) -> c_int {
  166. unimplemented!();
  167. }
  168. #[no_mangle]
  169. pub extern "C" fn getopt(argc: c_int, argv: *const *mut c_char, opstring: *const c_char) -> c_int {
  170. unimplemented!();
  171. }
  172. #[no_mangle]
  173. pub extern "C" fn getpagesize() -> c_int {
  174. unimplemented!();
  175. }
  176. #[no_mangle]
  177. pub extern "C" fn getpass(prompt: *const c_char) -> *mut c_char {
  178. unimplemented!();
  179. }
  180. #[no_mangle]
  181. pub extern "C" fn getpgid(pid: pid_t) -> pid_t {
  182. unimplemented!();
  183. }
  184. #[no_mangle]
  185. pub extern "C" fn getpgrp() -> pid_t {
  186. unimplemented!();
  187. }
  188. #[no_mangle]
  189. pub extern "C" fn getpid() -> pid_t {
  190. unimplemented!();
  191. }
  192. #[no_mangle]
  193. pub extern "C" fn getppid() -> pid_t {
  194. unimplemented!();
  195. }
  196. #[no_mangle]
  197. pub extern "C" fn getsid(pid: pid_t) -> pid_t {
  198. unimplemented!();
  199. }
  200. #[no_mangle]
  201. pub extern "C" fn getuid() -> uid_t {
  202. unimplemented!();
  203. }
  204. #[no_mangle]
  205. pub extern "C" fn getwd(path_name: *mut c_char) -> *mut c_char {
  206. unimplemented!();
  207. }
  208. #[no_mangle]
  209. pub extern "C" fn isatty(fildes: c_int) -> c_int {
  210. unimplemented!();
  211. }
  212. #[no_mangle]
  213. pub extern "C" fn lchown(path: *const c_char, owner: uid_t, group: gid_t) -> c_int {
  214. unimplemented!();
  215. }
  216. #[no_mangle]
  217. pub extern "C" fn link(path1: *const c_char, path2: *const c_char) -> c_int {
  218. unimplemented!();
  219. }
  220. #[no_mangle]
  221. pub extern "C" fn lockf(fildes: c_int, function: c_int, size: off_t) -> c_int {
  222. unimplemented!();
  223. }
  224. #[no_mangle]
  225. pub extern "C" fn lseek(fildes: c_int, offset: off_t, whence: c_int) -> off_t {
  226. unimplemented!();
  227. }
  228. #[no_mangle]
  229. pub extern "C" fn nice(incr: c_int) -> c_int {
  230. unimplemented!();
  231. }
  232. #[no_mangle]
  233. pub extern "C" fn pathconf(path: *const c_char, name: c_int) -> c_long {
  234. unimplemented!();
  235. }
  236. #[no_mangle]
  237. pub extern "C" fn pause() -> c_int {
  238. unimplemented!();
  239. }
  240. #[no_mangle]
  241. pub extern "C" fn pipe(fildes: [c_int; 2]) -> c_int {
  242. unimplemented!();
  243. }
  244. #[no_mangle]
  245. pub extern "C" fn pread(fildes: c_int, buf: *mut c_void, nbyte: size_t, offset: off_t) -> ssize_t {
  246. unimplemented!();
  247. }
  248. #[no_mangle]
  249. pub extern "C" fn pthread_atfork(prepare: extern "C" fn(), parent: extern "C" fn(), child: extern "C" fn()) -> c_int {
  250. unimplemented!();
  251. }
  252. #[no_mangle]
  253. pub extern "C" fn pwrite(fildes: c_int, buf: *const c_void, nbyte: size_t, offset: off_t) -> ssize_t {
  254. unimplemented!();
  255. }
  256. #[no_mangle]
  257. pub extern "C" fn read(fildes: c_int, buf: *const c_void, nbyte: size_t) -> ssize_t {
  258. unimplemented!();
  259. }
  260. #[no_mangle]
  261. pub extern "C" fn readlink(path: *const c_char, buf: *mut c_char, bufsize: size_t) -> c_int {
  262. unimplemented!();
  263. }
  264. #[no_mangle]
  265. pub extern "C" fn rmdir(path: *const c_char) -> c_int {
  266. unimplemented!();
  267. }
  268. #[no_mangle]
  269. pub extern "C" fn sbrk(incr: intptr_t) -> *mut c_void {
  270. unimplemented!();
  271. }
  272. #[no_mangle]
  273. pub extern "C" fn setgid(gid: gid_t) -> c_int {
  274. unimplemented!();
  275. }
  276. #[no_mangle]
  277. pub extern "C" fn setpgid(pid: pid_t, pgid: pid_t) -> c_int {
  278. unimplemented!();
  279. }
  280. #[no_mangle]
  281. pub extern "C" fn setpgrp() -> pid_t {
  282. unimplemented!();
  283. }
  284. #[no_mangle]
  285. pub extern "C" fn setregid(rgid: gid_t, egid: gid_t) -> c_int {
  286. unimplemented!();
  287. }
  288. #[no_mangle]
  289. pub extern "C" fn setreuid(ruid: uid_t, euid: uid_t) -> c_int {
  290. unimplemented!();
  291. }
  292. #[no_mangle]
  293. pub extern "C" fn setsid() -> pid_t {
  294. unimplemented!();
  295. }
  296. #[no_mangle]
  297. pub extern "C" fn setuid(uid: uid_t) -> c_int {
  298. unimplemented!();
  299. }
  300. #[no_mangle]
  301. pub extern "C" fn sleep(seconds: c_uint) -> c_uint {
  302. unimplemented!();
  303. }
  304. #[no_mangle]
  305. pub extern "C" fn swab(src: *const c_void, dest: *mut c_void, nbytes: ssize_t) {
  306. unimplemented!();
  307. }
  308. #[no_mangle]
  309. pub extern "C" fn symlink(path1: *const c_char, path2: *const c_char) -> c_int {
  310. unimplemented!();
  311. }
  312. #[no_mangle]
  313. pub extern "C" fn sync() {
  314. unimplemented!();
  315. }
  316. #[no_mangle]
  317. pub extern "C" fn sysconf(name: c_int) -> c_long {
  318. unimplemented!();
  319. }
  320. #[no_mangle]
  321. pub extern "C" fn tcgetpgrp() -> pid_t {
  322. unimplemented!();
  323. }
  324. #[no_mangle]
  325. pub extern "C" fn tcsetpgrp(fildes: c_int, pgid_id: pid_t) -> c_int {
  326. unimplemented!();
  327. }
  328. #[no_mangle]
  329. pub extern "C" fn truncate(path: *const c_char, length: off_t) -> c_int {
  330. unimplemented!();
  331. }
  332. #[no_mangle]
  333. pub extern "C" fn ttyname(fildes: c_int) -> *mut c_char {
  334. unimplemented!();
  335. }
  336. #[no_mangle]
  337. pub extern "C" fn ttyname_r(fildes: c_int, name: *mut c_char, namesize: size_t) -> c_int {
  338. unimplemented!();
  339. }
  340. #[no_mangle]
  341. pub extern "C" fn ualarm(useconds: useconds_t, interval: useconds_t) -> useconds_t {
  342. unimplemented!();
  343. }
  344. #[no_mangle]
  345. pub extern "C" fn unlink(path: *const c_char) -> c_int {
  346. unimplemented!();
  347. }
  348. #[no_mangle]
  349. pub extern "C" fn usleep(useconds: useconds_t) -> c_int {
  350. unimplemented!();
  351. }
  352. #[no_mangle]
  353. pub extern "C" fn vfork() -> pid_t {
  354. unimplemented!();
  355. }
  356. #[no_mangle]
  357. pub extern "C" fn write(fildes: c_int, buf: *const c_void, nbyte: size_t) -> ssize_t {
  358. unimplemented!();
  359. }
  360. /*
  361. #[no_mangle]
  362. pub extern "C" fn func(args) -> c_int {
  363. unimplemented!();
  364. }
  365. */