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,72 +726,66 @@ 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 */ /* Retreive the number of bank */
status = KfwumGetInfo(intf, 0, &numBank); status = KfwumGetInfo(intf, 0, &numBank);
for(counter = 0;
for(
counter = 0;
(counter < numBank) && (status == KFWUM_STATUS_OK); (counter < numBank) && (status == KFWUM_STATUS_OK);
counter ++ counter ++) {
)
{
/* Retreive the status of each bank */ /* Retreive the status of each bank */
memset(&req, 0, sizeof(req)); memset(&req, 0, sizeof(req));
req.msg.netfn = IPMI_NETFN_FIRMWARE; req.msg.netfn = IPMI_NETFN_FIRMWARE;
req.msg.cmd = KFWUM_CMD_ID_GET_FIRMWARE_STATUS; req.msg.cmd = KFWUM_CMD_ID_GET_FIRMWARE_STATUS;
req.msg.data = &counter; req.msg.data = &counter;
req.msg.data_len = 1; req.msg.data_len = 1;
rsp = intf->sendrecv(intf, &req); rsp = intf->sendrecv(intf, &req);
if (rsp == NULL) {
if (!rsp) lprintf(LOG_ERR,
{ "Error in FWUM Firmware Get Status Command.");
printf("Error in FWUM Firmware Get Status Command\n");
status = KFWUM_STATUS_ERROR; status = KFWUM_STATUS_ERROR;
} break;
else if (rsp->ccode) } else if (rsp->ccode) {
{ lprintf(LOG_ERR,
printf("FWUM Firmware Get Status returned %x\n", rsp->ccode); "FWUM Firmware Get Status returned %x",
rsp->ccode);
status = KFWUM_STATUS_ERROR; status = KFWUM_STATUS_ERROR;
break;
} }
if(status == KFWUM_STATUS_OK)
{
pGetStatus = (struct KfwumGetStatusResp *) rsp->data; pGetStatus = (struct KfwumGetStatusResp *) rsp->data;
printf("\nBank State %d : %s\n", counter, val2str( printf("\nBank State %d : %s\n",
pGetStatus->bankState, bankStateValS)); counter,
if(pGetStatus->bankState) val2str(pGetStatus->bankState, bankStateValS));
{ if (!pGetStatus->bankState) {
unsigned long firmLength; continue;
}
firmLength = pGetStatus->firmLengthMSB; firmLength = pGetStatus->firmLengthMSB;
firmLength = firmLength << 8; firmLength = firmLength << 8;
firmLength |= pGetStatus->firmLengthMid; firmLength |= pGetStatus->firmLengthMid;
firmLength = firmLength << 8; firmLength = firmLength << 8;
firmLength |= pGetStatus->firmLengthLSB; firmLength |= pGetStatus->firmLengthLSB;
printf("Firmware Length : %ld bytes\n",
printf("Firmware Length : %ld bytes\n", firmLength); firmLength);
printf("Firmware Revision : %u.%u%u SDR %u\n", printf("Firmware Revision : %u.%u%u SDR %u\n",
pGetStatus->firmRev1, pGetStatus->firmRev2 >> 4, pGetStatus->firmRev1,
pGetStatus->firmRev2 & 0x0f, pGetStatus->firmRev3); pGetStatus->firmRev2 >> 4,
} pGetStatus->firmRev2 & 0x0f,
} pGetStatus->firmRev3);
} }
printf("\n"); printf("\n");
return status; return status;