From 1914ae894e1f54909425292f4af71d14f1eb29c1 Mon Sep 17 00:00:00 2001 From: Marco A L Barbosa Date: Fri, 6 Dec 2019 17:02:33 -0300 Subject: [PATCH] Add qsort, qsort_r and bsearch --- src/unix/linux_like/linux/gnu/mod.rs | 13 +++++++++++++ src/unix/mod.rs | 17 +++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 80a1c4eab5157..8d898812ad32c 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -894,6 +894,19 @@ cfg_if! { pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3; extern "C" { + pub fn qsort_r( + base: *mut ::c_void, + num: ::size_t, + size: ::size_t, + compar: ::Option< + unsafe extern "C" fn( + *const ::c_void, + *const ::c_void, + *mut ::c_void, + ) -> ::c_int, + >, + arg: *mut ::c_void, + ); pub fn sendmmsg( sockfd: ::c_int, msgvec: *mut ::mmsghdr, diff --git a/src/unix/mod.rs b/src/unix/mod.rs index 238da24b51e3d..ad0217f2aa8dd 100644 --- a/src/unix/mod.rs +++ b/src/unix/mod.rs @@ -388,6 +388,23 @@ extern "C" { pub fn isblank(c: c_int) -> c_int; pub fn tolower(c: c_int) -> c_int; pub fn toupper(c: c_int) -> c_int; + pub fn qsort( + base: *mut c_void, + num: size_t, + size: size_t, + compar: ::Option< + unsafe extern "C" fn(*const c_void, *const c_void) -> c_int, + >, + ); + pub fn bsearch( + key: *const c_void, + base: *const c_void, + num: size_t, + size: size_t, + compar: ::Option< + unsafe extern "C" fn(*const c_void, *const c_void) -> c_int, + >, + ) -> *mut c_void; #[cfg_attr( all(target_os = "macos", target_arch = "x86"), link_name = "fopen$UNIX2003"