Commit graph

29347 commits

Author SHA1 Message Date
ReactOS Portable Systems Group 3be034d2ce 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
2008-02-05 02:40:08 +00:00
ReactOS Portable Systems Group 74e7cbf5b8 --- 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
2008-02-05 01:39:22 +00:00
ReactOS Portable Systems Group 0e6d37fe00 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
2008-02-05 01:29:49 +00:00
Colin Finck 7356090407 - 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
2008-02-04 22:48:42 +00:00
Christoph von Wittich 38c6c12999 always return Request->Status;
svn path=/trunk/; revision=32126
2008-02-04 22:41:09 +00:00
Johannes Anderwald 5f802cde10 - remove unused members
svn path=/trunk/; revision=32125
2008-02-04 22:33:21 +00:00
Johannes Anderwald 7a92e8a9e6 - fix error status
svn path=/trunk/; revision=32124
2008-02-04 22:32:37 +00:00
Christoph von Wittich e31d1017f5 return 0 when type is DWORD
remove unused alias struct

svn path=/trunk/; revision=32123
2008-02-04 22:11:56 +00:00
Gregor Brunmar db26f5d219 * Implemented IDirect3D9's GetAdapterCount() and GetAdapterIdentifier()
* Made d3d9.dll compile with MSVC

svn path=/trunk/; revision=32122
2008-02-04 21:33:12 +00:00
Johannes Anderwald 817d9a0beb - insert new entry when required
- check for null

svn path=/trunk/; revision=32121
2008-02-04 21:24:09 +00:00
Aleksey Bragin 86a77f7088 - 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
2008-02-04 20:27:43 +00:00
Johannes Anderwald 286cc44351 - rename member
svn path=/trunk/; revision=32119
2008-02-04 18:58:46 +00:00
Johannes Anderwald f63b6c9df1 - call csrss for Console alias related functions
svn path=/trunk/; revision=32118
2008-02-04 18:58:17 +00:00
Johannes Anderwald 188cc187b1 - implement GetConsoleAlias* AddConsoleAlias function in csrss
- 

svn path=/trunk/; revision=32117
2008-02-04 18:57:19 +00:00
Aleksey Bragin 8b88c6aa50 - Add missing registry values.
svn path=/trunk/; revision=32116
2008-02-04 17:10:01 +00:00
Johannes Anderwald 8ceafd73c8 - add api message structs / constants for doskey
svn path=/trunk/; revision=32115
2008-02-04 15:06:09 +00:00
Aleksey Bragin fcdad0ecd0 - Sync RPC headers with Wine.
svn path=/trunk/; revision=32114
2008-02-04 13:15:01 +00:00
Aleksey Bragin ac79d6ae4b - 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
2008-02-04 10:45:55 +00:00
Aleksey Bragin f971658fb8 - Make other filesystems use the new heap mm routines.
svn path=/trunk/; revision=32112
2008-02-04 09:37:59 +00:00
Timo Kreuzer 73bf020856 - 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
2008-02-04 03:31:09 +00:00
Timo Kreuzer edff92650c - 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
2008-02-04 03:22:27 +00:00
Timo Kreuzer faf0212f7b - 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
2008-02-04 03:17:37 +00:00
Aleksey Bragin 4c73dc576a - Revert 32105 to make trunk bootable, as agreed with Colin.
svn path=/trunk/; revision=32108
2008-02-03 21:47:35 +00:00
Aleksey Bragin c7a1042e5c - Make caching enable/disable a runtime switch instead of a compile time one.
svn path=/trunk/; revision=32107
2008-02-03 18:51:48 +00:00
Timo Kreuzer 005a190594 fix a DC handle leak
svn path=/trunk/; revision=32106
2008-02-03 14:26:52 +00:00
Colin Finck 77a3a581b7 - 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
2008-02-03 13:53:27 +00:00
Colin Finck bec6c89c6d Get inflib_host to build warning-free
svn path=/trunk/; revision=32104
2008-02-03 13:36:10 +00:00
Colin Finck 720b53c4b2 Finally fix all cabman warnings and the 64-bit build
svn path=/trunk/; revision=32103
2008-02-03 11:52:42 +00:00
Aleksey Bragin 5b397144a9 - Remove accidentally committed stuff, noticed by Stefan.
svn path=/trunk/; revision=32102
2008-02-03 11:50:26 +00:00
Colin Finck da6d641d4e 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
2008-02-03 11:23:31 +00:00
Daniel Reimer aab2c713d3 German Translations by Dark_Shadow@gmx.at
svn path=/trunk/; revision=32100
2008-02-03 08:34:44 +00:00
Daniel Reimer 920359cc1b German RC File Updates by (Dark_Shadow@gmx.at)
svn path=/trunk/; revision=32099
2008-02-03 08:21:00 +00:00
Christoph von Wittich 5751b595ac build unicode version
svn path=/trunk/; revision=32098
2008-02-02 22:49:24 +00:00
Christoph von Wittich 9c69b6f7f8 add support for /macrofile (bit hacky - but it should work for RosBE)
svn path=/trunk/; revision=32097
2008-02-02 21:52:46 +00:00
Christoph von Wittich f536a06a34 support for adding and deleting macros
doskey macroname=command
doskey macroname=

svn path=/trunk/; revision=32096
2008-02-02 21:32:11 +00:00
Christoph von Wittich 2b87bc4cd1 add doskey to bootcd
svn path=/trunk/; revision=32095
2008-02-02 21:26:26 +00:00
Christoph von Wittich 2b18c773d7 add doskey (not finished yet)
svn path=/trunk/; revision=32094
2008-02-02 21:23:38 +00:00
Christoph von Wittich 775daf6fd1 rewrote alias handling in cmd for doskey compatibility
implemented AddConsoleAliasA, GetConsoleAliasesLengthA, GetConsoleAliasesLengthW
halfplemented: AddConsoleAliasW, GetConsoleAliasW, GetConsoleAliasesW

svn path=/trunk/; revision=32093
2008-02-02 21:06:53 +00:00
Colin Finck 3fdd323b73 - Fix funky ways of checking for success, when calling SetFilePointer.
The only correct and always working way is checking for INVALID_SET_FILE_POINTER.
- Fix setting the file attributes.
  We didn't pass the destination directory before, so if the user specified another destination directory, the SetFileAttributes call failed.
- Simplify GetAttributesOnFile and SetAttributesOnFile

svn path=/trunk/; revision=32092
2008-02-02 19:21:35 +00:00
Aleksey Bragin 6a480b0db6 - Mark APIC's memory as WriteThrough / CacheDisabled.
svn path=/trunk/; revision=32090
2008-02-02 15:15:41 +00:00
Colin Finck b1d37b0e86 - Add an -M option to specify, which compression codec shall be used (either "raw" or "mszip")
- Enable the RAW codec in the SelectCodec() function
- Don't initialize a codec in the CCabinet constructor, this will be done by the ParseCmdline() function
- Fix parsing the -L and -P parameters, when there's no whitespace between the parameter and the value
- Remove some unneeded casts
- Remove the cabman vesion number, it was never updated, although there were many changes since the first version

svn path=/trunk/; revision=32089
2008-02-02 14:32:44 +00:00
Colin Finck 982e1cf181 Get it to compile warning-free under MSVC (at /W3)
svn path=/trunk/; revision=32087
2008-02-02 12:05:05 +00:00
Colin Finck 8dc242259f [FORMATTING] TABs -> 4 spaces
svn path=/trunk/; revision=32086
2008-02-02 11:57:16 +00:00
Christoph von Wittich d91afce7df display short version info for "ver" as default
use /c, /r or /w to get more details

svn path=/trunk/; revision=32085
2008-02-02 11:03:43 +00:00
Christoph von Wittich 696d5b4b7c move code to the correct position to handle all cases in 'if'
svn path=/trunk/; revision=32084
2008-02-02 10:52:29 +00:00
Christoph von Wittich 9b8be30ee9 don't overwrite terminating \0 char
some code cleanup

svn path=/trunk/; revision=32083
2008-02-02 10:38:37 +00:00
Christoph von Wittich ddf20ad13d fix length calculation for :~
svn path=/trunk/; revision=32082
2008-02-02 09:29:42 +00:00
Christoph von Wittich 18e69dbf76 set correct varNameLen for %~dp0
svn path=/trunk/; revision=32081
2008-02-02 09:21:22 +00:00
Christoph von Wittich 3a1bd096c1 fix formatting
svn path=/trunk/; revision=32080
2008-02-01 23:27:27 +00:00
Colin Finck 7901978873 Wrote a Win32 Font Editor for our VGA Fonts used in blue.sys.
It has a MDI user interface, imports binary fonts (.bin) and PC Screen Fonts (.psf) and exports .bin fonts.
Compiles without any warnings with GCC and MSVC (at /W3).

The "misc.c" file was taken from devmgmt (thanks Ged!) and modified.
The used bitmaps and icons were all done myself, but partly consist of characters of the cp737 font we have in media/vgafont.

svn path=/trunk/; revision=32079
2008-02-01 21:40:18 +00:00