30 #define __ARMV6__ KeIsArmV6 53 ULONG PageDirectory[2];
71 for (
i = 0;
i < 4;
i++)
91 Prcb->MultiThreadSetMaster = Prcb;
101 PageDirectory[0] = 0;
102 PageDirectory[1] = 0;
108 InitProcess->QuantumReset =
MAXCHAR;
113 DPRINT1(
"ARM MPCore not supported\n");
125 InitThread->NextProcessor =
Number;
128 InitThread->Affinity = 1 <<
Number;
130 InitProcess->ActiveProcessors = 1 <<
Number;
136 Prcb->CurrentThread = InitThread;
137 Prcb->NextThread =
NULL;
138 Prcb->IdleThread = InitThread;
170 LoaderBlock->Prcb = 0;
188 Pcr->Prcb.CurrentThread = IdleThread;
191 Pcr->Self = (
PKPCR)Pcr;
192 Pcr->CurrentPrcb = &Pcr->Prcb;
199 Pcr->Prcb.MajorVersion = 1;
200 Pcr->Prcb.MinorVersion = 1;
203 Pcr->Prcb.BuildType = 0;
212 Pcr->Prcb.Number = (
UCHAR)ProcessorNumber;
213 Pcr->Prcb.SetMember = 1 << ProcessorNumber;
222 Pcr->Prcb.PanicStackBase = (
ULONG)PanicStack;
223 Pcr->Prcb.IsrStack = InterruptStack;
226 Pcr->Prcb.MultiThreadProcessorSet = Pcr->Prcb.SetMember;
295 Pcr->StallScaleFactor = 50;
348 InitialThread = (
PKTHREAD)LoaderBlock->Thread;
349 InitialProcess = (
PKPROCESS)LoaderBlock->Process;
358 if (Cpu)
goto AppCpuInit;
365 (
PVOID)LoaderBlock->u.Arm.PanicStack,
366 (
PVOID)LoaderBlock->u.Arm.InterruptStack);
373 InitialThread->
ApcState.Process = InitialProcess;
411 (
PVOID)LoaderBlock->KernelStack,
VOID NTAPI KiInitMachineDependent(VOID)
VOID NTAPI KiInitSystem(VOID)
#define KeLowerIrql(oldIrql)
#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
#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
union _LOADER_PARAMETER_BLOCK::@3334 u
VOID NTAPI KeInitializeProcess(struct _KPROCESS *Process, KPRIORITY Priority, KAFFINITY Affinity, PULONG_PTR DirectoryTableBase, IN BOOLEAN Enable)
KINTERRUPT KxUnexpectedInterrupt
VOID NTAPI KiInitializePcr(IN PKIPCR Pcr, IN ULONG ProcessorNumber, IN PKTHREAD IdleThread, IN PVOID DpcStack)
VOID KiInitializeSystem(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
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)
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)
VOID FASTCALL KiIdleLoop(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 KeGetCurrentThread
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
LIST_ENTRY KiProcessListHead