int addArea(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiIdrIdT idrId, SaHpiEntryIdT * areaId) { int retval; SaErrorT status; status = saHpiIdrAreaAdd(sessionId, resourceId, idrId, SAHPI_IDR_AREATYPE_PRODUCT_INFO, areaId); if (status == SA_ERR_HPI_INVALID_DATA) { retval = SAF_TEST_NOTSUPPORT; } else if (status == SA_ERR_HPI_READ_ONLY) { 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_PASS; } else { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrAreaAdd, SA_OK, status); } return retval; }
int main(int argc, char **argv) { SaHpiSessionIdT sid = 0; SaHpiEntryIdT newid; SaHpiIdrFieldT field; 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 = saHpiIdrAreaAdd(sid, 1, 1, SAHPI_IDR_AREATYPE_PRODUCT_INFO, &newid); if (rc != SA_OK) { dbg("Couldn't add new area"); dbg("Error %s",oh_lookup_error(rc)); return -1; } field.AreaId = newid; field.Type = SAHPI_IDR_FIELDTYPE_PART_NUMBER; field.Field.DataType = SAHPI_TL_TYPE_TEXT; field.Field.Language = SAHPI_LANG_ENGLISH; field.Field.DataLength = 6; field.Field.Data[0] = '1'; field.Field.Data[1] = '2'; field.Field.Data[2] = '3'; field.Field.Data[3] = '4'; field.Field.Data[4] = '5'; field.Field.Data[5] = '6'; field.Field.Data[6] = '\0'; rc = saHpiIdrFieldAdd(sid, 1, 1, &field); if (rc != SA_OK) { dbg("Couldn't add field"); dbg("Error %s",oh_lookup_error(rc)); return -1; } field.AreaId = 1; rc = saHpiIdrFieldAdd(sid, 1, 1, &field); if (rc == SA_OK) { dbg("Able to add field to a read only area"); return -1; } return 0; }
int processInventoryRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiInventoryRecT * inventoryRec) { SaErrorT status; int retval = SAF_TEST_UNKNOWN; SaHpiEntryIdT AreaId; SaHpiIdrInfoT IdrInfo; SaHpiIdrIdT IdrId = inventoryRec->IdrId; // Check to see if this is a read-only IDR status = saHpiIdrInfoGet(sessionId, resourceId, IdrId, &IdrInfo); if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrInfoGet, SA_OK, status); } else if (IdrInfo.ReadOnly) { retval = SAF_TEST_NOTSUPPORT; } else { status = saHpiIdrAreaAdd(sessionId, resourceId, IdrId, SAHPI_IDR_AREATYPE_PRODUCT_INFO, &AreaId); if (status == SA_ERR_HPI_INVALID_DATA) { retval = SAF_TEST_NOTSUPPORT; } else if (status != SA_OK) { retval = SAF_TEST_FAIL; e_print(saHpiIdrAreaAdd, SA_OK, status); } else { retval = run_test(sessionId, resourceId, IdrId, SAHPI_IDR_AREATYPE_PRODUCT_INFO, AreaId); status = saHpiIdrAreaDelete(sessionId, resourceId, IdrId, AreaId); if (status != SA_OK) { e_print(saHpiIdrAreaDelete, SA_OK, status); } } } return retval; }
int processInventoryRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiInventoryRecT * inventoryRec) { SaErrorT status; int retval = SAF_TEST_UNKNOWN; SaHpiEntryIdT AreaId; SaHpiIdrInfoT IdrInfo; // Check to see if this is a read-only IDR status = saHpiIdrInfoGet(sessionId, resourceId, inventoryRec->IdrId, &IdrInfo); if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrInfoGet, SA_OK, status); } else if (IdrInfo.ReadOnly) { retval = SAF_TEST_NOTSUPPORT; } else { // Call saHpiIdrAreaAdd() on an IDR with the Unspecified area type. status = saHpiIdrAreaAdd(sessionId, resourceId, inventoryRec->IdrId, SAHPI_IDR_AREATYPE_UNSPECIFIED, &AreaId); if (status == SA_ERR_HPI_INVALID_DATA) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiIdrAreaAdd, SA_ERR_HPI_INVALID_DATA, status); } } return retval; }
int processInventoryRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiInventoryRecT * inventoryRec) { SaErrorT status; int retval = SAF_TEST_UNKNOWN; SaHpiEntryIdT AreaId; SaHpiIdrInfoT IdrInfo; // Check to see if this is a read-only IDR status = saHpiIdrInfoGet(sessionId, resourceId, inventoryRec->IdrId, &IdrInfo); if (status != SA_OK) { retval = SAF_TEST_UNRESOLVED; e_print(saHpiIdrInfoGet, SA_OK, status); } else if (IdrInfo.ReadOnly) { retval = SAF_TEST_NOTSUPPORT; } else { // Call saHpiIdrAreaAdd() passing in an invalid ResourceId status = saHpiIdrAreaAdd(sessionId, INVALID_RESOURCE_ID, inventoryRec->IdrId, SAHPI_IDR_AREATYPE_PRODUCT_INFO, &AreaId); if (status == SA_ERR_HPI_INVALID_RESOURCE) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiIdrAreaAdd, SA_ERR_HPI_INVALID_RESOURCE, status); } } return retval; }
static int add_inventory_area(SaHpiSessionIdT sessionId, SaHpiResourceIdT rptid, SaHpiIdrIdT rdrnum) { SaHpiEntryIdT entry; SaErrorT rv; char buf[10]; int i; i = get_string_param("Area type (inter,chass,board,prod,oem): ", buf, 9); if (i != 0) return(-1); for (i = 0; Area_types[i].name != (char *)NULL; i++) if (strcmp(Area_types[i].name, buf) == 0) break; if (Area_types[i].name == (char *)NULL) { printf("Error!!! Unknown Area type: %s\n", buf); return(-1); }; rv = saHpiIdrAreaAdd(sessionId, rptid, rdrnum, Area_types[i].val, &entry); if (rv != SA_OK) { printf("ERROR!!! saHpiIdrAreaAdd: %s\n", oh_lookup_error(rv)); return(rv); }; return(SA_OK); }
int processInventoryRdr(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiRdrT * rdr, SaHpiInventoryRecT * inventoryRec) { SaErrorT status; int retval; SaHpiEntryIdT AreaId; // Call saHpiIdrAreaAdd() passing in an invalid IdrId status = saHpiIdrAreaAdd(sessionId, resourceId, INVALID_INVENTORY_ID, SAHPI_IDR_AREATYPE_PRODUCT_INFO, &AreaId); if (status == SA_ERR_HPI_NOT_PRESENT) { retval = SAF_TEST_PASS; } else { retval = SAF_TEST_FAIL; e_print(saHpiIdrAreaAdd, SA_ERR_HPI_NOT_PRESENT, status); } return retval; }
int main(int argc, char **argv) { SaHpiSessionIdT sid = 0; SaHpiEntryIdT newid; SaHpiIdrFieldT field; 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 = saHpiIdrAreaAdd(sid, resid, 1, SAHPI_IDR_AREATYPE_PRODUCT_INFO, &newid); if (rc == SA_ERR_HPI_READ_ONLY) { return 0; } else if (rc != SA_OK) { err("Couldn't add new area"); err("Error %s",oh_lookup_error(rc)); return -1; } field.AreaId = newid; field.Type = SAHPI_IDR_FIELDTYPE_PART_NUMBER; field.Field.DataType = SAHPI_TL_TYPE_TEXT; field.Field.Language = SAHPI_LANG_ENGLISH; field.Field.DataLength = 6; field.Field.Data[0] = '1'; field.Field.Data[1] = '2'; field.Field.Data[2] = '3'; field.Field.Data[3] = '4'; field.Field.Data[4] = '5'; field.Field.Data[5] = '6'; field.Field.Data[6] = '\0'; rc = saHpiIdrFieldAdd(sid, resid, 1, &field); if (rc != SA_OK) { err("Couldn't add field"); err("Error %s",oh_lookup_error(rc)); return -1; } field.AreaId = 1; rc = saHpiIdrFieldAdd(sid, resid, 1, &field); if (rc == SA_OK) { err("Able to add field to a read only area"); return -1; } return 0; }