Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1997 - 1999
//
// File: bm.h
//
//--------------------------------------------------------------------------
#if !defined (___bm_h___)
#define ___bm_h___
//
// Busmaster Status Register Bit Definition
#define BUSMASTER_DMA_SIMPLEX_BIT ((UCHAR) (1 << 7))
#define BUSMASTER_DEVICE1_DMA_OK ((UCHAR) (1 << 6))
#define BUSMASTER_DEVICE0_DMA_OK ((UCHAR) (1 << 5))
#define BUSMASTER_INTERRUPT ((UCHAR) (1 << 2))
#define BUSMASTER_ERROR ((UCHAR) (1 << 1))
#define BUSMASTER_ACTIVE ((UCHAR) (1 << 0))
#define BUSMASTER_ZERO_BITS ((UCHAR) ((1 << 3) | (1 << 4)))
#pragma pack (1)
//
// Bus Master Controller Register
//
typedef struct _IDE_BUS_MASTER_REGISTERS { UCHAR Command; UCHAR Reserved1; UCHAR Status; UCHAR Reserved2; ULONG DescriptionTable; } IDE_BUS_MASTER_REGISTERS, *PIDE_BUS_MASTER_REGISTERS;
//
// Bus Master Physical Region Descriptor
//
typedef struct _PHYSICAL_REGION_DESCRIPTOR { ULONG PhysicalAddress; ULONG ByteCount:16; ULONG Reserved:15; ULONG EndOfTable:1; } PHYSICAL_REGION_DESCRIPTOR, * PPHYSICAL_REGION_DESCRIPTOR; #pragma pack ()
NTSTATUS BusMasterInitialize ( PCHANPDO_EXTENSION pdoExtension );
NTSTATUS BusMasterUninitialize ( PCHANPDO_EXTENSION PdoExtension );
NTSTATUS BmSetup ( IN PVOID PdoExtension, IN PVOID DataVirtualAddress, IN ULONG TransferByteCount, IN PMDL Mdl, IN BOOLEAN DataIn, IN VOID (* BmCallback) (PVOID Context), IN PVOID Context );
VOID BmReceiveScatterGatherList( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PSCATTER_GATHER_LIST ScatterGather, IN PVOID Context );
VOID BmRebuildScatterGatherList( IN PCHANPDO_EXTENSION pdoExtension, IN PSCATTER_GATHER_LIST ScatterGather );
VOID BmPrepareController ( PCHANPDO_EXTENSION PdoExtension );
NTSTATUS BmArm ( IN PVOID PdoExtension );
BMSTATUS BmDisarm ( IN PVOID PdoExtension );
BMSTATUS BmFlush ( IN PVOID PdoExtension );
BMSTATUS BmStatus ( IN PVOID PdoExtension );
NTSTATUS BmTimingSetup ( IN PVOID PdoExtension );
NTSTATUS BmFlushAdapterBuffers ( IN PVOID PdoExtension, IN PVOID DataVirtualPageAddress, IN ULONG TransferByteCount, IN PMDL Mdl, IN BOOLEAN DataIn );
NTSTATUS BmQueryInterface ( IN PCHANPDO_EXTENSION PdoExtension, IN OUT PPCIIDE_BUSMASTER_INTERFACE BusMasterInterface );
#endif // ___bm_h___
|