[NTOS:MM] Quick fix: use SIZE_T instead of ULONG, because ULONG is 32-bit and on...
[reactos.git] / ntoskrnl / ke / thrdobj.c
index 1e3e79e..142ff18 100644 (file)
@@ -530,7 +530,12 @@ KeStartThread(IN OUT PKTHREAD Thread)
     NodePrcb = KiProcessorBlock[Process->ThreadSeed];
 
     /* Calculate affinity mask */
+#ifdef _M_ARM
+    DbgBreakPoint();
+    Set = 0;
+#else
     Set = ~NodePrcb->MultiThreadProcessorSet;
+#endif
     Mask = (ULONG)(Node->ProcessorMask & Process->Affinity);
     Set &= Mask;
     if (Set) Mask = Set;
@@ -803,8 +808,8 @@ KeInitThread(IN OUT PKTHREAD Thread,
     Thread->ServiceTable = KeServiceDescriptorTable;
 
     /* Setup APC Fields */
-    InitializeListHead(&Thread->ApcState.ApcListHead[0]);
-    InitializeListHead(&Thread->ApcState.ApcListHead[1]);
+    InitializeListHead(&Thread->ApcState.ApcListHead[KernelMode]);
+    InitializeListHead(&Thread->ApcState.ApcListHead[UserMode]);
     Thread->ApcState.Process = Process;
     Thread->ApcStatePointer[OriginalApcEnvironment] = &Thread->ApcState;
     Thread->ApcStatePointer[AttachedApcEnvironment] = &Thread->SavedApcState;
@@ -838,8 +843,9 @@ KeInitThread(IN OUT PKTHREAD Thread,
     TimerWaitBlock->WaitListEntry.Flink = &Timer->Header.WaitListHead;
     TimerWaitBlock->WaitListEntry.Blink = &Timer->Header.WaitListHead;
 
-    /* Set the TEB */
+    /* Set the TEB and process */
     Thread->Teb = Teb;
+    Thread->Process = Process;
 
     /* Check if we have a kernel stack */
     if (!KernelStack)