Esempio n. 1
0
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;
}
Esempio n. 2
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;
}
Esempio n. 3
0
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);
}
Esempio n. 4
0
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);
}
Esempio n. 5
0
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;
}