Colin Finck [Thu, 7 Feb 2008 20:58:58 +0000 (20:58 +0000)]
Yet another attempt to fix build
svn path=/trunk/; revision=32199
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
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
Hervé Poussineau [Thu, 7 Feb 2008 19:58:31 +0000 (19:58 +0000)]
Fix for the fix
svn path=/trunk/; revision=32196
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
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
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
Hervé Poussineau [Thu, 7 Feb 2008 18:04:03 +0000 (18:04 +0000)]
Fill output variable before returning
svn path=/trunk/; revision=32192
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
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
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
Gregor Brunmar [Thu, 7 Feb 2008 17:26:05 +0000 (17:26 +0000)]
Fixed a compiler warning with msvc
svn path=/trunk/; revision=32188
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
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
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
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
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
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
Filip Navara [Thu, 7 Feb 2008 08:04:17 +0000 (08:04 +0000)]
Fix hash table generating.
svn path=/trunk/; revision=32180
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
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
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
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
Filip Navara [Thu, 7 Feb 2008 03:32:47 +0000 (03:32 +0000)]
Make HvIsCellAllocated working.
svn path=/trunk/; revision=32175
Timo Kreuzer [Thu, 7 Feb 2008 02:36:20 +0000 (02:36 +0000)]
make the table smaller
svn path=/trunk/; revision=32174
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
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
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
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
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
Johannes Anderwald [Wed, 6 Feb 2008 18:59:51 +0000 (18:59 +0000)]
- apply changes from prev rev
svn path=/trunk/; revision=32168
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
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
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 "reactos.cab" it created itself without any problems :-)
- Simplify CreateSimpleCabinet() a bit
svn path=/trunk/; revision=32165
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
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
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
Dmitry Chapyshev [Wed, 6 Feb 2008 15:36:29 +0000 (15:36 +0000)]
- Add vga font for cp437
svn path=/trunk/; revision=32161
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
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
Daniel Reimer [Wed, 6 Feb 2008 12:20:34 +0000 (12:20 +0000)]
Update German RC File
svn path=/trunk/; revision=32158
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
Hervé Poussineau [Wed, 6 Feb 2008 10:37:21 +0000 (10:37 +0000)]
Fix typo
svn path=/trunk/; revision=32155
Ged Murphy [Wed, 6 Feb 2008 10:34:03 +0000 (10:34 +0000)]
fix indentation
svn path=/trunk/; revision=32154
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
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
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
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
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
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
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
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 "vgafonts.cab" file from the binary fonts at build time.
- Change blue.sys to read the fonts from the "vgafonts.cab" 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
Dmitry Chapyshev [Tue, 5 Feb 2008 19:27:03 +0000 (19:27 +0000)]
- Fix typo
svn path=/trunk/; revision=32144
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
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
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
Daniel Reimer [Tue, 5 Feb 2008 15:50:59 +0000 (15:50 +0000)]
Bug 3037: Rosapps polish translation patch (olaf_siejka@o2.pl)
Bug 3038: Ukrainian translation update (temarez@yandex.ru)
RC Files resorting like in the Bug reports before these will be done later this day.
svn path=/trunk/; revision=32140
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
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
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
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
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
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
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
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
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
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)]
--- FIXED COMMIT LOG FOR r32128. NO CHANGES IN THIS REVISION ---
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
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
Colin Finck [Mon, 4 Feb 2008 22:48:42 +0000 (22:48 +0000)]
- Add a function MatchFileNamePattern for matching a file against a pattern (imported from Busybox under GPL2 or later license, heavily modified for our purposes, more information in the function comments)
- Add support for multiple search criterias, which are actually checked.
This makes it possible to pass parameters like "*.rbuild *.txt" to the cabman command line for adding, displaying and extracting files in a cabinet.
- Overhaul CreateSimpleCabinet, make it able to add multiple files to the cabinet using the new search criteria functions.
- Fix some comments and indentation here and there.
svn path=/trunk/; revision=32127
Christoph von Wittich [Mon, 4 Feb 2008 22:41:09 +0000 (22:41 +0000)]
always return Request->Status;
svn path=/trunk/; revision=32126
Johannes Anderwald [Mon, 4 Feb 2008 22:33:21 +0000 (22:33 +0000)]
- remove unused members
svn path=/trunk/; revision=32125
Johannes Anderwald [Mon, 4 Feb 2008 22:32:37 +0000 (22:32 +0000)]
- fix error status
svn path=/trunk/; revision=32124
Christoph von Wittich [Mon, 4 Feb 2008 22:11:56 +0000 (22:11 +0000)]
return 0 when type is DWORD
remove unused alias struct
svn path=/trunk/; revision=32123
Gregor Brunmar [Mon, 4 Feb 2008 21:33:12 +0000 (21:33 +0000)]
* Implemented IDirect3D9's GetAdapterCount() and GetAdapterIdentifier()
* Made d3d9.dll compile with MSVC
svn path=/trunk/; revision=32122
Johannes Anderwald [Mon, 4 Feb 2008 21:24:09 +0000 (21:24 +0000)]
- insert new entry when required
- check for null
svn path=/trunk/; revision=32121
Aleksey Bragin [Mon, 4 Feb 2008 20:27:43 +0000 (20:27 +0000)]
- Build FreeLdr the same way other modules are built, by using gcc -Wl.
- This allows us to get rid of the /math directory and use -lgcc instead.
- Get rid of -ffreestanding, -fno-builtin and -O2. The former are not needed anymore since we're properly building a "freestanding" image anyway, just like the kernel. The latter is removed since optimization flags come from the project settings.
- Update code to fix warnings caused since we've removed -ffreestanding. GCC now warns about printf, sprintf and other C calls (including a change from %wZ to %S in winldr.c's sprintf calls).
- Don't use printf anymore -- rename freeldr's implementation to TuiPrintf. Just like in the kernel, you can't use printf in freeldr (since it's not running in a standard/full CRT environment).
- 124kb saved!
svn path=/trunk/; revision=32120
Johannes Anderwald [Mon, 4 Feb 2008 18:58:46 +0000 (18:58 +0000)]
- rename member
svn path=/trunk/; revision=32119
Johannes Anderwald [Mon, 4 Feb 2008 18:58:17 +0000 (18:58 +0000)]
- call csrss for Console alias related functions
svn path=/trunk/; revision=32118
Johannes Anderwald [Mon, 4 Feb 2008 18:57:19 +0000 (18:57 +0000)]
- implement GetConsoleAlias* AddConsoleAlias function in csrss
-
svn path=/trunk/; revision=32117
Aleksey Bragin [Mon, 4 Feb 2008 17:10:01 +0000 (17:10 +0000)]
- Add missing registry values.
svn path=/trunk/; revision=32116
Johannes Anderwald [Mon, 4 Feb 2008 15:06:09 +0000 (15:06 +0000)]
- add api message structs / constants for doskey
svn path=/trunk/; revision=32115
Aleksey Bragin [Mon, 4 Feb 2008 13:15:01 +0000 (13:15 +0000)]
- Sync RPC headers with Wine.
svn path=/trunk/; revision=32114
Aleksey Bragin [Mon, 4 Feb 2008 10:45:55 +0000 (10:45 +0000)]
- Make Mm allocation strategy low->high by default.
- Clean up Mm APIs which are not needed anymore.
- Get rid of the LOADER_HIGH_ZONE definition, now the real LoaderPagesSpanned value is calculated and used. As a result, minimum memory requirement (which was >= LOADER_HIGH_ZONE) is gone, and a maximum amount of memory which could be allocated is also gone (previously, not more that the LOADER_HIGH_ZONE).
- IMPORTANT: The FAT filesystem caching is disabled by default now due strange problems in 3rd boot stage, after switching the cache to use heap routines. Cache can't use non-heap routines anymore, since the memory will overlap the contigious modules memory space which ReactOS needs.
- More cleanup and more usage of the heap routines for temporary buffers.
- Fix a bug in MmAllocateMemoryWithType, where result of MmFindAvailablePages was checked against -1 in error case, when in reality it's 0 (spotted by Alex). NB: 0 page is marked as a reserved in x86 arch, so it's never going to be returned as an available.
svn path=/trunk/; revision=32113
Aleksey Bragin [Mon, 4 Feb 2008 09:37:59 +0000 (09:37 +0000)]
- Make other filesystems use the new heap mm routines.
svn path=/trunk/; revision=32112
Timo Kreuzer [Mon, 4 Feb 2008 03:31:09 +0000 (03:31 +0000)]
- recurse into IntGdiDeleteDC directly, instead of going back to NtGdiDeleteObjectApp and pass Force parameter on.
- add a FIXME for dangerous code
svn path=/trunk/; revision=32111
Timo Kreuzer [Mon, 4 Feb 2008 03:22:27 +0000 (03:22 +0000)]
- simplify a check
- fix a check
- fix a region leak
- don't abuse GDIOBJ_LockObj to validate a handle, use GDIOBJ_ValidateHandle instead
- add some additional debug output
svn path=/trunk/; revision=32110
Timo Kreuzer [Mon, 4 Feb 2008 03:17:37 +0000 (03:17 +0000)]
- remove GDIOB_XxxDbg functions
- enhance backtracing and debug output for GDI_DEBUG
- implement GDIOBJ_ValidateHandle()
Stack record dumping is commented out atm due to missing support from ntoskrnl
svn path=/trunk/; revision=32109
Aleksey Bragin [Sun, 3 Feb 2008 21:47:35 +0000 (21:47 +0000)]
- Revert 32105 to make trunk bootable, as agreed with Colin.
svn path=/trunk/; revision=32108
Aleksey Bragin [Sun, 3 Feb 2008 18:51:48 +0000 (18:51 +0000)]
- Make caching enable/disable a runtime switch instead of a compile time one.
svn path=/trunk/; revision=32107
Timo Kreuzer [Sun, 3 Feb 2008 14:26:52 +0000 (14:26 +0000)]
fix a DC handle leak
svn path=/trunk/; revision=32106
Colin Finck [Sun, 3 Feb 2008 13:53:27 +0000 (13:53 +0000)]
- Use host/typedefs.h for rsym instead of reinventing the wheel for host types
- Get rsym to compile warning-free under any host
svn path=/trunk/; revision=32105
Colin Finck [Sun, 3 Feb 2008 13:36:10 +0000 (13:36 +0000)]
Get inflib_host to build warning-free
svn path=/trunk/; revision=32104
Colin Finck [Sun, 3 Feb 2008 11:52:42 +0000 (11:52 +0000)]
Finally fix all cabman warnings and the 64-bit build
svn path=/trunk/; revision=32103
Aleksey Bragin [Sun, 3 Feb 2008 11:50:26 +0000 (11:50 +0000)]
- Remove accidentally committed stuff, noticed by Stefan.
svn path=/trunk/; revision=32102
Colin Finck [Sun, 3 Feb 2008 11:23:31 +0000 (11:23 +0000)]
Fix many warnings (hopefully all) in cabman under different hosts.
We cast all ULONG's to UINT's here, because this is the only type for which we can be sure that it defines to "unsigned int".
ULONG is "unsigned long" with the Windows headers and "unsigned int" with the host headers (for 64-bit compatibility), therefore we need the casts.
svn path=/trunk/; revision=32101
Daniel Reimer [Sun, 3 Feb 2008 08:34:44 +0000 (08:34 +0000)]
German Translations by Dark_Shadow@gmx.at
svn path=/trunk/; revision=32100
Daniel Reimer [Sun, 3 Feb 2008 08:21:00 +0000 (08:21 +0000)]
German RC File Updates by (Dark_Shadow@gmx.at)
svn path=/trunk/; revision=32099
Christoph von Wittich [Sat, 2 Feb 2008 22:49:24 +0000 (22:49 +0000)]
build unicode version
svn path=/trunk/; revision=32098
Christoph von Wittich [Sat, 2 Feb 2008 21:52:46 +0000 (21:52 +0000)]
add support for /macrofile (bit hacky - but it should work for RosBE)
svn path=/trunk/; revision=32097