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 addField(SaHpiSessionIdT sessionId, SaHpiResourceIdT resourceId, SaHpiIdrIdT idrId, SaHpiEntryIdT areaId, SaHpiIdrFieldT * Field) { int retval; SaErrorT status; strncpy(Field->Field.Data, HPI_TEST_STRING, HPI_TEST_STRING_LENGTH); Field->Field.DataLength = HPI_TEST_STRING_LENGTH; Field->Field.DataType = SAHPI_TL_TYPE_TEXT; Field->FieldId = 0; Field->Field.Language = SAHPI_LANG_ENGLISH; Field->AreaId = areaId; Field->ReadOnly = SAHPI_FALSE; Field->Type = SAHPI_IDR_FIELDTYPE_CUSTOM; status = saHpiIdrFieldAdd(sessionId, resourceId, idrId, Field); 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(saHpiIdrFieldAdd, SA_OK, status); } return retval; }
static int add_inventory_field(SaHpiSessionIdT sessionId, SaHpiResourceIdT rptid, SaHpiIdrIdT rdrnum) { SaErrorT rv; SaHpiIdrFieldT field; char buf[256]; int res, i; i = get_int_param("Area Id: ", &res); if (i != 1) { printf("Error!!! Invalid Area Id\n"); return(-1); }; field.AreaId = res; i = get_string_param("Field type(chass,time,manuf,prodname,prodver," "snum,pnum,file,tag,custom): ", buf, 9); if (i != 0) { printf("Error!!! Invalid Field type: %s\n", buf); return(-1); }; for (i = 0; Field_types[i].name != (char *)NULL; i++) if (strcmp(Field_types[i].name, buf) == 0) break; if (Field_types[i].name == (char *)NULL) { printf("Error!!! Unknown Field type: %s\n", buf); return(-1); }; field.Type = Field_types[i].val; field.ReadOnly = SAHPI_FALSE; i = get_string_param("Field value: ", buf, 256); if (i != 0) { printf("Error!!! Invalid Field value: %s\n", buf); return(-1); }; i = strlen(buf); field.Field.DataType = SAHPI_TL_TYPE_TEXT; field.Field.Language = SAHPI_LANG_ENGLISH; field.Field.DataLength = i; if (i > 0) strcpy(field.Field.Data, buf); rv = saHpiIdrFieldAdd(sessionId, rptid, rdrnum, &field); if (rv != SA_OK) { printf("ERROR!!! saHpiIdrFieldAdd: %s\n", oh_lookup_error(rv)); return(rv); }; return(SA_OK); }
static ret_code_t add_inventory_field(SaHpiSessionIdT sessionId, SaHpiResourceIdT rptid, SaHpiIdrIdT rdrnum) { SaErrorT rv; SaHpiIdrFieldT field; char buf[256]; int res, i; 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_string_param("Field type(chass,time,manuf,prodname,prodver," "snum,pnum,file,tag,custom): ", buf, 9); if (i != 0) { printf("Error!!! Invalid Field type: %s\n", buf); return(HPI_SHELL_PARM_ERROR); }; for (i = 0; Field_types[i].name != (char *)NULL; i++) if (strcmp(Field_types[i].name, buf) == 0) break; if (Field_types[i].name == (char *)NULL) { printf("Error!!! Unknown Field type: %s\n", buf); return(HPI_SHELL_PARM_ERROR); }; field.Type = Field_types[i].val; field.ReadOnly = SAHPI_FALSE; i = set_text_buffer(&(field.Field)); if (i != 0) { printf("Invalid text\n"); return(HPI_SHELL_PARM_ERROR); }; rv = saHpiIdrFieldAdd(sessionId, rptid, rdrnum, &field); if (rv != SA_OK) { printf("ERROR!!! saHpiIdrFieldAdd: %s\n", oh_lookup_error(rv)); return(HPI_SHELL_CMD_ERROR); }; return(HPI_SHELL_OK); }
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; }