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

📄 athreg.h

📁 atheros ar5001 5002 driver
💻 H
字号:

#ifndef	__INCathregh
#define	__INCathregh

#define MAX_FILE_WIDTH  250     //max number of characters we will reading from file
#define MAX_NAME_LENGTH  30      //max number of character a register or field name can have
#define MAX_VALUE_LENGTH 30
#define MAX_EAR_LOCATIONS	320

//definitions for the text file columns
#define FIELD_NAME      1
#define BASE_VALUE      2
#define TURBO_VALUE     3
#define REG_NAME        4
#define REG_OFFSET      5
#define BIT_RANGE       6
#define VALUE_SIGNED   7
#define REG_WRITABLE    8
#define REG_READABLE    9
#define SW_CONTROLLED   10
#define EEPROM_VALUE    11
#define PUBLIC_NAME     12
#define NUM_RF_BANKS	8
#define ALL_BANKS		0xff

#define BASE_11A_VALUE	2
#define TURBO_11A_VALUE	3
#define BASE_11B_VALUE	4
#define BASE_11G_VALUE	5
#define TURBO_11G_VALUE 6

//atheros register file struct used by parser, contains some extra fields 
//to help manipulation of members during parsing
typedef struct parseAtherosRegFile {
    A_CHAR      fieldName[MAX_NAME_LENGTH];
    A_CHAR      regName[MAX_NAME_LENGTH];
    A_UINT32    fieldBaseValue;
    A_UINT32    fieldTurboValue;
    A_UINT32    regOffset;
    A_UINT16    fieldStartBitPos;
    A_UINT16    fieldSize;
    A_BOOL      writable;
    A_BOOL      readable;
    A_UINT32    softwareControlled;
    A_BOOL      existsInEepromOrMode;
    A_BOOL      publicText;
    A_BOOL      radioRegister;
	A_BOOL		valueSigned;
    A_UCHAR     rfRegNumber;
    A_UINT32    maxValue;	//also acts as the mask
    A_UINT32    indexToModeSection;   
	A_BOOL		existsInModeSection;
	A_BOOL		dontReverseField;
} PARSE_ATHEROS_REG_FILE;

//structure used to create and read in dk ini file
typedef struct atherosRegFile {
    A_CHAR      fieldName[MAX_NAME_LENGTH];
    A_CHAR      regName[MAX_NAME_LENGTH];
    A_UINT32    fieldBaseValue;
    A_UINT32    fieldTurboValue;
    A_UINT32    regOffset;
    A_UINT16    fieldStartBitPos;
    A_UINT16    fieldSize;
    A_BOOL      writable;
    A_BOOL      readable;
    A_UINT32    softwareControlled;
    A_BOOL      existsInEepromOrMode;
    A_BOOL      publicText;
    A_BOOL      radioRegister;
	A_BOOL		valueSigned;
    A_UCHAR     rfRegNumber;
    A_UINT32    maxValue;   //also acts as the mask
	A_BOOL		dontReverse;
} ATHEROS_REG_FILE;

typedef struct parseFieldInfo {
    A_CHAR      fieldName[MAX_NAME_LENGTH];
	A_CHAR		valueString[MAX_VALUE_LENGTH];
} PARSE_FIELD_INFO;


typedef struct parseModeInfo {
    A_CHAR      fieldName[MAX_NAME_LENGTH];
	A_CHAR		value11aStr[MAX_VALUE_LENGTH];
	A_CHAR		value11aTurboStr[MAX_VALUE_LENGTH];
	A_CHAR		value11bStr[MAX_VALUE_LENGTH];
	A_CHAR		value11gStr[MAX_VALUE_LENGTH];
	A_CHAR      value11gTurboStr[MAX_VALUE_LENGTH];
} PARSE_MODE_INFO;


typedef struct modeInfo {
    A_CHAR      fieldName[MAX_NAME_LENGTH];		//put this back in so that can check when overwrite with an external file
	A_UINT32	value11a;
	A_UINT32	value11aTurbo;
	A_UINT32	value11b;
	A_UINT32	value11g;
    A_UINT32    value11gTurbo;
	A_UINT32	indexToMainArray;
} MODE_INFO;

typedef struct pciRegValues {
    A_UINT32    offset;
    A_UINT32    baseValue;
    A_UINT32    turboValue;
} PCI_REG_VALUES;

typedef struct rfRegInfo {
	A_UINT32			bankNum;
	ATHEROS_REG_FILE	*pRegFields;
	A_UINT32			numRegFields;
	PCI_REG_VALUES		*pPciValues;
	A_UINT16			numPciRegs;
	A_BOOL				writeBank;
} RF_REG_INFO;

void updateField(A_UINT32 devNum, ATHEROS_REG_FILE *fieldDetails, A_UINT32 newValue, A_BOOL immediate);

#endif // __INCathregh

⌨️ 快捷键说明

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