Skip to content
BSD syscall#512

svc · unix #512

__channel_sync

Synchronizes a Skywalk channel with the kernel, publishing produced slots and reaping completed ones.

Prototype

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

Returns: int

Arguments

NameTypeDirDescription
cint-
modeint-
flagsint-

Version history

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.9—512
xnu-10002.61.3—512
xnu-10002.81.5—512
xnu-10063.101.15—512
xnu-10063.121.3—512
xnu-10063.141.1—512
xnu-11215.41.3—512
xnu-11215.61.5—512
xnu-11215.81.4—512
xnu-11417.121.6—512
xnu-11417.140.69—512
xnu-12377.101.15—512
xnu-12377.41.6—512
xnu-12377.61.12—512
xnu-12377.81.4—512
xnu-8019.80.24—512
xnu-8020.101.4—512
xnu-8020.121.3—512
xnu-8020.140.41—512
xnu-8792.61.2—512
xnu-8792.81.2—512
xnu-8796.101.5—512
xnu-8796.121.2—512
xnu-8796.141.3—512

Notes

The hot-path syscall of Skywalk: after writing packet metadata into shared-memory rings, user space calls __channel_sync to hand the slots to the nexus, and reads back completion indices for the rx ring. Conceptually similar to Linux's io_uring submit/complete or netmap's NIOCTXSYNC/NIOCRXSYNC. Apple's Network.framework batches dozens of packets per call to amortize the cost.

Detection

Per-packet visibility belongs to the nexus operator (kernel) or to a DriverKit network extension hooked into the same nexus. ES is blind here.

Related APIs

__channel_open__channel_get_infosendmsg_xrecvmsg_x