14 years agoA couple of header fixes to get all the FreeLDR-loaded boot drivers to compile and...
ReactOS Portable Systems Group [Sat, 9 Feb 2008 00:59:05 +0000 (00:59 +0000)]
A couple of header fixes to get all the FreeLDR-loaded boot drivers to compile and link.
FreeLDR now stops at ArmPrepareForReactOS, when we get to enable the MMU, Caches and other such fun stuff.
Bring-up now really starts!

svn path=/trunk/; revision=32233

14 years agoKamil Hornicek <>
Aleksey Bragin [Fri, 8 Feb 2008 20:11:56 +0000 (20:11 +0000)]
Kamil Hornicek <>
- Add TRACEs to unimplemented functions.

svn path=/trunk/; revision=32231

14 years agoUse a generic .spec file, instead of a .def file per architecture
Hervé Poussineau [Fri, 8 Feb 2008 19:59:30 +0000 (19:59 +0000)]
Use a generic .spec file, instead of a .def file per architecture

svn path=/trunk/; revision=32230

14 years agoUse a generic .spec file, instead of a .def file per architecture
Hervé Poussineau [Fri, 8 Feb 2008 19:46:17 +0000 (19:46 +0000)]
Use a generic .spec file, instead of a .def file per architecture

svn path=/trunk/; revision=32229

14 years agoAdd WINEBUILD_FLAGS, and set it to --kill-at for ARM
Hervé Poussineau [Fri, 8 Feb 2008 19:45:30 +0000 (19:45 +0000)]
Add WINEBUILD_FLAGS, and set it to --kill-at for ARM

svn path=/trunk/; revision=32228

14 years agoDo not emit __wine_spec_unimplemented_stub() function if not needed
Hervé Poussineau [Fri, 8 Feb 2008 19:27:32 +0000 (19:27 +0000)]
Do not emit __wine_spec_unimplemented_stub() function if not needed

svn path=/trunk/; revision=32227

14 years agoAdd Rule class, which writes to Makefile how to handle a source file
Hervé Poussineau [Fri, 8 Feb 2008 19:10:19 +0000 (19:10 +0000)]
Add Rule class, which writes to Makefile how to handle a source file
Later, hardcoded rules should be read from .rbuild files

svn path=/trunk/; revision=32226

14 years agoChange the encoding of the slovak translation yet another time, hopefully it's correc...
Colin Finck [Fri, 8 Feb 2008 18:07:29 +0000 (18:07 +0000)]
Change the encoding of the slovak translation yet another time, hopefully it's correct now

svn path=/trunk/; revision=32225

14 years ago- Make LsaOpenPolicy return a fake handle (ported from Wine), so that it doesn't...
Aleksey Bragin [Fri, 8 Feb 2008 17:52:48 +0000 (17:52 +0000)]
- Make LsaOpenPolicy return a fake handle (ported from Wine), so that it doesn't leave garbage instead of a handle, which is going to be closed later by LsaClose.
- Make LsaClose understand the fake handle, and don't do anything in that case but just return success.
- Make one unimplemented func show a fixme (also from Wine).

svn path=/trunk/; revision=32224

14 years agoWe now have an official hal-arm which exports KeSwapIrql, allowing many more drivers...
ReactOS Portable Systems Group [Fri, 8 Feb 2008 17:13:09 +0000 (17:13 +0000)]
We now have an official hal-arm which exports KeSwapIrql, allowing many more drivers to compile and link properly.
We now have ARM export files for Class2 and Scsiport, allowing these drivers plus disk, cdrom and other dependencies to build and link.

svn path=/trunk/; revision=32223

14 years agoKamil Hornicek <>
Aleksey Bragin [Fri, 8 Feb 2008 17:04:39 +0000 (17:04 +0000)]
Kamil Hornicek <>
- Convert advapi32 to use wine-style debug macros.

svn path=/trunk/; revision=32222

14 years agoANSI -> OEM charset conversion
Colin Finck [Fri, 8 Feb 2008 14:46:27 +0000 (14:46 +0000)]
ANSI -> OEM charset conversion

svn path=/trunk/; revision=32220

14 years agoUpdate German translation
Daniel Reimer [Fri, 8 Feb 2008 14:10:52 +0000 (14:10 +0000)]
Update German translation

svn path=/trunk/; revision=32219

14 years ago- Add WinBoard and Opera to downloader.xml
Dmitry Chapyshev [Fri, 8 Feb 2008 13:14:22 +0000 (13:14 +0000)]
- Add WinBoard and Opera to downloader.xml

svn path=/trunk/; revision=32218

14 years ago- Update Russian translation
Dmitry Chapyshev [Fri, 8 Feb 2008 13:11:55 +0000 (13:11 +0000)]
- Update Russian translation

svn path=/trunk/; revision=32217

14 years ago- Implement one more hack to obtain LaskKrnlPhysAddr (not really a solution for react...
Aleksey Bragin [Fri, 8 Feb 2008 13:11:01 +0000 (13:11 +0000)]
- Implement one more hack to obtain LaskKrnlPhysAddr (not really a solution for reactos, since ntldr allows kernel+drivers+hal to not be continuous in memory), when booting via ntldr/winldr.

svn path=/trunk/; revision=32216

14 years ago- Start implement Advanced General page
Dmitry Chapyshev [Fri, 8 Feb 2008 13:07:37 +0000 (13:07 +0000)]
- Start implement Advanced General page
- Update Russian translation

svn path=/trunk/; revision=32215

14 years ago- Implement MiCountFreePagesInLoaderBlock() to correctly count free pages (instead...
Aleksey Bragin [Fri, 8 Feb 2008 10:55:40 +0000 (10:55 +0000)]
- Implement MiCountFreePagesInLoaderBlock() to correctly count free pages (instead of using a variable introduced somewhere below r2000 (MemHigher), and later converted to MmFreeLdrMemHigher).
- Get rid of MmFreeLdrMemHigher and MmFreeLdrMemLower (they were not actually used for anything except getting number of free pages).

svn path=/trunk/; revision=32214

14 years ago- Formatting fixes.
Aleksey Bragin [Fri, 8 Feb 2008 10:52:20 +0000 (10:52 +0000)]
- Formatting fixes.

svn path=/trunk/; revision=32213

14 years agoBug 3043: Polish translation update (
Daniel Reimer [Fri, 8 Feb 2008 10:24:02 +0000 (10:24 +0000)]
Bug 3043: Polish translation update (
Bug 3044: Ukrainian translation update (
Part 3 of 3.

svn path=/trunk/; revision=32212

14 years agoBug 3043: Polish translation update (
Daniel Reimer [Fri, 8 Feb 2008 10:22:50 +0000 (10:22 +0000)]
Bug 3043: Polish translation update (
Bug 3044: Ukrainian translation update (
Part 1 of 3.

svn path=/trunk/; revision=32210

14 years agoBug 3040: add some functionality to mmsys.cpl by Kamil Hornicek (tykef at atlas dot...
Daniel Reimer [Fri, 8 Feb 2008 10:08:26 +0000 (10:08 +0000)]
Bug 3040: add some functionality to mmsys.cpl by Kamil Hornicek (tykef at atlas dot cz) irc nick Pigglesworth
I updated all rc files according to the changes in the english one and removed DS_3DLOOK.

svn path=/trunk/; revision=32209

14 years agoApply r32184 for Slovak Translation too.
Daniel Reimer [Fri, 8 Feb 2008 08:21:12 +0000 (08:21 +0000)]
Apply r32184 for Slovak Translation too.

svn path=/trunk/; revision=32208

14 years agoWe now also implement InterlockedExchange (Fixes rtl build).
ReactOS Portable Systems Group [Fri, 8 Feb 2008 08:20:06 +0000 (08:20 +0000)]
We now also implement InterlockedExchange (Fixes rtl build).
We now set -lgcc for all builds (to get built-in division helpers), and also -static (not to import libgcc.dll -- it seems -static isn't needed on x86, but it is on ARM).
We hackfix kdcom to use the FeroUart base address -- this driver won't be used for a while, but we need to have it built.
Now binaries are being created properly (previously kernel was 15MB and importing .DLL files...). FreeLDR output:
FreeLoader v3.0 for ARM
Bootargs: rdbase=0x2000000 rdsize=0x1400000
Detecting Hardware...
Reading HAL.DLL
Reading HAL.DLL
Reading c_1252.nls
Reading c_437.nls
Reading l_intl.nls
Reading scsiport.sys

svn path=/trunk/; revision=32207

14 years agoWe now have the correct intrinsics for ARM.
ReactOS Portable Systems Group [Fri, 8 Feb 2008 07:51:01 +0000 (07:51 +0000)]
We now have the correct intrinsics for ARM.
The ARM linkerscript is now created (copy of the x86 linker script).
The kernel can now be linked.

svn path=/trunk/; revision=32206

14 years agoWe no longer generate broken kernel-mode system call stubs.
ReactOS Portable Systems Group [Fri, 8 Feb 2008 06:07:47 +0000 (06:07 +0000)]
We no longer generate broken kernel-mode system call stubs.
We now have per-architecture definition files, since stdcall differences between the architectures cannot be fixed (tried a combination of --kill-at, which is ignored, and -add-stdcall-alias and --enable-stdcall-fixup. This is the same problem that breaks MSVC builds, according to Alex.)
Fixed KeRaiseIrqlToSynchLevel.
Added an arm directory in /ke where we have all the stubs for non-implemented ARM routines. We can now build almost the entire kernel and link it.
We now use intrinsics to export the Interlocked* APIs, for the ARM build. Recommend doing this for x86 too.
Hal and bootvid build and link.

svn path=/trunk/; revision=32205

14 years ago- allow translation of strings in usetup
Timo Kreuzer [Fri, 8 Feb 2008 04:14:09 +0000 (04:14 +0000)]
- allow translation of strings in usetup
- so far most strings are still hardcoded, but the needed functionality is in place

svn path=/trunk/; revision=32204

14 years agopatch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com):
Timo Kreuzer [Fri, 8 Feb 2008 01:45:54 +0000 (01:45 +0000)]
patch by Stefan Ginsberg (stefan__100__ AT hotmail DOT com):
remove obsolete syscalls NtUserGetDesktopWindow and NtUserGetParent

svn path=/trunk/; revision=32203

14 years agofix a typo
Timo Kreuzer [Fri, 8 Feb 2008 00:18:45 +0000 (00:18 +0000)]
fix a typo

svn path=/trunk/; revision=32202

14 years agoBug 3033: patch for packmgr (
Daniel Reimer [Thu, 7 Feb 2008 21:23:46 +0000 (21:23 +0000)]
Bug 3033: patch for packmgr (
Bug 3039: Ukrainian translation update (
Bug 3041: Bulgarian translation of ReactOS. (

svn path=/trunk/; revision=32201

14 years agoBug 3033: patch for packmgr (
Daniel Reimer [Thu, 7 Feb 2008 21:22:04 +0000 (21:22 +0000)]
Bug 3033: patch for packmgr (
Bug 3039: Ukrainian translation update (
Bug 3041: Bulgarian translation of ReactOS. (

svn path=/trunk/; revision=32200

14 years agoYet another attempt to fix build
Colin Finck [Thu, 7 Feb 2008 20:58:58 +0000 (20:58 +0000)]
Yet another attempt to fix build

svn path=/trunk/; revision=32199

14 years agoRevert the winddk.h changes of r32197 to make the hal compilable again without any...
Colin Finck [Thu, 7 Feb 2008 20:49:58 +0000 (20:49 +0000)]
Revert the winddk.h changes of r32197 to make the hal compilable again without any warnings.
Someone (preferably ros-arm-bringup ;-), please fix this correctly.

The warning is caused, because after the change in r32197, KeRaiseIrqlToSynchLevel is defined as NTKERNELAPI for all architectures.
NTKERNELAPI itself is defined to DECLSPEC_IMPORT if the header is not included from ntoskrnl. This is why hal outputs a warning for its KeRaiseIrqlToSynchLevel implementation.
As warnings are treated as errors for hal, the build fails.

svn path=/trunk/; revision=32198

14 years agoWe can now build the ARM kernel (but not link it).
ReactOS Portable Systems Group [Thu, 7 Feb 2008 20:04:31 +0000 (20:04 +0000)]
We can now build the ARM kernel (but not link it).
We now define _disable and _enable for ARM.
We shouldn't define KeRaiseIrqlToSynchLevel for each architecture, since the prototype is portable itself.
It was a mistake to guard against x86 only system calls -- the system calls should be the same on all archs, just return STATUS_NOT_IMPLEMENTED if they don't make sense. Undo the guards.
We now define KeGetPcr() as portable -- it's PCR itself that is a per-arch define.
We now support ARM in RtlWalkFrameChain.
We now support ARM in PspCreateThread.
We now define KeArchHaltProcessor for ARM by using Wait-For-Interrupt Mode.
We now define KeArmInitThreadWithContext for ARM.
KiRestore/SaveProcessorControlState are portable prototypes, we now define them as such.
Bochs KD code should use the portable WRITE/READ_PORT_UCHAR defines, we now do so.
We now support ARM in SharedUserData->ImageNumberLow/High during ExpInitializeExecutive.
NtQuerySytemInformation for SystemProcessorInformation has now been fixed to use the portable KeProcesssorXxx variables instead of reading from the non-portable PRCB values.
We now support NtFlushInstructionCache for ARM by flushing the I-Cache.

svn path=/trunk/; revision=32197

14 years agoFix for the fix
Hervé Poussineau [Thu, 7 Feb 2008 19:58:31 +0000 (19:58 +0000)]
Fix for the fix

svn path=/trunk/; revision=32196

14 years agoBulgarian translation for rosapps by Станев (sstpr AT narod DOT ru)
Colin Finck [Thu, 7 Feb 2008 19:33:11 +0000 (19:33 +0000)]
Bulgarian translation for rosapps by Станев (sstpr AT narod DOT ru)
See issue #3042 for more details.

svn path=/trunk/; revision=32195

14 years ago- Open the Edit windows as modeless dialogs, so the user can edit more than one chara...
Colin Finck [Thu, 7 Feb 2008 19:14:55 +0000 (19:14 +0000)]
- Open the Edit windows as modeless dialogs, so the user can edit more than one character at the same time
- Simplify the linked-list functions

svn path=/trunk/; revision=32194

14 years ago- Rename vfatfs.sys to fastfat.sys for compatibility reasons.
Aleksey Bragin [Thu, 7 Feb 2008 18:06:11 +0000 (18:06 +0000)]
- Rename vfatfs.sys to fastfat.sys for compatibility reasons.

svn path=/trunk/; revision=32193

14 years agoFill output variable before returning
Hervé Poussineau [Thu, 7 Feb 2008 18:04:03 +0000 (18:04 +0000)]
Fill output variable before returning

svn path=/trunk/; revision=32192

14 years ago- fix auto timezone selection for bulgarian locale
Johannes Anderwald [Thu, 7 Feb 2008 17:52:24 +0000 (17:52 +0000)]
- fix auto timezone selection for bulgarian locale
- patch by CCTAHEB
See issue #2887 for more details.

svn path=/trunk/; revision=32191

14 years ago* Fixed d3d9 critical section not being unlocked in GetAdapterIdentifier
Gregor Brunmar [Thu, 7 Feb 2008 17:32:49 +0000 (17:32 +0000)]
* Fixed d3d9 critical section not being unlocked in GetAdapterIdentifier
* Implemeted IDirect3D9::GetAdapterMonitor

svn path=/trunk/; revision=32190

14 years agoDefine O_BINARY to 0 in include/wine/port.h if it's not defined. Wine's version of...
Colin Finck [Thu, 7 Feb 2008 17:27:25 +0000 (17:27 +0000)]
Define O_BINARY to 0 in include/wine/port.h if it's not defined. Wine's version of this file already contains this #define.
This way we can remove one more difference in our widl version compared to the Wine one.

svn path=/trunk/; revision=32189

14 years agoFixed a compiler warning with msvc
Gregor Brunmar [Thu, 7 Feb 2008 17:26:05 +0000 (17:26 +0000)]
Fixed a compiler warning with msvc

svn path=/trunk/; revision=32188

14 years agocreat() is equivalent to open() with the flags O_CREAT | O_WRONLY | O_TRUNC.
Colin Finck [Thu, 7 Feb 2008 14:53:03 +0000 (14:53 +0000)]
creat() is equivalent to open() with the flags O_CREAT | O_WRONLY | O_TRUNC.
Use these flags and O_BINARY to replace the creat() call we previously had.

Requested by Wine for patch acceptance

svn path=/trunk/; revision=32187

14 years ago- Port LookupAccountNameA/W from Wine. This fixes VMWare Tools crash in NTDLL introdu...
Aleksey Bragin [Thu, 7 Feb 2008 14:05:10 +0000 (14:05 +0000)]
- Port LookupAccountNameA/W from Wine. This fixes VMWare Tools crash in NTDLL introduced by msiexec sync.

svn path=/trunk/; revision=32186

14 years ago- Apply elf-changes changes to ntkrnlmp.rbuild.
Aleksey Bragin [Thu, 7 Feb 2008 13:42:29 +0000 (13:42 +0000)]
- Apply elf-changes changes to ntkrnlmp.rbuild.
- Small formatting fix for ntoskrnl.rbuild.

svn path=/trunk/; revision=32185

14 years ago- change cmd "control" to "control.exe"
Johannes Anderwald [Thu, 7 Feb 2008 11:23:38 +0000 (11:23 +0000)]
- change cmd "control" to "control.exe"
- fix over-translated strings
- acquire full path for the traget executable and directly invoke CreateProcess
- zero initialize param szTemp to fix a possible buffer overflow
- fixes bug 3027

svn path=/trunk/; revision=32184

14 years ago- improve control a bit so it that can execute cpl specified on the command line
Johannes Anderwald [Thu, 7 Feb 2008 11:21:10 +0000 (11:21 +0000)]
- improve control a bit so it that can execute cpl specified on the command line
- ignore the function index, page index for now

svn path=/trunk/; revision=32183

14 years agoFix one more bug in adding subkeys.
Filip Navara [Thu, 7 Feb 2008 08:22:24 +0000 (08:22 +0000)]
Fix one more bug in adding subkeys.

svn path=/trunk/; revision=32181

14 years agoFix hash table generating.
Filip Navara [Thu, 7 Feb 2008 08:04:17 +0000 (08:04 +0000)]
Fix hash table generating.

svn path=/trunk/; revision=32180

14 years agoWe now generate the correct ARM syscall stub code for system calls with IDs > 0x100.
ReactOS Portable Systems Group [Thu, 7 Feb 2008 07:10:13 +0000 (07:10 +0000)]
We now generate the correct ARM syscall stub code for system calls with IDs > 0x100.
We never call KfRaise/LowerIrql in portable code anymore, isntead, we use Ke.
We now have correctly defined IRQL routines for ARM, much more of the kernel builds as a result.

svn path=/trunk/; revision=32179

14 years agoWe don't define types which are usually documented on "real" NT platforms in the...
ReactOS Portable Systems Group [Thu, 7 Feb 2008 06:40:42 +0000 (06:40 +0000)]
We don't define types which are usually documented on "real" NT platforms in the NDK aynmore, but instead in the ARMDDK.h. This also avoids many ndk-from-ddk cross-header issues.
Added x86-only guards around certain structures and functions which are non-portable. Also guarded certain inline functions.
Added some more ARM structures, and filled out the KPRCB.
Created ARM-specific headers when required.
We can now have a buildable ARM kernel, minus a couple of compile errors.

svn path=/trunk/; revision=32178

14 years agoWe now only compile the ELF loader if _ELF_ is defined (both because this isn't a...
ReactOS Portable Systems Group [Thu, 7 Feb 2008 06:36:31 +0000 (06:36 +0000)]
We now only compile the ELF loader if _ELF_ is defined (both because this isn't a standard Windows feature, and because the current code is completely not portable with ARM)

svn path=/trunk/; revision=32177

14 years agoWe now return failed in FrLdrMapImage if the file could not be read.
ReactOS Portable Systems Group [Thu, 7 Feb 2008 05:25:37 +0000 (05:25 +0000)]
We now return failed in FrLdrMapImage if the file could not be read.
FreeLDR ARM now loads properly, however, we need to start building the ARM kernel and ARM boot drivers, otherwise their relocations will have byte offsets which will lead to alignment errors (on ARM relocaitons are DWORD-aligned).
Next steps are to get the kernel building, then the HAL, then bootvid/kdcom.

svn path=/trunk/; revision=32176

14 years agoMake HvIsCellAllocated working.
Filip Navara [Thu, 7 Feb 2008 03:32:47 +0000 (03:32 +0000)]
Make HvIsCellAllocated working.

svn path=/trunk/; revision=32175

14 years agomake the table smaller
Timo Kreuzer [Thu, 7 Feb 2008 02:36:20 +0000 (02:36 +0000)]
make the table smaller

svn path=/trunk/; revision=32174

14 years agoThere was no reason to have most of the i386Disk routines as i386-only routines,...
ReactOS Portable Systems Group [Thu, 7 Feb 2008 00:43:09 +0000 (00:43 +0000)]
There was no reason to have most of the i386Disk routines as i386-only routines, since they are quite generic and portable assuming MBR-based disks. GPT disks are another matter, but in either case, any architecture should support both, and that's the real distinction.
Made the ARM code use the shared disk routines, which allowed us to remove some hacks -> we now detect the boot/system volume just like on x86.
FreeLDR now loads NTOSKRNL.EXE on ARM.
Also made the DiskIsBootDeviceFloppy return FALSE for ramdisks.
Finally, note that the disk routines were still kept as Machine-specific routines in the Mach Table, so other architectures can still override them if they really need to (for example, the XBOX port overrides one of them for a specific XBOX hack).

svn path=/trunk/; revision=32173

14 years ago* Fixed compiling of the native d3d9.dll
Gregor Brunmar [Wed, 6 Feb 2008 21:22:23 +0000 (21:22 +0000)]
* Fixed compiling of the native d3d9.dll
* Packed structures in d3d9types.h correctly to be compatible with Windows

svn path=/trunk/; revision=32172

14 years agoRemoved certain ARM Machine Callbacks which we shouldn't need at all until much later...
ReactOS Portable Systems Group [Wed, 6 Feb 2008 20:47:53 +0000 (20:47 +0000)]
Removed certain ARM Machine Callbacks which we shouldn't need at all until much later for SetupLDR.
Kept the ArmDisk ones though since they'll be needed for NAND boot, but improved the assertions.

svn path=/trunk/; revision=32171

14 years agoWe now report the correct sector start for the ramdisk -- the actual volume boot...
ReactOS Portable Systems Group [Wed, 6 Feb 2008 20:38:59 +0000 (20:38 +0000)]
We now report the correct sector start for the ramdisk -- the actual volume boot sector is at 0x63, not 0x00 which is the MBR.
FreeLDR now reads freeldr.ini correctly and continues all the way to hardware detection (ArmHwDetect)

svn path=/trunk/; revision=32170

14 years agoWe now enable ramdisk support by calling RamDiskSwitchFromBios() to allow the ramdisk...
ReactOS Portable Systems Group [Wed, 6 Feb 2008 19:15:46 +0000 (19:15 +0000)]
We now enable ramdisk support by calling RamDiskSwitchFromBios() to allow the ramdisk routines to take control of disk r/w.
Unlike the x86 virtual-ramdisk, the ramdisk here is also used as boot device, not only system device.
Current FreeLDR output:
    Booting FreeLDR...
    FreeLoader v3.0 for ARM
    Bootargs: rdbase=0x2000000 rdsize=0x1400000
    This file system has cluster sizes bigger than 64k.
    FreeLoader does not support this.
    Press any key

svn path=/trunk/; revision=32169

14 years ago- apply changes from prev rev
Johannes Anderwald [Wed, 6 Feb 2008 18:59:51 +0000 (18:59 +0000)]
- apply changes from prev rev

svn path=/trunk/; revision=32168

14 years ago- partly fix AddConsoleAlias/GetConsoleAlias
Johannes Anderwald [Wed, 6 Feb 2008 18:59:18 +0000 (18:59 +0000)]
- partly fix AddConsoleAlias/GetConsoleAlias
- add hack for GetConsoleAliasW to circumvent CsrCaptureMessageBuffer is not working

svn path=/trunk/; revision=32167

14 years ago- partly fix AddConsoleAlias/GetConsoleAlias
Johannes Anderwald [Wed, 6 Feb 2008 18:57:40 +0000 (18:57 +0000)]
- partly fix AddConsoleAlias/GetConsoleAlias
- add hack for GetConsoleAliasW to circumvent CsrCaptureMessageBuffer is not working

svn path=/trunk/; revision=32166

14 years ago- Cast the OutputBuffer to a byte (UCHAR) array, not a ULONG array, so adding a byte...
Colin Finck [Wed, 6 Feb 2008 18:30:15 +0000 (18:30 +0000)]
- Cast the OutputBuffer to a byte (UCHAR) array, not a ULONG array, so adding a byte offset to its address works as expected.
  This fixes the extraction of any file, which is not the first file in the cabinet.
- I don't see a reason for reading the file name in 32 byte chunks in ReadString() instead of reading it completely in one call.
  As the previous algorithm was buggy for files longer than 32 characters, I read the file name string completely now.
  Cabman is now able to extract the "" it created itself without any problems :-)
- Simplify CreateSimpleCabinet() a bit

svn path=/trunk/; revision=32165

14 years agoWe now support ArmDiskGetBootVolume for ramdisk only, later revisions will support...
ReactOS Portable Systems Group [Wed, 6 Feb 2008 18:27:53 +0000 (18:27 +0000)]
We now support ArmDiskGetBootVolume for ramdisk only, later revisions will support NAND boot as well.
The ramdisk parameter parsing had several bugs which were fixed, including support for hex parameters and using proper return values from strstr.
We also rewrote command line parsing to be much simpler. It was very broken, modifying the memory contents of the command line -- this wouldn't work on systems where the command line is stored in ROM unless a copy is first made. It also broke ram disk parameters by modifying whitespaces to NULL chars for purposes of reading its own parameters, but did not put the whitespace back, terminating the command line early.
Finally, we now have an integrated ramdisk parameter parsing with the new command line code.

svn path=/trunk/; revision=32164

14 years ago- Import atl.dll from Wine
Dmitry Chapyshev [Wed, 6 Feb 2008 17:29:28 +0000 (17:29 +0000)]
- Import atl.dll from Wine
- Add atl to bootcd

svn path=/trunk/; revision=32163

14 years agoWe now return memory map.
ReactOS Portable Systems Group [Wed, 6 Feb 2008 15:47:02 +0000 (15:47 +0000)]
We now return memory map.
We added a new member to the ARM board configuration block that specifies the number of memory map entries.
Board boot loaders are responsible for sending the base and size of all DRAM and FLASH banks. FLASH banks should be marked as Reserved so we don't try using them as RAM.

svn path=/trunk/; revision=32162

14 years ago- Add vga font for cp437
Dmitry Chapyshev [Wed, 6 Feb 2008 15:36:29 +0000 (15:36 +0000)]
- Add vga font for cp437

svn path=/trunk/; revision=32161

14 years ago- Fix formatting for ras.h, rasdlg.h and rasapi.h
Dmitry Chapyshev [Wed, 6 Feb 2008 15:29:45 +0000 (15:29 +0000)]
- Fix formatting for ras.h, rasdlg.h and rasapi.h
- Add raseapif.h header file

svn path=/trunk/; revision=32160

14 years ago- Import tapi32.dll from Wine
Dmitry Chapyshev [Wed, 6 Feb 2008 15:23:40 +0000 (15:23 +0000)]
- Import tapi32.dll from Wine
- Add more defines and structures to tapi.h
- Add tapi32 to bootcd

svn path=/trunk/; revision=32159

14 years agoUpdate German RC File
Daniel Reimer [Wed, 6 Feb 2008 12:20:34 +0000 (12:20 +0000)]
Update German RC File

svn path=/trunk/; revision=32158

14 years ago- Add more dialogs
Dmitry Chapyshev [Wed, 6 Feb 2008 11:36:37 +0000 (11:36 +0000)]
- Add more dialogs
- Add disable all controls functions
- Add icons

svn path=/trunk/; revision=32157

14 years agoFix typo
Hervé Poussineau [Wed, 6 Feb 2008 10:37:21 +0000 (10:37 +0000)]
Fix typo

svn path=/trunk/; revision=32155

14 years agofix indentation
Ged Murphy [Wed, 6 Feb 2008 10:34:03 +0000 (10:34 +0000)]
fix indentation

svn path=/trunk/; revision=32154

14 years ago- Make i8042Flush flush both output and input buffers.
Aleksey Bragin [Wed, 6 Feb 2008 09:46:38 +0000 (09:46 +0000)]
- Make i8042Flush flush both output and input buffers.
- Make i8042Flush apply only KBD_OBF flag (applying MOU_OBF leads to an infinite loop trying to flush the buffer).
- Fix a bug in i8042Write, where instead of waiting by polling a PollingIterations times (~10000), it was using ResendIterations (=3), thus giving 8042 very small chance of processing the data.
- Make i8042BasicDetect resend CTRL_SELF_TEST sequence, if controller asks so. Maximum resend iterations are limited by ResendIterations variable.
- Reinsert debug-messages hack, since this is an early-loading driver, and it's not possible to break in to KDBG to change debug filter values.
- As a result, keyboard and mouse work on real hardware again.
See issue #3036 for more details.

svn path=/trunk/; revision=32153

14 years agoWe implemented console support (through serial port), for the current board types...
ReactOS Portable Systems Group [Wed, 6 Feb 2008 07:32:47 +0000 (07:32 +0000)]
We implemented console support (through serial port), for the current board types supported (Feroceon, using UART 16550).
We added a new ClockRate member to the ARM Board Block structure.
We now print out the FreeLDR header after initialization to give some output to the user that we are alive.
Started putting shared stuff in headers.
Fixed copy/paste leftovers from file headers (wrong file names, implementation details, author).

svn path=/trunk/; revision=32151

14 years agoWe now make sure to build with the static version of libgcc. Previously, this resulte...
ReactOS Portable Systems Group [Wed, 6 Feb 2008 07:19:13 +0000 (07:19 +0000)]
We now make sure to build with the static version of libgcc. Previously, this resulted in FreeLDR having an import table and trying to import a .DLL file -- not a very wise attempt.

svn path=/trunk/; revision=32150

14 years ago- use intrinsic interlocked functions
Timo Kreuzer [Wed, 6 Feb 2008 05:09:26 +0000 (05:09 +0000)]
- use intrinsic interlocked functions
- add a function to get a full stackbacktrace including usermode

svn path=/trunk/; revision=32149

14 years agoImplement a proper ARM startup routine. We disable the FIQ and IRQ lines, then disabl...
ReactOS Portable Systems Group [Wed, 6 Feb 2008 04:48:22 +0000 (04:48 +0000)]
Implement a proper ARM startup routine. We disable the FIQ and IRQ lines, then disable and flush D and I caches, set up a temporary boot stack, and call ArmInit.
In ArmInit we define the structure that a compatible bootloader has to send us and currently make some assertions on it, before dropping into the common, portable, freeldr startup (BootMain).
This would be the place where we would want to setup UART0 for serial support later on, as well as TIMER0.
In MachInit, we now define the required ARM routines we'll need, all which simply loop for now.
Also fix a bug in RamDiskInit, which could do reads from NULL pointers.

svn path=/trunk/; revision=32148

14 years agoWindows doesn't store a hbrBack, when creating a window
Timo Kreuzer [Wed, 6 Feb 2008 04:01:02 +0000 (04:01 +0000)]
Windows doesn't store a hbrBack, when creating a window

svn path=/trunk/; revision=32147

14 years agouse syscolor brush for menu background, fixes a brush leak.
Timo Kreuzer [Wed, 6 Feb 2008 00:43:15 +0000 (00:43 +0000)]
use syscolor brush for menu background, fixes a brush leak.

svn path=/trunk/; revision=32146

14 years ago- Move each VGA font file to a new "media/vgafonts" directory and convert all PSF...
Colin Finck [Tue, 5 Feb 2008 19:31:05 +0000 (19:31 +0000)]
- Move each VGA font file to a new "media/vgafonts" directory and convert all PSF fonts to BIN files.
- Add a line to the autogenerated Makefile for Boot-CDs, which creates a "" file from the binary fonts at build time.
- Change blue.sys to read the fonts from the "" file instead of the "vgafont.bin" (ZIP format) file.
  I dropped support for PSF fonts in blue.sys, because with the vgafontedit app, we can easily convert PSF fonts to BIN fonts now.
  If someone still needs this format in blue.sys, I can reimplement it.

svn path=/trunk/; revision=32145

14 years ago- Fix typo
Dmitry Chapyshev [Tue, 5 Feb 2008 19:27:03 +0000 (19:27 +0000)]
- Fix typo

svn path=/trunk/; revision=32144

14 years agoFix the usetup text screen (broken in r32135)
Colin Finck [Tue, 5 Feb 2008 19:22:14 +0000 (19:22 +0000)]
Fix the usetup text screen (broken in r32135)

svn path=/trunk/; revision=32143

14 years agoMove and rename all rc files of rosapps according to our standards.
Daniel Reimer [Tue, 5 Feb 2008 17:00:30 +0000 (17:00 +0000)]
Move and rename all rc files of rosapps according to our standards.

svn path=/trunk/; revision=32142

14 years agoFix whatever TortoiseSVN made wrong here again... Build fixed
Daniel Reimer [Tue, 5 Feb 2008 16:33:47 +0000 (16:33 +0000)]
Fix whatever TortoiseSVN made wrong here again... Build fixed

svn path=/trunk/; revision=32141

14 years agoBug 3037: Rosapps polish translation patch (
Daniel Reimer [Tue, 5 Feb 2008 15:50:59 +0000 (15:50 +0000)]
Bug 3037: Rosapps polish translation patch (
Bug 3038: Ukrainian translation update (
RC Files resorting like in the Bug reports before these will be done later this day.

svn path=/trunk/; revision=32140

14 years ago- Handle the different slashes correctly, also in combination (like "../..\*.txt...
Colin Finck [Tue, 5 Feb 2008 15:31:12 +0000 (15:31 +0000)]
- Handle the different slashes correctly, also in combination (like "../..\*.txt") by using the ConvertPath() function
- Only compare file names, not the whole pathes, in the Unix code path using MatchFileNamePattern
- Small change to the Usage text

svn path=/trunk/; revision=32139

14 years ago- Don't set a fixed size for the application name, allocate the needed memory dynamic...
Colin Finck [Tue, 5 Feb 2008 15:12:35 +0000 (15:12 +0000)]
- Don't set a fixed size for the application name, allocate the needed memory dynamically using AllocAndLoadString
- Small fixes to the german translation

svn path=/trunk/; revision=32138

14 years ago- Add Russian translation
Dmitry Chapyshev [Tue, 5 Feb 2008 14:50:02 +0000 (14:50 +0000)]
- Add Russian translation
- Move application title to resources

svn path=/trunk/; revision=32137

14 years agoOn ARM, it seems first = "true" parsing doesn't actually work in .rbuild files -...
ReactOS Portable Systems Group [Tue, 5 Feb 2008 11:15:59 +0000 (11:15 +0000)]
On ARM, it seems first = "true" parsing doesn't actually work in .rbuild files -- the object is not properly placed in the beginning of the FreeLDR text section.
As a workaround, a special "startup" section is now used to contain the boot.s code, and a linker flag is used to set this section as the entrypoint section at 0x8000.
FreeLDR for ARM now links properly, with _start at 0x8000.

svn path=/trunk/; revision=32136

14 years agoFix a couple of problems with FreeLDR portability.
ReactOS Portable Systems Group [Tue, 5 Feb 2008 11:13:17 +0000 (11:13 +0000)]
Fix a couple of problems with FreeLDR portability.
beep is now MachBeep since the code is not portable.
A variety of portable PE loading routines were in arch/loader.c for no reason. These are now in reactos/imageldr.c. arch/loader.c now only contains the architecture-specific ReactOS initialization code.
AcpiPresent was used on all builds, even though it's a non-portable x86-only flag. Now, ACPI detection itself, if present, will set the appropriate ACPI flag directly in the loader blog, so other architectures don't have to worry about exporting AcpiPresent;
DiskStopFloppyMotor is only relevant to x86, as is preparing for Video. MachVideoPrepareForReactOS has therefore been replaced by MachPrepareForReactOS as a generic pre-boot preparation routine.
Implemented MachPrepareForReactOS across current architectures to preserve functionality.

svn path=/trunk/; revision=32135

14 years agoImplement ARM version of DbgBreakPoint in the RTL. We do a bkpt with a special value...
ReactOS Portable Systems Group [Tue, 5 Feb 2008 11:08:34 +0000 (11:08 +0000)]
Implement ARM version of DbgBreakPoint in the RTL. We do a bkpt with a special value of 3 (to be as close as possible to x86 int 3).
Fix NtCurrentTeb definition for ARM. We will expose the KPCR to user-mode much like KUSER_SHARED_DATA on x86 (this is how ARM-CE and NT-MIPS do it) and link the TEB there.

svn path=/trunk/; revision=32134

14 years agoFixed an infinite loop in IDirect3D::GetAdapterIdentifier()
Gregor Brunmar [Tue, 5 Feb 2008 06:37:48 +0000 (06:37 +0000)]
Fixed an infinite loop in IDirect3D::GetAdapterIdentifier()

svn path=/trunk/; revision=32133

14 years agoBuild FreeLDR for ARM.
ReactOS Portable Systems Group [Tue, 5 Feb 2008 03:06:20 +0000 (03:06 +0000)]
Build FreeLDR for ARM.
We merely provide a _start entrypoint stub and two stub architecture files with no functions implemented.
We also supply the proper ARM configuration settings in the .rbuild files, and add the necessary headers.
FreeLDR can now be compiled (along with rossym, libcntptr, rtl and cmlib) but it will not link until the actual ARM code is implemented.

svn path=/trunk/; revision=32132

14 years agoAdd basic arm target support to the build system.
ReactOS Portable Systems Group [Tue, 5 Feb 2008 02:58:28 +0000 (02:58 +0000)]
Add basic arm target support to the build system.
Reactos-arm.rbuild uses the same settings as the x86 version, but defines _ARM_ and __arm__ instead. _M_ARM is already defined by the compiler.
Add ARM system call stub support to ncitool. We are currently using a SWI 0x2E to achieve this.
Add ARM support to winnt.h.
Add a preliminary intrin_arm.h
Add ketypes.h and mmtypes.h for ARM in the NDK. For now these are mostly stubs to allow compiling to work.
Add ARM support to winddk.h.
Fix some broken x86-only assumptions in the NDK.
Add config-arm-template.rbuild. By defauilt we build for armv5te (armv4 and v5 are supported, not v6).
Set ROS_ARCH=arm to switch to ARM. Set ROS_PREFIX to an appropriate MinGW-32 ARM PE crosscompiler.

svn path=/trunk/; revision=32131

14 years agoThe Windows headers include a file called ioaccess.h in the ddk folder, which exposes...
ReactOS Portable Systems Group [Tue, 5 Feb 2008 02:40:08 +0000 (02:40 +0000)]
The Windows headers include a file called ioaccess.h in the ddk folder, which exposes various READ/WRITE_PORT/REGISTER_ routines as inlined macros for various architectures (PPC, MIPS, AMD64, IA64, X86), making use of the MSVC compiler-intrinsics (inp, outp, etc). Since ReactOS already has those intrinscs implemented, we've also created an ioaccess.h w32api header file which makes use of them.
We can now remove the portio.h and portio.c files in FreeLDR, since there's no more need to duplicate this code.
Additionally, this can be also done with the PPC port of FreeLDR or any other architecture, since it doesn't require per-architecture support in FreeLDR anymore -- only the underlying intrinsics in intrin.h must be implemented (note that for PPC, MIPS and ARM, the notion of a port doesn't even exist -- those functions map to register-reading functions, where register basically means memory).

svn path=/trunk/; revision=32130

ReactOS Portable Systems Group [Tue, 5 Feb 2008 01:39:22 +0000 (01:39 +0000)]
Implement ramdisk support for FreeLDR (ramdisk.c and ramdisk.h). The implementation is portable across all architectures.
We also define a virual ramdisk file (hardcoded name is reactos.img, on the boot volume) for testing ramdisk support on architectures without native ramdisk support (such as x86). This could be further extended to allow network booting as a ramdisk at a later time, but is now primarly for test purposes.
We introduce two new FreeLDR command-line parameters that should be sent by non-x86 firmware: rdbase and rdsize, and a new freeldr.ini ARC path: ramdisk(0) -- this is compatible with Windows.
For compatibility and status output, we use 8MB chunks for reading virtual ramdisk files (a dot is displayed for each additional 8MB chunk).
Finally, for code-reuse, the ramdisk implementation will "steal" the BIOS support routines in the arch-vtable and replace them with simple memcpy wrappers. To the disk/filesystem routines in FreeLDR, they think they are reading from the BIOS (or other firmware), but instead, the sector reads are coming from memory).
For now, only FAT ramdisks have been tested, and a sector size of 512 bytes is implied. We also disable the FAT block cache since it wouldn't make much sense to cache RAM.
*** Note that kernel ramdisk support is missing, so once the kernel attempts to load drivers from the boot device (ramdisk(0)), it will panic. This is currently non an issue on non-x86 builds since the kernel won't get that far for a while.

svn path=/trunk/; revision=32129

14 years agoImplement ramdisk support for FreeLDR (ramdisk.c and ramdisk.h). The implementation...
ReactOS Portable Systems Group [Tue, 5 Feb 2008 01:29:49 +0000 (01:29 +0000)]
Implement ramdisk support for FreeLDR (ramdisk.c and ramdisk.h). The implementation is portable across all architectures.
We also define a virual ramdisk file (hardcoded name is reactos.img, on the boot volume) for testing ramdisk support on architectures without native ramdisk support (such as x86). This could be $
We introduce two new FreeLDR command-line parameters that should be sent by non-x86 firmware: rdbase and rdsize, and a new freeldr.ini ARC path: ramdisk(0) -- this is compatible with Windows.
For compatibility and status output, we use 8MB chunks for reading virtual ramdisk files (a dot is displayed for each additional 8MB chunk).
Finally, for code-reuse, the ramdisk implementation will "steal" the BIOS support routines in the arch-vtable and replace them with simple memcpy wrappers. To the disk/filesystem routines in Fre$
For now, only FAT ramdisks have been tested, and a sector size of 512 bytes is implied. We also disable the FAT block cache since it wouldn't make much sense to cache RAM.
$lds since the kernel won't get that far for a while.

svn path=/trunk/; revision=32128