void cHpiSubProviderIdr::GetEntries( std::deque<HpiEntry>& entries ) const { entries.clear(); SaErrorT rv; SaHpiEntryIdT id = SAHPI_FIRST_ENTRY, next_id; bool first = true; while( id != SAHPI_LAST_ENTRY ) { SaHpiIdrAreaHeaderT ahdr; rv = saHpiIdrAreaHeaderGet( m_ctx.session_id, m_ctx.resource_id, m_ctx.instrument_id, SAHPI_IDR_AREATYPE_UNSPECIFIED, id, &next_id, &ahdr ); if ( first && ( rv == SA_ERR_HPI_NOT_PRESENT ) ) { break; } if ( rv != SA_OK ) { return; } std::wstring name; MakeNameForIdrArea( ahdr, name ); entries.push_back( HpiEntry( eHpiEntryIdrArea, ahdr.AreaId, name ) ); first = false; id = next_id; } }
int processInventoryRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiInventoryRecT * inventoryRec) { SaErrorT status; int retval = SAF_TEST_NOTSUPPORT; SaHpiEntryIdT AreaId, NextAreaId; SaHpiIdrAreaHeaderT Header; NextAreaId = SAHPI_FIRST_ENTRY; while ((retval == SAF_TEST_NOTSUPPORT) && (NextAreaId != SAHPI_LAST_ENTRY)) { AreaId = NextAreaId; status = saHpiIdrAreaHeaderGet(sessionId, resourceId, inventoryRec->IdrId, SAHPI_IDR_AREATYPE_UNSPECIFIED, AreaId, &NextAreaId, &Header); if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrAreaHeaderGet, SA_OK, status); } else { retval = deleteField(sessionId, resourceId, inventoryRec->IdrId, Header.AreaId); } } return retval; }
int Test_Resource(SaHpiSessionIdT sessionId, SaHpiRptEntryT report, callback2_t func) { SaErrorT status; int retval = SAF_TEST_NOTSUPPORT; SaHpiEntryIdT NextAreaId; SaHpiIdrAreaHeaderT Header; if (hasInventoryCapability(&report)) { // // Call saHpiIdrAreaHeaderGet() on an Area which does not exist. // status = saHpiIdrAreaHeaderGet(sessionId, report.ResourceId, SAHPI_DEFAULT_INVENTORY_ID, SAHPI_IDR_AREATYPE_UNSPECIFIED, INVALID_AREA_ID, &NextAreaId, &Header); if (status == SA_ERR_HPI_NOT_PRESENT) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiIdrAreaHeaderGet, SA_ERR_HPI_NOT_PRESENT, status); } } return retval; }
int Test_Resource(SaHpiSessionIdT sessionId, SaHpiRptEntryT report, callback2_t func) { SaErrorT status; int retval = SAF_TEST_NOTSUPPORT; SaHpiEntryIdT NextAreaId; if (hasInventoryCapability(&report)) { // // Call saHpiIdrAreaHeaderGet() with the Header pointer // set to NULL. // status = saHpiIdrAreaHeaderGet(sessionId, report.ResourceId, SAHPI_DEFAULT_INVENTORY_ID, SAHPI_IDR_AREATYPE_UNSPECIFIED, SAHPI_FIRST_ENTRY, &NextAreaId, NULL); if (status == SA_ERR_HPI_INVALID_PARAMS) { retval = SAF_TEST_PASS; } else if (status == SA_ERR_HPI_NOT_PRESENT) { retval = SAF_TEST_PASS; // Should this be NOTSUPPORT? } else { retval = SAF_TEST_FAIL; e_print(saHpiIdrAreaHeaderGet, SA_ERR_HPI_NOT_PRESENT || SA_ERR_HPI_INVALID_PARAMS, status); } } return retval; }
int processInventoryRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiInventoryRecT * inventoryRec) { SaErrorT status; int retval; SaHpiEntryIdT NextAreaId; SaHpiIdrAreaHeaderT Header; status = saHpiIdrAreaHeaderGet(sessionId, resourceId, inventoryRec->IdrId, SAHPI_IDR_AREATYPE_UNSPECIFIED, SAHPI_FIRST_ENTRY, &NextAreaId, &Header); if (status == SA_ERR_HPI_NOT_PRESENT) { retval = SAF_TEST_NOTSUPPORT; } else if (status == SA_OK) { retval = Test_Field(sessionId, resourceId, inventoryRec->IdrId, Header.AreaId); } else { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrAreaHeaderGet, SA_ERR_HPI_NOT_PRESENT, status); } return retval; }
int main(int argc, char **argv) { SaHpiSessionIdT sid = 0; SaHpiIdrAreaHeaderT header; SaHpiEntryIdT next; SaErrorT rc = SA_OK; rc = saHpiSessionOpen(SAHPI_UNSPECIFIED_DOMAIN_ID, &sid, NULL); if (rc != SA_OK) { err("Failed to open session"); return -1; } rc = saHpiDiscover(sid); if (rc != SA_OK) { err("Failed to run discover"); return -1; } /* get the resource id of the chassis */ SaHpiResourceIdT resid = get_resid(sid, SAHPI_ENT_SYSTEM_CHASSIS); if (resid == 0) { err("Couldn't find the resource id of the chassis"); return -1; } rc = saHpiIdrAreaHeaderGet(sid, resid, 1, SAHPI_IDR_AREATYPE_CHASSIS_INFO, SAHPI_FIRST_ENTRY, &next, &header); if (rc != SA_OK) { err("Couldn't get first area header"); err("Error %s",oh_lookup_error(rc)); return -1; } rc = saHpiIdrAreaHeaderGet(sid, resid, 1, SAHPI_IDR_AREATYPE_CHASSIS_INFO, next, &next, &header); if (rc == SA_OK) { err("Invalid area header returned"); return -1; } return 0; }
int processInventoryRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiInventoryRecT * inventoryRec) { SaErrorT status; int retval; SaHpiEntryIdT AreaId, NextAreaId; SaHpiIdrAreaHeaderT Header; SaHpiIdrInfoT Info; status = saHpiIdrInfoGet(sessionId, resourceId, inventoryRec->IdrId, &Info); if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrInfoGet, SA_OK, status); } else if (Info.ReadOnly) { retval = SAF_TEST_NOTSUPPORT; } else { retval = SAF_TEST_NOTSUPPORT; NextAreaId = SAHPI_FIRST_ENTRY; while ((retval == SAF_TEST_NOTSUPPORT) && (NextAreaId != SAHPI_LAST_ENTRY)) { AreaId = NextAreaId; status = saHpiIdrAreaHeaderGet(sessionId, resourceId, inventoryRec->IdrId, SAHPI_IDR_AREATYPE_UNSPECIFIED, AreaId, &NextAreaId, &Header); if (status == SA_ERR_HPI_NOT_PRESENT) { // do nothing } else if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrAreaHeaderGet, SA_OK, status); } else if (!Header.ReadOnly) { retval = TestField(sessionId, resourceId, inventoryRec->IdrId, AreaId); } } } return retval; }
int main(int argc, char **argv) { SaHpiSessionIdT sid = 0; SaHpiIdrAreaHeaderT header; SaHpiEntryIdT next; SaErrorT rc = SA_OK; rc = saHpiSessionOpen(SAHPI_UNSPECIFIED_DOMAIN_ID, &sid, NULL); if (rc != SA_OK) { dbg("Failed to open session"); return -1; } rc = saHpiDiscover(sid); if (rc != SA_OK) { dbg("Failed to run discover"); return -1; } rc = saHpiIdrAreaHeaderGet(sid, 1, 1, SAHPI_IDR_AREATYPE_CHASSIS_INFO, SAHPI_FIRST_ENTRY, &next, &header); if (rc != SA_OK) { dbg("Couldn't get first area header"); dbg("Error %s",oh_lookup_error(rc)); return -1; } rc = saHpiIdrAreaHeaderGet(sid, 1, 1, SAHPI_IDR_AREATYPE_CHASSIS_INFO, next, &next, &header); if (rc == SA_OK) { dbg("Invalid area header returned"); return -1; } return 0; }
int run_test(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiIdrIdT idrId, SaHpiIdrAreaTypeT areaType, SaHpiEntryIdT areaId) { SaErrorT status; int retval = SAF_TEST_PASS; SaHpiEntryIdT NextAreaId; SaHpiEntryIdT CurAreaId; SaHpiIdrAreaHeaderT Header; SaHpiBoolT found = SAHPI_FALSE; NextAreaId = SAHPI_FIRST_ENTRY; while (NextAreaId != SAHPI_LAST_ENTRY) { CurAreaId = NextAreaId; status = saHpiIdrAreaHeaderGet(sessionId, resourceId, idrId, areaType, CurAreaId, &NextAreaId, &Header); if (status != SA_OK) { retval = SAF_TEST_FAIL; e_print(saHpiIdrAreaHeaderGet, SA_OK, status); break; } else if (Header.AreaId == areaId) { found = SAHPI_TRUE; if (NextAreaId != SAHPI_LAST_ENTRY) { m_print("Added area was not found at the end."); break; } } } if (!found) { retval = SAF_TEST_FAIL; m_print("Did not find the area that was added!"); } return retval; }
int processInventoryRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiInventoryRecT * inventoryRec) { SaErrorT status; int retval; int response; SaHpiEntryIdT AreaId, NextAreaId; SaHpiIdrAreaHeaderT Header; SaHpiIdrIdT idrId = inventoryRec->IdrId; status = saHpiIdrAreaHeaderGet(sessionId, resourceId, idrId, SAHPI_IDR_AREATYPE_UNSPECIFIED, SAHPI_FIRST_ENTRY, &NextAreaId, &Header); if (status == SA_OK) { retval = runTest(sessionId, resourceId, idrId, Header.AreaId); } else if (status == SA_ERR_HPI_NOT_PRESENT) { response = addArea(sessionId, resourceId, idrId, &AreaId); if (response != SAF_TEST_PASS) { retval = response; } else { retval = runTest(sessionId, resourceId, idrId, AreaId); deleteArea(sessionId, resourceId, idrId, AreaId); } } else { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrAreaHeaderGet, SA_OK, status); } return retval; }
int processInventoryRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiInventoryRecT * inventoryRec) { SaErrorT status; int retval = SAF_TEST_UNKNOWN; SaHpiEntryIdT NextAreaId; SaHpiIdrAreaHeaderT Header; status = saHpiIdrAreaHeaderGet(sessionId, resourceId, inventoryRec->IdrId, SAHPI_IDR_AREATYPE_UNSPECIFIED, SAHPI_FIRST_ENTRY, &NextAreaId, &Header); if ((status == SA_OK) || (status == SA_ERR_HPI_NOT_PRESENT)) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiIdrAreaHeaderGet, SA_OK || SA_ERR_HPI_NOT_PRESENT, status); } return retval; }
int walkInventory(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid, SaHpiIdrInfoT *idrInfo) { SaErrorT rv = SA_OK, rvField = SA_OK; SaHpiUint32T numAreas; SaHpiUint32T countAreas = 0; SaHpiUint32T countFields = 0; SaHpiEntryIdT areaId; SaHpiEntryIdT nextareaId; SaHpiIdrAreaTypeT areaType; SaHpiIdrAreaHeaderT areaHeader; SaHpiEntryIdT fieldId; SaHpiEntryIdT nextFieldId; SaHpiIdrFieldTypeT fieldType; SaHpiIdrFieldT thisField; numAreas = idrInfo->NumAreas; areaType = SAHPI_IDR_AREATYPE_UNSPECIFIED; areaId = SAHPI_FIRST_ENTRY; foundasset = 0; while ((rv == SA_OK) && (areaId != SAHPI_LAST_ENTRY)) { rv = saHpiIdrAreaHeaderGet(sessionid, resourceid, idrInfo->IdrId, areaType, areaId, &nextareaId, &areaHeader); if (rv == SA_OK) { countAreas++; print_idrareaheader(&areaHeader, 8); fieldType = SAHPI_IDR_FIELDTYPE_UNSPECIFIED; fieldId = SAHPI_FIRST_ENTRY; countFields = 0; while ((rvField == SA_OK) && (fieldId != SAHPI_LAST_ENTRY)) { rvField = saHpiIdrFieldGet( sessionid, resourceid, idrInfo->IdrId, areaHeader.AreaId, fieldType, fieldId, &nextFieldId, &thisField); if (fdebug) printf("saHpiIdrFieldGet[%x] rv = %d type=%d\n", idrInfo->IdrId,rvField, thisField.Type); if (rvField == SA_OK) { countFields++; print_idrfield(&thisField, 12); if (thisField.Type == SAHPI_IDR_FIELDTYPE_ASSET_TAG) { atag.rid = resourceid; atag.idrid = idrInfo->IdrId; atag.areaid = areaHeader.AreaId; atag.fieldid = fieldId; foundasset = 1; } } fieldId = nextFieldId; } /*while fields*/ if ( countFields != areaHeader.NumFields) printf("Area Header error: areaHeader.NumFields %d, countFields %d\n", areaHeader.NumFields, countFields); } else { printf("saHpiIdrAreaHeaderGet error %d\n",rv); } areaId = nextareaId; } /*while areas*/ if ((rv == SA_OK) && (countAreas != numAreas)) printf("idrInfo error! idrInfo.NumAreas = %d; countAreas = %d\n", numAreas, countAreas); if (countFields > 0) rv = 0; return(rv); } /*end walkInventory*/
/* * This routine walks the complete inventory idr for this resource. * It does not look for a particular IdrAreaType or IdrFieldType. * Particular type tests are coverred in respecting routines. * **/ static SaErrorT walkInventory( SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid, SaHpiIdrInfoT *idrInfo) { SaErrorT rv = SA_OK, rvField = SA_OK; SaHpiUint32T numAreas; SaHpiUint32T countAreas = 0; SaHpiUint32T countFields = 0; SaHpiEntryIdT areaId; SaHpiEntryIdT nextareaId; SaHpiIdrAreaTypeT areaType; SaHpiIdrAreaHeaderT areaHeader; SaHpiEntryIdT fieldId; SaHpiEntryIdT nextFieldId; SaHpiIdrFieldTypeT fieldType; SaHpiIdrFieldT thisField; numAreas = idrInfo->NumAreas; areaType = SAHPI_IDR_AREATYPE_UNSPECIFIED; areaId = SAHPI_FIRST_ENTRY; do { rv = saHpiIdrAreaHeaderGet(sessionid, resourceid, idrInfo->IdrId, areaType, areaId, &nextareaId, &areaHeader); if (rv == SA_OK) { countAreas++; oh_print_idrareaheader(&areaHeader, 8); fieldType = SAHPI_IDR_FIELDTYPE_UNSPECIFIED; fieldId = SAHPI_FIRST_ENTRY; do { rvField = saHpiIdrFieldGet( sessionid, resourceid, idrInfo->IdrId, areaHeader.AreaId, fieldType, fieldId, &nextFieldId, &thisField); if (rvField == SA_OK) { countFields++; oh_print_idrfield(&thisField, 12); } if (fdebug) printf("saHpiIdrFieldGet error %s\n",oh_lookup_error(rvField)); fieldId = nextFieldId; } while ((rvField == SA_OK) && (fieldId != SAHPI_LAST_ENTRY)); if ( countFields != areaHeader.NumFields) printf("Area Header error! areaHeader.NumFields %d, countFields %d\n", areaHeader.NumFields, countFields); } else { printf("saHpiIdrAreaHeaderGet error %s\n",oh_lookup_error(rv)); } areaId = nextareaId; } while ((rv == SA_OK) && (areaId != SAHPI_LAST_ENTRY)); if ((rv == SA_OK) && (countAreas != numAreas)) printf("idrInfo error! idrInfo.NumAreas = %d; countAreas = %d\n", numAreas, countAreas); return(rv); }
SaErrorT show_inventory(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid, SaHpiIdrIdT IdrId, hpi_ui_print_cb_t proc) { SaHpiIdrInfoT info; SaErrorT rv; SaHpiEntryIdT entryid, nextentryid; SaHpiEntryIdT fentryid, nextfentryid; SaHpiIdrAreaHeaderT hdr; SaHpiIdrFieldT field; char buf[SHOW_BUF_SZ]; char *str; int num; rv = saHpiIdrInfoGet(sessionid, resourceid, IdrId, &info); if (rv != SA_OK) { snprintf(buf, SHOW_BUF_SZ, "ERROR!!! saHpiIdrInfoGet: %s\n", oh_lookup_error(rv)); proc(buf); return(-1); }; num = info.NumAreas; snprintf(buf, SHOW_BUF_SZ, "Inventory: %d Update count: %d Read only: %d Areas: %d\n", info.IdrId, info.UpdateCount, info.ReadOnly, num); if (proc(buf) != 0) return(SA_OK); entryid = SAHPI_FIRST_ENTRY; while ((entryid != SAHPI_LAST_ENTRY) && (num > 0)) { rv = saHpiIdrAreaHeaderGet(sessionid, resourceid, IdrId, SAHPI_IDR_AREATYPE_UNSPECIFIED, entryid, &nextentryid, &hdr); if (rv != SA_OK) { proc("ERROR!!! saHpiIdrAreaHeaderGet\n"); return(-1); }; str = oh_lookup_idrareatype(hdr.Type); if (str == NULL) str = "Unknown"; snprintf(buf, SHOW_BUF_SZ, " Area: %d Type: %s Read Only: %d Fields: %d\n", hdr.AreaId, str, hdr.ReadOnly, hdr.NumFields); if (proc(buf) != 0) return(SA_OK); fentryid = SAHPI_FIRST_ENTRY; entryid = nextentryid; while ((fentryid != SAHPI_LAST_ENTRY) && (hdr.NumFields > 0)) { rv = saHpiIdrFieldGet(sessionid, resourceid, IdrId, hdr.AreaId, SAHPI_IDR_FIELDTYPE_UNSPECIFIED, fentryid, &nextfentryid, &field); if (rv != SA_OK) { proc("ERROR!!! saHpiIdrFieldGet\n"); return(-1); }; str = oh_lookup_idrfieldtype(field.Type); if (str == NULL) str = "Unknown"; snprintf(buf, SHOW_BUF_SZ, " Field: %d Type: %s Read Only: %d (", field.FieldId, str, field.ReadOnly); if (proc(buf) != 0) return(SA_OK); if (print_text_buffer(NULL, &(field.Field), NULL, proc) != 0) return(SA_OK); if (proc(")\n") != 0) return(SA_OK); fentryid = nextfentryid; } }; return(SA_OK); }
static ret_code_t sa_show_inv(SaHpiResourceIdT resourceid) { SaErrorT rv = SA_OK, rva, rvf; SaHpiEntryIdT rdrentryid; SaHpiEntryIdT nextrdrentryid; SaHpiRdrT rdr; SaHpiIdrIdT idrid; SaHpiIdrInfoT idrInfo; SaHpiEntryIdT areaId; SaHpiEntryIdT nextareaId; SaHpiIdrAreaTypeT areaType; int numAreas; SaHpiEntryIdT fieldId; SaHpiEntryIdT nextFieldId; SaHpiIdrFieldTypeT fieldType; SaHpiIdrFieldT thisField; SaHpiIdrAreaHeaderT areaHeader; rdrentryid = SAHPI_FIRST_ENTRY; while (rdrentryid != SAHPI_LAST_ENTRY) { rv = saHpiRdrGet(Domain->sessionId, resourceid, rdrentryid, &nextrdrentryid, &rdr); if (rv != SA_OK) { printf("saHpiRdrGet error %s\n", oh_lookup_error(rv)); return HPI_SHELL_CMD_ERROR; } if (rdr.RdrType != SAHPI_INVENTORY_RDR) { rdrentryid = nextrdrentryid; continue; }; idrid = rdr.RdrTypeUnion.InventoryRec.IdrId; rv = saHpiIdrInfoGet(Domain->sessionId, resourceid, idrid, &idrInfo); if (rv != SA_OK) { printf("saHpiIdrInfoGet error %s\n", oh_lookup_error(rv)); return HPI_SHELL_CMD_ERROR; } numAreas = idrInfo.NumAreas; areaType = SAHPI_IDR_AREATYPE_UNSPECIFIED; areaId = SAHPI_FIRST_ENTRY; while (areaId != SAHPI_LAST_ENTRY) { rva = saHpiIdrAreaHeaderGet(Domain->sessionId, resourceid, idrInfo.IdrId, areaType, areaId, &nextareaId, &areaHeader); if (rva != SA_OK) { printf("saHpiIdrAreaHeaderGet error %s\n", oh_lookup_error(rva)); break; } show_inv_area_header(&areaHeader, 2, ui_print); fieldType = SAHPI_IDR_FIELDTYPE_UNSPECIFIED; fieldId = SAHPI_FIRST_ENTRY; while (fieldId != SAHPI_LAST_ENTRY) { rvf = saHpiIdrFieldGet(Domain->sessionId, resourceid, idrInfo.IdrId, areaHeader.AreaId, fieldType, fieldId, &nextFieldId, &thisField); if (rvf != SA_OK) { printf("saHpiIdrFieldGet error %s\n", oh_lookup_error(rvf)); break; } show_inv_field(&thisField, 4, ui_print); fieldId = nextFieldId; } areaId = nextareaId; } rdrentryid = nextrdrentryid; } return HPI_SHELL_OK; }
int main(int argc, char **argv) { /* ************************ * Local variables * ***********************/ int testfail = 0; SaErrorT err; SaErrorT expected_err; SaHpiRptEntryT rptentry; SaHpiRdrT rdr; SaHpiResourceIdT id = 0; SaHpiSessionIdT sessionid; SaHpiIdrIdT idrId= 0; SaHpiEntryIdT areaId = 0; /* SaHpiIdrAreaTypeT areatype; */ SaHpiEntryIdT nextAreaId; SaHpiIdrAreaHeaderT header; SaHpiEntryIdT entryid; SaHpiEntryIdT nextentryid; SaHpiBoolT foundControl; /* ************************************* * Find a resource with inventory capability * ************************************* */ err = tsetup(&sessionid); if (err != SA_OK) { printf("Error! Can not open session for test environment\n"); printf(" File=%s, Line=%d\n", __FILE__, __LINE__); return -1; } err = tfind_resource(&sessionid, SAHPI_CAPABILITY_INVENTORY_DATA, SAHPI_FIRST_ENTRY, &rptentry, SAHPI_TRUE); if (err != SA_OK) { printf("Can not find an Inventory resource for test environment\n"); printf(" File=%s, Line=%d\n", __FILE__, __LINE__); err = tcleanup(&sessionid); return SA_OK; } id = rptentry.ResourceId; /************************** * Test: find an Inventory RDR **************************/ entryid = SAHPI_FIRST_ENTRY; foundControl = SAHPI_FALSE; do { err = saHpiRdrGet(sessionid,id,entryid,&nextentryid, &rdr); if (err == SA_OK) { if (rdr.RdrType == SAHPI_INVENTORY_RDR) { foundControl = SAHPI_TRUE; break; } entryid = nextentryid; } } while ((err == SA_OK) && (entryid != SAHPI_LAST_ENTRY)) ; if (!foundControl) { dbg("Did not find desired resource for test\n"); return(SA_OK); } else { idrId = rdr.RdrTypeUnion.InventoryRec.IdrId; } /************************** * Test: Invalid IdrId **************************/ expected_err = SA_ERR_HPI_NOT_PRESENT; err = saHpiIdrAreaHeaderGet(sessionid , id, 5000, SAHPI_IDR_AREATYPE_UNSPECIFIED, areaId, &nextAreaId, &header); checkstatus(err, expected_err, testfail); /************************** * Test: Invalid AreaType **************************/ expected_err = SA_OK; err = saHpiIdrAreaHeaderGet(sessionid , id, idrId, SAHPI_IDR_AREATYPE_UNSPECIFIED, areaId, &nextAreaId, &header); checkstatus(err, expected_err, testfail); /************************** * Test: Normal code path **************************/ expected_err = SA_OK; err = saHpiIdrAreaHeaderGet(sessionid , id, idrId, SAHPI_IDR_AREATYPE_UNSPECIFIED, SAHPI_FIRST_ENTRY, &nextAreaId, &header); checkstatus(err, expected_err, testfail); /**************************&* * Cleanup after all tests ***************************/ err = tcleanup(&sessionid); return testfail; }