📄 example_lib.h
字号:
#ifndef _EXAMPLE_LIB_H_
#define _EXAMPLE_LIB_H_
/************************************************************************
* File: example_lib.h
*
* Library for accessing EXAMPLE devices.
* The code accesses hardware using WinDriver's WDC library.
* Code was generated by DriverWizard v9.21.
*
* Jungo Confidential. Copyright (c) 2009 Jungo Ltd. http://www.jungo.com
*************************************************************************/
#include "wdc_lib.h"
#include "samples/shared/pci_regs.h"
#include "samples/shared/bits.h"
#ifdef __cplusplus
extern "C" {
#endif
/*************************************************************
General definitions
*************************************************************/
/* Default vendor and device IDs */
#define EXAMPLE_DEFAULT_VENDOR_ID 0x10B5 /* Vendor ID */
#define EXAMPLE_DEFAULT_DEVICE_ID 0x5406 /* Device ID */
/* Address space information struct */
#define MAX_TYPE 8
typedef struct {
DWORD dwAddrSpace;
CHAR sType[MAX_TYPE];
CHAR sName[MAX_NAME];
CHAR sDesc[MAX_DESC];
} EXAMPLE_ADDR_SPACE_INFO;
/* Interrupt result information struct */
typedef struct
{
DWORD dwCounter; /* Number of interrupts received */
DWORD dwLost; /* Number of interrupts not yet handled */
WD_INTERRUPT_WAIT_RESULT waitResult; /* See WD_INTERRUPT_WAIT_RESULT values in windrvr.h */
DWORD dwEnabledIntType; /* Interrupt type that was actually enabled
(MSI/MSI-X/Level Sensitive/Edge-Triggered) */
DWORD dwLastMessage; /* Message data of the last received MSI/MSI-X
(Windows Vista); N/A to line-based interrupts) */
} EXAMPLE_INT_RESULT;
/* TODO: You can add fields to EXAMPLE_INT_RESULT to store any additional
information that you wish to pass to your diagnostics interrupt
handler routine (DiagIntHandler() in example_diag.c) */
/* EXAMPLE diagnostics interrupt handler function type */
typedef void (*EXAMPLE_INT_HANDLER)(WDC_DEVICE_HANDLE hDev,
EXAMPLE_INT_RESULT *pIntResult);
/* EXAMPLE diagnostics plug-and-play and power management events handler function type */
typedef void (*EXAMPLE_EVENT_HANDLER)(WDC_DEVICE_HANDLE hDev,
DWORD dwAction);
// EXAMPLE register definitions
enum { EXAMPLE_IORegister2_SPACE = AD_PCI_BAR2 };
enum { EXAMPLE_IORegister2_OFFSET = 0x19 };
/*************************************************************
Function prototypes
*************************************************************/
DWORD EXAMPLE_LibInit(void);
DWORD EXAMPLE_LibUninit(void);
WDC_DEVICE_HANDLE EXAMPLE_DeviceOpen(const WD_PCI_CARD_INFO *pDeviceInfo);
BOOL EXAMPLE_DeviceClose(WDC_DEVICE_HANDLE hDev);
static BOOL IsItemExists(PWDC_DEVICE pDev, ITEM_TYPE item);
DWORD EXAMPLE_IntEnable(WDC_DEVICE_HANDLE hDev, EXAMPLE_INT_HANDLER funcIntHandler);
DWORD EXAMPLE_IntDisable(WDC_DEVICE_HANDLE hDev);
BOOL EXAMPLE_IntIsEnabled(WDC_DEVICE_HANDLE hDev);
DWORD EXAMPLE_EventRegister(WDC_DEVICE_HANDLE hDev, EXAMPLE_EVENT_HANDLER funcEventHandler);
DWORD EXAMPLE_EventUnregister(WDC_DEVICE_HANDLE hDev);
BOOL EXAMPLE_EventIsRegistered(WDC_DEVICE_HANDLE hDev);
DWORD EXAMPLE_GetNumAddrSpaces(WDC_DEVICE_HANDLE hDev);
BOOL EXAMPLE_GetAddrSpaceInfo(WDC_DEVICE_HANDLE hDev, EXAMPLE_ADDR_SPACE_INFO *pAddrSpaceInfo);
// Function: EXAMPLE_ReadIORegister2()
// Read from IORegister2 register.
BYTE EXAMPLE_ReadIORegister2 (WDC_DEVICE_HANDLE hDev);
// Function: EXAMPLE_WriteIORegister2()
// Write to IORegister2 register.
void EXAMPLE_WriteIORegister2 (WDC_DEVICE_HANDLE hDev, BYTE data);
const char *EXAMPLE_GetLastErr(void);
#ifdef __cplusplus
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -