/**/ /***************************************************************************/ /** **/ /** © 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:37:48 by OpenVMS SDL EV3-3 */ /* Source: 11-AUG-2004 16:46:46 $1$DGA7274:[LIB_H.SRC]EMBSEDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $EMBSEDEF ***/ #ifndef __EMBSEDEF_LOADED #define __EMBSEDEF_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 #include /* */ /* SOFT ECC DETECTED ERRORS */ /* */ #define EMB$K_SE_REVISION 3 /* Revision field */ #define EMB$C_SE_REVISION 3 /* Revision field */ #define EMB$M_SE_CRD_FLG_DISABLED 0x1 #define EMB$M_SE_CRD_FLG_LOST_INFO 0x2 #define EMB$M_SE_RSN_INIT_ERR 0x1 #define EMB$M_SE_RSN_FPRINTS_FULL 0x2 #define EMB$M_SE_RSN_SHUTDOWN 0x4 #define EMB$M_SE_RSN_DOMAIN_GREW 0x8 #define EMB$M_SE_RSN_BADPGS 0x10 #define EMB$K_SE_FIXED_HD_LENGTH 128 /* Size of FIXED ERL HEADER */ #define EMB$C_SE_FIXED_HD_LENGTH 128 /* Size of FIXED ERL HEADER */ #define EMB$S_EMBSEDEF 128 /* Old size name - synonym */ /*++ */ typedef struct _embse { unsigned int emb$l_se_sid; /*SYSTEM ID */ unsigned short int emb$w_se_hdr_rev; /* HEADER REV LEVEL */ unsigned int emb$l_se_xsid; /* SYS_TYPE REGISTER */ unsigned int emb$l_se_cpuid; /* UNIQUE CPU ID */ unsigned char emb$b_se_dev_class; /* DEVICE CLASS */ unsigned char emb$b_se_dev_type; /* DEVICE TYPE */ SCS_NAME_LEN emb$b_se_scs_name; /* SCS node name in ASCIC */ unsigned short int emb$w_se_flags; /* MISC. FLAGS */ unsigned char emb$b_se_os_id; /* LOGGING OS ID */ unsigned char emb$b_se_hdrsz; /* HEADER SIZE */ unsigned short int emb$w_se_entry; /*ENTRY TYPE */ unsigned __int64 emb$q_se_time; /*TIME IN 64 BITS */ unsigned short int emb$w_se_errseq; /*ERROR SEQUENCE NUMBER */ unsigned __int64 emb$q_se_swvers; /* SOFTWARE VERSION */ unsigned int emb$l_se_errmsk; /* ERROR MASK */ unsigned int emb$l_se_abstim; /* CONTENTS OF EXE$GL_ABSTIM */ unsigned char emb$b_se_hw_name_len; /* Length of marketing name of this system */ char emb$t_se_hw_name [31]; /* marketing name of this system */ /* */ /* Start of CRD info */ /* */ unsigned short int emb$w_se_revision; /* ERL revision field */ __union { unsigned short int emb$w_se_crd_flags; /* ERL flags */ __struct { unsigned emb$v_se_crd_flg_disabled : 1; /* Indicates CRD init processing is not complete. */ /* No scrubbing/replacement til flag is cleared */ unsigned emb$v_se_crd_flg_lost_info : 1; /* Lost information */ unsigned emb$v_fill1 : 14; } emb$r_se_crd_flags_field; } emb$r_se_crd_flags_overlay; /* */ /* LOG_REASON corresponds to the field CRD_FOOT$W_LOG_REASON defined in */ /* $CRD_FOOT. If this field is ever changed, appropriate action must */ /* be taken in CRD_FOOT as well. */ /* */ __union { unsigned short int emb$w_se_log_reason; /* Reason for this ERL entry */ __struct { unsigned emb$v_se_rsn_init_err : 1; /* Error occurred during CRDERR initialization */ unsigned emb$v_se_rsn_fprints_full : 1; /* Entries logged because all footprints in use */ unsigned emb$v_se_rsn_shutdown : 1; /* Entries logged at shutdown */ unsigned emb$v_se_rsn_domain_grew : 1; /* Set when ADDR_CUM in a fprint goes non-zero */ unsigned emb$v_se_rsn_badpgs : 1; /* Indicates a non-zero RPB bad page count */ unsigned emb$v_fill1 : 11; } emb$r_se_log_reason_field1; } emb$r_se_log_reason_overlay; unsigned short int emb$w_se_n_of_m; /* "N of M" field. Ie., packet "1" of "3" */ unsigned int emb$l_se_hwrpb_badpgs; /* RPB bad page count */ unsigned int emb$l_se_memdsc_size; /* variable SYSLOA memdsc size */ unsigned int emb$l_se_memdsc_offset; /* Offset from beg. of EMB to start of memdsc */ unsigned int emb$l_se_num_fprints; /* Number of footprints in this EMB */ unsigned int emb$l_se_fprint_size; /* Size, in bytes, of each fprint */ unsigned int emb$l_se_fprint_offset; /* Offset from beg. of EMB to start of fprints */ /* End of *Fixed portion* of the SE$ header */ /*-- */ } EMBSE; #if !defined(__VAXC) #define emb$w_se_crd_flags emb$r_se_crd_flags_overlay.emb$w_se_crd_flags #define emb$v_se_crd_flg_disabled emb$r_se_crd_flags_overlay.emb$r_se_crd_flags_field.emb$v_se_crd_flg_disabled #define emb$v_se_crd_flg_lost_info emb$r_se_crd_flags_overlay.emb$r_se_crd_flags_field.emb$v_se_crd_flg_lost_info #define emb$w_se_log_reason emb$r_se_log_reason_overlay.emb$w_se_log_reason #define emb$v_se_rsn_init_err emb$r_se_log_reason_overlay.emb$r_se_log_reason_field1.emb$v_se_rsn_init_err #define emb$v_se_rsn_fprints_full emb$r_se_log_reason_overlay.emb$r_se_log_reason_field1.emb$v_se_rsn_fprints_full #define emb$v_se_rsn_shutdown emb$r_se_log_reason_overlay.emb$r_se_log_reason_field1.emb$v_se_rsn_shutdown #define emb$v_se_rsn_domain_grew emb$r_se_log_reason_overlay.emb$r_se_log_reason_field1.emb$v_se_rsn_domain_grew #define emb$v_se_rsn_badpgs emb$r_se_log_reason_overlay.emb$r_se_log_reason_field1.emb$v_se_rsn_badpgs #endif /* #if !defined(__VAXC) */ #define CRD_FOOT$K_MAX_FOOTPRINTS 16 /* Max # of fprints */ #define CRD_FOOT$M_SFLAGS_BUSY 0x1 #define CRD_FOOT$M_SFLAGS_SW_SCRUBBED 0x2 #define CRD_FOOT$M_CALLER_NOSCRUB 0x1 #define CRD_FOOT$M_CALLER_NOREPLACE 0x2 #define CRD_FOOT$M_CALLER_MULE 0x4 #define CRD_FOOT$M_SCRMSK_PFNTOOBIG 0x1 #define CRD_FOOT$M_SCRMSK_MCHK 0x2 #define CRD_FOOT$M_SCRMSK_MAPFAILED 0x4 #define CRD_FOOT$M_SCRMSK_UNMAPFAILED 0x8 #define CRD_FOOT$M_SCRMSK_TOOMANYRETRY 0x10 #define CRD_FOOT$K_LENGTH 80 /* Length of argument area */ #define CRD_FOOT$C_LENGTH 80 /* Length of argument area */ #define CRD_FOOT$S_CRD_FOOTDEF 80 /* Old size name - synonym */ typedef struct _crd_foot { unsigned __int64 crd_foot$q_footprint; /* 64-bits of error syndrome */ unsigned __int64 crd_foot$q_systime; /* System time of the CRD */ unsigned __int64 crd_foot$q_addr_low; /* 64-bit lowest address associated with this CRD */ unsigned __int64 crd_foot$q_addr_high; /* 64-bit highest address associated with this CRD */ unsigned __int64 crd_foot$q_addr_cum; /* 64-bit bitmask of lowest address XORed, then ORed with all new addresses */ unsigned int crd_foot$l_scrub_blksiz; /* Size, in bytes, of area to scrub */ __union { unsigned short int crd_foot$w_static_flags; /* Footprint flags */ __struct { unsigned crd_foot$v_sflags_busy : 1; /* Indicates this CRD_FOOT in use */ unsigned crd_foot$v_sflags_sw_scrubbed : 1; /* CRD scrubbed */ unsigned crd_foot$v_fill1 : 14; } crd_foot$r_static_flags_field1; } crd_foot$r_static_flags_overlay; /* The CRD_FOOT$W_LOG_REASON contains a bitmask of reasons for logging a */ /* particular footprint. These bit definitions must line up with those in */ /* $CRD_EMBDEF. In particular, the field CRD_EMB$W_LOG_REASON defines the */ /* acceptable log reason bits. [LIB]CRD_EMBDEF.SDL should be updated if new */ /* reasons need to be defined. */ /* */ unsigned short int crd_foot$w_log_reason; /* Reasons for logging this fprint */ __union { unsigned int crd_foot$l_caller_flags; /* Status bits for this CALLER */ __struct { unsigned crd_foot$v_caller_noscrub : 1; /* Only update the footprint info - do not attempt scrub */ unsigned crd_foot$v_caller_noreplace : 1; /* Only update the footprint info - do not attempt replace */ unsigned crd_foot$v_caller_mule : 1; /* multiple error found */ unsigned crd_foot$v_fill1 : 29; } crd_foot$r_caller_flags_field1; } crd_foot$r_caller_flags_overlay; __union { unsigned int crd_foot$l_scrub_failmsk; /* Contains collective reasons why page couldn't be scrubbed */ __struct { unsigned crd_foot$v_scrmsk_pfntoobig : 1; /* Footprint PFN was greater than the system maximum. */ unsigned crd_foot$v_scrmsk_mchk : 1; /* Machine check occurred during scrub */ unsigned crd_foot$v_scrmsk_mapfailed : 1; /* Mapping the physical addr failed */ unsigned crd_foot$v_scrmsk_unmapfailed : 1; /* Unmapping the physical addr failed */ unsigned crd_foot$v_scrmsk_toomanyretry : 1; /* Too many retries */ unsigned crd_foot$v_fill1 : 27; } crd_foot$r_scrfailmsk_field1; } crd_foot$r_scrfailmsk_overlay; unsigned int crd_foot$l_match_cnt; /* Total CRDs which match this footprint */ unsigned int crd_foot$l_scrub_cnt; /* Number of times a page was scrubbed */ unsigned __int64 crd_foot$q_firstscrub_time; /* Time at which first scrubbed CRD matched footprint */ unsigned __int64 crd_foot$q_lastscrub_time; /* Time at which last CRD matched footprint after scrubbing */ } CRD_FOOT; #if !defined(__VAXC) #define crd_foot$w_static_flags crd_foot$r_static_flags_overlay.crd_foot$w_static_flags #define crd_foot$v_sflags_busy crd_foot$r_static_flags_overlay.crd_foot$r_static_flags_field1.crd_foot$v_sflags_busy #define crd_foot$v_sflags_sw_scrubbed crd_foot$r_static_flags_overlay.crd_foot$r_static_flags_field1.crd_foot$v_sflags_sw_scrubbed #define crd_foot$l_caller_flags crd_foot$r_caller_flags_overlay.crd_foot$l_caller_flags #define crd_foot$v_caller_noscrub crd_foot$r_caller_flags_overlay.crd_foot$r_caller_flags_field1.crd_foot$v_caller_noscrub #define crd_foot$v_caller_noreplace crd_foot$r_caller_flags_overlay.crd_foot$r_caller_flags_field1.crd_foot$v_caller_noreplace #define crd_foot$v_caller_mule crd_foot$r_caller_flags_overlay.crd_foot$r_caller_flags_field1.crd_foot$v_caller_mule #define crd_foot$l_scrub_failmsk crd_foot$r_scrfailmsk_overlay.crd_foot$l_scrub_failmsk #define crd_foot$v_scrmsk_pfntoobig crd_foot$r_scrfailmsk_overlay.crd_foot$r_scrfailmsk_field1.crd_foot$v_scrmsk_pfntoobig #define crd_foot$v_scrmsk_mchk crd_foot$r_scrfailmsk_overlay.crd_foot$r_scrfailmsk_field1.crd_foot$v_scrmsk_mchk #define crd_foot$v_scrmsk_mapfailed crd_foot$r_scrfailmsk_overlay.crd_foot$r_scrfailmsk_field1.crd_foot$v_scrmsk_mapfailed #define crd_foot$v_scrmsk_unmapfailed crd_foot$r_scrfailmsk_overlay.crd_foot$r_scrfailmsk_field1.crd_foot$v_scrmsk_unmapfailed #define crd_foot$v_scrmsk_toomanyretry crd_foot$r_scrfailmsk_overlay.crd_foot$r_scrfailmsk_field1.crd_foot$v_scrmsk_toomanyretry #endif /* #if !defined(__VAXC) */ #define CRD_ARG$K_LENGTH 32 #define CRD_ARG$C_LENGTH 32 #define CRD_ARG$S_CRD_ARGDEF 32 /* Old size name - synonym */ typedef struct _crd_arg { unsigned __int64 crd_arg$q_footprint; /* 64-bits of error syndrome */ unsigned __int64 crd_arg$q_systime; /* System time of the CRD */ unsigned __int64 crd_arg$q_address; /* 64-bit address */ unsigned int crd_arg$l_flags; /* flags */ unsigned int crd_arg$l_scrub_blksiz; /* Size, in bytes, of area to scrub */ } CRD_ARG; #define CRD$K_SCRUB_RETRY 3 /* Number of retries */ /* Define fields in EXE$GL_CRD_CONTROL */ #define CRD_CONTROL$M_CRD_ENABLE 0x1 #define CRD_CONTROL$M_SCRUB_ENABLE 0x2 #define CRD_CONTROL$M_PAGE_REPLACE_ENABLE 0x4 #define CRD_CONTROL$M_FORCE_ALL_PFNDB 0x8 #define CRD_CONTROL$M_EXT_CRD_ONLY 0x10 #define CRD_CONTROL$M_LOAD_SMDRIVER 0x20 #define CRD_CONTROL$M_THROTTLE_DISABLE 0x40 #define CRD_CONTROL$M_SEL_DISABLE 0x80 typedef struct _crd_control { __union { int crd_control$l_crd_control; __struct { unsigned crd_control$v_crd_enable : 1; /* Enable CRD processing */ unsigned crd_control$v_scrub_enable : 1; /* CRD scrubbing enabled */ unsigned crd_control$v_page_replace_enable : 1; /* Enable bad page replacement */ unsigned crd_control$v_force_all_pfndb : 1; /* Force all pages in PFN db */ unsigned crd_control$v_ext_crd_only : 1; /* Log only Extended CRDs */ unsigned crd_control$v_load_smdriver : 1; /* Load SMDRIVER */ unsigned crd_control$v_throttle_disable : 1; /* Disable CRD throttling when set */ unsigned crd_control$v_sel_disable : 1; /* Disable SEL Polling when set */ unsigned crd_control$v_reserved : 8; unsigned short int crd_control$w_sys_specific; /* Reserved for system-specific bits */ } crd_control$r_crd_control_fields; } crd_control$r_crd_control_overlay; } CRD_CONTROL; #if !defined(__VAXC) #define crd_control$l_crd_control crd_control$r_crd_control_overlay.crd_control$l_crd_control #define crd_control$v_crd_enable crd_control$r_crd_control_overlay.crd_control$r_crd_control_fields.crd_control$v_crd_enable #define crd_control$v_scrub_enable crd_control$r_crd_control_overlay.crd_control$r_crd_control_fields.crd_control$v_scrub_enable #define crd_control$v_page_replace_enable crd_control$r_crd_control_overlay.crd_control$r_crd_control_fields.crd_control$v_page_rep\ lace_enable #define crd_control$v_force_all_pfndb crd_control$r_crd_control_overlay.crd_control$r_crd_control_fields.crd_control$v_force_all_pf\ ndb #define crd_control$v_ext_crd_only crd_control$r_crd_control_overlay.crd_control$r_crd_control_fields.crd_control$v_ext_crd_only #define crd_control$v_load_smdriver crd_control$r_crd_control_overlay.crd_control$r_crd_control_fields.crd_control$v_load_smdriver #define crd_control$v_throttle_disable crd_control$r_crd_control_overlay.crd_control$r_crd_control_fields.crd_control$v_throttle_di\ sable #define crd_control$v_sel_disable crd_control$r_crd_control_overlay.crd_control$r_crd_control_fields.crd_control$v_sel_disable #define crd_control$w_sys_specific crd_control$r_crd_control_overlay.crd_control$r_crd_control_fields.crd_control$w_sys_specific #endif /* #if !defined(__VAXC) */ #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 /* __EMBSEDEF_LOADED */