authorgravatar for devnexen@gmail.comDavid Carlier <devnexen@gmail.com> 2023-03-27 22:07:29+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-04-05 09:01:35+02:00
logf86f531e9c3878089d13ac48505a9e8845f81f28
tree965fae0a0464815e81c93b9bce488c08664576de
parentad5fb4879b03267f196004a78762de7be3b03de7

std: add a subset of the apple's QOS api


1 files changed, 19 insertions(+), 0 deletions(-)

lib/std/c/darwin.zig+19
...@@ -853,6 +853,21 @@ pub const EAI = enum(c_int) {...@@ -853,6 +853,21 @@ pub const EAI = enum(c_int) {
853853
854pub const EAI_MAX = 15;854pub const EAI_MAX = 15;
855855
856pub const qos_class_t = enum(c_uint) {
857 /// highest priority QOS class for critical tasks
858 QOS_CLASS_USER_INTERACTIVE = 0x21,
859 /// slightly more moderate priority QOS class
860 QOS_CLASS_USER_INITIATED = 0x19,
861 /// default QOS class when none is set
862 QOS_CLASS_DEFAULT = 0x15,
863 /// more energy efficient QOS class than default
864 QOS_CLASS_UTILITY = 0x11,
865 /// QOS class more appropriate for background tasks
866 QOS_CLASS_BACKGROUND = 0x09,
867 /// QOS class as a return value
868 QOS_CLASS_UNSPECIFIED = 0x00,
869};
870
856pub const pthread_mutex_t = extern struct {871pub const pthread_mutex_t = extern struct {
857 __sig: c_long = 0x32AAABA7,872 __sig: c_long = 0x32AAABA7,
858 __opaque: [__PTHREAD_MUTEX_SIZE__]u8 = [_]u8{0} ** __PTHREAD_MUTEX_SIZE__,873 __opaque: [__PTHREAD_MUTEX_SIZE__]u8 = [_]u8{0} ** __PTHREAD_MUTEX_SIZE__,
...@@ -877,6 +892,10 @@ pub const pthread_attr_t = extern struct {...@@ -877,6 +892,10 @@ pub const pthread_attr_t = extern struct {
877pub extern "c" fn pthread_threadid_np(thread: ?std.c.pthread_t, thread_id: *u64) c_int;892pub extern "c" fn pthread_threadid_np(thread: ?std.c.pthread_t, thread_id: *u64) c_int;
878pub extern "c" fn pthread_setname_np(name: [*:0]const u8) E;893pub extern "c" fn pthread_setname_np(name: [*:0]const u8) E;
879pub extern "c" fn pthread_getname_np(thread: std.c.pthread_t, name: [*:0]u8, len: usize) E;894pub extern "c" fn pthread_getname_np(thread: std.c.pthread_t, name: [*:0]u8, len: usize) E;
895pub extern "c" fn pthread_attr_set_qos_class_np(attr: *pthread_attr_t, qos_class: qos_class_t, relative_priority: c_int) c_int;
896pub extern "c" fn pthread_attr_get_qos_class_np(attr: *pthread_attr_t, qos_class: *qos_class_t, relative_priority: *c_int) c_int;
897pub extern "c" fn pthread_set_qos_class_self_np(qos_class: qos_class_t, relative_priority: c_int) c_int;
898pub extern "c" fn pthread_get_qos_class_np(pthread: std.c.pthread_t, qos_class: *qos_class_t, relative_priority: *c_int) c_int;
880899
881pub extern "c" fn arc4random_buf(buf: [*]u8, len: usize) void;900pub extern "c" fn arc4random_buf(buf: [*]u8, len: usize) void;
882901