Commit Graph
810 Commits
Author SHA1 Message Date
Amine Khaldi ba83a0794e [HAL]: Automatically generate the embedded PCI database. By Hermès Bélusca with improvements from me.
CORE-6654 #resolve #comment Patch committed. Thanks !

svn path=/trunk/; revision=57297
2012-09-14 13:14:47 +00:00
Amine Khaldi 5810d8370f [HAL]
* Don't compile lib_hal_pic for x64. Brought to you by Hermès Bélusca.
See issue #7309 for more details.

svn path=/trunk/; revision=57182
2012-08-27 21:24:22 +00:00
Amine Khaldi 2a0e108e5b [CMAKE]
* Prefer STREQUAL over MATCHES since we're comparing with strings here. Brought to you by Hermès Bélusca.
See issue #7306 for more details.

svn path=/trunk/; revision=57181
2012-08-27 18:58:27 +00:00
Amine Khaldi 56747bcf8f [HAL]
* Leverage the object library option provided by CMake 2.8.8+ which will speed up the build even further.
* Compared strings using STREQUAL.
* These wrapping conditions will go away as soon as we ship the new BE.

svn path=/trunk/; revision=56909
2012-07-17 14:11:49 +00:00
Timo Kreuzer efff43afd5 [HAL]
Fix MSVC / 64 bit warnings

svn path=/trunk/; revision=56260
2012-03-28 12:15:54 +00:00
Stefan Ginsberg 18748efb4b - Revert hack.
svn path=/trunk/; revision=56237
2012-03-26 14:51:03 +00:00
Stefan Ginsberg 26eb754f31 Remove remnant of old boot method.
svn path=/trunk/; revision=56228
2012-03-25 16:57:10 +00:00
Pierre Schweitzer b8a181d6f3 [HALX86]
Revert r56080
Fix the fix of r56090

svn path=/trunk/; revision=56099
2012-03-10 07:38:25 +00:00
Stefan Ginsberg 1016fc25ff - Fix DBG macro AGAIN which got broken during the switch to cmake. Checked build: DBG = 1, free build: DBG = 0. Noobs.
svn path=/trunk/; revision=56090
2012-03-08 09:18:28 +00:00
Jérôme Gardou 4bdb6a42f2 [CMAKE]
* unify spec2def and add_importlib_target
* use module name instead of spec file name for deciding importlib target name

svn path=/trunk/; revision=56081
2012-03-07 21:21:27 +00:00
Pierre Schweitzer 92de8cffa3 [HALX86]
Fix halx86 release build

svn path=/trunk/; revision=56080
2012-03-07 21:19:30 +00:00
Stefan Ginsberg 5001cb2608 - Stop using ObfXXX and IofXXX in C code. This is bad style. Always use the non-f versions in C code.
- Fix the way we undefined IoCallDriver and IoCompleteRequest so existing and future code in irp.c will use the correct function when using the Io* versions.
Part 1 of 2.

svn path=/trunk/; revision=56060
2012-03-05 20:43:47 +00:00
Amine Khaldi 818418643e * Rbuild, our build system, has served us well so far, but its usefulness has since been vastly overshadowed by its awfulness. It's time to fix it.
svn path=/trunk/; revision=55855
2012-02-25 17:23:37 +00:00
Amine Khaldi 459a045652 [CMAKE]
* Simplify the way we handle importlib targets by taking control of the importlib name.

svn path=/trunk/; revision=55764
2012-02-20 22:08:14 +00:00
Alex Ionescu d68458a259 [NTOSKRNL]: Implement ThreadBreakOnTermination for the SET case.
Cleanup some dbgprints.

svn path=/trunk/; revision=55693
2012-02-19 02:24:52 +00:00
Amine Khaldi 87a7ba545c * Get rid of $Id$ usage and the related svn property.
svn path=/trunk/; revision=55685
2012-02-18 22:57:24 +00:00
Cameron Gutman 684eccd71e [HAL]
- Don't send a bogus bus number (-1) to the PCI driver because then it tries to scan that bus and obviously doesn't find anything
- Legacy HAL can now enumerate boot critical PCI devices (like the USB controller) and build the device stack for USB boot
[HIVESYS]
- Missed this spot where usbhub is installed for an external hub causing a crash

svn path=/trunk/; revision=55652
2012-02-16 23:08:05 +00:00
Cameron Gutman 022f4b2ce5 [USB]
- We proudly merge the first charge of the usb-bringup branch. We do want to stress hardware support is still under heavy development and testing in real hardware is experimental
- Merge the Human Interface Device Stack(HID) which is used for mice / keyboards and other devices which use the USB interface, consisting of hidusb, hidparse, hidclass, mouhid, kbdhid
- Merge the composite driver, supports USB composite devices, laid out in usbccgp
- Merge the generic hub driver, which supports the USB root hub and in future USB hubs. Driver is usbhub
- Merge the Open Host Controller Interface driver (ohci)
- Merge the Enhanced Host Controller Interface driver (ehci)
- Merge the many fixes in other areas of ReactOS needed for USB to work (ntoskrnl, pci, inf, umpnpmgr, usetup)
- Special thanks goes the Haiku team, whose excellent code has provided a great base for the development of the new ReactOS USB / HID stack
- The development of the USB stack has shown the great potential when ReactOS developers team up together to achieve a common goal. The involved developers are here, listed alphabetically:

Alex Ionescu
Amine Khaldi
Cameron Gutman
Johannes Anderwald
Michel Martin
Thomas Faber
Thomas Lotz(Haiku)

Let's start the ReactOS revolution

svn path=/trunk/; revision=55555
2012-02-12 04:59:51 +00:00
Timo Kreuzer a713dd0ea3 [HAL]
Fix syntax, patch by Victor Martinez

svn path=/trunk/; revision=55496
2012-02-08 18:29:08 +00:00
Timo Kreuzer 83904f66db [NTOSKRNL]
- Add MM_HAL_VA_END and use it in MiAddHalIoMappings instead of making assumptions about the page tables
- Add MM_SHARED_USER_DATA_VA for x86
- use MM_SHARED_USER_DATA_VA in Mm to avoid ambiguities
- fix or comment out USER_SHARED_DATA in asm headers, as it should be the kernel mode address here
- set Teb->ExceptionList to NULL on amd64, it is used as a link to the Wow64 TEB, if any

svn path=/trunk/; revision=55445
2012-02-06 00:24:31 +00:00
Cameron Gutman c2d0d784c7 [USB-BRINGUP-TRUNK]
- Create a branch to do a proper merge of USB work from a trunk base instead of from cmake-bringup
- In the future, DO NOT under any circumstances branch another branch. This leads to merge problems!

svn path=/branches/usb-bringup-trunk/; revision=55018
2012-01-20 20:58:46 +00:00
Thomas Faber af2d1c6f98 [HAL] - Do not truncate PCI device names in debug dump; misc fixes
[PCI] - Get rid of some magic numbers

svn path=/trunk/; revision=55015
2012-01-20 19:53:00 +00:00
Timo Kreuzer 2191cf1a2d [HAL]
- Implement IrqlToSoftVector() macro and use it in HalRequestSoftwareInterrupt, so that on amd64 the correct interrupt is triggered.
- Really start at the lowest vector for the IRQL in HalpAllocateSystemInterrupt
- Small code refactoring

svn path=/trunk/; revision=55014
2012-01-20 16:32:43 +00:00
Amine Khaldi 4696a40648 [HAL]
* Timo Kreuzer: Fix a NULL pointer dereference. CID 13453.

svn path=/trunk/; revision=54487
2011-11-24 11:25:40 +00:00
Jérôme Gardou 2ffaaef5e6 [HALx86]
- Fix the fix (do not truncate ULONGLONG value)

svn path=/trunk/; revision=54472
2011-11-21 12:30:01 +00:00
Jérôme Gardou f02069cdbe [HALx86]
- Hey Arch, it's an USHORT!

svn path=/trunk/; revision=54471
2011-11-21 12:17:57 +00:00
Jérôme Gardou 2a0fd0c988 [HALx86]
- fix various compiler warnings (msvc)
- fix a bug, where only the last IO map entry would be saved

svn path=/trunk/; revision=54470
2011-11-21 12:04:16 +00:00
Jérôme Gardou 3808ea2f30 [HAL]
- truncate PCI vendor id instead of casting it.
MSVC chokes on it with /RTCc

svn path=/trunk/; revision=54461
2011-11-20 17:54:52 +00:00
Cameron Gutman aefaa2f4f9 [HALX86]
- Do not allow software interrupts to preempt code running with interrupts disabled during KfLowerIrql

svn path=/trunk/; revision=54418
2011-11-18 18:53:41 +00:00
Cameron Gutman 7407aba5cf [HAL]
- Remove broken map register "prefetcher" code
- Check that we have enough space to grow our map registers
- Fix a bad hint to RtlFindClearBitsAndSet
- Queuing the grow work item is non-vital; treat it as such
- Fixes BSOD with CM3738 and VIA1723 sound cards [bug 6657]

svn path=/trunk/; revision=54382
2011-11-15 07:58:46 +00:00
Cameron Gutman edc6eb9eca [HAL]
- Fix DMA on the EISA bus
- Fix a critical calculation error in map register size resulting in the map register allocation worker not allocating enough map registers for a dynamic resize

svn path=/trunk/; revision=54371
2011-11-13 05:49:33 +00:00
Timo Kreuzer 143732711e [ASM]
Improve .proc / .endproc syntax, so that the full symbolic name is passed, which allows to create fastcall symbols. Remove the need to pass the function name to .endp

svn path=/trunk/; revision=54112
2011-10-13 15:16:29 +00:00
Cameron Gutman d974e84e77 [HALACPI]
- Work around a race condition related to devices reported before the I/O subsystem is fully up
- Fixes bug #6271

svn path=/trunk/; revision=54035
2011-10-06 21:50:07 +00:00
Dmitry Gorbachev 9fc97e9f95 [HAL]
Do not write past the end of buffer.

svn path=/trunk/; revision=54028
2011-10-06 19:59:20 +00:00
Cameron Gutman 3b4a9ade09 [HAL]
- Implement support for scatter/gather DMA
- Tested with Intel's NDIS 5.1 PRO/1000 driver (but more testing would be helpful to weed out bugs)
[NDIS]
- Report NDIS 5.1 now since S/G DMA is supported
- Stop warning when S/G DMA is used

svn path=/trunk/; revision=54016
2011-10-05 20:36:20 +00:00
Thomas Faber 63a058da88 [CMAKE]
- Use the new macros for link flags and compile definitions some more. No semantic changes

svn path=/trunk/; revision=53931
2011-10-02 18:59:33 +00:00
Timo Kreuzer a7a2617223 [HAL]
- Fix a typo in HalpAllocPhysicalMemory, that caused the function to remove MADs that still had pages rather than removing those who are empty. Fixes an assertion on VMWare.
Kudos go to Kamil for tracking it down.
- Fix another bug in HalpAllocPhysicalMemory, where the size of the newly allocated MAD was set to the alignment value instead of the original MAD, this lead to conflicting MADs and possible reuse of hal memory by the kernel. This seems to fix a bugcheck 0x19 with halacpi.

svn path=/trunk/; revision=53861
2011-09-26 15:01:11 +00:00
Cameron Gutman c21792df52 [HAL]
- Report table lookup failures
- Report supported ACPI version

svn path=/trunk/; revision=53831
2011-09-24 12:01:48 +00:00
Cameron Gutman 51a6c871a9 [HAL]
- Revert part of r53788 (MAXIMUM_IDTVECTOR is a valid vector number)
- The buffer overrun in the IDT code was already fixed by r53420

svn path=/trunk/; revision=53806
2011-09-22 21:23:09 +00:00
Pierre Schweitzer ac92a8adf9 [HAL/x86]
Completely fix one of the overruns

svn path=/trunk/; revision=53789
2011-09-21 16:15:16 +00:00
Pierre Schweitzer 87d6daee6c [HAL/x86]
Fix buffer overruns

svn path=/trunk/; revision=53788
2011-09-21 16:10:32 +00:00
Timo Kreuzer 87779aa572 [HAL/NDK]
- Make Vector parameter in HalEnableSystemInterrupt, HalDisableSystemInterrupt and HalBeginSystemInterrupt an ULONG, not an UCHAR
[NDK]
- 64bit fixes for HANDLE_TABLE, KPROCESS, SECTION_IMAGE_INFORMATION, MMADDRESS_LIST, MMVAD_FLAGS, MMVAD, MMVAD_LONG, MMVAD_SHORT, MEMORY_DESCRIPTOR, MEMORY_ALLOCATION_DESCRIPTOR, LdrVerifyMappedImageMatchesChecksum
- KDPC_DATA::DpcQueueDepth is signed on amd64, unsigned on x86
[NTOSKRNL]
- Fix hundreds of MSVC and amd64 warnings
- add a pragma message to FstubFixupEfiPartition, since it looks broken
- Move portable Ke constants from <arch>/cpu.c to krnlinit.c
- Fixed a bug in amd64 KiGeneralProtectionFaultHandler

svn path=/trunk/; revision=53734
2011-09-18 13:11:45 +00:00
Timo Kreuzer 4dfa3c52a3 [HAL/APIC/AMD64]
- add common amd64 asm trap macros
- fix amd64 version of HackEoi
- send EOI in amd64 trap exit code, so we avoid using HackEoi
- modify HalpClockInterruptHandler for better portability
- fix amd64 TscCalibrationISR

svn path=/trunk/; revision=53719
2011-09-16 09:39:41 +00:00
Timo Kreuzer 8f6cfb2651 [HAL/APIC]
- Fix some stuff that gcc complains about. It doesn't like to use static data in non-static inline functions for some unknown reason.
- Implement support for level triggered interrupts, when using lazy irql

svn path=/trunk/; revision=53711
2011-09-15 11:34:21 +00:00
Timo Kreuzer 00502b9642 [FREELDR/HAL/NDK]
- Move some shared constants (HYPERSPACE_BASE, MM_HAL_VA_START, APIC_BASE) to NDK to avoid duplicating them, also fix wrong values for amd64
- Map the hal address space in amd64 freeldr
- Fix use of uninitialized variable (HighPart of PHYSICAL_ADDRESS) in HalpAcpiCopyBiosTable
- Fix some MSVC and amd64 warnings

svn path=/trunk/; revision=53709
2011-09-15 10:46:02 +00:00
Timo Kreuzer a6a01dd912 [HAL]
Fix amd64 build

svn path=/trunk/; revision=53704
2011-09-13 14:44:47 +00:00
Timo Kreuzer d28eae967a [HAL]
Implement lazy irql for APIC. This is useful for VMs, since APIC usually has high overhead due to the need of invoking the hypervisor on every irql raise and lower. With lazy irql we avoid that until absolutely neccessary. Note that we misuse the PCR's IRR field to save the current hardware irql. Its a huge performance boost (some parts take half the time), making APIC performance close to PIC performance on VBox. This is something that Windows doesn't have :)

svn path=/trunk/; revision=53695
2011-09-12 09:46:20 +00:00
Amine Khaldi 6b9d48d482 * Comment out some unused but set variables, remove some others.
* Allow warnings for some 3rd party code.

svn path=/trunk/; revision=53691
2011-09-11 15:39:19 +00:00
Timo Kreuzer 1b9f1974ad [HAL]
- End the interrupt in HalpApcInterruptHandler and HalpDispatchInterruptHandler before calling the kernel, otherwise we would be stuck at high processor irql
- Improve HalEnableSystemInterrupt
- disable interrupts in HalpInitializeClock
=> APIC hal boots to desktop!

svn path=/trunk/; revision=53685
2011-09-11 09:34:50 +00:00
Amine Khaldi 0864fd08d6 * Comment out some unused but set variables, remove some others.
svn path=/trunk/; revision=53681
2011-09-11 00:40:20 +00:00