Fix portable bootsector and make it gas compatible (its opcode identical to the nasm compiled one and works correctly)
svn path=/trunk/; revision=52153
- Fix a bug in some completion routines that resulted in failures being treated as successes
- Fix various cancellation bugs
- Fixes termination of programs that open listening sockets (Firefox, server.exe, tcpsvcs.exe, telnetd.exe, etc) and should increase stability in these programs as well
svn path=/trunk/; revision=52152
Fix the "portable" version of the fat32 bootsector
Its now mostly identical to the one we currently use, only a few encoding differences
svn path=/trunk/; revision=52147
- Add new tool obj2bin, that converts a coff object file into a raw binary file
- Move pe/coff types into a common header file pecoff.h
svn path=/trunk/; revision=52133
Implement support for SafeMode boot
Patch by Adam Kachwalla (geekdundee at gmail dot com)
See issue #6275 for more details.
svn path=/trunk/; revision=52132
* Temporarily disable PCH support, as it breaks build for windows users with ccache (most importantly our windows buildbot).
svn path=/trunk/; revision=52131
Remove useless casts to volatile ULONG. It doesn't make sense to cast something to volatile, after the pointer is already dereferenced. But we don't need this here anyway.
svn path=/trunk/; revision=52118
Fixes to r52065:
- In IopInterlockedDecrementUlong() and IopInterlockedIncrementUlong(), cast received value to volatile before de/incrementing it so ensure strict ordering with spin locks acquisition.
This was brought to you by Alex Ionescu.
svn path=/trunk/; revision=52117
* Fix several modules to compile with the recent gcc versions.
* ReactOS now compiles with mingw-w64 gcc 4.6.0 and boots to shell.
* Dedicated to dreimer.
svn path=/trunk/; revision=52114
Timo Kreuzer:
* Change inline assembly constraint from "r" to "q". "r" means any kind of register, including *si and *di, these cannot be used for 8bit operations on x86, only x64 has sil, dil registers. But gcc is stupid and doesn't get that if we don't tell it explicitly, by using "q", which will only allow a, b, c, d registers. Fixes an assembler error messages that can occur under certain circumstances.
svn path=/trunk/; revision=52100
NOTE: Windows does not do this, opting instead to force manufacturers/use pull-up resistors/reconfigure the ARM Bus to map RAM at 0x00000000. For wider portability, I believe it makes more sense to simply do this "trick" in the boot loader.
svn path=/trunk/; revision=52098