[CSRSS]
[reactos.git] / reactos / ntoskrnl / include / internal / po.h
1 /*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: ntoskrnl/include/po.h
5 * PURPOSE: Internal header for the Power Manager
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
7 */
8
9 #include <poclass.h>
10
11 //
12 // Define this if you want debugging support
13 //
14 #define _PO_DEBUG_ 0x00
15
16 //
17 // These define the Debug Masks Supported
18 //
19 #define PO_STATE_DEBUG 0x01
20
21 //
22 // Debug/Tracing support
23 //
24 #if _PO_DEBUG_
25 #ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented
26 #define POTRACE DbgPrintEx
27 #else
28 #define POTRACE(x, ...) \
29 if (x & PopTraceLevel) DbgPrint(__VA_ARGS__)
30 #endif
31 #else
32 #define POTRACE(x, ...) DPRINT(__VA_ARGS__)
33 #endif
34
35 //
36 // Initialization routines
37 //
38 BOOLEAN
39 NTAPI
40 PoInitSystem(
41 IN ULONG BootPhase
42 );
43
44 VOID
45 NTAPI
46 PoInitializePrcb(
47 IN PKPRCB Prcb
48 );
49
50 //
51 // Power State routines
52 //
53 NTSTATUS
54 NTAPI
55 PopSetSystemPowerState(
56 SYSTEM_POWER_STATE PowerState
57 );
58
59 VOID
60 NTAPI
61 PopCleanupPowerState(
62 IN PPOWER_STATE PowerState
63 );
64
65 NTSTATUS
66 NTAPI
67 PopAddRemoveSysCapsCallback(
68 IN PVOID NotificationStructure,
69 IN PVOID Context
70 );
71
72 //
73 // Notifications
74 //
75 VOID
76 NTAPI
77 PoNotifySystemTimeSet(
78 VOID
79 );
80
81 //
82 // Global data inside the Power Manager
83 //
84 extern PDEVICE_NODE PopSystemPowerDeviceNode;