ReactOS  0.4.14-dev-556-g4c5b21f
ketypes.h
Go to the documentation of this file.
1 /*++ NDK Version: 0098
2 
3 Copyright (c) Alex Ionescu. All rights reserved.
4 
5 Header Name:
6 
7  ketypes.h (ARM)
8 
9 Abstract:
10 
11  ARM Type definitions for the Kernel services.
12 
13 Author:
14 
15  Alex Ionescu (alexi@tinykrnl.org) - Updated - 27-Feb-2006
16  Timo Kreuzer (timo.kreuzer@reactos.org) - Updated 19-Apr-2015
17 
18 --*/
19 
20 #ifndef _ARM_KETYPES_H
21 #define _ARM_KETYPES_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 //
28 // Dependencies
29 //
30 
31 
32 #define SYNCH_LEVEL DISPATCH_LEVEL
33 
34 
35 //
36 // CPU Vendors
37 //
38 typedef enum
39 {
41 } CPU_VENDORS;
42 
43 //
44 // Co-Processor register definitions
45 //
46 #define CP15_MIDR 15, 0, 0, 0, 0
47 #define CP15_CTR 15, 0, 0, 0, 1
48 #define CP15_TCMTR 15, 0, 0, 0, 2
49 #define CP15_TLBTR 15, 0, 0, 0, 3
50 #define CP15_MPIDR 15, 0, 0, 0, 5
51 #define CP15_PFR0 15, 0, 0, 1, 0
52 #define CP15_PFR1 15, 0, 0, 1, 1
53 #define CP15_DFR0 15, 0, 0, 1, 2
54 #define CP15_AFR0 15, 0, 0, 1, 3
55 #define CP15_MMFR0 15, 0, 0, 1, 4
56 #define CP15_MMFR1 15, 0, 0, 1, 5
57 #define CP15_MMFR2 15, 0, 0, 1, 6
58 #define CP15_MMFR3 15, 0, 0, 1, 7
59 #define CP15_ISAR0 15, 0, 0, 2, 0
60 #define CP15_ISAR1 15, 0, 0, 2, 1
61 #define CP15_ISAR2 15, 0, 0, 2, 2
62 #define CP15_ISAR3 15, 0, 0, 2, 3
63 #define CP15_ISAR4 15, 0, 0, 2, 4
64 #define CP15_ISAR5 15, 0, 0, 2, 5
65 #define CP15_ISAR6 15, 0, 0, 2, 6
66 #define CP15_ISAR7 15, 0, 0, 2, 7
67 #define CP15_SCTLR 15, 0, 1, 0, 0
68 #define CP15_ACTLR 15, 0, 1, 0, 1
69 #define CP15_CPACR 15, 0, 1, 0, 2
70 #define CP15_SCR 15, 0, 1, 1, 0
71 #define CP15_SDER 15, 0, 1, 1, 1
72 #define CP15_NSACR 15, 0, 1, 1, 2
73 #define CP15_TTBR0 15, 0, 2, 0, 0
74 #define CP15_TTBR1 15, 0, 2, 0, 1
75 #define CP15_TTBCR 15, 0, 2, 0, 2
76 #define CP15_DACR 15, 0, 3, 0, 0
77 #define CP15_DFSR 15, 0, 5, 0, 0
78 #define CP15_IFSR 15, 0, 5, 0, 1
79 #define CP15_DFAR 15, 0, 6, 0, 0
80 #define CP15_IFAR 15, 0, 6, 0, 2
81 #define CP15_ICIALLUIS 15, 0, 7, 1, 0
82 #define CP15_BPIALLIS 15, 0, 7, 1, 6
83 #define CP15_ICIALLU 15, 0, 7, 5, 0
84 #define CP15_ICIMVAU 15, 0, 7, 5, 1
85 #define CP15_BPIALL 15, 0, 7, 5, 6
86 #define CP15_BPIMVA 15, 0, 7, 5, 7
87 #define CP15_DCIMVAC 15, 0, 7, 6, 1
88 #define CP15_DCISW 15, 0, 7, 6, 2
89 #define CP15_DCCMVAC 15, 0, 7, 10, 1
90 #define CP15_DCCSW 15, 0, 7, 10, 2
91 #define CP15_DCCMVAU 15, 0, 7, 11, 1
92 #define CP15_DCCIMVAC 15, 0, 7, 14, 1
93 #define CP15_DCCISW 15, 0, 7, 14, 2
94 #define CP15_PAR 15, 0, 7, 4, 0
95 #define CP15_ATS1CPR 15, 0, 7, 8, 0
96 #define CP15_ATS1CPW 15, 0, 7, 8, 1
97 #define CP15_ATS1CUR 15, 0, 7, 8, 2
98 #define CP15_ATS1CUW 15, 0, 7, 8, 3
99 #define CP15_ISB 15, 0, 7, 5, 4
100 #define CP15_DSB 15, 0, 7, 10, 4
101 #define CP15_DMB 15, 0, 7, 10, 5
102 #define CP15_TLBIALLIS 15, 0, 8, 3, 0
103 #define CP15_TLBIMVAIS 15, 0, 8, 3, 1
104 #define CP15_TLBIASIDIS 15, 0, 8, 3, 2
105 #define CP15_TLBIMVAAIS 15, 0, 8, 3, 3
106 #define CP15_ITLBIALL 15, 0, 8, 5, 0
107 #define CP15_ITLBIMVA 15, 0, 8, 5, 1
108 #define CP15_ITLBIASID 15, 0, 8, 5, 2
109 #define CP15_DTLBIALL 15, 0, 8, 6, 0
110 #define CP15_DTLBIMVA 15, 0, 8, 6, 1
111 #define CP15_DTLBIASID 15, 0, 8, 6, 2
112 #define CP15_TLBIALL 15, 0, 8, 7, 0
113 #define CP15_TLBIMVA 15, 0, 8, 7, 1
114 #define CP15_TLBIASID 15, 0, 8, 7, 2
115 #define CP15_TLBIMVAA 15, 0, 8, 7, 3
116 #define CP15_PMCR 15, 0, 9, 12, 0
117 #define CP15_PMCNTENSET 15, 0, 9, 12, 1
118 #define CP15_PMCNTENCLR 15, 0, 9, 12, 2
119 #define CP15_PMOVSR 15, 0, 9, 12, 3
120 #define CP15_PSWINC 15, 0, 9, 12, 4
121 #define CP15_PMSELR 15, 0, 9, 12, 5
122 #define CP15_PMCCNTR 15, 0, 9, 13, 0
123 #define CP15_PMXEVTYPER 15, 0, 9, 13, 1
124 #define CP15_PMXEVCNTR 15, 0, 9, 13, 2
125 #define CP15_PMUSERENR 15, 0, 9, 14, 0
126 #define CP15_PMINTENSET 15, 0, 9, 14, 1
127 #define CP15_PMINTENCLR 15, 0, 9, 14, 2
128 #define CP15_PRRR 15, 0, 10, 2, 0
129 #define CP15_NMRR 15, 0, 10, 2, 1
130 #define CP15_VBAR 15, 0, 12, 0, 0
131 #define CP15_MVBAR 15, 0, 12, 0, 1
132 #define CP15_ISR 15, 0, 12, 1, 0
133 #define CP15_CONTEXTIDR 15, 0, 13, 0, 1
134 #define CP15_TPIDRURW 15, 0, 13, 0, 2
135 #define CP15_TPIDRURO 15, 0, 13, 0, 3
136 #define CP15_TPIDRPRW 15, 0, 13, 0, 4
137 #define CP15_CCSIDR 15, 1, 0, 0, 0
138 #define CP15_CLIDR 15, 1, 0, 0, 1
139 #define CP15_AIDR 15, 1, 0, 0, 7
140 #define CP15_CSSELR 15, 2, 0, 0, 0
141 #define CP14_DBGDIDR 14, 0, 0, 0, 0
142 #define CP14_DBGWFAR 14, 0, 0, 6, 0
143 #define CP14_DBGVCR 14, 0, 0, 7, 0
144 #define CP14_DBGECR 14, 0, 0, 9, 0
145 #define CP14_DBGDSCCR 14, 0, 0, 10, 0
146 #define CP14_DBGDSMCR 14, 0, 0, 11, 0
147 #define CP14_DBGDTRRX 14, 0, 0, 0, 2
148 #define CP14_DBGPCSR 14, 0, 0, 1, 2
149 #define CP14_DBGITR 14, 0, 0, 1, 2
150 #define CP14_DBGDSCR 14, 0, 0, 2, 2
151 #define CP14_DBGDTRTX 14, 0, 0, 3, 2
152 #define CP14_DBGDRCR 14, 0, 0, 4, 2
153 #define CP14_DBGCIDSR 14, 0, 0, 9, 2
154 #define CP14_DBGBVR0 14, 0, 0, 0, 4
155 #define CP14_DBGBVR1 14, 0, 0, 1, 4
156 #define CP14_DBGBVR2 14, 0, 0, 2, 4
157 #define CP14_DBGBVR3 14, 0, 0, 3, 4
158 #define CP14_DBGBVR4 14, 0, 0, 4, 4
159 #define CP14_DBGBVR5 14, 0, 0, 5, 4
160 #define CP14_DBGBVR6 14, 0, 0, 6, 4
161 #define CP14_DBGBVR7 14, 0, 0, 7, 4
162 #define CP14_DBGBCR0 14, 0, 0, 0, 5
163 #define CP14_DBGBCR1 14, 0, 0, 1, 5
164 #define CP14_DBGBCR2 14, 0, 0, 2, 5
165 #define CP14_DBGBCR3 14, 0, 0, 3, 5
166 #define CP14_DBGBCR4 14, 0, 0, 4, 5
167 #define CP14_DBGBCR5 14, 0, 0, 5, 5
168 #define CP14_DBGBCR6 14, 0, 0, 6, 5
169 #define CP14_DBGBCR7 14, 0, 0, 7, 5
170 #define CP14_DBGWVR0 14, 0, 0, 0, 6
171 #define CP14_DBGWVR1 14, 0, 0, 1, 6
172 #define CP14_DBGWVR2 14, 0, 0, 2, 6
173 #define CP14_DBGWVR3 14, 0, 0, 3, 6
174 #define CP14_DBGWCR0 14, 0, 0, 0, 7
175 #define CP14_DBGWCR1 14, 0, 0, 1, 7
176 #define CP14_DBGWCR2 14, 0, 0, 2, 7
177 #define CP14_DBGWCR3 14, 0, 0, 3, 7
178 #define CPVFP_FPSID 10, 7, 0, 0, 0
179 #define CPVFP_FPSCR 10, 7, 1, 0, 0
180 #define CPVFP_MVFR1 10, 7, 6, 0, 0
181 #define CPVFP_MVFR0 10, 7, 7, 0, 0
182 #define CPVFP_FPEXC 10, 7, 8, 0, 0
183 #define CP15_TTBRx_PD_MASK 0xffffc000
184 
185 
186 //
187 // CPSR Values
188 //
189 #define CPSRM_USER 0x10
190 #define CPSRM_FIQ 0x11
191 #define CPSRM_INT 0x12
192 #define CPSRM_SVC 0x13
193 #define CPSRM_ABT 0x17
194 #define CPSRM_UDF 0x1b
195 #define CPSRM_SYS 0x1f
196 #define CPSRM_MASK 0x1f
197 #define SYSCALL_PSR 0x30
198 
199 #define CPSRF_N 0x80000000
200 #define CPSRF_Z 0x40000000
201 #define CPSRF_C 0x20000000
202 #define CPSRF_V 0x10000000
203 #define CPSRF_Q 0x08000000
204 #define CPSR_IT_MASK 0x600fc00
205 
206 #define FPSCRF_N 0x80000000
207 #define FPSCRF_Z 0x40000000
208 #define FPSCRF_C 0x20000000
209 #define FPSCRF_V 0x10000000
210 #define FPSCRF_QC 0x08000000
211 
212 #define FPSCRM_AHP 0x4000000
213 #define FPSCRM_DN 0x2000000
214 #define FPSCRM_FZ 0x1000000
215 #define FPSCRM_RMODE_MASK 0xc00000
216 #define FPSCRM_RMODE_RN 0x0
217 #define FPSCRM_RMODE_RP 0x400000
218 #define FPSCRM_RMODE_RM 0x800000
219 #define FPSCRM_RMODE_RZ 0xc00000
220 #define FPSCRM_DEPRECATED 0x370000
221 
222 #define FPSCR_IDE 0x8000
223 #define FPSCR_IXE 0x1000
224 #define FPSCR_UFE 0x800
225 #define FPSCR_OFE 0x400
226 #define FPSCR_DZE 0x200
227 #define FPSCR_IOE 0x100
228 #define FPSCR_IDC 0x80
229 #define FPSCR_IXC 0x10
230 #define FPSCR_UFC 0x8
231 #define FPSCR_OFC 0x4
232 #define FPSCR_DZC 0x2
233 #define FPSCR_IOC 0x1
234 
235 #define CPSRC_INT 0x80
236 #define CPSRC_ABORT 0x100
237 #define CPSRC_THUMB 0x20
238 
239 #define SWFS_PAGE_FAULT 0x10
240 #define SWFS_ALIGN_FAULT 0x20
241 #define SWFS_HWERR_FAULT 0x40
242 #define SWFS_DEBUG_FAULT 0x80
243 #define SWFS_EXECUTE 0x8
244 #define SWFS_WRITE 0x1
245 
246 #define CP14_DBGDSCR_MOE_MASK 0x3c
247 #define CP14_DBGDSCR_MOE_SHIFT 0x2
248 #define CP14_DBGDSCR_MOE_HALT 0x0
249 #define CP14_DBGDSCR_MOE_BP 0x1
250 #define CP14_DBGDSCR_MOE_WPASYNC 0x2
251 #define CP14_DBGDSCR_MOE_BKPT 0x3
252 #define CP14_DBGDSCR_MOE_EXTERNAL 0x4
253 #define CP14_DBGDSCR_MOE_VECTOR 0x5
254 #define CP14_DBGDSCR_MOE_WPSYNC 0xa
255 
256 #define CP15_PMCR_DP 0x20
257 #define CP15_PMCR_X 0x10
258 #define CP15_PMCR_CLKCNT_DIV 0x8
259 #define CP15_PMCR_CLKCNT_RST 0x4
260 #define CP15_PMCR_CNT_RST 0x2
261 #define CP15_PMCR_ENABLE 0x1
262 
263 //
264 // C1 Register Values
265 //
266 #define C1_MMU_CONTROL 0x01
267 #define C1_ALIGNMENT_CONTROL 0x02
268 #define C1_DCACHE_CONTROL 0x04
269 #define C1_ICACHE_CONTROL 0x1000
270 #define C1_VECTOR_CONTROL 0x2000
271 
272 //
273 // IPI Types
274 //
275 #define IPI_APC 1
276 #define IPI_DPC 2
277 #define IPI_FREEZE 4
278 #define IPI_PACKET_READY 6
279 #define IPI_SYNCH_REQUEST 16
280 
281 //
282 // PRCB Flags
283 //
284 #define PRCB_MAJOR_VERSION 1
285 #define PRCB_BUILD_DEBUG 1
286 #define PRCB_BUILD_UNIPROCESSOR 2
287 
288 //
289 // No LDTs on ARM
290 //
291 #define LDT_ENTRY ULONG
292 
293 //
294 // HAL Variables
295 //
296 #define INITIAL_STALL_COUNT 100
297 #define MM_HAL_VA_START 0xFFC00000
298 #define MM_HAL_VA_END 0xFFFFFFFF
299 
300 //
301 // Static Kernel-Mode Address start (use MM_KSEG0_BASE for actual)
302 //
303 #define KSEG0_BASE 0x80000000
304 
305 //
306 // Number of pool lookaside lists per pool in the PRCB
307 //
308 #define NUMBER_POOL_LOOKASIDE_LISTS 32
309 
310 //
311 // Structure for CPUID info
312 //
313 typedef union _CPU_INFO
314 {
316 } CPU_INFO, *PCPU_INFO;
317 
318 
319 //
320 // ARM VFP State
321 // Based on Windows RT 8.1 symbols and ksarm.h
322 //
323 typedef struct _KARM_VFP_STATE
324 {
325  struct _KARM_VFP_STATE* Link; // 0x00
326  ULONG Fpscr; // 0x04
327  ULONG Reserved; // 0x08
328  ULONG Reserved2; // 0x0c
329  ULONGLONG VfpD[32]; // 0x10
330 } KARM_VFP_STATE, *PKARM_VFP_STATE; // size = 0x110
331 
332 //
333 // Trap Frame Definition
334 // Based on Windows RT 8.1 symbols and ksarm.h
335 //
336 typedef struct _KTRAP_FRAME
337 {
340  union
341  {
344  };
349  union
350  {
353  };
355  ULONG Bvr[8];
356  ULONG Bcr[8];
357  ULONG Wvr[1];
358  ULONG Wcr[1];
370 
371 #ifndef NTOS_MODE_USER
372 
373 //
374 // Exception Frame Definition
375 // FIXME: this should go into ntddk.h
376 //
377 typedef struct _KEXCEPTION_FRAME
378 {
379  ULONG Param5; // 0x00
380  ULONG TrapFrame; // 0x04
383  ULONG Pad; // 0x04
384  ULONG R4; // 0x14
385  ULONG R5; // 0x18
386  ULONG R6; // 0x1c
387  ULONG R7; // 0x20
388  ULONG R8; // 0x24
389  ULONG R9; // 0x28
390  ULONG R10; // 0x2c
391  ULONG R11; // 0x30
392  ULONG Return; // 0x34
393 } KEXCEPTION_FRAME, *PKEXCEPTION_FRAME; // size = 0x38
394 
395 //
396 // ARM Architecture State
397 // Based on Windows RT 8.1 symbols and ksarm.h
398 //
399 typedef struct _KARM_ARCH_STATE
400 {
427 
431 
432 //
433 // ARM Internal Registers
434 //
435 typedef union _ARM_TTB_REGISTER
436 {
437  struct
438  {
441  };
444 
445 typedef union _ARM_STATUS_REGISTER
446 {
447 
448  struct
449  {
466  };
469 
470 typedef union _ARM_DOMAIN_REGISTER
471 {
472  struct
473  {
490  };
493 
495 {
496  struct
497  {
520  };
523 
524 C_ASSERT(sizeof(ARM_CONTROL_REGISTER) == sizeof(ULONG));
525 
527 {
528  struct
529  {
535  };
538 
539 typedef union _ARM_CACHE_REGISTER
540 {
541  struct
542  {
556  };
559 
561 {
562  struct
563  {
568  };
571 
572 //
573 // ARM Domains
574 //
575 typedef enum _ARM_DOMAINS
576 {
593 } ARM_DOMAINS;
594 
598 
599 typedef struct _DESCRIPTOR
600 {
605 
606 
607 //
608 // Special Registers Structure (outside of CONTEXT)
609 // Based on Windows RT 8.1 symbols and ksarm.h
610 //
611 typedef struct _KSPECIAL_REGISTERS
612 {
613  ULONG Reserved[7]; // 0x00
617  ULONG KernelBvr[8]; // 0x28
618  ULONG KernelBcr[8]; // 0x48
619  ULONG KernelWvr[1]; // 0x68
620  ULONG KernelWcr[1]; // 0x6c
621  ULONG Fpexc; // 0x70
622  ULONG Fpinst; // 0x74
623  ULONG Fpinst2; // 0x78
624  ULONG UserSp; // 0x7c
625  ULONG UserLr; // 0x80
626  ULONG AbortSp; // 0x84
627  ULONG AbortLr; // 0x88
628  ULONG AbortSpsr; // 0x8c
629  ULONG UdfSp; // 0x90
630  ULONG UdfLr; // 0x94
631  ULONG UdfSpsr; // 0x98
632  ULONG IrqSp; // 0x9c
633  ULONG IrqLr; // 0xa0
634  ULONG IrqSpsr; // 0xa4
636 
637 //
638 // Processor State
639 // Based on Windows RT 8.1 symbols and ksarm.h
640 //
641 typedef struct _KPROCESSOR_STATE
642 {
645  CONTEXT ContextFrame; // 0x200
647 C_ASSERT(sizeof(KPROCESSOR_STATE) == 0x3a0);
648 
649 //
650 // ARM Mini Stack
651 // Based on Windows RT 8.1 symbols and ksarm.h
652 //
653 typedef struct _KARM_MINI_STACK
654 {
662 } KARM_MINI_STACK, *PKARM_MINI_STACK; // size = 0x20
663 
664 typedef struct _DISPATCHER_CONTEXT
665 {
666  ULONG ControlPc; // 0x0
667  PVOID ImageBase; // 0x4
668  PVOID FunctionEntry; // 0x8
669  PVOID EstablisherFrame; // 0xc
670  ULONG TargetPc; // 0x10
671  PVOID ContextRecord; // 0x14
672  PVOID LanguageHandler; // 0x18
673  PVOID HandlerData; // 0x1c
674  PVOID HistoryTable; // 0x20
675  ULONG ScopeIndex; // 0x24
678  ULONG Reserved; // 0x30
680 
681 //
682 // Machine Frame
683 // Based on ksarm.h
684 //
685 typedef struct _MACHINE_FRAME
686 {
690 
691 //
692 // Defines the Callback Stack Layout for User Mode Callbacks
693 //
695 
696 //
697 // User mode callout frame
698 //
699 typedef struct _UCALLOUT_FRAME
700 {
701  PVOID Buffer;
702  ULONG Length;
707 
708 typedef struct _KSTART_FRAME
709 {
715 
716 typedef struct _KSWITCH_FRAME
717 {
723 
724 //
725 // Cache types
726 // (These are made up constants!)
727 //
729 {
736 };
737 
738 #if (NTDDI_VERSION < NTDDI_LONGHORN)
739 #define GENERAL_LOOKASIDE_POOL PP_LOOKASIDE_LIST
740 #endif
741 
742 //
743 // Processor Region Control Block
744 // Based on Windows RT 8.1 symbols
745 //
746 typedef struct _KPRCB
747 {
750  UCHAR IdleHalt;
756  union
757  {
759  struct
760  {
763  };
764  };
765  UCHAR PrcbPad00[1];
772  ULONG MHz;
783  UCHAR Group;
785  //UCHAR _PADDING1_[0x62];
794  //UCHAR _PADDING3_[0x60];
828  KDPC_DATA DpcData[2];
829  PVOID DpcStack;
839 #if (NTDDI_VERSION >= NTDDI_WIN8)
840  union
841  {
844  struct
845  {
848  };
849  struct
850  {
861  };
862  };
863 #else
865 #endif
874 #if (NTDDI_VERSION >= NTDDI_LONGHORN)
876 #else
878 #endif
880  KDPC CallDpc;
884  //UCHAR _PADDING6_[0x2];
895  //RTL_RB_TREE ScbQueue;
901  ULONG UserTime;
902  ULONG DpcTime;
905  UCHAR SkipTick;
907  UCHAR PollSlot;
916  struct _KNODE* ParentNode;
922 #if (NTDDI_VERSION >= NTDDI_WIN8)
924 #endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
971  //KAFFINITY_EX PackageProcessorSet;
974  struct _KSHARED_READY_QUEUE* SharedReadyQueue;
985  PVOID HyperPte;
986  PVOID WheaInfo;
990  //FILESYSTEM_DISK_COUNTERS FsCounters;
1009  //REQUEST_MAILBOX RequestMailbox[1];
1010 
1011  // FIXME: Oldstyle stuff
1012 #if (NTDDI_VERSION < NTDDI_WIN8) // FIXME
1013  UCHAR CpuType;
1014  volatile UCHAR DpcInterruptRequested;
1015  volatile UCHAR DpcThreadRequested;
1016  volatile UCHAR DpcThreadActive;
1017  volatile ULONG TimerHand;
1018  volatile ULONG TimerRequest;
1020  LONG Sleeping;
1022  CHAR VendorString[13];
1023 #endif
1024 
1025 } KPRCB, *PKPRCB;
1026 C_ASSERT(FIELD_OFFSET(KPRCB, ProcessorState) == 0x20);
1027 C_ASSERT(FIELD_OFFSET(KPRCB, ProcessorModel) == 0x3C0);
1028 C_ASSERT(FIELD_OFFSET(KPRCB, LockQueue) == 0x480);
1029 C_ASSERT(FIELD_OFFSET(KPRCB, PacketBarrier) == 0x600);
1030 C_ASSERT(FIELD_OFFSET(KPRCB, Mailbox) == 0x680);
1031 C_ASSERT(FIELD_OFFSET(KPRCB, DpcData) == 0x690);
1032 C_ASSERT(FIELD_OFFSET(KPRCB, DpcStack) == 0x6c0);
1033 //C_ASSERT(FIELD_OFFSET(KPRCB, CallDpc) == 0x714);
1034 
1035 
1036 //
1037 // Processor Control Region
1038 // Based on Windows RT 8.1 symbols
1039 //
1040 typedef struct _KIPCR
1041 {
1042  union
1043  {
1044  NT_TIB NtTib;
1045  struct
1046  {
1049  struct _KPCR *Self;
1050  struct _KPRCB *CurrentPrcb;
1052  PVOID Used_Self;
1053  };
1054  };
1057  ULONG Unused0[3];
1061  PVOID Unused1[3];
1062  ULONG KernelReserved[15];
1064  union
1065  {
1067  struct
1068  {
1071  };
1072  };
1074  ULONG HalReserved[32];
1076  PVOID Unused3;
1077  ULONG PcrAlign1[8];
1078 
1079  /* Private members, not in ntddk.h */
1080  PVOID Idt[256];
1084  KPRCB Prcb;
1085 } KIPCR, *PKIPCR;
1086 
1087 C_ASSERT(FIELD_OFFSET(KIPCR, Prcb.LegacyNumber) == 0x580);
1088 
1089 //
1090 // Macro to get current KPRCB
1091 //
1093 struct _KPRCB *
1095 {
1096  return KeGetPcr()->CurrentPrcb;
1097 }
1098 
1099 //
1100 // Just read it from the PCR
1101 //
1102 #define KeGetCurrentIrql() KeGetPcr()->CurrentIrql
1103 #define _KeGetCurrentThread() KeGetCurrentPrcb()->CurrentThread
1104 #define _KeGetPreviousMode() KeGetCurrentPrcb()->CurrentThread->PreviousMode
1105 #define _KeIsExecutingDpc() (KeGetCurrentPrcb()->DpcRoutineActive != 0)
1106 #define KeGetCurrentThread() _KeGetCurrentThread()
1107 #define KeGetPreviousMode() _KeGetPreviousMode()
1108 //#define KeGetDcacheFillSize() PCR->DcacheFillSize
1109 
1110 #endif // !NTOS_MODE_USER
1111 
1112 #ifdef __cplusplus
1113 }; // extern "C"
1114 #endif
1115 
1116 #endif // !_ARM_KETYPES_H
ULONG TibPad0[2]
Definition: ketypes.h:1047
ULONG CcCopyReadWait
Definition: ketypes.h:653
signed char * PCHAR
Definition: retypes.h:7
ULONG Cp15_Cr0_CpuId
Definition: ketypes.h:401
ULONG R12
Definition: ketypes.h:363
ULONG R1
Definition: ketypes.h:711
PKTHREAD CurrentThread
Definition: ketypes.h:751
UCHAR DebuggerSavedIRQL
Definition: ketypes.h:739
ULONG KernelWvr[1]
Definition: ketypes.h:619
C_ASSERT(sizeof(ARM_CONTROL_REGISTER)==sizeof(ULONG))
GENERAL_LOOKASIDE_POOL PPNPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:625
KARM_MINI_STACK AbtMiniStack
Definition: ketypes.h:995
UCHAR ClockCheckSlot
Definition: ketypes.h:713
struct _KARM_MINI_STACK * PKARM_MINI_STACK
ULONG NegativeLessThan
Definition: ketypes.h:465
ULONG CcFastReadResourceMiss
Definition: ketypes.h:781
union _ARM_CONTROL_REGISTER * PARM_CONTROL_REGISTER
struct _KARM_ARCH_STATE * PKARM_ARCH_STATE
ULONG MinimumDpcRate
Definition: ketypes.h:685
ULONG ApiNumber
Definition: ketypes.h:997
ULONG DpcTimeLimit
Definition: ketypes.h:744
ULONG Dummy
Definition: ketypes.h:315
ULONG CcMdlReadWait
Definition: ketypes.h:774
ULONG CcMapDataNoWait
Definition: ketypes.h:768
ULONG Cp15_Cr9_PmControl
Definition: ketypes.h:413
UCHAR PrcbPad20[3]
Definition: ketypes.h:982
ULONG InterruptTime
Definition: ketypes.h:736
ULONG Cp15_Cr2_TtbControl
Definition: ketypes.h:405
LONG IoWriteOperationCount
Definition: ketypes.h:661
struct _KSWITCH_FRAME * PKSWITCH_FRAME
ULONG SharedReadyQueueMask
Definition: ketypes.h:973
KIRQL ApcBypass
Definition: ketypes.h:1032
Definition: ntbasedef.h:635
ULONG SecondaryColorMask
Definition: ketypes.h:760
KDPC CallDpc
Definition: ketypes.h:710
ULONG Reserved
Definition: ketypes.h:345
Definition: fatfs.h:173
UCHAR ApcInterrupt
Definition: ketypes.h:1069
UCHAR DpcThreadRequested
Definition: ketypes.h:687
struct _KIPCR KIPCR
KDPC_DATA DpcData[2]
Definition: ketypes.h:676
ULONG PcrAlign2[19]
Definition: ketypes.h:1082
LONG MmMappedPagesWriteCount
Definition: ketypes.h:644
ULONG DpcNormalSpare
Definition: ketypes.h:857
ULONG CcMapDataWaitMiss
Definition: ketypes.h:785
UINT64 CycleCounterFrequency
Definition: ketypes.h:773
ULONG FeatureBits
Definition: ketypes.h:799
PVOID NonVolatileRegisters
Definition: ketypes.h:677
LONG MmTransitionCount
Definition: ketypes.h:631
SYNCH_COUNTERS SynchCounters
Definition: ketypes.h:989
ULONG Cp15_Cr9_PmEventType[31]
Definition: ketypes.h:417
ULONG CcPinReadNoWaitMiss
Definition: ketypes.h:786
UCHAR SecondLevelCacheAssociativity
Definition: ketypes.h:872
ULONG LastTick
Definition: ketypes.h:867
ULONG Cp15_Cr9_PmInterruptSelect
Definition: ketypes.h:418
LONG MmPageFaultCount
Definition: ketypes.h:629
char CHAR
Definition: xmlstorage.h:175
ULONG MHz
Definition: ketypes.h:595
LONG KeSpinLockOrdering
Definition: ketypes.h:887
USHORT MinorVersion
Definition: ketypes.h:877
struct _UCALLOUT_FRAME * PUCALLOUT_FRAME
USHORT SoftwareInterruptPending
Definition: ketypes.h:1066
ULONG PeriodicCount
Definition: ketypes.h:745
union _CPU_INFO * PCPU_INFO
UCHAR PrcbPad00[6]
Definition: ketypes.h:572
ULONG Cp15_Cr6_Ifar
Definition: ketypes.h:412
LONG MmDemandZeroCount
Definition: ketypes.h:635
FORCEINLINE struct _KPRCB * KeGetCurrentPrcb(VOID)
Definition: ketypes.h:1062
ULONG IpiFrozen
Definition: ketypes.h:671
struct _KIPCR * PKIPCR
ULONG PteBitCache
Definition: ketypes.h:999
_ARM_DOMAINS
Definition: ketypes.h:575
ULONG Cp15_Cr9_PmCountEnableSet
Definition: ketypes.h:414
LARGE_INTEGER IoWriteTransferCount
Definition: ketypes.h:664
ULONG DpcTimeCount
Definition: ketypes.h:743
UCHAR VendorString[13]
Definition: ketypes.h:797
KTIMER_TABLE TimerTable
Definition: ketypes.h:1001
ULONG Return
Definition: ketypes.h:713
ULONG QueueIndex
Definition: ketypes.h:727
LONG AffinitizedSelectionMask
Definition: ketypes.h:892
ULONG Bcr[8]
Definition: ketypes.h:356
ULONG LastTimerHand
Definition: ketypes.h:866
KARM_MINI_STACK PanicMiniStack
Definition: ketypes.h:996
ULONG AlignmentFaultsEnabled
Definition: ketypes.h:499
UCHAR ClockOwner
Definition: ketypes.h:755
ULONG PanicStackBase
Definition: ketypes.h:997
ULONG KernelBcr[8]
Definition: ketypes.h:618
ULONG PrcbPad15[2]
Definition: ketypes.h:964
KIRQL PreviousIrql
Definition: ketypes.h:352
ULONG Cpsr
Definition: ketypes.h:368
Definition: ke.h:280
PROCESSOR_POWER_STATE PowerState
Definition: ketypes.h:795
ULONG CcMdlReadWaitMiss
Definition: ketypes.h:789
SLIST_HEADER InterruptObjectPool
Definition: ketypes.h:810
ULONG Cp15_Cr12_VBARns
Definition: ketypes.h:424
UCHAR QuantumEnd
Definition: ketypes.h:696
SINGLE_LIST_ENTRY AbPropagateBoostsList
Definition: ketypes.h:1006
KSPECIAL_REGISTERS SpecialRegisters
Definition: ketypes.h:530
ULONG DpcNormalLocalInterrupt
Definition: ketypes.h:856
ULONG BaseAddress
Definition: ketypes.h:440
ULONG CcFastMdlReadWait
Definition: ketypes.h:766
ULONG Cp15_Cr9_PmUserEnable
Definition: ketypes.h:421
KEXCEPTION_FRAME * PKCALLOUT_FRAME
Definition: ketypes.h:984
ULONG CcReadAheadIos
Definition: ketypes.h:790
ULONG Cp15_Cr13_SvcRW
Definition: ketypes.h:616
ULONG R3
Definition: ketypes.h:362
ULONG CcPinMappedDataCount
Definition: ketypes.h:770
ULONG RoundRobinReplacementEnabled
Definition: ketypes.h:508
ULONG CachedResidentAvailable
Definition: ketypes.h:806
ULONG Pc
Definition: ketypes.h:367
ULONG Lr
Definition: ketypes.h:365
UCHAR ProcessorVendorString[2]
Definition: ketypes.h:787
ULONG DpcNormalProcessingActive
Definition: ketypes.h:851
ULONG DpcTime
Definition: ketypes.h:735
ULONG Cp15_Cr10_PrimaryMemoryRemap
Definition: ketypes.h:422
KEXCEPTION_FRAME KCALLOUT_FRAME
Definition: ketypes.h:984
UCHAR GroupSchedulingOverQuota
Definition: ketypes.h:908
LONG LookasideIrpFloat
Definition: ketypes.h:655
struct _MACHINE_FRAME * PMACHINE_FRAME
ULONG CcFastMdlReadResourceMiss
Definition: ketypes.h:783
#define KeGetPcr()
Definition: ke.h:25
BOOLEAN DebugRegistersValid
Definition: ketypes.h:348
ULONG DebugDpcTime
Definition: ketypes.h:518
ULONG R2
Definition: ketypes.h:361
PVOID Unused1[3]
Definition: ketypes.h:879
UCHAR _PADDING12_[0x4]
Definition: ketypes.h:972
PVOID Used_Self
Definition: ketypes.h:866
struct _KEXCEPTION_FRAME KEXCEPTION_FRAME
LONG MmCacheReadCount
Definition: ketypes.h:792
ULONG DpcLastCount
Definition: ketypes.h:694
UINT64 HalReserved[8]
Definition: ketypes.h:596
union _ARM_ID_CODE_REGISTER ARM_ID_CODE_REGISTER
struct _KSHARED_READY_QUEUE * SharedReadyQueue
Definition: ketypes.h:974
ULONG R0
Definition: ketypes.h:359
union _ARM_DOMAIN_REGISTER ARM_DOMAIN_REGISTER
ULONG Cp15_Cr5_Dfsr
Definition: ketypes.h:409
KDPC DpcWatchdogDpc
Definition: ketypes.h:801
KDPC TimerExpirationDpc
Definition: ketypes.h:894
ULONG TrapFrame
Definition: ketypes.h:343
_ARM_CACHE_TYPES
Definition: ketypes.h:728
UCHAR KIRQL
Definition: env_spec_w32.h:591
struct _KARM_VFP_STATE * PKARM_VFP_STATE
UCHAR IdleHalt
Definition: ketypes.h:565
LONG ClockKeepAlive
Definition: ketypes.h:712
ULONG Dummy2
Definition: ketypes.h:603
ULONG CcCopyReadWaitMiss
Definition: ketypes.h:782
struct _KPRCB * PKPRCB
PP_LOOKASIDE_LIST PPLookasideList[16]
Definition: ketypes.h:624
KSPIN_LOCK_QUEUE DECLSPEC_ALIGN(128) LockQueue[17]
struct _KTRAP_FRAME KTRAP_FRAME
ULONG Reserved2
Definition: ketypes.h:328
GENERAL_LOOKASIDE_POOL PPNxPagedLookasideList[32]
Definition: ketypes.h:1002
struct _KDESCRIPTOR * PKDESCRIPTOR
struct _KPROCESSOR_STATE * PKPROCESSOR_STATE
KARM_MINI_STACK UdfMiniStack
Definition: ketypes.h:994
ULONG CcDataFlushes
Definition: ketypes.h:778
long LONG
Definition: pedump.c:60
CPU_VENDORS
Definition: ketypes.h:41
ULONG PcrAlign1[24]
Definition: ketypes.h:887
ULONG KeAlignmentFixupCount
Definition: ketypes.h:796
PVOID EtwSupport
Definition: ketypes.h:809
ULONG CcCopyReadNoWait
Definition: ketypes.h:652
struct _KPRCB KPRCB
short SHORT
Definition: pedump.c:59
struct _KEXCEPTION_FRAME * PKEXCEPTION_FRAME
PVOID AcpiReserved
Definition: ketypes.h:615
PKTHREAD NextThread
Definition: ketypes.h:752
ULONG R11
Definition: ketypes.h:366
LONG TargetCount
Definition: ketypes.h:825
CONTEXT ContextFrame
Definition: ketypes.h:531
struct _KSWITCH_FRAME KSWITCH_FRAME
UCHAR _PADDING15_[0x58]
Definition: ketypes.h:1008
struct _KSPECIAL_REGISTERS * PKSPECIAL_REGISTERS
LONG MmMappedWriteIoCount
Definition: ketypes.h:645
ULONG StallScaleFactor
Definition: ketypes.h:878
ULONG DeviceInterrupts
Definition: ketypes.h:965
ULONG FaultAddress
Definition: ketypes.h:342
ULONG Return
Definition: ketypes.h:721
LONG IoReadOperationCount
Definition: ketypes.h:660
ULONG OriginalLr
Definition: ketypes.h:704
unsigned char BOOLEAN
struct _KPRCB * CurrentPrcb
Definition: ketypes.h:864
SHORT ThreadDpcState
Definition: ketypes.h:847
ULONG64 StartCycles
Definition: ketypes.h:919
ULONG SecondLevelCacheSize
Definition: ketypes.h:881
ULONG CarryBorrowExtend
Definition: ketypes.h:463
BOOLEAN ContextFromKFramesUnwound
Definition: ketypes.h:347
ULONG Cp15_Cr2_Ttb1
Definition: ketypes.h:407
ULONG ScbOffset
Definition: ketypes.h:914
UCHAR SkipTick
Definition: ketypes.h:738
struct _KARM_VFP_STATE KARM_VFP_STATE
USHORT MinorVersion
Definition: ketypes.h:597
#define FORCEINLINE
Definition: ntbasedef.h:221
struct _DISPATCHER_CONTEXT * PDISPATCHER_CONTEXT
LONG MmCacheTransitionCount
Definition: ketypes.h:791
_Reserved_ PVOID Reserved
Definition: winddi.h:3974
ULONG Cp15_Cr6_Dfar
Definition: ketypes.h:411
ULONG ReadyScanTick
Definition: ketypes.h:869
ULONG KernelTime
Definition: ketypes.h:733
ULONG Unused0[3]
Definition: ketypes.h:875
ULONG KeContextSwitches
Definition: ketypes.h:648
ULONG Length
Definition: ketypes.h:996
ULONG DpcThreadActive
Definition: ketypes.h:858
union _ARM_TTB_REGISTER ARM_TTB_REGISTER
KDPC AbDpc
Definition: ketypes.h:1007
ULONG SharedReadyQueueOffset
Definition: ketypes.h:963
LONG MmDirtyWriteIoCount
Definition: ketypes.h:643
PVOID Spare1
Definition: ketypes.h:1048
ULONG InterruptCount
Definition: ketypes.h:732
ULONG R0
Definition: ketypes.h:710
KGATE DpcGate
Definition: ketypes.h:875
UCHAR _PADDING11_[0xC]
Definition: ketypes.h:961
ULONG Cp15_Cr13_UsrRW
Definition: ketypes.h:614
ULONG Cp15_Cr1_AuxControl
Definition: ketypes.h:403
KEVENT DpcEvent
Definition: ketypes.h:706
ULONG CcFastReadNotPossible
Definition: ketypes.h:651
ULONG Cp15_Cr1_Control
Definition: ketypes.h:402
ULONG Wvr[1]
Definition: ketypes.h:357
ULONG Cp15_Cr10_NormalMemoryRemap
Definition: ketypes.h:423
ULONG KernelWcr[1]
Definition: ketypes.h:620
ULONG PrcbLock
Definition: ketypes.h:767
UCHAR CoresPerPhysicalProcessor
Definition: ketypes.h:602
ULONG Cp15_Cr2_Ttb0
Definition: ketypes.h:406
struct _UCALLOUT_FRAME UCALLOUT_FRAME
PVOID WheaInfo
Definition: ketypes.h:808
struct _KARM_ARCH_STATE KARM_ARCH_STATE
ULONG CcLazyWriteIos
Definition: ketypes.h:776
ULONG DpcNormalDpcPresent
Definition: ketypes.h:855
ULONG KernelReserved[15]
Definition: ketypes.h:880
ULONG MaxBreakpoints
Definition: ketypes.h:790
ULONG CcMapDataWait
Definition: ketypes.h:769
UINT64 TimerRequest
Definition: ketypes.h:691
struct _KNODE * ParentNode
Definition: ketypes.h:751
PVOID SpBase
Definition: ketypes.h:830
UCHAR _PADDING8_[0x38]
Definition: ketypes.h:897
UCHAR _PADDING9_[0x4]
Definition: ketypes.h:917
LIST_ENTRY WaitListHead
Definition: ketypes.h:722
ULONG GroupSetMember
Definition: ketypes.h:782
ULONG CcFastMdlReadNotPossible
Definition: ketypes.h:767
ULONG CcMdlReadNoWaitMiss
Definition: ketypes.h:788
uint64_t ULONGLONG
Definition: typedefs.h:65
ULONG MPAffinity
Definition: ketypes.h:879
enum _ARM_DOMAINS ARM_DOMAINS
PVOID HyperPte
Definition: ketypes.h:807
UCHAR _PADDING1_[0x4]
Definition: ketypes.h:1083
ULONG Cp15_Cr3_Dacr
Definition: ketypes.h:408
PVOID EstablisherFrame
Definition: ketypes.h:1006
ULONG64 CycleCounterHigh
Definition: ketypes.h:921
PVOID Buffer
Definition: ketypes.h:995
ULONG ClockInterrupts
Definition: ketypes.h:868
PKTHREAD IdleThread
Definition: ketypes.h:753
UCHAR Fill[7]
Definition: ketypes.h:719
SINGLE_LIST_ENTRY AbSelfIoBoostsList
Definition: ketypes.h:1005
ULONG OutputLength
Definition: ketypes.h:382
ULONG Reserved
Definition: ketypes.h:327
PCHAR PriorityState
Definition: ketypes.h:768
UINT64 PacketBarrier
Definition: ketypes.h:627
ULONG KeSystemCalls
Definition: ketypes.h:647
UINT64 CacheProcessorMask[5]
Definition: ketypes.h:816
ULONG Cp15_Cr9_PmCycleCounter
Definition: ketypes.h:415
PVOID * IdtExt
Definition: ketypes.h:1081
ULONG LLCMask
Definition: ketypes.h:977
LONG MmSpinLockOrdering
Definition: ketypes.h:756
UCHAR CpuVendor
Definition: ketypes.h:600
LARGE_INTEGER IoOtherTransferCount
Definition: ketypes.h:665
ULONG CcPinReadWaitMiss
Definition: ketypes.h:787
ULONG CcDataPages
Definition: ketypes.h:779
KPROCESSOR_STATE ProcessorState
Definition: ketypes.h:579
LONG IoOtherOperationCount
Definition: ketypes.h:662
UCHAR LegacyNumber
Definition: ketypes.h:748
PVOID IsrStack
Definition: ketypes.h:998
UCHAR ClockPollCycle
Definition: ketypes.h:714
unsigned __int64 ULONG64
Definition: imports.h:198
ULONG Arg3
Definition: ketypes.h:338
LONG MmCacheIoCount
Definition: ketypes.h:793
unsigned char UCHAR
Definition: xmlstorage.h:181
union _ARM_STATUS_REGISTER ARM_STATUS_REGISTER
ULONG CachedCommit
Definition: ketypes.h:805
UCHAR DpcRoutineActive
Definition: ketypes.h:688
ULONG NodeColor
Definition: ketypes.h:758
KPRCB Prcb
Definition: ketypes.h:889
USHORT ProcessorRevision
Definition: ketypes.h:771
ULONG DpcNormalProcessingRequested
Definition: ketypes.h:852
union _ARM_LOCKDOWN_REGISTER ARM_LOCKDOWN_REGISTER
Definition: ketypes.h:687
KARM_MINI_STACK IrqMiniStack
Definition: ketypes.h:993
UCHAR BuildType
Definition: ketypes.h:599
ULONG CcFastMdlReadNoWait
Definition: ketypes.h:765
UCHAR DpcInterruptRequested
Definition: ketypes.h:686
ULONG Cp15_Cr9_PmSelect
Definition: ketypes.h:420
struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT
ULONG HalReserved[16]
Definition: ketypes.h:882
ULONG CcMdlReadNoWait
Definition: ketypes.h:773
ULONG UserTime
Definition: ketypes.h:734
Definition: typedefs.h:117
ULONG InterruptLastCount
Definition: ketypes.h:871
ULONG ControlPcIsUnwound
Definition: ketypes.h:676
LONG DpcWatchdogPeriod
Definition: ketypes.h:716
UCHAR ThreadDpcEnable
Definition: ketypes.h:695
struct _KSPECIAL_REGISTERS KSPECIAL_REGISTERS
UCHAR CacheCount
Definition: ketypes.h:981
ULONG Bvr[8]
Definition: ketypes.h:355
UCHAR _PADDING2_[0x2]
Definition: ketypes.h:788
struct _KDESCRIPTOR KDESCRIPTOR
struct _KPCR * Self
Definition: ketypes.h:863
union _ARM_CACHE_REGISTER ARM_CACHE_REGISTER
LARGE_INTEGER IoReadTransferCount
Definition: ketypes.h:663
ULONG Cp15_Cr9_PmOverflowStatus
Definition: ketypes.h:419
UINT64 SetMember
Definition: ketypes.h:578
ULONG CcLazyWritePages
Definition: ketypes.h:777
ULONG Cp15_Cr1_Cpacr
Definition: ketypes.h:404
ULONG ReadySummary
Definition: ketypes.h:726
KTIMER DpcWatchdogTimer
Definition: ketypes.h:802
SINGLE_LIST_ENTRY DeferredReadyListHead
Definition: ketypes.h:628
ULONG DpcThreadRequested
Definition: ketypes.h:859
ULONG64 CycleTime
Definition: ketypes.h:930
USHORT ProcessorModel
Definition: ketypes.h:770
UCHAR _PADDING13_[0x74]
Definition: ketypes.h:988
UCHAR PendingBackupTick
Definition: ketypes.h:762
ULONG ExtendedPageTables
Definition: ketypes.h:512
struct _KSTART_FRAME KSTART_FRAME
SHORT NormalDpcState
Definition: ketypes.h:846
struct _REQUEST_MAILBOX * Mailbox
Definition: ketypes.h:824
ULONG DpcNormalThreadSignal
Definition: ketypes.h:853
SHORT DpcRequestSlot[2]
Definition: ketypes.h:843
PVOID KdVersionBlock
Definition: ketypes.h:885
PVOID DpcStack
Definition: ketypes.h:677
ULONG Wcr[1]
Definition: ketypes.h:358
UINT64 TimerHand
Definition: ketypes.h:690
unsigned short USHORT
Definition: pedump.c:61
BOOLEAN ExceptionActive
Definition: ketypes.h:346
ULONG Sp
Definition: ketypes.h:364
LONG DpcRequestSummary
Definition: ketypes.h:842
ULONG KeExceptionDispatchCount
Definition: ketypes.h:701
ULONG_PTR KAFFINITY
Definition: compat.h:75
LONG Sleeping
Definition: ketypes.h:762
ULONG Cp15_Cr13_UsrRO
Definition: ketypes.h:615
ULONG NodeShiftedColor
Definition: ketypes.h:759
LONG DpcSetEventRequest
Definition: ketypes.h:699
ULONG InterruptRate
Definition: ketypes.h:872
ULONG CcFastReadNoWait
Definition: ketypes.h:649
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:254
USHORT Dummy1
Definition: ketypes.h:602
union _ARM_CONTROL_REGISTER ARM_CONTROL_REGISTER
union _ARM_LOCKDOWN_REGISTER * PARM_LOCKDOWN_REGISTER
ULONG ScanSiblingMask
Definition: ketypes.h:976
ULONG Cp15_Cr13_ContextId
Definition: ketypes.h:425
USHORT MajorVersion
Definition: ketypes.h:598
UCHAR _PADDING14_[0x8]
Definition: ketypes.h:991
struct _KARM_MINI_STACK KARM_MINI_STACK
USHORT MajorVersion
Definition: ketypes.h:876
KIRQL CurrentIrql
Definition: ketypes.h:1055
KARM_ARCH_STATE ArchState
Definition: ketypes.h:644
UCHAR DispatchInterrupt
Definition: ketypes.h:1070
UCHAR DpcThreadActive
Definition: ketypes.h:689
struct _KSPIN_LOCK_QUEUE * LockArray
Definition: ketypes.h:1051
USHORT Pad
Definition: ketypes.h:601
_In_ CLIPOBJ _In_ BRUSHOBJ _In_ LONG _In_ LONG _In_ LONG x2
Definition: winddi.h:3706
ULONG MaxWatchpoints
Definition: ketypes.h:791
ULONG R1
Definition: ketypes.h:360
MACHINE_FRAME MachineFrame
Definition: ketypes.h:998
ULONG CcMapDataNoWaitMiss
Definition: ketypes.h:784
ULONG OutputBuffer
Definition: ketypes.h:381
USHORT InterruptPad
Definition: ketypes.h:1073
LIST_ENTRY DispatcherReadyListHead[32]
Definition: ketypes.h:731
LONG MmCopyOnWriteCount
Definition: ketypes.h:630
UCHAR LogicalProcessorsPerCore
Definition: ketypes.h:603
LONG MmPageReadCount
Definition: ketypes.h:636
PKARM_VFP_STATE VfpState
Definition: ketypes.h:354
struct _KARM_VFP_STATE * Link
Definition: ketypes.h:325
UCHAR _PADDING5_[0x4]
Definition: ketypes.h:873
UCHAR Group
Definition: ketypes.h:571
LIST_ENTRY ScbList
Definition: ketypes.h:896
unsigned int ULONG
Definition: retypes.h:1
ULONG Cp15_Cr5_Ifsr
Definition: ketypes.h:410
UCHAR GroupIndex
Definition: ketypes.h:784
ULONG CoreProcessorSet
Definition: ketypes.h:975
ULONG ScanSiblingIndex
Definition: ketypes.h:979
ULONG64 AffinitizedCycles
Definition: ketypes.h:918
UCHAR _PADDING7_[0x38]
Definition: ketypes.h:888
UCHAR PendingTickFlags
Definition: ketypes.h:758
UCHAR NestingLevel
Definition: ketypes.h:570
ULONG Number
Definition: ketypes.h:766
KSPIN_LOCK_QUEUE LockQueue[LockQueueMaximumLock]
Definition: ketypes.h:623
struct _KSTART_FRAME * PKSTART_FRAME
union _CPU_INFO CPU_INFO
ULONG CcPinReadNoWait
Definition: ketypes.h:771
ULONG KernelBvr[8]
Definition: ketypes.h:617
ULONG PteBitOffset
Definition: ketypes.h:1000
struct _KTRAP_FRAME * PKTRAP_FRAME
struct _MACHINE_FRAME MACHINE_FRAME
ULONG CcFastReadWait
Definition: ketypes.h:650
LONG MmPageReadIoCount
Definition: ketypes.h:637
NT_TIB NtTib
Definition: ketypes.h:857
unsigned long long UINT64
ULONG DpcRequestRate
Definition: ketypes.h:684
KENTROPY_TIMING_STATE EntropyTimingState
Definition: ketypes.h:923
ULONGLONG VfpD[32]
Definition: ketypes.h:329
ULONG DpcNormalTimerExpiration
Definition: ketypes.h:854
ULONG R2
Definition: ketypes.h:712
LONG MaximumDpcQueueDepth
Definition: ketypes.h:683
ULONG PageColor
Definition: ketypes.h:757
ULONG FaultStatus
Definition: ketypes.h:339
ULONG CcLazyWriteHotSpots
Definition: ketypes.h:775
ULONG ContextFlagsInit
Definition: ketypes.h:793
UCHAR PendingTick
Definition: ketypes.h:761
LONG MmDirtyPagesWriteCount
Definition: ketypes.h:642
ULONG64 GenerationTarget
Definition: ketypes.h:920
PVOID Idt[256]
Definition: ketypes.h:1080
LONG DpcWatchdogCount
Definition: ketypes.h:717
UCHAR PrcbPad10[3]
Definition: ketypes.h:798
struct _KPROCESSOR_STATE KPROCESSOR_STATE
PVOID Unused3
Definition: ketypes.h:886
ULONG CcLostDelayedWrites
Definition: ketypes.h:780
UCHAR ReservedMustBeZero
Definition: ketypes.h:749
union _ARM_CACHE_REGISTER * PARM_CACHE_REGISTER
ULONG PeriodicBias
Definition: ketypes.h:746
ULONG AvailableTime
Definition: ketypes.h:913
UCHAR _PADDING10_[0x58]
Definition: ketypes.h:931
PVOID IsrDpcStats
Definition: ketypes.h:966
ULONG CcCopyReadNoWaitMiss
Definition: ketypes.h:654
KARM_MINI_STACK FiqMiniStack
Definition: ketypes.h:992
union _ARM_ID_CODE_REGISTER * PARM_ID_CODE_REGISTER
ULONG DpcThreadSpare
Definition: ketypes.h:860
CHAR PreviousMode
Definition: ketypes.h:313
UCHAR IdleSchedule
Definition: ketypes.h:698
ULONG Cp15_Cr9_PmEventCounter[31]
Definition: ketypes.h:416
UCHAR PollSlot
Definition: ketypes.h:740
GENERAL_LOOKASIDE_POOL PPPagedLookasideList[NUMBER_POOL_LOOKASIDE_LISTS]
Definition: ketypes.h:626
CHAR CpuType
Definition: ketypes.h:580
ULONG WaitLock
Definition: ketypes.h:890
ULONG AdjustDpcThreshold
Definition: ketypes.h:737
ULONG RequestSummary
Definition: ketypes.h:827
UCHAR _PADDING4_[0x8]
Definition: ketypes.h:823
ULONG CcPinReadWait
Definition: ketypes.h:772