/********************************************************************************************************************************/ /* Created: 9-Mar-2021 22:28:05 by OpenVMS SDL EV3-3 */ /* Source: 09-MAR-2021 22:28:01 $1$DGA8085:[STARLET_H.SRC]STARDEFAE.SDI;1 */ /********************************************************************************************************************************/ /*** MODULE ESFDEF ***/ #ifndef __ESFDEF_LOADED #define __ESFDEF_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 /* */ /* Enumerate Item Codes for the various types of Environmental Sensor FRUs. */ /* */ #define ESF$K_TEMP 4096 #define ESF$K_POWER 4097 #define ESF$K_FAN 4098 /* */ /* The sys$get_env_sensors system service will populate the user's buffer */ /* with an array of the following structure. The dimension of the array is */ /* determined by the number of sensors corresponding to the item code by a */ /* run-time call to sys$get_env_sensors() with a buffer address of zero or */ /* buffer size of zero. sys$get_env_sensors() will pass the dimensions back */ /* to the caller so he can allocate buffers to contain the arrays for */ /* subsequent calls to sys$get_env_sensors() with valid buffer pointers and */ /* sizes. */ /* See [SYS]SYS_GET_ENV_SENSORS.C */ /* */ #define ESF$M_VALID_STATUS 0x1 #define ESF$M_VALID_VALUE 0x2 #define ESF$M_FEAT_RESERVED 0xFC #ifdef __NEW_STARLET #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 _esfitem { #pragma __nomember_alignment unsigned char esf$b_type; /* CFG_NODE config type field */ unsigned char esf$b_subtype; /* CFG_NODE config subtype field */ unsigned char esf$b_value; /* Value byte */ unsigned char esf$b_status; /* Status byte */ __union { unsigned char esf$b_features; /* Features of the Sensor FRU */ __struct { unsigned esf$v_valid_status : 1; unsigned esf$v_valid_value : 1; unsigned esf$v_feat_reserved : 6; } esf$r_features_bits; } esf$r_features_overlay; /* */ /* Pad out to next quad word */ /* */ unsigned char esf$b_reserved_1 [3]; /* */ /* fru_node_id contains FRU Descriptor Node ID information to help */ /* identify the location of the associated sensor. See "Alpha Systems */ /* Configuration Tree Implementation Specification" Table 1-79 on Page 50. */ /* 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. */ /* */ unsigned __int64 esf$q_fru_node_id; /* */ /* fru_flags contains the Node Flags for the FRU. See "Alpha Configuration */ /* Tree Specification" Release T6.0-0023 page 7-45. */ /* See also cfg$iq_node_flags in CFGDEF.H. */ /* */ unsigned __int64 esf$q_fru_flags; /* */ /* console_id is a quadword that contains the offset and bitfield elements */ /* to be used to access the low-level hardware status or value information */ /* */ __union { unsigned __int64 esf$q_console_id; /* Whole Console ID */ __struct { unsigned int esf$l_offset; /* Offset part of Console ID */ unsigned int esf$l_bitfield; /* Bitfield part of Console ID */ } esf$r_cid_fields; } esf$r_cid_overlay; } ESFITEM; #if !defined(__VAXC) #define esf$b_features esf$r_features_overlay.esf$b_features #define esf$v_valid_status esf$r_features_overlay.esf$r_features_bits.esf$v_valid_status #define esf$v_valid_value esf$r_features_overlay.esf$r_features_bits.esf$v_valid_value #define esf$v_feat_reserved esf$r_features_overlay.esf$r_features_bits.esf$v_feat_reserved #define esf$q_console_id esf$r_cid_overlay.esf$q_console_id #define esf$l_offset esf$r_cid_overlay.esf$r_cid_fields.esf$l_offset #define esf$l_bitfield esf$r_cid_overlay.esf$r_cid_fields.esf$l_bitfield #endif /* #if !defined(__VAXC) */ #else /* __OLD_STARLET */ #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 _esfitem { #pragma __nomember_alignment unsigned char esf$b_type; /* CFG_NODE config type field */ unsigned char esf$b_subtype; /* CFG_NODE config subtype field */ unsigned char esf$b_value; /* Value byte */ unsigned char esf$b_status; /* Status byte */ __union { unsigned char esf$b_features; /* Features of the Sensor FRU */ __struct { unsigned esf$v_valid_status : 1; unsigned esf$v_valid_value : 1; unsigned esf$v_feat_reserved : 6; } esf$r_features_bits; } esf$r_features_overlay; /* */ /* Pad out to next quad word */ /* */ unsigned char esf$b_reserved_1 [3]; /* */ /* fru_node_id contains FRU Descriptor Node ID information to help */ /* identify the location of the associated sensor. See "Alpha Systems */ /* Configuration Tree Implementation Specification" Table 1-79 on Page 50. */ /* 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. */ /* */ unsigned int esf$q_fru_node_id [2]; /* */ /* fru_flags contains the Node Flags for the FRU. See "Alpha Configuration */ /* Tree Specification" Release T6.0-0023 page 7-45. */ /* See also cfg$iq_node_flags in CFGDEF.H. */ /* */ unsigned int esf$q_fru_flags [2]; /* */ /* console_id is a quadword that contains the offset and bitfield elements */ /* to be used to access the low-level hardware status or value information */ /* */ __union { unsigned int esf$q_console_id [2]; /* Whole Console ID */ __struct { unsigned int esf$l_offset; /* Offset part of Console ID */ unsigned int esf$l_bitfield; /* Bitfield part of Console ID */ } esf$r_cid_fields; } esf$r_cid_overlay; } esfitem; #if !defined(__VAXC) #define esf$b_features esf$r_features_overlay.esf$b_features #define esf$v_valid_status esf$r_features_overlay.esf$r_features_bits.esf$v_valid_status #define esf$v_valid_value esf$r_features_overlay.esf$r_features_bits.esf$v_valid_value #define esf$v_feat_reserved esf$r_features_overlay.esf$r_features_bits.esf$v_feat_reserved #define esf$q_console_id esf$r_cid_overlay.esf$q_console_id #define esf$l_offset esf$r_cid_overlay.esf$r_cid_fields.esf$l_offset #define esf$l_bitfield esf$r_cid_overlay.esf$r_cid_fields.esf$l_bitfield #endif /* #if !defined(__VAXC) */ #endif /* #ifdef __NEW_STARLET */ #define ESF$K_ESFITEM_SIZE (sizeof( ESFITEM )) #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 /* __ESFDEF_LOADED */