382 lines
8.1 KiB
C
382 lines
8.1 KiB
C
|
|
|
|
//
|
|
// Copyright (c) 1998-1999, Microsoft Corporation, all rights reserved
|
|
//
|
|
// irp.h
|
|
//
|
|
// IEEE1394 mini-port/call-manager driver
|
|
//
|
|
// Delaration for Routines that issue the Irps to the 1394 Bus driver
|
|
//
|
|
// 06/20/1999 ADube Created, adapted from the l2tp sources.
|
|
//
|
|
|
|
|
|
//----------------------------------------------------------------------------
|
|
// 1 3 9 4 B U S I N T E R F A C E F U N C T I O N S
|
|
//----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicAllocateAddressRange_Synch (
|
|
IN PADAPTERCB pAdapter,
|
|
IN PMDL pMdl,
|
|
IN ULONG fulFlags,
|
|
IN ULONG nLength,
|
|
IN ULONG MaxSegmentSize,
|
|
IN ULONG fulAccessType,
|
|
IN ULONG fulNotificationOptions,
|
|
IN PVOID Callback,
|
|
IN PVOID Context,
|
|
IN ADDRESS_OFFSET Required1394Offset,
|
|
IN PSLIST_HEADER FifoSListHead,
|
|
IN PKSPIN_LOCK FifoSpinLock,
|
|
OUT PULONG pAddressesReturned,
|
|
OUT PADDRESS_RANGE p1394AddressRange,
|
|
OUT PHANDLE phAddressRange
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicAsyncStream (
|
|
PREMOTE_NODE pRemoteNodePdoCb,
|
|
ULONG nNumberOfBytesToStream, // Bytes to stream
|
|
ULONG fulFlags, // Flags pertinent to stream
|
|
PMDL pMdl, // Source buffer
|
|
ULONG ulTag, // Tag
|
|
ULONG nChannel, // Channel
|
|
ULONG ulSynch, // Sy
|
|
ULONG Reserved, // Reserved for future use
|
|
UCHAR nSpeed
|
|
);
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicAsyncRead_Synch(
|
|
PREMOTE_NODE pRemoteNode,
|
|
IO_ADDRESS DestinationAddress,
|
|
ULONG nNumberOfBytesToRead,
|
|
ULONG nBlockSize,
|
|
ULONG fulFlags,
|
|
PMDL Mdl,
|
|
ULONG ulGeneration,
|
|
OUT NTSTATUS *pNtStatus
|
|
);
|
|
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicAsyncWrite_Synch(
|
|
PREMOTE_NODE pRemoteNode,
|
|
IO_ADDRESS DestinationAddress, // Address to write to
|
|
ULONG nNumberOfBytesToWrite, // Bytes to write
|
|
ULONG nBlockSize, // Block size of write
|
|
ULONG fulFlags, // Flags pertinent to write
|
|
PMDL Mdl, // Destination buffer
|
|
ULONG ulGeneration, // Generation as known by driver
|
|
OUT NTSTATUS *pNtStatus // pointer to NTSTatus returned by the IRP
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicFreeAddressRange(
|
|
IN PADAPTERCB pAdapter,
|
|
IN ULONG nAddressesToFree,
|
|
IN PADDRESS_RANGE p1394AddressRange,
|
|
IN PHANDLE phAddressRange
|
|
);
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicBusReset (
|
|
IN PADAPTERCB pAdapter,
|
|
IN OUT ULONG fulFlags
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicBusResetNotification (
|
|
IN PADAPTERCB pAdapter,
|
|
IN ULONG fulFlags,
|
|
IN PBUS_BUS_RESET_NOTIFICATION pResetRoutine,
|
|
IN PVOID pResetContext
|
|
);
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicFreeChannel(
|
|
IN PADAPTERCB pAdapter,
|
|
IN ULONG nChannel
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicGet1394AddressFromDeviceObject(
|
|
IN PDEVICE_OBJECT pPdo,
|
|
IN OUT NODE_ADDRESS *pNodeAddress,
|
|
IN ULONG fulFlags
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicGet1394AddressOfRemoteNode(
|
|
IN PREMOTE_NODE pRemoteNode,
|
|
IN OUT NODE_ADDRESS *pNodeAddress,
|
|
IN ULONG fulFlags
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicGetGenerationCount(
|
|
IN PADAPTERCB pAdapter,
|
|
IN OUT PULONG GenerationCount
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicIsochAllocateBandwidth(
|
|
IN PREMOTE_NODE pRemoteNodePdoCb,
|
|
IN ULONG MaxBytesPerFrameRequested,
|
|
IN ULONG SpeedRequested,
|
|
OUT PHANDLE phBandwidth,
|
|
OUT PULONG pBytesPerFrameAvailable,
|
|
OUT PULONG pSpeedSelected
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicAllocateChannel (
|
|
IN PADAPTERCB pAdapter,
|
|
IN ULONG pChannel,
|
|
OUT PULARGE_INTEGER pChannelsAvailable OPTIONAL
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicQueryChannelMap (
|
|
IN PADAPTERCB pAdapter,
|
|
OUT PULARGE_INTEGER pChannelsAvailable
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicIsochAllocateResources (
|
|
IN PADAPTERCB pAdapter,
|
|
IN ULONG fulSpeed,
|
|
IN ULONG fulFlags,
|
|
IN ULONG nChannel,
|
|
IN ULONG nMaxBytesPerFrame,
|
|
IN ULONG nNumberOfBuffers,
|
|
IN ULONG nMaxBufferSize,
|
|
IN ULONG nQuadletsToStrip,
|
|
IN ULARGE_INTEGER uliChannelMask,
|
|
IN OUT PHANDLE hResource
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicIsochAttachBuffers (
|
|
IN PADAPTERCB pAdapter,
|
|
HANDLE hResource,
|
|
ULONG nNumberOfDescriptors,
|
|
PISOCH_DESCRIPTOR pIsochDescriptor
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicIsochFreeResources(
|
|
IN PADAPTERCB pAdapter,
|
|
IN HANDLE hResource
|
|
);
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicIsochFreeBandwidth(
|
|
IN REMOTE_NODE *pRemoteNode,
|
|
IN HANDLE hBandwidth
|
|
);
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicIsochListen (
|
|
IN PADAPTERCB pAdapter,
|
|
HANDLE hResource,
|
|
ULONG fulFlags,
|
|
CYCLE_TIME StartTime
|
|
);
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicGetMaxSpeedBetweenDevices (
|
|
PADAPTERCB pAdapter,
|
|
UINT NumOfRemoteNodes,
|
|
PDEVICE_OBJECT pArrayDestinationPDO[64],
|
|
PULONG pSpeed
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicIsochDetachBuffers (
|
|
IN PADAPTERCB pAdapter,
|
|
IN HANDLE hResource,
|
|
IN ULONG nNumberOfDescriptors,
|
|
PISOCH_DESCRIPTOR pIsochDescriptor
|
|
);
|
|
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicIsochStop (
|
|
IN PADAPTERCB pAdapter,
|
|
IN HANDLE hResource
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicIsochModifyStreamProperties (
|
|
PADAPTERCB pAdapter,
|
|
NDIS_HANDLE hResource,
|
|
ULARGE_INTEGER ullChannelMap,
|
|
ULONG ulSpeed);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicGetLocalHostCSRTopologyMap(
|
|
IN PADAPTERCB pAdapter,
|
|
IN PULONG pLength,
|
|
IN PVOID pBuffer
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicAsyncLock(
|
|
PREMOTE_NODE pRemoteNode,
|
|
IO_ADDRESS DestinationAddress, // Address to lock to
|
|
ULONG nNumberOfArgBytes, // Bytes in Arguments
|
|
ULONG nNumberOfDataBytes, // Bytes in DataValues
|
|
ULONG fulTransactionType, // Lock transaction type
|
|
ULONG Arguments[2], // Arguments used in Lock
|
|
ULONG DataValues[2], // Data values
|
|
PVOID pBuffer, // Destination buffer (virtual address)
|
|
ULONG ulGeneration // Generation as known by driver
|
|
);
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicSetLocalHostPropertiesCRom (
|
|
IN PADAPTERCB pAdapter,
|
|
IN PUCHAR pConfigRom,
|
|
IN ULONG Length,
|
|
IN ULONG Flags,
|
|
IN OUT PHANDLE phCromData,
|
|
IN OUT PMDL *ppConfigRomMdl
|
|
);
|
|
|
|
NDIS_STATUS
|
|
nicGetLocalHostUniqueId(
|
|
IN PADAPTERCB pAdapter,
|
|
IN OUT PGET_LOCAL_HOST_INFO1 pUid
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicGetConfigRom(
|
|
IN PDEVICE_OBJECT pPdo,
|
|
OUT PVOID *ppCrom
|
|
);
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicGetLocalHostConfigRom(
|
|
IN PADAPTERCB pAdapter,
|
|
OUT PVOID *ppCRom
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicGetReadWriteCapLocalHost(
|
|
IN PADAPTERCB pAdapter,
|
|
PGET_LOCAL_HOST_INFO2 pReadWriteCaps
|
|
);
|
|
|
|
NTSTATUS
|
|
nicSubmitIrp(
|
|
IN PDEVICE_OBJECT pPDO,
|
|
IN PIRP pIrp,
|
|
IN PIRB pIrb,
|
|
IN PIO_COMPLETION_ROUTINE pCompletion,
|
|
IN PVOID pContext
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicSubmitIrp_Synch(
|
|
IN REMOTE_NODE *pRemoteNode,
|
|
IN PIRP pIrp,
|
|
IN PIRB pIrb
|
|
);
|
|
|
|
NTSTATUS
|
|
nicSubmitIrp_SynchComplete(
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
IN PIRP pIrp,
|
|
IN PVOID Context
|
|
);
|
|
|
|
|
|
NDIS_STATUS
|
|
nicSubmitIrp_LocalHostSynch(
|
|
IN PADAPTERCB pAdapter,
|
|
IN PIRP pIrp,
|
|
IN PIRB pIrb
|
|
);
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// Local prototypes (alphabetically)
|
|
//-----------------------------------------------------------------------------
|
|
|
|
VOID
|
|
nicAsyncStreamDebugSpew (
|
|
PIRB pIrb
|
|
);
|
|
|
|
VOID
|
|
nicFreeAddressRangeDebugSpew(
|
|
IN PIRB pIrb
|
|
);
|
|
|
|
VOID
|
|
nicIsochAllocateResourcesDebugSpew(
|
|
IN PIRB pIrb
|
|
);
|
|
|
|
NTSTATUS
|
|
nicSubmitIrp_DummyComplete(
|
|
IN PDEVICE_OBJECT DeviceObject,
|
|
IN PIRP pIrp,
|
|
IN PVOID Context
|
|
);
|
|
|
|
|
|
|
|
NDIS_STATUS
|
|
nicSubmitIrp_PDOSynch(
|
|
IN PDEVICE_OBJECT pPdo,
|
|
IN PIRP pIrp,
|
|
IN PIRB pIrb
|
|
);
|
|
|