⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 al576_lib.h

📁 Averlogic AL576芯片MPEG4压缩示例源程序
💻 H
字号:
//////////////////////////////////////////////////////////////////////
// File - al576_lib.h
//
// Library for accessing the AL576 card,
// Code was generated by DriverWizard.
// It accesses the hardware via WinDriver functions.
// 
//////////////////////////////////////////////////////////////////////

#ifndef _AL576_LIB_H_
#define _AL576_LIB_H_

#ifdef __cplusplus
extern "C" {
#endif

#ifdef _ALPCI

#include "d:/windriver/include/windrvr.h"
#include "d:/windriver/samples/shared/pci_regs.h"
#include "d:/windriver/samples/shared/bits.h"

enum { AL576_DEFAULT_VENDOR_ID = 0x5678 };
enum { AL576_DEFAULT_DEVICE_ID = 0x1234 };

enum
{
    AL576_MODE_BYTE   = 0,
    AL576_MODE_WORD   = 1,
    AL576_MODE_DWORD  = 2
};
typedef DWORD AL576_MODE;

enum
{
    AL576_AD_BAR0 = AD_PCI_BAR0,
    AL576_AD_BAR1 = AD_PCI_BAR1,
    AL576_AD_BAR2 = AD_PCI_BAR2,
    AL576_AD_BAR3 = AD_PCI_BAR3,
    AL576_AD_BAR4 = AD_PCI_BAR4,
    AL576_AD_BAR5 = AD_PCI_BAR5,
    AL576_AD_EPROM = AD_PCI_BAR_EPROM,
};
typedef DWORD AL576_ADDR;

// Number of IO and memory ranges
enum { AL576_ITEMS = AD_PCI_BARS };

typedef struct AL576_STRUCT *AL576_HANDLE;

typedef struct
{
    DWORD dwCounter;   // number of interrupts received
    DWORD dwLost;      // number of interrupts not yet dealt with
    BOOL fStopped;     // was interrupt disabled during wait
} AL576_INT_RESULT;

typedef void (*AL576_INT_HANDLER)(AL576_HANDLE hAL576, AL576_INT_RESULT *intResult);

// options for AL576_Open
enum { AL576_OPEN_USE_INT =   0x1 };

BOOL AL576_Open (AL576_HANDLE *phAL576, DWORD dwVendorID, DWORD dwDeviceID, DWORD nCardNum, DWORD dwOptions);
void AL576_RegisterWinDriver();
void AL576_Close(AL576_HANDLE hAL576);
DWORD AL576_CountCards (DWORD dwVendorID, DWORD dwDeviceID);
BOOL AL576_IsAddrSpaceActive(AL576_HANDLE hAL576, AL576_ADDR addrSpace);

void AL576_GetPciSlot(AL576_HANDLE hAL576, WD_PCI_SLOT *pPciSlot);

// General read/write function
void AL576_ReadWriteBlock(AL576_HANDLE hAL576, AL576_ADDR addrSpace, DWORD dwOffset, BOOL fRead, PVOID buf, DWORD dwBytes, AL576_MODE mode);
BYTE AL576_ReadByte (AL576_HANDLE hAL576, AL576_ADDR addrSpace, DWORD dwOffset);
WORD AL576_ReadWord (AL576_HANDLE hAL576, AL576_ADDR addrSpace, DWORD dwOffset);
DWORD AL576_ReadDword (AL576_HANDLE hAL576, AL576_ADDR addrSpace, DWORD dwOffset);
void AL576_WriteByte (AL576_HANDLE hAL576, AL576_ADDR addrSpace, DWORD dwOffset, BYTE data);
void AL576_WriteWord (AL576_HANDLE hAL576, AL576_ADDR addrSpace, DWORD dwOffset, WORD data);
void AL576_WriteDword (AL576_HANDLE hAL576, AL576_ADDR addrSpace, DWORD dwOffset, DWORD data);
// handle interrupts
BOOL AL576_IntIsEnabled (AL576_HANDLE hAL576);
BOOL AL576_IntEnable (AL576_HANDLE hAL576, AL576_INT_HANDLER funcIntHandler);
void AL576_IntDisable (AL576_HANDLE hAL576);
// access to PCI configuration registers
void AL576_WritePCIReg(AL576_HANDLE hAL576, DWORD dwReg, DWORD dwData);
DWORD AL576_ReadPCIReg(AL576_HANDLE hAL576, DWORD dwReg);

// this string is set to an error message, if one occurs
extern CHAR AL576_ErrorString[];

#else
typedef HANDLE AL576_HANDLE;

#endif

#ifdef __cplusplus
}
#endif

#endif //end of _ALPCI

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -