📄 mscp_diskvar.c
字号:
#ifndef lintstatic char *sccsid = "@(#)mscp_diskvar.c 4.1 (ULTRIX) 7/2/90";#endif lint/************************************************************************ * * * Copyright (c) 1988 - 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 * Disk Class Driver * * Abstract: * * Author: David E. Eiche Creation Date: March 11, 1988 * * History: * * 23-Oct-1989 Tim Burke * Added state tables to allow for a set unit characteristics command. * * 07-Mar-1989 Todd M. Katz TMK0001 * 1. Include header file ../vaxmsi/msisysap.h. * 2. Use the ../machine link to refer to machine specific header files. * * 08-Jul-1988 Pete Keilty * Added accscan state table. * * 02-Jun-1988 Ricky S. Palmer * Removed inclusion of header file ../vaxmsi/msisysap.h * * 03-Apr-1988 David E. Eiche DEE0022 * Remove reference to mscp_onlineinit routine. This is part of * a larger fix to eliminate an open/close race condition. * * 11-Mar-1988 David E. Eiche * Moved disk- specific MSCP modules from mscp_var.c into (this) * separate module. Audit trail information is retained in * mscp_var.c. *//**//* Libraries and Include Files. */#include "../h/types.h"#include "../h/time.h"#include "../h/param.h"#include "../h/buf.h"#include "../h/errno.h"#include "../h/ioctl.h"#include "../h/devio.h"#include "../h/file.h"#include "../fs/ufs/fs.h"#include "../h/errlog.h"#include "../machine/pte.h"#include "../h/vmmac.h"#include "../io/scs/sca.h"#include "../io/ci/cippdsysap.h"#include "../io/ci/cisysap.h"#include "../io/bi/bvpsysap.h"#include "../io/gvp/gvpsysap.h"#include "../io/msi/msisysap.h"#include "../io/uba/uqsysap.h"#include "../io/sysap/sysap.h"#include "../io/uba/ubavar.h"#include "../io/sysap/mscp_msg.h"#include "../io/sysap/mscp_defs.h"/* External Variables and Routines. */extern u_long mscp_accscancm(), mscp_accscanem(), mscp_alloc_msg(), mscp_alloc_rspid(), mscp_map_buffer(), mscp_availcm(), mscp_forcecm(), mscp_forceem(), mscp_invevent(), mscp_markoffline(), mscp_markonline(), mscp_noaction(), mscp_onlgtuntem(), mscp_onlinecm(), mscp_onlineem(), mscp_recovinit(), mscp_recovnext(), mscp_setunitcm(), mscp_setunitem(), mscp_transfercm(), mscp_transferem();/**//* Bring unit online states. */STATE mscp_onl_states[] = { /* Unit online initial state. */ { ST_ON_INITIAL, mscp_invevent }, /* EV_NULL */ { ST_ON_INITIAL, mscp_alloc_rspid }, /* EV_INITIAL */ { ST_ON_INITIAL, mscp_alloc_msg }, /* EV_RSPID */ { ST_ON_INITIAL, mscp_onlinecm }, /* EV_MSGBUF */ { ST_ON_INITIAL, mscp_invevent }, /* EV_MAPPING */ { ST_ON_ONLIN, mscp_onlineem }, /* EV_ENDMSG */ { ST_ON_INITIAL, mscp_invevent }, /* EV_TIMEOUT */ { ST_ON_INITIAL, mscp_invevent }, /* EV_NOCREDITS */ { ST_ON_INITIAL, mscp_invevent }, /* EV_ERRECOV */ { ST_ON_INITIAL, mscp_invevent }, /* */ { ST_ON_INITIAL, mscp_invevent }, /* */ { ST_ON_INITIAL, mscp_invevent }, /* */ { ST_ON_INITIAL, mscp_invevent }, /* */ { ST_ON_INITIAL, mscp_invevent }, /* */ { ST_ON_INITIAL, mscp_invevent }, /* EV_ONLCOMPLETE */ { ST_ON_INITIAL, mscp_invevent }, /* EV_ONLERROR */ /* Unit online - online end message processing */ { ST_ON_ONLIN, mscp_invevent }, /* EV_NULL */ { ST_ON_ONLIN, mscp_invevent }, /* EV_INITIAL */ { ST_ON_ONLIN, mscp_invevent }, /* EV_RSPID */ { ST_ON_ONLIN, mscp_invevent }, /* EV_MSGBUF */ { ST_ON_ONLIN, mscp_invevent }, /* EV_MAPPING */ { ST_ON_GTUNT, mscp_onlgtuntem }, /* EV_ENDMSG */ { ST_ON_ONLIN, mscp_invevent }, /* EV_TIMEOUT */ { ST_ON_ONLIN, mscp_invevent }, /* EV_NOCREDITS */ { ST_ON_ONLIN, mscp_invevent }, /* EV_ERRECOV */ { ST_ON_ONLIN, mscp_invevent }, /* */ { ST_ON_ONLIN, mscp_invevent }, /* */ { ST_ON_ONLIN, mscp_invevent }, /* */ { ST_ON_ONLIN, mscp_invevent }, /* */ { ST_ON_AVAIL, mscp_availcm }, /* EV_ONLERRAVAIL */ { ST_ON_ONLIN, mscp_invevent }, /* EV_ONLCOMPLETE */ { ST_ON_AVAIL, mscp_markoffline }, /* EV_ONLERROR */ /* Unit online available end message processing. */ { ST_ON_AVAIL, mscp_invevent }, /* EV_NULL */ { ST_ON_AVAIL, mscp_invevent }, /* EV_INITIAL */ { ST_ON_AVAIL, mscp_invevent }, /* EV_RSPID */ { ST_ON_AVAIL, mscp_invevent }, /* EV_MSGBUF */ { ST_ON_AVAIL, mscp_invevent }, /* EV_MAPPING */ { ST_ON_AVAIL, mscp_markoffline }, /* EV_ENDMSG */ { ST_ON_AVAIL, mscp_invevent }, /* EV_TIMEOUT */ { ST_ON_AVAIL, mscp_invevent }, /* EV_NOCREDITS */ { ST_ON_AVAIL, mscp_invevent }, /* EV_ERRECOV */ { ST_ON_AVAIL, mscp_invevent }, /* */ { ST_ON_AVAIL, mscp_invevent }, /* */ { ST_ON_AVAIL, mscp_invevent }, /* */ { ST_ON_AVAIL, mscp_invevent }, /* */ { ST_ON_AVAIL, mscp_invevent }, /* EV_ONLERRAVAIL */ { ST_ON_AVAIL, mscp_invevent }, /* EV_ONLCOMPLETE */ { ST_ON_AVAIL, mscp_noaction }, /* EV_ONLERROR */ /* Unit online get unit status end message processing. */ { ST_ON_GTUNT, mscp_invevent }, /* EV_NULL */ { ST_ON_GTUNT, mscp_invevent }, /* EV_INITIAL */ { ST_ON_GTUNT, mscp_invevent }, /* EV_RSPID */ { ST_ON_GTUNT, mscp_invevent }, /* EV_MSGBUF */ { ST_ON_GTUNT, mscp_invevent }, /* EV_MAPPING */ { ST_ON_GTUNT, mscp_invevent }, /* EV_ENDMSG */ { ST_ON_GTUNT, mscp_invevent }, /* EV_TIMEOUT */ { ST_ON_GTUNT, mscp_invevent }, /* EV_NOCREDITS */ { ST_ON_GTUNT, mscp_markonline }, /* EV_ERRECOV */ { ST_ON_GTUNT, mscp_invevent }, /* */ { ST_ON_GTUNT, mscp_invevent }, /* */ { ST_ON_GTUNT, mscp_invevent }, /* */ { ST_ON_GTUNT, mscp_invevent }, /* */ { ST_ON_GTUNT, mscp_invevent }, /* EV_ONLERRAVAIL */ { ST_ON_GTUNT, mscp_markonline }, /* EV_ONLCOMPLETE */ { ST_ON_INITIAL, mscp_onlinecm }, /* EV_ONLERROR */};/**//* Make unit available states. */STATE mscp_avl_states[] = { /* Unit available initial state. */ { ST_AV_INITIAL, mscp_invevent }, /* EV_NULL */ { ST_AV_INITIAL, mscp_alloc_rspid }, /* EV_INITIAL */ { ST_AV_INITIAL, mscp_alloc_msg }, /* EV_RSPID */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -