This change is also not compatible with current cleaning scripts in RosBE and on the Buildslaves (which only delete "makefile.auto"), leading to possibly unclean builds if the generated makefile wouldn't be deleted.
The ultimate goal would be putting the generated makefiles into the intermediate directories, so we also save one cleaning step.
svn path=/trunk/; revision=34536
- Delete the service from the internal list
- patch by Yuri Sidorov <jura at cp-lab dot com>
See issue #3523 for more details.
svn path=/trunk/; revision=34532
Remove the svn:eol-style property and set svn:mime-type to application/octet-stream, so that these files aren't modified by SVN.
svn path=/trunk/; revision=34531
- Fix unloading function to check if a driver to be unloaded really has DriverSection set, and if not, fail.
- Inspired by bug 3221.
See issue #3221 for more details.
svn path=/trunk/; revision=34526
- Fix BSOD in NtUserWaitForInputIdle because KeWaitForMultipleObjects expects actual pointers to objects, not handles.
- Fix failure branches to have UserLeave and/or object dereference where needed.
See issue #3522 for more details.
svn path=/trunk/; revision=34525
- 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