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

📄 devlibif.c

📁 atheros ar5001 5002 driver
💻 C
📖 第 1 页 / 共 2 页
字号:
 	A_UINT32 devNum
)
{
	devSleep(devNum);

	return;
}

void m_getEepromStruct
(
 	A_UINT32 devNum,
 	A_UINT16 eepStructFlag,
	void **ppReturnStruct,
	A_UINT32 *pSizeStruct
)
{
	getEepromStruct(devNum, eepStructFlag, ppReturnStruct, pSizeStruct);

	return;
}

void m_changeField
(
 	A_UINT32 devNum,
 	A_CHAR *fieldName, 
 	A_UINT32 newValue
)
{
	changeField(devNum, fieldName, newValue);
   
    	return;
}


void m_changeMultipleFieldsAllModes
(
 	A_UINT32		devNum,
 	PARSE_MODE_INFO *fieldsToChange, 
 	A_UINT32 numFields
)
{
	changeMultipleFieldsAllModes(devNum, fieldsToChange, numFields);
   
    return;
}

void m_changeMultipleFields
(
 	A_UINT32		devNum,
 	PARSE_FIELD_INFO *fieldsToChange, 
 	A_UINT32 numFields
)
{
	changeMultipleFields(devNum, fieldsToChange, numFields);
   
    return;
}

void m_enableWep
(
 	A_UINT32 devNum,
 	A_UCHAR  key
)
{
	enableWep(devNum, key);
   
    	return;
}

void m_enablePAPreDist
(
 	A_UINT32 devNum,
 	A_UINT16 rate,
 	A_UINT32 power
)
{
	//enablePAPreDist(devNum, rate, power);
   
    	return;

}

void m_dumpRegs
(
 	A_UINT32 devNum
)
{
	dumpPciRegValues(devNum);

	return;
}

void m_dumpPciWrites
(
 	A_UINT32 devNum
)
{
	displayPciRegWrites(devNum);

	return;
}

A_BOOL m_testLib
(
 	A_UINT32 devNum,
 	A_UINT32 timeout
)
{
	A_BOOL ret;

	ret = testLib(devNum, timeout);

	return ret;
}

void m_displayFieldValues 
(
 	A_UINT32 devNum,
 	A_CHAR *fieldName,
	A_UINT32 *baseValue,
	A_UINT32 *turboValue

)
{
	getField(devNum, fieldName, baseValue, turboValue);

	return;
}

A_UINT32 m_getFieldValue
(
 	A_UINT32 devNum,
 	A_CHAR   *fieldName,
 	A_UINT32 turbo,
	A_UINT32 *baseValue,
	A_UINT32 *turboValue

)
{
	getField(devNum, fieldName, baseValue, turboValue);

	return 0;
}

A_INT32 m_getFieldForMode
(
 	A_UINT32 devNum,
 	A_CHAR   *fieldName,
 	A_UINT32 mode,
	A_UINT32 turbo

)
{
	return getFieldForMode(devNum, fieldName, mode, turbo);
}

A_UINT32 m_readField
(
 	A_UINT32 devNum,
 	A_CHAR   *fieldName,
 	A_UINT32 printValue,
	A_UINT32 *unsignedValue,
	A_INT32 *signedValue,
	A_BOOL  *signedFlag

)
{
	readField(devNum, fieldName, unsignedValue, signedValue, signedFlag);

	return 0;
}

void m_writeField
(
 	A_UINT32 devNum,
 	A_CHAR *fieldName, 
 	A_UINT32 newValue
)
{
	writeField(devNum, fieldName, newValue);

    	return;
}

void m_forceSinglePCDACTable
(
	A_UINT32 devNum,
	A_UINT16 pcdac
)
{
	ForceSinglePCDACTable(devNum,pcdac);

	return;
}

void m_forcePCDACTable
(
	A_UINT32 devNum,
	A_UINT16 *pcdac
)
{
	forcePCDACTable(devNum,pcdac);

	return;
}

void m_forcePowerTxMax
(
	A_UINT32 devNum,
	A_UINT32 length,
	A_UINT16 *pRatesPower
)
{

	if (length != NUM_RATES) {
		uiPrintf("m_forcePowerTxMax: RatesPower should be a 8 byte array. given %d\n", length);
		return;
	}
	forcePowerTxMax(devNum, (A_INT16 *) pRatesPower);

	return;
}

void m_forceSinglePowerTxMax
(
	A_UINT32 devNum,
	A_UINT16 txPower
)
{
	forceSinglePowerTxMax(devNum,txPower);
	return;
}

void m_setQueue
(
 	A_UINT32 devNum,
	A_UINT32 qcuNumber
)
{
	setQueue(devNum,qcuNumber);

    	return;
}

void m_mapQueue
(
 	A_UINT32 devNum,
	A_UINT32 qcuNumber,
	A_UINT32 dcuNumber
)
{
	mapQueue(devNum,qcuNumber,dcuNumber);

    	return;
}

void m_clearKeyCache
(
 	A_UINT32 devNum
)
{
	clearKeyCache(devNum);

    	return;
}

void m_getMacAddr
(
 	A_UINT32 devNum,
	A_UINT16 wmac,
	A_UINT16 instNo,
	A_UINT8 *macAddr
)
{
	getMacAddr(devNum,wmac,instNo, macAddr);

   	return;
}


A_UINT16 m_closeDevice
(
    A_UINT32 devNum
)
{
	A_UINT16 devIndex;

	devIndex = getDevIndex(devNum);
	// Close manufacturing library structs for this device
	closeDevice(devNum);

    // Close low level structs for this device
	if (devIndex != (A_UINT16)-1) {
  		deviceCleanup(devIndex);
	}
	return (devIndex);
}

/**************************************************************************
* OSregRead - MLIB command for reading a register
*
* RETURNS: value read
*/
A_UINT32 OSregRead
(
    	A_UINT32 devNum,
    	A_UINT32 regOffset
)
{
	A_UINT32         regReturn;
	A_UINT16 devIndex;

	// no need to check for invalid devindex as these are called from lib and should 
	// have a valid devindex
	devIndex = getDevIndex(devNum);

	/* read the register */
	regReturn = hwMemRead32(devIndex,regOffset); 

	return(regReturn);
}

/**************************************************************************
* OSregWrite - MLIB command for writing a register
*
*/
void OSregWrite
(
	A_UINT32 devNum,
    A_UINT32 regOffset,
    A_UINT32 regValue
)
{
	A_UINT16 devIndex;

	// no need to check for invalid devindex as these are called from lib and should 
	// have a valid devindex
	devIndex = getDevIndex(devNum);

	/* write the register */
	hwMemWrite32(devIndex,regOffset, regValue); 
}

/**************************************************************************
* OScfgRead - MLIB command for reading a pci configuration register
*
* RETURNS: value read
*/
A_UINT32 OScfgRead
(
	A_UINT32 devNum,
    A_UINT32 regOffset
)
{
    A_UINT32         regReturn;
	A_UINT16 devIndex;

	// no need to check for invalid devindex as these are called from lib and should 
	// have a valid devindex
	devIndex = getDevIndex(devNum);

	regReturn = hwCfgRead32(devIndex, regOffset); 

    return(regReturn);
}

/**************************************************************************
* OScfgWrite - MLIB command for writing a pci config register
*
*/
void OScfgWrite
(
	A_UINT32 devNum,
   	A_UINT32 regOffset,
   	A_UINT32 regValue
)
{
	A_UINT16 devIndex;

	// no need to check for invalid devindex as these are called from lib and should 
	// have a valid devindex
	devIndex = getDevIndex(devNum);

	hwCfgWrite32(devIndex, regOffset, regValue); 
}

/**************************************************************************
* OSmemRead - MLIB command to read a block of memory
*
* read a block of memory
*
* RETURNS: An array containing the bytes read
*/
void OSmemRead
(
	A_UINT32 devNum,
   	A_UINT32 physAddr, 
	A_UCHAR  *bytesRead,
   	A_UINT32 length
)
{
	A_UINT16 devIndex;

	// no need to check for invalid devindex as these are called from lib and should 
	// have a valid devindex
	devIndex = getDevIndex(devNum);
	
   	/* check to see if the size will make us bigger than the send buffer */
   	if (length > MAX_MEMREAD_BYTES) {
       		uiPrintf("Error: OSmemRead length too large, can only read %x bytes\n", MAX_MEMREAD_BYTES);
		return;
   	}

	if (bytesRead == NULL) {
       		uiPrintf("Error: OSmemRead received a NULL ptr to the bytes to read - please preallocate\n");
		return;
    	}

	if(hwMemReadBlock(devIndex, bytesRead, physAddr, length) == -1) {
		uiPrintf("Error: OSmemRead failed call to hwMemReadBlock()\n");
		return;
	}
}

/**************************************************************************
* OSmemWrite - MLIB command to write a block of memory
*
*/
void OSmemWrite
(
	A_UINT32 devNum,
    	A_UINT32 physAddr,
	A_UCHAR  *bytesWrite,
	A_UINT32 length
)
{
	A_UINT16 devIndex;

	// no need to check for invalid devindex as these are called from lib and should 
	// have a valid devindex
	devIndex = getDevIndex(devNum);
	
   	/* check to see if the size will make us bigger than the send buffer */
   	if (length > MAX_MEMREAD_BYTES) {
        uiPrintf("Error: OSmemWrite length too large, can only read %x bytes\n", MAX_MEMREAD_BYTES);
		return;
   	}
	if (bytesWrite == NULL) {
        uiPrintf("Error: OSmemWrite received a NULL ptr to the bytes to write\n");
		return;	
	}

	if(hwMemWriteBlock(devIndex, bytesWrite, length, &(physAddr)) == -1) {
		uiPrintf("Error:  OSmemWrite failed call to hwMemWriteBlock()\n");
		return;
    }
}

ISR_EVENT getISREvent
(
 	A_UINT32 devNum
)
{
    MDK_WLAN_DEV_INFO    *pdevInfo;
	static EVENT_STRUCT locEventSpace;
	// Initialize event to invalid.
	ISR_EVENT event = {0, 0};
	A_UINT16 devIndex;

	// no need to check for invalid devindex as these are called from lib and should 
	// have a valid devindex
	devIndex = getDevIndex(devNum);
	
	pdevInfo = globDrvInfo.pDevInfoArray[devIndex];

#ifdef JUNGO
    	if (pdevInfo->pdkInfo->pSharedInfo->anyEvents) {
		//call into the kernel plugin to get the event
		if (hwGetNextEvent(devIndex,(void *)&locEventSpace) != -1) {
		if (locEventSpace.type == ISR_INTERRUPT) {
				event.valid = 1;
				event.ISRValue = locEventSpace.result;
		#ifdef MAUI
		{
			A_UINT32 i;

			for (i=0;i<5;i++) {
				event.additionalInfo[i] = locEventSpace.additionalParams[i]; 
			}
		}
		#endif
			}
			else {
				uiPrintf("Error: getISREvent - found a non-ISR event in a client - is this possible???\n");
				uiPrintf("If this has become a possibility... then remove this error check\n");
			}
		}
		else {
			uiPrintf("Error: getISREvent Unable to get event from kernel plugin when it said we had one\n");
		}
	}

#else
	locEventSpace.type = 0;
	if (hwGetNextEvent(devIndex,&locEventSpace) != -1) {
		if(locEventSpace.type == ISR_INTERRUPT) {
			event.valid = 1;
			event.ISRValue = locEventSpace.result;
		}	
		#ifdef MAUI
		{
			A_UINT32 i;
				for (i=0;i<5;i++) {
				event.additionalInfo[i] = locEventSpace.additionalParams[i]; 
			}
		}
		#endif
	}
#endif
	return(event);
}


/**************************************************************************
* initializeMLIB - initialization call to MLIB
*
* RETURNS: value read
*/
A_INT32 initializeMLIB(MDK_WLAN_DEV_INFO *pdevInfo)
{
	static DEVICE_MAP devMap;
	A_UINT32 devNum;

	devMap.DEV_CFG_ADDRESS = 0;
	devMap.DEV_CFG_RANGE = MAX_CFG_OFFSET;
#ifdef JUNGO
	devMap.DEV_MEMORY_ADDRESS = (unsigned long) pdevInfo->pdkInfo->dma_mem_addr;	
	devMap.DEV_REG_ADDRESS = pdevInfo->pdkInfo->pSharedInfo->devMapAddress;
#else
	devMap.DEV_MEMORY_ADDRESS = (unsigned long) pdevInfo->pdkInfo->memPhyAddr;
	devMap.DEV_REG_ADDRESS = pdevInfo->pdkInfo->f2MapAddress;
#endif
	devMap.DEV_MEMORY_RANGE = pdevInfo->pdkInfo->memSize;
	devMap.DEV_REG_RANGE = LIB_REG_RANGE;
	devMap.OScfgRead = OScfgRead;
	devMap.OScfgWrite = OScfgWrite;
	devMap.OSmemRead = OSmemRead;
	devMap.OSmemWrite = OSmemWrite;
	devMap.OSregRead = OSregRead;
	devMap.OSregWrite = OSregWrite;
	devMap.getISREvent = getISREvent;
	devMap.devIndex = pdevInfo->pdkInfo->devIndex;
	devNum = initializeDevice(devMap);

	// Setup quick access device to handle table
	assert(devNum < LIB_MAX_DEV);

    	// Point library at MDKclient memory map
    	useMDKMemory(devNum, pdevInfo->pbuffMapBytes, pdevInfo->pnumBuffs);

	return devNum;
}

void closeMLIB(A_UINT32 devNum)
{
	closeDevice(devNum);
}

void m_devlibCleanup()
{
	devlibCleanup();
}

void m_changeCal
(
  A_UINT32 calFlags
)
{
	enableCal = calFlags;
	return;
}

⌨️ 快捷键说明

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