mirror of https://github.com/tongzx/nt5src
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.
117 lines
3.7 KiB
117 lines
3.7 KiB
/*******************************************************************
|
|
*
|
|
* MPINIT.H
|
|
*
|
|
* Copyright (C) 1995 SGS-THOMSON Microelectronics.
|
|
*
|
|
*
|
|
* Prototypes for MPINIT.C
|
|
*
|
|
*******************************************************************/
|
|
#ifndef __MPINIT_H__
|
|
#define __MPINIT_H__
|
|
#define NO_ERROR 0
|
|
#ifndef NULL
|
|
#define NULL 0
|
|
#endif
|
|
#define ERROR_CARD_NOT_FOUND 1
|
|
#define ERROR_NOT_ENOUGH_MEMORY 2
|
|
#define ERROR_COMMAND_NOT_IMPLEMENTED 3
|
|
// BGP #define VIDEO_PACKET_TIMER (10*1000)
|
|
#define VIDEO_PACKET_TIMER (5*1000)
|
|
#define AUDIO_PACKET_TIMER (10*1000)
|
|
#define MEM_WINDOW_SIZE (128*1024)
|
|
typedef struct _VIDEO_DEVICE_EXTENSION {
|
|
BOOLEAN EOSInProgress; // End Of Stream ha been sent to device
|
|
KSSTATE DeviceState;
|
|
STREAM_SYSTEM_TIME videoSTC;
|
|
PHW_STREAM_REQUEST_BLOCK pCurrentSRB;
|
|
ULONG StarvationCount; // number of times device was starved since last reset
|
|
ULONG cPacket; // current packet in process
|
|
ULONG cOffs; // offset into the current packet
|
|
PKSDATA_PACKET pPacket;
|
|
PVOID pDMABuf;
|
|
} VIDEO_DEVICE_EXTENSION, *PVIDEO_DEVICE_EXTENSION;
|
|
|
|
typedef struct _AUDIO_DEVICE_EXTENSION {
|
|
STREAM_SYSTEM_TIME audioSTC;
|
|
KSSTATE DeviceState;
|
|
PHW_STREAM_REQUEST_BLOCK pCurrentSRB;
|
|
ULONG StarvationCount; // number of times device was starved since last reset
|
|
ULONG ByteSent;
|
|
ULONG cPacket; // current packet in process
|
|
ULONG cOffs; // offset into the current packet
|
|
PKSDATA_PACKET pPacket;
|
|
} AUDIO_DEVICE_EXTENSION, *PAUDIO_DEVICE_EXTENSION;
|
|
|
|
typedef struct _HW_DEVICE_EXTENSION {
|
|
KSSTATE stState;
|
|
PUSHORT ioBaseLocal;
|
|
PUSHORT ioBasePCI9060;
|
|
USHORT Irq;
|
|
BOOLEAN bVideoInt;
|
|
BOOLEAN bAudioInt;
|
|
PHW_STREAM_REQUEST_BLOCK AudioQ;
|
|
PHW_STREAM_REQUEST_BLOCK VideoQ;
|
|
VIDEO_DEVICE_EXTENSION VideoDeviceExt;
|
|
AUDIO_DEVICE_EXTENSION AudioDeviceExt;
|
|
PHW_STREAM_REQUEST_BLOCK pCurSrb;
|
|
PHW_STREAM_REQUEST_BLOCK pSrbQ;
|
|
} HW_DEVICE_EXTENSION, *PHW_DEVICE_EXTENSION;
|
|
|
|
typedef VOID (*PFN_WRITE_DATA) (PHW_STREAM_REQUEST_BLOCK pSrb);
|
|
|
|
typedef struct _STREAMEX {
|
|
PFN_WRITE_DATA pfnWriteData;
|
|
PFN_WRITE_DATA pfnSetState;
|
|
PFN_WRITE_DATA pfnGetProp;
|
|
} STREAMEX, *PSTREAMEX;
|
|
|
|
typedef struct _MRP_EXTENSION {
|
|
|
|
ULONG Status;
|
|
} MRP_EXTENSION, * PMRP_EXTENSION;
|
|
|
|
NTSTATUS HwInitialize (IN PHW_STREAM_REQUEST_BLOCK pSrb );
|
|
BOOLEAN HwUnInitialize ( IN PVOID DeviceExtension);
|
|
BOOLEAN HwInterrupt ( IN PVOID pDeviceExtension );
|
|
VOID AudioEnableInterrupts(IN PVOID pHwDeviceExtension);
|
|
VOID STEnableInterrupts( IN PVOID pHwDeviceExtension );
|
|
VOID STDeferredCallback ( IN PVOID pHwDeviceExtension );
|
|
VOID TmpDeferredCallback ( IN PVOID pHwDeviceExtension );
|
|
VOID AudioTimerCallBack(IN PHW_DEVICE_EXTENSION pDeviceExtension);
|
|
ULONG DriverEntry (PVOID Context1, PVOID Context2);
|
|
|
|
// Function Prototype for the locally defined functions
|
|
|
|
BOOLEAN HwStartIo (
|
|
IN PVOID DeviceExtension,
|
|
PHW_STREAM_REQUEST_BLOCK pMrb
|
|
);
|
|
|
|
|
|
VOID AdapterOpenStream(PHW_STREAM_REQUEST_BLOCK pSrb);
|
|
|
|
VOID AdapterCloseStream(PHW_STREAM_REQUEST_BLOCK pSrb);
|
|
|
|
VOID STREAMAPI AdapterReceivePacket(IN PHW_STREAM_REQUEST_BLOCK Srb);
|
|
VOID STREAMAPI AdapterCancelPacket(IN PHW_STREAM_REQUEST_BLOCK Srb);
|
|
VOID STREAMAPI AdapterTimeoutPacket(IN PHW_STREAM_REQUEST_BLOCK Srb);
|
|
|
|
VOID HostDisableIT(VOID);
|
|
VOID HostEnableIT(VOID);
|
|
|
|
|
|
PHW_STREAM_REQUEST_BLOCK Dequeue(PHW_DEVICE_EXTENSION pdevext);
|
|
|
|
VOID STREAMAPI StreamReceiveDataPacket(IN PHW_STREAM_REQUEST_BLOCK pSrb);
|
|
VOID STREAMAPI StreamReceiveCtrlPacket(IN PHW_STREAM_REQUEST_BLOCK pSrb);
|
|
|
|
VOID AdapterStreamInfo(PHW_STREAM_REQUEST_BLOCK pSrb);
|
|
|
|
VOID StreamStartCommand (PHW_DEVICE_EXTENSION pdevext);
|
|
|
|
void Enqueue (PHW_STREAM_REQUEST_BLOCK pSrb, PHW_DEVICE_EXTENSION pdevext);
|
|
|
|
#endif //__MPINIT_H__
|
|
|