📄 pci.h
字号:
#ifndef _PCI_H
#define _PCI_H
#include "mydefs.h"
#include <dpmi.h>
#define PCI_INT_NUM 0x1a
#define PCI_INSTALLCHECK 0xb101
#define PCI_FINDDEVICE 0xb102
#define PCI_FINDCLASSCODE 0xb103
#define PCI_READCONFIGBYTE 0xb108
#define PCI_READCONFIGWORD 0xb109
#define PCI_READCONFIGDWORD 0xb10a
#define PCI_WRITECONFIGBYTE 0xb10b
#define PCI_WRITECONFIGWORD 0xb10c
#define PCI_WRITECONFIGDWORD 0xb10d
#define SUCCESSFUL 0x00
#define FUNC_NOT_SUPPORTED 0x81
#define BAD_VENDOR_ID 0x83
#define DEVICE_NOT_FOUND 0x86
#define BAD_REGISTER_NUMBER 0x87
#define SET_FAILED 0x88
#define BUFFER_TOO_SMALL 0x89
#define PCI_PASS 0x1
#define PCI_FAIL 0x0
#define PCI_BrooktreeID 0x0109E
#define PCI_Bt848ID 0x350
#define PCI_Bt849ID 0x351
#define PCI_Bt878ID 0x36E
#define PCI_Bt879ID 0x36F
//=============================================
// PCI CONFIGURATION REGISTERS
//=============================================
class PCI
{
__dpmi_regs regs;
public:
PCI(void);
int CheckBIOS(void);
int FindDevice(int devID, int vendID, int devIndex);
int FindClassCode(int baseclass, int subclass, int interface, int devIndex);
void SetFunctionNumber(int funct_num);
int GetFunctionNumbet(void);
void SetBusNumber(int bus_num);
int GetBusNumber(void);
int ReadConfigBYTE(int reg, BYTE *retBYTE, int funct_num = -1, int bus_num = -1);
int ReadConfigWORD(int reg, WORD *retWORD, int funct_num = -1, int bus_num = -1);
int ReadConfigDWORD(int reg, DWORD *retDWORD, int funct_num = -1, int bus_num = -1);
int WriteConfigBYTE(int reg, BYTE writeBYTE, int funct_num = -1, int bus_num = -1);
int WriteConfigWORD(int reg, WORD writeWORD, int funct_num = -1, int bus_num = -1);
int WriteConfigDWORD(int reg, DWORD writeDWORD, int funct_num = -1, int bus_num = -1);
WORD GetCommandReg( int funct_num=-1, int bus_num=-1 );
void SetCommandReg( WORD value, int funct_num=-1, int bus_num=-1 );
WORD GetVendorID( int funct_num=-1, int bus_num=-1 );
WORD GetDeviceID( int funct_num=-1, int bus_num=-1 );
WORD GetStatusReg( int funct_num=-1, int bus_num=-1 );
DWORD GetClassCodeReg( int funct_num=-1, int bus_num=-1 );
BYTE GetRevisionID( int funct_num=-1, int bus_num=-1 );
BYTE GetBistReg( int funct_num=-1, int bus_num=-1 );
BYTE GetHeaderType( int funct_num=-1, int bus_num=-1 );
BYTE GetLatencyTimer( int funct_num=-1, int bus_num=-1 );
BYTE GetCacheLineSize( int funct_num=-1, int bus_num=-1 );
DWORD GetBaseAddress(int address = 0, int funct_num = -1, int bus_num = -1);
WORD GetSubsystemID( int funct_num=-1, int bus_num=-1 );
WORD GetSubsystemVendorID( int funct_num=-1, int bus_num=-1 );
DWORD GetROMBaseAddress( int funct_num=-1, int bus_num=-1 );
DWORD GetCardBusCISPointerReg( int funct_num=-1, int bus_num=-1 );
BYTE GetMaxLat( int funct_num=-1, int bus_num=-1 );
BYTE GetMinGnt( int funct_num=-1, int bus_num=-1 );
BYTE GetInterruptPin( int funct_num=-1, int bus_num=-1 );
BYTE GetInterruptLine( int funct_num=-1, int bus_num=-1 );
BOOL IsIOAccess( int funct_num=-1, int bus_num=-1 );
void SetIOAccess( BOOL value, int funct_num=-1, int bus_num=-1 );
BOOL IsMemoryAccess(int funct_num = -1, int bus_num = -1);
void SetMemoryAccess( BOOL value, int funct_num=-1, int bus_num=-1 );
BOOL IsMaster( int funct_num=-1, int bus_num=-1 );
void SetMaster( BOOL value, int funct_num=-1, int bus_num=-1 );
BOOL IsSpecialCycle( int funct_num=-1, int bus_num=-1 );
void SetSpecialCycle( BOOL value, int funct_num=-1, int bus_num=-1 );
BOOL IsMemoryWriteInval( int funct_num=-1, int bus_num=-1 );
void SetMemoryWriteInval( BOOL value, int funct_num=-1, int bus_num=-1 );
BOOL IsVGAPaletteSnoop( int funct_num=-1, int bus_num=-1 );
void SetVGAPaletteSnoop( BOOL value, int funct_num=-1, int bus_num=-1 );
BOOL IsParityError( int funct_num=-1, int bus_num=-1 );
void SetParityError( BOOL value, int funct_num=-1, int bus_num=-1 );
BOOL IsWaitCycle( int funct_num=-1, int bus_num=-1 );
void SetWaitCycle( BOOL value, int funct_num=-1, int bus_num=-1 );
BOOL IsSystemError( int funct_num=-1, int bus_num=-1 );
void SetSystemError( BOOL value, int funct_num=-1, int bus_num=-1 );
BOOL IsFastBackToBack( int funct_num=-1, int bus_num=-1 );
void SetFastBackToBack( BOOL value, int funct_num=-1, int bus_num=-1 );
BOOL CapableFastB2B (void);
public:
int status;
int hardware_characteristics;
int pmode_entry_point;
int major_rev_number;
int minor_rev_number;
int bus_number;
int function_number;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -