Skip to content
BSD syscall#374

svc · unix #374

kevent_qos

kevent variant carrying QoS class and override information per event.

Prototype

int kevent_qos(int fd, const struct kevent_qos_s *changelist, int nchanges, struct kevent_qos_s *eventlist, int nevents, void *data_out, size_t *data_available, unsigned int flags);

Returns: int

Arguments

NameTypeDirDescription
fdint-
changelistconst struct kevent_qos_s-
nchangesint-
eventliststruct kevent_qos_s-
neventsint-
data_outvoid-
data_availablesize_t-
flagsunsigned int-

Version history

XNU tagmacOS#
xnu-3247.1.106macOS 10.11 El Capitan374
xnu-3789.1.32macOS 10.12 Sierra374
xnu-4570.1.46macOS 10.13 High Sierra374
xnu-4903.221.2macOS 10.14 Mojave374
xnu-6153.11.26macOS 10.15 Catalina374
xnu-7195.50.7.100.1macOS 11.0 Big Sur374
xnu-8019.41.5macOS 12.0 Monterey374
xnu-8792.41.9macOS 13.0 Ventura374
xnu-10002.1.13macOS 14.0 Sonoma374
xnu-11215.1.10macOS 15.0 Sequoia374
xnu-11417.101.15macOS 15.4 Sequoia374
xnu-12377.1.9macOS 26.0 Tahoe374
xnu-10002.41.9374
xnu-10002.61.3374
xnu-10002.81.5374
xnu-10063.101.15374
xnu-10063.121.3374
xnu-10063.141.1374
xnu-11215.41.3374
xnu-11215.61.5374
xnu-11215.81.4374
xnu-11417.121.6374
xnu-11417.140.69374
xnu-12377.101.15374
xnu-12377.41.6374
xnu-12377.61.12374
xnu-12377.81.4374
xnu-3247.10.11374
xnu-3248.20.55374
xnu-3248.30.4374
xnu-3248.40.184374
xnu-3248.50.21374
xnu-3248.60.10374
xnu-3789.21.4374
xnu-3789.31.2374
xnu-3789.41.3374
xnu-3789.51.2374
xnu-3789.60.24374
xnu-3789.70.16374
xnu-4570.20.62374
xnu-4570.31.3374
xnu-4570.41.2374
xnu-4570.51.1374
xnu-4570.61.1374
xnu-4570.71.2374
xnu-4903.231.4374
xnu-4903.241.1374
xnu-4903.270.47374
xnu-6153.101.6374
xnu-6153.121.1374
xnu-6153.141.1374
xnu-6153.41.3374
xnu-6153.61.1374
xnu-6153.81.5374
xnu-7195.101.1374
xnu-7195.121.3374
xnu-7195.141.2374
xnu-7195.60.75374
xnu-7195.81.3374
xnu-8019.61.5374
xnu-8019.80.24374
xnu-8020.101.4374
xnu-8020.121.3374
xnu-8020.140.41374
xnu-8792.61.2374
xnu-8792.81.2374
xnu-8796.101.5374
xnu-8796.121.2374
xnu-8796.141.3374

Notes

kevent_qos is the modern path used by libdispatch and Foundation runloops since macOS 10.12. The extra qos argument lets the kernel promote the worker thread serving the event to the appropriate QoS class, which is essential for energy efficiency and priority inheritance. The struct kevent_qos_s replaces kevent64_s with explicit QoS and ext-buffer fields.

Detection

Dominant variant in modern process traces; absence of kevent_qos in a long-running daemon suggests hand-rolled event loops worth investigating. DTrace kevent::: applies.

Related APIs

keventkevent64kevent_idkqueuedispatch_source_create