Author: tkreuzer
Date: Sun Jul 31 19:26:11 2011
New Revision: 53008
URL: http://svn.reactos.org/svn/reactos?rev=53008&view=rev
Log:
[NTOSKRNL]
Fix OBTRACE definition.
the macro used __VA_ARGS__ and passes that to DPRINT(fmt, ...)
The preprocessor interpretes all arguments of __VA_ARGS__ as one token. This token was now passed as the first parameter of DPRINT1. This caused wrong parameters being used, resulting in a crash.
Modified:
trunk/reactos/ntoskrnl/include/internal/ob.h
Modified: trunk/reactos/ntoskrnl/include/internal/ob.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/ob.h [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/include/internal/ob.h [iso-8859-1] Sun Jul 31 19:26:11 2011
@@ -31,7 +31,7 @@
if (x & ObpTraceLevel) DbgPrint(__VA_ARGS__)
#endif
#else
-#define OBTRACE(x, ...) DPRINT(__VA_ARGS__)
+#define OBTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__)
#endif
//
Author: cgutman
Date: Sun Jul 31 18:47:35 2011
New Revision: 53006
URL: http://svn.reactos.org/svn/reactos?rev=53006&view=rev
Log:
[FLOPPY]
- Report recalibration failure if the EC flag is set after seeking to fix a hang while trying to read
- Thanks to igorko for testing
Modified:
trunk/reactos/drivers/storage/floppy/hardware.c
Modified: trunk/reactos/drivers/storage/floppy/hardware.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/floppy/har…
==============================================================================
--- trunk/reactos/drivers/storage/floppy/hardware.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/storage/floppy/hardware.c [iso-8859-1] Sun Jul 31 18:47:35 2011
@@ -448,7 +448,10 @@
/* Is the equipment check flag set? Could be no disk in drive... */
if((Buffer[0] & SR0_EQUIPMENT_CHECK) == SR0_EQUIPMENT_CHECK)
- INFO_(FLOPPY, "HwRecalibrateResult: Seeked to track 0 successfully, but EC is set; returning STATUS_SUCCESS anyway\n");
+ {
+ WARN_(FLOPPY, "HwRecalibrateResult: Seeked to track 0 successfully, but EC is set; returning failure\n");
+ return STATUS_UNSUCCESSFUL;
+ }
return STATUS_SUCCESS;
}
Author: tkreuzer
Date: Sat Jul 30 20:34:55 2011
New Revision: 53003
URL: http://svn.reactos.org/svn/reactos?rev=53003&view=rev
Log:
[ISOBOOT]
Use a high segment and 0 offset when loading setupldr.
This fixes problems with an award bios.
Thanks to Igor Paliychuk (igorko) for his help and patience burning / testing dozens of isos
Fixes boot regression of cmake builds on real hw.
Modified:
trunk/reactos/boot/freeldr/bootsect/isoboot.S
Modified: trunk/reactos/boot/freeldr/bootsect/isoboot.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/bootsect/isob…
==============================================================================
--- trunk/reactos/boot/freeldr/bootsect/isoboot.S [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/bootsect/isoboot.S [iso-8859-1] Sat Jul 30 20:34:55 2011
@@ -360,10 +360,13 @@
call crlf
#endif
- mov bx, FREELDR_BASE // bx = load address
+// use high segment, as some bios can fail, when offset is too big
+ mov bx, FREELDR_BASE / 16 // es = load segment
+ mov es, bx
+ xor ebx, ebx // bx = load offset
mov si, di // restore file pointer
- mov cx, HEX(0FFFF) // load the whole file
- call getfssec // get the whole file
+ mov cx, HEX(0FFFF) // load the whole file
+ call getfssec // get the whole file
#ifdef DEBUG_MESSAGES
mov si, offset startldr_msg