We now have an official hal-arm which exports KeSwapIrql, allowing many more drivers to compile and link properly.

We now have ARM export files for Class2 and Scsiport, allowing these drivers plus disk, cdrom and other dependencies to build and link.

svn path=/trunk/; revision=32223
This commit is contained in:
ReactOS Portable Systems Group 2008-02-08 17:13:09 +00:00
parent f190c5ef68
commit 02dc4b9442
17 changed files with 1408 additions and 3 deletions

View file

@ -2,7 +2,7 @@
<!DOCTYPE module SYSTEM "../../../../tools/rbuild/project.dtd">
<module name="class2" type="kernelmodedriver" installbase="system32/drivers" installname="class2.sys">
<bootstrap installbase="$(CDOUTPUT)" />
<importlibrary definition="class2.def" />
<importlibrary definition="class2_$(ARCH).def" />
<library>ntoskrnl</library>
<library>hal</library>
<library>scsiport</library>

View file

@ -0,0 +1,29 @@
; $Id: class2.def 26227 2007-04-01 16:29:16Z fireball $
;
; class2.def - export definition file for scsi class driver
;
LIBRARY CLASS2.SYS
EXPORTS
ScsiClassAsynchronousCompletion
ScsiClassBuildRequest
ScsiClassClaimDevice
ScsiClassCreateDeviceObject
ScsiClassDeviceControl
ScsiClassFindModePage
ScsiClassFindUnclaimedDevices
ScsiClassGetCapabilities
ScsiClassGetInquiryData
ScsiClassInitialize
ScsiClassInitializeSrbLookasideList
ScsiClassInternalIoControl
ScsiClassInterpretSenseInfo
ScsiClassIoComplete
ScsiClassIoCompleteAssociated
ScsiClassModeSense
ScsiClassQueryTimeOutRegistryValue
ScsiClassReadDriveCapacity
ScsiClassReleaseQueue
ScsiClassSendSrbAsynchronous
ScsiClassSendSrbSynchronous
ScsiClassSplitRequest
;EOF

View file

@ -3,7 +3,7 @@
<module name="scsiport" type="kernelmodedriver" installbase="system32/drivers" installname="scsiport.sys">
<bootstrap installbase="$(CDOUTPUT)" />
<define name="_SCSIPORT_" />
<importlibrary definition="scsiport.def" />
<importlibrary definition="scsiport_$(ARCH).def" />
<include base="scsiport">.</include>
<library>ntoskrnl</library>
<library>hal</library>

View file

@ -0,0 +1,51 @@
;
; scsiport.def - export definition file for scsiport driver
;
LIBRARY SCSIPORT.SYS
EXPORTS
ScsiDebugPrint
ScsiPortCompleteRequest
ScsiPortConvertPhysicalAddressToUlong
ScsiPortConvertUlongToPhysicalAddress=NTOSKRNL.RtlConvertUlongToLargeInteger
ScsiPortFlushDma
ScsiPortFreeDeviceBase
ScsiPortGetBusData
ScsiPortGetDeviceBase
ScsiPortGetLogicalUnit
ScsiPortGetPhysicalAddress
ScsiPortGetSrb
ScsiPortGetUncachedExtension
ScsiPortGetVirtualAddress
ScsiPortInitialize
ScsiPortIoMapTransfer
ScsiPortLogError
ScsiPortMoveMemory
ScsiPortNotification
ScsiPortReadPortBufferUchar=HAL.READ_PORT_BUFFER_UCHAR
ScsiPortReadPortBufferUshort=HAL.READ_PORT_BUFFER_USHORT
ScsiPortReadPortBufferUlong=HAL.READ_PORT_BUFFER_ULONG
ScsiPortReadPortUchar=HAL.READ_PORT_UCHAR
ScsiPortReadPortUshort=HAL.READ_PORT_USHORT
ScsiPortReadPortUlong=HAL.READ_PORT_ULONG
ScsiPortReadRegisterBufferUchar=NTOSKRNL.READ_REGISTER_BUFFER_UCHAR
ScsiPortReadRegisterBufferUshort=NTOSKRNL.READ_REGISTER_BUFFER_USHORT
ScsiPortReadRegisterBufferUlong=NTOSKRNL.READ_REGISTER_BUFFER_ULONG
ScsiPortReadRegisterUchar=NTOSKRNL.READ_REGISTER_UCHAR
ScsiPortReadRegisterUshort=NTOSKRNL.READ_REGISTER_USHORT
ScsiPortReadRegisterUlong=NTOSKRNL.READ_REGISTER_ULONG
ScsiPortSetBusDataByOffset
ScsiPortStallExecution=HAL.KeStallExecutionProcessor
ScsiPortValidateRange
ScsiPortWritePortUchar=HAL.WRITE_PORT_UCHAR
ScsiPortWritePortUshort=HAL.WRITE_PORT_USHORT
ScsiPortWritePortUlong=HAL.WRITE_PORT_ULONG
ScsiPortWritePortBufferUchar=HAL.WRITE_PORT_BUFFER_UCHAR
ScsiPortWritePortBufferUshort=HAL.WRITE_PORT_BUFFER_USHORT
ScsiPortWritePortBufferUlong=HAL.WRITE_PORT_BUFFER_ULONG
ScsiPortWriteRegisterBufferUchar=NTOSKRNL.WRITE_REGISTER_BUFFER_UCHAR
ScsiPortWriteRegisterBufferUshort=NTOSKRNL.WRITE_REGISTER_BUFFER_USHORT
ScsiPortWriteRegisterBufferUlong=NTOSKRNL.WRITE_REGISTER_BUFFER_ULONG
ScsiPortWriteRegisterUchar=NTOSKRNL.WRITE_REGISTER_UCHAR
ScsiPortWriteRegisterUshort=NTOSKRNL.WRITE_REGISTER_USHORT
ScsiPortWriteRegisterUlong=NTOSKRNL.WRITE_REGISTER_ULONG
;EOF

View file

@ -14,4 +14,9 @@
<xi:include href="halppc/directory.rbuild" />
</directory>
</if>
<if property="ARCH" value="arm">
<directory name="halarm">
<xi:include href="halarm/directory.rbuild" />
</directory>
</if>
</group>

View file

@ -78,6 +78,7 @@ KdComPortInUse=_KdComPortInUse DATA
KeFlushWriteBuffer
KeGetCurrentIrql
KeLowerIrql
KeSwapIrql
KeQueryPerformanceCounter
KeRaiseIrql
KeRaiseIrqlToDpcLevel

View file

@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE group SYSTEM "../../tools/rbuild/project.dtd">
<group xmlns:xi="http://www.w3.org/2001/XInclude">
<directory name="generic">
<xi:include href="generic/generic.rbuild" />
</directory>
<directory name="up">
<xi:include href="up/halup.rbuild" />
</directory>
</group>

View file

@ -0,0 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="halarm_generic" type="objectlibrary">
<include base="halarm_generic">../include</include>
<include base="ntoskrnl">include</include>
<define name="_DISABLE_TIDENTS" />
<define name="_NTHAL_" />
<file>hal.c</file>
<pch>../include/hal.h</pch>
</module>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,43 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Hardware Abstraction Layer
* FILE: hal/halx86/include/hal.h
* PURPOSE: HAL Header
* PROGRAMMER: Alex Ionescu (alex@relsoft.net)
*/
/* INCLUDES ******************************************************************/
/* C Headers */
#include <stdio.h>
/* WDK HAL Compilation hack */
#ifdef _MSC_VER
#include <excpt.h>
#include <ntdef.h>
#undef _NTHAL_
#undef DECLSPEC_IMPORT
#define DECLSPEC_IMPORT
#define __declspec(dllimport)
#endif
/* IFS/DDK/NDK Headers */
#include <ntifs.h>
#include <bugcodes.h>
#include <ntdddisk.h>
#include <arc/arc.h>
#include <iotypes.h>
#include <kefuncs.h>
#include <intrin.h>
#include <halfuncs.h>
#include <iofuncs.h>
#include <ldrtypes.h>
#include <obfuncs.h>
/* Internal HAL Headers */
#include "halp.h"
/* Helper Header */
#include <reactos/helper.h>
/* EOF */

View file

@ -0,0 +1,114 @@
/*
*
*/
#ifndef __INTERNAL_HAL_HAL_H
#define __INTERNAL_HAL_HAL_H
/* WDK Hack */
#define KdComPortInUse _KdComPortInUse
#define HAL_APC_REQUEST 0
#define HAL_DPC_REQUEST 1
/* Conversion functions */
#define BCD_INT(bcd) \
(((bcd & 0xF0) >> 4) * 10 + (bcd & 0x0F))
#define INT_BCD(int) \
(UCHAR)(((int / 10) << 4) + (int % 10))
/* adapter.c */
PADAPTER_OBJECT STDCALL HalpAllocateAdapterEx(ULONG NumberOfMapRegisters,BOOLEAN IsMaster, BOOLEAN Dma32BitAddresses);
/* bus.c */
VOID NTAPI HalpInitNonBusHandler (VOID);
/* irql.c */
VOID NTAPI HalpInitPICs(VOID);
/* udelay.c */
VOID NTAPI HalpInitializeClock(VOID);
/* pci.c */
VOID HalpInitPciBus (VOID);
/* dma.c */
VOID HalpInitDma (VOID);
/* Non-generic initialization */
VOID HalpInitPhase0 (PLOADER_PARAMETER_BLOCK LoaderBlock);
VOID HalpInitPhase1(VOID);
VOID NTAPI HalpClockInterrupt(VOID);
//
// KD Support
//
VOID
NTAPI
HalpCheckPowerButton(
VOID
);
VOID
NTAPI
HalpRegisterKdSupportFunctions(
VOID
);
NTSTATUS
NTAPI
HalpSetupPciDeviceForDebugging(
IN PVOID LoaderBlock,
IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
);
NTSTATUS
NTAPI
HalpReleasePciDeviceForDebugging(
IN OUT PDEBUG_DEVICE_DESCRIPTOR PciDevice
);
//
// Memory routines
//
PVOID
NTAPI
HalpMapPhysicalMemory64(
IN PHYSICAL_ADDRESS PhysicalAddress,
IN ULONG NumberPage
);
VOID
NTAPI
HalpUnmapVirtualAddress(
IN PVOID VirtualAddress,
IN ULONG NumberPages
);
/* sysinfo.c */
NTSTATUS
NTAPI
HaliQuerySystemInformation(
IN HAL_QUERY_INFORMATION_CLASS InformationClass,
IN ULONG BufferSize,
IN OUT PVOID Buffer,
OUT PULONG ReturnedLength
);
NTSTATUS
NTAPI
HaliSetSystemInformation(
IN HAL_SET_INFORMATION_CLASS InformationClass,
IN ULONG BufferSize,
IN OUT PVOID Buffer
);
typedef struct tagHALP_HOOKS
{
void (*InitPciBus)(ULONG BusNumber, PBUS_HANDLER BusHandler);
} HALP_HOOKS, *PHALP_HOOKS;
extern HALP_HOOKS HalpHooks;
extern KSPIN_LOCK HalpSystemHardwareLock;
#endif /* __INTERNAL_HAL_HAL_H */

View file

@ -0,0 +1,32 @@
/* $Id: halinit_up.c 24964 2006-11-29 08:28:20Z ion $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/hal/x86/halinit.c
* PURPOSE: Initalize the x86 hal
* PROGRAMMER: David Welch (welch@cwcom.net)
* UPDATE HISTORY:
* 11/06/98: Created
*/
/* INCLUDES *****************************************************************/
#include <hal.h>
#define NDEBUG
#include <debug.h>
/* FUNCTIONS ***************************************************************/
VOID
HalpInitPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
}
VOID
HalpInitPhase1(VOID)
{
}
/* EOF */

View file

@ -0,0 +1,14 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
<module name="halarm_up" type="kernelmodedll">
<importlibrary definition="../../hal/hal_arm.def" />
<bootstrap installbase="$(CDOUTPUT)" nameoncd="hal.dll" />
<include base="halarm_generic">../include</include>
<include base="ntoskrnl">include</include>
<define name="_DISABLE_TIDENTS" />
<define name="_NTHAL_" />
<library>halarm_generic</library>
<library>ntoskrnl</library>
<file>halinit_up.c</file>
<file>halup.rc</file>
</module>

View file

@ -0,0 +1,5 @@
#define REACTOS_VERSION_DLL
#define REACTOS_STR_FILE_DESCRIPTION "X86 Uniprocessor Hardware Abstraction Layer\0"
#define REACTOS_STR_INTERNAL_NAME "halup\0"
#define REACTOS_STR_ORIGINAL_FILENAME "halup.dll\0"
#include <reactos/version.rc>

View file

@ -1,7 +1,6 @@
#include <internal/arm/asmmacro.S>
GENERATE_ARM_STUB KiSwapContext
GENERATE_ARM_STUB KeSwapIrql
GENERATE_ARM_STUB DbgBreakPointWithStatus
GENERATE_ARM_STUB ExInterlockedAddLargeInteger
GENERATE_ARM_STUB ExInterlockedAddLargeStatistic