/* -*- linux-c -*-
*
* Copyright (c) 2004 by Intel Corp.
*
* 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):
* Kouzmich < Mikhail.V.Kouzmich@intel.com >
*
*/
#ifndef __HPI_UI_H
#define __HPI_UI_H
#include <SaHpi.h>
#include <oh_utils.h>
#define SHOW_BUF_SZ 1024
/* defines for show_rpt_list function */
#define SHOW_ALL_RPT 0
#define SHOW_ALL_RDR 1
#define SHOW_RPT_RDR 2
#define SHORT_LSRES 0x0
#define STATE_LSRES 0x1
#define PATH_LSRES 0x2
typedef unsigned char uchar;
typedef union {
int i;
double d;
char *s;
void *a;
} union_type_t;
/* value types */
#define NO_TYPE 0 // value doesn't present
#define INT_TYPE 1 // interger
#define FLOAT_TYPE 2 // float
#define STR_TYPE 3 // string
#define STRUCT_TYPE 4 // structure
#define ARRAY_TYPE 5 // array
#define LOOKUP_TYPE 6 // call lookup function
#define DECODE_TYPE 7 // call encode function
#define DECODE1_TYPE 8 // call encode1 function
#define READING_TYPE 9 // call reading print function
#define BOOL_TYPE 10 // boolean
#define HEX_TYPE 11 // hexadecimal
#define TEXT_BUFF_TYPE 12 // TextBuffer
typedef struct {
char *name; // attribute name
int type; // value type
int lunum; // lookup proc number
union_type_t value; // value
} attr_t;
typedef struct {
int n_attrs;
attr_t *Attrs;
} Attributes_t;
typedef struct {
SaHpiRdrT Record;
SaHpiEntryIdT RecordId;
SaHpiRdrTypeT RdrType;
Attributes_t Attrutes;
} Rdr_t;
typedef struct {
SaHpiRptEntryT Table;
SaHpiEntryIdT EntryId;
SaHpiResourceIdT ResourceId;
Attributes_t Attrutes;
} Rpt_t;
typedef struct {
SaHpiSessionIdT sessionId;
SaHpiDomainIdT domainId;
int session_opened;
int discovered;
} Domain_t;
/* print function
* This parameter is passed to the interface show functions
* It return HPI_UI_OK on successful completion, otherwise HPI_UI_END on
* output ending.
*/
typedef enum {
HPI_UI_OK = 0,
HPI_UI_END = -1
} Pr_ret_t; // Print return code
typedef Pr_ret_t (*hpi_ui_print_cb_t)(char *buf);
typedef int (*get_int_param_t)(char *buf, int *val);
extern char *hex_codes;
extern SaErrorT find_rdr_by_num(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid,
SaHpiInstrumentIdT num, SaHpiRdrTypeT type, int as,
SaHpiRdrT *retrdr);
extern void free_attrs(Attributes_t *At);
extern SaErrorT get_rpt_attr(Rpt_t *rpt, char *attr_name, union_type_t *val);
// get rpt attribute value
extern SaErrorT get_rpt_attr_as_string(Rpt_t *rpt, char *attr_name, char *val, int len);
// get rpt attribute value as string (max length: len)
extern SaErrorT get_rdr_attr(Rdr_t *rdr, char *attr_name, union_type_t *val);
// get rdr attribute value
extern SaErrorT get_rdr_attr_as_string(Rdr_t *rdr, char *attr_name, char *val, int len);
// get rdr attribute value as string (max length: len)
extern void get_text_buffer_text(char *mes, const SaHpiTextBufferT *buf, char *meslast,
char *outbuf);
extern SaErrorT get_value(Attributes_t *Attrs, int num, union_type_t *val);
// get attribute value as string by number (max length: len)
extern SaErrorT get_value_as_string(Attributes_t *Attrs, int num, char *val, int len);
// get attribute value as string by number (max length: len)
extern char *get_attr_name(Attributes_t *Attrs, int num);
// get attribute name
extern int get_attr_type(Attributes_t *Attrs, int num);
// get attribute type
extern void make_attrs_rdr(Rdr_t *Rdr, SaHpiRdrT *rdr_entry);
extern void make_attrs_rpt(Rpt_t *Rpt, SaHpiRptEntryT *rptentry);
extern Pr_ret_t print_text_buffer(char *mes, SaHpiTextBufferT *buf, char *meslast,
hpi_ui_print_cb_t proc);
extern Pr_ret_t print_text_buffer_lang(char *mes, SaHpiTextBufferT *buf,
char *meslast, hpi_ui_print_cb_t proc);
extern Pr_ret_t print_text_buffer_length(char *mes, SaHpiTextBufferT *buf,
char *meslast, hpi_ui_print_cb_t proc);
extern Pr_ret_t print_text_buffer_text(char *mes, const SaHpiTextBufferT *buf,
char *meslast, hpi_ui_print_cb_t proc);
extern Pr_ret_t print_text_buffer_type(char *mes, SaHpiTextBufferT *buf,
char *meslast, hpi_ui_print_cb_t proc);
extern Pr_ret_t print_thres_value(SaHpiSensorReadingT *item, char *mes,
SaHpiSensorThdDefnT *def, int num, hpi_ui_print_cb_t proc);
extern SaErrorT show_control(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid,
SaHpiCtrlNumT num, hpi_ui_print_cb_t proc);
extern SaErrorT show_control_state(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid,
SaHpiCtrlNumT num, hpi_ui_print_cb_t proc, get_int_param_t);
extern SaErrorT show_dat(Domain_t *domain, hpi_ui_print_cb_t proc);
extern SaErrorT show_entity_management(Domain_t *domain, const SaHpiEntityPathT * ep,
SaHpiRdrTypeT type, hpi_ui_print_cb_t proc);
extern SaErrorT show_entity_tree(Domain_t *domain, const SaHpiEntityPathT * parent,
unsigned int level, hpi_ui_print_cb_t proc);
extern SaErrorT show_event_log(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid,
int show_short, hpi_ui_print_cb_t proc);
extern void show_inv_area_header(SaHpiIdrAreaHeaderT *Header, int del,
hpi_ui_print_cb_t proc);
extern void show_inv_field(SaHpiIdrFieldT *Field, int del, hpi_ui_print_cb_t proc);
extern SaErrorT show_inventory(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid,
SaHpiIdrIdT num, SaHpiEntryIdT areaid, hpi_ui_print_cb_t proc);
extern SaErrorT show_Rdr(Rdr_t *Rdr, hpi_ui_print_cb_t proc);
extern SaErrorT show_Rpt(Rpt_t *Rpt, hpi_ui_print_cb_t proc);
extern int show_rdr_list(Domain_t *D, SaHpiResourceIdT resourceid,
SaHpiRdrTypeT passed_type, hpi_ui_print_cb_t proc);
extern int show_rpt_list(Domain_t *domain, int as, SaHpiResourceIdT rptid,
int addedfields, hpi_ui_print_cb_t proc);
extern Pr_ret_t show_sensor_list(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid,
hpi_ui_print_cb_t proc);
extern SaErrorT show_sensor(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid,
SaHpiSensorNumT sensornum, hpi_ui_print_cb_t proc);
extern Pr_ret_t show_short_event(SaHpiEventT *event, hpi_ui_print_cb_t proc);
extern SaErrorT show_threshold(SaHpiSessionIdT sessionid, SaHpiResourceIdT resourceid,
SaHpiSensorNumT sensornum, SaHpiSensorRecT *sen,
hpi_ui_print_cb_t proc);
extern SaErrorT sensor_list(SaHpiSessionIdT sessionid, hpi_ui_print_cb_t proc);
#endif /* __HPI_UI_H */