Skip to content

Commit d82f2ef

Browse files
committed
android add handful lock free stdio calls
1 parent 30a7a9f commit d82f2ef

File tree

4 files changed

+21
-1
lines changed

4 files changed

+21
-1
lines changed

libc-test/build.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1863,6 +1863,9 @@ fn test_android(target: &str) {
18631863
// Added in API level 28, but some tests use level 24.
18641864
"syncfs" => true,
18651865

1866+
// Added in API level 28, but some tests use level 24.
1867+
"fread_unlocked" | "fwrite_unlocked" | "fgets_unlocked" => true,
1868+
18661869
_ => false,
18671870
}
18681871
});

libc-test/semver/android.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3087,6 +3087,7 @@ ff_trigger
30873087
fgetc
30883088
fgetpos
30893089
fgets
3090+
fgets_unlocked
30903091
fgetxattr
30913092
fileno
30923093
flistxattr
@@ -3102,6 +3103,7 @@ fprintf
31023103
fputc
31033104
fputs
31043105
fread
3106+
fread_unlocked
31053107
free
31063108
freeaddrinfo
31073109
freeifaddrs
@@ -3130,6 +3132,7 @@ ftruncate
31303132
ftruncate64
31313133
futimens
31323134
fwrite
3135+
fwrite_unlocked
31333136
gai_strerror
31343137
genlmsghdr
31353138
getaddrinfo

src/unix/linux_like/android/mod.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3678,6 +3678,20 @@ extern "C" {
36783678
needle: *const ::c_void,
36793679
needlelen: ::size_t,
36803680
) -> *mut ::c_void;
3681+
pub fn fread_unlocked(
3682+
buf: *mut ::c_void,
3683+
size: ::size_t,
3684+
nobj: ::size_t,
3685+
stream: *mut ::FILE,
3686+
) -> ::size_t;
3687+
pub fn fwrite_unlocked(
3688+
buf: *const ::c_void,
3689+
size: ::size_t,
3690+
nobj: ::size_t,
3691+
stream: *mut ::FILE,
3692+
) -> ::size_t;
3693+
pub fn fflush_unlocked(stream: *mut ::FILE) -> ::c_int;
3694+
pub fn fgets_unlocked(buf: *mut ::c_char, size: ::c_int, stream: *mut ::FILE) -> *mut ::c_char;
36813695
}
36823696

36833697
cfg_if! {

src/unix/linux_like/linux/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4764,7 +4764,7 @@ extern "C" {
47644764
newfd: ::c_int,
47654765
) -> ::c_int;
47664766
pub fn fread_unlocked(
4767-
ptr: *mut ::c_void,
4767+
buf: *mut ::c_void,
47684768
size: ::size_t,
47694769
nobj: ::size_t,
47704770
stream: *mut ::FILE,

0 commit comments

Comments
 (0)