⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sahpi_struct_rdr_test.c

📁 HIP 硬件设备管理标准接口
💻 C
字号:
/*      -*- linux-c -*- * * (C) Copyright IBM Corp. 2004 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  This * file and program are licensed under a BSD style license.  See * the Copying file included with the OpenHPI distribution for * full licensing terms. * * Author(s): *      pdphan	<pdphan@users.sf.org> */#include <stdio.h>#include <string.h>#include <unistd.h>#include <SaHpi.h>#include <oh_utils.h>int main(int argc, char **argv) {	SaErrorT   	err;	SaHpiBoolT	testFail = SAHPI_FALSE;																																		SaHpiRdrT	thisRdr = {		.RecordId = 88,		.RdrType = SAHPI_NO_RECORD,		.Entity =  {			.Entry[0] = {				.EntityType = SAHPI_ENT_SUBBOARD_CARRIER_BLADE,				.EntityLocation = 14			},			{				.EntityType = SAHPI_ENT_SUB_CHASSIS,				.EntityLocation = 15			},			{				.EntityType = SAHPI_ENT_SYSTEM_CHASSIS,				.EntityLocation = 16			},			{				.EntityType = SAHPI_ENT_ROOT,				.EntityLocation = 17			}		},		.IsFru = SAHPI_TRUE,		/* .RdrTypeUnion == init later for individual rdr type */		.IdString = {                        .DataType = SAHPI_TL_TYPE_TEXT,                        .Language = SAHPI_LANG_ENGLISH,                        .DataLength = 32, /* Incorrectly set on purpose */                        .Data = "This is a oh_fprint_rdr test!"                }        };	memset(&thisRdr.RdrTypeUnion, 0, sizeof(SaHpiRdrTypeUnionT));	FILE *fp;	const char *name = "/tmp/idrareatmp";	const char *mode = "a";	fp = fopen(name, mode);	if (fp == NULL) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		return -1;	}	/* ------------------------------------------------ */	/* NULL Pointer tests                               */	/* ------------------------------------------------ */		err = oh_fprint_rdr(NULL , &thisRdr, 0);	if (err != SA_ERR_HPI_INVALID_PARAMS) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		printf("  Received error=%d\n", err);		testFail = SAHPI_TRUE;	}		err = oh_fprint_rdr(fp, NULL, 1);	if (err != SA_ERR_HPI_INVALID_PARAMS) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		printf("  Received error=%d\n", err);		testFail = SAHPI_TRUE;	}		err = oh_fprint_rdr(NULL , NULL, 2);	if (err != SA_ERR_HPI_INVALID_PARAMS) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		printf("  Received error=%d\n", err);		testFail = SAHPI_TRUE;	}	/* ------------------------------------------------ */	/* Normal write to file test                        */	/* ------------------------------------------------ */			err = oh_fprint_rdr(fp, &thisRdr, 3);	if (err != SA_OK) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		printf("  Received error=%d\n", err);		testFail = SAHPI_TRUE;	}	/* ------------------------------------------------ */	/* Normal write to stdout test                      */	/* ------------------------------------------------ */		err = oh_print_rdr(&thisRdr, 3);	if (err != SA_OK) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		printf("  Received error=%d\n", err);		testFail = SAHPI_TRUE;	}	/* ------------------------------------------------ */	/* Normal write SAHPI_CTRL_RDR stdout test          */	/* ------------------------------------------------ */		thisRdr.RdrType = SAHPI_CTRL_RDR;	SaHpiCtrlRecT   thisctrlrec = {		.Num = 102,		.OutputType = SAHPI_CTRL_POWER_INTERLOCK,		.Type = SAHPI_CTRL_TYPE_DIGITAL,		.TypeUnion.Digital.Default = SAHPI_CTRL_STATE_ON,		.DefaultMode = {			.Mode= SAHPI_CTRL_MODE_AUTO,			.ReadOnly = SAHPI_TRUE		},		.WriteOnly = SAHPI_FALSE,		.Oem = 0		};		memcpy(&thisRdr.RdrTypeUnion.CtrlRec, &thisctrlrec, sizeof(SaHpiCtrlRecT));	err = oh_print_rdr(&thisRdr, 3);	if (err != SA_OK) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		printf("  Received error=%d\n", err);		testFail = SAHPI_TRUE;	}	/* ------------------------------------------------ */	/* Normal write SAHPI_SENSOR_RDR stdout test        */	/* ------------------------------------------------ */		thisRdr.RdrType = SAHPI_SENSOR_RDR;        SaHpiSensorRecT  thissensorrec = {		.Num = 1,		.Type = SAHPI_VOLTAGE,		.Category = SAHPI_EC_THRESHOLD,		.Events = SAHPI_ES_LOWER_MAJOR | SAHPI_ES_LOWER_MINOR,		.EventCtrl = SAHPI_SEC_READ_ONLY,		.DataFormat = {			.IsSupported = SAHPI_TRUE,			.ReadingType = SAHPI_SENSOR_READING_TYPE_INT64,			.BaseUnits = SAHPI_SU_VOLTS,			.ModifierUnits = SAHPI_SU_SECOND,			.ModifierUse = SAHPI_SMUU_BASIC_TIMES_MODIFIER,			.Percentage = SAHPI_FALSE,			.Range = {				.Flags = SAHPI_SRF_MIN | SAHPI_SRF_MAX | SAHPI_SRF_NOMINAL |			                        SAHPI_SRF_NORMAL_MIN | SAHPI_SRF_NORMAL_MAX,				.Min = {					.IsSupported = SAHPI_TRUE,					.Type = SAHPI_SENSOR_READING_TYPE_INT64,					.Value.SensorInt64 = 0				},				.Max = {					.IsSupported = SAHPI_TRUE,					.Type = SAHPI_SENSOR_READING_TYPE_INT64,					.Value.SensorInt64 = 100				},				.Nominal = {					.IsSupported = SAHPI_TRUE,					.Type = SAHPI_SENSOR_READING_TYPE_INT64,					.Value.SensorInt64 = 50				},				.NormalMax = {					.IsSupported = SAHPI_TRUE,					.Type = SAHPI_SENSOR_READING_TYPE_INT64,					.Value.SensorInt64 = 75				},				.NormalMin = {					.IsSupported = SAHPI_TRUE,					.Type = SAHPI_SENSOR_READING_TYPE_INT64,					.Value.SensorInt64 = 25				}			},			.AccuracyFactor = 0.05		},		.Oem = 0xFF,		.ThresholdDefn = {			.IsAccessible = SAHPI_TRUE,			.ReadThold = SAHPI_STM_LOW_MINOR | SAHPI_STM_LOW_MAJOR | SAHPI_STM_LOW_CRIT | SAHPI_STM_LOW_HYSTERESIS,			.WriteThold = SAHPI_STM_UP_MINOR | SAHPI_STM_UP_MAJOR | SAHPI_STM_UP_CRIT | SAHPI_STM_UP_HYSTERESIS,			.Nonlinear = SAHPI_TRUE		}		};	memcpy(&thisRdr.RdrTypeUnion.SensorRec, &thissensorrec, sizeof(SaHpiSensorRecT));			err = oh_print_rdr(&thisRdr, 3);	if (err != SA_OK) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		printf("  Received error=%d\n", err);		testFail = SAHPI_TRUE;	}	/* ------------------------------------------------ */	/* Normal write SAHPI_INVENTORY_RDR stdout test     */	/* ------------------------------------------------ */	thisRdr.RdrType = SAHPI_INVENTORY_RDR;        SaHpiInventoryRecT  thisinvrec = {		.IdrId = 22,		.Persistent = SAHPI_FALSE,		.Oem = 32	};		memcpy(&thisRdr.RdrTypeUnion.InventoryRec, &thisinvrec, sizeof(SaHpiInventoryRecT));				err = oh_print_rdr(&thisRdr, 3);	if (err != SA_OK) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		printf("  Received error=%d\n", err);		testFail = SAHPI_TRUE;	}	/* ------------------------------------------------ */	/* Normal write SAHPI_WATCHDOG_RDR stdout test      */	/* ------------------------------------------------ */	thisRdr.RdrType = SAHPI_WATCHDOG_RDR;        SaHpiWatchdogRecT  thiswdogrec = {		.WatchdogNum = 42,		.Oem = 52	};		memcpy(&thisRdr.RdrTypeUnion.WatchdogRec, &thiswdogrec, sizeof(SaHpiWatchdogRecT));	err = oh_print_rdr(&thisRdr, 3);	if (err != SA_OK) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		printf("  Received error=%d\n", err);		testFail = SAHPI_TRUE;	}	/* ------------------------------------------------ */	/* Normal write SAHPI_ANNUNCIATOR_RDR stdout test   */	/* ------------------------------------------------ */	thisRdr.RdrType = SAHPI_ANNUNCIATOR_RDR;        SaHpiAnnunciatorRecT thisannrec = {		.AnnunciatorNum = 62,		.AnnunciatorType = SAHPI_ANNUNCIATOR_TYPE_LED,		.ModeReadOnly = SAHPI_TRUE,		.MaxConditions= 1,		.Oem = 72	};		memcpy(&thisRdr.RdrTypeUnion.AnnunciatorRec, &thisannrec, sizeof(SaHpiAnnunciatorRecT));		err = oh_print_rdr(&thisRdr, 3);	if (err != SA_OK) {		printf("  Error! Testcase failed. Line=%d\n", __LINE__);		printf("  Received error=%d\n", err);		testFail = SAHPI_TRUE;	}	/* ------------------------------------------------ */	/* Write to invalid file handle test                */	/* ------------------------------------------------ */	/* TBD */	fclose(fp);	unlink(name);	if (testFail)		return(-1);	else 		return(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -