📄 mscp_msg.h
字号:
/* @(#)mscp_msg.h 4.1 (ULTRIX) 7/2/90 *//************************************************************************ * * * Copyright (c) 1987, 1989 by * * Digital Equipment Corporation, Maynard, MA * * All rights reserved. * * * * This software is furnished under a license and may be used and * * copied only in accordance with the terms of such license and * * with the inclusion of the above copyright notice. This * * software or any other copies thereof may not be provided or * * otherwise made available to any other person. No title to and * * ownership of the software is hereby transferred. * * * * The information in this software is subject to change without * * notice and should not be construed as a commitment by Digital * * Equipment Corporation. * * * * Digital assumes no responsibility for the use or reliability * * of its software on equipment which is not supplied by Digital. * * * ************************************************************************ * * * Facility: Systems Communication Architecture * MSCP-speaking Class Drivers * * Abstract: This module contains all the MSCP message definitions * * Author: David E. Eiche Creation Date: December 1, 1984 * * History: * * 01-May-1990 Mike Thomas * DECwest ANSI mt 1990 May 01 * Replaced MSCP_def.H with MSCP_def_H for ANSI. * * 31-Oct-1989 Tim Burke * Added MSCP_SC_AVAIL to the table of unit available subcode values. * * 21-Jul-1989 David E. Eiche DEE0070 * 1. Recode the MSLG structure to make it maintainable. * 2. Change field names in the MSCP and MSLG structures to * conform to the T/MSCP specification preferred mnemonics * and provide additional field names for the convenience * of the error formatter program. * 3. Eliminate defines starting with "tmscp". * 4. Correct the offsets of the mscp_excl_lba, mscp_excl_lbc, * and mscp_dev_parm fields. * 5. Add structures for the DISPLAY and FMT commands. * 6. Add subcodes for additional media loader errors. * 7. Incorporate other miscellaneous changes to reflect the * latest round of T/MSCP ECOs. * 8. Reformatted previous audit trail entries so that the * audit trail editor macros can be used on them. * * 20-Jul-89 Mark A. Parenti * Add KDM70 definition. Remove HSB50. * * 20-Jun-89 Tim Burke * Spec updates mainly for loader support (TQK7L) changes include: * Added MSCP_UF_LOADR to table A-5. * In table B-1 change MSCP_ST_LOADR from x15 to x17, added * MSCP_ST_IPARM. Added MSCP_SC_LOADE to "Unit-Offline" Subcode * values. Added additional "media loader error" status subcodes * to table B-10 (subcodes 0x5 to 0x12). * * 08-May-1989 Tim Burke * Brought forward 3.1 changes into pu and isis pools. * * 28-Dec-1988 Tim Burke * Updates to t/mscp specs for the following tables: * A-9, A-10, B-1, B-10, B-11 * These changes mainly involve definitions for loader and * informational error logs. * * 07-May-1988 Robin * Changed the define value for MSCP_TF_NOR from 0 to the * correct value of 1. * * 15-Feb-1988 Robin * Changed the define of mslg_position to mslg_tape_position to * resolve a multi-define problem seen in eribld.c * * 02-Feb-1988 Robin * Added new mscp devices like RF30 * * 02-Jan-1988 Robin * Changed the name for RV80 to RV20, the real name was changed. * * 16-Dec-1986 Robin * Fixed the error log macro for position and vol_ser * mslg_position changed to Mslg_position. *//**//* If included previously don't include it again. * Test a known define (MSCP_def_H) and if it's NOT defined, define everything, * otherwise don't define anything. */#ifndef MSCP_def_H#define MSCP_def_H 0/* mscp.h Mass Storage Control Protocol 84/12/01 */#define MSCP_VERSION 0 /* Current MSCP protocol version *//* MSCP control message opcodes (from MSCP specification Table A-1) */#define MSCP_OP_ABORT 0x01 /* ABORT */#define MSCP_OP_ACCESS 0x10 /* ACCESS */#define MSCP_OP_ACCNM 0x05 /* ACCESS NON-VOLATILE MEMORY */#define MSCP_OP_AVAIL 0x08 /* AVAILABLE */#define MSCP_OP_CMPCD 0x11 /* COMPARE CONTROLLER DATA */#define MSCP_OP_COMP 0x20 /* COMPARE HOST DATA */#define MSCP_OP_DTACP 0x0b /* DETERMINE ACCESS PATHS */#define MSCP_OP_ERASE 0x12 /* ERASE */#define MSCP_OP_ERGAP 0x16 /* ERASE GAP (T) */#define MSCP_OP_FLUSH 0x13 /* FLUSH */#define MSCP_OP_FMT 0x18 /* FORMAT */#define MSCP_OP_GTCMD 0x02 /* GET COMMAND STATUS */#define MSCP_OP_GTUNT 0x03 /* GET UNIT STATUS */#define MSCP_OP_ONLIN 0x09 /* ONLINE */#define MSCP_OP_RCEDC 0x23 /* READ CONTROLLER ENCRYPTION/DECRYPTION CODE */#define MSCP_OP_READ 0x21 /* READ */#define MSCP_OP_REPLC 0x14 /* REPLACE */#define MSCP_OP_REPOS 0x25 /* REPOSITION (T) */#define MSCP_OP_SPEC1 0x28 /* Manufacturing reserved command 1 */#define MSCP_OP_SPEC2 0x29 /* Manufacturing reserved command 2 */#define MSCP_OP_SPEC3 0x2a /* Manufacturing reserved command 3 */#define MSCP_OP_SPEC4 0x2b /* Manufacturing reserved command 4 */#define MSCP_OP_SPEC5 0x2c /* Manufacturing reserved command 5 */#define MSCP_OP_SPEC6 0x2d /* Manufacturing reserved command 6 */#define MSCP_OP_SPEC7 0x2e /* Manufacturing reserved command 7 */#define MSCP_OP_SPEC8 0x2f /* Manufacturing reserved command 8 */#define MSCP_OP_STCON 0x04 /* SET CONTROLLER CHARACTERISTICS */#define MSCP_OP_STUNT 0x0a /* SET UNIT CHARACTERISTICS */#define MSCP_OP_WRITE 0x22 /* WRITE */#define MSCP_OP_WRITM 0x24 /* WRITE TAPE MARK (T) */#define MSCP_OP_END 0x80 /* End message flag (endmsg == ctlmsg | END) */#define MSCP_OP_SEREX 0x07 /* Serious exception end message */#define MSCP_OP_AVATN 0x40 /* AVAILABLE attention message */#define MSCP_OP_DUPUN 0x41 /* DUPLICATE UNIT NUMBER attention message */#define MSCP_OP_ACPTH 0x42 /* ACCESS PATH attention message */#define MSCP_OP_RWATN 0x43 /* REWIND attention message (T) *//* MSCP command modifiers (from MSCP specification Table A-2) *//* * Generic command modifiers */#define MSCP_MD_COMP 0x4000 /* Compare */#define MSCP_MD_EXPRS 0x8000 /* Express request */#define MSCP_MD_CLSEX 0x2000 /* Clear serious exception */#define MSCP_MD_CDATL 0x1000 /* Clear cache data lost exception */#define MSCP_MD_ERROR 0x1000 /* Force error */#define MSCP_MD_SCCHH 0x0800 /* Suppress caching (high speed) */#define MSCP_MD_SCCHL 0x0400 /* Suppress caching (low speed) */#define MSCP_MD_SECOR 0x0200 /* Suppress error correction */#define MSCP_MD_SEREC 0x0100 /* Suppress error recovery */#define MSCP_MD_WBKNV 0x0040 /* Write-back non volatile */#define MSCP_MD_WBKVL 0x0020 /* Write-back volatile memory */#define MSCP_MD_UNLOD 0x0010 /* Unload */#define MSCP_MD_REVRS 0x0008 /* Reverse */#define MSCP_MD_IMMED 0x0040 /* Immediate Completion *//* AVAILABLE command modifiers */#define MSCP_MD_DSOLV 0x0004 /* Dissolve shadow set */#define MSCP_MD_ALLCD 0x0002 /* All class drivers */#define MSCP_MD_SPNDW 0x0001 /* Spin-down *//* FLUSH command modifiers */#define MSCP_MD_VOLTL 0x0002 /* Volatile only */#define MSCP_MD_FLENU 0x0001 /* Flush entire unit *//* GET UNIT STATUS command modifiers */#define MSCP_MD_NXUNT 0x0001 /* Next unit *//* ONLINE command modifiers */#define MSCP_MD_IGNMF 0x0002 /* Ignore media format */#define MSCP_MD_RIP 0x0001 /* Allow self destruction *//* ONLINE and SET UNIT CHARACTERISTICS command modifiers */#define MSCP_MD_EXCAC 0x0020 /* Exclusive access */#define MSCP_MD_SHDSP 0x0010 /* Shadow unit specified */#define MSCP_MD_CLWBL 0x0008 /* Clear write-back data lost */#define MSCP_MD_STWRP 0x0004 /* Enable set write protect *//* REPLACE command modifiers */#define MSCP_MD_PRIMR 0x0001 /* Primary replacement block *//* REPOSITION command modifiers */#define MSCP_MD_DLEOT 0x0080 /* Detect LEOT */#define MSCP_MD_OBJCT 0x0004 /* Object count */#define MSCP_MD_REWND 0x0002 /* Rewind *//* SET CONTROLLER CHARACTERISTICS command modifiers */#define MSCP_MD_FKC 0x0001 /* Flush encryption/decryption key cache *//* WRITE command modifiers */#define MSCP_MD_ENRWR 0x0010 /* Enable Re-Write Error Recovery *//* MSCP End message flags (from MSCP specification Table A-3) */#define MSCP_EF_BBLKR 0x0080 /* Bad block reported (disks only) */#define MSCP_EF_BBLKU 0x0040 /* Bad block unreported (disks only) */#define MSCP_EF_ERLOG 0x0020 /* Error log generated */#define MSCP_EF_SEREX 0x0010 /* Serious Exception (tapes only) */#define MSCP_EF_EOT 0x0008 /* EOT encountered (tapes only) */#define MSCP_EF_PLS 0x0004 /* Position lost (tapes only) */#define MSCP_EF_DLS 0x0002 /* Cache Data Lost(tapes only) *//* MSCP Controller flags (from MSCP specification Table A-4) */#define MSCP_CF_REPLC 0x8000 /* Controller initiated BBR */#define MSCP_CF_EDCRP 0x4000 /* Data encrypt/decrypt */#define MSCP_CF_ATTN 0x0080 /* Enable attention messages */#define MSCP_CF_MISC 0x0040 /* Enable miscellaneous error log msgs */#define MSCP_CF_OTHER 0x0020 /* Enable other host's error log msgs */#define MSCP_CF_THIS 0x0010 /* Enable this host's error log msgs */#define MSCP_CF_MLTHS 0x0004 /* Multi-host support */#define MSCP_CF_SHADW 0x0002 /* Shadowing */#define MSCP_CF_576 0x0001 /* 576 byte sectors *//* MSCP unit flags (from MSCP specification Table A-5). */#define MSCP_UF_REPLC 0x8000 /* Controller initiated BBR */#define MSCP_UF_CACH 0x8000 /* Set if caching is there */#define MSCP_UF_SSMEM 0x4000 /* Shadow set member */#define MSCP_UF_WRTPH 0x2000 /* Write protect (hardware) */#define MSCP_UF_WRTPS 0x1000 /* Write protect (software) */#define MSCP_UF_SCCHH 0x0800 /* Suppress caching */#define MSCP_UF_EXACC 0x0400 /* Exclusive access */#define MSCP_UF_SSMST 0X0200 /* Shadow set master */#define MSCP_UF_LOADR 0X0200 /* Media loader present (T) */#define MSCP_UF_WRTPD 0x0100 /* Write protect (data safety) */#define MSCP_UF_RMVBL 0x0080 /* Removable Media */#define MSCP_UF_WBKNV 0x0040 /* Write-back (non-volatile) */#define MSCP_UF_VSMSU 0x0020 /* Variable Speed Mode Suppression */#define MSCP_UF_VARSP 0x0010 /* Variable Speed Unit */#define MSCP_UF_EWRER 0x0008 /* Enhanced Write Error Recovery */#define MSCP_UF_576 0x0004 /* 576 byte sectors */#define MSCP_UF_CACFL 0x0004 /* Write-back cache has been flushed */#define MSCP_UF_CMPWR 0x0002 /* Compare writes */#define MSCP_UF_CMPRD 0x0001 /* Compare reads *//* MSCP command, end, and attention message offsets * (from MSCP specification tables A-6 and A-7). */typedef union _mscp { /* Generic command message offsets
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -