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.