ID: 46 - ipmi_fwum needs some re-work

KfwumGetStatus() - formatting, simplify, documentation
This commit is contained in:
Zdenek Styblik 2013-10-26 19:12:44 +00:00
parent 49879b387c
commit 043c42160e

View File

@ -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