1. this version does not working and contain allot of bugs
2. HAL are not setup right yet
3. HEL are not setup right yet
4. crashing VS when u try debug it from vs if it compile with gcc.
5. implement HEL in user mode.
6. remove some code that was working for it is not longer compatible with new desgin
svn path=/trunk/; revision=24782
- Remove all kdcom exports and files from HAL and link with kdcom.dll instead.
- Add support in freeldr for loading kdcom.dll (and theoretically any other import, such as the Code Integrity DLL for kernel-mode signing, but for now I've only tested this one).
- Refactor some of the HAL loading code to make it generic for any image.
- Load HAL manually when loading kernel, before processing imports, to make sure that HAL is index 1 in the loader modules and loads before KDCOM.
- Fix some build problems.
svn path=/trunk/; revision=24780
- Add PE routines for traversing the import table and fixing up the imports.
- Add routine for getting the LOADER_MODULE for a freeldr module by name.
- Add the ability to load a not-yet-loaded-driver that's in an import entry (ie: dependencies). Only used for HAL now.
- Map HAL in the same was as the kernel, instead of relocating it as a hack from within the kernel.
- Refactor some routines to better share code. Don't read freed memory anymore.
- Use LdrRelocateImageWithBias instead of quintuplicating relocation code.
- Parse kernel and HAL imports while PE-loading from within freeldr.
- Remove dozens of freeldr.c hacks from the kernel. Remove slow code which was making two copies of the parameter block and wasting over 30KB in static strings that were immediately copied to other strings...
- Don't use HalModuleObject and NtoskrnlModuleObject anymore. Remove LdrSafePEProcessModule and other similar boot-time hacks. Reimplement MmGetSystemRoutineAddress.
- NDK/DDK fixes.
- Add KDCOM to bootcd/installation.
svn path=/trunk/; revision=24778
- Add a DPRINT1 saying about the possible memory-overwrite bug. This is a hack to get a bootable tree, but still have a note when The Bug happens (look for 'weird' in the debug log).
svn path=/trunk/; revision=24777
- Get rid of HAL's own intrisics and use intrin_i.h and/or MSVC intrinsics from intrin.h
- If anyone knows how to make a .DEF file that is not only understood by both compilers, but also creates a proper import library, please let me know.
svn path=/trunk/; revision=24774
* Don't insert NDEBUG as a define, files define this manually already.
* Don't add _CRT flags, since the RTM WDK defines them properly.
* Force warning.h to be included just like the WDK does.
* Disable WPO and LTCG for now.
* Disable 64-bit warnings for now.
* Fix assembly custom steps. NASMW for .asm, and GAS for .S.
- Please remember that you NEED the WDK 6000 RTM installed to use MSVC for building ReactOS. Don't change global build settings just because you were too lazy to download it and think that because your Win32 app doesn't need it, it's ok to break other people's native/system/kernel/hal builds. Change it locally if you're lazy, but don't revert these changes again.
svn path=/trunk/; revision=24773
- Add stub for HalSetTimeIncrement.
- Cleanup CMOS-related routines (Get/Set environment value and get/set RTC). Fixup some prototypes as well. Inline HalpReadCmos/HalpWriteCmos instead of having a separate function.
- Fixup wrong protypes for various Queued Spinlock functions.
- Use __rdtsc intrinsic instead of Ke386RdTsc.
- Other MSVC compilation fixes.
svn path=/trunk/; revision=24770
- Matching HAL MP HalStartNextProcessor() and commenting out a call to HaliStartApplicationProcessor() (because it needs ProcessorContext). Proper fix should be done.
- Removing HalReportResourceUsage from MP version, and marking what it did differently as FIXME in the generic version.
svn path=/trunk/; revision=24763
- Remove fmutex.c and fastmutex functions from HAL. The whole point of having the Exi ones in the kernel was that HAL calls them through forward exports now (so any old driver can still link with HAL). Now we don't duplicate the implementation anymore.
- Remove DriverEntry, it's useless. Also move HalReportResourceUsage to halinit because it's a call-once-on-boot function much akin a HalInitPhase2 function, so delete resource.c
- Keep track of interrupt affinity and active processor mask each time a new CPU initializes.
svn path=/trunk/; revision=24762
- split the open / new file code
- Add a dialog for adjusting the brightness. The code for adjusting the brightness will follow soon, as will many other image adjusting dialogs.
- change the menus to show the image adjustment tools which will be present
- remove the horrible image property dialog code. I'll rewrite it at a later stage
- Set Arial as the default font
- fix a few API's to be 64-bit compatable
- reduce msvc warnings
svn path=/trunk/; revision=24761
- Implement (or cleanup + mark as implemented, these are 4 line functions) HalDisplayString, HalAcquireDisplayOwnership, HalSetDisplayParameters, HalQueryDisplayParameters, HalInitailizeProcessor, HalAllProcessorsStarted, HalStartNextProcessor, HalProcessorIdle, HalRequestIpi.
- Fix some prototype definitions and cleanup some formatting.
svn path=/trunk/; revision=24759
- Add lots of missing PCI definitions to the DDK, and to the internal file pci.h
- Make HAL compilable with the WDK thanks to a nice hack/trick I found.
svn path=/trunk/; revision=24757
- dump rest of log file when a BSOD is detected
- write debugging data to ROSBOOT_DEBUG_FILE when reading from a pipe
- update configuration files
- silence debug print in sym_file.cpp
svn path=/trunk/; revision=24755
- Stall the CPU after each I/O command to simulate I/O delay.
- Flush write buffers before rebooting.
- Refactor sending the reset command since it's not always a matter of using the keyboard port.
- HalReturnToFirmware does a HalpReboot no matter what parameter is sent.
svn path=/trunk/; revision=24741
- Create new /fstub directory in the kernel tree and move iomgr's xhal functions there.
- Delete disk.c entirely from iomgr.c and spread it across fstub.
- Entirely reimplement from scratch IoWritePartitionTable, IoReadPartitionTable, IoSetPartitionInformation, HalExamineMbr. Lots of bug fixes in terms of wrong assumptions and compatibility with weird partition tables.
- Fix prototype of IoAssignDriveLetters, but for now, keep the old code (xHalIoAssignDriveLetters) because this has not been rewritten yet.
- Move some functions to fstubex.c for future implementation, and some to volume.c. Move the HAL table to halstub.c
- Make use of the hal.h file commited earlier.
- Move IoAssignDriveLetters from halfuncs to iofuncs.h
- Implement missing functions in HAL (IoRead/Write/Set PartitionInfo) and make them call into the ntoskrnl exports.
svn path=/trunk/; revision=24737
- Re-implement the routines in intel syntax and also cleanup the formatting.
- Also re-implement the way the routines work, by following Matt Pietrek's c code that he wrote in one of his articles after looking at the disassembly.
- Also used a patch for mingw found on Google which contained some implementations in C.
- New changes mostly add protection during unwinding, faster speed, and add implementations for __except_handler2 and _abnormal_termination which were not previously present.
svn path=/trunk/; revision=24736
- Adds PsNtDllPathName constant string since we use it in two place (PsLocateSystemDll and DbgkpCreateThread).
- Adds PsImageNotifyEnabled boolean flag and sets it to true (although it should only be when a routine is installed, but ROS doesn't do this yet.
svn path=/trunk/; revision=24733