GDSX Manual
DCCBDECS and ULHDECSE Listings
Extended General Device Support (GDSX) Manual–134303
C-7
DCCBDECS Listing
Struct Iocb^info;
Begin
Unsigned(1) Io^Sysbuf; !if true, $RECEIVE request data is
!in SYSPOOL or SHARED POOL
Unsigned(10) Cpu; !Originating CPU for $RECEIVE request
Unsigned(1) Ext^Io; !if true, I/O operation initiated
!by extended I/O procedure
Unsigned(1) Type^Rcv; !if true, $RECEIVE IOCB
!if false, File IOCB or DCB
Unsigned(1) Type^Dcb; !if true, File DCB
!if false, File IOCB or $RCV
Unsigned(1) Type^Iocb; !if true, File IOCB
!if false, $RECEIVE $RCV or DCB
End;
Int Cb^Type = Iocb^Info;!Identifies cb^openid->@iocb or @dcb
!and if msgtag is receivedepth
!and if bufaddr in EXT or LOC memory
Int(32) Openid; !Openid of ITC linker or @dcb
Int(32) Cb^Openid = Openid; !
Int(32) Rcbaddr; !$RECEIVE rcb address
Int Err, !File management error #
Pid; !CPU & PIN of requester, $rcv only
End;
Literal
Tcblink^OffsetX = ($Offset(Iocb^Template.Tcblink) '+' 1) '>>' 2,
Fcblink^OffsetX = ($Offset(Iocb^Template.Fcblink) '+' 1) '>>' 2,
Lhlink^OffsetX = ($Offset(Iocb^Template.Lhlink) '+' 1) '>>' 2;
Define
Iocb^Adr = Iocb^Info.Type^Iocb#,!set if openid contains @iocb
Dcb^Adr = Iocb^Info.Type^Dcb #,!set if openid contains @dcb
Rcv^Adr = Iocb^Info.Type^Rcv #,!set if msgtag contains @rcvbuf
Extaddr = Lb.Ext^Addr #,!Not used for local buffer address
Bufaddr = Lb.Buf^Addr #;!Used by local buffer to hold address
Literal
Io^Avail = 0, !IOCB is available
Io^Queued = 1, !IOCB is queued for normal file or
!$RECEIVE IOCB in input queue for
!which no READUPDATE has been issued
Io^Itc^Queued = 2, !IOCB is queued for ITC file
Io^Signal = 3, !Signaltimeout in process
Io^Breakowner = 4, !Break ownership IOCB
Io^Pending = 5, !IOCB has completed but has
!not yet passed to task via ^Awaitio
Io^Active = 6, !ITC IOCB than has been passed
!to listener but is not yet completed
!for linker
Io^Canceled = 7, !Canceled ITC IOCB
Io^Receive = 8, !$receive requests from temp buf
Io^Reply = 9; !$receive that has been passed to task
Literal !I/O Operation Types
Sysmsg^Operation = 0,
Control^Operation = 4!1!, Setmodenowait^Operation = 5 !2!,
Write^Operation = 1!3!, Read^Operation = 2 !4!,
Writeread^Operation = 3!5!, Readupdate^Operation = 6,
Readlock^Operation = 7, Readupdatelock^Operation = 8,
Lockrec^Operation = 9, Unlockrec^Operation = 10,
Open^Operation = 11, Writeupdate^Operation = 12,
Writeupdateunlock^Operation = 13, Endtrans^Operation = 14,
Signaltimeout^Operation = 15, Newprocess^Operation = 16,
Deviceinfo2^Operation = 17, Pathsend^Operation = 18,
Lockfile^Operation = 19, Unlockfile^Operation = 20,
Setparam^Operation = 21;
?Section Dcb^Layout
!******************************************************************************!
! For each device managed by GDS, there is an entry in the DCB-table !
! with the following format. !
!******************************************************************************!
Struct Dcb^Template (*); !Subdevice table entry (EXT MEM)