; public_domain_notice ; ; Copyright (c) 1996 David P. Murphy for Datametrics Systems Corporation --- ; please send all comments and bug reports to murphy@connor.datametrics.com ; ; Permission is granted to any individual or institution to use, copy, or ; redistribute this software so long as all of the original files are included, ; that it is not sold for profit, and that this copyright notice is retained. ; Use at your own risk. Neither Murphy nor Datametrics assumes responsibility. ; Do not taunt Happy Fun Ball. .MACRO $DPMDEF,$GBL $DEFINI DPM,$GBL .if defined __ALPHA .SYMBOL_ALIGNMENT QUAD .endc ; this is the MYCROFT_CHEAP_CHANNEL_INFO structure ; $EQU DPM1$L_CCB 0 ; ctl$ : address of Channel Control Block $EQU DPM1$L_ICB 4 ; iac$ : address of Image Control Block $EQU DPM1$L_UCB 8 ; CCB : address of Unit Control Block $EQU DPM1$L_WIND 12 ; CCB : address of Window Block $EQU DPM1$L_CRB 16 ; UCB : address of Channel Request Block $EQU DPM1$L_DDB 20 ; UCB : address of Device Data Block $EQU DPM1$L_ORB 24 ; UCB : address of Object's Rights Block $EQU DPM1$L_VCB 28 ; UCB : address of Volume Control Block $EQU DPM1$L_DDT 32 ; DDB : address of the Driver Dispatch Table $EQU DPM1$L_SB 36 ; DDB : address of System Block which owns the device $EQU DPM1$L_LOCALSB 40 ; address of current node's System Block $EQU DPM1$L_FCB 44 ; WCB : address of File Control Block $EQU DPM1$L_KFE 48 ; ICB : address of Known File Entry (for images only) $EQU DPM1$L_VASTART 52 ; ICB : beginning virtual address (for images only) $EQU DPM1$L_VAEND 56 ; ICB : ending virtual address (for images only) $EQU DPM1$L_CHAN 60 ; CCB : associated channel number $EQU DPM1$L_IOC 64 ; CCB : number of outstanding i/o requests on channel $EQU DPM1$L_OPCNT 68 ; UCB : count of operations completed $EQU DPM1$L_ERRCNT 72 ; UCB : device error count $EQU DPM1$L_REFCNT 76 ; UCB : reference count of processes $EQU DPM1$L_ALLOCLS 80 ; DDB : device allocation class $EQU DPM1$L_CSTS 84 ; CCB : channel status $EQU DPM1$L_USTS 88 ; UCB : device unit status $EQU DPM1$L_DEVSTS 92 ; UCB : device dependent status $EQU DPM1$L_DEVCHAR 96 ; UCB : original device characteristic bits $EQU DPM1$L_DEVCHAR2 100 ; UCB : extended device characteristic bits $EQU DPM1$L_DEVDEPEND 104 ; UCB : first device dependent longword $EQU DPM1$L_DEVDEPND2 108 ; UCB : second device dependent longword $EQU DPM1$L_DEVDEPND3 112 ; UCB : 3rd device dependent longword $EQU DPM1$L_DEVDEPND4 116 ; UCB : 4th device dependent longword $EQU DPM1$L_HDLBN 120 ; FCB : lbn of file header $EQU DPM1$L_FILESIZE 124 ; FCB : file size in blocks $EQU DPM1$L_IMAGEFLAGS 128 ; ICB : attribute bitmask (for images only) $EQU DPM1$L_MATCHCONTROL 132 ; ICB : GSMATCH=XXX value (for images only) $EQU DPM1$L_MAJORID 136 ; ICB : (for images only) $EQU DPM1$L_MINORID 140 ; ICB : (for images only) $EQU DPM1$Q_PRIVS 144 ; KFE : process privilege mask (for MAIN EXECUTABLE images only) $EQU DPM1$L_LSPARE 152 ; twenty spare longwords $EQU DPM1$S_LSPARE 80 $EQU DPM1$W_FID 232 ; FCB : file identification $EQU DPM1$W_FID_NUM 232 $EQU DPM1$W_FID_SEQ 234 $EQU DPM1$W_FID_RVN 236 $EQU DPM1$W_REVISION 238 ; FCB : file revision $EQU DPM1$W_STATUS 240 ; FCB : file status $EQU DPM1$W_ACNT 242 ; FCB : file access count $EQU DPM1$W_UNIT 244 ; UCB : physical device unit number $EQU DPM1$W_DEVBUFSIZ 246 ; UCB : buffer size, in bytes $EQU DPM1$W_MSGMAX 248 ; UCB : maximum messages allowed (only if devclass == DC$_MAILBOX) $EQU DPM1$W_MSGCNT 250 ; UCB : current number of messages (only if devclass == DC$_MAILBOX) $EQU DPM1$W_KFEMASK 252 $EQU DPM1$M_PROTECT <^X0001> ; KFE : known file was installed protected (for images only) $EQU DPM1$M_LIM <^X0002> ; KFE : linkable image (for images only) $EQU DPM1$M_PROCPRIV <^X0004> ; KFE : use process privilege mask (for images only) $EQU DPM1$M_OPEN <^X0008> ; KFE : image installed /OPEN (for images only) $EQU DPM1$M_HDRRES <^X0010> ; KFE : image header block is resident (for images only) $EQU DPM1$M_SHARED <^X0020> ; KFE : image is shared (for images only) $EQU DPM1$M_SHMIDENT <^X0040> ; KFE : shared memory ident already set (for images only) $EQU DPM1$M_COMPATMOD <^X0080> ; KFE : image is compatability mode (for images only) $EQU DPM1$M_NOPURGE <^X0100> ; KFE : image entry may not be purged (for images only) $EQU DPM1$M_ACCOUNT <^X0200> ; KFE : image level accounting (for images only) $EQU DPM1$M_WRITEABLE <^X0400> ; KFE : global sections are writeable (for images only) $EQU DPM1$M_EXEONLY <^X0800> ; KFE : image has only execute access allowed (for images only) $EQU DPM1$M_DISCONTIGUOUS <^X1000> ; KFE : image has resident sections (for images only) $EQU DPM1$M_FUTURE1 <^X2000> $EQU DPM1$M_FUTURE2 <^X4000> $EQU DPM1$M_FUTURE3 <^X8000> $EQU DPM1$W_WSPARE 254 ; nine spare words $EQU DPM1$S_WSPARE 18 $EQU DPM1$B_AMOD 272 ; CCB : allocation access mode $EQU DPM1$B_DEVCLASS 273 ; UCB : a DC$_XXXXX value from $EQU DPM1$B_DEVTYPE 274 ; UCB : a DT$_XXXXX value from $EQU DPM1$B_ACCESS 275 ; WCB : access control byte $EQU DPM1$B_ACTCODE 276 ; ICB : activation code (for images only) $EQU DPM1$B_MISCMASK 277 $EQU DPM1$M_SECTFILE <^X0001> ; the file is a "section" file $EQU DPM1$M_READACC <^X0002> ; the device was assigned with read access $EQU DPM1$M_WRITEACC <^X0004> ; the device was assigned with write access $EQU DPM1$M_FUTURE1 <^X0008> $EQU DPM1$M_FUTURE2 <^X0010> $EQU DPM1$M_FUTURE3 <^X0020> $EQU DPM1$M_FUTURE4 <^X0040> $EQU DPM1$M_FUTURE5 <^X0080> $EQU DPM1$B_BSPARE 278 ; thirty-nine spare bytes $EQU DPM1$S_BSPARE 39 $EQU DPM1$T_NAME 317 ; DDB : generic path name of device (asciz) $EQU DPM1$S_NAME 16 $EQU DPM1$T_NODE 333 ; SB : SCS nodename which "owns" the device (asciz) $EQU DPM1$S_NODE 16 $EQU DPM1$T_FULLDEVNAME 349 ; full device name (asciz) $EQU DPM1$S_FULLDEVNAME 64 $EQU DPM1$T_LABEL 413 ; VCB : volume label (asciz) $EQU DPM1$S_LABEL 13 $EQU DPM1$T_IMGNAME 426 ; ICB : image name string (asciz) (for images only) $EQU DPM1$S_IMGNAME 40 $EQU DPM1$T_TSPARE 466 ; forty-six spare bytes $EQU DPM1$S_TSPARE 46 $EQU DPM1$K_LENGTH 512 $EQU DPM1$C_LENGTH 512 $EQU DPM1$S_DPM1DEF 512 ; this is the MYCROFT_EXPENSIVE_CHANNEL_INFO structure ; $EQU DPM2$Q_CREDATE 0 ; creation date $EQU DPM2$Q_REVDATE 8 ; revision date $EQU DPM2$Q_EXPDATE 16 ; expiration date $EQU DPM2$Q_BAKDATE 24 ; backup date $EQU DPM2$L_UIC 32 ; owner uic $EQU DPM2$L_LSPARE 36 ; six spare longwords $EQU DPM2$S_LSPARE 24 $EQU DPM2$W_FPRO 60 ; file protection $EQU DPM2$W_WSPARE 62 ; six spare words $EQU DPM2$S_WSPARE 12 $EQU DPM2$B_BSPARE 74 ; twenty-two spare bytes $EQU DPM2$S_BSPARE 22 $EQU DPM2$T_RESFS 96 ; resultant filespec (asciz) $EQU DPM2$S_RESFS 513 $EQU DPM2$T_FILEHEADER 609 ; file header (pure data) $EQU DPM2$S_FILEHEADER 512 $EQU DPM2$T_TSPARE 1121 ; thirty-one spare bytes $EQU DPM2$S_TSPARE 31 $EQU DPM2$K_LENGTH 1152 $EQU DPM2$C_LENGTH 1152 $EQU DPM2$S_DPM2DEF 1152 ; this is the MYCROFT_TIP_CHANNEL_INFO structure ; $EQU DPM3$L_TFRADR1 0 ; first transfer address $EQU DPM3$L_TFRADR2 4 ; second transfer address $EQU DPM3$L_TFRADR3 8 ; third transfer address $EQU DPM3$L_INISHR 12 ; shared image initialization $EQU DPM3$Q_LINKTIME 16 ; date and time this image was linked $EQU DPM3$L_LSPARE 24 ; six spare longwords $EQU DPM3$S_LSPARE 24 $EQU DPM3$W_WSPARE 48 ; six spare words $EQU DPM3$S_WSPARE 12 $EQU DPM3$B_DPMMASK 60 $EQU DPM3$M_SHAREABLE <^X0001> ; this is a "shareable image", not a "main executable" $EQU DPM3$M_LNKTRACE <^X0002> ; the image was linked /TRACE $EQU DPM3$M_LNKDEBUG <^X0004> ; the image was linked /DEBUG $EQU DPM3$M_FUTURE1 <^X0008> $EQU DPM3$M_FUTURE2 <^X0010> $EQU DPM3$M_FUTURE3 <^X0020> $EQU DPM3$M_FUTURE4 <^X0040> $EQU DPM3$M_FUTURE5 <^X0080> $EQU DPM3$B_BSPARE 61 ; five spare bytes $EQU DPM3$S_BSPARE 5 $EQU DPM3$T_IMAGEHEADER 66 ; pure data, NOT asciz! $EQU DPM3$S_IMAGEHEADER 512 $EQU DPM3$T_IMGID 578 ; image ident name string (asciz) $EQU DPM3$S_IMGID 16 $EQU DPM3$T_LINKID 594 ; linker ident name string (asciz) $EQU DPM3$S_LINKID 16 $EQU DPM3$T_PATCHES 610 ; applied ECO numbers in the format 1,2,3,... (asciz) $EQU DPM3$S_PATCHES 405 ; 9*2 + 90*3 + 29*4 = 404 $EQU DPM3$T_TSPARE 1015 ; nine spare characters $EQU DPM3$S_TSPARE 9 $EQU DPM3$K_LENGTH 1024 $EQU DPM3$C_LENGTH 1024 $EQU DPM3$S_DPM3DEF 1024 ; this is the MYCROFT_LOCK_INFO structure ; $EQU DPM4$Q_CREDATE 0 ; creation date $EQU DPM4$Q_REVDATE 8 ; revision date $EQU DPM4$Q_EXPDATE 16 ; expiration date $EQU DPM4$Q_BAKDATE 24 ; backup date $EQU DPM4$L_UIC 32 ; owner uic $EQU DPM4$L_LSPARE 36 ; six spare longwords $EQU DPM4$S_LSPARE 24 $EQU DPM4$W_FPRO 60 ; file protection $EQU DPM4$W_WSPARE 62 ; six spare words $EQU DPM4$S_WSPARE 12 $EQU DPM4$B_BSPARE 74 ; twenty-two spare bytes $EQU DPM4$S_BSPARE 22 $EQU DPM4$T_RESFS 96 ; resultant filespec (asciz) $EQU DPM4$S_RESFS 513 $EQU DPM4$T_FILEHEADER 609 ; file header (pure data) $EQU DPM4$S_FILEHEADER 512 $EQU DPM4$T_TSPARE 1121 ; thirty-one spare bytes $EQU DPM4$S_TSPARE 31 $EQU DPM4$K_LENGTH 512 $EQU DPM4$C_LENGTH 512 $EQU DPM4$S_DPM4DEF 512 .if defined __ALPHA .SYMBOL_ALIGNMENT NONE .endc $DEFEND DPM,$GBL,DEF .ENDM