/**/ /***************************************************************************/ /** **/ /** © Copyright 2010, Hewlett-Packard Development Company, L.P. **/ /** **/ /** Confidential computer software. Valid license from HP and/or **/ /** its subsidiaries required for possession, use, or copying. **/ /** **/ /** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, **/ /** Computer Software Documentation, and Technical Data for Commercial **/ /** Items are licensed to the U.S. Government under vendor's standard **/ /** commercial license. **/ /** **/ /** Neither HP nor any of its subsidiaries shall be liable for technical **/ /** or editorial errors or omissions contained herein. The information **/ /** in this document is provided "as is" without warranty of any kind and **/ /** is subject to change without notice. The warranties for HP products **/ /** are set forth in the express limited warranty statements accompanying **/ /** such products. Nothing herein should be construed as constituting an **/ /** additional warranty. **/ /** **/ /***************************************************************************/ /********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:26:12 by OpenVMS SDL EV3-3 */ /* Source: 16-DEC-2002 21:47:01 $1$DGA7274:[LIB_H.SRC]GESDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $GESDEF ***/ #ifndef __GESDEF_LOADED #define __GESDEF_LOADED 1 #pragma __nostandard /* This file uses non-ANSI-Standard features */ #pragma __member_alignment __save #pragma __nomember_alignment #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __save /* Save the previously-defined required ptr size */ #pragma __required_pointer_size __short /* And set ptr size default to 32-bit pointers */ #endif #ifdef __cplusplus extern "C" { #define __unknown_params ... #define __optional_params ... #else #define __unknown_params #define __optional_params ... #endif #ifndef __struct #if !defined(__VAXC) #define __struct struct #else #define __struct variant_struct #endif #endif #ifndef __union #if !defined(__VAXC) #define __union union #else #define __union variant_union #endif #endif /*++ */ /* Types of sensor data. */ /*-- */ #define GES$K_TEMP 0 #define GES$K_POWER 1 #define GES$K_FAN 2 #define GES$K_TABLE_SIZE 3 /*++ */ /* An array of these data structures will be created to store information */ /* about the sensors. There will be one array for each of the sensor types, */ /* and in each array there will be one of these structures for each */ /* individual sensor. */ /* */ /* 63 55 47 39 31 23 15 7 0 */ /* +---------------------------------------------------------------+ */ /* | FRU Node ID from cfg$iq_cfg_id64 in CFGDEF.H | */ /* +---------------------------------------------------------------+ */ /* | Node Flags from cfg$iq_node_flags in CFGDEF.H | */ /* +-------------------------------+-------------------------------+ */ /* | Bitfield | Offset | */ /* +-------+-------+-------+-------+-------------------------------+ */ /* | Node Change | Sub- | Type | Sensor Properties | */ /* | Counter | type | | | */ /* +-------+-------+-------+-------+-------------------------------+ */ /* | Node Handle | */ /* +---------------------------------------------------------------+ */ /* | Subpacket Handle | */ /* +---------------------------------------------------------------+ */ /*-- */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _sensor_fru { /* */ /* The byte fields in this 8-byte structure are declared in CFGDEF.H as */ /* struct cfg$_cfg_node_id_fru_desc in the CFG_NODE structure. */ #pragma __nomember_alignment unsigned __int64 ges$q_fru_node_id; /* */ /* The following quadword is the cfg$iq_node_flags field of the FRU */ /* CFG_NODE. This provides a lot of salient information about the FRU. */ unsigned __int64 ges$q_node_flags; /* */ /* The following two fields comprise the 64-bit cfg$iq_sensor_console_id */ /* declared in CFGDEF.H. The console_id field provides unique */ /* identifier for each FRU node in the tree. */ /* */ /* <31:0> Offset to the data in the hardware's environmental storage */ /* medium. */ unsigned int ges$l_offset; /* */ /* <63:32> Can be bitfield or offset to Value. */ unsigned int ges$l_bitfield; /* */ /* Property of the data (status or value or both). */ /* See Config Tree Spec, pp 9-105 */ unsigned int ges$l_prop; /* */ /* Config Tree FRU Node Type. */ unsigned char ges$b_type; /* */ /* Config Tree FRU Node Subtype. */ unsigned char ges$b_subtype; /* */ /* Config Tree Node Change Counter. */ unsigned short int ges$w_node_change_counter; /* */ /* Config Tree Node Handle. */ __int64 ges$q_node_handle; /* */ /* Config Tree Subpacket Handle. */ __int64 ges$q_subpkt_handle; } SENSOR_FRU; #define GES$K_SENSOR_FRU_LENGTH 48 /*++ */ /* This struct will be used to build a table of pointers to SENSOR_FRU arrays */ /* for each of the sensor types, and the corresponding information required */ /* to access and maintain each of the arrays. */ /* */ /* 63 31 15 0 */ /* +-------------------------------+-------------------------------+ */ /* | pointer to SENSOR_FRU array | Item Code | */ /* +-------------------------------+---------------+---------------+ */ /* | Required Buffer Size | Sensor Count | Array Valid | */ /* +-------------------------------+---------------+---------------+ */ /* | Last Init Time | */ /* +---------------------------------------------------------------+ */ /*-- */ #if !defined(__NOBASEALIGN_SUPPORT) && !defined(__cplusplus) /* If using pre DECC V4.0 or C++ */ #pragma __nomember_alignment __quadword #else #pragma __nomember_alignment #endif typedef struct _env_sensor { /* */ /* This element will be used by code to lookup the correct */ /* entry in the table of ENV_SENSOR structs. */ #pragma __nomember_alignment int ges$l_item_code; /* */ /* Array of SENSOR_FRU structs for all sensors of this type. */ struct _sensor_fru *ges$ps_sensor_fru; /* */ /* This boolean will be used to determine if the SENSOR_FRU */ /* array is inited and valid. */ unsigned short int ges$w_array_inited; /* */ /* Count of sensors of this type. */ short int ges$w_sensor_count; /* */ /* Size of buffer required to contain all data, formatted as an array */ /* of ESFITEM, from all sensors of this type (see esfdef.h). */ int ges$l_req_buff_size; /* */ /* The system time of the last init of the SENSOR_FRU array. */ unsigned __int64 ges$q_last_init_time; } ENV_SENSOR; #define GES$K_ENV_SENSOR_LENGTH 24 #pragma __member_alignment __restore #ifdef __INITIAL_POINTER_SIZE /* Defined whenever ptr size pragmas supported */ #pragma __required_pointer_size __restore /* Restore the previously-defined required ptr size */ #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __GESDEF_LOADED */