/**/ /***************************************************************************/ /** **/ /** © 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:01 by OpenVMS SDL EV3-3 */ /* Source: 08-DEC-2005 03:27:15 $1$DGA7274:[LIB_H.SRC]MSCPDEF.SDL;1 */ /********************************************************************************************************************************/ /*** MODULE $MSCPDEF ***/ #ifndef __MSCPDEF_LOADED #define __MSCPDEF_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 /*++ */ /* MSCP (Mass Storage Control Protocol) Definitions */ /* */ /* These definitions describe the format of the command and end message */ /* packets exchanged under MSCP between the host and the controller. */ /*-- */ #define MSCP$M_EU_NO 0xFF #define MSCP$M_EU_SUBU 0x7 #define MSCP$M_EU_SUBC 0xF8 #define MSCP$K_EMS_CNSL 0 #define MSCP$K_EMS_RP 1 #define MSCP$K_EMS_RM 2 #define MSCP$K_EMS_RK 3 #define MSCP$K_EMS_RL 4 #define MSCP$K_EMS_RX 5 #define MSCP$K_EMS_FD1 6 #define MSCP$K_EMS_FD2 7 #define MSCP$K_EMS_FD3 8 #define MSCP$K_EMS_FD4 9 #define MSCP$K_EMS_FD5 10 #define MSCP$K_EMS_FD6 11 #define MSCP$K_EMS_FD7 12 #define MSCP$K_EMS_FD8 13 #define MSCP$M_EU_CTYPE 0xF00 #define MSCP$K_EMD_OLD 0 #define MSCP$K_EMD_UDA 1 #define MSCP$K_EMD_HSC 2 #define MSCP$K_EMD_AZT 3 #define MSCP$K_EMD_RDRX 4 #define MSCP$K_EMD_EMUL 5 #define MSCP$M_EU_DESIG 0x7000 #define MSCP$M_SHADOW 0x8000 #define MSCP$M_OP_ATTN 0x40 #define MSCP$M_OP_END 0x80 #define MSCP$M_MD_SEREC 0x100 #define MSCP$M_MD_SECOR 0x200 #define MSCP$M_MD_CLSEX 0x2000 #define MSCP$M_MD_COMP 0x4000 #define MSCP$M_MD_WRSEQ 0x10 #define MSCP$M_MD_WBKVL 0x20 #define MSCP$M_MD_WBKNV 0x40 #define MSCP$M_MD_SSHDW 0x80 #define MSCP$M_MD_SCCHL 0x400 #define MSCP$M_MD_SCCHH 0x800 #define MSCP$M_MD_ERROR 0x1000 #define MSCP$M_MD_EXPRS 0x8000 #define MSCP$M_MD_REWND 0x2 #define MSCP$M_MD_OBJCT 0x4 #define MSCP$M_MD_REVRS 0x8 #define MSCP$M_MD_UNLOD 0x10 #define MSCP$M_MD_IMMED 0x40 #define MSCP$M_MD_DLEOT 0x80 #define MSCP$M_MD_INHERLOG 0x200 #define MSCP$M_MD_CDATL 0x1000 #define MSCP$M_MD_SPNDW 0x1 #define MSCP$M_MD_ALLCD 0x2 #define MSCP$M_MD_DSOLV 0x10 #define MSCP$M_MD_FLENU 0x1 #define MSCP$M_MD_VOLTL 0x2 #define MSCP$M_MD_NXUNT 0x1 #define MSCP$M_MD_RIP 0x1 #define MSCP$M_MD_IGNMF 0x2 #define MSCP$M_MD_STWRP 0x4 #define MSCP$M_MD_CLWBL 0x8 #define MSCP$M_MD_SHDSP 0x10 #define MSCP$M_MD_EXCAC 0x20 #define MSCP$M_MD_PRIMR 0x1 #define MSCP$M_MD_CRNPR 0x1 #define MSCP$M_MD_ENRWR 0x10 #define MSCP$M_MD_TBC 0x8000 #define MSCP$M_MD_HISLO 0x8 #define MSCP$M_MD_SUPWL 0x10 #define MSCP$M_MD_REUSE 0x80 #define MSCP$M_MD_LOCSU 0x1 #define MSCP$M_MD_ESTCP 0x2 #define MSCP$M_MD_RETCP 0x4 #define MSCP$S_MSCP_MODIFIERS 12 /* MSCP_MODIFIERS used to be an aggregate. */ /* We need to generate the old size field */ #define MSCP$M_EF_CPRET 0x1 #define MSCP$M_EF_DLS 0x2 #define MSCP$M_EF_PLS 0x4 #define MSCP$M_EF_EOT 0x8 #define MSCP$M_EF_SEREX 0x10 #define MSCP$M_EF_ERLOG 0x20 #define MSCP$M_EF_BBLKU 0x40 #define MSCP$M_EF_BBLKR 0x80 #define MSCP$M_EF_HISLO 0x4 #define MSCP$M_EF_ALLOF 0x8 #define MSCP$M_EF_FASTSKIP_USED 0x80 #define MSCP$M_ST_MASK 0x1F #define MSCP$K_ST_SUCC 0 #define MSCP$K_ST_ICMD 1 #define MSCP$K_ST_ABRTD 2 #define MSCP$K_ST_OFFLN 3 #define MSCP$K_ST_AVLBL 4 #define MSCP$K_ST_MFMTE 5 #define MSCP$K_ST_WRTPR 6 #define MSCP$K_ST_COMP 7 #define MSCP$K_ST_DATA 8 #define MSCP$K_ST_HSTBF 9 #define MSCP$K_ST_CNTLR 10 #define MSCP$K_ST_DRIVE 11 #define MSCP$K_ST_FMTER 12 #define MSCP$K_ST_BOT 13 #define MSCP$K_ST_TAPEM 14 #define MSCP$K_ST_SHST 12 #define MSCP$K_ST_WHEAE 13 #define MSCP$K_ST_RDTRN 16 #define MSCP$K_ST_PLOST 17 #define MSCP$K_ST_PRESE 18 #define MSCP$K_ST_LED 19 #define MSCP$K_ST_BBR 20 #define MSCP$K_ST_IPARM 21 #define MSCP$K_ST_INFO 22 #define MSCP$K_ST_LOADR 23 #define MSCP$K_ST_HOST 24 #define MSCP$K_ST_UNREC 20 #define MSCP$K_ST_SBCERR 30 #define MSCP$K_ST_DIAG 31 #define MSCP$K_ST_SBCOD 32 #define MSCP$M_ST_SBCOD 0xFFE0 #define MSCP$K_SC_NORML 0 /* Normal */ #define MSCP$K_SC_SDIGN 1 /* Spin Down IGNored */ #define MSCP$K_SC_STCON 2 /* STill CONnected */ #define MSCP$K_SC_DUPUN 4 /* DUPlicate UNit number */ #define MSCP$K_SC_ALONL 8 /* ALready ONLine */ #define MSCP$K_SC_STONL 16 /* STill ONLine */ #define MSCP$K_SC_EOT 32 /* EOT encountered (tapes only) */ #define MSCP$K_SC_INREP 32 /* INcomplete REPlacement (disks only) */ #define MSCP$K_SC_IVRCT 64 /* InValid RCT (disks only) */ #define MSCP$K_SC_RDONY 128 /* ReaD ONlY volume format */ #define MSCP$M_SC_SDIGN 0x20 #define MSCP$M_SC_STCON 0x40 #define MSCP$M_SC_DUPUN 0x80 #define MSCP$M_SC_ALONL 0x100 #define MSCP$M_SC_STONL 0x200 #define MSCP$M_SC_EOT 0x400 #define MSCP$M_SC_INREP 0x400 #define MSCP$M_SC_IVRCT 0x800 #define MSCP$M_SC_RDONY 0x1000 #define MSCP$K_SC_INVML 0 /* INValid Message Length */ /* Unit-Offline Subcode Values */ #define MSCP$K_SC_UNKNO 0 /* UNKoNOwn unit or online to another controller */ #define MSCP$K_SC_NOVOL 1 /* NO VOLume mounted or drive disabled (RUN/STOP) */ #define MSCP$K_SC_INOPR 2 /* unit is INOPeRative */ #define MSCP$K_SC_UDSBL 8 /* Unit disabled by field service or diagnostic */ #define MSCP$K_SC_EXUSE 16 /* Exclusive use */ #define MSCP$K_SC_LDR 32 /* Loader cycle error */ #define MSCP$M_SC_NOVOL 0x20 #define MSCP$M_SC_INOPR 0x40 #define MSCP$M_SC_UDSBL 0x100 #define MSCP$M_SC_EXUSE 0x200 #define MSCP$M_SC_LDR 0x400 #define MSCP$K_SC_CPYIP 2 /* Copy in progress */ #define MSCP$K_SC_NOMEM 4 /* No members in shadow set */ #define MSCP$K_SC_ALUSE 32 /* Already in use */ #define MSCP$M_SC_CPYIP 0x40 #define MSCP$M_SC_NOMEM 0x80 #define MSCP$M_SC_ALUSE 0x400 #define MSCP$K_SC_IVHD 2 #define MSCP$K_SC_NOSYNC 3 #define MSCP$K_SC_SSCM 4 #define MSCP$K_SC_NO512 5 #define MSCP$K_SC_NOFMT 6 #define MSCP$K_SC_ECCER 7 #define MSCP$K_SC_RCTBD 8 #define MSCP$K_SC_NORBL 9 /* Write-Protected Subcode Values */ #define MSCP$K_SC_DATAL 8 /* Unit is DATA Loss write protected (data safety) */ #define MSCP$K_SC_SOFTW 128 /* Unit is SOFTWare protected */ #define MSCP$K_SC_HARDW 256 /* Unit is HARDWare protected */ #define MSCP$M_SC_DATAL 0x100 #define MSCP$M_SC_SOFTW 0x1000 #define MSCP$M_SC_HARDW 0x2000 #define MSCP$K_SC_FRCER 0 /* Forced Error (disks) */ #define MSCP$K_SC_LGE 0 /* Long Gap Encountered (tapes) */ #define MSCP$K_SC_MEDIA 3 /* Media error. */ /* Host Buffer Access Error Subcode Values */ #define MSCP$K_SC_ODDTA 1 #define MSCP$K_SC_ODDBC 2 #define MSCP$K_SC_NXM 3 #define MSCP$K_SC_MPAR 4 #define MSCP$K_SC_IVPTE 5 #define MSCP$K_SC_IVBFN 6 #define MSCP$K_SC_BLENV 7 #define MSCP$K_SC_ACVIO 8 /* Controller Error Subcode Values */ #define MSCP$K_SC_DLATE 1 #define MSCP$K_SC_EDCER 2 #define MSCP$K_SC_DTSTR 3 #define MSCP$K_SC_IEDC 4 #define MSCP$K_SC_LACIN 5 #define MSCP$K_SC_LACOU 6 #define MSCP$K_SC_LACCB 7 #define MSCP$K_SC_OVRUN 8 #define MSCP$K_SC_MEMER 9 #define MSCP$K_SC_REMRSRC 10 #define MSCP$K_SC_RCONL 20 #define MSCP$K_SC_RCONF 21 #define MSCP$K_SC_BADSA 22 #define MSCP$K_SC_NOSER 23 #define MSCP$K_SC_NORES 24 #define MSCP$K_SC_NOCRE 25 #define MSCP$K_SC_BADPR 26 #define MSCP$K_SC_NEGAK 27 #define MSCP$K_SC_TMOUT 28 #define MSCP$K_SC_LCONF 29 #define MSCP$K_SC_DISCN 30 /* Bad Block Replacement Subcode Values */ #define MSCP$K_SC_BBROK 0 #define MSCP$K_SC_NOTRP 1 #define MSCP$K_SC_RPLFL 2 #define MSCP$K_SC_ICRCT 3 #define MSCP$K_SC_DRVER 4 #define MSCP$K_SC_RCTFULL 5 #define MSCP$K_SC_RECURFAIL 6 /* Unrecognized Media Subcode Values */ #define MSCP$K_SC_NOTAPEFMT 1 /* Invalid Parameter Subcode Values */ #define MSCP$K_SC_IVKLN 1 #define MSCP$K_SC_IVKTY 2 #define MSCP$K_SC_IVKVL 3 /* Media Loader Error Subcode Values */ #define MSCP$K_SC_ML_TMO 1 #define MSCP$K_SC_ML_TXERR 2 #define MSCP$K_SC_ML_PRTCL 3 #define MSCP$K_SC_ML_ERROR 4 /* Host Error Subcode Values */ #define MSCP$K_SC_SEGUNDR 1 /* Write History Entry Access Error Subcode Values */ #define MSCP$K_SC_ALLOF 1 #define MSCP$K_SC_TABFU 2 #define MSCP$K_SC_NOENT 8 #define MSCP$M_SC_ALLOF 0x2 #define MSCP$M_SC_TABFU 0x4 #define MSCP$M_SC_NOENT 0x10 #define MSCP$K_SC_DCDC 3 /* Subcommand Error Status or Event Subcode Values */ #define MSCP$K_SC_DST_TIMOUT 1 #define MSCP$K_SC_DST_INCSTA 2 #define MSCP$K_SC_DST_UNRCOV 4 #define MSCP$K_SC_SRC_TIMOUT 1025 #define MSCP$K_SC_SRC_INCSTA 1026 #define MSCP$K_SC_SRC_UNRCOV 1028 #define MSCP$S_MSCP_SUBCODES 12 typedef struct _mscp_basic_pkt { unsigned int mscp$l_cmd_ref; /* Command reference number */ __union { __union { unsigned short int mscp$w_unit; /* Unit number */ __struct { __union { unsigned mscp$v_eu_no : 8; /* Emulated unit number */ __struct { unsigned mscp$v_eu_subu : 3; /* Old-style unit number */ unsigned mscp$v_eu_subc : 5; /* Old-style controller subtype */ } mscp$r_eu_sub_no; } mscp$r_eu_no_overlay; unsigned mscp$v_eu_ctype : 4; /* Emulated controller type */ unsigned mscp$v_eu_desig : 3; /* Emulated controller designator */ unsigned mscp$v_shadow : 1; /* Shadow unit */ } mscp$r_fill_1_; } mscp$r_fill_0_; unsigned char mscp$b_cnt_alcs; } mscp$r_unit_overlay; unsigned short int mscp$w_seq_num; /* Sequence number (LAST error log) */ __union { unsigned char mscp$b_opcode; /* MSCP operation code */ __struct { unsigned mscp$v_code : 3; unsigned mscp$v_type : 3; unsigned mscp$v_op_attn : 1; /* Attention message */ unsigned mscp$v_op_end : 1; /* End message */ } mscp$r_fill_3_; } mscp$r_fill_2_; __union { __struct { char mscp$b_reserved; __union { unsigned short int mscp$w_modifier; /* MSCP command modifiers */ /* Generic MSCP Modifiers */ __struct { unsigned mscp$v_filler1 : 8; unsigned mscp$v_md_serec : 1; /* Suppress error recovery */ unsigned mscp$v_md_secor : 1; /* Suppress error correction */ unsigned mscp$v_filler2 : 3; unsigned mscp$v_md_clsex : 1; /* Clear serious exception */ unsigned mscp$v_md_comp : 1; /* Compare */ unsigned mscp$v_fill_10_ : 1; } mscp$r_generic_modifiers; __struct { unsigned mscp$v_filler1 : 4; unsigned mscp$v_md_wrseq : 1; /* Write shadow set 1 unit at a time */ unsigned mscp$v_md_wbkvl : 1; /* Write-back (volatile) */ unsigned mscp$v_md_wbknv : 1; /* Write-back (non-volatile) */ unsigned mscp$v_md_sshdw : 1; /* Suppress Shadowing */ unsigned mscp$v_filler2 : 2; unsigned mscp$v_md_scchl : 1; /* Suppress caching (low speed) */ unsigned mscp$v_md_scchh : 1; /* Suppress caching (high speed) */ unsigned mscp$v_md_error : 1; /* Force error */ unsigned mscp$v_filler3 : 2; unsigned mscp$v_md_exprs : 1; /* Express request */ } mscp$r_disk_modifiers; __struct { unsigned mscp$v_filler1 : 1; unsigned mscp$v_md_rewnd : 1; /* Rewind */ unsigned mscp$v_md_objct : 1; /* Object count */ unsigned mscp$v_md_revrs : 1; /* Reverse */ unsigned mscp$v_md_unlod : 1; /* Unload */ unsigned mscp$v_filler2 : 1; unsigned mscp$v_md_immed : 1; /* Request immediate completion */ unsigned mscp$v_md_dleot : 1; /* Request detect LEOT */ unsigned mscp$v_filler3 : 1; unsigned mscp$v_md_inherlog : 1; /* Inhibit error logging */ unsigned mscp$v_filler4 : 2; unsigned mscp$v_md_cdatl : 1; /* Clear Cached Data Lost */ unsigned mscp$v_fill_11_ : 3; } mscp$r_tape_modifiers; __struct { unsigned mscp$v_md_spndw : 1; /* Spin down */ unsigned mscp$v_md_allcd : 1; /* All class drivers */ unsigned mscp$v_reserved : 2; unsigned mscp$v_md_dsolv : 1; /* Disolve shadow set */ unsigned mscp$v_excac : 1; unsigned mscp$v_fill_12_ : 2; } mscp$r_avail_modifiers; __struct { unsigned mscp$v_md_flenu : 1; /* Flush entire unit */ unsigned mscp$v_md_voltl : 1; /* Flush volitile only */ unsigned mscp$v_fill_13_ : 6; } mscp$r_flush_modifiers; __struct { unsigned mscp$v_md_nxunt : 1; /* Next unit */ unsigned mscp$v_fill_14_ : 7; } mscp$r_gtunt_modifiers; __struct { unsigned mscp$v_md_rip : 1; /* Allow self-destruct (online only) */ unsigned mscp$v_md_ignmf : 1; /* Ignore media format error (online only) */ unsigned mscp$v_md_stwrp : 1; /* Enable Set Write Protect */ unsigned mscp$v_md_clwbl : 1; /* Clear Write-Back Data Lost */ unsigned mscp$v_md_shdsp : 1; /* Shadow Unit Specified */ unsigned mscp$v_md_excac : 1; /* Exclusive access */ unsigned mscp$v_fill_15_ : 2; } mscp$r_onlin_stunt_modifiers; __struct { unsigned mscp$v_md_primr : 1; /* Primary replacement block */ unsigned mscp$v_fill_16_ : 7; } mscp$r_replc_modifiers; __struct { unsigned mscp$v_md_crnpr : 1; /* Connection Reference Number Present */ unsigned mscp$v_fill_17_ : 7; } mscp$r_stcon_modifiers; __struct { unsigned mscp$v_filler : 4; unsigned mscp$v_md_enrwr : 1; /* Enable Re-Write Error Recovery (tapes) */ unsigned mscp$v_fill_18_ : 3; } mscp$r_write_modifiers; __struct { unsigned mscp$v_filler : 15; unsigned mscp$v_md_tbc : 1; /* To-be-continued (segmented tapes) */ } mscp$r_seg_xfer_modifiers; __struct { unsigned mscp$v_fill_2 : 3; unsigned mscp$v_md_hislo : 1; /* History Log */ unsigned mscp$v_md_supwl : 1; /* Supplementary Write Log */ unsigned mscp$v_fill_1 : 2; unsigned mscp$v_md_reuse : 1; /* Reuse Entry */ } mscp$r_erase_write_dcd_modifiers; __struct { unsigned mscp$v_md_locsu : 1; /* Local Source Unit */ unsigned mscp$v_md_estcp : 1; /* Establish Communications Paths */ unsigned mscp$v_md_retcp : 1; /* Retain Communications Paths */ unsigned mscp$v_fill_19_ : 5; } mscp$r_dcd_modifiers; } mscp$r_mscp_modifiers; /* to keep the output compatible. */ } mscp$r_modifiers; __struct { __union { __union { unsigned char mscp$b_flags; /* End message flags */ __struct { unsigned mscp$v_ef_cpret : 1; /* Communication Paths Retained */ unsigned mscp$v_ef_dls : 1; /* Cached Data Lost (tapes only) */ unsigned mscp$v_ef_pls : 1; /* Position Lost (tapes only) */ unsigned mscp$v_ef_eot : 1; /* End of Tape Encountered (tapes only) */ unsigned mscp$v_ef_serex : 1; /* Serious exception (tapes only) */ unsigned mscp$v_ef_erlog : 1; /* Error log generated */ unsigned mscp$v_ef_bblku : 1; /* Bad block unreported (disks only) */ unsigned mscp$v_ef_bblkr : 1; /* Bad block reported (disks only) */ } mscp$r_fill_5_; } mscp$r_fill_4_; __union { unsigned char mscp$b_flags1; __struct { unsigned mscp$v_filler1 : 2; unsigned mscp$v_ef_hislo : 1; /* History Logged */ unsigned mscp$v_ef_allof : 1; /* Allocation Failure */ unsigned mscp$v_filler2 : 3; unsigned mscp$v_ef_fastskip_used : 1; /* MT$M_FASTSKIP_USED was set (TMSCP served tapes only) */ } mscp$r_fill_7_; } mscp$r_fill_6_; } mscp$r_flags_overlay; __union { __union { unsigned short int mscp$w_status; /* End message status */ __struct { unsigned mscp$v_st_mask : 5; /* Status code bits */ unsigned mscp$v_st_sbcod : 11; /* Subcode bits */ } mscp$r_fill_9_; } mscp$r_fill_8_; /* Success Subcode Values */ __struct { __union { __struct { unsigned mscp$v_filler : 5; unsigned mscp$v_sc_sdign : 1; /* Spin Down IGNored */ unsigned mscp$v_sc_stcon : 1; /* STill CONnected */ unsigned mscp$v_sc_dupun : 1; /* DUPlicate UNit number */ unsigned mscp$v_sc_alonl : 1; /* ALready ONLine */ unsigned mscp$v_sc_stonl : 1; /* STill ONLine */ unsigned mscp$v_sc_eot : 1; /* EOT encountered (tapes only) */ unsigned mscp$v_fill_20_ : 5; } mscp$r_fields_1; __struct { unsigned mscp$v_filler : 10; unsigned mscp$v_sc_inrep : 1; /* INcomplete REPlacement (disks only) */ unsigned mscp$v_sc_ivrct : 1; /* InValid RCT (disks only) */ unsigned mscp$v_sc_rdony : 1; /* ReaD ONlY volume format */ unsigned mscp$v_fill_21_ : 3; } mscp$r_field_2; } mscp$r_bit_fields; } mscp$r_sc_succ; /* Invalid Command Subcode Values */ __struct { unsigned mscp$v_filler : 5; unsigned mscp$v_sc_novol : 1; /* NO VOLume mounted or drive disabled (RUN/STOP) */ unsigned mscp$v_sc_inopr : 1; /* unit is INOPeRative */ unsigned mscp$v_dupun : 1; unsigned mscp$v_sc_udsbl : 1; /* Unit disabled by field service or diagnostic */ unsigned mscp$v_sc_exuse : 1; /* Exclusive use */ unsigned mscp$v_sc_ldr : 1; /* Loader cycle error */ unsigned mscp$v_fill_22_ : 5; } mscp$r_sc_offln; /* Unit-Available Subcode Values */ __struct { unsigned mscp$v_filler : 5; unsigned mscp$v_reserved1 : 1; unsigned mscp$v_sc_cpyip : 1; /* Copy in progress */ unsigned mscp$v_sc_nomem : 1; /* No members in shadow set */ unsigned mscp$v_reserved2 : 2; unsigned mscp$v_sc_aluse : 1; /* Already in use */ unsigned mscp$v_fill_23_ : 5; } mscp$r_sc_avlbl; /* Media Format Error Subcode Values */ __struct { unsigned mscp$v_filler1 : 8; unsigned mscp$v_sc_datal : 1; /* Unit is DATA Loss write protected (data safety) */ unsigned mscp$v_filler2 : 3; unsigned mscp$v_sc_softw : 1; /* Unit is SOFTWare protected */ unsigned mscp$v_sc_hardw : 1; /* Unit is HARDWare protected */ unsigned mscp$v_fill_24_ : 2; } mscp$r_sc_wrtpr; /* Data Error Subcode Values */ __struct { __struct { unsigned mscp$v_filler1 : 1; unsigned mscp$v_sc_allof : 1; unsigned mscp$v_sc_tabfu : 1; unsigned mscp$v_filler2 : 1; unsigned mscp$v_sc_noent : 1; unsigned mscp$v_fill_25_ : 3; } mscp$r_fields; } mscp$r_sc_wheae; /* Informational Event Subcode */ } mscp$r_mscp_subcodes; } mscp$r_flags_status; } mscp$r_modifiers_status; } MSCP_BASIC_PKT; #if !defined(__VAXC) #define mscp$w_unit mscp$r_unit_overlay.mscp$r_fill_0_.mscp$w_unit #define mscp$v_eu_no mscp$r_unit_overlay.mscp$r_fill_0_.mscp$r_fill_1_.mscp$r_eu_no_overlay.mscp$v_eu_no #define mscp$v_eu_subu mscp$r_unit_overlay.mscp$r_fill_0_.mscp$r_fill_1_.mscp$r_eu_no_overlay.mscp$r_eu_sub_no.mscp$v_eu_subu #define mscp$v_eu_subc mscp$r_unit_overlay.mscp$r_fill_0_.mscp$r_fill_1_.mscp$r_eu_no_overlay.mscp$r_eu_sub_no.mscp$v_eu_subc #define mscp$v_eu_ctype mscp$r_unit_overlay.mscp$r_fill_0_.mscp$r_fill_1_.mscp$v_eu_ctype #define mscp$v_eu_desig mscp$r_unit_overlay.mscp$r_fill_0_.mscp$r_fill_1_.mscp$v_eu_desig #define mscp$v_shadow mscp$r_unit_overlay.mscp$r_fill_0_.mscp$r_fill_1_.mscp$v_shadow #define mscp$b_cnt_alcs mscp$r_unit_overlay.mscp$b_cnt_alcs #define mscp$b_opcode mscp$r_fill_2_.mscp$b_opcode #define mscp$v_op_attn mscp$r_fill_2_.mscp$r_fill_3_.mscp$v_op_attn #define mscp$v_op_end mscp$r_fill_2_.mscp$r_fill_3_.mscp$v_op_end #define mscp$w_modifier mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$w_modifier #define mscp$v_md_serec mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_generic_modifiers.mscp$v_md_serec #define mscp$v_md_secor mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_generic_modifiers.mscp$v_md_secor #define mscp$v_md_clsex mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_generic_modifiers.mscp$v_md_clsex #define mscp$v_md_comp mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_generic_modifiers.mscp$v_md_comp #define mscp$v_md_wrseq mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_disk_modifiers.mscp$v_md_wrseq #define mscp$v_md_wbkvl mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_disk_modifiers.mscp$v_md_wbkvl #define mscp$v_md_wbknv mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_disk_modifiers.mscp$v_md_wbknv #define mscp$v_md_sshdw mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_disk_modifiers.mscp$v_md_sshdw #define mscp$v_md_scchl mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_disk_modifiers.mscp$v_md_scchl #define mscp$v_md_scchh mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_disk_modifiers.mscp$v_md_scchh #define mscp$v_md_error mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_disk_modifiers.mscp$v_md_error #define mscp$v_md_exprs mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_disk_modifiers.mscp$v_md_exprs #define mscp$v_md_rewnd mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_tape_modifiers.mscp$v_md_rewnd #define mscp$v_md_objct mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_tape_modifiers.mscp$v_md_objct #define mscp$v_md_revrs mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_tape_modifiers.mscp$v_md_revrs #define mscp$v_md_unlod mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_tape_modifiers.mscp$v_md_unlod #define mscp$v_md_immed mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_tape_modifiers.mscp$v_md_immed #define mscp$v_md_dleot mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_tape_modifiers.mscp$v_md_dleot #define mscp$v_md_inherlog mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_tape_modifiers.mscp$v_md_inherlog #define mscp$v_md_cdatl mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_tape_modifiers.mscp$v_md_cdatl #define mscp$v_md_spndw mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_avail_modifiers.mscp$v_md_spndw #define mscp$v_md_allcd mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_avail_modifiers.mscp$v_md_allcd #define mscp$v_md_dsolv mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_avail_modifiers.mscp$v_md_dsolv #define mscp$v_md_flenu mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_flush_modifiers.mscp$v_md_flenu #define mscp$v_md_voltl mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_flush_modifiers.mscp$v_md_voltl #define mscp$v_md_nxunt mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_gtunt_modifiers.mscp$v_md_nxunt #define mscp$v_md_rip mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_onlin_stunt_modifiers.mscp$v_md_rip #define mscp$v_md_ignmf mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_onlin_stunt_modifiers.mscp$v_md_ignmf #define mscp$v_md_stwrp mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_onlin_stunt_modifiers.mscp$v_md_stwrp #define mscp$v_md_clwbl mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_onlin_stunt_modifiers.mscp$v_md_clwbl #define mscp$v_md_shdsp mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_onlin_stunt_modifiers.mscp$v_md_shdsp #define mscp$v_md_excac mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_onlin_stunt_modifiers.mscp$v_md_excac #define mscp$v_md_primr mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_replc_modifiers.mscp$v_md_primr #define mscp$v_md_crnpr mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_stcon_modifiers.mscp$v_md_crnpr #define mscp$v_md_enrwr mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_write_modifiers.mscp$v_md_enrwr #define mscp$v_md_tbc mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_seg_xfer_modifiers.mscp$v_md_tbc #define mscp$v_md_hislo mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_erase_write_dcd_modifiers.mscp$v_md_h\ islo #define mscp$v_md_supwl mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_erase_write_dcd_modifiers.mscp$v_md_s\ upwl #define mscp$v_md_reuse mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_erase_write_dcd_modifiers.mscp$v_md_r\ euse #define mscp$v_md_locsu mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_dcd_modifiers.mscp$v_md_locsu #define mscp$v_md_estcp mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_dcd_modifiers.mscp$v_md_estcp #define mscp$v_md_retcp mscp$r_modifiers_status.mscp$r_modifiers.mscp$r_mscp_modifiers.mscp$r_dcd_modifiers.mscp$v_md_retcp #define mscp$b_flags mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_4_.mscp$b_flags #define mscp$v_ef_cpret mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_4_.mscp$r_fill_5_.mscp$v_ef_cp\ ret #define mscp$v_ef_dls mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_4_.mscp$r_fill_5_.mscp$v_ef_dls #define mscp$v_ef_pls mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_4_.mscp$r_fill_5_.mscp$v_ef_pls #define mscp$v_ef_eot mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_4_.mscp$r_fill_5_.mscp$v_ef_eot #define mscp$v_ef_serex mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_4_.mscp$r_fill_5_.mscp$v_ef_se\ rex #define mscp$v_ef_erlog mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_4_.mscp$r_fill_5_.mscp$v_ef_er\ log #define mscp$v_ef_bblku mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_4_.mscp$r_fill_5_.mscp$v_ef_bb\ lku #define mscp$v_ef_bblkr mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_4_.mscp$r_fill_5_.mscp$v_ef_bb\ lkr #define mscp$v_ef_hislo mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_6_.mscp$r_fill_7_.mscp$v_ef_hi\ slo #define mscp$v_ef_allof mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_6_.mscp$r_fill_7_.mscp$v_ef_al\ lof #define mscp$v_ef_fastskip_used mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_flags_overlay.mscp$r_fill_6_.mscp$r_fill_7_.mscp\ $v_ef_fastskip_used #define mscp$w_status mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_fill_8_.mscp$w_status #define mscp$v_st_mask mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_fill_8_.mscp$r_fill_9_.mscp$v_st_mask #define mscp$v_st_sbcod mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_fill_8_.mscp$r_fill_9_.mscp$v_st_sb\ cod #define mscp$v_sc_sdign mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_succ.mscp$r_bit_fields.mscp$r_fi\ elds_1.mscp$v_sc_sdign #define mscp$v_sc_stcon mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_succ.mscp$r_bit_fields.mscp$r_fi\ elds_1.mscp$v_sc_stcon #define mscp$v_sc_dupun mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_succ.mscp$r_bit_fields.mscp$r_fi\ elds_1.mscp$v_sc_dupun #define mscp$v_sc_alonl mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_succ.mscp$r_bit_fields.mscp$r_fi\ elds_1.mscp$v_sc_alonl #define mscp$v_sc_stonl mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_succ.mscp$r_bit_fields.mscp$r_fi\ elds_1.mscp$v_sc_stonl #define mscp$v_sc_eot mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_succ.mscp$r_bit_fields.mscp$r_fiel\ ds_1.mscp$v_sc_eot #define mscp$v_sc_inrep mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_succ.mscp$r_bit_fields.mscp$r_fi\ eld_2.mscp$v_sc_inrep #define mscp$v_sc_ivrct mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_succ.mscp$r_bit_fields.mscp$r_fi\ eld_2.mscp$v_sc_ivrct #define mscp$v_sc_rdony mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_succ.mscp$r_bit_fields.mscp$r_fi\ eld_2.mscp$v_sc_rdony #define mscp$v_sc_novol mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_offln.mscp$v_sc_novol #define mscp$v_sc_inopr mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_offln.mscp$v_sc_inopr #define mscp$v_sc_udsbl mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_offln.mscp$v_sc_udsbl #define mscp$v_sc_exuse mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_offln.mscp$v_sc_exuse #define mscp$v_sc_ldr mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_offln.mscp$v_sc_ldr #define mscp$v_sc_cpyip mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_avlbl.mscp$v_sc_cpyip #define mscp$v_sc_nomem mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_avlbl.mscp$v_sc_nomem #define mscp$v_sc_aluse mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_avlbl.mscp$v_sc_aluse #define mscp$v_sc_datal mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_wrtpr.mscp$v_sc_datal #define mscp$v_sc_softw mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_wrtpr.mscp$v_sc_softw #define mscp$v_sc_hardw mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_wrtpr.mscp$v_sc_hardw #define mscp$v_sc_allof mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_wheae.mscp$r_fields.mscp$v_sc_al\ lof #define mscp$v_sc_tabfu mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_wheae.mscp$r_fields.mscp$v_sc_ta\ bfu #define mscp$v_sc_noent mscp$r_modifiers_status.mscp$r_flags_status.mscp$r_mscp_subcodes.mscp$r_sc_wheae.mscp$r_fields.mscp$v_sc_no\ ent #endif /* #if !defined(__VAXC) */ #define MSCP$K_OP_ABORT 1 /* Abort */ #define MSCP$K_OP_ACCES 16 /* Access */ #define MSCP$K_OP_ACCNM 5 /* Access non-volatile memory */ #define MSCP$K_OP_AVAIL 8 /* Available */ #define MSCP$K_OP_CMPCD 17 /* Compare Controller Data */ #define MSCP$K_OP_COMP 32 /* Compare Host Data */ #define MSCP$K_OP_DSPLY 6 /* Display */ #define MSCP$K_OP_DTACP 11 /* Determine Access Paths */ #define MSCP$K_OP_DCD 13 /* Disk Copy Data */ #define MSCP$K_OP_ERASE 18 /* Erase */ #define MSCP$K_OP_ERGAP 22 /* Erase Gap (tapes only) */ #define MSCP$K_OP_FLUSH 19 /* Flush */ #define MSCP$K_OP_FMT 24 /* Format (as in floppy disks) */ #define MSCP$K_OP_GTCMD 2 /* Get Command Status */ #define MSCP$K_OP_GTUNM 7 /* Get Unit Name */ #define MSCP$K_OP_GTUNT 3 /* Get Unit Status */ #define MSCP$K_OP_GTLDR 7 /* Get Loader Status */ #define MSCP$K_OP_MOVE 12 /* Move Media */ #define MSCP$K_OP_ONLIN 9 /* Online */ #define MSCP$K_OP_RCEDC 35 /* Read Controller Encryption/Decryption Code */ #define MSCP$K_OP_READ 33 /* Read */ #define MSCP$K_OP_REPLC 20 /* Replace */ #define MSCP$K_OP_REPOS 37 /* Reposition (tapes only) */ #define MSCP$K_OP_STCON 4 /* Set Controller Characteristics */ #define MSCP$K_OP_STUNT 10 /* Set Unit Characteristics */ #define MSCP$K_OP_TERCO 48 /* Terminate Class Driver/Server Connection */ #define MSCP$K_OP_WRITE 34 /* Write */ #define MSCP$K_OP_WRITM 36 /* Write Tape Mark */ #define MSCP$K_OP_WRHIM 25 /* Write History Management */ /* MSCP End Message Codes */ #define MSCP$K_OP_END 128 /* End Message Flag */ /* MSCP Attention Message Codes (listed in alphabetical order) */ #define MSCP$K_OP_ACPTH 66 /* Access Path */ #define MSCP$K_OP_AVATN 64 /* Available */ #define MSCP$K_OP_DUPUN 65 /* Duplicate Unit Number */ #define MSCP$M_SLUN 0x4000 #define MSCP$K_SLUN_RSVP 32767 /* SLUN to request unit number for this controller */ typedef struct _generic_mscp { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; /* MSCP Command Operation Codes (defined in alphabetical order) */ __struct { unsigned mscp$v_slun_unused : 14; unsigned mscp$v_slun : 1; /* Server Local Unit Number flag */ unsigned mscp$v_fill_26_ : 1; } mscp$r_slun_unit_bit; } GENERIC_MSCP; #if !defined(__VAXC) #define mscp$v_slun mscp$r_slun_unit_bit.mscp$v_slun #endif /* #if !defined(__VAXC) */ /* Aggregates MSCP_MODIFIERS and MSCP_SUBCODES have been */ /* incorporated into the GENERIC_MSCP aggregate. */ /* Definitions for MSCP Transfer Commands */ /* */ /* Also the FORMAT command, which includes a */ /* buffer descriptor just like transfer commands. */ #define MSCP$K_FMT_DFLT 0 /* device's default */ #define MSCP$K_FMT_SING 1 /* single density */ #define MSCP$K_FMT_DOUB 2 /* double density */ #define MSCP$K_FMT_RX33 282 /* RX33 - ISO DIS8630-1985 */ typedef struct _transfer_commands { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; unsigned int mscp$l_byte_cnt; /* Byte count */ unsigned char mscp$b_buffer [12]; /* Buffer descriptor */ __union { __struct { __union { unsigned int mscp$l_lbn; /* Logical block number */ unsigned int mscp$l_frst_bad; /* First bad block */ unsigned int mscp$l_fmt_func; /* Format function */ } mscp$r_lbn_longword; unsigned int mscp$l_key_id; /* Key identifier */ unsigned int mscp$l_key_lgh; /* Key length */ unsigned int mscp$l_key_buf [3]; /* Key buffer descriptor */ } mscp$r_disk; __struct { unsigned int mscp$l_position; /* Position (object count) */ unsigned int mscp$l_taperec; /* Tape record byte count */ } mscp$r_tape; } mscp$r_disk_tape; } TRANSFER_COMMANDS; #if !defined(__VAXC) #define mscp$l_lbn mscp$r_disk_tape.mscp$r_disk.mscp$r_lbn_longword.mscp$l_lbn #define mscp$l_frst_bad mscp$r_disk_tape.mscp$r_disk.mscp$r_lbn_longword.mscp$l_frst_bad #define mscp$l_fmt_func mscp$r_disk_tape.mscp$r_disk.mscp$r_lbn_longword.mscp$l_fmt_func #define mscp$l_key_id mscp$r_disk_tape.mscp$r_disk.mscp$l_key_id #define mscp$l_key_lgh mscp$r_disk_tape.mscp$r_disk.mscp$l_key_lgh #define mscp$l_key_buf mscp$r_disk_tape.mscp$r_disk.mscp$l_key_buf #define mscp$l_position mscp$r_disk_tape.mscp$r_tape.mscp$l_position #define mscp$l_taperec mscp$r_disk_tape.mscp$r_tape.mscp$l_taperec #endif /* #if !defined(__VAXC) */ /* Definitions for Abort and Get Command Status Commands and End Messages */ typedef struct _abort_gtcmd { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; unsigned int mscp$l_out_ref; /* Outstanding reference number */ unsigned int mscp$l_cmd_sts; /* Command status */ } ABORT_GTCMD; /* Definitions for the Access Non-Volatile Memory Command and End Message */ #define MSCP$K_ANM_READ 0 #define MSCP$K_ANM_EXCG 1 #define MSCP$K_ANM_TSST 2 typedef struct _accnm { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; unsigned int mscp$l_anm_size; /* Non-Volatile Memory Size */ unsigned int mscp$l_anm_offs; /* Offset into Non-Volatile Memory */ unsigned short int mscp$w_anm_oper; /* Non-Volatile Memory Access Operation */ unsigned short int mscp$w_anm_dlgh; /* Data Length */ char mscp$t_anm_memd [32]; /* Memory Data */ } ACCNM; /* Definitions for Display Command and End Message */ typedef struct _display_cmd { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; unsigned short int mscp$w_ditem; /* Item code */ unsigned short int mscp$w_dmode; /* Mode */ char mscp$t_dtext [16]; /* Display text */ } DISPLAY_CMD; /* Definitions for the Get Unit Status Command and End Message */ #define MSCP$M_UF_CMPRD 0x1 #define MSCP$M_UF_CMPWR 0x2 #define MSCP$M_UF_WBKNV 0x40 #define MSCP$M_UF_WRTPD 0x100 #define MSCP$M_UF_EXACC 0x400 #define MSCP$M_UF_SCCHH 0x800 #define MSCP$M_UF_WRTPS 0x1000 #define MSCP$M_UF_WRTPH 0x2000 #define MSCP$M_UF_576 0x4 #define MSCP$M_UF_WHL 0x8 #define MSCP$M_UF_RMVBL 0x80 #define MSCP$M_UF_SSMST 0x200 #define MSCP$M_UF_SSMEM 0x4000 #define MSCP$M_UF_REPLC 0x8000 #define MSCP$M_UF_CACFL 0x4 #define MSCP$M_UF_EWRER 0x8 #define MSCP$M_UF_VARSP 0x10 #define MSCP$M_UF_VSMSU 0x20 #define MSCP$M_UF_LOADR 0x200 #define MSCP$M_UF_CACH 0x8000 #define MSCP$M_MTD_ENH 0x1 #define MSCP$M_COMP_SUP 0x2 #define MSCP$M_COMP_ENA 0x4 #define MSCP$M_SLUN_C 0x1F #define MSCP$M_SLUN_D1 0x3E0 #define MSCP$M_SLUN_D0 0x7C00 #define MSCP$M_MTYP_N 0x7F #define MSCP$M_MTYP_A2 0xF80 #define MSCP$M_MTYP_A1 0x1F000 #define MSCP$M_MTYP_A0 0x3E0000 #define MSCP$M_MTYP_D1 0x7C00000 #define MSCP$M_MTYP_D0 0xF8000000 #define MSCP$K_CM_NOCPY 0 #define MSCP$K_CM_COPY 1 #define MSCP$K_CM_MGCPY 2 #define MSCP$K_CM_MMRG 3 #define MSCP$K_CM_HB_MMRG 4 #define MSCP$M_TF_800 0x1 #define MSCP$M_TF_PE 0x2 #define MSCP$M_TF_GCR 0x4 #define MSCP$M_TF_BLK 0x8 #define MSCP$M_TF_NOR 0x1 #define MSCP$M_TF_BHD 0x2 #define MSCP$M_TF_DN2 0x4 #define MSCP$M_TF_DN3 0x8 #define MSCP$M_TF_T87 0x10 #define MSCP$M_TF_T87C 0x20 #define MSCP$M_TF_ENH 0x2 #define MSCP$M_TF_NDC 0x4 #define MSCP$M_TF_EDC 0x8 #define MSCP$M_TF_DCP 0x2 #define MSCP$M_TF_X82 0x1 #define MSCP$M_TF_X85 0x2 #define MSCP$M_TF_X5C 0x4 #define MSCP$K_TC_OLD 0 #define MSCP$K_TC_9TR 256 #define MSCP$K_TC_CTP 512 #define MSCP$K_TC_HPC 768 #define MSCP$K_TC_WOD 1024 #define MSCP$K_TC_DAT 1280 #define MSCP$K_TC_8MM 1536 #define MSCP$K_TC_QIC 1792 #define MSCP$M_TF_MASK 255 /* Density field mask */ #define MSCP$K_TF_CODE 256 /* Format code multiplier */ #define MSCP$S_ONLIN_STUNT 44 /* DISK_TAPE was previously contained in aggregate */ /* ONLIN_STUNT. Although,the aggregate was deleted, */ typedef struct _gtunt { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; unsigned short int mscp$w_mult_unt; /* Multi-unit code */ __union { unsigned short int mscp$w_unt_flgs; /* Unit flags */ __struct { unsigned mscp$v_uf_cmprd : 1; /* Compare reads */ unsigned mscp$v_uf_cmpwr : 1; /* Compare writes */ unsigned mscp$v_fill_1 : 4; unsigned mscp$v_uf_wbknv : 1; /* Write-back (non-volatile) [disks only] */ unsigned mscp$v_fill_2 : 1; unsigned mscp$v_uf_wrtpd : 1; /* Write protect (data safety) */ unsigned mscp$v_fill_3 : 1; unsigned mscp$v_uf_exacc : 1; /* Exclusive access */ unsigned mscp$v_uf_scchh : 1; /* Suppress caching (High speed) */ unsigned mscp$v_uf_wrtps : 1; /* Write protect (software) */ unsigned mscp$v_uf_wrtph : 1; /* Write protect (hardware) */ unsigned mscp$v_fill_47_ : 2; } mscp$r_unt_flgs_both; __struct { unsigned mscp$v_fill_4 : 2; unsigned mscp$v_uf_576 : 1; /* 576 byte sectors */ unsigned mscp$v_uf_whl : 1; /* Write History Logging Support */ unsigned mscp$v_fill_5 : 3; unsigned mscp$v_uf_rmvbl : 1; /* Removeable media */ unsigned mscp$v_fill_6 : 1; unsigned mscp$v_uf_ssmst : 1; /* Shadow set master */ unsigned mscp$v_fill_7 : 4; unsigned mscp$v_uf_ssmem : 1; /* Shadow set member */ unsigned mscp$v_uf_replc : 1; /* Controller initiated bad block replacement */ } mscp$r_unt_flgs_disk; __struct { unsigned mscp$v_fill_8 : 2; unsigned mscp$v_uf_cacfl : 1; /* Cache flushed */ unsigned mscp$v_uf_ewrer : 1; /* Enhanced Write Error Recovery */ unsigned mscp$v_uf_varsp : 1; /* Variable speed unit */ unsigned mscp$v_uf_vsmsu : 1; /* Variable speed mode suppression */ unsigned mscp$v_fill_9 : 3; unsigned mscp$v_uf_loadr : 1; /* Media Loader Present */ unsigned mscp$v_fill_10 : 5; unsigned mscp$v_uf_cach : 1; /* Write-back Caching */ } mscp$r_unt_flgs_tape; } mscp$r_unt_flgs_overlay; __union { unsigned short int mscp$w_tape_char; /* Propagate Tape unit chars. */ __struct { unsigned mscp$v_mtd_enh : 1; /* VMS-TMSCP SERVER MTD ENHANCED (V7.2) */ unsigned mscp$v_comp_sup : 1; /* Tape unit supports compaction */ unsigned mscp$v_comp_ena : 1; /* Compaction enabled/disabled */ unsigned mscp$v_fill_48_ : 5; } mscp$r_fill_28_; } mscp$r_fill_27_; short int mscp$w_reserved; __union { __union { unsigned __int64 mscp$q_unit_id; /* Unit identifier */ __struct { void *mscp$l_excl_lba; /* Excluded LBN area address [disks only] */ unsigned int mscp$l_excl_lbc; /* Excluded LBN block count [disks only] */ } mscp$r_fill_30_; } mscp$r_fill_29_; __union { __int64 mscp$q_slun_overlay; __struct { unsigned int mscp$l_slun_allocls; unsigned short int mscp$w_slun_unit; __union { unsigned short int mscp$w_slun_devname; __struct { unsigned mscp$v_slun_c : 5; unsigned mscp$v_slun_d1 : 5; unsigned mscp$v_slun_d0 : 5; unsigned mscp$v_reserved : 1; } mscp$r_fill_34_; } mscp$r_fill_33_; } mscp$r_fill_32_; } mscp$r_fill_31_; } mscp$r_unit_id_overlay; __union { unsigned int mscp$l_dev_parm; /* Device dependent parameters */ __union { unsigned int mscp$l_media_id; /* Media type identifier */ __struct { unsigned mscp$v_mtyp_n : 7; /* Media # (i.e. 7 of RK07) */ unsigned mscp$v_mtyp_a2 : 5; /* Media name char. */ unsigned mscp$v_mtyp_a1 : 5; /* Media name continued */ unsigned mscp$v_mtyp_a0 : 5; /* " " " */ unsigned mscp$v_mtyp_d1 : 5; /* Dev mnemonic char. */ unsigned mscp$v_mtyp_d0 : 5; /* Mnemonic continued */ } mscp$r_fill_36_; } mscp$r_fill_35_; } mscp$r_dev_parm_overlay; __union { __union { __struct { unsigned short int mscp$w_shdw_unt; /* Shadow unit */ __union { unsigned short int mscp$w_copy_mod; /* Copy mode */ unsigned short int mscp$w_shdw_sts; /* Shadow unit status */ } mscp$r_spd_sts; } mscp$r_disk_cmd; unsigned int mscp$l_dmaxbcnt; /* Unit MAXBCNT */ } mscp$r_disk_shdw_bcnt; __struct { __union { __union { unsigned short int mscp$w_format; /* Original (Old) format */ __struct { unsigned mscp$v_tf_800 : 1; /* NRZI 800 bpi */ unsigned mscp$v_tf_pe : 1; /* Phase encoded 1600 bpi */ unsigned mscp$v_tf_gcr : 1; /* Group code recording 6250 bpi */ unsigned mscp$v_tf_blk : 1; /* Block format (TK50) */ unsigned mscp$v_fill_49_ : 4; } mscp$r_fill_38_; } mscp$r_fill_37_; __union { unsigned short int mscp$w_format_ctp; /* Block mode format (Cartridge Tapes) */ __struct { unsigned mscp$v_tf_nor : 1; /* Normal (low) density (833 bpi TK50) */ unsigned mscp$v_tf_bhd : 1; /* Block mode High Density (1250 bpi TK70) */ unsigned mscp$v_tf_dn2 : 1; /* Block mode Density 2 (TF85 compatible) */ unsigned mscp$v_tf_dn3 : 1; /* Block mode Density 3 (TF86 compatible) */ unsigned mscp$v_tf_t87 : 1; /* Tx87 compatible */ unsigned mscp$v_tf_t87c : 1; /* Tx87 compatible compressed */ unsigned mscp$v_fill_50_ : 2; } mscp$r_fill_40_; } mscp$r_fill_39_; __union { unsigned short int mscp$w_format_hpc; /* High Performance Cartridge format */ __struct { unsigned mscp$v_fill_10 : 1; /* TF_NOR already defined */ unsigned mscp$v_tf_enh : 1; /* Enhanced density */ unsigned mscp$v_tf_ndc : 1; /* NOR with data comp. */ unsigned mscp$v_tf_edc : 1; /* ENH with data comp. */ unsigned mscp$v_fill_51_ : 4; } mscp$r_fill_42_; } mscp$r_fill_41_; __union { unsigned short int mscp$w_format_dat; /* DAT cartridge format */ __struct { unsigned mscp$v_fill_11 : 1; /* TF_NOR already defined */ unsigned mscp$v_tf_dcp : 1; /* DAT compacted density */ unsigned mscp$v_fill_52_ : 6; } mscp$r_fill_44_; } mscp$r_fill_43_; __union { unsigned short int mscp$w_format_8mm; /* 8MM cartridge format */ __struct { unsigned mscp$v_tf_x82 : 1; /* EXABYTE-8200 Compatible Density */ unsigned mscp$v_tf_x85 : 1; /* EXABYTE-8500 Compatible Density */ unsigned mscp$v_tf_x5c : 1; /* EXABYTE-8500 Compacted Density */ unsigned mscp$v_fill_53_ : 5; } mscp$r_fill_46_; } mscp$r_fill_45_; } mscp$r_format_overlay; unsigned short int mscp$w_speed; /* Speed */ } mscp$r_tape_cmd; } mscp$r_disk_tape_cmd; __union { __union { __struct { unsigned short int mscp$w_track; /* Track size */ unsigned short int mscp$w_group; /* Group size */ unsigned short int mscp$w_cylinder; /* Cylinder size */ unsigned char mscp$b_unit_svr; /* Unit software version */ unsigned char mscp$b_unit_hvr; /* Unit hardware version */ unsigned short int mscp$w_rct_size; /* RCT size */ unsigned char mscp$b_rbns; /* RBNs per track */ unsigned char mscp$b_rct_cpys; /* Number of RCT copies */ unsigned short int mscp$w_load_avail; /* Controller load available (VMS server load balancing) */ } mscp$r_disk_end; __struct { unsigned short int mscp$w_formenu; /* Format menu */ unsigned char mscp$b_freecap; /* Free capacity */ } mscp$r_tape_end; } mscp$r_disk_tape_end; /* Definitions for Online and Set Unit Characteristics Command and End Messages */ __union { __struct { unsigned int mscp$l_unt_size; /* Unit size */ unsigned int mscp$l_vol_ser; /* Volume serial number */ } mscp$r_disk; __struct { unsigned int mscp$l_maxwtrec; /* Maximum write record size */ unsigned short int mscp$w_noiserec; /* Noise record */ } mscp$r_tape; } mscp$r_disk_tape; /* we still have to generate the size field. */ } mscp$r_online_stunt; } GTUNT; #if !defined(__VAXC) #define mscp$w_unt_flgs mscp$r_unt_flgs_overlay.mscp$w_unt_flgs #define mscp$v_uf_cmprd mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_both.mscp$v_uf_cmprd #define mscp$v_uf_cmpwr mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_both.mscp$v_uf_cmpwr #define mscp$v_uf_wbknv mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_both.mscp$v_uf_wbknv #define mscp$v_uf_wrtpd mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_both.mscp$v_uf_wrtpd #define mscp$v_uf_exacc mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_both.mscp$v_uf_exacc #define mscp$v_uf_scchh mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_both.mscp$v_uf_scchh #define mscp$v_uf_wrtps mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_both.mscp$v_uf_wrtps #define mscp$v_uf_wrtph mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_both.mscp$v_uf_wrtph #define mscp$v_uf_576 mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_disk.mscp$v_uf_576 #define mscp$v_uf_whl mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_disk.mscp$v_uf_whl #define mscp$v_uf_rmvbl mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_disk.mscp$v_uf_rmvbl #define mscp$v_uf_ssmst mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_disk.mscp$v_uf_ssmst #define mscp$v_uf_ssmem mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_disk.mscp$v_uf_ssmem #define mscp$v_uf_replc mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_disk.mscp$v_uf_replc #define mscp$v_uf_cacfl mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_tape.mscp$v_uf_cacfl #define mscp$v_uf_ewrer mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_tape.mscp$v_uf_ewrer #define mscp$v_uf_varsp mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_tape.mscp$v_uf_varsp #define mscp$v_uf_vsmsu mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_tape.mscp$v_uf_vsmsu #define mscp$v_uf_loadr mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_tape.mscp$v_uf_loadr #define mscp$v_uf_cach mscp$r_unt_flgs_overlay.mscp$r_unt_flgs_tape.mscp$v_uf_cach #define mscp$w_tape_char mscp$r_fill_27_.mscp$w_tape_char #define mscp$v_mtd_enh mscp$r_fill_27_.mscp$r_fill_28_.mscp$v_mtd_enh #define mscp$v_comp_sup mscp$r_fill_27_.mscp$r_fill_28_.mscp$v_comp_sup #define mscp$v_comp_ena mscp$r_fill_27_.mscp$r_fill_28_.mscp$v_comp_ena #define mscp$q_unit_id mscp$r_unit_id_overlay.mscp$r_fill_29_.mscp$q_unit_id #define mscp$l_excl_lba mscp$r_unit_id_overlay.mscp$r_fill_29_.mscp$r_fill_30_.mscp$l_excl_lba #define mscp$l_excl_lbc mscp$r_unit_id_overlay.mscp$r_fill_29_.mscp$r_fill_30_.mscp$l_excl_lbc #define mscp$l_slun_allocls mscp$r_unit_id_overlay.mscp$r_fill_31_.mscp$r_fill_32_.mscp$l_slun_allocls #define mscp$w_slun_unit mscp$r_unit_id_overlay.mscp$r_fill_31_.mscp$r_fill_32_.mscp$w_slun_unit #define mscp$w_slun_devname mscp$r_unit_id_overlay.mscp$r_fill_31_.mscp$r_fill_32_.mscp$r_fill_33_.mscp$w_slun_devname #define mscp$v_slun_c mscp$r_unit_id_overlay.mscp$r_fill_31_.mscp$r_fill_32_.mscp$r_fill_33_.mscp$r_fill_34_.mscp$v_slun_c #define mscp$v_slun_d1 mscp$r_unit_id_overlay.mscp$r_fill_31_.mscp$r_fill_32_.mscp$r_fill_33_.mscp$r_fill_34_.mscp$v_slun_d1 #define mscp$v_slun_d0 mscp$r_unit_id_overlay.mscp$r_fill_31_.mscp$r_fill_32_.mscp$r_fill_33_.mscp$r_fill_34_.mscp$v_slun_d0 #define mscp$l_dev_parm mscp$r_dev_parm_overlay.mscp$l_dev_parm #define mscp$l_media_id mscp$r_dev_parm_overlay.mscp$r_fill_35_.mscp$l_media_id #define mscp$v_mtyp_n mscp$r_dev_parm_overlay.mscp$r_fill_35_.mscp$r_fill_36_.mscp$v_mtyp_n #define mscp$v_mtyp_a2 mscp$r_dev_parm_overlay.mscp$r_fill_35_.mscp$r_fill_36_.mscp$v_mtyp_a2 #define mscp$v_mtyp_a1 mscp$r_dev_parm_overlay.mscp$r_fill_35_.mscp$r_fill_36_.mscp$v_mtyp_a1 #define mscp$v_mtyp_a0 mscp$r_dev_parm_overlay.mscp$r_fill_35_.mscp$r_fill_36_.mscp$v_mtyp_a0 #define mscp$v_mtyp_d1 mscp$r_dev_parm_overlay.mscp$r_fill_35_.mscp$r_fill_36_.mscp$v_mtyp_d1 #define mscp$v_mtyp_d0 mscp$r_dev_parm_overlay.mscp$r_fill_35_.mscp$r_fill_36_.mscp$v_mtyp_d0 #define mscp$w_shdw_unt mscp$r_disk_tape_cmd.mscp$r_disk_shdw_bcnt.mscp$r_disk_cmd.mscp$w_shdw_unt #define mscp$w_copy_mod mscp$r_disk_tape_cmd.mscp$r_disk_shdw_bcnt.mscp$r_disk_cmd.mscp$r_spd_sts.mscp$w_copy_mod #define mscp$w_shdw_sts mscp$r_disk_tape_cmd.mscp$r_disk_shdw_bcnt.mscp$r_disk_cmd.mscp$r_spd_sts.mscp$w_shdw_sts #define mscp$l_dmaxbcnt mscp$r_disk_tape_cmd.mscp$r_disk_shdw_bcnt.mscp$l_dmaxbcnt #define mscp$w_format mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_37_.mscp$w_format #define mscp$v_tf_800 mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_37_.mscp$r_fill_38_.mscp$v_tf_800 #define mscp$v_tf_pe mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_37_.mscp$r_fill_38_.mscp$v_tf_pe #define mscp$v_tf_gcr mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_37_.mscp$r_fill_38_.mscp$v_tf_gcr #define mscp$v_tf_blk mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_37_.mscp$r_fill_38_.mscp$v_tf_blk #define mscp$v_tf_nor mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_39_.mscp$r_fill_40_.mscp$v_tf_nor #define mscp$v_tf_bhd mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_39_.mscp$r_fill_40_.mscp$v_tf_bhd #define mscp$v_tf_dn2 mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_39_.mscp$r_fill_40_.mscp$v_tf_dn2 #define mscp$v_tf_dn3 mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_39_.mscp$r_fill_40_.mscp$v_tf_dn3 #define mscp$v_tf_t87 mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_39_.mscp$r_fill_40_.mscp$v_tf_t87 #define mscp$v_tf_t87c mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_39_.mscp$r_fill_40_.mscp$v_tf_t87c #define mscp$v_tf_enh mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_41_.mscp$r_fill_42_.mscp$v_tf_enh #define mscp$v_tf_ndc mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_41_.mscp$r_fill_42_.mscp$v_tf_ndc #define mscp$v_tf_edc mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_41_.mscp$r_fill_42_.mscp$v_tf_edc #define mscp$v_tf_dcp mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_43_.mscp$r_fill_44_.mscp$v_tf_dcp #define mscp$v_tf_x82 mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_45_.mscp$r_fill_46_.mscp$v_tf_x82 #define mscp$v_tf_x85 mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_45_.mscp$r_fill_46_.mscp$v_tf_x85 #define mscp$v_tf_x5c mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$r_format_overlay.mscp$r_fill_45_.mscp$r_fill_46_.mscp$v_tf_x5c #define mscp$w_speed mscp$r_disk_tape_cmd.mscp$r_tape_cmd.mscp$w_speed #define mscp$w_track mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_disk_end.mscp$w_track #define mscp$w_group mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_disk_end.mscp$w_group #define mscp$w_cylinder mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_disk_end.mscp$w_cylinder #define mscp$b_unit_svr mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_disk_end.mscp$b_unit_svr #define mscp$b_unit_hvr mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_disk_end.mscp$b_unit_hvr #define mscp$w_rct_size mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_disk_end.mscp$w_rct_size #define mscp$b_rbns mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_disk_end.mscp$b_rbns #define mscp$b_rct_cpys mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_disk_end.mscp$b_rct_cpys #define mscp$w_load_avail mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_disk_end.mscp$w_load_avail #define mscp$w_formenu mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_tape_end.mscp$w_formenu #define mscp$b_freecap mscp$r_online_stunt.mscp$r_disk_tape_end.mscp$r_tape_end.mscp$b_freecap #define mscp$l_unt_size mscp$r_online_stunt.mscp$r_disk_tape.mscp$r_disk.mscp$l_unt_size #define mscp$l_vol_ser mscp$r_online_stunt.mscp$r_disk_tape.mscp$r_disk.mscp$l_vol_ser #define mscp$l_maxwtrec mscp$r_online_stunt.mscp$r_disk_tape.mscp$r_tape.mscp$l_maxwtrec #define mscp$w_noiserec mscp$r_online_stunt.mscp$r_disk_tape.mscp$r_tape.mscp$w_noiserec #endif /* #if !defined(__VAXC) */ /* Definitions for the Read Controller Encrypt/Decrypt Code Command and End Message */ typedef struct _rcedc { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; int mscp$l_filler [5]; unsigned int mscp$l_code; /* Encrypt/Decrypt Code Length */ } RCEDC; /* Definitions for the Replace Command and End Message (disks only) */ typedef struct _replc { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; unsigned int mscp$l_rbn; /* Replacement block number */ } REPLC; /* Definitions for the Reposition Command and End Message (tapes only) */ typedef struct _repos { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; __union { __struct { unsigned int mscp$l_rec_cnt; /* Record/Object count */ unsigned int mscp$l_tmgp_cnt; /* Tape mark count */ } mscp$r_cmd; __struct { unsigned int mscp$l_rcskiped; /* Records skipped */ unsigned int mscp$l_tmskiped; /* Tape markes skipped */ } mscp$r_endmsg; } mscp$r_cmdend; } REPOS; #if !defined(__VAXC) #define mscp$l_rec_cnt mscp$r_cmdend.mscp$r_cmd.mscp$l_rec_cnt #define mscp$l_tmgp_cnt mscp$r_cmdend.mscp$r_cmd.mscp$l_tmgp_cnt #define mscp$l_rcskiped mscp$r_cmdend.mscp$r_endmsg.mscp$l_rcskiped #define mscp$l_tmskiped mscp$r_cmdend.mscp$r_endmsg.mscp$l_tmskiped #endif /* #if !defined(__VAXC) */ /* Definitions for the Set Controller Characteristics Command and End Message */ #define MSCP$M_CF_576 0x1 #define MSCP$M_CF_SHADW 0x2 #define MSCP$M_CF_MLTHS 0x4 #define MSCP$M_CF_LDCD 0x8 #define MSCP$M_CF_THIS 0x10 #define MSCP$M_CF_OTHER 0x20 #define MSCP$M_CF_MISC 0x40 #define MSCP$M_CF_ATTN 0x80 #define MSCP$M_CF_RDCD 0x100 #define MSCP$M_CF_WHL 0x200 #define MSCP$M_CF_RDO 0x400 #define MSCP$M_CF_NFESC 0x800 #define MSCP$M_CF_LOAD 0x2000 #define MSCP$M_CF_EDCRP 0x4000 #define MSCP$M_CF_REPLC 0x8000 #define MSCP$M_CF_MTDEN 0x4000 #define MSCP$M_CF_SRT 0x8000 #define MSCP$K_CL_CNTRL 1 #define MSCP$K_CL_DISK 2 #define MSCP$K_CL_TAPE 3 #define MSCP$K_CL_D144 4 #define MSCP$K_CL_LDR 5 /* MSCP Controller Model */ #define MSCP$K_CM_HSC50 1 #define MSCP$K_CM_UDA50 2 #define MSCP$K_CM_RC25 3 #define MSCP$K_CM_EMULA 4 #define MSCP$K_CM_TU81 5 #define MSCP$K_CM_UDA52 6 #define MSCP$K_CM_UDA50A 6 #define MSCP$K_CM_RDRX 7 #define MSCP$K_CM_TOPS 8 #define MSCP$K_CM_TK50 9 #define MSCP$K_CM_TQK50 9 #define MSCP$K_CM_RUX50 10 #define MSCP$K_CM_AIO 12 #define MSCP$K_CM_KFBTA 12 #define MSCP$K_CM_KDA50 13 #define MSCP$K_CM_TK70 14 #define MSCP$K_CM_TQK70 14 #define MSCP$K_CM_RV20 15 #define MSCP$K_CM_RRD50 16 #define MSCP$K_CM_RRD50Q 16 #define MSCP$K_CM_KDB50 18 #define MSCP$K_CM_RQDX3 19 #define MSCP$K_CM_RQDX4 20 #define MSCP$K_CM_DSSI_DISK 21 #define MSCP$K_CM_DSSI_TAPE 22 #define MSCP$K_CM_DSSI_DSKTAP 23 #define MSCP$K_CM_DSSI_OTHER 24 #define MSCP$K_CM_TUK50 25 #define MSCP$K_CM_RRD50U 26 #define MSCP$K_CM_KDM70 27 #define MSCP$K_CM_TQL70 28 #define MSCP$K_CM_TM32 29 #define MSCP$K_CM_HSC70 32 #define MSCP$K_CM_HSC40 33 #define MSCP$K_CM_HSC60 34 #define MSCP$K_CM_HSC90 35 #define MSCP$K_CM_RN20 36 #define MSCP$K_CM_ENE10 37 #define MSCP$K_CM_TN10 38 #define MSCP$K_CM_HSJ40 40 #define MSCP$K_CM_HSC65 41 #define MSCP$K_CM_HSC95 42 #define MSCP$K_CM_HSJ80 46 #define MSCP$K_CM_KSB50 64 #define MSCP$K_CM_TK50_DEBNT 65 #define MSCP$K_CM_TBK70 66 #define MSCP$K_CM_TBK7L 68 #define MSCP$K_CM_RF30 96 #define MSCP$K_CM_RF71 97 #define MSCP$K_CM_TF85 98 #define MSCP$K_CM_TF70 99 #define MSCP$K_CM_RF31 100 #define MSCP$K_CM_RF72 101 #define MSCP$K_CM_RF73 102 #define MSCP$K_CM_RF32 103 #define MSCP$K_CM_RF35 104 #define MSCP$K_CM_RF36 108 #define MSCP$K_CM_RF74 109 #define MSCP$K_CM_TF86 110 #define MSCP$K_CM_HSD20 111 #define MSCP$K_CM_RF75 112 #define MSCP$K_CM_RF37 114 #define MSCP$K_CM_HSX50 128 #define MSCP$K_CM_ULTRIX 248 #define MSCP$K_CM_SVS 249 typedef struct _stcon { /* Allocation class (CNT_ALCS) is now part of union */ /* with UNIT structure in MSCP_BASIC_PKT */ MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; unsigned short int mscp$w_version; /* MSCP version */ __union { __union { unsigned short int mscp$w_cnt_flgs; /* Controller flags */ __struct { unsigned mscp$v_cf_576 : 1; /* 576 byte sectors [disks only] */ unsigned mscp$v_cf_shadw : 1; /* Shadowing [disks only] */ unsigned mscp$v_cf_mlths : 1; /* Multi-Host */ unsigned mscp$v_cf_ldcd : 1; /* Local Disk Copy Data */ unsigned mscp$v_cf_this : 1; /* Enable this host's error log */ unsigned mscp$v_cf_other : 1; /* Enable other host's error log */ unsigned mscp$v_cf_misc : 1; /* Enable miscellaneous error log */ unsigned mscp$v_cf_attn : 1; /* Enable attention messages */ unsigned mscp$v_cf_rdcd : 1; /* Remote Disk Copy Data */ unsigned mscp$v_cf_whl : 1; /* Write History Logging Support */ unsigned mscp$v_cf_rdo : 1; /* Restricted DISK COPY DATA Operations */ unsigned mscp$v_cf_nfesc : 1; /* Class driver supports NOFE state changes */ unsigned mscp$v_filler : 1; unsigned mscp$v_cf_load : 1; /* Controller returns load available information */ unsigned mscp$v_cf_edcrp : 1; /* Data Encrypt/Decrypt Supported */ unsigned mscp$v_cf_replc : 1; /* Controller Initiated Bad Block Replacement [disks only] */ } mscp$r_fill_55_; } mscp$r_fill_54_; __union { unsigned short int mscp$w_tu_cnt_flgs; /* Tape controller flags */ __struct { unsigned mscp$v_filler : 14; unsigned mscp$v_cf_mtden : 1; /* Class driver supports MTD (multi tape density) */ unsigned mscp$v_cf_srt : 1; /* Segemented Record Transfer */ } mscp$r_fill_57_; } mscp$r_fill_56_; } mscp$r_cnt_flgs_overlay; __union { unsigned short int mscp$w_hst_tmo; /* Host timeout */ __struct { unsigned short int mscp$w_cnt_tmo; /* Controller timeout */ } mscp$r_fill_59_; } mscp$r_fill_58_; unsigned char mscp$b_cnt_svr; /* Controller software version */ unsigned char mscp$b_cnt_hvr; /* Controller hardware version */ __union { unsigned __int64 mscp$q_time; /* Quad-word date-time */ __struct { unsigned __int64 mscp$q_cnt_id; /* Controller ID */ } mscp$r_fill_61_; } mscp$r_fill_60_; unsigned int mscp$l_maxbcnt; /* Maximum supported byte count */ unsigned short int mscp$w_conn_ref; /* Connection reference number */ /* Controller and Unit identifier Classes. (Device Class) */ } STCON; #if !defined(__VAXC) #define mscp$w_cnt_flgs mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$w_cnt_flgs #define mscp$v_cf_576 mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_576 #define mscp$v_cf_shadw mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_shadw #define mscp$v_cf_mlths mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_mlths #define mscp$v_cf_ldcd mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_ldcd #define mscp$v_cf_this mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_this #define mscp$v_cf_other mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_other #define mscp$v_cf_misc mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_misc #define mscp$v_cf_attn mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_attn #define mscp$v_cf_rdcd mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_rdcd #define mscp$v_cf_whl mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_whl #define mscp$v_cf_rdo mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_rdo #define mscp$v_cf_nfesc mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_nfesc #define mscp$v_cf_load mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_load #define mscp$v_cf_edcrp mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_edcrp #define mscp$v_cf_replc mscp$r_cnt_flgs_overlay.mscp$r_fill_54_.mscp$r_fill_55_.mscp$v_cf_replc #define mscp$v_cf_mtden mscp$r_cnt_flgs_overlay.mscp$r_fill_56_.mscp$r_fill_57_.mscp$v_cf_mtden #define mscp$v_cf_srt mscp$r_cnt_flgs_overlay.mscp$r_fill_56_.mscp$r_fill_57_.mscp$v_cf_srt #define mscp$w_hst_tmo mscp$r_fill_58_.mscp$w_hst_tmo #define mscp$w_cnt_tmo mscp$r_fill_58_.mscp$r_fill_59_.mscp$w_cnt_tmo #define mscp$q_time mscp$r_fill_60_.mscp$q_time #define mscp$q_cnt_id mscp$r_fill_60_.mscp$r_fill_61_.mscp$q_cnt_id #endif /* #if !defined(__VAXC) */ /* Definitions for Disk Data Copy Commands and End Messages */ #define MSCP$K_MIN_SIZ 12 /* Shortest Command */ #define MSCP$C_MIN_SIZ 12 /* Shortest Command */ #define MSCP$K_MXCMDLEN 36 /* Longest Command */ #define MSCP$C_MXCMDLEN 36 /* Longest Command */ #define MSCP$K_DCDCMDLEN 60 /* DCD Command */ #define MSCP$C_DCDCMDLEN 60 /* DCD Command */ #define MSCP$K_LEN 50 /* Longest End Message */ #define MSCP$C_LEN 50 /* Longest End Message */ typedef struct _dcd { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; __union { __struct { unsigned int mscp$l_lbcount; /* Logical block count */ unsigned short int mscp$w_src_unum; /* Source unit number */ short int mscp$w_reserved; /* Reserved */ unsigned __int64 mscp$q_src_uid; /* Source unit identifier */ unsigned int mscp$l_dest_lbn; /* Destination LBN */ unsigned short int mscp$w_hrn; /* HRN or Entloc */ unsigned short int mscp$w_ent_id; /* Entry ID */ int mscp$l_reserved; /* Reserved */ unsigned int mscp$l_src_lbn; /* Source LBN */ unsigned __int64 mscp$q_port_adr; /* Source unit's subsystem port address */ unsigned __int64 mscp$q_sys_adr; /* Source unit's subsystem system address */ } mscp$r_lbcount_structure; __struct { int mscp$l_filler; unsigned char mscp$z_sbc_sts [16]; /* Subcommand status */ unsigned short int mscp$w_ent_loc; /* Entry locator */ } mscp$r_lbcount_end_structure; } mscp$r_lbcount_overlay; } DCD; #if !defined(__VAXC) #define mscp$l_lbcount mscp$r_lbcount_overlay.mscp$r_lbcount_structure.mscp$l_lbcount #define mscp$w_src_unum mscp$r_lbcount_overlay.mscp$r_lbcount_structure.mscp$w_src_unum #define mscp$q_src_uid mscp$r_lbcount_overlay.mscp$r_lbcount_structure.mscp$q_src_uid #define mscp$l_dest_lbn mscp$r_lbcount_overlay.mscp$r_lbcount_structure.mscp$l_dest_lbn #define mscp$w_hrn mscp$r_lbcount_overlay.mscp$r_lbcount_structure.mscp$w_hrn #define mscp$w_ent_id mscp$r_lbcount_overlay.mscp$r_lbcount_structure.mscp$w_ent_id #define mscp$l_src_lbn mscp$r_lbcount_overlay.mscp$r_lbcount_structure.mscp$l_src_lbn #define mscp$q_port_adr mscp$r_lbcount_overlay.mscp$r_lbcount_structure.mscp$q_port_adr #define mscp$q_sys_adr mscp$r_lbcount_overlay.mscp$r_lbcount_structure.mscp$q_sys_adr #define mscp$z_sbc_sts mscp$r_lbcount_overlay.mscp$r_lbcount_end_structure.mscp$z_sbc_sts #define mscp$w_ent_loc mscp$r_lbcount_overlay.mscp$r_lbcount_end_structure.mscp$w_ent_loc #endif /* #if !defined(__VAXC) */ /* Definitions for Write History Management Commands and End Messages */ #define MSCP$K_WHM_DALL 1 #define MSCP$K_WHM_DHRN 2 #define MSCP$K_WHM_DELO 3 #define MSCP$K_WHM_RALL 4 #define MSCP$K_WHM_RHRN 5 #define MSCP$K_WHM_DAFC 6 typedef struct _wrhim { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; int mscp$l_reserved; /* Reserved */ __union { unsigned char mscp$b_wrhis_bd [12]; /* Write history buffer descriptor */ __struct { unsigned short int mscp$w_unit_al; /* Unit allocated */ unsigned short int mscp$w_serv_al; /* Server allocated */ unsigned short int mscp$w_serv_unal; /* Server unallocated */ } mscp$r_unit_al_structure; } mscp$r_wrhis_bd_overlay; __union { unsigned short int mscp$w_oper; /* Operation */ unsigned short int mscp$w_count; /* Count */ } mscp$r_oper_overlay; unsigned short int mscp$w_offset; /* Offset */ } WRHIM; #if !defined(__VAXC) #define mscp$b_wrhis_bd mscp$r_wrhis_bd_overlay.mscp$b_wrhis_bd #define mscp$w_unit_al mscp$r_wrhis_bd_overlay.mscp$r_unit_al_structure.mscp$w_unit_al #define mscp$w_serv_al mscp$r_wrhis_bd_overlay.mscp$r_unit_al_structure.mscp$w_serv_al #define mscp$w_serv_unal mscp$r_wrhis_bd_overlay.mscp$r_unit_al_structure.mscp$w_serv_unal #define mscp$w_oper mscp$r_oper_overlay.mscp$w_oper #define mscp$w_count mscp$r_oper_overlay.mscp$w_count #endif /* #if !defined(__VAXC) */ /* Definitions for Write History Entry */ #define WHIS$M_ET_TLIB 0x4000 #define WHIS$M_ET_ERR 0x8000 #define WHIS$K_WRITELOGLEN 16 /* Write log length */ #define WHIS$C_WRITELOGLEN 16 /* */ typedef struct _write_log_entry { unsigned short int whis$w_elo; /* Entry Locator */ unsigned short int whis$w_unit; /* Unit Number */ unsigned int whis$l_length; /* Transfer Length */ unsigned int whis$l_lbn; /* Starting Logical Block Number */ unsigned short int whis$w_hrn; /* Host Reference Number */ __union { unsigned short int whis$w_entflgs; /* Entry Flags */ __struct { unsigned whis$v_filler : 14; unsigned whis$v_et_tlib : 1; unsigned whis$v_et_err : 1; } whis$r_fill_63_; } whis$r_fill_62_; } WRITE_LOG_ENTRY; #if !defined(__VAXC) #define whis$w_entflgs whis$r_fill_62_.whis$w_entflgs #define whis$v_et_tlib whis$r_fill_62_.whis$r_fill_63_.whis$v_et_tlib #define whis$v_et_err whis$r_fill_62_.whis$r_fill_63_.whis$v_et_err #endif /* #if !defined(__VAXC) */ /* Definitions for GET UNIT NAME command and end message */ typedef struct _get_unit_name { MSCP_BASIC_PKT mscp$r_mscp_basic_pkt; unsigned int mscp$l_ddr_namelen; /* Length of dynamic name */ char mscp$t_ddr_name [28]; /* Dynamic name string */ } GET_UNIT_NAME; #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 /* __MSCPDEF_LOADED */