Skip to content

Glossary

IOPM (IOKit Power Management)

The framework IOKit drivers use to declare their power states and coordinate sleep/wake with the rest of the system.

IOPM — IOKit Power Management — is the framework every IOKit driver uses to participate in macOS power management. Each driver declares a power state table: the states it supports (off, low, idle, on, etc.), the capabilities each state provides, the cost in milliwatts, and the latency to transition between states.

apple-oss-distributions/xnuiokit/Kernel/IOServicePM.cppThe service-side power management — every driver's interface to IOPM.View on GitHub(line )

The IORegistry doubles as the power graph: a child node's power needs trickle up to its power parent. When the system decides to sleep, IOPM walks the tree backward telling every device to drop power; on wake it walks forward.

Drivers can veto sleep requests by returning kIOReturnNotReady — the rationale shows up in the kernel log. pmset -g assertions lists every active veto and which process holds it.

The orchestrator at the top of the tree is IOPMrootDomain.

See also: IOPMrootDomain, IOKit, and the power management article.