1 #ifndef __NTOSKRNL_INCLUDE_INTERNAL_I386_KE_H
2 #define __NTOSKRNL_INCLUDE_INTERNAL_I386_KE_H
5 #pragma GCC system_header
8 #define FRAME_EDITED 0xFFF8
14 #define KeArchFnInit() Ke386FnInit()
15 #define KeArchHaltProcessor() Ke386HaltProcessor()
17 extern ULONG Ke386CacheAlignment
;
21 KiInitializeGdt(struct _KPCR
* Pcr
);
23 Ki386ApplicationProcessorInitializeTSS(VOID
);
34 KiGdtPrepareForApplicationProcessorInit(ULONG Id
);
36 Ki386InitializeLdt(VOID
);
38 Ki386SetProcessorFeatures(VOID
);
46 KiGetCacheInformation(VOID
);
62 KiSetProcessorType(VOID
);
66 KiGetFeatureBits(VOID
);
68 ULONG
KeAllocateGdtSelector(ULONG Desc
[2]);
69 VOID
KeFreeGdtSelector(ULONG Entry
);
71 KeApplicationProcessorInitDispatcher(VOID
);
73 KeCreateApplicationProcessorIdleThread(ULONG Id
);
77 (NTAPI
*PKSYSTEM_ROUTINE
)(PKSTART_ROUTINE StartRoutine
,
82 Ke386InitThreadWithContext(PKTHREAD Thread
,
83 PKSYSTEM_ROUTINE SystemRoutine
,
84 PKSTART_ROUTINE StartRoutine
,
87 #define KeArchInitThreadWithContext(Thread,SystemRoutine,StartRoutine,StartContext,Context) \
88 Ke386InitThreadWithContext(Thread,SystemRoutine,StartRoutine,StartContext,Context)
90 #ifdef _NTOSKRNL_ /* FIXME: Move flags above to NDK instead of here */
93 KiThreadStartup(PKSYSTEM_ROUTINE SystemRoutine
,
94 PKSTART_ROUTINE StartRoutine
,
97 KTRAP_FRAME TrapFrame
);
101 #endif /* __NTOSKRNL_INCLUDE_INTERNAL_I386_KE_H */