ReactOS 0.4.15-dev-7942-gd23573b
fxwakeinterruptstatemachine.hpp
Go to the documentation of this file.
1//
2// Copyright (C) Microsoft. All rights reserved.
3//
4#ifndef _FXWAKEINTERRUPTSTATEMACHINE_H_
5#define _FXWAKEINTERRUPTSTATEMACHINE_H_
6
7//
8// This is a magical number based on inspection. If the queue overflows,
9// it is OK to increase these numbers without fear of either dependencies or
10// weird side affects.
11//
13
22};
23
36};
37
38//
39// Forward declaration
40//
42class FxInterrupt;
43
44typedef
49 );
50
53
55
56#if FX_SUPER_DBG
57 BOOLEAN EventDebugged;
58#endif
59};
60
61//
62// This type of union is done so that we can
63// 1) shrink the array element to the smallest size possible
64// 2) keep types within the structure so we can dump it in the debugger
65//
67 struct {
76 } S;
77
79};
80
83
85
87};
88
90
92
93public:
96 );
97
98 VOID
101 );
102
103 static
104 VOID
106 __inout FxPkgPnp* PkgPnp,
108 __in PVOID WorkerContext
109 );
110
111private:
112 VOID
115 );
116
117 static
119 Waking(
121 );
122
123 static
125 Dx(
127 );
128
129 static
133 );
134
135 static
137 Failed(
139 );
140
141 static
145 );
146
147 static
151 );
152
153 static
157 );
158
159 static
163 );
164
165protected:
166 //FxPkgPnp* m_PkgPnp;
168 //
169 // Set if the interrupt was left active during Dx transition to handle wake
170 // events.
171 //
175
176 // uses FxWakeInterruptStates values
178
179 // three extra padded bytes are put in here by the compiler
180
183
185
194};
195
196#endif // _FXWAKEINTERRUPTSTATEMACHINE_H_
unsigned char BOOLEAN
unsigned int UINT32
VOID ProcessEventInner(__inout FxPostProcessInfo *Info)
static const FxWakeInterruptTargetState m_DxStates[]
static FxWakeInterruptStates InvokingEvtIsrPostWake(__in FxWakeInterruptMachine *This)
static FxWakeInterruptStates DxNotArmedForWake(__in FxWakeInterruptMachine *This)
static const FxWakeInterruptTargetState m_InvokingIsrInD0[]
static const FxWakeInterruptTargetState m_D0States[]
static const FxWakeInterruptTargetState m_WakingStates[]
static VOID _ProcessEventInner(__inout FxPkgPnp *PkgPnp, __inout FxPostProcessInfo *Info, __in PVOID WorkerContext)
static const FxWakeInterruptTargetState m_CompletingD0States[]
static const FxWakeInterruptTargetState m_DxNotArmedForWakeStates[]
static const FxWakeInterruptStateTable m_StateTable[]
static FxWakeInterruptStates InvokingEvtIsrInDxNotArmedForWake(__in FxWakeInterruptMachine *This)
FxWakeInterruptMachineStateHistory m_States
static FxWakeInterruptStates Dx(__in FxWakeInterruptMachine *This)
static const FxWakeInterruptTargetState m_FailedStates[]
static FxWakeInterruptStates Waking(__in FxWakeInterruptMachine *This)
static FxWakeInterruptStates CompletingD0(__in FxWakeInterruptMachine *This)
FxWakeInterruptEvents m_Queue[FxWakeInterruptEventQueueDepth]
static FxWakeInterruptStates InvokingEvtIsrInD0(__in FxWakeInterruptMachine *This)
static const FxWakeInterruptTargetState m_InvokingEvtIsrPostWakeStates[]
VOID ProcessEvent(__in FxWakeInterruptEvents Event)
#define __in
Definition: dbghelp.h:35
#define __inout
Definition: dbghelp.h:50
@ WakeInterruptInvokingEvtIsrInD0
@ WakeInterruptInvokingEvtIsrPostWake
@ WakeInterruptDxNotArmedForWake
@ WakeInterruptInvokingEvtIsrInDxNotArmedForWake
const UCHAR FxWakeInterruptEventQueueDepth
@ WakeInterruptEventLeavingD0
@ WakeInterruptEventEnteringD0
@ WakeInterruptEventD0EntryFailed
@ WakeInterruptEventLeavingD0NotArmedForWake
_Must_inspect_result_ FxWakeInterruptStates(* PFN_WAKE_INTERRUPT_STATE_ENTRY_FUNCTION)(__in FxWakeInterruptMachine *This)
#define _Must_inspect_result_
Definition: ms_sal.h:558
@ Failed
Definition: arc.h:79
const FxWakeInterruptTargetState * TargetStates
PFN_WAKE_INTERRUPT_STATE_ENTRY_FUNCTION StateFunc
uint32_t ULONG
Definition: typedefs.h:59
UCHAR History[FxWakeInterruptEventQueueDepth]
struct FxWakeInterruptMachineStateHistory::@4821 S
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:690
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:379
unsigned char UCHAR
Definition: xmlstorage.h:181
unsigned char BYTE
Definition: xxhash.c:193