{ { Module: $IRPDEF { { Version: 'X-43' { {**************************************************************************** {* * {* COPYRIGHT (c) 1989, 1991, 1992, 1993, 1994, 1996, 1997 BY * {* DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS. * {* 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: VAX/VMS System Macro Libraries { { ABSTRACT: { { This file contains the SDL source for structure $IRPDEF. { { AUTHOR: The VMS Group CREATION DATE: 1-Aug-1976 { { MODIFIED BY: { { X-44 GCE Glenn C. Everhart July 1997 { Add new switching status bit to get DUdriver to flush { I/Os that come thru swdriver. { X-43 MCJ Michael C. Johnson 24-Jun-1997 { Add FILE_FLUSH and BARRIER flags to STS field for { XFC (Extended file cache) latent support. { { X-42 MCJ Michael C. Johnson 7-Apr-1997 { Add CACHE_RESUME flag to STS2 field for VDC latent { support. { { X-41 KSG0050 Kevin Greaney 20-Dec-1996 { Mainline merge of Per-Thread Security support: (gen 40A1) { { X-40A1 JMM9600B John M. Molloy 06-FEB-1996 { Mainline merge of Per-Thread Security. { -- Add pointer to PSB from which the $QIO was called. { { X-40 GCE Glenn Everhart 29-Mar-1996 { add FINIPL8 bit to STS for use by qioserver/scsi failover { / virtual disk speedup code { X-39 PAN Phil Norwich 14-March-1996 { Add bit SYNCSTS to STS field for use by SYSQIO/VIOC { to allow SYNC returns to RMS. { { X-38 DVE Dennis Van Eron 29-Feb-1996 { Add bit HBRIO to STS2 field for use by the { Host Based Raid driver. { { X-37 PRD Paul R. DeStefano 22-Jan-1996 { Added IRP$L_CTXB field; pointer to Threads Context { Block, overlaying AST and SHD_IOFL fields. { { X-36 JCH703b John C. Hallyburton, Jr. 20-Nov-1995 { QAR EVMS-GRYPHON 631. Invent flag DID_FAST_FDT so that { IOCIOPOST can tell if Fast-IO locked down any buffers { by going through the regular FDT routine. { { X-35 LSS0344 Leonard S. Szubowicz 26-Apr-1995 { K-threads: Add USER_THREAD_ID cell corresponding to { ACB$Q_USER_THREAD_ID. { { X-34 JFD0817 James F. Dunham 4-APR-1995 { Add support for FORCEMV, used to indicate that this I/O is { being retried behind a MOUNT verification request { { X-33 LSS0334 Leonard S. Szubowicz 17-Mar-1995 { 64-Bit Virtual Addressing: Changes for inclusion into LIB.L64. { { X-32 LSS0329 Leonard S. Szubowicz 7-Mar-1995 { 64-Bit Virtual Addressing: Remove obsolete 32-bit AST, ASTPRM, { and IOSB cells. Move any cells that were overlaid on AST or { ASTPRM such they are overlaid on the low order 32-bits of { their new 64-bit counterparts. { { X-31 EMB0346 Ellen M. Batbouta 09-Feb-1995 { Change the field, IRP$L_THREAD_ID, to IRP$L_THREAD_PID. { { X-30 PRD Paul R. DeStefano 07-Feb-1995 { Moved the WLE flag bits, formerly in the SHD_FLAGS field to { a new field, WLG_FLAGS. These flags are shared between the { class driver and shadowing. Moved the SHD_FLAGS field to { the shadowing extension. These flags are used only by { shadowing. { { X-29 LSS0316 Leonard S. Szubowicz 24-Jan-1995 { 64-Bit Virtual Addressing: Add new cells allowing the IRP { to be used as a ACB64 structure. During a short transition { period the 32-bit IRP$L_AST/ASTPRM cells will remain but they { will be removed by a future edit. IRP$L_ABOFF was overlaid { on IRP$L_OBOFF since these cells needed to move and their { usage is mutually exclusive. { Fast Path: Add IRP$V_LOCK_RELEASEABLE bit and IRP$L_RBUN cell. { { X-28 LSS0312 Leonard S. Szubowicz 17-Nov-1994 { 64-Bit Virtual Addressing: Add IRP$Q_PARAM_3 (overlaid on the { IRP$Q_QIO_P3 cell) for use by PAGEFAULT and IOCIOPOST. { Also, change all the IRP$L_QIO_Pn cells to unsigned longwords { to get sign-extension when used as pointers in Bliss-64 modules. { { X-27 GH Gary Hughes 10-Nov-1994 { Add MSCP server cleanup bit to STS and EXPEL_MASK { field for shadowing. { { X-26 LSS0312 Leonard S. Szubowicz 3-Nov-1994 { 64-Bit Virtual Addressing: Move IRP$Q_STATION back immediately { after IRP$L_IOST2. Edit X-25 moved some displaced cells in { between them, but the refugees can be moved elsewhere and { DECnet will be much happier. { { X-25 LSS0312 Leonard S. Szubowicz 28-Oct-1994 { 64-Bit Virtual Addressing: Initial changes that add new or { promote old cells: Embedded DIOBM, 64-bit Pn parameters, { 64-bit IOSB address. See "Chapter 20: QIO and Device Drivers" { in DOCD$:[EVMS.CMS_64B]DS-64BITS.PS. { { X-24 PRD Paul R. DeStefano 17-Oct-1994 { Replaced SHD_EXPELL_COUNT with SHD_EXPEL_TIMER. { Corrected the spelling of other "EXPEL" fields. { { X-23 JCH703 John C. Hallyburton, Jr. 11-Oct-1994 { X-22 forgot the FASTIO_DONE bit; add it { { X-22 JCH703 John C. Hallyburton, Jr. 4-Oct-1994 { Add Fast-IO bit definitions in STS { { X-21 BCL094 Barbara C. Leahy 4-Apr-1994 { Took SHD_RESERV1 for Per-Disk sublock id field. { { X-20 AEM Anne McElearney 26-Oct-1993 { Add in BASEALIGN option to aggregates for C header { file output. { { X-19 PJH Paul J. Houlihan 21-Sep-1993 { TP $QIO optimizations { - Add IRP$PS_CCB, IRP$V_BUFOBJ,V_TRUSTED,V_CCB_LOOKED_UP { - Remove IRP$M_KEY { { X-18 TPF001A Tom Frederick 18-Aug-1993 { Added SHD_EXPELL_COUNT and SHD_EXPELL_FLAGS fields. { Added the SHD_EXPELL_REMOVED flag to the shadowing { extension. Replaced SHD_RESERV_Q7. In support of { changes to Expell_Device. { { X-17 RMM Richard M. MArshall 30-May-1993 { Added SHD_SVD_CNT_IRP and SHD_WLG_MODE_FPC fields to { the shadowing extension. { { X-16 RMM Richard M. Marshall 04-Apr-1993 { Change SHD_RESERV_Q6 to SHD_SAVED_STATUS and SHD_RESERV_L1. { { X-15 WDA W.D. Arbo 01-Apr-1993 { Get rid of the */ comment delimiters. { { X-14 WDA W.D. Arbo 29-Mar-1993 { More changes for C header file production. { { X-13 WDA W.D. Arbo 5-Mar-1993 { Updates to produce new C header files. Merge Delta { changes: { { X-10U2 RMM0050 Richard M. Marshall 9-Mar-1993 { Added SHD_CONTROL_IRP field in shadowing extension. { Added SHD_SAVED_R..3, SHD_SVD_LFR4 to shadowing extension. { Secondary, concurrent 64-bit save area for use in write { logging. { { X-12 RMM0028 Richard M. Marshall 1-Feb-1993 { Added definitions needed for shadowing: { IRP$L_CLN_WLE, IRP$L_DCD_SRC_UCB, IRP$L_WLE_PTR, { IRP$x_PIO_PHASEII, IRP$x_WLE, IRP$x_WLE_REUSE { Re-lay out structure to support 64-bit registers saves, { including spare areas for saves not yet ported. { Moved Shadowing overlays out to extension. { Created Shadowing IOST2 overlays. { { X-11 WDB:HLL002 Walter D. Blaschuk, Jr. 06-Jan-1993 { HLLDD Project: FDT processing Changes. { Add the IRP$PS_FDT_CONTEXT pointer to contain the { address of the FDT_CONTEXT structure. This pointer { will be initialized by EXE$QIO and cleared by the { FDT completion routines. { { { X-10 LSS0261 Leonard S. Szubowicz 18-Dec-1992 { Add IRP$V_ABORTIO bit to IRP$L_STS2. This bit is set by { EXE$ABORTIO to indicate that the I/O request was terminated { prior to any data transfer. { { X-9 WMC009 Wayne Cardoza 12-Aug-1992 { Add bit for cached page io. { { X-8 LSS0251 Leonard S. Szubowicz 8-Jun-1992 { Merge of VAX/VMS V5.5-2 hooks for VCC. Also, ALIGN will be { a reserved keyword in a future version of SDL. { { X-3 PAN0001 Phil Norwich 07-Oct-1991 { Add flag IRP$V_CACHE_SAFE to IRP$W_STS2. { Add flag IRP$V_NOCACHE to IRP$W_STS2. { { X-7 PJH Paul j. Houlihan 06-Apr-1992 { Add new SCS_STALL_DATA field. { { X-3 BJT299 Benjamin J. Thomas III 9-Mar-1992 { Remove FIPL synonym for FLCK { { X-2 LSS0241 Leonard S. Szubowicz 13-Feb-1992 { Add .SYMBOL_ALIGNMENT QUAD for MACRO target and make file { architecture specific. { { X-15 BJT285 Benjamin J. Thomas III 4-Dec-1991 { Delete W_BOFF, W_BCNT, W_OBOFF, W_OBCNT, W_ABOFF, W_ABCNT { W_STS, W_STS2, and W_FUNC { { X-14 LSS0235 Leonard S. Szubowicz 21-Nov-1991 { Move the CLN_INDX and SHD_FLAGS bytes which are overlaid on { EFN and PRI into the unused upper word of that longword. { This facilitates an optimization in SYSQIOREQ. { { X-13 PJH Paul J. Houlihan 18-Nov-1991 { Alpha Buffer Descriptor Changes. { Create new field to hold buffer descriptor for block data { transfer, BD_ADDR, and recomment UBARSRCE to be a discretionary { class driver cell which isn't used for mapping block data { transfers any more. { { X-12 BJT0268 Benjamin J. Thomas III 13-Nov-1991 { Promote FUNC to longword { Add QIO parameter fields { { X-11 BJT0258 Benjamin J. Thomas III 25-Oct-1991 { Add ABOFF field { { X-10 BJT0256 Benjamin J. Thomas III 15-Oct-1991 { Fix definition of OBOFF { { X-9 BJT0251 Benjamin J. Thomas III 1-Oct-1991 { Align IOST1 field and RES_WAIT_STATE { { X-8 PJH Paul J. Houlihan 20-Sep-1991 { Add Resource Wait State field for SCS. { { X-7 BJT Benjamin J. Thomas III { Promote OBOFF field to longword { { X-6 BJT247 Benjamin J. Thomas III 19-Sep-1991 { Promote STS fields to longword { { X-5 ROW0745 Ralph O. Weber 17-APR-1991 13:15 { Reorder SVAPTE/BOFF/BCNT to SVAPTE/BCNT/BOFF. { This reordering makes BCNT longword aligned. { { ---------- Ident numbering change due to master pack reorg --------- { { X-4K4 LSS0204 Leonard S. Szubowicz 1-Mar-1991 { Add IRP$W_OBOFF cell to contain the original byte offset value. { Because the page size may not equal the disk block size, the { byte offset must be recomputed for each segment of a segmented { transfer, however, the original value must be saved to recompute { the pages which need to be unlocked when the entire transfer { is completed. For the time being, overlay this cell on top { of IRP$Q_PARAM_1. { { X-4K3 ROW0719 Ralph O. Weber 21-JAN-1991 17:40 { Add IRP$PS_KPB, a pointer to a KPB for I/O requests that { are processed using kernel process services. { { X-4K2 LSS0168 Leonard S. Szubowicz 6-Dec-1990 { Add IRP$Q_PARAM_0 and IRP$Q_PARAM_1 synonyms for use by { PAGEFAULT and IOCIOPOST. These are synonyms for AST, ASTPRM, { and the quadword expansion introduced by edit X-4K1Z2. { { X-4K1Z2 LSS0168 Leonard S. Szubowicz 9-Oct-1990 { Add two fill longwords to the IRP and CDRP such that the { KAST cell of the expanded ACB still overlays the WIND cell. { { X-4K1Z1 WDB:A16 Walter D. Blaschuk, Jr. 11-Sept-1990 { Increased the size of the fork save registers FR3 and { FR4 from longword unsigned to quadwords for EVMS. { { X-4 RMC0072 Renee M. Culver 14-May-1989 { Add flag IRP$V_PIO_CTHRDOK into shadow IRP Overlay. { { X-3 SHD0054 Scott H. Davis 17-Oct-1989 { Add shadowing LOCK_FR0 overlay. { { X-2 WCY071 Wai C. Yim 29-Sep-1989 { Add two host based shadowing flags. { { X-1 RAB0018 Richard Bishop 2-SEP-1989 { SYSDEFFL.SDL broken up into its constituent modules. { { SPECIAL NOTE: { { The prior audit trail can be found in the latest mainline { CMS generation of module SYSDEFFL.SDL in facility [SYS]. { {-- module $IRPDEF; /*+ /* IRP - I/O REQUEST PACKET /* /* I/O REQUEST PACKETS ARE CONSTRUCTED BY THE QUEUE I/O REQUEST SYSTEM /* SERVICE. THE CONTENT OF AN I/O REQUEST PACKET DESCRIBES A FUNCTION TO /* BE PERFORMED ON A DEVICE UNIT. /* /* NOTE: Several fields of the IRP must be at the same offsets as their /* corresponding fields in the IRPE and CDRP. The equivalency of these /* offsets is verified by ASSUME statements in the [LIB]VFY_IRP_A_LIKES.MAR /* module. These ASSUMEs may need to be altered as well whenever an IRP /* field is removed or altered. /*- iflanguage macro literal; .SYMBOL_ALIGNMENT QUAD end_literal; end_iflanguage macro; read "LIB$:DIOBMDEF.SDI"; { Define DIOBM type; IRP contains an embedded DIOBM type iflanguage cc literal; { NOTE: Comment below is a C comment and must be terminated #include /* Define the DIOBM type; IRP contains an embedded DIOBM type */ end_literal; end_iflanguage cc; aggregate IRP structure prefix IRP$ typedef basealign quadword; IOQFL pointer (IRP) tag L; /*I/O QUEUE FORWARD LINK IOQBL pointer (IRP) tag L; /*I/O QUEUE BACKWARD LINK SIZE word unsigned; /*SIZE OF IRP IN BYTES TYPE byte unsigned; /*STRUCTURE TYPE FOR IRP RMOD_OVERLAY union fill; RMOD byte unsigned; /*ACCESS MODE OF REQUEST RMOD_BITS structure fill; MODE bitfield length 2; /* MODE SUBFIELD end RMOD_BITS; end RMOD_OVERLAY; PID longword unsigned; /*PROCESS ID OF REQUESTING PROCESS PARAM_0 structure quadword basealign quadword; /*For PAGEFAULT and IOCIOPOST ACB64X_OFFSET longword; /* Offset to ACB64X structure embedded in this IRP end PARAM_0; PARAM_1 structure quadword basealign quadword; /*For PAGEFAULT and IOCIOPOST ACB_FLAGS longword unsigned; /* ACB flags; valid only if ACB$M_FLAGS_VALID in RMOD set THREAD_PID longword unsigned; /* (Reserved for Kernel Threads) end PARAM_1; WIND_OVERLAY union fill; WIND pointer (WCB) tag L; /*ADDRESS OF WINDOW BLOCK MIRP pointer (IRP) tag L; /*LINK TO MASTER IRP KAST pointer (entry returns void) tag L; /*PIGGY BACK KERNEL AST ADDRESS end WIND_OVERLAY; UCB pointer (UCB) tag L; /*ADDRESS OF DEVICE UCB ACB64_AST_OVERLAY union fill; ACB64_AST pointer_quad (entry returns void) basealign quadword; /* 64-bit user AST routine address SHD_IOFL pointer (IRP) tag L; /* Link to clone IRPs CTXB pointer (CTXB) tag L; /* Link to CTXB IIRP_P0 longword; /* Generic parameter cell in internal IRPs end ACB64_AST_OVERLAY; ACB64_ASTPRM_OVERLAY union fill; ACB64_ASTPRM quadword unsigned basealign quadword; /* 64-bit user AST parameter value SHAD pointer (SHAD) tag L; /* SHAD address HRB pointer (HRB) tag L; /* HRB address MV_TMO longword; /* Timeout value in internal mount verification IRPs IIRP_P1 longword; /* Generic parameter cell in internal IRPs end ACB64_ASTPRM_OVERLAY; USER_THREAD_ID quadword unsigned basealign quadword; /* Unique user thread identifier EFN byte unsigned; /*EVENT FLAG NUMBER AND EVENT GROUP PRI byte unsigned; /*BASE PRIORITY OF REQUESTING PROCESS CLN_INDX byte unsigned; /*Shadow Clone membership index WLG_FLAGS_OVERLAY union fill; /* Write log flags. WLG_FLAGS byte unsigned; /* These flags are shared by DUDRIVER and SHDRIVER and MSCP. WLG_FLAG_BITS structure fill; /* Write log Flags Status Bits WLE_REUSE bitfield mask; /* Reuse writelog entry WLE_SUPWL bitfield mask; /* Supplementary writelog end WLG_FLAG_BITS; /* end WLG_FLAGS_OVERLAY; /* CHAN longword unsigned; /* Process I/O channel IOSB structure pointer_quad basealign quadword; /* 64-bit address of caller's IOSB IOSB_OVERLAY union fill; CLN_WLE longword unsigned; /* write log entry PARAM_2 quadword; /* For PAGEFAULT and IOCIOPOST (Kthreads) IIRP_P2 longword; /* Generic parameter cell in internal IRPs end IOSB_OVERLAY; end IOSB; STATUS structure quadword unsigned basealign quadword; /*Big time REQUEST STATUS STS structure longword unsigned; /* Status BUFIO bitfield mask; /* BUFFERED I/O FLAG ;THESE BITS FUNC bitfield mask; /* 1=>READ FUNCTION ;MUST BE ADJACENT PAGIO bitfield mask; /* PAGING I/O FLAG ;AND IN ORDER COMPLX bitfield mask; /* COMPLEX BUFFERED I/O VIRTUAL bitfield mask; /* VIRTUAL I/O FUNCTION CHAINED bitfield mask; /* CHAINED BUFFERED I/O OPERATION SWAPIO bitfield mask; /* SWAP I/O OPERATION DIAGBUF bitfield mask; /* DIAGNOSTIC BUFFER ALLOCATED PHYSIO bitfield mask; /* PHYSICAL I/O TERMIO bitfield mask; /* TERMINAL I/O (FOR SELECTING PRIORITY INC) MBXIO bitfield mask; /* MAILBOX BUFFERED READ EXTEND bitfield mask; /* AN IRPE IS LINKED TO THIS IRP FILACP bitfield mask; /* FILE ACP I/O (BOTH DIOCNT AND BIOCNT) MVIRP bitfield mask; /* MOUNT VERIFICATION IRP SRVIO bitfield mask; /* SERVER TYPE I/O (TRIGGER MOUNTVER ON ERROR BUT DON'T STALL) CCB_LOOKED_UP bitfield mask; /* Set if IRP$PS_CCB contains valid CCB address CACHE_PAGIO bitfield mask; /* Cached page i/o FILL_BIT bitfield mask; /* Unused BUFOBJ bitfield mask; /* Set if buffer object I/O TRUSTED bitfield mask; /* Set if trusted Component I/O FASTIO_DONE bitfield mask; /* Set if this is an available Fast-IO IRP FASTIO bitfield mask; /* Set if IRP created by $IO_SETUP -- special delete action FAST_FINISH bitfield mask; /* Set if IPL8 completion is expected DOPMS bitfield mask; /* =1 if this IRP should call PMS$ logging routines HIFORK bitfield mask; /* Device fork IPL > IPL$C_SCS SRV_ABORT bitfield mask; /* Server I/O should be aborted LOCK_RELEASEABLE bitfield mask; /* Forklock can be released in favor of PM spinlock on Start I/O DID_FAST_FDT bitfield mask; /* Fast-IO may have locked buffers via standard FDT dispatch SYNCSTS bitfield mask; /* VIOC can return SS$_SYNC on HIT if set. FINIPL8 bitfield mask; /* Finish at IPL8 hook FILE_FLUSH bitfield mask; /* Flush the file following this I/O BARRIER bitfield mask; /* Insert a barrier following this I/O end STS; STS2 structure longword unsigned; /* EXTENSION OF STATUS WORD START_PAST_HWM bitfield mask; /* I/O STARTS PAST HIGHWATER MARK END_PAST_HWM bitfield mask; /* I/O ENDS PAST HIGHWATER MARK ERASE bitfield mask; /* ERASE I/O FUNCTION PART_HWM bitfield mask; /* PARTIAL HIGHWATER MARK UPDATE LCKIO bitfield mask; /* Locked I/O request (DECnet) SHDIO bitfield mask; /* This is a shadowing IRP CACHEIO bitfield mask; /* uses VBN cache buffers WLE bitfield mask; /* I/O USES A WRITE LOG ENTRY CACHE_SAFE bitfield mask; /* this indicates that /* the request has been /* checked as regards /* caching. NOCACHE bitfield mask; /* IO$M_NOVCACHE was /* set in QIO function ABORTIO bitfield mask; /* set in EXE$ABORTIO FORCEMV bitfield mask; /* set to indicate forced MV in progress HBRIO bitfield mask; /* This is a host based raid IRP. CACHE_RESUME bitfield mask; /* Set if cache needs to see IRP again VIASWITCH bitfield mask; /* Set if SWdriver sent this IRP through end STS2; end STATUS; VA_PTE pointer_quad (PTE) basealign quadword; /* 64-bit process virtual addr of PTE SVAPTE_OVERLAY union fill; SVAPTE pointer tag L; /* 32-bit S0/S1 address of first PTE BUFIO_PKT pointer (BUFIO); /* Pointer to buffered I/O packet end SVAPTE_OVERLAY; BCNT longword unsigned; /*BYTE COUNT OF TRANSFER BOFF longword unsigned; /* Byte offset OBOFF_OVERLAY union fill; OBOFF longword unsigned; /* Original BOFF, for segmented DIO ABOFF longword unsigned; /* "Ambient" BOFF, for NETDRIVER end OBOFF_OVERLAY; EXTEND pointer (IRPE) tag L; /* ADDRESS OF IRPE FDT_CONTEXT pointer (FDT_CONTEXT); /* Contains addr of the FDT Context structure DIOBM DIOBM basealign quadword; /* Embedded DIOBM to handle cross-process 32-bit PTE access IOST1_OVERLAY union fill; IOST1 longword unsigned; /*FIRST I/O STATUS LONGWORD (FOR I/O POST) MEDIA longword; /*MEDIA ADDRESS end IOST1_OVERLAY; IOST2_OVERLAY union fill; IOST2 longword unsigned; /*SECOND I/O STATUS LONGWORD TT_TERM_OVERLAY union fill; TT_TERM longword; /*ADDRESS OF READ TERMINATORS MASK CARCON byte unsigned; /*CARRIAGE CONTROL end TT_TERM_OVERLAY; SHD_IOST2_OVERLAY union fill; { communicated with shadow server SHD_COPY_TYPE word unsigned; /*TYPE OF COPY TO PERFORM SHD_IOST2_STUFF structure fill; SHD_VUN word unsigned; /* VIRTUAL UNIT NUMBER SHD_IOST2_INNER union fill; SHD_DEV_TYPE word unsigned; /*DEVICE TYPE SHD_MSCP_DISK_MODIFIER word unsigned; /*FIELD FOR MODIFIERS end SHD_IOST2_INNER; end SHD_IOST2_DSA_STUFF; end SHD_IOST2_OVERLAY; end IOST2_OVERLAY; NT_PRVMSK_OVERLAY union fill; NT_PRVMSK quadword unsigned; /* PRIVILEGE MASK FOR DECNET STATION quadword unsigned; /* STATION FIELD FOR DECNET DRIVERS TT_STATE_OVERLAY union fill; TT_STATE quadword unsigned; /* TERMINAL STATE DEFINITIONS TT_STATE_FIELDS structure fill; ABCNT longword unsigned; /* ACCUMULATED BYTES TRANSFERED OBCNT longword unsigned; /* ORIGINAL TRANSFER BYTE COUNT end TT_STATE_FIELDS; end TT_STATE_OVERLAY; end NT_PRVMSK_OVERLAY; FUNC_OVERLAY union fill; FUNC longword unsigned; /* I/O function code FUNC_BITS structure fill; FCODE bitfield mask length 6; /* FUNCTION CODE FIELD FMOD bitfield length 10; /* FUNCTION MODIFIER FIELD end FUNC_BITS; end FUNC_OVERLAY; SEGVBN longword unsigned; /* VIRTUAL BLOCK NUMBER OF CURRENT SEGMENT DIAGBUF_OVERLAY union fill; DIAGBUF pointer tag L; /* DIAGNOSTIC BUFFER ADDRESS SCB_BUF pointer tag L; /* SCB BUFFER ADDRESS TT_PRMPT word unsigned; /* PROMPT SIZE end DIAGBUF_OVERLAY; SEQNUM_OVERLAY union fill; SEQNUM longword unsigned; /* SEQUENCE NUMBER DCD_SRC_UCB pointer (UCB) tag L; /* DISK COPY DATA SOURCE UCB end SEQNUM_OVERLAY; ARB pointer (ARB) tag L; /* ACCESS RIGHTS BLOCK ADDRESS KEYDESC_OVERLAY union fill; KEYDESC pointer tag L; /* ADDRESS OF ENCRYPTION DESCRIPTOR WLE_PTR longword unsigned; /* Clone Write log index CPY_MODE byte unsigned; /* Copy mode identifier end KEYDESC_OVERLAY; KPB pointer (KPB); /* Pointer to KP block CCB pointer (CCB); /* Pointer to CCB for this I/O QIO_P1 structure quadword basealign quadword; /* QIO argument #1 (64-bits) QIO_P1 longword; /* (low-order 32-bit) end QIO_P1; QIO_P2 structure quadword basealign quadword; /* QIO argument #2 (64-bits) QIO_P2 longword; /* (low-order 32-bit) end QIO_P2; QIO_P3_OVERLAY union fill basealign quadword; QIO_P3 quadword; /* QIO argument #3 (64-bits) QIO_P3 longword; /* (low-order 32-bit) PARAM_3 quadword; /* (for PAGEFAULT and IOCIOPOST) end QIO_P3_OVERLAY; QIO_P4 structure quadword basealign quadword; /* QIO argument #4 (64-bits) QIO_P4 longword; /* (low-order 32-bit) end QIO_P4; QIO_P5 structure quadword basealign quadword; /* QIO argument #5 (64-bits) QIO_P5 longword; /* (low-order 32-bit) end QIO_P5; QIO_P6 structure quadword basealign quadword; /* QIO argument #6 (64-bits) QIO_P6 longword; /* (low-order 32-bit) end QIO_P6; /* ALL FIELDS INSERTED ABOVE THIS POINT IN THE IRP /* MUST BE CHANGED IN THE CDRPDEF.SDL FILE. { Filler to make IRP a quadword length multiple before start of CDRP ALIGN_1 character length 0 fill basealign quadword; /* QUADword align /* Standard IRP must contain space for Class Driver CDRP fields. constant CDRP equals .; /* Offset to the CDRP within the IRP constant CDRP equals . tag C; /* Offset to the CDRP within the IRP FQFL pointer (FKB) tag L; /* Fork Queue FLINK FQBL pointer (FKB) tag L; /* Fork Queue Blink CDRPSIZE word unsigned; /* Size field for positive section only CD_TYPE byte unsigned; /* Type, always of interest FLCK byte unsigned; /* Fork Lock number FPC pointer (entry returns void) tag L; /* Fork PC FR3 quadword; /* Fork R3 FR4 quadword; /* Fork R4 SAVD_RTN pointer (entry returns void) tag L; /* Saved return address from level 1 JSB MSG_BUF pointer tag L; /* Address of allocated MSCP buffer RSPID longword unsigned; /* Allocated Request ID CDT pointer (CDT) tag L; /* Address of Connection Descriptor Table RES_WAIT_STATE quadword unsigned; /* SCS Resource Wait State SCS_STALL_DATA longword; /* Data cell used by SCS to save data over a stall RWCPTR pointer tag L; /* RWAITCNT pointer BD_ADDR pointer tag L; /* Address of Buffer Descriptor that maps I/O buffer RBUN pointer tag L; /* Address of Resource Bundle LBUFH_AD pointer tag L; /* Local BUFfer Handle ADress PSB pointer (PSB) tag AR ; /* Pointer to PSB from which QIO was called. ALIGN_2 character length 0 fill basealign quadword; /* Assure quadword alignment for CDRP extensions /* Extensions to the CDRP within the IRP CDRP_EXTENSIONS union fill; /* Host-Based Shadowing Extension SHADOWING_EXTENSION structure fill; SHD_PIO_CNT byte unsigned; /* Tot num phys IRPs assoc. SHD_PIO_ACT byte unsigned; /* Tot num phys IRPs active. /* Note Keep SHD_PIO_FLAGS, SHD_PIO_ERRCNT, contiguous. PIO_FLAGS_OVERLAY union fill; SHD_PIO_FLAGS byte unsigned; /* Master Flags Byte PIO_BITS structure fill; PIO_ERROR bitfield mask; /* Errant clone in Chain PIO_FANOUT bitfield mask; /* Chained Clones. PIO_NOQUE bitfield mask; /* Don't queue to server PIO_CANCEL bitfield mask; /* This master cancelled PIO_CTHRDOK bitfield mask; /* Copy thread validated. PIO_PHASEII bitfield mask; /* Bi-phasic Phase II write end PIO_BITS; end PIO_FLAGS_OVERLAY; SHD_PIO_ERRCNT byte unsigned; /* Number of errors in chain SHD_PIO_ERRINDEX byte unsigned; /* Index of erring device SHD_PIO_ERRSEV byte unsigned; /* Relative error severity SHD_FILLER word fill; SHD_LOCK_FR0 quadword unsigned; /* Lock fork R0 SHD_LOCK_FR1 quadword unsigned; /* Lock fork R1 SHD_LOCK_FR2 quadword unsigned; /* Lock fork R2 SHD_LOCK_FR4 quadword unsigned; /* Lock fork R4 SHD_LOCK_FR5 quadword unsigned; /* Lock fork R5 SHD_LOCK_FPC pointer (entry returns void) tag L; /* Lock fork PC SHD_PIO_ERROR longword unsigned; /* BCNT and Error Status (SS$_) SHD_PIO_LNK pointer (IRP) tag L; /* Link to clone IRP(s) SHDSPC pointer (entry) tag L; /* Shadowing return PC SHD_CONTROL_IRP pointer (IRP) tag L; /* address of control IRP SHD_TEMP longword; /* used for temporary storage SHD_SAVED_R1 quadword unsigned; /* second save area for WLG SHD_SAVED_R2 quadword unsigned; SHD_SAVED_R4 quadword unsigned; SHD_SVD_CNT_IRP longword unsigned; /* save SHD_CONTROL_IRP SHD_SAVED_STATUS longword unsigned; /* save area for status SHD_WLG_MODE_FPC longword unsigned; /* saved PC for WLG_MODE fork SHD_PERLKID longword unsigned; /* holds sublock id for /* per-disk SHD_EXPEL_TIMER longword unsigned; /* Clone error timer EXPEL_FLAGS_OVERLAY union fill; SHD_EXPEL_FLAGS longword unsigned; /* Clone IRP flags EXPEL_BITS structure fill; SHD_EXPEL_REMOVED bitfield mask; /* Device is expelled end EXPEL_BITS; end EXPEL_FLAGS_OVERLAY; SHD_EXPEL_MASK longword unsigned; /* indicate units to be expelled in MIRP SHD_RESERV_Q8 quadword unsigned; /* will be needed for 64-bit saves SHD_RESERV_Q9 quadword unsigned; /* will be needed for 64-bit saves SHD_RESERV_Q10 quadword unsigned; /* will be needed for 64-bit saves SHD_FLAGS_OVERLAY union fill; SHD_FLAGS byte unsigned; /* Shadow Clone Flags SHD_FLAG_BITS structure fill; /* Clone Flags Status Bits CLN_READY bitfield mask; /* Clone is ready for I/O CLN_DONE bitfield mask; /* Clone has done I/O CPY_FINI bitfield mask; /* Copy is complete. end SHD_FLAG_BITS; /* end SHD_FLAGS_OVERLAY; /* end SHADOWING_EXTENSION; /* Block Transfer Extension BLK_XFER_EXTENSION structure fill; LBOFF longword unsigned; /* Local Byte OFFset RBUFH_AD_OVERLAY union fill; RBUFH_AD pointer tag L; /* Remote BUFfer Handle ADress CDRPFL pointer (CDRP) tag L; end RBUFH_AD_OVERLAY; RBOFF longword unsigned; /* Remote Byte OFFset XCT_LEN longword unsigned; /* Transfer length in bytes constant BT_LEN equals .; constant BT_LEN equals . tag C; end BLK_XFER_EXTENSION; /* Class Driver Extension CLS_DRV_EXTENSION structure fill; LBUFHNDL character length 12; /* Local buffer handle UBARSRCE longword unsigned; /* Scratch Cell used for DU/TUDRIVER convenience DUTUFLAGS longword unsigned; /* Class driver status flags: { See CDRP definition for bit field { definitions. DUTUCNTR word unsigned; /* General purpose counter ENDMSGSIZ word unsigned; /* Size of most recent MSCP end message constant CD_LEN equals .; constant CD_LEN equals . tag C; end CLS_DRV_EXTENSION; /* File system extensions ERASE_VBN longword unsigned; /* VBN to start HWM erase end CDRP_EXTENSIONS; ALIGN_3 character length 0 fill basealign longword; /* Assure alignment ends on a longword boundary. /* Context stack CURCSP pointer tag L; STKFLGS structure longword unsigned; ONSTACK bitfield mask; /* Context on context stack end STKFLGS; CTXEXT structure fill; CTXSTK character length 128 tag A; end CTXEXT; ALIGN_3 character length 0 fill basealign longword; /* Assure alignment ends on a longword boundary. end IRP; constant "LENGTH" equals . prefix IRP$; /* LENGTH OF STANDARD IRP constant "LENGTH" equals . prefix IRP$ tag C; /* LENGTH OF STANDARD IRP constant IRPDEF equals . prefix IRP$ tag S; /* OLD IRP SIZE FOR COMPATIBILITY iflanguage macro literal; .SYMBOL_ALIGNMENT NONE end_literal; end_iflanguage end_module $IRPDEF;