📄 int_str.h
字号:
#ifndef ___INT_STR_H
#define ___INT_STR_H
#include <windows.h>
#include <lvdef.h>
#include <prvphlib.h>
#include <lvpackon.h>
#define MAX_REGNAME 30
// #define MAX_CHIPINDEX 16
#define MAX_CHIPINDEX 32
typedef struct _tagLvRegDirect {
char Name[MAX_REGNAME] _BYTEALIGNED;
U16BIT Attributes _BYTEALIGNED; // R/W Size
U8BIT ManualChapter _BYTEALIGNED;
U16BIT ManualPage _BYTEALIGNED;
// U32BIT InitialValue;
U16BIT ReadAddress _BYTEALIGNED;
U16BIT WriteAddress _BYTEALIGNED; // A default address may be useful if other access type is not specified
} LvRegDirect;
typedef struct _tagLvRegIndexed {
char Name[MAX_REGNAME] _BYTEALIGNED;
U16BIT Attributes _BYTEALIGNED; // R/W Size
U8BIT ManualChapter _BYTEALIGNED;
U16BIT ManualPage _BYTEALIGNED;
// U32BIT InitialValue;
U32BIT Index _BYTEALIGNED;
LvRegister IndexReg _BYTEALIGNED;
LvRegister DataReg _BYTEALIGNED;
} LvRegIndexed;
typedef struct _tagLvRegBitField {
char Name[MAX_REGNAME] _BYTEALIGNED;
U8BIT HexDec _BYTEALIGNED;
// U32BIT InitialValue;
U8BIT Msb _BYTEALIGNED;
U8BIT Lsb _BYTEALIGNED;
LvRegister ParentReg _BYTEALIGNED;
} LvRegBitField;
typedef struct _tagLvRegisterSetDef {
char Name[MAX_REGNAME] _BYTEALIGNED;
LvRegDirect *Direct _BYTEALIGNED;
LvRegIndexed *Indexed _BYTEALIGNED;
LvRegBitField *Field _BYTEALIGNED;
U8BIT Flag _BYTEALIGNED;
} LvRegisterSetDef;
#define MAX_COMPATIBILITY 32
typedef struct _tagAccessProcedure {
LvRegister RegId;
U8BIT Operation;
U32BIT Mask;
U32BIT MaskSignBits;
} LvAccessProcedure;
typedef struct _tagAccessParamDef {
LvAccessProcedure PreProc;
LvAccessProcedure PostProc;
} LvAccessParamDef;
typedef struct _tagLvCompatDef {
U32BIT SetId;
U8BIT Type;
LvAccessParamDef Access;
U32BIT BaseAddress;
} LvCompatDef;
typedef struct _tagLvChipCheck {
LvRegister RegIdHigh;
LvRegister RegIdLow;
U32BIT ChipId;
LvRegister RegCheck;
} LvChipCheck;
typedef struct _tagLvChipDef {
#ifdef __WIN3264__
char *Name;
#else
char FAR *Name;
#endif
U16BIT Type;
LvChipCheck Check;
LvCompatDef Compatibility[MAX_COMPATIBILITY]; // indexes in registerset array
} LvChipDef;
typedef struct _tagLvBoardChip {
U16BIT ChipId; // Maybe index in AvailableChip Array (also coded in the register name)
U16BIT IndexOnBoard; // Useful when more than one chip of the same type is present on the same board
char AdditionalName[MAX_REGNAME];
U16BIT AccessId; // Type of access (direct or using a serial protocol)
// Access parameters (to be defined which are needed for each protocol)
union _tagAccessParam {
U32BIT I2CChipAddress; // I2C chip
U32BIT BaseAddress; // LCA
U32BIT IoBase; // CA_IOMEM_SEL
U32BIT Class; // CA_SERPORT
} AccessParam;
U8BIT CheckPriority;
} LvBoardChip;
typedef struct _tagLvBoardDef {
char Name[MAX_BOARDNAME];
struct _tagPCIData {
U16BIT Vendor;
U16BIT Device;
} PCIData;
BOOL HasNovram;
struct _tagNovramData {
U16BIT PrintId;
// U8BIT PrintRev;
} NovramData;
BOOL IsMainBoard;
U8BIT AddOnAllowed;
U16BIT ParallelAddOnAddress[MAX_ADDON];
LvBoardChip *BoardDefinition;
BOOL LCAProgrammable; // Set if the board is programmable through LCA
BOOL PCMainBoard; // Set if the board is a PC mainboard
U32BIT DefMemSize;
BOOL UniquePCIId;
U32BIT Bus;
} LvBoardDef;
typedef struct _tagLvParallelReg {
U32BIT Data_R;
U32BIT Data_W;
U32BIT DataInc_R;
U32BIT DataInc_W;
U32BIT AddrH_R;
U32BIT AddrH_W;
U32BIT AddrL_R;
U32BIT AddrL_W;
} LvParallelReg;
typedef struct _tagLvSaaReg {
U8BIT SaaVer;
// I2C
LvRegister I2CTfr;
LvRegister I2CSc;
// Debi
LvRegister DebiAd;
LvRegister DebiCmd;
LvRegister DebiCfg;
} LvSaaReg;
typedef struct _tagPKX_LcaHeader {
U16BIT Signature _BYTEALIGNED;
U16BIT Type _BYTEALIGNED;
U32BIT Size _BYTEALIGNED;
U32BIT Crc32 _BYTEALIGNED;
U8BIT NrBoardSpec _BYTEALIGNED;
U8BIT NrFlags _BYTEALIGNED;
char Reserved_1[2] _BYTEALIGNED;
U32BIT DataOffset _BYTEALIGNED;
char Reserved_2[12] _BYTEALIGNED; // Up to 32 bytes
} PKX_LcaHeader;
#define _RXXMod_NrPort 4
typedef struct _tagRXXModItem {
U32BIT ModType;
U32BIT ModId;
U32BIT TgtProc[_RXXMod_NrPort];
U32BIT TgtPort[_RXXMod_NrPort];
U32BIT SrcProc[_RXXMod_NrPort];
} RXXModItem;
typedef struct _tagRYX_FPGAInfo {
U16BIT ChipId;
U8BIT ValidType;
U32BIT Version;
U32BIT Crc;
U32BIT Flag;
} RYX_FPGAInfo;
typedef struct _tagRXXFpgaVersion {
U32BIT Loaded[4];
RYX_FPGAInfo Stored[8];
} RXXFpgaVersion;
typedef struct _tagPkxFPGA {
U16BIT ChipId;
U16BIT FirstBank;
U16BIT LastBank;
U16BIT FpgaId;
U32BIT MaxSize;
U8BIT ValidType;
LvRegister CrcReg;
LvRegister VerReg;
LvRegister FlgReg;
} PkxFPGA;
#define SlaveFpgaMarker 0x55780001
typedef struct _tagLvSlaveFpgaParam {
U32BIT Marker;
PkxFPGA FpgaParam;
char FileName[128];
} LvSlaveFpgaParam;
// IOCTL_RXX_FSHSLVID
typedef struct _tagLvFpgaPossibleId {
U32BIT PrintId;
U32BIT PrintRev;
U32BIT DLO;
U32BIT Reserved;
PkxFPGA FpgaParam;
} LvFpgaPossibleId;
typedef struct _tagLvFpgaId {
U32BIT NrEntry;
LvFpgaPossibleId PossibleId[1];
} LvFpgaIdForDevId;
#include <lvpackof.h>
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -