/**/ /***************************************************************************/ /** **/ /** © 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:03 by OpenVMS SDL EV3-3 */ /* Source: 07-JUN-1993 13:21:25 $1$DGA7274:[LIB_H.SRC]MSLGDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $MSLGDEF ***/ #ifndef __MSLGDEF_LOADED #define __MSLGDEF_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 /*+ */ /* MSLG, MScp error LoG message definitions */ /* These definitions describe the format of the error log messages */ /* generated by MSCP and TMSCP devices. */ /*- */ /* */ /* Generic MSCP/TMSCP error log entry format */ /* */ #define MSLG$M_LF_SQNRS 0x1 #define MSLG$M_LF_RPLER 0x10 #define MSLG$M_LF_BBR 0x20 #define MSLG$M_LF_CONT 0x40 #define MSLG$M_LF_SUCC 0x80 #define MSLG$K_CNT_ERR 0 #define MSLG$K_BUS_ADDR 1 #define MSLG$K_DISK_TRN 2 #define MSLG$K_SDI 3 #define MSLG$K_SML_DSK 4 #define MSLG$K_TAPE_TRN 5 #define MSLG$K_STI_ERR 6 #define MSLG$K_STI_DEL 7 #define MSLG$K_STI_FEL 8 #define MSLG$K_REPLACE 9 #define MSLG$K_LDR_ERR 10 #define MSLG$S_MSLG_CNT_ERR 23 /* Old size name for MSLG_CNT_ERR aggregate */ #define MSLG$S_MSLG_BUS_ADDR 28 /* Old size name for MSLG_BUS_ADDR aggregate */ #define MSLG$M_LFR_BR 0x400 #define MSLG$M_LFR_RI 0x800 #define MSLG$M_LFR_RF 0x1000 #define MSLG$M_LFR_TE 0x2000 #define MSLG$M_LFR_FE 0x4000 #define MSLG$M_LFR_RP 0x8000 #define MSLG$S_MSLG_SML_DSK 41 /* Old size name for MSLG_SML_DSK aggregate. */ typedef struct _generic_mscp_errlog { unsigned int mslg$l_cmd_ref; /* Command reference number */ unsigned short int mslg$w_unit; /* Unit number */ unsigned short int mslg$w_seq_num; /* Sequence Number */ unsigned char mslg$b_format; /* Format */ __union { unsigned char mslg$b_flags; /* Error Log Message Flags */ __struct { unsigned mslg$v_lf_sqnrs : 1; /* Sequence Number Reset */ unsigned mslg$v_filler : 3; unsigned mslg$v_lf_rpler : 1; /* Error during replacement */ unsigned mslg$v_lf_bbr : 1; /* Bad block replacement request */ unsigned mslg$v_lf_cont : 1; /* Operation continuing */ unsigned mslg$v_lf_succ : 1; /* Operation successful */ } mslg$r_fill_1_; } mslg$r_fill_0_; unsigned short int mslg$w_event; /* Event Code */ unsigned __int64 mslg$q_cnt_id; /* Controller ID */ unsigned char mslg$b_cnt_svr; /* Controller software version */ unsigned char mslg$b_cnt_hvr; /* Controller hardware version */ __union { unsigned short int mslg$w_mult_unt; /* Multi-unit Code */ char mslg$z_cnt_err; /* Controller dependent data - previously contained */ /* in MSLG_CNT_ERR aggregate */ /* Controller Error (MSLG$K_CNT_ERR) */ } mslg$r_mult_unt_overlay; __union { unsigned __int64 mslg$q_unit_id; /* Unit ID */ void *mslg$l_bus_addr; /* Host Memory Access Error (MSLG$K_BUS_ADDR) */ /* Bus Address - previously contained in */ /* MSLG_BUS_ADDR aggregate */ } mslg$r_unit_id_overlay; unsigned char mslg$b_unit_svr; /* Unit software version */ unsigned char mslg$b_unit_hvr; /* Unit hardware version */ __union { __struct { unsigned char mslg$b_level; /* Level */ unsigned char mslg$b_retry; /* Retry */ } mslg$r_level_retry; unsigned short int mslg$w_sde_cyl; /* Cylinder - used in MSLG_SML_DSK for MSLG$K_SML_DSK */ __union { unsigned short int mslg$w_rpl_flgs; /* Replace Flags - used in MSLG_REPLACE for MSLG$K_REPLACE */ __struct { unsigned mslg$v_bit_fill : 10; unsigned mslg$v_lfr_br : 1; /* Bad RBN */ unsigned mslg$v_lfr_ri : 1; /* RCT inconsistent */ unsigned mslg$v_lfr_rf : 1; /* Reformat error */ unsigned mslg$v_lfr_te : 1; /* Tertiary revector */ unsigned mslg$v_lfr_fe : 1; /* Forced error (data not recovered) */ unsigned mslg$v_lfr_rp : 1; /* Replace attempted (block really bad) */ } mslg$r_fill_3_; } mslg$r_fill_2_; } mslg$r_fmt_dependent; __union { __struct { __union { unsigned int mslg$l_vol_ser; /* Volume Serial Number (disks) */ unsigned int mslg$l_gap_cnt; /* Position - object count (tapes) */ } mslg$r_volser_gapcnt; __union { __struct { unsigned char mslg$b_fmtr_svr; /* Formatter software version */ unsigned char mslg$b_fmtr_hvr; /* Formatter hardware version */ short int mslg$w_reserved; } mslg$r_fmtr_version; unsigned int mslg$l_hdr_code; /* Header Code - from MSLG_DISK_TRN aggregate for */ /* Disk Transfer Error (MSLG$K_DISK_TRN) */ unsigned int mslg$l_bad_lbn; /* Bad LBN - from MSLG_REPLACE aggregate for */ /* Bad Block Replacement Attempted (MSLG$K_REPLACE */ char mslg$z_sml_dsk; /* Controller or device dependent - used in MSLG_SML_DSK */ } mslg$r_version_overlay; } mslg$r_volser_version; unsigned __int64 mslg$q_ml_id; /* Media loader identifier - */ /* used in MSLG_LDR_ERR for MSLG$K_LDR_ERR */ } mslg$r_media_ldr_overlay; } GENERIC_MSCP_ERRLOG; #if !defined(__VAXC) #define mslg$b_flags mslg$r_fill_0_.mslg$b_flags #define mslg$v_lf_sqnrs mslg$r_fill_0_.mslg$r_fill_1_.mslg$v_lf_sqnrs #define mslg$v_lf_rpler mslg$r_fill_0_.mslg$r_fill_1_.mslg$v_lf_rpler #define mslg$v_lf_bbr mslg$r_fill_0_.mslg$r_fill_1_.mslg$v_lf_bbr #define mslg$v_lf_cont mslg$r_fill_0_.mslg$r_fill_1_.mslg$v_lf_cont #define mslg$v_lf_succ mslg$r_fill_0_.mslg$r_fill_1_.mslg$v_lf_succ #define mslg$w_mult_unt mslg$r_mult_unt_overlay.mslg$w_mult_unt #define mslg$z_cnt_err mslg$r_mult_unt_overlay.mslg$z_cnt_err #define mslg$q_unit_id mslg$r_unit_id_overlay.mslg$q_unit_id #define mslg$l_bus_addr mslg$r_unit_id_overlay.mslg$l_bus_addr #define mslg$b_level mslg$r_fmt_dependent.mslg$r_level_retry.mslg$b_level #define mslg$b_retry mslg$r_fmt_dependent.mslg$r_level_retry.mslg$b_retry #define mslg$w_sde_cyl mslg$r_fmt_dependent.mslg$w_sde_cyl #define mslg$w_rpl_flgs mslg$r_fmt_dependent.mslg$r_fill_2_.mslg$w_rpl_flgs #define mslg$v_lfr_br mslg$r_fmt_dependent.mslg$r_fill_2_.mslg$r_fill_3_.mslg$v_lfr_br #define mslg$v_lfr_ri mslg$r_fmt_dependent.mslg$r_fill_2_.mslg$r_fill_3_.mslg$v_lfr_ri #define mslg$v_lfr_rf mslg$r_fmt_dependent.mslg$r_fill_2_.mslg$r_fill_3_.mslg$v_lfr_rf #define mslg$v_lfr_te mslg$r_fmt_dependent.mslg$r_fill_2_.mslg$r_fill_3_.mslg$v_lfr_te #define mslg$v_lfr_fe mslg$r_fmt_dependent.mslg$r_fill_2_.mslg$r_fill_3_.mslg$v_lfr_fe #define mslg$v_lfr_rp mslg$r_fmt_dependent.mslg$r_fill_2_.mslg$r_fill_3_.mslg$v_lfr_rp #define mslg$l_vol_ser mslg$r_media_ldr_overlay.mslg$r_volser_version.mslg$r_volser_gapcnt.mslg$l_vol_ser #define mslg$l_gap_cnt mslg$r_media_ldr_overlay.mslg$r_volser_version.mslg$r_volser_gapcnt.mslg$l_gap_cnt #define mslg$b_fmtr_svr mslg$r_media_ldr_overlay.mslg$r_volser_version.mslg$r_version_overlay.mslg$r_fmtr_version.mslg$b_fmtr_svr #define mslg$b_fmtr_hvr mslg$r_media_ldr_overlay.mslg$r_volser_version.mslg$r_version_overlay.mslg$r_fmtr_version.mslg$b_fmtr_hvr #define mslg$l_hdr_code mslg$r_media_ldr_overlay.mslg$r_volser_version.mslg$r_version_overlay.mslg$l_hdr_code #define mslg$l_bad_lbn mslg$r_media_ldr_overlay.mslg$r_volser_version.mslg$r_version_overlay.mslg$l_bad_lbn #define mslg$z_sml_dsk mslg$r_media_ldr_overlay.mslg$r_volser_version.mslg$r_version_overlay.mslg$z_sml_dsk #define mslg$q_ml_id mslg$r_media_ldr_overlay.mslg$q_ml_id #endif /* #if !defined(__VAXC) */ /* */ /* Controller Error (MSLG$K_CNT_ERR) */ /* */ /* Aggregate MSLG_CNT_ERR has been removed and it's fields have been */ /* incorporated into GENERIC_MSCP_ERRLOG. The following fields are */ /* specific to this error: */ /* CNT_ERR byte tag Z; /* Controller dependent data - this field is now */ /* */ /* Host Memory Access Error (MSLG$K_BUS_ADDR) */ /* */ /* Aggregate MSLG_BUS_ADDR has been removed and it's fields have been */ /* incorporated into GENERIC_MSCP_ERRLOG. The following fields are */ /* specific to this error: */ /* BUS_ADDR longword unsigned; /* Bus Address */ /* */ /* Disk Transfer Error (MSLG$K_DISK_TRN) */ /* */ #define MSLG$K_DISK_TRN_MSGSIZ 44 /* Size of DISK_TRN_ERROR msg. */ typedef struct _mslg_disk_trn { GENERIC_MSCP_ERRLOG mslg$r_filler; /* HDR_CODE - is now located in GENERIC_MSCP_ERRLOG */ char mslg$z_disk_trn; /* Controller or disk dependent data */ } MSLG_DISK_TRN; /* */ /* SDI Error (MSLG$K_SDI) */ /* */ typedef struct _mslg_sdi { GENERIC_MSCP_ERRLOG mslg$r_generic_mscp_errlog; unsigned char mslg$z_sdi [12]; /* SDI Information */ } MSLG_SDI; /* */ /* Small Disk Error (MSLG$K_SML_DSK) */ /* */ /* Aggregate MSLG_SML_DSK has been removed and it's fields have been */ /* incorporated into GENERIC_MSCP_ERRLOG. The following fields are */ /* specific to this error: */ /* SDE_CYL word unsigned; /* Cylinder */ /* SML_DSK byte tag Z; /* Controller or device dependent */ /* */ /* Tape Transfer Error (MSLG$K_STI_ERR) */ /* */ /* There are no special field definitions for tape transfer errors at this time. */ /* */ /* STI communication or command failure (MSLG$K_STI_ERR) */ /* STI drive error log (MSLG$K_STI_DEL) */ /* STI formatter error log (MSLG$K_STI_FEL) */ /* */ typedef struct _mslg_sti_err { GENERIC_MSCP_ERRLOG mslg$r_generic_mscp_errlog; unsigned char mslg$z_sti [20]; /* STI Information */ } MSLG_STI_ERR; /* */ /* Bad Block Replacement Attempted (MSLG$K_REPLACE) */ /* */ #define MSLG$K_REPLACE_MSGSIZ 54 /* Size of REPLACE msg for BBR error logging */ typedef struct _mslg_replace { GENERIC_MSCP_ERRLOG mslg$r_generic_mscp_errlog; /* Replace Flags now located in GENERIC_MSCP_ERRLOG */ unsigned int mslg$l_old_rbn; /* Previous RBN */ unsigned int mslg$l_new_rbn; /* New RBN */ unsigned short int mslg$w_cause; /* Event code causing replacement */ } MSLG_REPLACE; /* */ /* Media Loader Errors (MSLG$K_LDR_ERR) */ /* */ typedef struct _mslg_ldr_err { GENERIC_MSCP_ERRLOG mslg$r_generic_mscp_errlog; /*The following fields have been moved to GENERIC_MSCP_ERRLOG */ unsigned char mslg$b_ml_svr; /* Media loader software version */ unsigned char mslg$b_ml_hvr; /* Media loader hardware version */ unsigned short int mslg$w_ml_unit; /* Media loader unit number */ char mslg$z_ldr_err; /* Controller dependent data */ } MSLG_LDR_ERR; #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 /* __MSLGDEF_LOADED */