118 lines
3.7 KiB
C
118 lines
3.7 KiB
C
/*******************************************************************
|
||
*
|
||
* 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__
|
||
|