sync to trunk head (37853) (except rbuild changes)
[reactos.git] / reactos / ntoskrnl / include / internal / i386 / ke.h
1 #ifndef __NTOSKRNL_INCLUDE_INTERNAL_I386_KE_H
2 #define __NTOSKRNL_INCLUDE_INTERNAL_I386_KE_H
3
4 #define FRAME_EDITED 0xFFF8
5
6 #ifndef __ASM__
7
8 #include "intrin_i.h"
9 #include "v86m.h"
10
11 #define KeArchFnInit() Ke386FnInit()
12 #define KeArchHaltProcessor() Ke386HaltProcessor()
13
14 extern ULONG Ke386CacheAlignment;
15
16 struct _KPCR;
17 VOID
18 KiInitializeGdt(struct _KPCR* Pcr);
19 VOID
20 Ki386ApplicationProcessorInitializeTSS(VOID);
21
22 VOID
23 FASTCALL
24 Ki386InitializeTss(
25 IN PKTSS Tss,
26 IN PKIDTENTRY Idt,
27 IN PKGDTENTRY Gdt
28 );
29
30 VOID
31 KiGdtPrepareForApplicationProcessorInit(ULONG Id);
32 VOID
33 Ki386InitializeLdt(VOID);
34 VOID
35 Ki386SetProcessorFeatures(VOID);
36
37 VOID
38 NTAPI
39 KiSetCR0Bits(VOID);
40
41 VOID
42 NTAPI
43 KiGetCacheInformation(VOID);
44
45 BOOLEAN
46 NTAPI
47 KiIsNpxPresent(
48 VOID
49 );
50
51 BOOLEAN
52 NTAPI
53 KiIsNpxErrataPresent(
54 VOID
55 );
56
57 VOID
58 NTAPI
59 KiSetProcessorType(VOID);
60
61 ULONG
62 NTAPI
63 KiGetFeatureBits(VOID);
64
65 ULONG KeAllocateGdtSelector(ULONG Desc[2]);
66 VOID KeFreeGdtSelector(ULONG Entry);
67 VOID
68 KeApplicationProcessorInitDispatcher(VOID);
69 VOID
70 KeCreateApplicationProcessorIdleThread(ULONG Id);
71
72 VOID
73 NTAPI
74 Ke386InitThreadWithContext(PKTHREAD Thread,
75 PKSYSTEM_ROUTINE SystemRoutine,
76 PKSTART_ROUTINE StartRoutine,
77 PVOID StartContext,
78 PCONTEXT Context);
79 #define KeArchInitThreadWithContext(Thread,SystemRoutine,StartRoutine,StartContext,Context) \
80 Ke386InitThreadWithContext(Thread,SystemRoutine,StartRoutine,StartContext,Context)
81
82 #ifdef _NTOSKRNL_ /* FIXME: Move flags above to NDK instead of here */
83 VOID
84 NTAPI
85 KiThreadStartup(PKSYSTEM_ROUTINE SystemRoutine,
86 PKSTART_ROUTINE StartRoutine,
87 PVOID StartContext,
88 BOOLEAN UserThread,
89 KTRAP_FRAME TrapFrame);
90 #endif
91
92 #endif
93 #endif /* __NTOSKRNL_INCLUDE_INTERNAL_I386_KE_H */
94
95 /* EOF */