mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-10 18:47:22 +00:00
ID: 46 - ipmi_fwum needs some re-work
KfwumGetInfoFromFirmware() - code formatting, simplify
This commit is contained in:
parent
4e2ac7d097
commit
5bf68a4769
@ -1296,87 +1296,81 @@ KfwumGetTraceLog(struct ipmi_intf *intf)
|
|||||||
|
|
||||||
#define KWUM_GET_BYTE_AT_OFFSET(pBuffer,os) pBuffer[os]
|
#define KWUM_GET_BYTE_AT_OFFSET(pBuffer,os) pBuffer[os]
|
||||||
|
|
||||||
tKFWUM_Status KfwumGetInfoFromFirmware(unsigned char * pBuf,
|
tKFWUM_Status
|
||||||
unsigned long bufSize, tKFWUM_InFirmwareInfo * pInfo)
|
KfwumGetInfoFromFirmware(unsigned char *pBuf, unsigned long bufSize,
|
||||||
|
tKFWUM_InFirmwareInfo *pInfo)
|
||||||
{
|
{
|
||||||
tKFWUM_Status status = KFWUM_STATUS_ERROR;
|
unsigned long offset = 0;
|
||||||
|
if (bufSize < (IN_FIRMWARE_INFO_OFFSET_LOCATION + IN_FIRMWARE_INFO_SIZE)) {
|
||||||
if(bufSize >= (IN_FIRMWARE_INFO_OFFSET_LOCATION + IN_FIRMWARE_INFO_SIZE))
|
return KFWUM_STATUS_ERROR;
|
||||||
{
|
}
|
||||||
unsigned long offset = IN_FIRMWARE_INFO_OFFSET_LOCATION;
|
offset = IN_FIRMWARE_INFO_OFFSET_LOCATION;
|
||||||
|
|
||||||
/* Now, fill the structure with read informations */
|
/* Now, fill the structure with read informations */
|
||||||
pInfo->checksum = (unsigned short)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->checksum = (unsigned short)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + 0 + IN_FIRMWARE_INFO_OFFSET_CHECKSUM ) << 8;
|
offset + 0 + IN_FIRMWARE_INFO_OFFSET_CHECKSUM ) << 8;
|
||||||
|
|
||||||
pInfo->checksum|= (unsigned short)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->checksum|= (unsigned short)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + 1 + IN_FIRMWARE_INFO_OFFSET_CHECKSUM);
|
offset + 1 + IN_FIRMWARE_INFO_OFFSET_CHECKSUM);
|
||||||
|
|
||||||
|
pInfo->sumToRemoveFromChecksum = KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
pInfo->sumToRemoveFromChecksum=
|
|
||||||
KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_CHECKSUM);
|
offset + IN_FIRMWARE_INFO_OFFSET_CHECKSUM);
|
||||||
|
|
||||||
pInfo->sumToRemoveFromChecksum+=
|
pInfo->sumToRemoveFromChecksum+= KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
KWUM_GET_BYTE_AT_OFFSET(pBuf ,
|
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_CHECKSUM + 1);
|
offset + IN_FIRMWARE_INFO_OFFSET_CHECKSUM + 1);
|
||||||
|
|
||||||
pInfo->fileSize =
|
pInfo->fileSize = KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
KWUM_GET_BYTE_AT_OFFSET(pBuf ,
|
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_FILE_SIZE + 0) << 24;
|
offset + IN_FIRMWARE_INFO_OFFSET_FILE_SIZE + 0) << 24;
|
||||||
pInfo->fileSize |=
|
|
||||||
(unsigned long)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->fileSize|= (unsigned long)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_FILE_SIZE + 1) << 16;
|
offset + IN_FIRMWARE_INFO_OFFSET_FILE_SIZE + 1) << 16;
|
||||||
pInfo->fileSize |=
|
|
||||||
(unsigned long)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->fileSize|= (unsigned long)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_FILE_SIZE + 2) << 8;
|
offset + IN_FIRMWARE_INFO_OFFSET_FILE_SIZE + 2) << 8;
|
||||||
pInfo->fileSize |=
|
|
||||||
(unsigned long)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->fileSize|= (unsigned long)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_FILE_SIZE + 3);
|
offset + IN_FIRMWARE_INFO_OFFSET_FILE_SIZE + 3);
|
||||||
|
|
||||||
pInfo->boardId =
|
pInfo->boardId = KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_BOARD_ID + 0) << 8;
|
offset + IN_FIRMWARE_INFO_OFFSET_BOARD_ID + 0) << 8;
|
||||||
pInfo->boardId |=
|
|
||||||
KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->boardId|= KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_BOARD_ID + 1);
|
offset + IN_FIRMWARE_INFO_OFFSET_BOARD_ID + 1);
|
||||||
|
|
||||||
pInfo->deviceId =
|
pInfo->deviceId = KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_DEVICE_ID);
|
offset + IN_FIRMWARE_INFO_OFFSET_DEVICE_ID);
|
||||||
|
|
||||||
pInfo->tableVers =
|
pInfo->tableVers = KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_TABLE_VERSION);
|
offset + IN_FIRMWARE_INFO_OFFSET_TABLE_VERSION);
|
||||||
pInfo->implRev =
|
|
||||||
KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->implRev = KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_IMPLEMENT_REV);
|
offset + IN_FIRMWARE_INFO_OFFSET_IMPLEMENT_REV);
|
||||||
pInfo->versMajor =
|
|
||||||
(KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->versMajor = (KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset+IN_FIRMWARE_INFO_OFFSET_VERSION_MAJOR)) & 0x0f;
|
offset
|
||||||
pInfo->versMinor =
|
+ IN_FIRMWARE_INFO_OFFSET_VERSION_MAJOR)) & 0x0f;
|
||||||
(KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
|
||||||
offset+IN_FIRMWARE_INFO_OFFSET_VERSION_MINSUB)>>4) & 0x0f;
|
pInfo->versMinor = (KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
pInfo->versSubMinor =
|
offset
|
||||||
(KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
+ IN_FIRMWARE_INFO_OFFSET_VERSION_MINSUB) >> 4) & 0x0f;
|
||||||
|
|
||||||
|
pInfo->versSubMinor = (KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_VERSION_MINSUB)) & 0x0f;
|
offset + IN_FIRMWARE_INFO_OFFSET_VERSION_MINSUB)) & 0x0f;
|
||||||
pInfo->sdrRev =
|
|
||||||
KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->sdrRev = KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_SDR_REV);
|
offset + IN_FIRMWARE_INFO_OFFSET_SDR_REV);
|
||||||
pInfo->iana =
|
|
||||||
KWUM_GET_BYTE_AT_OFFSET(pBuf ,
|
pInfo->iana = KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_IANA2) << 16;
|
offset + IN_FIRMWARE_INFO_OFFSET_IANA2) << 16;
|
||||||
pInfo->iana |=
|
|
||||||
(unsigned long)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->iana|= (unsigned long)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_IANA1) << 8;
|
offset + IN_FIRMWARE_INFO_OFFSET_IANA1) << 8;
|
||||||
pInfo->iana |=
|
|
||||||
(unsigned long)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
pInfo->iana|= (unsigned long)KWUM_GET_BYTE_AT_OFFSET(pBuf,
|
||||||
offset + IN_FIRMWARE_INFO_OFFSET_IANA0);
|
offset + IN_FIRMWARE_INFO_OFFSET_IANA0);
|
||||||
|
|
||||||
KfwumFixTableVersionForOldFirmware(pInfo);
|
KfwumFixTableVersionForOldFirmware(pInfo);
|
||||||
|
return KFWUM_STATUS_OK;
|
||||||
status = KFWUM_STATUS_OK;
|
|
||||||
}
|
|
||||||
return(status);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user