- Add a way to conditionally use the GCC stack protector.
Just add -DSTACK_PROTECTOR:BOOL=TRUE as argument to configure.cmd/sh
svn path=/trunk/; revision=64527
Improve performance of registry enumeration by returning the enumerated subkey in RegEnumKey, instead of searching it by name again.
svn path=/trunk/; revision=62079
Completely rewrite the registry code.
The old code was first loading the system hive and parsing it, duplicating each and every key and value into a custom freeldr specific registry format and used the latter to access the data. This was extremely slow when larger hive files (the one from a normal win 2003 installation is 2.5 MB vs 250kb in reactos) were imported. The new code uses the hive data directly. It's less code, faster and uses much less memory.
In the same move, refactor some mkhive code and move it into cmlib to be shared with freeldr.
svn path=/trunk/; revision=61595
Improve heap allocations by using tags and using the temp heap for all temporary allocations that will not be used by the kernel. This avoids heap fragmentation for the default heap. Increase the temp heap size to 32 MB and limit the size of the cache to the temp heap size minus 128 KB to avoid exhausting the heap with cache data. See CORE-4413.
This commit is dedicated to Ronja, my beloved cat who passed away on 5th of December. Rest in peace, little Schnuppel.
svn path=/trunk/; revision=61428
[NTOSKRNL]: Implement InbvPortPollOnly and InbvPortGetByte.
[NTOSKRNL]: Implement HeadlessCmdClearDisplay and HeadlessCmdGetByte.
[SACDRV]: Implement the TimerDpcRoutine which calls HeadlessCmdGetByte. We now consume characters in the EMS port.
[SACDRV]: Implement ConMgrSerialPortConsumer. We now do full VT-100 input parsing. DEL, BS, TAB, SPACE all work. Pressing ENTER results in an ASSERT in ConMgrProcessLine as expected.
svn path=/trunk/; revision=59772
[HIVESYS]: Fix double-addition of "nmidebug". One of those should have been "sacdrv".
[FREELDR]: Fix bugs in WinLdrSetupEms which caused an invalid HEADLESS_LOADER_BLOCK to be created.
[FERELDR]: Move WinLdrSetupEms in LoadWindowsCommon, so that setupldr can use EMS too.
svn path=/trunk/; revision=59716
Fix extended and control characters handling in text-boxes. We don't show anymore strange characters when pressing on, e.g. up or down arrows anymore.
Also, fix uppercase 'o' character (which has the same scan code but is not an extended key, as the End key).
The culprit revision which introduced this bug is r58658.
CORE-7323 #resolve #comment The uppercase 'o' problem is fixed in revision r59373. Thanks for your report :)
svn path=/trunk/; revision=59373
Take in account the boot disk in the number of detected disks.
It allows booting without a hard disk (e.g cdrom/floppy alone with an USB storage device)
svn path=/trunk/; revision=59079
- FreeLdr is able now to load personalized Kernel Debugger Transport DLLs by reading at the kernel command line and interpreting the /DEBUGPORT=xxx entry (--> loads KDxxx.DLL dll in \SystemRoot\System32\).
Therefore we can not only load the "default" kdcom.dll, but also 3rd-party ones such as kdbazis.dll from VirtualKD (from revision 58902).
- The GCC-compiled-only version of kdcom, containing legacy COM code, was removed and put directly along KDBG. It remains only a stub / template for future kdcom-like dlls. The MSVC-version remains untouched.
- Make those functions ^ use directly the CPORTLIB library.
svn path=/trunk/; revision=58974
The idea then would be to have the following behaviour (when specifying the following options in the kernel command line):
/DEBUGPORT=COMi --> load KDCOM.DLL and use COMi port (i == 1,2,3,4) if possible.
/DEBUGPORT=FOO --> load KDFOO.DLL (useful for KDUSB.DLL, KD1394.DLL, KDBAZIS.DLL for VirtualKD, etc...)
/DEBUGPORT=ROSDBG:[COMi|SCREEN|FILE|GDB|...] --> load KDROSDBG.DLL which contains the ROS kernel debugger, and use COMi or SCREEN or... as output port.
svn path=/branches/kd++/; revision=58883
When generating the memory descriptor list, do not map the pages at the same time, since that requires allocating page tables, which will alter the state of pages, that might already have been processed. Instead map everything beforehand. This has not had any impact on x86, since the pfn database initialization code mindlessly adds all mapped pages as valid, even if they were reported as free by the OS loader. But proper Mm code does not necessarily do this.
svn path=/trunk/; revision=58760
Correct spelling of "receive" throughout the codebase.
Patch by andygui.
CORE-7062 #resolve #comment Fixed in revision r58744. Thanks :)
svn path=/trunk/; revision=58744
Fix TOO MANY !! :(((( "initialize" misspellings.
Note1: One remains in subsystems/csr/csrsrv/init.c, but will be corrected in my future csrss branch merging.
Note2: In ntoskrnl/se/semgr.c, one tries to create the "LSA_AUTHENTICATION_INITALIZED" event. This is ROS-SPECIFIC !!!! In the sense that it doesn't exist on Windows. Instead, the "LSA_AUTHENTICATION_INITIALIZED" exists. Correct that fact.
svn path=/trunk/; revision=58679
Fix spelling of 'length' in various places.
Patch by andygui
Concerning kdio.c, we can see that the original author didn't see his misspelling since he used two different variables named:
KdpScreenLineLength and KdpScreenLineLenght ! ; the latter being renamed here KdpScreenLineLengthDefault to make the difference.
CORE-7043 #comment Part for ReactOS committed in r58672, thanks!
svn path=/trunk/; revision=58672
- Further improve FreeLdr's edit-boxes editing capabilities, by supporting insert-mode (only at the moment), backspace and delete to remove a character, moving left or right, going to the beginning or to the end of the string.
- Add a helper function DrawText2 to allow for displaying partial string (giving a maximum number of characters to display).
Enjoy :)
svn path=/trunk/; revision=58658
Add support for HOME and END keys in menus, and allow going to the end (resp. to the beginning) if we are on the first (resp. on the last) item and we press up (resp. down).
Enjoy :)
svn path=/trunk/; revision=58635
- Set bugcheck data when the image is corrupt
- Add 2 more useful debug constants: DEBUG_WARN and DEBUG_ERR
- Use COM2 for debug output when _WINKD_ is defined
- Fix amd64 boot
svn path=/trunk/; revision=58606