Skip to content

Commit 2ec7bf0

Browse files
committed
android add handful lock free stdio calls
1 parent c393de3 commit 2ec7bf0

File tree

4 files changed

+20
-1
lines changed

4 files changed

+20
-1
lines changed

libc-test/build.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1883,6 +1883,8 @@ fn test_android(target: &str) {
18831883

18841884
// Added in API level 28, but some tests use level 24.
18851885
"pthread_attr_getinheritsched" | "pthread_attr_setinheritsched" => true,
1886+
// Added in API level 28, but some tests use level 24.
1887+
"fread_unlocked" | "fwrite_unlocked" | "fgets_unlocked" => true,
18861888

18871889
_ => false,
18881890
}

libc-test/semver/android.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3101,6 +3101,7 @@ ff_trigger
31013101
fgetc
31023102
fgetpos
31033103
fgets
3104+
fgets_unlocked
31043105
fgetxattr
31053106
fileno
31063107
flistxattr
@@ -3116,6 +3117,7 @@ fprintf
31163117
fputc
31173118
fputs
31183119
fread
3120+
fread_unlocked
31193121
free
31203122
freeaddrinfo
31213123
freeifaddrs
@@ -3144,6 +3146,7 @@ ftruncate
31443146
ftruncate64
31453147
futimens
31463148
fwrite
3149+
fwrite_unlocked
31473150
gai_strerror
31483151
genlmsghdr
31493152
getaddrinfo

src/unix/linux_like/android/mod.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3710,6 +3710,20 @@ extern "C" {
37103710
needle: *const ::c_void,
37113711
needlelen: ::size_t,
37123712
) -> *mut ::c_void;
3713+
pub fn fread_unlocked(
3714+
buf: *mut ::c_void,
3715+
size: ::size_t,
3716+
nobj: ::size_t,
3717+
stream: *mut ::FILE,
3718+
) -> ::size_t;
3719+
pub fn fwrite_unlocked(
3720+
buf: *const ::c_void,
3721+
size: ::size_t,
3722+
nobj: ::size_t,
3723+
stream: *mut ::FILE,
3724+
) -> ::size_t;
3725+
pub fn fflush_unlocked(stream: *mut ::FILE) -> ::c_int;
3726+
pub fn fgets_unlocked(buf: *mut ::c_char, size: ::c_int, stream: *mut ::FILE) -> *mut ::c_char;
37133727
}
37143728

37153729
cfg_if! {

src/unix/linux_like/linux/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4770,7 +4770,7 @@ extern "C" {
47704770
newfd: ::c_int,
47714771
) -> ::c_int;
47724772
pub fn fread_unlocked(
4773-
ptr: *mut ::c_void,
4773+
buf: *mut ::c_void,
47744774
size: ::size_t,
47754775
nobj: ::size_t,
47764776
stream: *mut ::FILE,

0 commit comments

Comments
 (0)