From 2889e1c26f3b8976ccffa3471e24cf2ea2bd3574 Mon Sep 17 00:00:00 2001 From: ncerzzk Date: Fri, 17 Nov 2023 21:00:48 +0800 Subject: [PATCH] add more pthread_attr functions and related constants: pthread_attr_getinheritsched pthread_attr_setinheritsched pthread_attr_getschedpolicy pthread_attr_setschedpolicy pthread_attr_getschedparam pthread_attr_setschedparam PTHREAD_INHERIT_SCHED PTHREAD_EXPLICIT_SCHED --- libc-test/semver/linux.txt | 8 ++++++++ src/unix/linux_like/linux/mod.rs | 23 +++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/libc-test/semver/linux.txt b/libc-test/semver/linux.txt index fa74075e418a0..37aab57f23ee3 100644 --- a/libc-test/semver/linux.txt +++ b/libc-test/semver/linux.txt @@ -1986,6 +1986,8 @@ PTHREAD_PRIO_INHERIT PTHREAD_PRIO_PROTECT PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_SHARED +PTHREAD_INHERIT_SCHED +PTHREAD_EXPLICIT_SCHED PTHREAD_STACK_MIN PTHREAD_ONCE_INIT PTRACE_ATTACH @@ -3655,6 +3657,12 @@ priority_t pread64 preadv pthread_attr_getguardsize +pthread_attr_getinheritsched +pthread_attr_setinheritsched +pthread_attr_getschedpolicy +pthread_attr_setschedpolicy +pthread_attr_getschedparam +pthread_attr_setschedparam pthread_attr_getstack pthread_attr_setguardsize pthread_cancel diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 5d5b7c119e0af..186c740e7e110 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2000,6 +2000,8 @@ pub const PTHREAD_PRIO_INHERIT: ::c_int = 1; pub const PTHREAD_PRIO_PROTECT: ::c_int = 2; pub const PTHREAD_PROCESS_PRIVATE: ::c_int = 0; pub const PTHREAD_PROCESS_SHARED: ::c_int = 1; +pub const PTHREAD_INHERIT_SCHED: ::c_int = 0; +pub const PTHREAD_EXPLICIT_SCHED: ::c_int = 1; pub const __SIZEOF_PTHREAD_COND_T: usize = 48; pub const RENAME_NOREPLACE: ::c_uint = 1; @@ -5179,6 +5181,27 @@ extern "C" { guardsize: *mut ::size_t, ) -> ::c_int; pub fn pthread_attr_setguardsize(attr: *mut ::pthread_attr_t, guardsize: ::size_t) -> ::c_int; + pub fn pthread_attr_getinheritsched( + attr: *const ::pthread_attr_t, + inheritsched: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_attr_setinheritsched( + attr: *mut ::pthread_attr_t, + inheritsched: ::c_int, + ) -> ::c_int; + pub fn pthread_attr_getschedpolicy( + attr: *const ::pthread_attr_t, + policy: *mut ::c_int, + ) -> ::c_int; + pub fn pthread_attr_setschedpolicy(attr: *mut ::pthread_attr_t, policy: ::c_int) -> ::c_int; + pub fn pthread_attr_getschedparam( + attr: *const ::pthread_attr_t, + param: *mut ::sched_param, + ) -> ::c_int; + pub fn pthread_attr_setschedparam( + attr: *mut ::pthread_attr_t, + param: *const ::sched_param, + ) -> ::c_int; pub fn sethostname(name: *const ::c_char, len: ::size_t) -> ::c_int; pub fn sched_get_priority_min(policy: ::c_int) -> ::c_int; pub fn pthread_condattr_getpshared(