[ros-dev] compile problem
Hartmut Birr
hartmut.birr at gmx.de
Sat Jun 18 23:38:04 CEST 2005
Ge van Geldorp wrote:
>>From: Hartmut Birr
>>
>>does anyone understand this error message:
>>ntoskrnl\io\driver.c:1693: error: unable to find a register
>>to spill in class `CREG'
>>
>>
>
>I got the same error message recently (only for DIREG instead of CREG) when
>I put edi both in the input list ("=D") and in the clobber list ("%edi") of
>some extended assembly. Rewriting the asm code to load edi ourselves instead
>of letting the compiler do it fixed that.
>
>
There isn't any assembler code in driver.c. If I change the code in
IopReinitializeDrivers a little bit, I've no problems.
M:\Sandbox\ros_work\reactos>svn diff ntoskrnl\io\driver.c
Index: ntoskrnl/io/driver.c
===================================================================
--- ntoskrnl/io/driver.c (Revision 16057)
+++ ntoskrnl/io/driver.c (Arbeitskopie)
@@ -1659,16 +1659,16 @@
KeAcquireSpinLock(&DriverReinitListLock,
&Irql);
- if (DriverReinitTailEntry == NULL)
+ Entry = DriverReinitTailEntry;
+
+ KeReleaseSpinLock(&DriverReinitListLock,
+ Irql);
+
+ if (Entry == NULL)
{
- KeReleaseSpinLock(&DriverReinitListLock,
- Irql);
return;
}
- KeReleaseSpinLock(&DriverReinitListLock,
- Irql);
-
for (;;)
{
Entry = ExInterlockedRemoveHeadList(&DriverReinitListHead,
- Hartmut
More information about the Ros-dev
mailing list