📄 bkcompat.c
字号:
{
#ifdef DBG
printf("Writing to address %p\n", (BaseAddress + ((ushort) address + ndx)));
#endif
WRITE_TO_HW(BaseAddress + ((ushort) address + ndx), *twoBytePtr);
}
break;
case FOUR_BYTES:
fourBytePtr = (ulong*) buffer;
for(ndx=0; ndx < length; ndx++, fourBytePtr++)
{
WRITE_TO_HW(BaseAddress + ((ushort) address + ndx),
(ushort) (*fourBytePtr >> 16));
WRITE_TO_HW(BaseAddress + ((ushort) address + ndx),
(ushort) (*fourBytePtr & 0xFFFF));
}
break;
case EIGHT_BYTES:
default:
return bb_WORD_SIZE_UNSUPPORTED;
break;
}
return bb_NO_ERROR;
}
#if 0
/******************************************************************
* Function : Ixf6048GetBuildVersion
*-----------------------------------------------------------------
* Description : This routine returns the firmware build version of
* the ixf6048 driver.
*-----------------------------------------------------------------
* Inputs : pChipData : Validated Chip Data
* Outputs : drvName : Null terminated string describing the driver
* date : The build date of the driver.
* buildVer : The version number of the driver.
* buildRev : The revision number of the driver.
*-----------------------------------------------------------------
* Returns : bb_Error_e Returns Error Condition if Not successful
*-----------------------------------------------------------------
* Access Globals : None.
*-----------------------------------------------------------------
* Comments : None.
******************************************************************/
bb_Error_e
Ixf6048GetBuildVersion(bb_ChipData_t* pChipData, char* drvName,
char *date, ushort *buildVer, ushort *buildRev)
{
/* Get the ixf6048 build information */
strcpy(drvName, IXF6048_BUILD_DRIVER_NAME);
strcpy(date, IXF6048_BUILD_DATE);
*buildVer = IXF6048_BUILD_VERSION;
*buildRev = IXF6048_BUILD_REV;
return bb_NO_ERROR;
}
/******************************************************************
* Function : Ixf6048GetLCDFilter
*-----------------------------------------------------------------
* Description : This routine will retrieve the LCD Filter value.
*-----------------------------------------------------------------
* Inputs : pChipData : Validated Chip Data
* section : Determines the section(channel) to get the value.
* Outputs : value : The LCD value.
*-----------------------------------------------------------------
* Returns : Status;
*-----------------------------------------------------------------
* Access Globals : None.
*-----------------------------------------------------------------
* Comments :
******************************************************************/
bb_Error_e
Ixf6048GetLCDFilter(bb_ChipData_t* pChipData, bb_ChipSegment_t *section,
void *value)
{
ulong *lcdValue;
lcdValue = (ulong*) value;
/* read the LCD Filter */
*lcdValue = READ_FROM_HW(pChipData->BaseAddress +
ixf6048_R_LCDFLTR_CHAN_MSB_OFFSET(section->group.channel));
/* The the Most Significant part over */
*lcdValue = *lcdValue << 16;
/* Read in the Least Significant part */
*lcdValue |= READ_FROM_HW(pChipData->BaseAddress +
ixf6048_R_LCDFLTR_CHAN_LSB_OFFSET(section->group.channel));
return bb_NO_ERROR;
}
/******************************************************************
* Function : Ixf6048SetLCDFilter
*-----------------------------------------------------------------
* Description : This routine will retrieve the LCD Filter value.
*-----------------------------------------------------------------
* Inputs : pChipData : Validated Chip Data
* section : Determines the section(channel) to get the value.
* value : The LCD value.
* Outputs : None.
*-----------------------------------------------------------------
* Returns : Status;
*-----------------------------------------------------------------
* Access Globals : None.
*-----------------------------------------------------------------
* Comments :
******************************************************************/
bb_Error_e
Ixf6048SetLCDFilter(bb_ChipData_t* pChipData, bb_ChipSegment_t *section,
void *value)
{
ushort lcdMsbValue;
ushort lcdLsbValue;
lcdMsbValue = (ushort) ((((ulong)value) >> 16) & 0xFFFF);
lcdLsbValue = (ushort) (((ulong)value) & 0xFFFF);
/* Write MSB LCD Filter */
WRITE_TO_HW(pChipData->BaseAddress +
ixf6048_R_LCDFLTR_CHAN_MSB_OFFSET(section->group.channel),
lcdMsbValue);
/* Write LSB LCD Filter */
WRITE_TO_HW(pChipData->BaseAddress +
ixf6048_R_LCDFLTR_CHAN_LSB_OFFSET(section->group.channel),
lcdLsbValue);
return bb_NO_ERROR;
}
/******************************************************************
* Function : Ixf6048InitAllocMemory
*-----------------------------------------------------------------
* Description : This routine dynamically allocates memory within
* the "pChipData" parameter for those members that
* need dynamic allocation.
*-----------------------------------------------------------------
* Inputs : pChipData : A pointer to the chip data structure without
* pointers memory allocation.
* Outputs : pChipData : A pointer to the chip data structure with
* pointer memory allocation.
*-----------------------------------------------------------------
* Returns :
*-----------------------------------------------------------------
* Access Globals : None.
*-----------------------------------------------------------------
* Comments : See IxfApiInit for the completion of the initialization
******************************************************************/
bb_Error_e
Ixf6048InitAllocMemory(bb_ChipData_t *pChipData)
{
uint ndx;
ixf6048_ChipCfg_t* pChipCfg;
ixf6048_AlarmCfg_t* pAlarmCfg;
/* Allocate memory for ChipCfg */
pChipData->pChipCfg =
(ixf6048_ChipCfg_t *) OS_CMD_ALLOC_MEM(sizeof(ixf6048_ChipCfg_t));
/* Cast the void pointer */
pChipCfg = (ixf6048_ChipCfg_t *) pChipData->pChipCfg;
/* Initialize the ChipLevel Configuration */
pChipCfg->pChipLevelCfg = (ixf6048_ChipLevelCfg_t *)
OS_CMD_ALLOC_MEM(sizeof(ixf6048_ChipLevelCfg_t));
/* Initialize the Channel Configurations */
for(ndx=0; ndx < MAX_NUM_CHANNELS; ndx++)
{
pChipCfg->pChanCfg[ndx] =
(ixf6048_ChanCfg_t *) OS_CMD_ALLOC_MEM(sizeof(ixf6048_ChanCfg_t));
memset(pChipCfg->pChanCfg[ndx], 0, sizeof(ixf6048_ChanCfg_t));
pChipCfg->pChanCfg[ndx]->pChanIfCfg =
(ixf6048_ChanIfCfg_t *) OS_CMD_ALLOC_MEM(sizeof(ixf6048_ChanIfCfg_t));
memset(pChipCfg->pChanCfg[ndx]->pChanIfCfg, 0, sizeof(ixf6048_ChanIfCfg_t));
pChipCfg->pChanCfg[ndx]->pOhtChanCfg =
(ixf6048_OhtChanCfg_t *) OS_CMD_ALLOC_MEM(sizeof(ixf6048_OhtChanCfg_t));
memset(pChipCfg->pChanCfg[ndx]->pOhtChanCfg, 0, sizeof(ixf6048_OhtChanCfg_t));
pChipCfg->pChanCfg[ndx]->pOhtChanCfg->RxRstCfg.pExpectedJ0String =
(uchar *) OS_CMD_ALLOC_MEM(sizeof(uchar) * 64);
memset(pChipCfg->pChanCfg[ndx]->pOhtChanCfg->RxRstCfg.pExpectedJ0String, 0, sizeof(uchar) * 64);
pChipCfg->pChanCfg[ndx]->pOhtChanCfg->RxHptCfg.pExpectedJ1String =
(uchar *) OS_CMD_ALLOC_MEM(sizeof(uchar) * 64);
memset(pChipCfg->pChanCfg[ndx]->pOhtChanCfg->RxHptCfg.pExpectedJ1String, 0, sizeof(uchar) * 64);
pChipCfg->pChanCfg[ndx]->pOhtChanCfg->TxRstCfg.pJ0String =
(uchar *) OS_CMD_ALLOC_MEM(sizeof(uchar) * 64);
memset(pChipCfg->pChanCfg[ndx]->pOhtChanCfg->TxRstCfg.pJ0String, 0, sizeof(uchar) * 64);
pChipCfg->pChanCfg[ndx]->pOhtChanCfg->TxHptCfg.pTxJ1String =
(uchar *) OS_CMD_ALLOC_MEM(sizeof(uchar) * 64);
memset(pChipCfg->pChanCfg[ndx]->pOhtChanCfg->TxHptCfg.pTxJ1String, 0, sizeof(uchar) * 64);
pChipCfg->pChanCfg[ndx]->pAtmChanCfg =
(ixf6048_AtmChanCfg_t *) OS_CMD_ALLOC_MEM(sizeof(ixf6048_AtmChanCfg_t));
memset(pChipCfg->pChanCfg[ndx]->pAtmChanCfg, 0, sizeof(ixf6048_AtmChanCfg_t));
pChipCfg->pChanCfg[ndx]->pPosChanCfg =
(ixf6048_PosChanCfg_t *) OS_CMD_ALLOC_MEM(sizeof(ixf6048_PosChanCfg_t));
memset(pChipCfg->pChanCfg[ndx]->pPosChanCfg, 0, sizeof(ixf6048_PosChanCfg_t));
}
/* Allocate memory for AlarmCfg */
pChipData->pAlarmCfg =
(ixf6048_AlarmCfg_t *) OS_CMD_ALLOC_MEM(sizeof(ixf6048_AlarmCfg_t));
memset(pChipData->pAlarmCfg, 0, sizeof(ixf6048_AlarmCfg_t));
/* Cast the void pointer */
pAlarmCfg = (ixf6048_AlarmCfg_t *) pChipData->pAlarmCfg;
/* Initialize the Channel Alarm Configurations */
for(ndx=0; ndx < MAX_NUM_CHANNELS; ndx++)
{
pAlarmCfg->pChanAlarmCfg[ndx] = (ixf6048_ChanAlarmCfg_t *)
OS_CMD_ALLOC_MEM(sizeof(ixf6048_ChanAlarmCfg_t));
memset(pAlarmCfg->pChanAlarmCfg[ndx], 0, sizeof(ixf6048_ChanAlarmCfg_t));
pAlarmCfg->pChanAlarmCfg[ndx]->pOhtChanAlarmCfg = (ixf6048_OhtChanAlarmCfg_t *)
OS_CMD_ALLOC_MEM(sizeof(ixf6048_OhtChanAlarmCfg_t));
memset(pAlarmCfg->pChanAlarmCfg[ndx]->pOhtChanAlarmCfg, 0, sizeof(ixf6048_OhtChanAlarmCfg_t));
pAlarmCfg->pChanAlarmCfg[ndx]->pUtopiaAlarmsCfg = (ixf6048_UtopiaAlarmsCfg_t *)
OS_CMD_ALLOC_MEM(sizeof(ixf6048_UtopiaAlarmsCfg_t));
memset(pAlarmCfg->pChanAlarmCfg[ndx]->pUtopiaAlarmsCfg, 0, sizeof(ixf6048_UtopiaAlarmsCfg_t));
pAlarmCfg->pChanAlarmCfg[ndx]->pAtmChanAlarmCfg = (ixf6048_AtmChanAlarmCfg_t *)
OS_CMD_ALLOC_MEM(sizeof(ixf6048_AtmChanAlarmCfg_t));
memset(pAlarmCfg->pChanAlarmCfg[ndx]->pAtmChanAlarmCfg, 0, sizeof(ixf6048_AtmChanAlarmCfg_t));
pAlarmCfg->pChanAlarmCfg[ndx]->pPosChanAlarmCfg = (ixf6048_PosChanAlarmCfg_t *)
OS_CMD_ALLOC_MEM(sizeof(ixf6048_PosChanAlarmCfg_t));
memset(pAlarmCfg->pChanAlarmCfg[ndx]->pPosChanAlarmCfg, 0, sizeof(ixf6048_PosChanAlarmCfg_t));
pAlarmCfg->pChanAlarmCfg[ndx]->pMiscAlarmsCfg = (ixf6048_MiscAlarmsCfg_t *)
OS_CMD_ALLOC_MEM(sizeof(ixf6048_MiscAlarmsCfg_t));
memset(pAlarmCfg->pChanAlarmCfg[ndx]->pMiscAlarmsCfg, 0, sizeof(ixf6048_MiscAlarmsCfg_t));
}
return bb_NO_ERROR;
}
/******************************************************************
* Function : Ixf6048DeAllocMemory
*-----------------------------------------------------------------
* Description : This routine frees the dynamically allocated memory
* within the "pChipData" structure
*-----------------------------------------------------------------
* Inputs : pChipData : A pointer to the chip data structure.
* Outputs : None.
*-----------------------------------------------------------------
* Returns : Status
*-----------------------------------------------------------------
* Access Globals : None.
*-----------------------------------------------------------------
* Comments : None.
******************************************************************/
bb_Error_e
Ixf6048DeAllocMemory(bb_ChipData_t *pChipData)
{
uint ndx;
ixf6048_ChipCfg_t* pChipCfg;
ixf6048_AlarmCfg_t* pAlarmCfg;
/* Deallocate memory for ChipCfg */
if (pChipData->pChipCfg)
{
/* Cast the void pointer */
pChipCfg = (ixf6048_ChipCfg_t *) pChipData->pChipCfg;
/* Cycle thru the channels */
for(ndx=0; ndx < MAX_NUM_CHANNELS; ndx++)
{
OS_CMD_DEALLOC_MEM(pChipCfg->pChanCfg[ndx]->pPosChanCfg);
OS_CMD_DEALLOC_MEM(pChipCfg->pChanCfg[ndx]->pAtmChanCfg);
OS_CMD_DEALLOC_MEM(pChipCfg->pChanCfg[ndx]->pOhtChanCfg->RxRstCfg.pExpectedJ0String);
OS_CMD_DEALLOC_MEM(pChipCfg->pChanCfg[ndx]->pOhtChanCfg->RxHptCfg.pExpectedJ1String);
OS_CMD_DEALLOC_MEM(pChipCfg->pChanCfg[ndx]->pOhtChanCfg->TxRstCfg.pJ0String);
OS_CMD_DEALLOC_MEM(pChipCfg->pChanCfg[ndx]->pOhtChanCfg->TxHptCfg.pTxJ1String);
OS_CMD_DEALLOC_MEM(pChipCfg->pChanCfg[ndx]->pOhtChanCfg);
OS_CMD_DEALLOC_MEM(pChipCfg->pChanCfg[ndx]->pChanIfCfg);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -