ReactOS  0.4.15-dev-4603-gb922b6d
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 //
42 class FxInterrupt;
43 
44 typedef
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 
91  friend FxInterrupt;
92 
93 public:
96  );
97 
98  VOID
101  );
102 
103  static
104  VOID
106  __inout FxPkgPnp* PkgPnp,
108  __in PVOID WorkerContext
109  );
110 
111 private:
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
161  CompletingD0(
163  );
164 
165 protected:
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_
static const FxWakeInterruptTargetState m_InvokingIsrInD0[]
const UCHAR FxWakeInterruptEventQueueDepth
static FxWakeInterruptStates CompletingD0(__in FxWakeInterruptMachine *This)
static const FxWakeInterruptTargetState m_FailedStates[]
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:372
static FxWakeInterruptStates Waking(__in FxWakeInterruptMachine *This)
FxWakeInterruptEvents m_Queue[FxWakeInterruptEventQueueDepth]
static const FxWakeInterruptTargetState m_D0States[]
PFN_WAKE_INTERRUPT_STATE_ENTRY_FUNCTION StateFunc
static FxWakeInterruptStates Dx(__in FxWakeInterruptMachine *This)
const FxWakeInterruptTargetState * TargetStates
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:683
_Must_inspect_result_ FxWakeInterruptStates(* PFN_WAKE_INTERRUPT_STATE_ENTRY_FUNCTION)(__in FxWakeInterruptMachine *This)
unsigned int UINT32
static const FxWakeInterruptTargetState m_DxStates[]
unsigned char BOOLEAN
VOID ProcessEvent(__in FxWakeInterruptEvents Event)
UCHAR History[FxWakeInterruptEventQueueDepth]
struct FxWakeInterruptMachineStateHistory::@4588 S
static const FxWakeInterruptTargetState m_DxNotArmedForWakeStates[]
unsigned char UCHAR
Definition: xmlstorage.h:181
static FxWakeInterruptStates InvokingEvtIsrInD0(__in FxWakeInterruptMachine *This)
static FxWakeInterruptStates Failed(__in FxWakeInterruptMachine *This)
#define __inout
Definition: dbghelp.h:50
#define _Must_inspect_result_
Definition: ms_sal.h:558
unsigned char BYTE
Definition: xxhash.c:193
FxWakeInterruptMachine(__in FxInterrupt *Interrupt)
static FxWakeInterruptStates InvokingEvtIsrPostWake(__in FxWakeInterruptMachine *This)
static VOID _ProcessEventInner(__inout FxPkgPnp *PkgPnp, __inout FxPostProcessInfo *Info, __in PVOID WorkerContext)
static const FxWakeInterruptStateTable m_StateTable[]
FxWakeInterruptMachineStateHistory m_States
static const FxWakeInterruptTargetState m_InvokingEvtIsrPostWakeStates[]
unsigned int ULONG
Definition: retypes.h:1
VOID ProcessEventInner(__inout FxPostProcessInfo *Info)
static const FxWakeInterruptTargetState m_CompletingD0States[]
#define __in
Definition: dbghelp.h:35
static FxWakeInterruptStates InvokingEvtIsrInDxNotArmedForWake(__in FxWakeInterruptMachine *This)
static FxWakeInterruptStates DxNotArmedForWake(__in FxWakeInterruptMachine *This)
static const FxWakeInterruptTargetState m_WakingStates[]