Commit graph

24852 commits

Author SHA1 Message Date
Alex Ionescu 59a8c8c5dc - Remove unusued, complex hive checking code from regfile.c.
- Implement CmpInitializeHive based on Cm Rewrite but keep code compatible with the current EREGISTRY_HIVE structure in the current Cm.
- Remove CmiCreateVolatileHive and CmiCreateTemp since they're unused.
- Implement CmpCreateRootNode based on CmRewrite and CmCreateRootNode in cmlib, CmpCopyName and CmpNameSize from Cm Rewrite and use them.
- Use CmpInitializeHive + CmpCreateRootNode for the master volatile hive.

svn path=/trunk/; revision=26692
2007-05-11 04:59:38 +00:00
Alex Ionescu 107f14ad9f - CmpInitializeMachineDependentConfiguration: Finish up by using the same code as for System BIOS Version detection for the Video BIOS Detection. This routine should be pretty much finished now since all required hardware keys are created.
svn path=/trunk/; revision=26686
2007-05-10 21:40:39 +00:00
Alex Ionescu 65a66f73b8 - Add code to detect and save the BIOS Version string to the registry. We use the same detection patterns as Windows for now (Ver, Rev, Rel, v0-9).
- All BIOS Version strings are scanned and saved in a REG_MULTI_SZ key, as on Windows. QEMU BIOS Version String is correctly detected as the CVS/SVN $ID tag, which is good enough.

svn path=/trunk/; revision=26685
2007-05-10 21:36:24 +00:00
Alex Ionescu 0efeac48a8 - Remove CPU Detection code from FreeLDR (hwcpu.c) since our kernel properly does the same job now (and better).
- Remove ReactOS hacks from recent code due to FreeLDR, since it doesn't conflict with us anymore.

svn path=/trunk/; revision=26684
2007-05-10 20:51:50 +00:00
Alex Ionescu 3fcfcbce89 - CmpInitializeMachineDependentConfiguration: Use the same strategy as for the BIOS to get the Video ROM BIOS Date as well and save it into VideoBiosDate.
svn path=/trunk/; revision=26683
2007-05-10 20:43:40 +00:00
Alex Ionescu 3511920f89 - Create \Device\PhysicalMemory in Phase 1 instead of Phase 2, since CmInit needs it.
- CmpInitializeMachineDependentConfiguration: Map the IVT to detect the Video ROM Area and save it (corretly detected on QEMU at 0xC000). Then map the BIOS at 0xF0000 and scan it for the newest BIOS Date.
- Save detected BIOS date in the System Node's SystemBiosVersion, and save BIOS-default date (11 bytes before the ROM end) in Control\BIOSINFO.

svn path=/trunk/; revision=26682
2007-05-10 20:36:15 +00:00
Alex Ionescu b5dc8db0ee - CmpInitializeMachineDependentConfiguration: Add Processor Name and Vendor ID as well (the former doesnt' work on QEMU because QEMU desn't support CPUID-EX, but on VMWare, I get: Dual Core AMD Opteron(tm) Processor 185.
svn path=/trunk/; revision=26681
2007-05-10 19:06:52 +00:00
Alex Ionescu 82bcb975e4 - CmpInitializeMachineDependentConfiguration: Write FeatureSet, MHZ and Update Signature to registry CentralProcessor node.
svn path=/trunk/; revision=26680
2007-05-10 18:11:11 +00:00
Alex Ionescu bd87454d22 - Make CmpInitializeMachineDependentConfiguration create the FloatingPointProcessor hardware key/ARC node.
svn path=/trunk/; revision=26678
2007-05-10 18:04:41 +00:00
Alex Ionescu 0d78fd8f3d - Add more code to CmpInitializeMachineDependentConfiguration to create the BIOSINFO key and to start working on the CentralProcessor key (which, in ReactOS, FreeLDR creates when it shouldn't). Creates the basic CentralProcessor nodes for now.
- Add cmconfig.c and implement a helper routine that converts from ARC CONFIGURATION_COMPONENT_DATA to a Hardware Description entry and resource descriptor.
- Fix outdated _CONFIGURATION_TYPE definition in our DDK.

svn path=/trunk/; revision=26677
2007-05-10 17:52:09 +00:00
Alex Ionescu 78b58e34df - Add i386/cmhardwr.c and start implementing CmpInitializeMachineDependentConfiguration. Currently it only detects and writes the key for PAE.
- Call the API from CmInitSystem1.

svn path=/trunk/; revision=26675
2007-05-10 16:42:24 +00:00
Dmitry Gorbachev 5b30480967 Fix a bug in ScServiceMainStub(), add more checks.
svn path=/trunk/; revision=26672
2007-05-10 10:13:01 +00:00
Alex Ionescu 107cb5719e - Remove/deprecate some certain chunks of Cm which are not critical to booting and not even to applications (such as NtSaveKey, which didn't even have NtRestoreKey) and mark them as unimplemented functions.
- This doesn't do much but clean up some of our code to make it easier to see what the critical parts are and reduce bug surface exposure.
- Move and slightly reformat (without touching any of the actual code) registry callback/notification code to cmhook.c.

svn path=/trunk/; revision=26671
2007-05-10 09:14:15 +00:00
Alex Ionescu e72d90dbc8 - Move CmpSetSystemValues to cmsysini.c
- Remove all NTLDR-style profile code from cmsysini.c, since ReactOS doesn't support it, and there's no use lugging that code around.
- Rename CmpCreateCurrentControlSetLink to CmpCreateControlSet.
- Get rid of CmiCreateCuttenControlSetLink and use the new version instead, which also supports setting the right current Hardware Profile ID.

svn path=/trunk/; revision=26670
2007-05-10 01:48:54 +00:00
Alex Ionescu 0285323c9d - Refactor the registry initialization code to be somewhat closer to the Cm rewrite branch.
- No actual code/implementation changes per-se, simply moved code into new routines, deleted old routines, renamed some routines and added more error-checking.
- Also performed registry initialization in an order more analogous to Windows.
- Added cmsysini.c from the branch, but it's not used at the moment.

svn path=/trunk/; revision=26669
2007-05-10 00:02:04 +00:00
Alex Ionescu 83bd3b5fc0 - Fix crash in Install CD introduced in 26666, with a ludicrious hack for FreeLDR
svn path=/trunk/; revision=26668
2007-05-09 21:15:52 +00:00
Aleksey Bragin 959a4b6f1e - Add error messages to prevent silent failing, no functionality change.
svn path=/trunk/; revision=26667
2007-05-09 20:52:08 +00:00
Alex Ionescu 33ea79c7fe - Implement CmGetSystemControlValues and all related low-level Cm functionality required to select the proper control set and read all the kernel variables during Phase 0 initialization. We can now read time-zone data, version, suite, language IDs and other important kernel variables in the lowest-level boot phase.
- New code uses cmlib from Filip Navara without any modification, and is fully compatible with reading Windows hives as well except XP's "Big value cells" (cells with > 2GB data) which aren't supported.
- Create /config directory where the new Configuration Manager code lies.

svn path=/trunk/; revision=26666
2007-05-09 18:30:21 +00:00
Alex Ionescu 5aaa1671e7 1) Update KiPcToFileHeader to work in early-boot stage by looking through the KeLoaderBlock instead.
2) Make KeRosDumpStrackFrames use KiPcToFileHeader instead of KiRosPrintAddress. The end result is the same but we don't recursively bugcheck anymore during Phase 0 bugchecks :)

svn path=/trunk/; revision=26665
2007-05-09 16:15:22 +00:00
Aleksey Bragin d80647e124 - Add km regtests to build.
- Add a very simple memory monitor (to be improved later).

svn path=/trunk/; revision=26664
2007-05-09 11:55:19 +00:00
Aleksey Bragin 7ba021c0ca - Move tests from trunk.
svn path=/trunk/; revision=26663
2007-05-09 11:18:34 +00:00
Aleksey Bragin 93510b1a0f - Delete /drivers dir (it's gonna be created by svn copy commit)
svn path=/trunk/; revision=26662
2007-05-09 11:17:46 +00:00
Aleksey Bragin 8088e369f7 - Create a place for kernel-mode regression testing drivers.
svn path=/trunk/; revision=26661
2007-05-09 11:13:20 +00:00
Alex Ionescu 2f0daf6186 - Fix line endings.
svn path=/trunk/; revision=26660
2007-05-09 04:55:24 +00:00
Alex Ionescu b4e9b56b39 - Added more improvements/fixes to the Executive Initialization code:
- We now print out error messages at each SESSIONX_INITIALIZATION_FAILURE directly on the screen.
  - Build CmNtCSDVersion to include SP1 and our SVN Revision number.
  - Build CmNtSpBuildNumber with the actual SP1 build number.
  - Detect Headless Terminal usage.
  - Build and create the CmVersionString.
  - Display a startup banner similar to Windows based on the CmVersionString, also indicating the SVN revision.
  - Fix some bugs in the timezone code.
  - Display a second startup banner like Windows's, displaying memory and CPU counts.
  - Add calls to initialize RANGE_LISTs, the Prefetecher, XIP Support and Phase 2 Executive Initialization.
  - Parse the command line to detect /SAFEBOOT: switch and which type of safe mode boot this is.
  - Display an optional third startup banner showing which safemode boot type this is.
  - Detect /BOOTLOG switch and display a fourth startup banner if it's enabled, but don't initialize boot logging yet.
  - Don't allow driver loading to push the progress bar beyond 75%.
  - Write safe-boot type to registry, detect AlternateShell mode and validate that one is configured.
  - Write MININT key to registry if booting in WinPE (LiveCD) mode.
  - Don't leak smss environment and parameters anymore.
  - Cleanup and reformat some code, use VER_ constants instead of magic numbers.

svn path=/trunk/; revision=26659
2007-05-09 00:44:45 +00:00
Alex Ionescu 0724e3d18e - Add CcPf (Cache Manager PreFetcher) structures and add a stub function to initailize the global settings for the pre-fetcher (only a lock and list for now).
- Add hdlsterm.c for Headless Terminal Support and a stub function to detect if anyone is trying to do this.
- Add xipdisp.c for eXecute-In-Place Support and add a stub function to detect if anyone is trying this, as well as get various supported command line settings.
- Try to find XIP Memory Descriptor if one was given.
- Get Power Event callback from Win32k in PsEstablishWin32Callouts.
- Notifiy System Time Change callback with PoNotifySystemTimeSet.
- Add safemode and bootlog Message IDs.

svn path=/trunk/; revision=26658
2007-05-09 00:29:38 +00:00
Alex Ionescu da6c47f5f8 - Stripped down ntstrafe.h routines required for a future patch, and for basic functionality. Do not support any flags yet (and will ASSERT if attempt is made): RtlStringCbCopyA, RtlStringCbCatExA, RtlStringCbCopyExA, RtlStringCbPrintfExA, RtlStringCbPrintfA.
svn path=/trunk/; revision=26657
2007-05-09 00:06:18 +00:00
Alex Ionescu f0b1b0e858 - Buildno now generates a KERNEL_VERSION_BUILD_HEX ULONG containing the SVN revision.
svn path=/trunk/; revision=26656
2007-05-08 23:00:35 +00:00
Eric Kohl 0ab223d167 Save user cursor schemes using the environment variables SystemRoot, USERPROFILE or ProgramFiles in the cursor paths instead of absolute paths.
svn path=/trunk/; revision=26655
2007-05-08 22:13:18 +00:00
Alex Ionescu 651efa4a73 - Fix broken definition of IsBoostAllowed which would cause ERESOURCE boosts to be applied backwards.
- Use cleaner, inlined definitions for ExAcquire/ReleaseResourceLock.
- Convert ERESOURCE code to use a Queued In-Stack Spinlock instead of a regular spinlock.
- Force usage of the spinlock instead of cli/sti for DBG builds, and enable strict sanity checks.
- Fix incorrect check in ExpCheckForApcsDisabled.
- Properly handle memory starvation in the contended path.
- Make sure to allocate a semaphore if needed during ExAcquireSharedStarveExclusive.
- Fix multiple bugs in ExIsResourceAcquiredSharedLite.
- ExReleaseResourceForThreadLite didn't always properly set the ResourceOwnedExclusive flag, and didn't validate ownership.
- ExSetResourceOwnerPointer wouldn't set the owner if there wasn't one already.

svn path=/trunk/; revision=26654
2007-05-08 21:35:10 +00:00
Aleksey Bragin b5d4ee9e39 - Fix unshielded "return"s inside PSEH blocks, in the kernel.
- Fix formatting of a couple of lines.

svn path=/trunk/; revision=26653
2007-05-08 10:32:16 +00:00
Aleksey Bragin 182dd09c91 - Fix an unshielded "return" inside a PSEH block.
svn path=/trunk/; revision=26652
2007-05-08 09:01:39 +00:00
Timo Kreuzer 64b29c8149 - fix resources
svn path=/trunk/; revision=26651
2007-05-07 09:27:43 +00:00
Hervé Poussineau deb7fbe415 Fix memory corruption in freeldr
svn path=/trunk/; revision=26650
2007-05-06 07:35:57 +00:00
Eric Kohl 6786d8e6a9 The current cursor scheme will now be loaded correctly and the scheme list will display the correct name of the cursor scheme.
svn path=/trunk/; revision=26649
2007-05-06 02:06:30 +00:00
Eric Kohl e0364c78da Remove outdated email addresses.
svn path=/trunk/; revision=26648
2007-05-05 11:32:25 +00:00
Dmitry Gorbachev 5cfa655cbc Update Polish translation (bug #2233).
svn path=/trunk/; revision=26647
2007-05-05 08:16:59 +00:00
Martin Fuchs 231dcbf43a update to XMLStorage version 1.2
svn path=/trunk/; revision=26646
2007-05-05 07:30:20 +00:00
Dmitry Gorbachev 841a6e2567 Fix a bug in stub generation code. There are some other lesser bugs.
svn path=/trunk/; revision=26645
2007-05-05 03:48:20 +00:00
Dmitry Gorbachev 2210b29b99 Chinese translation (bug report #2221).
svn path=/trunk/; revision=26644
2007-05-04 23:31:08 +00:00
Dmitry Gorbachev 4559868d74 Chinese translation by Zhangbing (bug #2222).
svn path=/trunk/; revision=26643
2007-05-04 23:30:48 +00:00
Dmitry Gorbachev 231b59a486 Fix a typo in translation. Bug report #2233.
svn path=/trunk/; revision=26642
2007-05-04 23:27:54 +00:00
Dmitry Gorbachev a11eecdb83 Update Polish translation. Patch by Lech Groblewicz
<xrogers'at'gmail'dot'com> and Olaf Siejka. Bug #2233.

svn path=/trunk/; revision=26641
2007-05-04 23:27:28 +00:00
Dmitry Gorbachev 2408771fff Patch for reformatting the cabman code, Colin Finck, see bug report #2234.
svn path=/trunk/; revision=26640
2007-05-04 22:21:55 +00:00
Eric Kohl 0a981d42cf Removed my name because these files no longer contain any code written by me.
svn path=/trunk/; revision=26639
2007-05-04 22:15:13 +00:00
Eric Kohl 21cced5dc3 Removed my name because I did not write this file!
svn path=/trunk/; revision=26638
2007-05-04 21:59:25 +00:00
Sylvain Petreolle 103b32e6e4 slash is alive !
-#include "..\gditest.h"
+#include "../gditest.h"


svn path=/trunk/; revision=26637
2007-05-04 21:23:42 +00:00
Aleksey Bragin 34aac7b904 - Add fundamental VCB structure, and function to initialize it.
- Add common headers to all xCB structures.
- All development is being done according to Rajeev Nagar's book and some parts are inspired by its accompanying FSD sample.

svn path=/trunk/; revision=26636
2007-05-04 18:34:48 +00:00
Aleksey Bragin e45d903111 - Fixes and changes to NPFS debug printing system, so it actually works now.
svn path=/trunk/; revision=26635
2007-05-04 13:40:14 +00:00
Aleksey Bragin 57ba31d95a - Add function stubs
- Add simple dbgprinting mechanism for easier debugging.

svn path=/trunk/; revision=26634
2007-05-04 11:50:41 +00:00