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
KfwumGetStatus() - formatting, simplify, documentation
This commit is contained in:
parent
49879b387c
commit
043c42160e
@ -726,75 +726,69 @@ const struct valstr bankStateValS[] = {
|
|||||||
|
|
||||||
/* KfwumGetStatus - Get (and prints) FWUM banks information
|
/* KfwumGetStatus - Get (and prints) FWUM banks information
|
||||||
*
|
*
|
||||||
* * intf : IPMI interface
|
* *intf : IPMI interface
|
||||||
|
*
|
||||||
|
* returns KFWUM_STATUS_OK on success, otherwise KFWUM_STATUS_ERROR
|
||||||
*/
|
*/
|
||||||
static tKFWUM_Status KfwumGetStatus(struct ipmi_intf * intf)
|
static tKFWUM_Status
|
||||||
|
KfwumGetStatus(struct ipmi_intf * intf)
|
||||||
{
|
{
|
||||||
tKFWUM_Status status = KFWUM_STATUS_OK;
|
tKFWUM_Status status = KFWUM_STATUS_OK;
|
||||||
struct ipmi_rs * rsp;
|
struct ipmi_rs *rsp;
|
||||||
struct ipmi_rq req;
|
struct ipmi_rq req;
|
||||||
struct KfwumGetStatusResp *pGetStatus;
|
struct KfwumGetStatusResp *pGetStatus;
|
||||||
unsigned char numBank;
|
unsigned char numBank;
|
||||||
unsigned char counter;
|
unsigned char counter;
|
||||||
|
unsigned long firmLength;
|
||||||
if(verbose)
|
if (verbose) {
|
||||||
{
|
printf(" Getting Status!\n");
|
||||||
printf(" Getting Status!\n");
|
}
|
||||||
}
|
/* Retreive the number of bank */
|
||||||
|
status = KfwumGetInfo(intf, 0, &numBank);
|
||||||
/* Retreive the number of bank */
|
for(counter = 0;
|
||||||
status = KfwumGetInfo(intf, 0, &numBank);
|
(counter < numBank) && (status == KFWUM_STATUS_OK);
|
||||||
|
counter ++) {
|
||||||
for(
|
/* Retreive the status of each bank */
|
||||||
counter = 0;
|
memset(&req, 0, sizeof(req));
|
||||||
(counter < numBank) && (status == KFWUM_STATUS_OK);
|
req.msg.netfn = IPMI_NETFN_FIRMWARE;
|
||||||
counter ++
|
req.msg.cmd = KFWUM_CMD_ID_GET_FIRMWARE_STATUS;
|
||||||
)
|
req.msg.data = &counter;
|
||||||
{
|
req.msg.data_len = 1;
|
||||||
/* Retreive the status of each bank */
|
rsp = intf->sendrecv(intf, &req);
|
||||||
memset(&req, 0, sizeof(req));
|
if (rsp == NULL) {
|
||||||
req.msg.netfn = IPMI_NETFN_FIRMWARE;
|
lprintf(LOG_ERR,
|
||||||
req.msg.cmd = KFWUM_CMD_ID_GET_FIRMWARE_STATUS;
|
"Error in FWUM Firmware Get Status Command.");
|
||||||
req.msg.data = &counter;
|
status = KFWUM_STATUS_ERROR;
|
||||||
req.msg.data_len = 1;
|
break;
|
||||||
|
} else if (rsp->ccode) {
|
||||||
rsp = intf->sendrecv(intf, &req);
|
lprintf(LOG_ERR,
|
||||||
|
"FWUM Firmware Get Status returned %x",
|
||||||
if (!rsp)
|
rsp->ccode);
|
||||||
{
|
status = KFWUM_STATUS_ERROR;
|
||||||
printf("Error in FWUM Firmware Get Status Command\n");
|
break;
|
||||||
status = KFWUM_STATUS_ERROR;
|
}
|
||||||
}
|
pGetStatus = (struct KfwumGetStatusResp *) rsp->data;
|
||||||
else if (rsp->ccode)
|
printf("\nBank State %d : %s\n",
|
||||||
{
|
counter,
|
||||||
printf("FWUM Firmware Get Status returned %x\n", rsp->ccode);
|
val2str(pGetStatus->bankState, bankStateValS));
|
||||||
status = KFWUM_STATUS_ERROR;
|
if (!pGetStatus->bankState) {
|
||||||
}
|
continue;
|
||||||
|
}
|
||||||
|
firmLength = pGetStatus->firmLengthMSB;
|
||||||
if(status == KFWUM_STATUS_OK)
|
firmLength = firmLength << 8;
|
||||||
{
|
firmLength |= pGetStatus->firmLengthMid;
|
||||||
pGetStatus = (struct KfwumGetStatusResp *) rsp->data;
|
firmLength = firmLength << 8;
|
||||||
printf("\nBank State %d : %s\n", counter, val2str(
|
firmLength |= pGetStatus->firmLengthLSB;
|
||||||
pGetStatus->bankState, bankStateValS));
|
printf("Firmware Length : %ld bytes\n",
|
||||||
if(pGetStatus->bankState)
|
firmLength);
|
||||||
{
|
printf("Firmware Revision : %u.%u%u SDR %u\n",
|
||||||
unsigned long firmLength;
|
pGetStatus->firmRev1,
|
||||||
firmLength = pGetStatus->firmLengthMSB;
|
pGetStatus->firmRev2 >> 4,
|
||||||
firmLength = firmLength << 8;
|
pGetStatus->firmRev2 & 0x0f,
|
||||||
firmLength |= pGetStatus->firmLengthMid;
|
pGetStatus->firmRev3);
|
||||||
firmLength = firmLength << 8;
|
}
|
||||||
firmLength |= pGetStatus->firmLengthLSB;
|
printf("\n");
|
||||||
|
return status;
|
||||||
printf("Firmware Length : %ld bytes\n", firmLength);
|
|
||||||
printf("Firmware Revision : %u.%u%u SDR %u\n",
|
|
||||||
pGetStatus->firmRev1, pGetStatus->firmRev2 >> 4,
|
|
||||||
pGetStatus->firmRev2 & 0x0f, pGetStatus->firmRev3);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
return status;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_PRAGMA_PACK
|
#ifdef HAVE_PRAGMA_PACK
|
||||||
|
Loading…
x
Reference in New Issue
Block a user