VMS Device Support Reference Manual

*HyperReader

  CONTENTS

  Title Page

  Copyright Page

  Preface

  1      Data Structures

  1.1     Configuration Control Block (ACF)

  1.2     Adapter Control Block (ADP)

  1.3     Channel Control Block (CCB)

  1.4     Per-CPU Database (CPU)

  1.5     Channel Request Block (CRB)
    1.5.1      Interrupt Transfer Vector Block (VEC)

  1.6     Device Data Block (DDB)

  1.7     Driver Dispatch Table (DDT)

  1.8     Driver Prologue Table (DPT)

  1.9     Interrupt Dispatch Block (IDB)

  1.10    I/O Request Packet (IRP)

  1.11    I/O Request Packet Extension (IRPE)

  1.12    Object Rights Block (ORB)

  1.13    SCSI Class Driver Request Packet (SCDRP)

  1.14    SCSI Connection Descriptor Table (SCDT)

  1.15    SCSI Port Descriptor Table (SPDT)

  1.16    Spin Lock Data Structure (SPL)

  1.17    Unit Control Block (UCB)

  2      VMS Macros Invoked by Drivers

  ADPDISP

  BI_NODE_RESET

  CASE

  CLASS_CTRL_INIT

  CLASS_UNIT_INIT

  CPUDISP

  DDTAB

  $DEF

  $DEFEND

  $DEFINI

  DEVICELOCK

  DEVICEUNLOCK

  DPTAB

  DPT_STORE

  DSBINT

  ENBINT

  $EQULST

  FIND_CPU_DATA

  FORK

  FORKLOCK

  FORKUNLOCK

  FUNCTAB

  IFNORD, IFNOWRT, IFRD, IFWRT

  INVALIDATE_TB

  IOFORK

  LOADALT

  LOADMBA

  LOADUBA

  LOCK

  LOCK_SYSTEM_PAGES

  PURDPR

  READ_SYSTIME

  RELALT

  RELCHAN

  RELDPR

  RELMPR

  RELSCHAN

  REQALT

  REQCOM

  REQDPR

  REQMPR

  REQPCHAN

  REQSCHAN

  SAVIPL

  SETIPL

  SOFTINT

  SPI$ABORT_COMMAND

  SPI$ALLOCATE_COMMAND_BUFFER

  SPI$CONNECT

  SPI$DEALLOCATE_COMMAND_BUFFER

  SPI$DISCONNECT

  SPI$FINISH_COMMAND

  SPI$GET_CONNECTION_CHAR

  SPI$MAP_BUFFER

  SPI$RECEIVE_BYTES

  SPI$RELEASE_BUS

  SPI$RESET

  SPI$SEND_BYTES

  SPI$SEND_COMMAND

  SPI$SENSE_PHASE

  SPI$SET_CONNECTION_CHAR

  SPI$SET_PHASE

  SPI$UNMAP_BUFFER

  SWAPLONG

  SWAPWORD

  TIMEDWAIT

  TIMEWAIT

  UNLOCK

  UNLOCK_SYSTEM_PAGES

  $VEC

  $VECEND

  $VECINI

  $VIELD, _VIELD

  WFIKPCH, WFIRLCH

  3      Operating System Routines

  COM$DELATTNAST

  COM$DRVDEALMEM

  COM$FLUSHATTNS

  COM$POST, COM$POST_NOCNT

  COM$SETATTNAST

  ERL$DEVICERR, ERL$DEVICTMO, ERL$DEVICEATTN

  EXE$ABORTIO

  EXE$ALLOCBUF, EXE$ALLOCIRP

  EXE$ALONONPAGED

  EXE$ALONPAGVAR

  EXE$ALOPHYCNTG

  EXE$ALTQUEPKT

  EXE$CREDIT_BYTCNT, EXE$CREDIT_BYTCNT_BYTLM

  EXE$DEANONPAGED, EXE$DEANONPGDSIZ

  EXE$DEBIT_BYTCNT(_NW), EXE$DEBIT_BYTCNT_BYTLM(_NW)

  EXE$DEBIT_BYTCNT_ALO, EXE$DEBIT_BYTCNT_BYTLM_ALO

  EXE$FINISHIO, EXE$FINISHIOC

  EXE$FORK

  EXE$INSERTIRP

  EXE$INSIOQ, EXE$INSIOQC

  EXE$INSTIMQ

  EXE$IOFORK

  EXE$MODIFY

  EXE$MODIFYLOCK, EXE$MODIFYLOCKR

  EXE$ONEPARM

  EXE$QIODRVPKT

  EXE$QIORETURN

  EXE$READ

  EXE$READCHK, EXE$READCHKR

  EXE$READLOCK, EXE$READLOCKR

  EXE$RMVTIMQ

  EXE$SENSEMODE

  EXE$SETCHAR, EXE$SETMODE

  EXE$SNDEVMSG

  EXE$WRITE

  EXE$WRITECHK, EXE$WRITECHKR

  EXE$WRITELOCK, EXE$WRITELOCKR

  EXE$WRTMAILBOX

  EXE$ZEROPARM

  IOC$ALOALTMAP, IOC$ALOALTMAPN, IOC$ALOALTMAPSP

  IOC$ALOUBAMAP, IOC$ALOUBAMAPN

  IOC$ALOVMEMAP_DMA, IOC$ALOVMEMAP_DMAN

  IOC$ALOVMEMAP_PIO

  IOC$APPLYECC

  IOC$CANCELIO

  IOC$DIAGBUFILL

  IOC$INITIATE

  IOC$IOPOST

  IOC$LOADALTMAP

  IOC$LOADMBAMAP

  IOC$LOADUBAMAP, IOC$LOADUBAMAPA

  IOC$LOADVMEMAP_DMA, IOC$LOADVMEMAP_DMAN

  IOC$LOADVMEMAP_PIO

  IOC$MOVFRUSER, IOC$MOVFRUSER2

  IOC$MOVTOUSER, IOC$MOVTOUSER2

  IOC$PURGDATAP

  IOC$RELALTMAP

  IOC$RELCHAN

  IOC$RELDATAP

  IOC$RELMAPREG

  IOC$RELSCHAN

  IOC$RELVMEMAP_DMA, IOC$RELVMEMAP_DMAN

  IOC$RELVMEMAP_PIO

  IOC$REQALTMAP

  IOC$REQCOM

  IOC$REQDATAP, IOC$REQDATAPNW

  IOC$REQMAPREG

  IOC$REQPCHANH, IOC$REQPCHANL, IOC$REQSCHANH, IOC$REQSCHANL

  IOC$REQPCHANH, IOC$REQPCHANL,

  IOC$RETURN

  IOC$VERIFYCHAN

  IOC$VME_BYTE_SWAP_LONG

  IOC$VME_BYTE_SWAP_WORD

  IOC$WFIKPCH, IOC$WFIRLCH

  LDR$ALLOC_PT

  LDR$DEALLOC_PT

  MMG$UNLOCK

  SMP$ACQNOIPL

  SMP$ACQUIRE

  SMP$ACQUIREL

  SMP$RELEASE

  SMP$RELEASEL

  SMP$RESTORE

  SMP$RESTOREL

  4      Device Driver Entry Points

  Alternate Start-I/O Routine

  Cancel-I/O Routine

  Cloned UCB Routine

  Controller Initialization Routine

  Driver Unloading Routine

  FDT Routines

  Interrupt Service Routine

  Register Dumping Routine

  Start-I/O Routine

  Timeout Handling Routine

  Unit Delivery Routine

  Unit Initialization Routine

  Unsolicited Interrupt Service Routine

  FIGURES

  1-1        The I/O Database

  1-2        Configuration Control Block (ACF)

  1-3        Adapter Control Block (ADP)

  1-4        Channel Control Block (CCB)

  1-5        Per-CPU Database (CPU)

  1-6        Channel Request Block (CRB)

  1-7        Interrupt Transfer Vector Block (VEC)

  1-8        Device Data Block (DDB)

  1-9        Driver Dispatch Table (DDT)

  1-10       Driver Prologue Table (DPT)

  1-11       Interrupt Dispatch Block (IDB)

  1-12       I/O Request Packet (IRP)

  1-13       I/O Request Packet Extension (IRPE)

  1-14       Object Rights Block (ORB)

  1-15       SCSI Class Driver Request Packet (SCDRP)

  1-16       SCSI Connection Descriptor Table (SCDT)

  1-17       SCSI Port Descriptor Table (SPDT)

  1-18       Spin Lock Data Structure (SPL)

  1-19       Composition of Extended Unit Control Blocks

  1-20       Unit Control Block (UCB)

  1-21       UCB Error-Log Extension

  1-22       UCB Local Tape Extension

  1-23       UCB Local Disk Extension

  1-24       UCB Terminal Extension

  2-1        SCSI Bus Phase Longword Returned to SPI$SENSE_PHASE

  2-2        SCSI Bus Phase Longword Supplied to SPI$SET_PHASE

  3-1        VME Map Register Descriptor (VME_MD)

  TABLES

  1-1        Contents of Configuration Control Block

  1-2        Contents of Adapter Control Block

  1-3        Contents of Channel Control Block

  1-4        Contents of Per-CPU Database

  1-5        Contents of Channel Request Block

  1-6        Contents of Interrupt Transfer Vector Block (VEC)

  1-7        Contents of Device Data Block

  1-8        Contents of Driver Dispatch Table

  1-9        Contents of Driver Prologue Table

  1-10       Contents of Interrupt Dispatch Block

  1-11       Contents of an I/O Request Packet

  1-12       Contents of the I/O Request Packet Extension

  1-13       Contents of Object Rights Block

  1-14       Contents of SCSI Class Driver Request Packet

  1-15       Contents of SCSI Connection Descriptor Table

  1-16       Contents of SCSI Port Descriptor Table

  1-17       Contents of the Spin Lock Data Structure

  1-18       UCB Extensions and Sizes Defined in $UCBDEF

  1-19       Contents of Unit Control Block

  1-20       UCB Error-Log Extension

  1-21       UCB Local Tape Extension

  1-22       UCB Local Disk Extension

  1-23       UCB Terminal Extension

  2-1        Selectable Adapter Characteristics

  2-2        VAX Systems and Their CPU Type

  2-3        VAX Systems and Their CPU Subtype

  2-4        Values Returned by the SPI$CONNECT Macro

  2-5        SPI$GET_CONNECTION Macro Buffer Characteristics

  2-6        Inputs with the SPI$MAP_BUFFER Macro

  2-7        SPI$MAP_BUFFER Macro Return Values to the Class Driver

  2-8        Inputs with the SPI$SEND_COMMAND Macro

  2-9        SPI$SEND_COMMAND Macro Return Values

  2-10       SPI$SET_CONNECTION_CHAR Macro Settable Characteristics

  4-1        Last FDT Routine Exit Mechanisms