.title VDDEFIN .sbttl Virtual Disk Driver Symbolic Definitions .ident /091488/ ; ;+ ;***** ; ; VDDEFIN.MAR - Defines all symbolic offsets for data structures ; required by the virtual disk driver, VDDRIVER. ; ;- ;***** ; ; Paul Sorenson ; AEP/Engineering Computer Support Center ; Columbus, OH 43215 ; ;***** ; ; Update 9/7/88 -- PRS; Add definition of "pending I/O identification ; block" (PIB) structure to be used in tracking active ; I/Os rather than using extended IRPs. ; ; Update 9/14/88 -- PRS; Add support for returning file-id of container ; file with special IO$_SENSEMODE/IO$_SENSECHAR function. ; ;***** ; ; .page .SBTTL Virtual Disk Driver Specific I/O Function Codes ; ; *** ; .MACRO VD$IODEF,A $IODEF A ; standard I/O function definitions $DEFINI IO,A ; ; *** Declare IO$_SETMODE function modifiers ; $VIELD IO,IO$V_FMODIFIERS,<- ,- ; startup virtual disk > ; shutdown virtual disk $EQU IO$M_VD_SETMODES - ; mask for major SETMODE modifiers ; ; *** Declare IO$_SENSEMODE function modifiers ; $VIELD IO,IO$V_FMODIFIERS,<- > ; return information on virtual disk $DEFEND IO .MACRO VD$IODEF,B .ENDM .ENDM ; .page .SBTTL Pending I/O Identification Block Definition ; ; *** Pending I/O Identification Block (PIB) structure saves information ; regarding I/O requests handled by the virtual disk driver that will ; be returned to the virtual disk driver for further processing at some ; future time. PIBs are linked to the "PENDQFL" queue list ; while the operation is pending and are released to the ; "free" list headed at "FREEQFL". The free and pending queue list ; heads are part of the driver's local data space and link PIBs ; for all units of the driver. PIBs are allocated from ; non-paged system pool (an IRP) if the free list is empty. ; .MACRO VD$PIBDEF,A $DEFINI PIB,A $DEF PIB$L_PENDQFL ; forward link .BLKL 1 $DEF PIB$L_PENDQBL ; backward link .BLKL 1 $DEF PIB$L_IRP ; address of IRP associated with request .BLKL 1 $DEF PIB$L_PID ; saved PID from IRP .BLKL 1 $DEF PIB$L_UCB ; address of virtual disk driver UCB .BLKL 1 $DEF PIB$K_LENGTH ; length of PIB structure $DEFEND PIB .MACRO VD$PIBDEF B .ENDM .ENDM ; .page .sbttl Virtual Disk Driver UCB Extension Definition ; ; *** Unit Control Block (UCB) extension fields for VDDRIVER. ; .MACRO VD$UCBDEF,A $UCBDEF A ; Unit control block definitions $DEFINI UCB,A ; Start of UCB extension definitions $EQU UCB$L_VD_DSKUCB UCB$L_DEVDEPND2 ; UCB addr of physical disk assigned $VIELD UCB,15,<> ; UCB$W_DEVSTS flag set for virtual ; disks on virtual disks .=UCB$K_LCL_DISK_LENGTH ; Position at end of UCB ; ; *** Remainder of UCB contains information on virtual disk returned ; on IO$_SENSEMODE!IO$M_VD_GETINFO. This must be long-word aligned. ; $DEF UCB$T_VD_INFO $DEF UCB$T_VD_NAME ; host disk device name .BLKB 16 $DEF UCB$W_VD_UNIT ; host disk device unit number .BLKW 1 $DEF UCB$W_VD_FNUM ; file number of container file .BLKW 1 $DEF UCB$W_VD_FSEQ ; sequence number of container file .BLKW 1 $DEF UCB$W_VD_FRVN ; relative volume number of file .BLKW 1 $DEF UCB$L_VD_SIZE ; size of virtual disk (blocks) .BLKL 1 $DEF UCB$L_VD_LBN ; first LBN assigned to virtual disk .BLKL 1 $DEF UCB$K_VD_LENGTH ; Length of extended UCB $DEFEND UCB ; End of UCB definitions .MACRO VD$UCBDEF B .ENDM .ENDM ; VD$IODEF GLOBAL ; define I/O function symbols globally ; when assembled onits own .end