Difference between revisions of "Hardware Abstraction Layer"

From ReactOS Wiki
Jump to: navigation, search
m
(Add SGI 320/540 link)
 
(8 intermediate revisions by 4 users not shown)
Line 1: Line 1:
[[:Category:ReactOS_Executive]]
+
{{Stub}}
 +
The HAL makes it possible for the x86 ReactOS [[kernel]] and HAL to run on different x86 motherboards. The HAL abstracts motherboard specific code from the kernel, so that different motherboards do not require changes in the kernel. Examples for different hardware designs are the standard PC, the Japanese NEC [[PC-98]] or [[SGI 320/540|x86 SGI workstations]].
  
The HAL makes it possible for the [[x86]] ReactOS [[kernel]] and HAL to run on different x86 motherboards. The HAL abstracts motherboard specific code from the kernel, so that different motherboards do not require changes in the kernel. Examples for different hardware designs are the standard PC, the Japanese NEC PC98 or x86 SGI workstations.
+
{{Code history|hal}}
  
http://www.reactos.org/en/dev_whitepaper.html
+
== External links ==
 +
* [[wikipedia:Microsoft Windows library files#Hal.dll]]
  
http://en.wikipedia.org/wiki/Microsoft_Windows_library_files#Hal.dll
+
[[Category:ReactOS Components]]
 
 
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/?view=log
 
 
 
[[ChangeLog-0.0.16]]
 
* HAL dispatch tables and other HAL improvements
 
 
 
The HAL was separated from [[Ntoskrnl.exe]] in [[ChangeLog-0.0.19|ReactOS 0.0.19]]
 
 
 
[[ChangeLog-0.1.0]]
 
* Added HalpGetIsaInterruptVector, HalpTranslatePciAddress,
 
* Improved PCI support ([[Hartmut Birr]])
 
[[ChangeLog-0.1.5]]
 
 
 
* Improved DMA support in the HAL ([[Vizzini]])
 
 
 
[[ChangeLog-0.2.1]]
 
 
 
* KiAcquire/ReleaseSpinLock adaption ([[Gunnar Dalsnes]])
 
* Spinlock can also be acquired using KeAcquireSpinLockRaiseToSynch(), take this into account when checking the IRQL on release ([[Gé van Geldorp]])
 
 
 
[[ChangeLog-0.2.2]]
 
*Spinlock can also be acquired using KeAcquireSpinLockRaiseToSynch() ([[Ge van Geldorp]])
 
 
 
[[ChangeLog-0.2.3]]
 
*Initialize the serial port to reasonable state after the detection (required by Virtual PC) ([[Filip Navara]])
 
*Avoid collision with compiler generated label ([[Ge van Geldorp]])
 
 
 
[[ChangeLog-0.2.4]]
 
 
 
* Implementation of HalReadDmaCounter. ([[Filip Navara]])
 
* Let HalAllocateCommonBuffer allocated 64K aligned memory. ([[Filip Navara]])
 
* Change IoMapTransfer to support auto initialize and single transfer mode, 16-bit DMA and common buffers. ([[Filip Navara]])
 
* Stop DMA transfer in IoFlushAdapterBuffers. ([[Filip Navara]])
 
* Replaced all single pushf/popf inline assembler instructions with a macro which doesn't change the stack layout. ([[Hartmut Birr]])
 
 
 
[[ChangeLog-0.2.5]]
 
 
 
* Create a new HAL to support the Xbox ([[Gé van Geldorp]])
 
* Rewritten DMA routines. ([[Alex Ionescu]])
 
* Used the time stamp counter from a pentium if it is available  (in KeStallExecutionProcessor/KeQueryPerformanceCounter). ([[Hartmut Birr]])
 
* Improved smp functions. Changed/rewrote parts of the mp code to get my ASUS p2b-ds motherboard to working. Fixed the enabling/disabling of the higher irqs in Enable8259AIrq/Disable8259AIrq. Moved the local apic functions into its own file. Implemented the IpiInterrupt. Changed the destination of the startup ipis. Enabled interrupts on calls to KiDispatchInterrupt and KiDeliverApc. Delivered dpcs always on HalEndSystemInterrupt. Set the logical apic id according to the processor number from ntoskrnl. Dipped the code between HalInitializeProcessor and HalStartNextProcessor. ([[Hartmut Birr]])
 

Latest revision as of 18:43, 11 October 2019

The page Hardware Abstraction Layer is a short article on something that should have a lot more information written on it.
If you know anything else about it, you are STRONGLY encouraged to add the information in. If you are unsure of proper formatting or style, add it to the talk page or this page itself as you think best and others will help.


The HAL makes it possible for the x86 ReactOS kernel and HAL to run on different x86 motherboards. The HAL abstracts motherboard specific code from the kernel, so that different motherboards do not require changes in the kernel. Examples for different hardware designs are the standard PC, the Japanese NEC PC-98 or x86 SGI workstations.

Commit history (Source code can be found in: /reactos/hal)

External links