]> git.saurik.com Git - apple/xnu.git/blame - iokit/IOKit/pwr_mgt/IOPMPrivate.h
xnu-3247.1.106.tar.gz
[apple/xnu.git] / iokit / IOKit / pwr_mgt / IOPMPrivate.h
CommitLineData
d52fe63f
A
1/*
2 * Copyright (c) 2002 Apple Computer, Inc. All rights reserved.
3 *
2d21ac55 4 * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
d52fe63f 5 *
2d21ac55
A
6 * This file contains Original Code and/or Modifications of Original Code
7 * as defined in and that are subject to the Apple Public Source License
8 * Version 2.0 (the 'License'). You may not use this file except in
9 * compliance with the License. The rights granted to you under the License
10 * may not be used to create, or enable the creation or redistribution of,
11 * unlawful or unlicensed copies of an Apple operating system, or to
12 * circumvent, violate, or enable the circumvention or violation of, any
13 * terms of an Apple operating system software license agreement.
8f6c56a5 14 *
2d21ac55
A
15 * Please obtain a copy of the License at
16 * http://www.opensource.apple.com/apsl/ and read it before using this file.
17 *
18 * The Original Code and all software distributed under the License are
19 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
8f6c56a5
A
20 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
21 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
2d21ac55
A
22 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
23 * Please see the License for the specific language governing rights and
24 * limitations under the License.
8f6c56a5 25 *
2d21ac55 26 * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
d52fe63f
A
27 */
28#ifndef _IOKIT_IOPMPRIVATE_H
29#define _IOKIT_IOPMPRIVATE_H
30
31#include <IOKit/pwr_mgt/IOPM.h>
32
6d2010ae
A
33/* @constant kIOPMEventTypeIntermediateFlag
34 * @abstract This bit indicates the event is an intermediate event
35 * which must occur within a major system power event.
36 */
37#define kIOPMEventTypeIntermediateFlag 0x10000000
38
39/* @enum SystemEventTypes
40 * @abstract Potential system events logged in the system event record.
41 */
42enum {
39236c6e 43 kIOPMEventTypeUndefined = 0,
6d2010ae 44
fe8ab488 45 /* Event types mark driver events
6d2010ae
A
46 */
47 kIOPMEventTypeSetPowerStateImmediate = 1001,
48 kIOPMEventTypeSetPowerStateDelayed = 1002,
49 kIOPMEventTypePSWillChangeTo = 1003,
50 kIOPMEventTypePSDidChangeTo = 1004,
51 kIOPMEventTypeAppResponse = 1005,
52
53
54 /* Start and stop event types bracket major
55 * system power management events.
56 */
39236c6e
A
57 kIOPMEventTypeSleep = 2001,
58 kIOPMEventTypeSleepDone = 2002,
59 kIOPMEventTypeWake = 3001,
60 kIOPMEventTypeWakeDone = 3002,
61 kIOPMEventTypeDoze = 4001,
62 kIOPMEventTypeDozeDone = 4002,
39236c6e
A
63 kIOPMEventTypeUUIDSet = 6001,
64 kIOPMEventTypeUUIDClear = 6002,
6d2010ae
A
65
66 /* Intermediate events that may only occur within the bounds
67 * of a major system event (between the event's initiation and its "done event".)
68 * e.g. chronologically kIOPMEventTypeSleep may be followed by one or more
69 * intermediate events, which then must be followed by kIOPMEventTypeSleepDone.
70 *
71 * The intermediate events below will always occur in a Sleep or Wake event, and may
72 * or may not occur for any of the other events.
73 */
74 kIOPMEventTypeAppNotificationsFinished = 501 | kIOPMEventTypeIntermediateFlag,
75 kIOPMEventTypeDriverNotificationsFinished = 502 | kIOPMEventTypeIntermediateFlag,
76 kIOPMEventTypeCalTimeChange = 503 | kIOPMEventTypeIntermediateFlag
77};
78
39236c6e
A
79/*****************************************************************************
80 *
81 * Private Root Domain general interest messages
82 *
83 * Check IOPM.h when adding new messages to avoid conflict.
84 *
85 *****************************************************************************/
86
fe8ab488 87/* kIOPMMessageUserIsActiveChanged
39236c6e
A
88 * User became active or inactive. Message sent after the kIOPMUserIsActiveKey
89 * property was updated with a new value.
fe8ab488 90 */
39236c6e
A
91#define kIOPMMessageUserIsActiveChanged \
92 iokit_family_msg(sub_iokit_powermanagement, 0x400)
6d2010ae 93
39236c6e
A
94/*
95 * Private IOMessage notifications shared between kernel and userspace PM policy
96 */
97#define kIOPMMessageLastCallBeforeSleep \
98 iokit_family_msg(sub_iokit_powermanagement, 0x410)
99
3e170ce0
A
100#define kIOPMMessageIdleSleepPreventers \
101 iokit_family_msg(sub_iokit_powermanagement, 0x420)
102
103#define kIOPMMessageSystemSleepPreventers \
104 iokit_family_msg(sub_iokit_powermanagement, 0x430)
105
39236c6e 106/* @enum SystemSleepReasons
6d2010ae
A
107 * @abstract The potential causes for system sleep as logged in the system event record.
108 */
109enum {
110 kIOPMSleepReasonClamshell = 101,
111 kIOPMSleepReasonPowerButton = 102,
112 kIOPMSleepReasonSoftware = 103,
113 kIOPMSleepReasonOSSwitchHibernate = 104,
114 kIOPMSleepReasonIdle = 105,
115 kIOPMSleepReasonLowPower = 106,
116 kIOPMSleepReasonThermalEmergency = 107,
7ddcb079 117 kIOPMSleepReasonMaintenance = 108,
316670eb
A
118 kIOPMSleepReasonSleepServiceExit = 109,
119 kIOPMSleepReasonDarkWakeThermalEmergency = 110
6d2010ae
A
120};
121
122/*
123 * Possible C-string sleep reasons found under kRootDomainSleepReasonsKey
124 */
125#define kIOPMClamshellSleepKey "Clamshell Sleep"
126#define kIOPMPowerButtonSleepKey "Power Button Sleep"
127#define kIOPMSoftwareSleepKey "Software Sleep"
128#define kIOPMOSSwitchHibernationKey "OS Switch Sleep"
129#define kIOPMIdleSleepKey "Idle Sleep"
130#define kIOPMLowPowerSleepKey "Low Power Sleep"
131#define kIOPMThermalEmergencySleepKey "Thermal Emergency Sleep"
7ddcb079 132#define kIOPMSleepServiceExitKey "Sleep Service Back to Sleep"
316670eb 133#define kIOPMDarkWakeThermalEmergencyKey "Dark Wake Thermal Emergency"
6d2010ae 134
fe8ab488
A
135/*! kIOPMPSRestrictedModeKey
136 * An IOPMPowerSource property key
137 * Its property has an integer value.
138 * - value = 1 when the device is in a low power state and not fully functional.
139 * - value = 0, or property missing altogether, when the device is
140 * not in a restricted mode power state.
141*/
142#define kIOPMPSRestrictedModeKey "RestrictedMode"
6d2010ae
A
143
144#pragma mark Stray Bitfields
d52fe63f
A
145// Private power commands issued to root domain
146// bits 0-7 in IOPM.h
147
148enum {
b0d623f7 149 kIOPMSetValue = (1<<16),
d52fe63f 150 // don't sleep on clamshell closure on a portable with AC connected
b0d623f7 151 kIOPMSetDesktopMode = (1<<17),
d52fe63f 152 // set state of AC adaptor connected
b0d623f7 153 kIOPMSetACAdaptorConnected = (1<<18)
d52fe63f
A
154};
155
b0d623f7
A
156/*****************************************************************************/
157/*****************************************************************************/
158
593a1d5f
A
159/*
160 * PM notification types
161 */
162
7ddcb079
A
163/*! @constant kIOPMSleepServiceScheduleImmediate
164 *
165 * Setting type used in calls to IOPMrootDomain::registerPMSettingController
166 * Use this type between powerd and IOKit.framework
167 *
168 */
169#define kIOPMSleepServiceScheduleImmediate "SleepServiceImmediate"
170
171/*! @constant kIOPMSettingSleepServiceScheduleImmediate
172 *
173 * Setting type used in calls to IOPMrootDomain::registerPMSettingController
174 * Use this type between xnu and AppleRTC
175 */
176#define kIOPMSettingSleepServiceWakeCalendarKey "SleepServiceWakeCalendarKey"
177
fe8ab488 178/*! @constant kIOPMCalendarWakeTypes
7ddcb079
A
179 *
180 * These are valid values for IOPM.h:IOPMCalendarStruct->selector
181 */
182enum {
183 kPMCalendarTypeMaintenance = 1,
184 kPMCalendarTypeSleepService = 2
185};
186
187
188/* @constant kIOPMStateConsoleShutdown
593a1d5f
A
189 * @abstract Notification of GUI shutdown state available to kexts.
190 * @discussion This type can be passed as arguments to registerPMSettingController()
191 * to receive callbacks.
192 */
193#define kIOPMStateConsoleShutdown "ConsoleShutdown"
194
195/* @enum ShutdownValues
7ddcb079 196 * @abstract Potential values shared with key kIOPMStateConsoleShutdown
593a1d5f
A
197 */
198enum {
199/* @constant kIOPMStateConsoleShutdownNone
200 * @abstract System shutdown (or restart) hasn't started; system is ON.
201 * @discussion Next state: 2
202 */
203 kIOPMStateConsoleShutdownNone = 1,
204/* @constant kIOPMStateConsoleShutdownPossible
205 * @abstract User has been presented with the option to shutdown or restart. Shutdown may be cancelled.
206 * @discussion Next state may be: 1, 4
207 */
208 kIOPMStateConsoleShutdownPossible = 2,
209/* @constant kIOPMStateConsoleShutdownUnderway
210 * @abstract Shutdown or restart is proceeding. It may still be cancelled.
211 * @discussion Next state may be: 1, 4. This state is currently unused.
212 */
213 kIOPMStateConsoleShutdownUnderway = 3,
214/* @constant kIOPMStateConsoleShutdownCertain
215 * @abstract Shutdown is in progress and irrevocable.
216 * @discussion State remains 4 until power is removed from CPU.
217 */
fe8ab488
A
218 kIOPMStateConsoleShutdownCertain = 4,
219/* @constant kIOPMStateConsoleSULogoutInitiated
220 Indicates that LoginWindow has initiated a software update restart.
221 The next logout will not immediately lead to a shutdown.
222 */
223 kIOPMStateConsoleSULogoutInitiated = 5
593a1d5f
A
224};
225
7ddcb079
A
226/* @constant kIOPMSettingSilentRunningKey
227 * @abstract Notification of silent running mode changes to kexts.
228 * @discussion This key can be passed as an argument to registerPMSettingController()
229 * and also identifies the type of PMSetting notification callback.
230 */
231#define kIOPMSettingSilentRunningKey "SilentRunning"
232#define kIOPMFeatureSilentRunningKey kIOPMSettingSilentRunningKey
233
234/* @enum SilentRunningFlags
235 * @abstract The kIOPMSettingSilentRunningKey notification provides an OSNumber
236 * object with a value described by the following flags.
237 */
238enum {
239 kIOPMSilentRunningModeOn = 0x00000001
240};
241
b0d623f7
A
242/*****************************************************************************/
243/*****************************************************************************/
244
fe8ab488 245/* PM Statistics - event indices
b0d623f7
A
246 * These are arguments to IOPMrootDomain::pmStatsRecordEvent().
247 */
248enum {
249 kIOPMStatsHibernateImageWrite = 1,
250 kIOPMStatsHibernateImageRead,
251 kIOPMStatsDriversNotify,
252 kIOPMStatsApplicationNotify,
253 kIOPMStatsLateDriverAcknowledge,
254 kIOPMStatsLateAppAcknowledge,
fe8ab488
A
255
256 // To designate if you're specifying the start or stop end of
b0d623f7
A
257 // each of the above events, do a bitwise OR of the appropriate
258 // Start/Stop flag and pass the result to IOPMrootDomain to record
259 // the event.
260 kIOPMStatsEventStartFlag = (1 << 24),
261 kIOPMStatsEventStopFlag = (1 << 25)
262};
263
264// Keys for IOPMrootDomain registry properties
265#define kIOPMSleepStatisticsKey "SleepStatistics"
266#define kIOPMSleepStatisticsAppsKey "AppStatistics"
3e170ce0
A
267#define kIOPMIdleSleepPreventersKey "IdleSleepPreventers"
268#define kIOPMSystemSleepPreventersKey "SystemSleepPreventers"
b0d623f7
A
269
270// Application response statistics
271#define kIOPMStatsNameKey "Name"
272#define kIOPMStatsPIDKey "Pid"
273#define kIOPMStatsTimeMSKey "TimeMS"
274#define kIOPMStatsApplicationResponseTypeKey "ResponseType"
275#define kIOPMStatsMessageTypeKey "MessageType"
39236c6e 276#define kIOPMStatsPowerCapabilityKey "PowerCaps"
fe8ab488
A
277#define kIOPMStatsSystemTransitionKey "TransitionType"
278
b0d623f7
A
279// PM Statistics: potential values for the key kIOPMStatsApplicationResponseTypeKey
280// entry in the application results array.
281#define kIOPMStatsResponseTimedOut "ResponseTimedOut"
282#define kIOPMStatsResponseCancel "ResponseCancel"
283#define kIOPMStatsResponseSlow "ResponseSlow"
fe8ab488
A
284#define kIOPMStatsResponsePrompt "ResponsePrompt"
285#define kIOPMStatsDriverPSChangeSlow "DriverPSChangeSlow"
b0d623f7 286
7ddcb079
A
287struct PMStatsBounds{
288 uint64_t start;
289 uint64_t stop;
290};
b0d623f7 291typedef struct {
fe8ab488 292
7ddcb079
A
293 struct PMStatsBounds hibWrite;
294 struct PMStatsBounds hibRead;
b0d623f7
A
295// bounds driverNotifySleep;
296// bounds driverNotifyWake;
297// bounds appNotifySleep;
fe8ab488
A
298// bounds appNotifyWake;
299// OSDictionary *tardyApps;
b0d623f7
A
300// OSDictionary *tardyDrivers;
301} PMStatsStruct;
302
303/*****************************************************************************/
304
305/* PM RootDomain tracePoints
306 *
307 * In the sleep/wake process, we expect the sleep trace points to proceed
6d2010ae 308 * in increasing order. Once sleep begins with code kIOPMTracePointSleepStarted,
b0d623f7 309 * we expect sleep to continue in a monotonically increasing order of tracepoints
6d2010ae
A
310 * to kIOPMTracePointSystemLoginwindowPhase. After trace point SystemLoginWindowPhase,
311 * the system will return to kIOPMTracePointSystemUp.
b0d623f7
A
312 *
313 * If the trace point decreases (instead of increasing) before reaching kIOPMTracePointSystemUp,
314 * that indicates that the sleep process was cancelled. The cancel reason shall be indicated
315 * in the cancel tracepoint. (TBD)
316 */
317
318enum {
319/* When kTracePointSystemUp is the latest tracePoint,
6d2010ae
A
320 * the system is awake. It is not asleep, sleeping, or waking.
321 *
322 * Phase begins: At boot, at completion of wake from sleep,
323 * immediately following kIOPMTracePointSystemLoginwindowPhase.
324 * Phase ends: When a sleep attempt is initiated.
b0d623f7
A
325 */
326 kIOPMTracePointSystemUp = 0,
327
6d2010ae
A
328/* When kIOPMTracePointSleepStarted is the latest tracePoint,
329 * sleep has been initiated.
330 *
331 * Phase begins: At initiation of system sleep (idle or forced).
332 * Phase ends: PM starts to notify applications of system sleep.
333 */
334 kIOPMTracePointSleepStarted = 0x10,
b0d623f7 335
6d2010ae
A
336/* When kIOPMTracePointSleepApplications is the latest tracePoint,
337 * a system sleep has been initiated and PM waits for responses
338 * from notified applications.
339 *
340 * Phase begins: Begin to asynchronously fire kIOMessageSystemWillSleep
341 * notifications, and also kIOMessageCanSystemSleep for the idle sleep case.
342 * Phase ends: When PM has received all application responses.
343 */
344 kIOPMTracePointSleepApplications = 0x11,
b0d623f7 345
6d2010ae
A
346/* When kIOPMTracePointSleepPriorityClients is the latest tracePoint,
347 * PM is notifying priority clients and in-kernel system capability
348 * clients, and waiting for any asynchronous completions.
349 *
350 * Phase begins: Synchronous delivery of kIOMessageSystemWillSleep notifications.
351 * Phase ends: All notified clients have acknowledged.
352 */
353 kIOPMTracePointSleepPriorityClients = 0x12,
fe8ab488 354
6d2010ae
A
355/* When kIOPMTracePointSleepWillChangeInterests is the latest tracePoint,
356 * PM is calling powerStateWillChangeTo() on interested drivers of root domain.
357 *
358 * Phase begins: Dispatch a callout thread to call interested drivers.
359 * Phase ends: Callout thread work done, and acknowledgePowerChange() called
360 * by drivers that indicated asynchronous completion.
b0d623f7 361 */
6d2010ae 362 kIOPMTracePointSleepWillChangeInterests = 0x13,
b0d623f7 363
6d2010ae
A
364/* When kIOPMTracePointSleepPowerPlaneDrivers is the latest tracePoint,
365 * PM is directing power plane drivers to power off in leaf-to-root order.
366 *
367 * Phase begins: Root domain informs its power children that it will drop to
368 * sleep state. This has a cascade effect and triggers all drivers in
369 * the power plane to transition to a lower power state if necessary.
370 * Phase ends: All power transitions in response to the root domain power
371 * change have completed.
372 */
373 kIOPMTracePointSleepPowerPlaneDrivers = 0x14,
fe8ab488 374
6d2010ae
A
375/* When kIOPMTracePointSleepDidChangeInterests is the latest tracePoint,
376 * PM is calling powerStateDidChangeTo() on interested drivers of root domain.
377 *
378 * Phase begins: Dispatch a callout thread to call interested drivers.
379 * Phase ends: Callout thread work done, and acknowledgePowerChange() called
380 * by drivers that indicated asynchronous completion.
381 */
382 kIOPMTracePointSleepDidChangeInterests = 0x15,
b0d623f7 383
6d2010ae
A
384/* When kIOPMTracePointSleepCapabilityClients is the latest tracePoint,
385 * PM is notifying system capability clients about system sleep.
386 *
387 * Phase begins: Send kIOMessageSystemCapabilityChange notifications to inform
388 * capability clients that system has lost all capabilities.
389 * Phase ends: Finished sending notifications.
b0d623f7 390 */
6d2010ae 391 kIOPMTracePointSleepCapabilityClients = 0x16,
b0d623f7 392
6d2010ae
A
393/* When kIOPMTracePointSleepPlatformActions is the latest tracePoint,
394 * PM is calling drivers that have registered a platform sleep action.
395 */
396 kIOPMTracePointSleepPlatformActions = 0x17,
b0d623f7 397
6d2010ae
A
398/* When kIOPMTracePointSleepCPUs is the latest tracePoint,
399 * PM is shutting down all non-boot processors.
400 *
401 * Phase begins: Shutdown all non-boot processors.
402 * Phase ends: Reduced to only the boot processor running.
b0d623f7 403 */
6d2010ae 404 kIOPMTracePointSleepCPUs = 0x18,
b0d623f7 405
6d2010ae
A
406/* When kIOPMTracePointSleepPlatformDriver is the latest tracePoint,
407 * PM is executing platform dependent code to prepare for system sleep.
408 */
409 kIOPMTracePointSleepPlatformDriver = 0x19,
b0d623f7 410
6d2010ae
A
411/* When kIOPMTracePointHibernate is the latest tracePoint,
412 * PM is writing the hibernate image to disk.
b0d623f7 413 */
6d2010ae 414 kIOPMTracePointHibernate = 0x1a,
b0d623f7 415
6d2010ae
A
416/* When kIOPMTracePointSystemSleep is the latest tracePoint,
417 * PM has recorded the final trace point before the hardware platform
418 * enters sleep state, or low level wakeup is underway - such as restoring
419 * the hibernate image from disk.
420 *
421 * Note: If a system is asleep and then loses power, and it does not have a
422 * hibernate image to restore from (e.g. hibernatemode = 0), then OS X will
423 * interpret this power loss as a failure in kIOPMTracePointSystemSleep.
424 *
425 * Phase begins: Before the OS directs the hardware to enter sleep state.
426 * Phase ends: Control returns to the OS on wake, but before recording the first
427 * wake trace point.
428 */
429 kIOPMTracePointSystemSleep = 0x1f,
b0d623f7 430
6d2010ae
A
431/* When kIOPMTracePointWakePlatformDriver is the latest tracePoint,
432 * PM is executing platform dependent code to prepare for system wake.
433 */
434 kIOPMTracePointWakePlatformDriver = 0x21,
435
436/* When kIOPMTracePointWakePlatformActions is the latest tracePoint,
437 * PM is calling drivers that have registered a platform wake action.
438 */
439 kIOPMTracePointWakePlatformActions = 0x22,
b0d623f7 440
6d2010ae
A
441/* When kIOPMTracePointWakeCPUs is the latest tracePoint,
442 * PM is bringing all non-boot processors online.
443 */
444 kIOPMTracePointWakeCPUs = 0x23,
445
446/* When kIOPMTracePointWakeWillPowerOnClients is the latest tracePoint,
447 * PM is sending kIOMessageSystemWillPowerOn to both kernel clients and
448 * applications. PM also notifies system capability clients about the
449 * proposed capability change.
450 *
451 * Phase begins: Send kIOMessageSystemWillPowerOn and
452 * kIOMessageSystemCapabilityChange notifications.
453 * Phase ends: Finished sending notifications.
b0d623f7 454 */
6d2010ae 455 kIOPMTracePointWakeWillPowerOnClients = 0x24,
b0d623f7 456
6d2010ae
A
457/* When kIOPMTracePointWakeWillChangeInterests is the latest tracePoint,
458 * PM is calling powerStateWillChangeTo() on interested drivers of root domain.
459 *
460 * Phase begins: Dispatch a callout thread to call interested drivers.
461 * Phase ends: Callout thread work done, and acknowledgePowerChange() called
462 * by drivers that indicated asynchronous completion.
463 */
464 kIOPMTracePointWakeWillChangeInterests = 0x25,
465
466/* When kIOPMTracePointWakeDidChangeInterests is the latest tracePoint,
467 * PM is calling powerStateDidChangeTo() on interested drivers of root domain.
468 *
469 * Phase begins: Dispatch a callout thread to call interested drivers.
470 * Phase ends: Callout thread work done, and acknowledgePowerChange() called
471 * by drivers that indicated asynchronous completion.
472 */
473 kIOPMTracePointWakeDidChangeInterests = 0x26,
b0d623f7 474
6d2010ae
A
475/* When kIOPMTracePointWakePowerPlaneDrivers is the latest tracePoint,
476 * PM is directing power plane drivers to power up in root-to-leaf order.
477 *
478 * Phase begins: Root domain informs its power children that it transitioned
479 * to ON state. This has a cascade effect and triggers all drivers in
480 * the power plane to re-evaluate and potentially change power state.
481 * Phase ends: All power transitions in response to the root domain power
482 * change have completed.
b0d623f7 483 */
6d2010ae 484 kIOPMTracePointWakePowerPlaneDrivers = 0x27,
b0d623f7 485
6d2010ae
A
486/* When kIOPMTracePointWakeCapabilityClients is the latest tracePoint,
487 * PM is notifying system capability clients about system wake, and waiting
488 * for any asynchronous completions.
489 *
490 * Phase begins: Inform capability clients that system has gained capabilities.
491 * Phase ends: All notified clients have acknowledged.
492 */
493 kIOPMTracePointWakeCapabilityClients = 0x28,
b0d623f7 494
6d2010ae
A
495/* When kIOPMTracePointWakeApplications is the latest tracePoint,
496 * System CPU is powered, PM has powered on each driver.
497 *
498 * Phase begins: Send asynchronous kIOMessageSystemHasPoweredOn notifications.
499 * Phase ends: Finished sending asynchronous notifications.
b0d623f7 500 */
6d2010ae 501 kIOPMTracePointWakeApplications = 0x29,
b0d623f7
A
502
503/* kIOPMTracePointSystemLoginwindowPhase
6d2010ae
A
504 * This phase represents a several minute window after the system has powered on.
505 * Higher levels of system diagnostics are in a heightened state of alert in this phase,
506 * in case any user errors occurred that we could not detect in software.
507 *
508 * Phase begins: After IOPMrootDomain sends kIOMessageSystemHasPoweredOn message.
fe8ab488 509 * Phase ends: When loginwindow calls IOPMSleepWakeSetUUID(NULL) the system shall
6d2010ae
A
510 * be considered awake and usable. The next phase shall be kIOPMTracePointSystemUp.
511 */
512 kIOPMTracePointSystemLoginwindowPhase = 0x30,
b0d623f7 513
6d2010ae
A
514/* When kIOPMTracePointDarkWakeEntry is the latest tracePoint,
515 * PM has started a transition from full wake to dark wake.
516 *
517 * Phase begins: Start transition to dark wake.
518 * Phase ends: System in dark wake. Before recording kIOPMTracePointSystemUp.
519 */
520 kIOPMTracePointDarkWakeEntry = 0x31,
521
522/* When kIOPMTracePointDarkWakeExit is the latest tracePoint,
523 * PM has started a transition from dark wake to full wake.
524 *
525 * Phase begins: Start transition to full wake.
526 * Phase ends: System in full wake. Before recording kIOPMTracePointSystemUp.
b0d623f7 527 */
6d2010ae 528 kIOPMTracePointDarkWakeExit = 0x32
b0d623f7
A
529};
530
531/*****************************************************************************/
532
533/*
534