Skip to content
Syscall BSD#512

svc · unix #512

__channel_sync

Synchronise un canal Skywalk avec le noyau, publiant les emplacements produits et récupérant ceux qui sont complétés.

Prototype

int __channel_sync(int c, int mode, int flags);

Retour: int

Arguments

NameTypeDirDescription
cint-
modeint-
flagsint-

Historique des versions

XNU tagmacOS#
xnu-8792.41.9macOS 13.0 Ventura512
xnu-10002.1.13macOS 14.0 Sonoma512
xnu-11215.1.10macOS 15.0 Sequoia512
xnu-11417.101.15macOS 15.4 Sequoia512
xnu-12377.1.9macOS 26.0 Tahoe512
xnu-10002.41.9512
xnu-10002.61.3512
xnu-10002.81.5512
xnu-10063.101.15512
xnu-10063.121.3512
xnu-10063.141.1512
xnu-11215.41.3512
xnu-11215.61.5512
xnu-11215.81.4512
xnu-11417.121.6512
xnu-11417.140.69512
xnu-12377.101.15512
xnu-12377.41.6512
xnu-12377.61.12512
xnu-12377.81.4512
xnu-8019.80.24512
xnu-8020.101.4512
xnu-8020.121.3512
xnu-8020.140.41512
xnu-8792.61.2512
xnu-8792.81.2512
xnu-8796.101.5512
xnu-8796.121.2512
xnu-8796.141.3512

Notes

L'appel système de chemin chaud de Skywalk : après avoir écrit les métadonnées de paquets dans les anneaux en mémoire partagée, l'espace utilisateur appelle __channel_sync pour remettre les emplacements au nexus, et relit les indices de complétion pour l'anneau rx. Conceptuellement similaire au submit/complete d'io_uring sous Linux ou aux NIOCTXSYNC/NIOCRXSYNC de netmap. Network.framework d'Apple groupe des dizaines de paquets par appel pour amortir le coût.

Détection

La visibilité paquet par paquet appartient à l'opérateur du nexus (noyau) ou à une extension réseau DriverKit accrochée au même nexus. ES est aveugle ici.

API associées

__channel_open__channel_get_infosendmsg_xrecvmsg_x