30 #define __ARMV6__ KeIsArmV6 52 ULONG PageDirectory[2];
70 for (
i = 0;
i < 4;
i++)
90 Prcb->MultiThreadSetMaster = Prcb;
100 PageDirectory[0] = 0;
101 PageDirectory[1] = 0;
107 InitProcess->QuantumReset =
MAXCHAR;
112 DPRINT1(
"ARM MPCore not supported\n");
124 InitThread->NextProcessor =
Number;
127 InitThread->Affinity = 1 <<
Number;
129 InitProcess->ActiveProcessors = 1 <<
Number;
135 Prcb->CurrentThread = InitThread;
136 Prcb->NextThread =
NULL;
137 Prcb->IdleThread = InitThread;
169 LoaderBlock->Prcb = 0;
187 Pcr->Prcb.CurrentThread = IdleThread;
190 Pcr->Self = (
PKPCR)Pcr;
191 Pcr->CurrentPrcb = &Pcr->Prcb;
202 Pcr->Prcb.BuildType = 0;
211 Pcr->Prcb.Number = (
UCHAR)ProcessorNumber;
212 Pcr->Prcb.SetMember = 1 << ProcessorNumber;
221 Pcr->Prcb.PanicStackBase = (
ULONG)PanicStack;
222 Pcr->Prcb.IsrStack = InterruptStack;
225 Pcr->Prcb.MultiThreadProcessorSet = Pcr->Prcb.SetMember;
294 Pcr->StallScaleFactor = 50;
347 InitialThread = (
PKTHREAD)LoaderBlock->Thread;
348 InitialProcess = (
PKPROCESS)LoaderBlock->Process;
357 if (Cpu)
goto AppCpuInit;
364 (
PVOID)LoaderBlock->u.Arm.PanicStack,
365 (
PVOID)LoaderBlock->u.Arm.InterruptStack);
372 InitialThread->
ApcState.Process = InitialProcess;
410 (
PVOID)LoaderBlock->KernelStack,
VOID NTAPI KiInitMachineDependent(VOID)
DECLSPEC_NORETURN VOID KiIdleLoop(VOID)
VOID NTAPI KiInitSystem(VOID)
#define PROCESSOR_ARCHITECTURE_ARM
FORCEINLINE VOID KiReleasePrcbLock(IN PKPRCB Prcb)
LARGE_INTEGER NTAPI KiComputeReciprocal(IN LONG Divisor, OUT PUCHAR Shift)
FORCEINLINE ARM_CONTROL_REGISTER KeArmControlRegisterGet(VOID)
IN BOOLEAN OUT PSTR Buffer
DECLSPEC_NORETURN VOID KiInitializeSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
#define NX_SUPPORT_POLICY_OPTIN
void __cdecl _enable(void)
IN CINT OUT PVOID PortInformation
VOID NTAPI ExpInitializeExecutive(IN ULONG Cpu, IN PLOADER_PARAMETER_BLOCK LoaderBlock)
struct _EPROCESS * PEPROCESS
VOID __cdecl KiInterruptTemplate(VOID)
VOID HalSweepIcache(VOID)
ULONG KiAdjustDpcThreshold
VOID NTAPI KeInitializeProcess(struct _KPROCESS *Process, KPRIORITY Priority, KAFFINITY Affinity, PULONG_PTR DirectoryTableBase, IN BOOLEAN Enable)
KINTERRUPT KxUnexpectedInterrupt
#define DECLSPEC_NORETURN
VOID NTAPI KiInitializePcr(IN PKIPCR Pcr, IN ULONG ProcessorNumber, IN PKTHREAD IdleThread, IN PVOID DpcStack)
struct _KTHREAD * PKTHREAD
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
VOID NTAPI HalInitializeProcessor(IN ULONG ProcessorNumber, IN PLOADER_PARAMETER_BLOCK LoaderBlock)
VOID KiApcInterrupt(VOID)
FORCEINLINE VOID KeArmControlRegisterSet(IN ARM_CONTROL_REGISTER ControlRegister)
FORCEINLINE VOID KiAcquirePrcbLock(IN PKPRCB Prcb)
VOID KiUnexpectedInterrupt(VOID)
LARGE_INTEGER KiTimeIncrementReciprocal
UCHAR KiTimeIncrementShiftCount
PLOADER_PARAMETER_BLOCK KeLoaderBlock
KIRQL FASTCALL KfRaiseIrql(IN KIRQL NewIrql)
union _LOADER_PARAMETER_BLOCK::@3320 u
USHORT KeProcessorArchitecture
USHORT KeProcessorRevision
VOID NTAPI KdPortPutByteEx(PCPPORT PortInformation, UCHAR ByteToSend)
_In_opt_ PFILE_OBJECT _In_opt_ PETHREAD Thread
VOID KiInitializeMachineType(VOID)
KPROCESSOR_STATE ProcessorState
VOID NTAPI KiDispatchInterrupt(VOID)
FORCEINLINE ARM_ID_CODE_REGISTER KeArmIdCodeRegisterGet(VOID)
BOOLEAN NTAPI KdPollBreakIn(VOID)
_In_opt_ PENTER_STATE_SYSTEM_HANDLER _In_opt_ PVOID _In_ LONG _In_opt_ LONG volatile * Number
KAFFINITY KeActiveProcessors
ULONG DispatchCode[DISPATCH_LENGTH]
#define PCR_MINOR_VERSION
VOID KiPassiveRelease(VOID)
ULONG KiMaximumDpcQueueDepth
VOID FASTCALL KfLowerIrql(IN KIRQL NewIrql)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
BOOLEAN NTAPI KdInitSystem(ULONG Reserved, PLOADER_PARAMETER_BLOCK LoaderBlock)
ULONG DbgPrintEarly(const char *fmt,...)
KPRIORITY NTAPI KeSetPriorityThread(IN PKTHREAD Thread, IN KPRIORITY Priority)
VOID NTAPI KeInitializeThread(IN PKPROCESS Process, IN OUT PKTHREAD Thread, IN PKSYSTEM_ROUTINE SystemRoutine, IN PKSTART_ROUTINE StartRoutine, IN PVOID StartContext, IN PCONTEXT Context, IN PVOID Teb, IN PVOID KernelStack)
PKPRCB KiProcessorBlock[]
#define InitializeListHead(ListHead)
#define PRCB_BUILD_UNIPROCESSOR
int __cdecl vsprintf(char *_Dest, const char *_Format, va_list _Args)
VOID NTAPI KiInitSpinLocks(IN PKPRCB Prcb, IN CCHAR Number)
KARM_ARCH_STATE ArchState
VOID HalSweepDcache(VOID)
#define DBG_STATUS_CONTROL_C
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
struct _ETHREAD * PETHREAD
__analysis_noreturn NTSYSAPI VOID NTAPI DbgBreakPointWithStatus(_In_ ULONG Status)
#define PRCB_MINOR_VERSION
#define KeGetCurrentThread
VOID NTAPI KeLowerIrql(KIRQL NewIrql)
PKINTERRUPT_ROUTINE DispatchAddress
VOID NTAPI KiInitializeKernel(IN PKPROCESS InitProcess, IN PKTHREAD InitThread, IN PVOID IdleStack, IN PKPRCB Prcb, IN CCHAR Number, IN PLOADER_PARAMETER_BLOCK LoaderBlock)
#define PCR_MAJOR_VERSION
#define PRCB_MAJOR_VERSION
LIST_ENTRY KiProcessListHead