Skip to content
Syscall BSD#363

svc · unix #363

kevent

Appel classique de soumission et récupération kqueue utilisant struct kevent.

Prototype

int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout);

Retour: int

Arguments

NameTypeDirDescription
fdint-
changelistconst struct kevent-
nchangesint-
eventliststruct kevent-
neventsint-
timeoutconst struct timespec-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard363
xnu-1699.24.8macOS 10.7 Lion363
xnu-2050.18.24macOS 10.8 Mountain Lion363
xnu-2422.115.4macOS 10.9 Mavericks363
xnu-2782.40.9macOS 10.10 Yosemite363
xnu-3247.1.106macOS 10.11 El Capitan363
xnu-3789.1.32macOS 10.12 Sierra363
xnu-4570.1.46macOS 10.13 High Sierra363
xnu-4903.221.2macOS 10.14 Mojave363
xnu-6153.11.26macOS 10.15 Catalina363
xnu-7195.50.7.100.1macOS 11.0 Big Sur363
xnu-8019.41.5macOS 12.0 Monterey363
xnu-8792.41.9macOS 13.0 Ventura363
xnu-10002.1.13macOS 14.0 Sonoma363
xnu-11215.1.10macOS 15.0 Sequoia363
xnu-11417.101.15macOS 15.4 Sequoia363
xnu-12377.1.9macOS 26.0 Tahoe363
xnu-10002.41.9363
xnu-10002.61.3363
xnu-10002.81.5363
xnu-10063.101.15363
xnu-10063.121.3363
xnu-10063.141.1363
xnu-11215.41.3363
xnu-11215.61.5363
xnu-11215.81.4363
xnu-11417.121.6363
xnu-11417.140.69363
xnu-12377.101.15363
xnu-12377.41.6363
xnu-12377.61.12363
xnu-12377.81.4363
xnu-1486.2.11363
xnu-1504.15.3363
xnu-1504.3.12363
xnu-1504.7.4363
xnu-1504.9.17363
xnu-1504.9.26363
xnu-1504.9.37363
xnu-1699.22.73363
xnu-1699.22.81363
xnu-1699.24.23363
xnu-1699.26.8363
xnu-1699.32.7363
xnu-2050.22.13363
xnu-2050.24.15363
xnu-2050.48.11363
xnu-2050.7.9363
xnu-2050.9.2363
xnu-2422.1.72363
xnu-2422.100.13363
xnu-2422.110.17363
xnu-2422.90.20363
xnu-2782.1.97363
xnu-2782.10.72363
xnu-2782.20.48363
xnu-2782.30.5363
xnu-3247.10.11363
xnu-3248.20.55363
xnu-3248.30.4363
xnu-3248.40.184363
xnu-3248.50.21363
xnu-3248.60.10363
xnu-3789.21.4363
xnu-3789.31.2363
xnu-3789.41.3363
xnu-3789.51.2363
xnu-3789.60.24363
xnu-3789.70.16363
xnu-4570.20.62363
xnu-4570.31.3363
xnu-4570.41.2363
xnu-4570.51.1363
xnu-4570.61.1363
xnu-4570.71.2363
xnu-4903.231.4363
xnu-4903.241.1363
xnu-4903.270.47363
xnu-6153.101.6363
xnu-6153.121.1363
xnu-6153.141.1363
xnu-6153.41.3363
xnu-6153.61.1363
xnu-6153.81.5363
xnu-7195.101.1363
xnu-7195.121.3363
xnu-7195.141.2363
xnu-7195.60.75363
xnu-7195.81.3363
xnu-8019.61.5363
xnu-8019.80.24363
xnu-8020.101.4363
xnu-8020.121.3363
xnu-8020.140.41363
xnu-8792.61.2363
xnu-8792.81.2363
xnu-8796.101.5363
xnu-8796.121.2363
xnu-8796.141.3363

Notes

kevent(kq, changes, nchanges, events, nevents, timeout) est la moitié laborieuse de kqueue : enregistrer des filtres via la changelist, drainer les événements prêts via l'eventlist. C'est le point d'entrée plus petit commun dénominateur, sur lequel le runloop de libdispatch reposait avant 10.10. Le nouveau code devrait préférer kevent_qos pour la propagation de QoS.

Détection

Les enregistrements EVFILT_PROC, EVFILT_VNODE et EVFILT_SIGNAL depuis des processus non-IDE méritent d'être signalés — c'est ainsi que les implants espionnent les cycles de vie de PIDs ou surveillent des dépôts de fichiers sans polling. Le fournisseur DTrace kevent::: expose des sondes par filtre.

API associées

kqueuekevent64kevent_qoskevent_iddispatch_source_create