int Test_Field(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiIdrIdT IdrId, SaHpiEntryIdT AreaId) { SaErrorT status; int retval; SaHpiEntryIdT NextFieldId; SaHpiIdrFieldT Field; // Call the routine with the FieldType set to // SAHPI_IDR_FIELDTYPE_UNSPECIFIED, and the field specified // by the FieldId parameter does not exist in the IDR Area. status = saHpiIdrFieldGet(sessionId, resourceId, IdrId, AreaId, SAHPI_IDR_FIELDTYPE_UNSPECIFIED, INVALID_FIELD_ID, &NextFieldId, &Field); if (status == SA_ERR_HPI_NOT_PRESENT) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiIdrFieldGet, SA_ERR_HPI_NOT_PRESENT, status); } return retval; }
int main(int argc, char **argv) { SaHpiSessionIdT sid = 0; SaHpiIdrFieldT field; 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 = saHpiIdrFieldGet(sid, resid, 1, 1, SAHPI_IDR_FIELDTYPE_MANUFACTURER, SAHPI_FIRST_ENTRY, &next, &field); if (rc != SA_OK) { err("Couldn't get field"); err("Error %s",oh_lookup_error(rc)); return -1; } return 0; }
int Test_Field(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiIdrIdT IdrId, SaHpiEntryIdT AreaId) { SaErrorT status; int retval = SAF_TEST_UNKNOWN; SaHpiEntryIdT NextFieldId; SaHpiIdrFieldT Field; SaHpiIdrAreaTypeT areaType; status = saHpiIdrFieldGet(sessionId, resourceId, IdrId, AreaId, SAHPI_IDR_FIELDTYPE_UNSPECIFIED, SAHPI_FIRST_ENTRY, &NextFieldId, &Field); if (status == SA_ERR_HPI_NOT_PRESENT) { retval = SAF_TEST_NOTSUPPORT; } else if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrFieldGet, SA_OK, status); } else { if (Field.Type == SAHPI_IDR_FIELDTYPE_CUSTOM) { areaType = SAHPI_IDR_FIELDTYPE_CHASSIS_TYPE; } else { areaType = SAHPI_IDR_FIELDTYPE_CUSTOM; } retval = TestCase_Field(sessionId, resourceId, IdrId, AreaId, Field.FieldId, areaType); } return retval; }
int TestCase_Field(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiIdrIdT IdrId, SaHpiEntryIdT AreaId, SaHpiEntryIdT FieldId, SaHpiIdrAreaTypeT AreaType) { SaErrorT status; int retval; SaHpiEntryIdT NextFieldId; SaHpiIdrFieldT Field; status = saHpiIdrFieldGet(sessionId, resourceId, IdrId, AreaId, AreaType, FieldId, &NextFieldId, &Field); if (status == SA_ERR_HPI_NOT_PRESENT) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiIdrFieldGet, SA_ERR_HPI_NOT_PRESENT, status); } return retval; }
int Test_Field(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiIdrIdT IdrId, SaHpiEntryIdT AreaId) { SaErrorT status; int retval; SaHpiEntryIdT NextFieldId; SaHpiIdrFieldT Field; // Call the routine with the FieldId set to // SAHPI_LAST_ENTRY. status = saHpiIdrFieldGet(sessionId, resourceId, IdrId, AreaId, SAHPI_IDR_FIELDTYPE_UNSPECIFIED, SAHPI_LAST_ENTRY, &NextFieldId, &Field); if (status == SA_ERR_HPI_NOT_PRESENT) { retval = SAF_TEST_NOTSUPPORT; } else if (status == SA_ERR_HPI_INVALID_PARAMS) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiIdrFieldGet, SA_ERR_HPI_INVALID_PARAMS || SA_ERR_HPI_NOT_PRESENT, status); } return retval; }
int main(int argc, char **argv) { SaHpiSessionIdT sid = 0; SaHpiIdrFieldT field; 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 = saHpiIdrFieldGet(sid, 1, 1, 1, SAHPI_IDR_FIELDTYPE_MANUFACTURER, SAHPI_FIRST_ENTRY, &next, &field); if (rc != SA_OK) { dbg("Couldn't get field"); dbg("Error %s",oh_lookup_error(rc)); return -1; } return 0; }
static ret_code_t set_inventory_field(SaHpiSessionIdT sessionId, SaHpiResourceIdT rptid, SaHpiIdrIdT rdrnum) { SaErrorT rv; SaHpiIdrFieldT field, read_field; SaHpiEntryIdT next; int res, i; memset(&field, 0, sizeof(SaHpiIdrFieldT)); i = get_int_param("Area Id: ", &res); if (i != 1) { printf("Error!!! Invalid Area Id\n"); return(HPI_SHELL_PARM_ERROR); }; field.AreaId = res; i = get_int_param("Field Id: ", &res); if (i != 1) { printf("Error!!! Invalid Field Id\n"); return(HPI_SHELL_PARM_ERROR); }; field.FieldId = res; rv = saHpiIdrFieldGet(sessionId, rptid, rdrnum, field.AreaId, SAHPI_IDR_FIELDTYPE_UNSPECIFIED, field.FieldId, &next, &read_field); if (rv != SA_OK) { printf("ERROR!!! saHpiIdrFieldGet: %s\n", oh_lookup_error(rv)); return(HPI_SHELL_CMD_ERROR); }; field.Type = read_field.Type; i = set_text_buffer(&(field.Field)); if (i != 0) { printf("Invalid text\n"); return(HPI_SHELL_PARM_ERROR); }; rv = saHpiIdrFieldSet(sessionId, rptid, rdrnum, &field); if (rv != SA_OK) { printf("ERROR!!! saHpiIdrFieldSet: %s\n", oh_lookup_error(rv)); return(HPI_SHELL_CMD_ERROR); }; return(HPI_SHELL_OK); }
int deleteField(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiIdrIdT IdrId, SaHpiEntryIdT AreaId) { SaErrorT status; int retval = SAF_TEST_UNKNOWN; SaHpiIdrFieldT Field; SaHpiEntryIdT NextFieldId; status = saHpiIdrFieldGet(sessionId, resourceId, IdrId, AreaId, SAHPI_IDR_FIELDTYPE_UNSPECIFIED, SAHPI_FIRST_ENTRY, &NextFieldId, &Field); if (status == SA_ERR_HPI_NOT_PRESENT) { retval = SAF_TEST_NOTSUPPORT; } else if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrFieldGet, SA_OK, status); } else { // Call the routine while passing in an invalid // ResourceId. status = saHpiIdrFieldDelete(sessionId, INVALID_RESOURCE_ID, IdrId, AreaId, Field.FieldId); if (status == SA_ERR_HPI_INVALID_RESOURCE) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiIdrFieldDelete, SA_ERR_HPI_INVALID_RESOURCE, 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*/
int main(int argc, char **argv) { int number_resources=0; SaErrorT rv; SaHpiSessionIdT sessionid; SaHpiResourceIdT resourceid; SaHpiIdrIdT IdrId = SAHPI_DEFAULT_INVENTORY_ID; SaHpiEntryIdT areaId; SaHpiIdrFieldTypeT fieldType =SAHPI_IDR_FIELDTYPE_UNSPECIFIED; SaHpiEntryIdT fieldId=SAHPI_FIRST_ENTRY , nextFieldId; SaHpiIdrFieldT field; SaHpiResourceIdT resourceid_list[RESOURCE_CAP_LENGTH] = {0}; SaHpiCapabilitiesT capability = SAHPI_CAPABILITY_INVENTORY_DATA; printf("saHpiIdrFieldGet: Test for hpi IDR field get function\n"); rv = saHpiSessionOpen(SAHPI_UNSPECIFIED_DOMAIN_ID, &sessionid, NULL); if (rv != SA_OK) { printf("saHpiSessionOpen failed with error: %s\n", oh_lookup_error(rv)); return rv; } /* Discover the resources with IDR capability */ printf("\nListing the resource with IDR capability \n"); rv = discover_resources(sessionid, capability, resourceid_list, &number_resources); if (rv != SA_OK) { exit(-1); } printf("\nPlease enter the resource id: "); scanf("%d", &resourceid); printf("Please enter the area id: "); scanf("%d", &areaId); printf("Getting the Field for all the fieldTypes for the resource..\n"); rv = saHpiIdrFieldGet(sessionid, resourceid,IdrId, areaId, fieldType, fieldId, &nextFieldId, &field); if (rv != SA_OK) { printf("saHpiIdrFieldGet failed with error: %s\n", oh_lookup_error(rv)); printf("Test case - FAIL\n"); exit (-1); } oh_print_idrfield(&field,6); while (nextFieldId != SAHPI_LAST_ENTRY) { fieldId=nextFieldId; rv = saHpiIdrFieldGet(sessionid, resourceid, IdrId, areaId, fieldType, fieldId, &nextFieldId, &field); if (rv != SA_OK) { printf("saHpiIdrFieldGet failed with error: %s\n", oh_lookup_error(rv)); printf("Test case - FAIL\n"); exit (-1); } oh_print_idrfield(&field,6); } printf("Test case - PASS\n"); rv = saHpiSessionClose(sessionid); return 0; }
/* * 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); }
int runTest(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiIdrIdT IdrId, SaHpiEntryIdT AreaId) { SaErrorT status; int retval; int response; SaHpiEntryIdT FieldId, NextFieldId; SaHpiIdrFieldT Field, MyField; response = addField(sessionId, resourceId, IdrId, AreaId, &MyField); if (response != SAF_TEST_PASS) { retval = response; } else { status = saHpiIdrFieldGet(sessionId, resourceId, IdrId, AreaId, SAHPI_IDR_FIELDTYPE_UNSPECIFIED, MyField.FieldId, &NextFieldId, &Field); if (status != SA_OK) { retval = SAF_TEST_FAIL; e_print(saHpiIdrFieldGet, SA_OK, status); } else { retval = SAF_TEST_UNKNOWN; // Retrieve the field by Field type. NextFieldId = SAHPI_FIRST_ENTRY; while ((NextFieldId != SAHPI_LAST_ENTRY) && (retval == SAF_TEST_UNKNOWN)) { FieldId = NextFieldId; status = saHpiIdrFieldGet(sessionId, resourceId, IdrId, AreaId, SAHPI_IDR_FIELDTYPE_CUSTOM, FieldId, &NextFieldId, &Field); if (status == SA_ERR_HPI_NOT_PRESENT) { // do nothing } else if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrFieldGet, SA_ERR_HPI_NOT_PRESENT, status); } else if (Field.FieldId == MyField.FieldId) { retval = SAF_TEST_PASS; } } if (retval == SAF_TEST_UNKNOWN) { retval = SAF_TEST_FAIL; m_print ("\"saHpiIdrFieldGet()\" did not return newly added field!"); } status = saHpiIdrFieldDelete(sessionId, resourceId, IdrId, AreaId, Field.FieldId); if (status != SA_OK) { e_print(saHpiIdrFieldDelete, SA_OK, status); } } } return retval; }
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 TestField(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiIdrIdT IdrId, SaHpiEntryIdT AreaId) { SaErrorT status; int retval; SaHpiIdrFieldT Field; SaHpiEntryIdT NextFieldId; status = addCustomField(sessionId, resourceId, IdrId, AreaId, &Field); if (status == SA_ERR_HPI_INVALID_DATA) { retval = SAF_TEST_NOTSUPPORT; } else if (status == SA_ERR_HPI_OUT_OF_SPACE) { retval = SAF_TEST_NOTSUPPORT; } else if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrFieldAdd, SA_OK, status); } else { // Set a new value in the field. Field.Field.Data[0] = 's'; status = saHpiIdrFieldSet(sessionId, resourceId, IdrId, &Field); if (status == SA_ERR_HPI_INVALID_DATA) { retval = SAF_TEST_NOTSUPPORT; } else if (status != SA_OK) { retval = SAF_TEST_FAIL; e_print(saHpiIdrFieldSet, SA_OK, status); } else { status = saHpiIdrFieldGet(sessionId, resourceId, IdrId, AreaId, SAHPI_IDR_FIELDTYPE_CUSTOM, Field.FieldId, &NextFieldId, &Field); if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrFieldGet, SA_OK, status); } else if (Field.Field.Data[0] == 's') { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; } } // Clean up status = saHpiIdrFieldDelete(sessionId, resourceId, IdrId, AreaId, Field.FieldId); if (status != SA_OK) { e_print(saHpiIdrFieldDelete, SA_OK, status); } } return retval; }