ReactOS 0.4.16-dev-456-ga97fcf1
|
Go to the source code of this file.
Classes | |
struct | _SCATTER_GATHER_CONTEXT |
Macros | |
#define | NDEBUG |
#define | MAX_SG_ELEMENTS 0x10 |
#define | MAX_MAP_REGISTERS 64 |
#define | TAG_DMA ' AMD' |
Functions | |||||||||||||||||||||
VOID | HalpInitDma (VOID) | ||||||||||||||||||||
HalPutScatterGatherList | |||||||||||||||||||||
Frees a scatter-gather list allocated from HalBuildScatterGatherList
@implemented | |||||||||||||||||||||
NTSTATUS NTAPI | HalCalculateScatterGatherListSize (IN PADAPTER_OBJECT AdapterObject, IN PMDL Mdl OPTIONAL, IN PVOID CurrentVa, IN ULONG Length, OUT PULONG ScatterGatherListSize, OUT PULONG pNumberOfMapRegisters) | ||||||||||||||||||||
VOID NTAPI | HalPutScatterGatherList (IN PADAPTER_OBJECT AdapterObject, IN PSCATTER_GATHER_LIST ScatterGather, IN BOOLEAN WriteToDevice) | ||||||||||||||||||||
HalBuildScatterGatherList | |||||||||||||||||||||
Creates a scatter-gather list to be using in scatter/gather DMA
@implemented | |||||||||||||||||||||
NTSTATUS NTAPI | HalBuildScatterGatherList (IN PADAPTER_OBJECT AdapterObject, IN PDEVICE_OBJECT DeviceObject, IN PMDL Mdl, IN PVOID CurrentVa, IN ULONG Length, IN PDRIVER_LIST_CONTROL ExecutionRoutine, IN PVOID Context, IN BOOLEAN WriteToDevice, IN PVOID ScatterGatherBuffer, IN ULONG ScatterGatherLength) | ||||||||||||||||||||
NTSTATUS NTAPI | HalBuildMdlFromScatterGatherList (IN PDMA_ADAPTER DmaAdapter, IN PSCATTER_GATHER_LIST ScatterGather, IN PMDL OriginalMdl, OUT PMDL *TargetMdl) | ||||||||||||||||||||
HalpGetAdapterMaximumPhysicalAddress | |||||||||||||||||||||
Get the maximum physical address acceptable by the device represented by the passed DMA adapter. | |||||||||||||||||||||
PHYSICAL_ADDRESS NTAPI | HalpGetAdapterMaximumPhysicalAddress (IN PADAPTER_OBJECT AdapterObject) | ||||||||||||||||||||
HalpGrowMapBuffers | |||||||||||||||||||||
Allocate initial, or additional, map buffers for DMA master adapter.
| |||||||||||||||||||||
BOOLEAN NTAPI | HalpGrowMapBuffers (IN PADAPTER_OBJECT AdapterObject, IN ULONG SizeOfMapBuffers) | ||||||||||||||||||||
HalpDmaAllocateMasterAdapter | |||||||||||||||||||||
Helper routine to allocate and initialize master adapter object and it's associated map register buffers.
| |||||||||||||||||||||
PADAPTER_OBJECT NTAPI | HalpDmaAllocateMasterAdapter (VOID) | ||||||||||||||||||||
HalpDmaAllocateChildAdapter | |||||||||||||||||||||
Helper routine of HalGetAdapter. Allocate child adapter object and fill out some basic fields.
| |||||||||||||||||||||
PADAPTER_OBJECT NTAPI | HalpDmaAllocateChildAdapter (IN ULONG NumberOfMapRegisters, IN PDEVICE_DESCRIPTION DeviceDescription) | ||||||||||||||||||||
HalpDmaInitializeEisaAdapter | |||||||||||||||||||||
Setup DMA modes and extended modes for (E)ISA DMA adapter object. | |||||||||||||||||||||
BOOLEAN NTAPI | HalpDmaInitializeEisaAdapter (IN PADAPTER_OBJECT AdapterObject, IN PDEVICE_DESCRIPTION DeviceDescription) | ||||||||||||||||||||
HalGetAdapter | |||||||||||||||||||||
Allocate an adapter object for DMA device.
@implemented | |||||||||||||||||||||
PADAPTER_OBJECT NTAPI | HalGetAdapter (IN PDEVICE_DESCRIPTION DeviceDescription, OUT PULONG NumberOfMapRegisters) | ||||||||||||||||||||
HalpGetDmaAdapter | |||||||||||||||||||||
Internal routine to allocate PnP DMA adapter object. It's exported through HalDispatchTable and used by IoGetDmaAdapter.
| |||||||||||||||||||||
PDMA_ADAPTER NTAPI | HalpGetDmaAdapter (IN PVOID Context, IN PDEVICE_DESCRIPTION DeviceDescription, OUT PULONG NumberOfMapRegisters) | ||||||||||||||||||||
HalPutDmaAdapter | |||||||||||||||||||||
Internal routine to free DMA adapter and resources for reuse. It's exported using the DMA_OPERATIONS interface by HalGetAdapter.
| |||||||||||||||||||||
VOID NTAPI | HalPutDmaAdapter (IN PADAPTER_OBJECT AdapterObject) | ||||||||||||||||||||
HalAllocateCommonBuffer | |||||||||||||||||||||
Allocates memory that is visible to both the processor(s) and the DMA device.
@implemented | |||||||||||||||||||||
PVOID NTAPI | HalAllocateCommonBuffer (IN PADAPTER_OBJECT AdapterObject, IN ULONG Length, IN PPHYSICAL_ADDRESS LogicalAddress, IN BOOLEAN CacheEnabled) | ||||||||||||||||||||
HalGetScatterGatherList | |||||||||||||||||||||
Creates a scatter-gather list to be using in scatter/gather DMA
@implemented | |||||||||||||||||||||
NTSTATUS NTAPI | HalGetScatterGatherList (IN PADAPTER_OBJECT AdapterObject, IN PDEVICE_OBJECT DeviceObject, IN PMDL Mdl, IN PVOID CurrentVa, IN ULONG Length, IN PDRIVER_LIST_CONTROL ExecutionRoutine, IN PVOID Context, IN BOOLEAN WriteToDevice) | ||||||||||||||||||||
HalpDmaGetDmaAlignment | |||||||||||||||||||||
Internal routine to return the DMA alignment requirement. It's exported using the DMA_OPERATIONS interface by HalGetAdapter.
| |||||||||||||||||||||
ULONG NTAPI | HalpDmaGetDmaAlignment (IN PADAPTER_OBJECT AdapterObject) | ||||||||||||||||||||
ULONG NTAPI | HalReadDmaCounter (IN PADAPTER_OBJECT AdapterObject) | ||||||||||||||||||||
HalpGrowMapBufferWorker | |||||||||||||||||||||
Helper routine of HalAllocateAdapterChannel for allocating map registers at PASSIVE_LEVEL in work item. | |||||||||||||||||||||
VOID NTAPI | HalpGrowMapBufferWorker (IN PVOID DeferredContext) | ||||||||||||||||||||
HalAllocateAdapterChannel | |||||||||||||||||||||
Setup map registers for an adapter object.
@implemented | |||||||||||||||||||||
NTSTATUS NTAPI | HalAllocateAdapterChannel (IN PADAPTER_OBJECT AdapterObject, IN PWAIT_CONTEXT_BLOCK WaitContextBlock, IN ULONG NumberOfMapRegisters, IN PDRIVER_CONTROL ExecutionRoutine) | ||||||||||||||||||||
IoFreeAdapterChannel | |||||||||||||||||||||
Free DMA resources allocated by IoAllocateAdapterChannel.
@implemented | |||||||||||||||||||||
VOID NTAPI | IoFreeAdapterChannel (IN PADAPTER_OBJECT AdapterObject) | ||||||||||||||||||||
IoFreeMapRegisters | |||||||||||||||||||||
Free map registers reserved by the system for a DMA.
@implemented | |||||||||||||||||||||
VOID NTAPI | IoFreeMapRegisters (IN PADAPTER_OBJECT AdapterObject, IN PVOID MapRegisterBase, IN ULONG NumberOfMapRegisters) | ||||||||||||||||||||
HalpCopyBufferMap | |||||||||||||||||||||
Helper function for copying data from/to map register buffers.
| |||||||||||||||||||||
VOID NTAPI | HalpCopyBufferMap (IN PMDL Mdl, IN PROS_MAP_REGISTER_ENTRY MapRegisterBase, IN PVOID CurrentVa, IN ULONG Length, IN BOOLEAN WriteToDevice) | ||||||||||||||||||||
IoFlushAdapterBuffers | |||||||||||||||||||||
Flush any data remaining in the DMA controller's memory into the host memory.
@unimplemented. | |||||||||||||||||||||
BOOLEAN NTAPI | IoFlushAdapterBuffers (IN PADAPTER_OBJECT AdapterObject, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN ULONG Length, IN BOOLEAN WriteToDevice) | ||||||||||||||||||||
IoMapTransfer | |||||||||||||||||||||
Map a DMA for transfer and do the DMA if it's a slave.
@implemented | |||||||||||||||||||||
PHYSICAL_ADDRESS NTAPI | IoMapTransfer (IN PADAPTER_OBJECT AdapterObject, IN PMDL Mdl, IN PVOID MapRegisterBase, IN PVOID CurrentVa, IN OUT PULONG Length, IN BOOLEAN WriteToDevice) | ||||||||||||||||||||
HalFlushCommonBuffer | |||||||||||||||||||||
@implemented | |||||||||||||||||||||
BOOLEAN NTAPI | HalFlushCommonBuffer (IN PADAPTER_OBJECT AdapterObject, IN ULONG Length, IN PHYSICAL_ADDRESS LogicalAddress, IN PVOID VirtualAddress) | ||||||||||||||||||||
PVOID NTAPI | HalAllocateCrashDumpRegisters (IN PADAPTER_OBJECT AdapterObject, IN OUT PULONG NumberOfMapRegisters) | ||||||||||||||||||||
Variables | |
static KEVENT | HalpDmaLock |
static KSPIN_LOCK | HalpDmaAdapterListLock |
static LIST_ENTRY | HalpDmaAdapterList |
static PADAPTER_OBJECT | HalpEisaAdapter [8] |
static BOOLEAN | HalpEisaDma |
static PADAPTER_OBJECT | HalpMasterAdapter |
static const ULONG_PTR | HalpEisaPortPage [8] |
static DMA_OPERATIONS | HalpDmaOperations |
HalFreeCommonBuffer | |
Free common buffer allocated with HalAllocateCommonBuffer.
@implemented | |
typedef struct _SCATTER_GATHER_CONTEXT | SCATTER_GATHER_CONTEXT |
typedef struct _SCATTER_GATHER_CONTEXT * | PSCATTER_GATHER_CONTEXT |
VOID NTAPI | HalFreeCommonBuffer (IN PADAPTER_OBJECT AdapterObject, IN ULONG Length, IN PHYSICAL_ADDRESS LogicalAddress, IN PVOID VirtualAddress, IN BOOLEAN CacheEnabled) |
IO_ALLOCATION_ACTION NTAPI | HalpScatterGatherAdapterControl (IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID MapRegisterBase, IN PVOID Context) |
NTSTATUS NTAPI HalAllocateAdapterChannel | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN PWAIT_CONTEXT_BLOCK | WaitContextBlock, | ||
IN ULONG | NumberOfMapRegisters, | ||
IN PDRIVER_CONTROL | ExecutionRoutine | ||
) |
Definition at line 1461 of file dma.c.
PVOID NTAPI HalAllocateCommonBuffer | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN ULONG | Length, | ||
IN PPHYSICAL_ADDRESS | LogicalAddress, | ||
IN BOOLEAN | CacheEnabled | ||
) |
Definition at line 909 of file dma.c.
PVOID NTAPI HalAllocateCrashDumpRegisters | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN OUT PULONG | NumberOfMapRegisters | ||
) |
Definition at line 2321 of file dma.c.
NTSTATUS NTAPI HalBuildMdlFromScatterGatherList | ( | IN PDMA_ADAPTER | DmaAdapter, |
IN PSCATTER_GATHER_LIST | ScatterGather, | ||
IN PMDL | OriginalMdl, | ||
OUT PMDL * | TargetMdl | ||
) |
NTSTATUS NTAPI HalBuildScatterGatherList | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN PDEVICE_OBJECT | DeviceObject, | ||
IN PMDL | Mdl, | ||
IN PVOID | CurrentVa, | ||
IN ULONG | Length, | ||
IN PDRIVER_LIST_CONTROL | ExecutionRoutine, | ||
IN PVOID | Context, | ||
IN BOOLEAN | WriteToDevice, | ||
IN PVOID | ScatterGatherBuffer, | ||
IN ULONG | ScatterGatherLength | ||
) |
Definition at line 1215 of file dma.c.
Referenced by HalGetScatterGatherList().
NTSTATUS NTAPI HalCalculateScatterGatherListSize | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN PMDL Mdl | OPTIONAL, | ||
IN PVOID | CurrentVa, | ||
IN ULONG | Length, | ||
OUT PULONG | ScatterGatherListSize, | ||
OUT PULONG | pNumberOfMapRegisters | ||
) |
Definition at line 1157 of file dma.c.
Referenced by HalBuildScatterGatherList().
BOOLEAN NTAPI HalFlushCommonBuffer | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN ULONG | Length, | ||
IN PHYSICAL_ADDRESS | LogicalAddress, | ||
IN PVOID | VirtualAddress | ||
) |
VOID NTAPI HalFreeCommonBuffer | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN ULONG | Length, | ||
IN PHYSICAL_ADDRESS | LogicalAddress, | ||
IN PVOID | VirtualAddress, | ||
IN BOOLEAN | CacheEnabled | ||
) |
Definition at line 961 of file dma.c.
PADAPTER_OBJECT NTAPI HalGetAdapter | ( | IN PDEVICE_DESCRIPTION | DeviceDescription, |
OUT PULONG | NumberOfMapRegisters | ||
) |
Definition at line 661 of file dma.c.
NTSTATUS NTAPI HalGetScatterGatherList | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN PDEVICE_OBJECT | DeviceObject, | ||
IN PMDL | Mdl, | ||
IN PVOID | CurrentVa, | ||
IN ULONG | Length, | ||
IN PDRIVER_LIST_CONTROL | ExecutionRoutine, | ||
IN PVOID | Context, | ||
IN BOOLEAN | WriteToDevice | ||
) |
Definition at line 1082 of file dma.c.
VOID NTAPI HalpCopyBufferMap | ( | IN PMDL | Mdl, |
IN PROS_MAP_REGISTER_ENTRY | MapRegisterBase, | ||
IN PVOID | CurrentVa, | ||
IN ULONG | Length, | ||
IN BOOLEAN | WriteToDevice | ||
) |
Definition at line 1833 of file dma.c.
Referenced by IoFlushAdapterBuffers(), and IoMapTransfer().
PADAPTER_OBJECT NTAPI HalpDmaAllocateChildAdapter | ( | IN ULONG | NumberOfMapRegisters, |
IN PDEVICE_DESCRIPTION | DeviceDescription | ||
) |
Definition at line 455 of file dma.c.
Referenced by HalGetAdapter().
PADAPTER_OBJECT NTAPI HalpDmaAllocateMasterAdapter | ( | VOID | ) |
Definition at line 398 of file dma.c.
Referenced by HalpInitDma().
ULONG NTAPI HalpDmaGetDmaAlignment | ( | IN PADAPTER_OBJECT | AdapterObject | ) |
BOOLEAN NTAPI HalpDmaInitializeEisaAdapter | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN PDEVICE_DESCRIPTION | DeviceDescription | ||
) |
Definition at line 514 of file dma.c.
Referenced by HalGetAdapter().
PHYSICAL_ADDRESS NTAPI HalpGetAdapterMaximumPhysicalAddress | ( | IN PADAPTER_OBJECT | AdapterObject | ) |
Definition at line 235 of file dma.c.
Referenced by HalAllocateCommonBuffer(), HalpGrowMapBuffers(), IoFlushAdapterBuffers(), and IoMapTransfer().
PDMA_ADAPTER NTAPI HalpGetDmaAdapter | ( | IN PVOID | Context, |
IN PDEVICE_DESCRIPTION | DeviceDescription, | ||
OUT PULONG | NumberOfMapRegisters | ||
) |
Definition at line 852 of file dma.c.
Referenced by HalInitSystem(), and HalpInitDma().
Definition at line 271 of file dma.c.
Referenced by HalpDmaAllocateMasterAdapter(), and HalpGrowMapBufferWorker().
Definition at line 1402 of file dma.c.
Referenced by HalAllocateAdapterChannel().
Definition at line 185 of file dma.c.
Referenced by HalpInitPhase1().
IO_ALLOCATION_ACTION NTAPI HalpScatterGatherAdapterControl | ( | IN PDEVICE_OBJECT | DeviceObject, |
IN PIRP | Irp, | ||
IN PVOID | MapRegisterBase, | ||
IN PVOID | Context | ||
) |
Definition at line 988 of file dma.c.
Referenced by HalBuildScatterGatherList().
VOID NTAPI HalPutDmaAdapter | ( | IN PADAPTER_OBJECT | AdapterObject | ) |
Definition at line 869 of file dma.c.
VOID NTAPI HalPutScatterGatherList | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN PSCATTER_GATHER_LIST | ScatterGather, | ||
IN BOOLEAN | WriteToDevice | ||
) |
Definition at line 1123 of file dma.c.
ULONG NTAPI HalReadDmaCounter | ( | IN PADAPTER_OBJECT | AdapterObject | ) |
Definition at line 1330 of file dma.c.
BOOLEAN NTAPI IoFlushAdapterBuffers | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN PMDL | Mdl, | ||
IN PVOID | MapRegisterBase, | ||
IN PVOID | CurrentVa, | ||
IN ULONG | Length, | ||
IN BOOLEAN | WriteToDevice | ||
) |
Definition at line 1916 of file dma.c.
VOID NTAPI IoFreeAdapterChannel | ( | IN PADAPTER_OBJECT | AdapterObject | ) |
Definition at line 1624 of file dma.c.
VOID NTAPI IoFreeMapRegisters | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN PVOID | MapRegisterBase, | ||
IN ULONG | NumberOfMapRegisters | ||
) |
Definition at line 1737 of file dma.c.
PHYSICAL_ADDRESS NTAPI IoMapTransfer | ( | IN PADAPTER_OBJECT | AdapterObject, |
IN PMDL | Mdl, | ||
IN PVOID | MapRegisterBase, | ||
IN PVOID | CurrentVa, | ||
IN OUT PULONG | Length, | ||
IN BOOLEAN | WriteToDevice | ||
) |
Definition at line 2031 of file dma.c.
|
static |
Definition at line 85 of file dma.c.
Referenced by HalGetAdapter(), and HalpInitDma().
|
static |
Definition at line 84 of file dma.c.
Referenced by HalGetAdapter(), HalpInitDma(), and HalPutDmaAdapter().
|
static |
Definition at line 83 of file dma.c.
Referenced by HalGetAdapter(), HalpGrowMapBufferWorker(), and HalpInitDma().
|
static |
Definition at line 138 of file dma.c.
Referenced by HalpDmaAllocateChildAdapter(), and HalpInitDma().
|
static |
Definition at line 86 of file dma.c.
Referenced by HalGetAdapter().
|
static |
Definition at line 88 of file dma.c.
Referenced by HalpDmaInitializeEisaAdapter(), HalpGrowMapBuffers(), HalpInitDma(), and IoMapTransfer().
Definition at line 93 of file dma.c.
Referenced by HalpDmaInitializeEisaAdapter().
|
static |
Definition at line 90 of file dma.c.
Referenced by HalpDmaAllocateChildAdapter(), and HalpInitDma().