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

📄 example_lib.h

📁 关于WinDriver的自动生成的PCI驱动源代码
💻 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 + -