/********************************************************************************************************************************/ /* Created: 30-Mar-2010 17:29:50 by OpenVMS SDL EV3-3 */ /* Source: 30-MAR-2010 17:29:21 $1$DGA7274:[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 )) /* Copyright (c) 1989, 1990, 1991, 1992, 1993 */ /* by DIGITAL Equipment Corporation, Maynard, Mass. */ /* This file contains definitions for the opcode and subfunctions for the */ /* EVAX architecture. */ /* Each individual opcode and subfunction is defined */ /* Additionally for each instruction there is a 32 bit constant defined */ /* that represents the opcode/subfunc for that instruction. It is */ /* recomended that you use this 32 bit value if you can. It is more */ /* likely to remain valid accross version of this file and SRM changes. */ /* If you find errors in this file, send MAIL to AD::EVAX$OPCODES */ /* This version of EVAX_OPCODE.SDL matches the EVAX SYSTEM REFERENCE MANUAL */ /* Version 4.0 dated 2 April 1990. This is Rev V4.7 of this file. */ /* Last edited on 28 Jan 1993 */ /* */ /* Most (all?) of the obsolete instructions have been removed, and new EV6 */ /* instructions have been added. */ /* AMB, 7/7/98 */ /* Changes since last release: */ /* Changed... */ /* */ /* X-5A4 KLN2130 Karen L. Noel 25-Jan-2000 */ /* Add MTPR and MFPR opcode for VIRBND and SYSPTBR. Alpha */ /* ECO #121. */ /* */ /* X-5A3 AB Aaron Biver 24-Jul-1998 */ /* Replaced LDD, STG, and reserved opcodes 7 and up. */ /* They are being referenced elsewhere. */ /* */ /* X-5A2 AMB Aaron Biver 07-Jul-1998 */ /* Added SQRTx, FTOIx, ITOFx, CTxx, ECB, STG, LDG, */ /* MAXxxx, MINxxx, PKxx, UNPKxx, PERR, MF_FPCR, and WH64. */ /* Removed D-floating instructions, STD, LDG, several */ /* expired Reserved-PAL instructions, and a few other */ /* pre-EV4 instructions. */ /* */ /* */ /* X-5A1 SDD Steve DiPirro 27-Jul-1995 */ /* Got tired of waiting and added LDBU, LDWU, STB, STW, */ /* SEXTB, SEXTW, AMASK, and IMPLVER */ /* */ /* WMB (and 2 unused MB's) AND EXCB were added */ /* DRAINT changed to TRAPB */ /* */ /* */ /* This information is company confidential */ #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 */