- Fix some function parameter types, so to avoid unuseful casts (from pointers to const strings to pointers to strings in particular).
- The big thing: make FreeLdr 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\).
So now, we can not only load the "default" kdcom.dll, but also 3rd-party ones such as kdbazis.dll from VirtualKD.
Read http://www.nynaeve.net/?p=173 for a trick I used :
"[...] Another enhancement that could be done Microsoft-side would be a better interface for replacing KD transport modules. Right now, due to the fact that ntoskrnl is static linked to KDCOM.DLL, the OS loader has a hardcoded hack that interprets the KD type in the OS loader options, loads one of the (hardcoded filenames) "kdcom.dll", "kd1394.dll", or "kdusb2.dll" modules, and inserts them into the loaded module list under the name "kdcom.dll". [...]".
svn path=/branches/kd++/; revision=58902
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