Skip to content

Commit d3851cf

Browse files
authored
Reorganize todo functions into a few categories. (#114)
Sort todo.rs into a few categories, including one for all the functions that have rustix implementations together and just need C API wrappers.
1 parent 071d0fc commit d3851cf

File tree

1 file changed

+118
-101
lines changed

1 file changed

+118
-101
lines changed

c-scape/src/todo.rs

Lines changed: 118 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,121 @@ mod pthread_spin;
1313
mod sysv;
1414
mod wchar;
1515

16+
// Functions that are implemented in rustix, so we just need to implement
17+
// C-compatible wrappers for them.
18+
19+
#[no_mangle]
20+
unsafe extern "C" fn sysinfo() {
21+
todo!("sysinfo")
22+
}
23+
#[no_mangle]
24+
unsafe extern "C" fn signalfd() {
25+
todo!("signalfd")
26+
}
27+
#[no_mangle]
28+
unsafe extern "C" fn posix_fallocate() {
29+
todo!("posix_fallocate")
30+
}
31+
#[no_mangle]
32+
unsafe extern "C" fn mount() {
33+
todo!("mount")
34+
}
35+
#[no_mangle]
36+
unsafe extern "C" fn umount() {
37+
todo!("umount")
38+
}
39+
#[no_mangle]
40+
unsafe extern "C" fn umount2() {
41+
todo!("umount2")
42+
}
43+
#[no_mangle]
44+
unsafe extern "C" fn unshare() {
45+
todo!("unshare")
46+
}
47+
#[no_mangle]
48+
unsafe extern "C" fn eaccess() {
49+
todo!("eaccess")
50+
}
51+
#[no_mangle]
52+
unsafe extern "C" fn fchownat() {
53+
todo!("fchownat")
54+
}
55+
#[no_mangle]
56+
unsafe extern "C" fn fstatfs() {
57+
todo!("fstatfs")
58+
}
59+
#[no_mangle]
60+
unsafe extern "C" fn fstatfs64() {
61+
todo!("fstatfs64")
62+
}
63+
#[no_mangle]
64+
unsafe extern "C" fn timerfd_gettime() {
65+
todo!("timerfd_gettime")
66+
}
67+
68+
// `_chk` versions of functions we have implemented, so we just need to add
69+
// wrappers with extra checks.
70+
71+
#[no_mangle]
72+
unsafe extern "C" fn __realpath_chk() {
73+
todo!("__realpath_chk")
74+
}
75+
#[no_mangle]
76+
unsafe extern "C" fn __fread_chk() {
77+
todo!("__fread_chk")
78+
}
79+
#[no_mangle]
80+
unsafe extern "C" fn __getgroups_chk() {
81+
todo!("__getgroups_chk")
82+
}
83+
#[no_mangle]
84+
unsafe extern "C" fn __readlink_chk() {
85+
todo!("__readlink_chk")
86+
}
87+
#[no_mangle]
88+
unsafe extern "C" fn __readlinkat_chk() {
89+
todo!("__readlinkat_chk")
90+
}
91+
92+
// BSD formatted error functions. These can be implemented using other
93+
// libc functions.
94+
95+
#[no_mangle]
96+
unsafe extern "C" fn err() {
97+
todo!("err")
98+
}
99+
#[no_mangle]
100+
unsafe extern "C" fn errx() {
101+
todo!("errx")
102+
}
103+
#[no_mangle]
104+
unsafe extern "C" fn warn() {
105+
todo!("warn")
106+
}
107+
#[no_mangle]
108+
unsafe extern "C" fn warnx() {
109+
todo!("warnx")
110+
}
111+
#[no_mangle]
112+
unsafe extern "C" fn verr() {
113+
todo!("verr")
114+
}
115+
#[no_mangle]
116+
unsafe extern "C" fn verrx() {
117+
todo!("verrx")
118+
}
119+
#[no_mangle]
120+
unsafe extern "C" fn vwarn() {
121+
todo!("vwarn")
122+
}
123+
#[no_mangle]
124+
unsafe extern "C" fn vwarnx() {
125+
todo!("vwarnx")
126+
}
127+
128+
// NSS functions. Currently we're implementing NSS functions in c-gull by
129+
// invoking the `getent` command and parsing its output.
130+
16131
#[no_mangle]
17132
unsafe extern "C" fn setnetent() {
18133
todo!("setnetent")
@@ -153,15 +268,14 @@ unsafe extern "C" fn getspent_r() {
153268
unsafe extern "C" fn gethostbyname_r() {
154269
todo!("gethostbyname_r")
155270
}
271+
272+
// Additional functions.
273+
156274
#[no_mangle]
157275
unsafe extern "C" fn alarm() {
158276
todo!("alarm")
159277
}
160278
#[no_mangle]
161-
unsafe extern "C" fn sysinfo() {
162-
todo!("sysinfo")
163-
}
164-
#[no_mangle]
165279
unsafe extern "C" fn process_vm_writev() {
166280
todo!("process_vm_writev")
167281
}
@@ -170,14 +284,6 @@ unsafe extern "C" fn process_vm_readv() {
170284
todo!("process_vm_readv")
171285
}
172286
#[no_mangle]
173-
unsafe extern "C" fn signalfd() {
174-
todo!("signalfd")
175-
}
176-
#[no_mangle]
177-
unsafe extern "C" fn posix_fallocate() {
178-
todo!("posix_fallocate")
179-
}
180-
#[no_mangle]
181287
unsafe extern "C" fn setfsuid() {
182288
todo!("setfsuid")
183289
}
@@ -218,14 +324,6 @@ unsafe extern "C" fn clock_getcpuclockid() {
218324
todo!("clock_getcpuclockid")
219325
}
220326
#[no_mangle]
221-
unsafe extern "C" fn eaccess() {
222-
todo!("eaccess")
223-
}
224-
#[no_mangle]
225-
unsafe extern "C" fn fchownat() {
226-
todo!("fchownat")
227-
}
228-
#[no_mangle]
229327
unsafe extern "C" fn getresgid() {
230328
todo!("getresgid")
231329
}
@@ -306,10 +404,6 @@ unsafe extern "C" fn timer_getoverrun() {
306404
todo!("timer_getoverrun")
307405
}
308406
#[no_mangle]
309-
unsafe extern "C" fn timerfd_gettime() {
310-
todo!("timerfd_gettime")
311-
}
312-
#[no_mangle]
313407
unsafe extern "C" fn truncate() {
314408
todo!("truncate")
315409
}
@@ -811,10 +905,6 @@ unsafe extern "C" fn sigqueue() {
811905
todo!("sigqueue")
812906
}
813907
#[no_mangle]
814-
unsafe extern "C" fn __getgroups_chk() {
815-
todo!("__getgroups_chk")
816-
}
817-
#[no_mangle]
818908
unsafe extern "C" fn __isoc99_vfscanf() {
819909
todo!("__isoc99_vfscanf")
820910
}
@@ -823,10 +913,6 @@ unsafe extern "C" fn mincore() {
823913
todo!("mincore")
824914
}
825915
#[no_mangle]
826-
unsafe extern "C" fn __realpath_chk() {
827-
todo!("__realpath_chk")
828-
}
829-
#[no_mangle]
830916
unsafe extern "C" fn setns() {
831917
todo!("setns")
832918
}
@@ -839,54 +925,6 @@ unsafe extern "C" fn setresuid() {
839925
todo!("setresuid")
840926
}
841927
#[no_mangle]
842-
unsafe extern "C" fn mount() {
843-
todo!("mount")
844-
}
845-
#[no_mangle]
846-
unsafe extern "C" fn umount() {
847-
todo!("umount")
848-
}
849-
#[no_mangle]
850-
unsafe extern "C" fn umount2() {
851-
todo!("umount2")
852-
}
853-
#[no_mangle]
854-
unsafe extern "C" fn unshare() {
855-
todo!("unshare")
856-
}
857-
#[no_mangle]
858-
unsafe extern "C" fn err() {
859-
todo!("err")
860-
}
861-
#[no_mangle]
862-
unsafe extern "C" fn errx() {
863-
todo!("errx")
864-
}
865-
#[no_mangle]
866-
unsafe extern "C" fn warn() {
867-
todo!("warn")
868-
}
869-
#[no_mangle]
870-
unsafe extern "C" fn warnx() {
871-
todo!("warnx")
872-
}
873-
#[no_mangle]
874-
unsafe extern "C" fn verr() {
875-
todo!("verr")
876-
}
877-
#[no_mangle]
878-
unsafe extern "C" fn verrx() {
879-
todo!("verrx")
880-
}
881-
#[no_mangle]
882-
unsafe extern "C" fn vwarn() {
883-
todo!("vwarn")
884-
}
885-
#[no_mangle]
886-
unsafe extern "C" fn vwarnx() {
887-
todo!("vwarnx")
888-
}
889-
#[no_mangle]
890928
unsafe extern "C" fn mq_close() {
891929
todo!("mq_close")
892930
}
@@ -983,18 +1021,6 @@ unsafe extern "C" fn fmtmsg() {
9831021
todo!("fmtmsg")
9841022
}
9851023
#[no_mangle]
986-
unsafe extern "C" fn __fread_chk() {
987-
todo!("__fread_chk")
988-
}
989-
#[no_mangle]
990-
unsafe extern "C" fn fstatfs() {
991-
todo!("fstatfs")
992-
}
993-
#[no_mangle]
994-
unsafe extern "C" fn fstatfs64() {
995-
todo!("fstatfs64")
996-
}
997-
#[no_mangle]
9981024
unsafe extern "C" fn getcpu() {
9991025
todo!("getcpu")
10001026
}
@@ -1091,14 +1117,6 @@ unsafe extern "C" fn readahead() {
10911117
todo!("readahead")
10921118
}
10931119
#[no_mangle]
1094-
unsafe extern "C" fn __readlink_chk() {
1095-
todo!("__readlink_chk")
1096-
}
1097-
#[no_mangle]
1098-
unsafe extern "C" fn __readlinkat_chk() {
1099-
todo!("__readlinkat_chk")
1100-
}
1101-
#[no_mangle]
11021120
unsafe extern "C" fn reboot() {
11031121
todo!("reboot")
11041122
}
@@ -1190,7 +1208,6 @@ unsafe extern "C" fn register_printf_function() {
11901208
unsafe extern "C" fn adjtime() {
11911209
todo!("adjtime")
11921210
}
1193-
11941211
#[no_mangle]
11951212
unsafe extern "C" fn gamma() {
11961213
todo!("gamma")

0 commit comments

Comments
 (0)