Added cache manager prototypes.

Fixed Io macros.
Fixed and exported more hal functions.

svn path=/trunk/; revision=1180
This commit is contained in:
Eric Kohl 2000-06-12 14:57:10 +00:00
parent 65a13ef159
commit 19e66992de
16 changed files with 839 additions and 287 deletions

View file

@ -1,10 +1,328 @@
#ifndef _NTOS_CCFUNCS_H
#define _NTOS_CCFUNCS_H
/* $Id: ccfuncs.h,v 1.4 2000/03/05 19:17:37 ea Exp $ */
/* $Id: ccfuncs.h,v 1.5 2000/06/12 14:51:26 ekohl Exp $ */
/* exported variables */
/*
CcFastMdlReadWait
CcFastReadNotPossible
CcFastReadWait
*/
BOOLEAN
STDCALL
CcCanIWrite (
IN PFILE_OBJECT FileObject,
IN ULONG BytesToWrite,
IN BOOLEAN Wait,
IN BOOLEAN Retrying
);
BOOLEAN
STDCALL
CcCopyRead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
OUT PVOID Buffer,
OUT PIO_STATUS_BLOCK IoStatus
);
BOOLEAN
STDCALL
CcCopyWrite (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
IN PVOID Buffer
);
VOID
STDCALL
CcDeferWrite (
IN PFILE_OBJECT FileObject,
IN PCC_POST_DEFERRED_WRITE PostRoutine,
IN PVOID Context1,
IN PVOID Context2,
IN ULONG BytesToWrite,
IN BOOLEAN Retrying
);
BOOLEAN
STDCALL
CcFastCopyRead (
IN PFILE_OBJECT FileObject,
IN ULONG FileOffset,
IN ULONG Length,
IN ULONG PageCount,
OUT PVOID Buffer,
OUT PIO_STATUS_BLOCK IoStatus
);
BOOLEAN
STDCALL
CcFastCopyWrite (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN PVOID Buffer
);
VOID
STDCALL
CcFlushCache (
IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
IN PLARGE_INTEGER FileOffset OPTIONAL,
IN ULONG Length,
OUT PIO_STATUS_BLOCK IoStatus OPTIONAL
);
LARGE_INTEGER
STDCALL
CcGetDirtyPages (
IN PVOID LogHandle,
IN PDIRTY_PAGE_ROUTINE DirtyPageRoutine,
IN PVOID Context1,
IN PVOID Context2
);
PFILE_OBJECT
STDCALL
CcGetFileObjectFromBcb (
IN PVOID Bcb
);
PFILE_OBJECT
STDCALL
CcGetFileObjectFromSectionPtrs (
IN PSECTION_OBJECT_POINTERS SectionObjectPointer
);
LARGE_INTEGER
STDCALL
CcGetLsnForFileObject (
IN PFILE_OBJECT FileObject,
OUT PLARGE_INTEGER OldestLsn OPTIONAL
);
VOID
STDCALL
CcInitializeCacheMap (
IN PFILE_OBJECT FileObject,
IN PCC_FILE_SIZES FileSizes,
IN BOOLEAN PinAccess,
IN PCACHE_MANAGER_CALLBACKS CallBacks,
IN PVOID LazyWriterContext
);
BOOLEAN
STDCALL
CcIsThereDirtyData (
IN PVPB Vpb
);
BOOLEAN
STDCALL
CcMapData (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
OUT PVOID * Bcb,
OUT PVOID * Buffer
);
VOID
STDCALL
CcMdlRead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
OUT PMDL * MdlChain,
OUT PIO_STATUS_BLOCK IoStatus
);
VOID
STDCALL
CcMdlReadComplete (
IN PFILE_OBJECT FileObject,
IN PMDL MdlChain
);
VOID
STDCALL
CcMdlWriteComplete (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN PMDL MdlChain
);
BOOLEAN
STDCALL
CcPinMappedData (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
OUT PVOID * Bcb
);
BOOLEAN
STDCALL
CcPinRead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Wait,
OUT PVOID * Bcb,
OUT PVOID * Buffer
);
VOID
STDCALL
CcPrepareMdlWrite (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
OUT PMDL * MdlChain,
OUT PIO_STATUS_BLOCK IoStatus
);
BOOLEAN
STDCALL
CcPreparePinWrite (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN BOOLEAN Zero,
IN BOOLEAN Wait,
OUT PVOID * Bcb,
OUT PVOID * Buffer
);
BOOLEAN
STDCALL
CcPurgeCacheSection (
IN PSECTION_OBJECT_POINTERS SectionObjectPointer,
IN PLARGE_INTEGER FileOffset OPTIONAL,
IN ULONG Length,
IN BOOLEAN UninitializeCacheMaps
);
#define CcReadAhead(FO,FOFF,LEN) \
{ \
if ((LEN) >= 256) \
{ \
CcScheduleReadAhead((FO),(FOFF),(LEN)); \
} \
}
VOID
STDCALL
CcRepinBcb (
IN PVOID Bcb
);
VOID
STDCALL
CcScheduleReadAhead (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length
);
VOID
STDCALL
CcSetAdditionalCacheAttributes (
IN PFILE_OBJECT FileObject,
IN BOOLEAN DisableReadAhead,
IN BOOLEAN DisableWriteBehind
);
VOID
STDCALL
CcSetBcbOwnerPointer (
IN PVOID Bcb,
IN PVOID Owner
);
VOID
STDCALL
CcSetDirtyPageThreshold (
IN PFILE_OBJECT FileObject,
IN ULONG DirtyPageThreshold
);
VOID
STDCALL
CcSetDirtyPinnedData (
IN PVOID Bcb,
IN PLARGE_INTEGER Lsn OPTIONAL
);
VOID
STDCALL
CcSetFileSizes (
IN PFILE_OBJECT FileObject,
IN PCC_FILE_SIZES FileSizes
);
VOID
STDCALL
CcSetLogHandleForFile (
IN PFILE_OBJECT FileObject,
IN PVOID LogHandle,
IN PFLUSH_TO_LSN FlushToLsnRoutine
);
VOID
STDCALL
CcSetReadAheadGranularity (
IN PFILE_OBJECT FileObject,
IN ULONG Granularity
);
BOOLEAN
STDCALL
CcUninitializeCacheMap (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER TruncateSize OPTIONAL,
IN PCACHE_UNINITIALIZE_EVENT UninitializeCompleteEvent OPTIONAL
);
VOID
STDCALL
CcUnpinData (
IN PVOID Bcb
);
VOID
STDCALL
CcUnpinDataForThread (
IN PVOID Bcb,
IN ERESOURCE_THREAD ResourceThreadId
);
VOID
STDCALL
CcUnpinRepinnedBcb (
IN PVOID Bcb,
IN BOOLEAN WriteThrough,
IN PIO_STATUS_BLOCK IoStatus
);
BOOLEAN
STDCALL
CcZeroData (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER StartOffset,
IN PLARGE_INTEGER EndOffset,
IN BOOLEAN Wait
);
#endif
/* EOF */

View file

@ -1,4 +1,76 @@
#ifndef __INCLUDE_DDK_CCTYPES_H
#define __INCLUDE_DDK_CCTYPES_H
typedef struct _CACHE_UNINITIALIZE_EVENT
{
struct _CACHE_UNINITIALIZE_EVENT * Next;
KEVENT Event;
} CACHE_UNINITIALIZE_EVENT, *PCACHE_UNINITIALIZE_EVENT;
typedef struct _CC_FILE_SIZES
{
LARGE_INTEGER AllocationSize;
LARGE_INTEGER FileSize;
LARGE_INTEGER ValidDataLength;
} CC_FILE_SIZES, *PCC_FILE_SIZES;
typedef VOID (*PCC_POST_DEFERRED_WRITE)(IN PVOID Context1, IN PVOID Context2);
typedef struct _PUBLIC_BCB
{
CSHORT NodeTypeCode;
CSHORT NodeByteSize;
ULONG MappedLength;
LARGE_INTEGER MappedFileOffset;
} PUBLIC_BCB, *PPUBLIC_BCB;
typedef VOID (*PDIRTY_PAGE_ROUTINE) (
IN PFILE_OBJECT FileObject,
IN PLARGE_INTEGER FileOffset,
IN ULONG Length,
IN PLARGE_INTEGER OldestLsn,
IN PLARGE_INTEGER NewestLsn,
IN PVOID Context1,
IN PVOID Context2
);
typedef BOOLEAN (*PACQUIRE_FOR_LAZY_WRITE) (
IN PVOID Context,
IN BOOLEAN Wait
);
typedef VOID (*PRELEASE_FROM_LAZY_WRITE) (
IN PVOID Context
);
typedef BOOLEAN (*PACQUIRE_FOR_READ_AHEAD) (
IN PVOID Context,
IN BOOLEAN Wait
);
typedef VOID (*PRELEASE_FROM_READ_AHEAD) (
IN PVOID Context
);
typedef struct _CACHE_MANAGER_CALLBACKS
{
PACQUIRE_FOR_LAZY_WRITE AcquireForLazyWrite;
PRELEASE_FROM_LAZY_WRITE ReleaseFromLazyWrite;
PACQUIRE_FOR_READ_AHEAD AcquireForReadAhead;
PRELEASE_FROM_READ_AHEAD ReleaseFromReadAhead;
} CACHE_MANAGER_CALLBACKS, *PCACHE_MANAGER_CALLBACKS;
/* this is already defined in iotypes.h */
/*
typedef struct _SECTION_OBJECT_POINTERS
{
PVOID DataSectionObject;
PVOID SharedCacheMap;
PVOID ImageSectionObject;
} SECTION_OBJECT_POINTERS, *PSECTION_OBJECT_POINTERS;
*/
typedef VOID (*PFLUSH_TO_LSN)(IN PVOID LogHandle, IN LARGE_INTEGER Lsn);
#endif /* __INCLUDE_DDK_CCTYPES_H */

View file

@ -1,6 +1,6 @@
#ifndef _INCLUDE_DDK_IOFUNCS_H
#define _INCLUDE_DDK_IOFUNCS_H
/* $Id: iofuncs.h,v 1.12 2000/06/09 20:02:05 ekohl Exp $ */
/* $Id: iofuncs.h,v 1.13 2000/06/12 14:51:26 ekohl Exp $ */
/* --- EXPORTED BY NTOSKRNL --- */
@ -75,27 +75,27 @@ IoAllocateAdapterChannel (
/**********************************************************************
* NAME EXPORTED
* IoAllocateController@16
*
*
* DESCRIPTION
* Sets up a call to a driver supplied controller object as
* Sets up a call to a driver supplied controller object as
* soon as it is available.
*
*
* ARGUMENTS
* ControllerObject
* Driver created controller object;
*
*
* DeviceObject
* Target device;
*
*
* ExecutionObject
* Routine to be called;
*
*
* Context
* Driver determined context to be based to the
* routine.
*
* RETURN VALUE
* None.
* None.
*
* REVISIONS
*
@ -113,17 +113,17 @@ IoAllocateController (
* IoAllocateErrorLogEntry@8
*
* DESCRIPTION
* Allocates an error log packet.
*
* Allocates an error log packet.
*
* ARGUMENTS
* IoObject
* Object which found the error;
*
* EntrySize
* Size in bytes of the packet to be allocated.
*
*
* RETURN VALUE
* On success, a pointer to the allocated packet.
* On success, a pointer to the allocated packet.
* On failure, it returns NULL.
*/
PVOID
@ -191,13 +191,22 @@ IoAllocateMdl (
PIRP Irp
);
/*
* FUNCTION: Creates a symbolic link between the ARC name of a physical
* device and the name of the corresponding device object
* ARGUMENTS:
* ArcName = ARC name of the device
* DeviceName = Name of the device object
* NOTES:
/**********************************************************************
* NAME MACRO
* IoAssignArcName
*
* DESCRIPTION
* Creates a symbolic link between the ARC name of a physical
* device and the name of the corresponding device object
*
* ARGUMENTS
* ArcName
* ARC name of the device
*
* DeviceName
* Name of the device object
*
* NOTES
* VOID
* IoAssignArcName (
* PUNICODE_STRING ArcName,
@ -209,28 +218,28 @@ IoAllocateMdl (
/**********************************************************************
* NAME EXPORTED
* IoAssignResources@24
*
* IoAssignResources@24
*
* DESCRIPTION
* Takes a list of requested hardware resources and allocates
* them.
*
* Takes a list of requested hardware resources and allocates
* them.
*
* ARGUMENTS
* RegisterPath
* ?
*
*
* DriverClassName
* ?
*
*
* DriverObject
* Driver object passed to the DriverEntry routine;
*
*
* DeviceObject
* ?
*
*
* RequestedResources
* List of resources.
*
*
* RETURN VALUE
*/
NTSTATUS
@ -589,6 +598,26 @@ STDCALL
IoGetConfigurationInformation (
VOID
);
/*
* FUNCTION: Gets a pointer to the callers location in the I/O stack in
* the given IRP
* ARGUMENTS:
* Irp = Points to the IRP
* RETURNS: A pointer to the stack location
*
* NOTES:
* PIO_STACK_LOCATION
* IoGetCurrentIrpStackLocation (PIRP Irp)
*/
#define IoGetCurrentIrpStackLocation(Irp) \
(&(Irp)->Stack[(ULONG)((Irp)->CurrentLocation)])
/* original macro */
/*
#define IoGetCurrentIrpStackLocation(Irp) \
((Irp)->Tail.Overlay.CurrentStackLocation)
*/
PEPROCESS
STDCALL
IoGetCurrentProcess (
@ -612,11 +641,36 @@ STDCALL
IoGetFileObjectGenericMapping (
VOID
);
#define IoGetFunctionCodeFromCtlCode(ControlCode) \
((ControlCode >> 2) & 0x00000FFF)
PVOID
STDCALL
IoGetInitialStack (
VOID
);
/*
* FUNCTION: Gives a higher level driver access to the next lower driver's
* I/O stack location
* ARGUMENTS:
* Irp = points to the irp
* RETURNS: A pointer to the stack location
*
* NOTES:
* PIO_STACK_LOCATION
* IoGetNextIrpStackLocation (PIRP Irp)
*/
#define IoGetNextIrpStackLocation(Irp) \
(&(Irp)->Stack[(Irp)->CurrentLocation-1])
/* original macro */
/*
#define IoGetNextIrpStackLocation(Irp) \
((Irp)->Tail.Overlay.CurrentStackLocation-1)
*/
PDEVICE_OBJECT
STDCALL
IoGetRelatedDeviceObject (
@ -638,6 +692,12 @@ STDCALL
IoGetTopLevelIrp (
VOID
);
#define IoInitializeDpcRequest(DeviceObject, DpcRoutine) \
(KeInitializeDpc(&(DeviceObject)->Dpc, \
(PKDEFERRED_ROUTINE)(DpcRoutine), \
(DeviceObject)))
/*
* FUNCTION: Initalizes an irp allocated by the caller
* ARGUMENTS:
@ -659,6 +719,21 @@ IoInitializeTimer (
PIO_TIMER_ROUTINE TimerRoutine,
PVOID Context
);
/*
* NOTES:
* BOOLEAN
* IsErrorUserInduced (NTSTATUS Status)
*/
#define IoIsErrorUserInduced(Status) \
((BOOLEAN)(((Status) == STATUS_DEVICE_NOT_READY) || \
((Status) == STATUS_IO_TIMEOUT) || \
((Status) == STATUS_MEDIA_WRITE_PROTECTED) || \
((Status) == STATUS_NO_MEDIA_IN_DRIVE) || \
((Status) == STATUS_VERIFY_REQUIRED) || \
((Status) == STATUS_UNRECOGNIZED_MEDIA) || \
((Status) == STATUS_WRONG_VOLUME)))
BOOLEAN
STDCALL
IoIsOperationSynchronous (
@ -675,6 +750,20 @@ IoMakeAssociatedIrp (
PIRP Irp,
CCHAR StackSize
);
/*
* FUNCTION: Marks the specified irp, indicating further processing will
* be required by other driver routines
* ARGUMENTS:
* Irp = Irp to mark
* NOTES:
* VOID
* IoMarkIrpPending (PIRP Irp)
*/
#define IoMarkIrpPending(Irp) \
(IoGetCurrentIrpStackLocation(Irp)->Control |= SL_PENDING_RETURNED)
NTSTATUS
STDCALL
IoOpenDeviceInstanceKey (
@ -684,10 +773,14 @@ IoOpenDeviceInstanceKey (
DWORD Unknown3,
DWORD Unknown4
);
NTSTATUS STDCALL IoPageRead (PFILE_OBJECT FileObject,
PMDL Mdl,
PLARGE_INTEGER Offset,
PIO_STATUS_BLOCK StatusBlock);
NTSTATUS
STDCALL
IoPageRead (
PFILE_OBJECT FileObject,
PMDL Mdl,
PLARGE_INTEGER Offset,
PIO_STATUS_BLOCK StatusBlock
);
NTSTATUS
STDCALL
IoQueryDeviceDescription (
@ -806,6 +899,30 @@ IoReportResourceUsage (
BOOLEAN OverrideConflict,
PBOOLEAN ConflictDetected
);
#define IoRequestDpc(DeviceObject, Irp, Context) \
(KeInsertQueueDpc(&(DeviceObject)->Dpc,(Irp),(Context)))
#define IoSetCancelRoutine(Irp, NewCancelRoutine) \
((PDRIVER_CANCEL)InterlockedExchange((PULONG)&(Irp)->CancelRoutine, \
(ULONG)(NewCancelRoutine)));
#define IoSetCompletionRoutine (Irp,Routine,Context,Success,Error,Cancel) \
{ \
PIO_STACK_LOCATION param; \
assert((Success)||(Error)||(Cancel)?(Routine)!=NULL:TRUE); \
param = IoGetNextIrpStackLocation((Irp)); \
param->CompletionRoutine=(Routine); \
param->CompletionContext=(Context); \
param->Control = 0; \
if ((Success)) \
param->Control = SL_INVOKE_ON_SUCCESS; \
if ((Error)) \
param->Control |= SL_INVOKE_ON_ERROR; \
if ((Cancel)) \
param->Control |= SL_INVOKE_ON_CANCEL; \
}
VOID
STDCALL
IoSetDeviceToVerify (
@ -826,6 +943,13 @@ IoSetInformation (
IN ULONG Length,
OUT PVOID FileInformation
);
#define IoSetNextIrpStackLocation(Irp) \
{ \
(Irp)->CurrentLocation--; \
(Irp)->Tail.Overlay.CurrentStackLocation--; \
}
VOID
STDCALL
IoSetShareAccess (
@ -844,6 +968,24 @@ STDCALL
IoSetTopLevelIrp (
IN PIRP Irp
);
/*
* FUNCTION: Determines the size of an IRP
* ARGUMENTS:
* StackSize = number of stack locations in the IRP
* RETURNS: The size of the IRP in bytes
USHORT
IoSizeOfIrp (CCHAR StackSize)
*/
#define IoSizeOfIrp(StackSize) \
((USHORT)(sizeof(IRP)+(((StackSize)-1)*sizeof(IO_STACK_LOCATION))))
/* original macro */
/*
#define IoSizeOfIrp(StackSize) \
((USHORT)(sizeof(IRP)+((StackSize)*sizeof(IO_STACK_LOCATION))))
*/
/*
* FUNCTION: Dequeues the next IRP from the device's associated queue and
* calls its StartIo routine
@ -860,7 +1002,7 @@ IoStartNextPacket (
VOID
STDCALL
IoStartNextPacketByKey (
PDEVICE_OBJECT DeviceObject,
PDEVICE_OBJECT DeviceObject,
BOOLEAN Cancelable,
ULONG Key
);
@ -1051,30 +1193,40 @@ IoWritePartitionTable (
* FUNCTION: Returns a pointer to the callers
* stack location in the irp
*/
/*
PIO_STACK_LOCATION
IoGetCurrentIrpStackLocation (
IRP * irp
);
*/
/*
ULONG
IoGetFunctionCodeFromCtlCode (
ULONG ControlCode
);
*/
/*
* FUNCTION:
*/
/*
PIO_STACK_LOCATION
IoGetNextIrpStackLocation (
IRP * irp
);
*/
/*
VOID
IoInitializeDpcRequest (
PDEVICE_OBJECT DeviceObject,
PIO_DPC_ROUTINE DpcRoutine
);
*/
/*
BOOLEAN
IoIsErrorUserInduced (
NTSTATUS Status
);
*/
BOOLEAN
IoIsTotalDeviceFailure (
NTSTATUS Status
@ -1087,21 +1239,28 @@ IoIsTotalDeviceFailure (
* must mark it pending otherwise the I/O manager will complete it on
* return from the dispatch routine.
*/
/*
VOID
IoMarkIrpPending (
PIRP Irp
);
*/
/*
VOID
IoRequestDpc (
PDEVICE_OBJECT DeviceObject,
PIRP Irp,
PVOID Context
);
*/
/*
PDRIVER_CANCEL
IoSetCancelRoutine (
PIRP Irp,
PDRIVER_CANCEL CancelRoutine
);
*/
/*
VOID
IoSetCompletionRoutine (
PIRP Irp,
@ -1111,29 +1270,34 @@ IoSetCompletionRoutine (
BOOLEAN InvokeOnError,
BOOLEAN InvokeOnCancel
);
*/
/*
VOID
IoSetNextIrpStackLocation (
PIRP Irp
);
*/
/*
* FUNCTION: Determines the size of an IRP
* ARGUMENTS:
* StackSize = number of stack locations in the IRP
* RETURNS: The size of the IRP in bytes
*/
/*
USHORT
IoSizeOfIrp (
CCHAR StackSize
);
*/
#if 0
// Preliminary guess
NTKERNELAPI
NTSTATUS
IoQueryFileVolumeInformation (
IN PFILE_OBJECT FileObject,
IN FS_INFORMATION_CLASS FsInformationClass,
IN ULONG Length,
OUT PVOID FsInformation,
IN PFILE_OBJECT FileObject,
IN FS_INFORMATION_CLASS FsInformationClass,
IN ULONG Length,
OUT PVOID FsInformation,
OUT PULONG ReturnedLength
);
#endif

View file

@ -1,4 +1,4 @@
/* $Id: ddk.h,v 1.14 2000/04/08 19:06:29 ekohl Exp $
/* $Id: ddk.h,v 1.15 2000/06/12 14:52:05 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -84,7 +84,17 @@ HalAdjustResourceList (
PCM_RESOURCE_LIST Resources
);
NTSTATUS
STDCALL
HalAllocateAdapterChannel (
IN PADAPTER_OBJECT AdapterObject,
ULONG Unknown2,
ULONG Unknown3,
ULONG Unknown4
);
PVOID
STDCALL
HalAllocateCommonBuffer (
PADAPTER_OBJECT AdapterObject,
ULONG Length,
@ -92,6 +102,13 @@ HalAllocateCommonBuffer (
BOOLEAN CacheEnabled
);
PVOID
STDCALL
HalAllocateCrashDumpRegisters (
IN PADAPTER_OBJECT AdapterObject,
IN OUT PULONG NumberOfMapRegisters
);
BOOLEAN
STDCALL
HalAllProcessorsStarted (
@ -111,12 +128,38 @@ HalAssignSlotResources (
PCM_RESOURCE_LIST *AllocatedResources
);
/*
HalBeginSystemInterrupt
*/
/*
HalCalibratePerformanceCounter
*/
/*
FASTCALL
HalClearSoftwareInterrupt
*/
/*
HalDisableSystemInterrupt
*/
VOID
STDCALL
HalDisplayString (
IN PCH String
);
/*
HalEnableSystemInterrupt
*/
/*
HalEndSystemInterrupt
*/
/* Is this function really exported ?? */
VOID
HalExamineMBR (
PDEVICE_OBJECT DeviceObject,
@ -125,7 +168,21 @@ HalExamineMBR (
PVOID Buffer
);
BOOLEAN
STDCALL
HalFlushCommonBuffer (
ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3,
ULONG Unknown4,
ULONG Unknown5,
ULONG Unknown6,
ULONG Unknown7,
ULONG Unknown8
);
VOID
STDCALL
HalFreeCommonBuffer (
PADAPTER_OBJECT AdapterObject,
ULONG Length,
@ -135,6 +192,7 @@ HalFreeCommonBuffer (
);
PADAPTER_OBJECT
STDCALL
HalGetAdapter (
PDEVICE_DESCRIPTION DeviceDescription,
PULONG NumberOfMapRegisters
@ -161,11 +219,16 @@ HalGetBusDataByOffset (
ULONG Length
);
/* Is this function really exported ?? */
ULONG
HalGetDmaAlignmentRequirement (
VOID
);
/*
HalGetEnvironmentVariable
*/
ULONG
STDCALL
HalGetInterruptVector (
@ -211,11 +274,15 @@ HalQueryRealTimeClock (
PTIME_FIELDS Time
);
/* Is this function really exported ?? */
VOID
HalQuerySystemInformation(VOID);
ULONG
HalReadDmaCounter(PADAPTER_OBJECT AdapterObject);
STDCALL
HalReadDmaCounter (
PADAPTER_OBJECT AdapterObject
);
VOID
STDCALL
@ -223,6 +290,17 @@ HalReportResourceUsage (
VOID
);
VOID
STDCALL
HalRequestIpi (
ULONG Unknown
);
/*
FASTCALL
HalRequestSoftwareInterrupt
*/
VOID
STDCALL
HalReturnToFirmware (
@ -257,12 +335,24 @@ HalSetDisplayParameters (
ULONG CursorPosY
);
/*
HalSetEnvironmentVariable
*/
/*
HalSetProfileInterval
*/
VOID
STDCALL
HalSetRealTimeClock (
PTIME_FIELDS Time
);
/*
HalSetTimeIncrement
*/
BOOLEAN
STDCALL
HalStartNextProcessor (
@ -270,6 +360,14 @@ HalStartNextProcessor (
ULONG Unknown2
);
/*
HalStartProfileInterrupt
*/
/*
HalStopProfileInterrupt
*/
ULONG
FASTCALL
HalSystemVectorDispatchEntry (

View file

@ -84,6 +84,7 @@ HalpInitBusHandlers (VOID);
VOID HalpCalibrateStallExecution(VOID);
/* irq.c */
VOID HalpDispatchInterrupt (ULONG irq);
VOID HalpInitIRQs (VOID);

View file

@ -1,4 +1,5 @@
/*
/* $Id: dma.c,v 1.6 2000/06/12 14:53:38 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/hal/x86/dma.c
@ -50,11 +51,15 @@ ULONG HalGetDmaAlignmentRequirement()
return(1);
}
#if 0
PVOID HalAllocateCommonBuffer(PADAPTER_OBJECT AdapterObject,
ULONG Length,
PPHYSICAL_ADDRESS LogicalAddress,
BOOLEAN CacheEnabled)
PVOID
STDCALL
HalAllocateCommonBuffer (
PADAPTER_OBJECT AdapterObject,
ULONG Length,
PPHYSICAL_ADDRESS LogicalAddress,
BOOLEAN CacheEnabled
)
/*
* FUNCTION: Allocates memory that is visible to both the processor(s) and
* a dma device
@ -68,7 +73,8 @@ PVOID HalAllocateCommonBuffer(PADAPTER_OBJECT AdapterObject,
* RETURNS: The base virtual address of the memory allocated
* NULL on failure
*/
{/*
{
/*
PVOID Buffer;
PHYSICAL_ADDRESS highest_address;
@ -85,15 +91,36 @@ PVOID HalAllocateCommonBuffer(PADAPTER_OBJECT AdapterObject,
LogicalAddress->HighPart = 0;
LogicalAddress->LowPart = MmGetPhysicalAddress(Buffer);
return(Buffer);*/
return NULL;
}
VOID HalFreeCommonBuffer(PADAPTER_OBJECT AdapterObject,
ULONG Length,
PHYSICAL_ADDRESS LogicalAddress,
PVOID VirtualAddress,
BOOLEAN CacheEnabled)
BOOLEAN
STDCALL
HalFlushCommonBuffer (
ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3,
ULONG Unknown4,
ULONG Unknown5,
ULONG Unknown6,
ULONG Unknown7,
ULONG Unknown8
)
{
MmFreeContiguousMemory(VirtualAddress);
return TRUE;
}
VOID
STDCALL
HalFreeCommonBuffer (
PADAPTER_OBJECT AdapterObject,
ULONG Length,
PHYSICAL_ADDRESS LogicalAddress,
PVOID VirtualAddress,
BOOLEAN CacheEnabled
)
{
MmFreeContiguousMemory (VirtualAddress);
}
PADAPTER_OBJECT
@ -119,10 +146,15 @@ HalGetAdapter (
adapter = ExAllocatePool(NonPagedPool,sizeof(ADAPTER_OBJECT));
RtlCopyMemory(&adapter->desc,DeviceDescription,sizeof(DEVICE_DESCRIPTION));
*/
return NULL;
}
#endif
ULONG HalReadDmaCounter(PADAPTER_OBJECT AdapterObject)
ULONG
STDCALL
HalReadDmaCounter (
PADAPTER_OBJECT AdapterObject
)
{
UNIMPLEMENTED;
}
@ -134,3 +166,5 @@ ULONG KeGetDcacheFillSize()
{
return(1);
}
/* EOF */

View file

@ -1,4 +1,4 @@
/* $Id: irq.c,v 1.12 2000/06/04 19:49:37 ekohl Exp $
/* $Id: irq.c,v 1.13 2000/06/12 14:53:38 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -92,7 +92,9 @@ static KSPIN_LOCK isr_table_lock = {0,};
#define PRESENT (0x8000)
#define I486_INTERRUPT_GATE (0xe00)
asmlinkage VOID KiInterruptDispatch(ULONG irq)
asmlinkage
VOID
HalpDispatchInterrupt (ULONG irq)
/*
* FUNCTION: Calls the irq specific handler for an irq
* ARGUMENTS:
@ -127,7 +129,8 @@ asmlinkage VOID KiInterruptDispatch(ULONG irq)
}
else
{
DPRINT("KiInterruptDispatch(irq %d)\n",irq);
DPRINT("HalpDispatchInterrupt(irq %d)\n",irq);
// KiInterruptDispatch (irq);
/*
* Iterate the list until one of the isr tells us its device interrupted
*/
@ -371,20 +374,20 @@ IoDisconnectInterrupt(PKINTERRUPT InterruptObject)
}
#if 0
ULONG
BOOLEAN
STDCALL
HalDisableSystemInterrupt (
ULONG Unknown0,
ULONG Unknown1
ULONG Vector,
KIRQL Irql
)
{
}
ULONG
BOOLEAN
STDCALL
HalEnableSystemInterrupt (
ULONG Unknown0,
ULONG Vector,
ULONG Unknown1,
ULONG Unknown2
)

View file

@ -28,7 +28,7 @@
"orb $1<<"##x",%al\n\t" \
"outb %al,$0x21\n\t" \
"pushl $"##x"\n\t" \
"call _KiInterruptDispatch\n\t"\
"call _HalpDispatchInterrupt\n\t"\
"popl %eax\n\t" \
"popl %eax\n\t" \
"popl %es\n\t" \
@ -51,7 +51,7 @@
"orb $1<<("##x"-8),%al\n\t" \
"outb %al,$0xa1\n\t" \
"pushl $"##x"\n\t" \
"call _KiInterruptDispatch\n\t"\
"call _HalpDispatchInterrupt\n\t"\
"popl %eax\n\t" \
"popl %eax\n\t" \
"popl %es\n\t" \

View file

@ -1,4 +1,4 @@
/* $Id: cancel.c,v 1.4 2000/03/26 19:38:21 ea Exp $
/* $Id: cancel.c,v 1.5 2000/06/12 14:57:10 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -64,11 +64,4 @@ VOID STDCALL IoReleaseCancelSpinLock(KIRQL Irql)
KeReleaseSpinLock(&CancelSpinLock,Irql);
}
PDRIVER_CANCEL IoSetCancelRoutine(PIRP Irp, PDRIVER_CANCEL CancelRoutine)
{
return((PDRIVER_CANCEL)InterlockedExchange((PULONG)&Irp->CancelRoutine,
(ULONG)CancelRoutine));
}
/* EOF */

View file

@ -15,7 +15,7 @@
#include <internal/debug.h>
/* FUNCTIONS *****************************************************************/
#if 0
VOID IoInitializeDpcRequest(PDEVICE_OBJECT DeviceObject,
PIO_DPC_ROUTINE DpcRoutine)
{
@ -29,3 +29,4 @@ VOID IoRequestDpc(PDEVICE_OBJECT DeviceObject,
{
KeInsertQueueDpc(&DeviceObject->Dpc,Irp,Context);
}
#endif

View file

@ -1,4 +1,4 @@
/* $Id: error.c,v 1.2 2000/03/26 19:38:22 ea Exp $
/* $Id: error.c,v 1.3 2000/06/12 14:57:10 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -17,21 +17,6 @@
/* FUNCTIONS *****************************************************************/
BOOLEAN IoIsErrorUserInduced(NTSTATUS Status)
{
switch(Status)
{
case STATUS_DEVICE_NOT_READY:
case STATUS_IO_TIMEOUT:
case STATUS_MEDIA_WRITE_PROTECTED:
case STATUS_NO_MEDIA_IN_DRIVE:
case STATUS_VERIFY_REQUIRED:
case STATUS_UNRECOGNIZED_MEDIA:
case STATUS_WRONG_VOLUME:
return(TRUE);
}
return(FALSE);
}
VOID STDCALL IoSetHardErrorOrVerifyDevice(PIRP Irp, PDEVICE_OBJECT DeviceObject)
{

View file

@ -1,4 +1,4 @@
/* $Id: ioctrl.c,v 1.10 2000/05/13 13:51:02 dwelch Exp $
/* $Id: ioctrl.c,v 1.11 2000/06/12 14:57:10 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -22,12 +22,6 @@
/* FUNCTIONS *****************************************************************/
ULONG IoGetFunctionCodeFromCtlCode(ULONG ControlCode)
{
UNIMPLEMENTED;
}
NTSTATUS STDCALL NtDeviceIoControlFile (IN HANDLE DeviceHandle,
IN HANDLE Event,
IN PIO_APC_ROUTINE UserApcRoutine,

View file

@ -1,4 +1,4 @@
/* $Id: irp.c,v 1.27 2000/03/26 19:38:25 ea Exp $
/* $Id: irp.c,v 1.28 2000/06/12 14:57:10 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -83,42 +83,6 @@ IoMakeAssociatedIrp (PIRP Irp, CCHAR StackSize)
}
/**********************************************************************
* NAME INTERNAL
* IoMarkIrpPending
*/
VOID
IoMarkIrpPending (PIRP Irp)
/*
* FUNCTION: Marks the specified irp, indicating further processing will
* be required by other driver routines
* ARGUMENTS:
* Irp = Irp to mark
*/
{
// DPRINT("IoGetCurrentIrpStackLocation(Irp) %x\n",
// IoGetCurrentIrpStackLocation(Irp));
IoGetCurrentIrpStackLocation(Irp)->Control |= SL_PENDING_RETURNED;
}
/**********************************************************************
* NAME INTERNAL
* IoSizeOfIrp
*/
USHORT
IoSizeOfIrp (CCHAR StackSize)
/*
* FUNCTION: Determines the size of an IRP
* ARGUMENTS:
* StackSize = number of stack locations in the IRP
* RETURNS: The size of the IRP in bytes
*/
{
return(sizeof(IRP)+((StackSize-1)*sizeof(IO_STACK_LOCATION)));
}
VOID
STDCALL
IoInitializeIrp (PIRP Irp, USHORT PacketSize, CCHAR StackSize)
@ -140,63 +104,6 @@ IoInitializeIrp (PIRP Irp, USHORT PacketSize, CCHAR StackSize)
}
/**********************************************************************
* NAME INTERNAL
* IoGetCurrentIrpStackLocation
*/
PIO_STACK_LOCATION
IoGetCurrentIrpStackLocation (PIRP Irp)
/*
* FUNCTION: Gets a pointer to the callers location in the I/O stack in
* the given IRP
* ARGUMENTS:
* Irp = Points to the IRP
* RETURNS: A pointer to the stack location
*/
{
// DPRINT("IoGetCurrentIrpStackLocation: Irp %08lx CurLoc %d StkCnt %d\n",
// Irp,
// Irp->CurrentLocation,
// Irp->StackCount);
return(&Irp->Stack[(ULONG)Irp->CurrentLocation]);
}
/**********************************************************************
* NAME INTERNAL
* IoSetNextIrpStackLocation
*/
VOID
IoSetNextIrpStackLocation (PIRP Irp)
{
Irp->CurrentLocation--;
Irp->Tail.Overlay.CurrentStackLocation--;
}
/**********************************************************************
* NAME INTERNAL
* IoGetNextIrpStackLocation
*/
PIO_STACK_LOCATION
IoGetNextIrpStackLocation (PIRP Irp)
/*
* FUNCTION: Gives a higher level driver access to the next lower driver's
* I/O stack location
* ARGUMENTS:
* Irp = points to the irp
* RETURNS: A pointer to the stack location
*/
{
// DPRINT("IoGetNextIrpStackLocation(Irp %x)\n",Irp);
assert(Irp!=NULL);
// DPRINT("Irp %x Irp->StackPtr %x\n",Irp,Irp->CurrentLocation);
return(&Irp->Stack[Irp->CurrentLocation-1]);
}
NTSTATUS
FASTCALL
IofCallDriver (PDEVICE_OBJECT DeviceObject, PIRP Irp)
@ -279,36 +186,6 @@ IoAllocateIrp (CCHAR StackSize, BOOLEAN ChargeQuota)
}
/**********************************************************************
* NAME INTERNAL
* IoSetCompletionRoutine
*/
VOID
IoSetCompletionRoutine (PIRP Irp,
PIO_COMPLETION_ROUTINE CompletionRoutine,
PVOID Context,
BOOLEAN InvokeOnSuccess,
BOOLEAN InvokeOnError,
BOOLEAN InvokeOnCancel)
{
IO_STACK_LOCATION* param = IoGetNextIrpStackLocation(Irp);
param->CompletionRoutine=CompletionRoutine;
param->CompletionContext=Context;
if (InvokeOnSuccess)
{
param->Control = param->Control | SL_INVOKE_ON_SUCCESS;
}
if (InvokeOnError)
{
param->Control = param->Control | SL_INVOKE_ON_ERROR;
}
if (InvokeOnCancel)
{
param->Control = param->Control | SL_INVOKE_ON_CANCEL;
}
}
VOID IopCompleteRequest(struct _KAPC* Apc,
PKNORMAL_ROUTINE* NormalRoutine,
PVOID* NormalContext,
@ -474,7 +351,10 @@ IoSetTopLevelIrp (
IN PIRP Irp
)
{
UNIMPLEMENTED;
PETHREAD Thread;
Thread = PsGetCurrentThread ();
Thread->TopLevelIrp.TopLevelIrp = Irp;
}
@ -484,8 +364,7 @@ IoGetTopLevelIrp (
VOID
)
{
UNIMPLEMENTED;
return (NULL);
return (PsGetCurrentThread ()->TopLevelIrp.TopLevelIrp);
}
@ -498,5 +377,4 @@ IoQueueThreadIrp (
UNIMPLEMENTED;
}
/* EOF */

View file

@ -1,4 +1,4 @@
/* $Id: process.c,v 1.5 2000/05/13 14:56:46 ea Exp $
/* $Id: process.c,v 1.6 2000/06/12 14:57:10 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -55,8 +55,7 @@ IoThreadToProcess (
IN PETHREAD Thread
)
{
UNIMPLEMENTED;
return (NULL);
return (Thread->ThreadsProcess);
}

View file

@ -1,4 +1,4 @@
; $Id: ntoskrnl.def,v 1.74 2000/06/09 20:02:37 ekohl Exp $
; $Id: ntoskrnl.def,v 1.75 2000/06/12 14:53:09 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
@ -195,11 +195,16 @@ FsRtlUninitializeMcb@4
FsRtlUninitializeOplock@4
;HalDispatchTable DATA
;HalPrivateDispatchTable DATA
;InterlockedCompareExchange
;InterlockedDecrement
;InterlockedExchange
;InterlockedExchangeAdd
;InterlockedIncrement
;@InterlockedCompareExchange@12
InterlockedCompareExchange@12
;@InterlockedDecrement@4
InterlockedDecrement@4
;@InterlockedExchange@8
InterlockedExchange@8
;@InterlockedExchangeAdd@8
InterlockedExchangeAdd@8
;@InterlockedIncrement@4
InterlockedIncrement@4
IoAcquireCancelSpinLock@4
IoAcquireVpbSpinLock@4
IoAdapterObjectType DATA
@ -1009,10 +1014,8 @@ wctomb
;
; ReactOS Extensions (these should be macros!)
;
IoGetCurrentIrpStackLocation
IoInitializeDpcRequest
IoMarkIrpPending
IoRequestDpc
;IoInitializeDpcRequest
;IoRequestDpc
MmGetSystemAddressForMdl
InitializeListHead
InsertTailList
@ -1028,23 +1031,23 @@ ExTryToAcquireFastMutex@4
HalAcquireDisplayOwnership@4
HalAdjustResourceList@4
HalAllProcessorsStarted@0
;HalAllocateAdapterChannel
;HalAllocateCommonBuffer
;HalAllocateCrashDumpRegisters
;HalAllocateAdapterChannel@16
HalAllocateCommonBuffer@16
;HalAllocateCrashDumpRegisters@8
HalAssignSlotResources@32
;HalBeginSystemInterrupt
;HalCalibratePerformanceCounter
;HalClearSoftwareInterrupt
;HalDisableSystemInterrupt
;HalBeginSystemInterrupt@12
;HalCalibratePerformanceCounter@4
;@HalClearSoftwareInterrupt@4
;HalDisableSystemInterrupt@8
HalDisplayString@4
;HalEnableSystemInterrupt
;HalEndSystemInterrupt
;HalFlushCommonBuffer
;HalFreeCommonBuffer
;HalGetAdapter
;HalEnableSystemInterrupt@12
;HalEndSystemInterrupt@8
HalFlushCommonBuffer@32
HalFreeCommonBuffer@24
HalGetAdapter@8
HalGetBusData@20
HalGetBusDataByOffset@24
;HalGetEnvironmentVariable
;HalGetEnvironmentVariable@12
HalGetInterruptVector@24
HalHandleNMI@4
HalInitSystem@8
@ -1053,21 +1056,21 @@ HalMakeBeep@4
HalProcessorIdle@0
HalQueryDisplayParameters@16
HalQueryRealTimeClock@4
;HalReadDmaCounter
HalReadDmaCounter@4
HalReportResourceUsage@0
;HalRequestIpi
;HalRequestSoftwareInterrupt
;HalRequestIpi@4
;@HalRequestSoftwareInterrupt@4
HalReturnToFirmware@4
HalSetBusData@20
HalSetBusDataByOffset@24
HalSetDisplayParameters@8
;HalSetEnvironmentVariable
;HalSetProfileInterval
;HalSetEnvironmentVariable@8
;HalSetProfileInterval@4
HalSetRealTimeClock@4
;HalSetTimeIncrement
;HalSetTimeIncrement@4
HalStartNextProcessor@8
;HalStartProfileInterrupt
;HalStopProfileInterrupt
;HalStartProfileInterrupt@4
;HalStopProfileInterrupt@4
HalSystemVectorDispatchEntry@12
HalTranslateBusAddress@24
IoAssignDriveLetters@16

View file

@ -1,4 +1,4 @@
; $Id: ntoskrnl.edf,v 1.61 2000/06/09 20:02:37 ekohl Exp $
; $Id: ntoskrnl.edf,v 1.62 2000/06/12 14:53:09 ekohl Exp $
;
; reactos/ntoskrnl/ntoskrnl.def
;
@ -194,6 +194,16 @@ FsRtlUninitializeMcb=FsRtlUninitializeMcb@4
FsRtlUninitializeOplock=FsRtlUninitializeOplock@4
;HalDispatchTable DATA
;HalPrivateDispatchTable DATA
;InterlockedCompareExchange=@InterlockedCompareExchange@12
InterlockedCompareExchange=InterlockedCompareExchange@12
;InterlockedDecrement=@InterlockedDecrement@4
InterlockedDecrement=InterlockedDecrement@4
;InterlockedExchange=@InterlockedExchange@8
InterlockedExchange=InterlockedExchange@8
;InterlockedExchangeAdd=@InterlockedExchangeAdd@8
InterlockedExchangeAdd=InterlockedExchangeAdd@8
;InterlockedIncrement=@InterlockedIncrement@4
InterlockedIncrement=InterlockedIncrement@4
IoAcquireCancelSpinLock=IoAcquireCancelSpinLock@4
IoAcquireVpbSpinLock=IoAcquireVpbSpinLock@4
IoAdapterObjectType DATA
@ -937,10 +947,8 @@ wctomb
;
; ReactOS Extensions
;
IoGetCurrentIrpStackLocation
IoInitializeDpcRequest
IoMarkIrpPending
IoRequestDpc
;IoInitializeDpcRequest
;IoRequestDpc
MmGetSystemAddressForMdl
InitializeListHead
InsertTailList
@ -956,23 +964,24 @@ ExTryToAcquireFastMutex=ExTryToAcquireFastMutex@4
HalAcquireDisplayOwnership=HalAcquireDisplayOwnership@4
HalAdjustResourceList=HalAdjustResourceList@4
HalAllProcessorsStarted=HalAllProcessorsStarted@0
;HalAllocateAdapterChannel
;HalAllocateCommonBuffer
;HalAllocateCrashDumpRegisters
;HalAllocateAdapterChannel=HalAllocateAdapterChannel@16
HalAllocateCommonBuffer=HalAllocateCommonBuffer@16
;HalAllocateCrashDumpRegisters=HalAllocateCrashDumpRegisters@8
HalAssignSlotResource=HalAssignSlotResources@32
;HalBeginSystemInterrupt
;HalCalibratePerformanceCounter
;HalClearSoftwareInterrupt
;HalDisableSystemInterrupt
;HalBeginSystemInterrupt=HalBeginSystemInterrupt@12
;HalCalibratePerformanceCounter=HalCalibratePerformanceCounter@4
;HalClearSoftwareInterrupt=@HalClearSoftwareInterrupt@4
;HalClearSoftwareInterrupt=HalClearSoftwareInterrupt@4
;HalDisableSystemInterrupt=HalDisableSystemInterrupt@8
HalDisplayString=HalDisplayString@4
;HalEnableSystemInterrupt
;HalEndSystemInterrupt
;HalFlushCommonBuffer
;HalFreeCommonBuffer
;HalGetAdapter
;HalEnableSystemInterrupt=HalEnableSystemInterrupt@12
;HalEndSystemInterrupt=HalEndSystemInterrupt@8
HalFlushCommonBuffer=HalFlushCommonBuffer@32
HalFreeCommonBuffer=HalFreeCommonBuffer@24
HalGetAdapter=HalGetAdapter@8
HalGetBusData=HalGetBusData@20
HalGetBusDataByOffset=HalGetBusDataByOffset@24
;HalGetEnvironmentVariable
;HalGetEnvironmentVariable=HalGetEnvironmentVariable@12
HalGetInterruptVector=HalGetInterruptVector@24
HalHandleNMI=HalHandleNMI@4
HalInitSystem=HalInitSystem@8
@ -981,21 +990,22 @@ HalMakeBeep=HalMakeBeep@4
HalProcessorIdle=HalProcessorIdle@0
HalQueryDisplayParameters=HalQueryDisplayParameters@16
HalQueryRealTimeClock=HalQueryRealTimeClock@4
;HalReadDmaCounter
HalReadDmaCounter=HalReadDmaCounter@4
HalReportResourceUsage=HalReportResourceUsage@0
;HalRequestIpi
;HalRequestSoftwareInterrupt
;HalRequestIpi=HalRequestIpi@4
;HalRequestSoftwareInterrupt=@HalRequestSoftwareInterrupt@4
;HalRequestSoftwareInterrupt=HalRequestSoftwareInterrupt@4
HalReturnToFirmware=HalReturnToFirmware@4
HalSetBusData=HalSetBusData@20
HalSetBusDataByOffset=HalSetBusDataByOffset@24
HalSetDisplayParameters=HalSetDisplayParameters@8
;HalSetEnvironmentVariable
;HalSetProfileInterval
;HalSetEnvironmentVariable=HalSetEnvironmentVariable@8
;HalSetProfileInterval=HalSetProfileInterval@4
HalSetRealTimeClock=HalSetRealTimeClock@4
;HalSetTimeIncrement
;HalSetTimeIncrement=HalSetTimeIncrement@4
HalStartNextProcessor=HalStartNextProcessor@8
;HalStartProfileInterrupt
;HalStopProfileInterrupt
;HalStartProfileInterrupt=HalStartProfileInterrupt@4
;HalStopProfileInterrupt=HalStopProfileInterrupt@4
;HalSystemVectorDispatchEntry=@HalSystemVectorDispatchEntry@12
HalSystemVectorDispatchEntry=HalSystemVectorDispatchEntry@12
HalTranslateBusAddress=HalTranslateBusAddress@24
@ -1046,4 +1056,3 @@ WRITE_PORT_BUFFER_USHORT=WRITE_PORT_BUFFER_USHORT@12
WRITE_PORT_UCHAR=WRITE_PORT_UCHAR@8
WRITE_PORT_ULONG=WRITE_PORT_ULONG@8
WRITE_PORT_USHORT=WRITE_PORT_USHORT@8