- Speed-up user mode exception handling by calling RtlDispatchException() first if there is no active user mode debugger. This avoids switches to kernel mode if exception can be handled by SEH.
See issue #3485 for more details.
svn path=/trunk/; revision=34521
- Remove a hack in the executive handle implementation, which worked around a memory corruption bug. Revision 32770 should have fixed the bug hidden by this hack.
See issue #3512 for more details.
svn path=/trunk/; revision=34520
- use coordinate transformation
- if transform is not diagonal, call IntGdiPolygon
IntRectangle/IntGdiPolygon:
- use special locking order to avoid lockups
- don't unlock objects that weren't locked
IntGdiPie:
- if transform is cheese, call IntGdiCheeseCake
svn path=/trunk/; revision=34514
$(ROS_ARCH) will only work if an environment variable with the same name is set. But its value and the default value (if none was given) is stored in $(ARCH).
svn path=/trunk/; revision=34505
- Timers now work, along with full scheduling, dispatching and context switching, so our 5 second wait in init.c allows other threads to runs, then completes appropriately.
svn path=/trunk/; revision=34491
- Context switching doesn't really work -- but we've been lucky since we're stuck on a priority 31 thread.
- Instead of worrying about this later when the system will be fully operational, this forces us to expose these bugs, and to make sure everything works.
- This will stress our context switching, waiting, unwaiting and scheduling code on ARM but once it all works well, after 5 seconds we'll be back on track.
svn path=/trunk/; revision=34487
- Exit the trap after a prefetch abort. DbgPrint fully works now, and we're back where we started -- RamdiskCreateDiskDevice.
svn path=/trunk/; revision=34486
- No, we don't sanitize anything right now. There's no user-mode at this point, so it doesn't matter. If you think we should sanitize right now, you need to get out and get laid.
- So this brings us back to KiPrefetchAbortHandler's while (TRUE).
- We have to make sure the funky PC modifications are going to work well, and after that, we can exit the trap.
svn path=/trunk/; revision=34483
- We now get to the point where we call KiDebugRoutine, which is registered as KdpEnterDebuggerException.
- KdpEnterDebuggerException reads our exception record and understands this is a BREAKPOINT_PRINT.
- It then calls the KdpServiceDispatcher.
- This, in turn, calls KdpPrintString.
- Which in turn loops the "debug providers" and calls KdpSerialPrintString.
- Which calls into KDCOM.
- And we see this on the debug log: (ntoskrnl/kd/kdio.c:191) .
- Epic Win. Need to implement KeContextToTrapFrame now.
svn path=/trunk/; revision=34482
- We aren't really sure where the hell we are since we can't printf anything otherwise we'll trap again and end up in an infinite loop.
- So we're debugging with while (TRUE).
svn path=/trunk/; revision=34481
- We pretty much try to duplicate what happens on x86, and build an exception record with the right information.
- We are seeing the debug string in R1 and its length in R2, so we're on the right track.
- We call KiDispatchException now, which isn't yet implemented.
- Yup, all this work just to see a damn debug string the "*proper* NT way". Thanks, asshole.
svn path=/trunk/; revision=34480
- Just like on x86, this routine generates a breakpoint -- on ARM this is done with BKPT followed by an index.
- We use the BREAKPOINT_PRINT index just like on x86.
- This generates a prefetch abort -- so now we implement the prefetch abort handler. Thanks to the trap macros, this was 10 lines of code.
- This calls into the real C handler, which is now unimplemented and hangs the whole system, so we've regressed way back (on purpose).
svn path=/trunk/; revision=34474
modified dll/win32/kernel32/kernel32.def
Stubbed out GetLocaleInfoEx
modified include/psdk/winnls.h
Added some Vista and later NLS defines to the SDK
modified dll/nls/idndl/idndl.rbuild
Correctly set a NULL entry point for idndl.dll
modified dll/nls/idndl_redist/idndl_redist.rbuild
modified dll/nls/normaliz_redist/normaliz_redist.rbuild
Give unique names to the redistributable versions of idndl.dll and normaliz.dll
Everything else
Scattered NLS modules in the appropriate locations, as per standard source tree layout
svn path=/trunk/; revision=34463
- inf-files with multi language support are strongly recommended to be in utf-16 encoding (with byte order mark)
- at the moment only inf-files for second stage setup can contain translations (due to limitations of inflib)
- some of the inf files for hardware installation (/media/inf) are converted to utf-16 and contain a basic German translation in the [Strings.0407] section
- for more details read /reactos/branches/matthias-i18n/media/inf/README
- TODO: for other/further languages add other translations in new string sections
svn path=/trunk/; revision=34461
- Stub out ARM version.
- Eventually the arm_kprintf hack will go away and true serial debugging output will be done through kdcom just like on x86.
- Fix formatting of bootvid.rbuild.
svn path=/trunk/; revision=34456