!*** MODULE $CLIDEF *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! ++ ! ! $CLIDEF --- COMMAND LAGUAGE INTERFACE DEFINITIONS ! ! THIS MODULE DEFINES THE OFFSET VALUES FOR THE DATA STRUCTURES ! USED TO COMMUNICATED COMMAND INFORMATION BETWEEN THE CLI AND ! THE UTILITY THAT WAS REQUESTED TO PERFORM THE OPERATION. ! ! -- PARAMETER CLI$M_DEBUG = '00000001'X PARAMETER CLI$M_DBGTRU = '00000002'X PARAMETER CLI$M_VERIFY = '00000004'X PARAMETER CLI$M_BATCH = '00000008'X PARAMETER CLI$M_INDIRECT = '00000010'X PARAMETER CLI$M_VFYINP = '00000020'X PARAMETER CLI$M_TRMVRBLV = '00000300'X PARAMETER CLI$M_DBGEXCP = '00010000'X STRUCTURE /CLIDEF/ INTEGER*4 CLI$L_INIARGCNT ! INITIAL ARG COUNT INTEGER*4 CLI$A_PROGXFER ! PROGRAM TRANSFER VECTOR ADDRESS INTEGER*4 CLI$A_UTILSERV ! ADDRESS OF CLI UTILITY SERVICE INTEGER*4 CLI$A_IMGHDADR ! ADDRESS OF IMAGE HEADER INTEGER*4 CLI$A_IMGFILED ! ADDRESS OF IMAGE FILE DATA INTEGER*4 CLI$L_LINKFLAG ! LINK FLAG LONGWORD UNION MAP INTEGER*4 CLI$L_CLIFLAG ! CLI FLAG LONGWORD END MAP MAP PARAMETER CLI$S_DEBUG = 1 PARAMETER CLI$V_DEBUG = 0 ! DEBUG QUALIFIER SEEN PARAMETER CLI$S_DBGTRU = 1 PARAMETER CLI$V_DBGTRU = 1 ! DEBUG WAS TRUE PARAMETER CLI$S_VERIFY = 1 PARAMETER CLI$V_VERIFY = 2 ! VERIFY IS ON PARAMETER CLI$S_BATCH = 1 PARAMETER CLI$V_BATCH = 3 ! THIS PROCESS IS A BATCH JOB PARAMETER CLI$S_INDIRECT = 1 PARAMETER CLI$V_INDIRECT = 4 ! INDIRECT LEVEL NOT EQUAL TO ZERO PARAMETER CLI$S_VFYINP = 1 PARAMETER CLI$V_VFYINP = 5 ! UTILITY SHOULD VERFIY INPUT PARAMETER CLI$S_TRMVRBLV = 2 PARAMETER CLI$V_TRMVRBLV = 8 ! TERMINAL VERBOSITY LEVEL PARAMETER CLI$S_DBGEXCP = 1 PARAMETER CLI$V_DBGEXCP = 16 ! DEBUGGER CALLED VIA "DEBUG" EXCEPTION BYTE %FILL (2) END MAP ! THE FOLLOWING ARGUMENTS ARE OPTIONAL DEPENDING ON INIARGCNT END UNION INTEGER*4 CLI$L_ARGLIST ! ADDRESS OF APPLICATION ARGUMENT LIST ! (USED FOR MERGED IMAGE ARG. PASSING) ! ! DEFINE CLI COMMAND INTERFACE REQUEST BLOCK ! END STRUCTURE ! CLIDEF PARAMETER CLI$M_PARMREQ = '00000001'X PARAMETER CLI$M_ABSADR = '00000002'X PARAMETER CLI$M_EXPNAM = '00000004'X PARAMETER CLI$M_LASTVAL = '00000001'X PARAMETER CLI$M_DUMMY = '00000002'X PARAMETER CLI$M_PARMPRS = '00000001'X PARAMETER CLI$M_CONCATINP = '00000002'X PARAMETER CLI$M_MOREINP = '00000004'X PARAMETER CLI$M_PARMDEF = '00000008'X PARAMETER CLI$M_MOREVALS = '00000001'X PARAMETER CLI$M_KEYVALU = '00000002'X PARAMETER CLI$K_REQDESC = '0000001C'X ! SIZE OF THE STRUCTURE PARAMETER CLI$C_REQDESC = '0000001C'X ! SIZE OF THE STRUCTURE ! STRUCTURE /CLIDEF1/ UNION MAP INTEGER*4 %FILL ! DUMMY ARG END MAP MAP UNION MAP BYTE CLI$B_RQTYPE ! TYPE OF REQUEST BEING MADE END MAP MAP PARAMETER CLI$S_SUBTYP = 4 PARAMETER CLI$V_SUBTYP = 0 ! SUB TYPE VIELD PARAMETER CLI$S_PRITYP = 4 PARAMETER CLI$V_PRITYP = 4 BYTE %FILL (1) ! PRIMARY TYPYE END MAP END UNION UNION MAP INTEGER*2 CLI$W_SERVCOD ! CLI SERVICE CODE END MAP MAP UNION MAP BYTE CLI$B_RQINDX ! OFFSET FOR VALUE KEYWORD INDEX END MAP MAP BYTE CLI$B_BITNUM ! BIT TO SET IF REQUEST IS SUCESSFUL END MAP END UNION UNION MAP BYTE CLI$B_RQFLGS ! INPUT FLAGS CONCERNING REQUEST END MAP MAP PARAMETER CLI$S_PARMREQ = 1 PARAMETER CLI$V_PARMREQ = 0 ! PARAMATER IS REQUIRED PARAMETER CLI$S_ABSADR = 1 PARAMETER CLI$V_ABSADR = 1 ! ALL ADDRESS ARE ABSOLUTE PARAMETER CLI$S_EXPNAM = 1 PARAMETER CLI$V_EXPNAM = 2 ! RETURN EXPLICIT NAMES ONLY BYTE %FILL (1) END MAP MAP PARAMETER CLI$S_LASTVAL = 1 PARAMETER CLI$V_LASTVAL = 0 ! LAST VALUE ALLOWED PARAMETER CLI$S_DUMMY = 1 PARAMETER CLI$V_DUMMY = 1 ! *** SAVE PLACE FOR ABS ADR *** BYTE %FILL (1) END MAP END UNION END MAP END UNION UNION MAP BYTE CLI$B_RQSTAT ! OUTPUT STATUS FLAGS END MAP MAP PARAMETER CLI$S_PARMPRS = 1 PARAMETER CLI$V_PARMPRS = 0 ! PARAMETER IS PRESENT PARAMETER CLI$S_CONCATINP = 1 PARAMETER CLI$V_CONCATINP = 1 ! INPUT CONCATONATION EXISTS PARAMETER CLI$S_MOREINP = 1 PARAMETER CLI$V_MOREINP = 2 ! ANOTHER SET OF INPUT PARAMETERS PARAMETER CLI$S_PARMDEF = 1 PARAMETER CLI$V_PARMDEF = 3 ! PARAMETER WAS DEFAULTED PRESENT BYTE %FILL (1) END MAP MAP PARAMETER CLI$S_MOREVALS = 1 PARAMETER CLI$V_MOREVALS = 0 ! UNPROCESSED VALUES REMAIN PARAMETER CLI$S_KEYVALU = 1 PARAMETER CLI$V_KEYVALU = 1 ! SUBSEQUENT TOKEN IS VALUE FOR KEY BYTE %FILL (1) END MAP END UNION END MAP END UNION INTEGER*4 CLI$A_ERRACT ! ADDRESS OF ERROR ACTION ROUTINE UNION MAP INTEGER*4 CLI$Q_RQDESC(2) ! QUADWORD REQUEST DESCRIPTOR END MAP MAP INTEGER*2 CLI$W_RQSIZE ! RESULTANT SIZE OF PARAMETER INTEGER*2 %FILL ! SPARE WORD IN DESCRIPTOR UNION MAP INTEGER*4 CLI$L_RQVALU ! ACTUAL VALUE IN VALUE CONVERSTION END MAP MAP INTEGER*4 CLI$A_RQADDR ! ADDRESS OF RESULTANT PARAMETER END MAP END UNION END MAP END UNION INTEGER*4 CLI$A_PRSACT ! PARAMETER PRESENT ACTION ROUTINE INTEGER*4 CLI$A_ABSACT ! PARAMETER ABSENT ACTION ROUTINE INTEGER*4 CLI$A_QUALST ! ADDRESS OF QUALIFIERS ! Define the Descriptor Used by Symbol and Logical-name Callbacks ! END STRUCTURE ! CLIDEF1 STRUCTURE /CLIDEF2/ BYTE %FILL(1:4) INTEGER*4 CLI$Q_NAMDESC(2) ! Logical name or symbol name INTEGER*4 CLI$Q_VALDESC(2) ! Equivalence name or symbol value INTEGER*4 CLI$Q_TABDESC(2) ! Name of logical name table INTEGER*4 CLI$L_ITMLST ! Address of item list INTEGER*4 CLI$L_ATTR ! Address of attribute longword ! ! Define the Descriptor Locations Used for the Old/New ! Out-of-Band Character(s) Masks ! END STRUCTURE ! CLIDEF2 STRUCTURE /CLIDEF3/ BYTE %FILL(1:4) INTEGER*4 CLI$L_NEW_MASK ! Enable/disable mask INTEGER*4 CLI$L_OLD_MASK ! Previous enabled values mask ! ! Define the descriptor used for ATTACH callback ! END STRUCTURE ! CLIDEF3 STRUCTURE /CLIDEF4/ BYTE %FILL(1:4) INTEGER*4 CLI$L_PID ! PID of "destination" process ! ! Define the descriptor used for SPAWN callback ! END STRUCTURE ! CLIDEF4 PARAMETER CLI$M_NOWAIT = '00000001'X PARAMETER CLI$M_NOCLISYM = '00000002'X PARAMETER CLI$M_NOLOGNAM = '00000004'X PARAMETER CLI$M_NOKEYPAD = '00000008'X PARAMETER CLI$M_NOTIFY = '00000010'X PARAMETER CLI$M_NOCONTROL = '00000020'X PARAMETER CLI$M_TRUSTED = '00000040'X PARAMETER CLI$M_AUTHPRIV = '00000080'X PARAMETER CLI$M_SUBSYSTEM = '00000100'X PARAMETER CLI$M_DETACHED = '00000200'X PARAMETER CLI$K_SPAWN_VERSION = '00000001'X ! Latest version PARAMETER CLI$C_SPAWN_VERSION = '00000001'X ! Latest version PARAMETER CLI$K_SRVDESC = '00000054'X ! Length of longest "service" callback PARAMETER CLI$C_SRVDESC = '00000054'X ! Length of longest "service" callback ! STRUCTURE /CLIDEF5/ BYTE %FILL(1:4) UNION MAP BYTE CLI$B_FLAGS ! Flags (as byte) END MAP MAP INTEGER*2 CLI$W_FLAGS ! Flags (as word) END MAP MAP PARAMETER CLI$S_NOWAIT = 1 PARAMETER CLI$V_NOWAIT = 0 ! Do not wait for subprocess completion PARAMETER CLI$S_NOCLISYM = 1 PARAMETER CLI$V_NOCLISYM = 1 ! Do not copy CLI symbols to subprocess PARAMETER CLI$S_NOLOGNAM = 1 PARAMETER CLI$V_NOLOGNAM = 2 ! Do not copy logical names to subprocess PARAMETER CLI$S_NOKEYPAD = 1 PARAMETER CLI$V_NOKEYPAD = 3 ! Do not copy keypad state to subprocess PARAMETER CLI$S_NOTIFY = 1 PARAMETER CLI$V_NOTIFY = 4 ! Output notification message PARAMETER CLI$S_NOCONTROL = 1 PARAMETER CLI$V_NOCONTROL = 5 ! Do not put CR/LF in front of prompt string PARAMETER CLI$S_TRUSTED = 1 PARAMETER CLI$V_TRUSTED = 6 ! Allow spawn regardless of UAF CAPTIVE flag PARAMETER CLI$S_AUTHPRIV = 1 PARAMETER CLI$V_AUTHPRIV = 7 ! Propagate AUTHPRIV to subprocess PARAMETER CLI$S_SUBSYSTEM = 1 PARAMETER CLI$V_SUBSYSTEM = 8 ! Copy protected subsystem IDs to subprocess PARAMETER CLI$S_DETACHED = 1 PARAMETER CLI$V_DETACHED = 9 ! Spawn a detached process BYTE %FILL (2) END MAP END UNION BYTE %FILL(1:2) ! Unused INTEGER*4 CLI$L_OUTPID ! PID of subprocess on return INTEGER*4 CLI$L_LSTSTATUS ! Address to store final subprocess status INTEGER*4 CLI$Q_CMDSTR(2) ! Descriptor of command string INTEGER*4 CLI$Q_INPUT(2) ! Descriptor of input filespec INTEGER*4 CLI$Q_OUTPUT(2) ! Descriptor of output filespec INTEGER*4 CLI$Q_PRCNAM(2) ! Descriptor of name for subprocess INTEGER*4 CLI$L_ASTADR ! Address of termination AST routine INTEGER*4 CLI$L_ASTPRM ! Address of AST routine parameter BYTE CLI$B_EFN ! Event flag to set on termination BYTE CLI$B_VERSION ! Data structure version BYTE %FILL(1:2) ! Unused INTEGER*4 CLI$Q_PROMPT(2) ! Descriptor of prompt string INTEGER*4 CLI$Q_CLI(2) ! Descriptor of cli name INTEGER*4 CLI$Q_TABLE(2) ! Descriptor of cli table name ! ! Define the length of the longest "supervisor-mode service" request block, ! so that programs can allocate a fixed amount of space for the block. ! ! DEFINE THE PARAMETER QUALIFIER DESCRIPTOR ! END STRUCTURE ! CLIDEF5 PARAMETER CLI$M_ALLOCCUR = '00000001'X PARAMETER CLI$M_QDUSRV = '00000002'X PARAMETER CLI$M_QDEXPA = '00000004'X PARAMETER CLI$M_QUALTRU = '00000001'X PARAMETER CLI$M_QUALEXP = '00000002'X PARAMETER CLI$K_QUALDEF = '00000014'X ! SIZE OF FIXED PART OF STRUCTURE PARAMETER CLI$C_QUALDEF = '00000014'X ! SIZE OF FIXED PART OF STRUCTURE PARAMETER CLI$K_QDBITS = '00000014'X ! START OF BIT LISTS(VARIALBLE LENGTH) PARAMETER CLI$C_QDBITS = '00000014'X ! START OF BIT LISTS(VARIALBLE LENGTH) STRUCTURE /CLIDEF6/ BYTE CLI$B_QDBLKSIZ ! SIZE OF THE FINAL BLOCK BYTE CLI$B_QDCODE ! ID CODE FOR THE QUALIFIER UNION MAP BYTE CLI$B_QDFLGS ! FLAGS BYTE END MAP MAP PARAMETER CLI$S_ALLOCCUR = 1 PARAMETER CLI$V_ALLOCCUR = 0 ! TAKE ACTION ON ALL OCCURANCES PARAMETER CLI$S_QDUSRV = 1 PARAMETER CLI$V_QDUSRV = 1 ! USER CONTEX VALUE IS PRESENT PARAMETER CLI$S_QDEXPA = 1 PARAMETER CLI$V_QDEXPA = 2 ! TAKE ACTION ON EXPLICIT OCCURANCES BYTE %FILL (1) END MAP END UNION UNION MAP BYTE CLI$B_QDSTAT ! QUALIFIER STATUS END MAP MAP PARAMETER CLI$S_QUALTRU = 1 PARAMETER CLI$V_QUALTRU = 0 ! QUALIFIER IS TRUE PARAMETER CLI$S_QUALEXP = 1 PARAMETER CLI$V_QUALEXP = 1 ! QUALIFIER EXPLICITLY STATED BYTE %FILL (1) END MAP END UNION UNION MAP INTEGER*4 CLI$Q_QDVALDESC(2) ! QUALIFIER VALUE DESCRIPTOR END MAP MAP INTEGER*2 CLI$W_QDVALSIZ ! SIZE OF VALUE INTEGER*2 %FILL ! SPARE WORD INTEGER*4 CLI$A_QDVALADR ! ADDRESS OF VALUE STRING END MAP END UNION INTEGER*4 CLI$A_TRUACT ! QUALIFIER TRUE ACTION ROUTINE INTEGER*4 CLI$A_FLSACT ! QUALIFIER FALSE ACTION ROUTINE INTEGER*4 CLI$L_USRVAL ! OPTION USER VALUE IF PRESENT ! ! DEFINE SPACE FOR THE RESULT PARSE WORK AREA ! END STRUCTURE ! CLIDEF6 PARAMETER CLI$K_WORKAREA = '00000080'X ! SIZE OF HEADER PARAMETER CLI$C_WORKAREA = '00000080'X ! SIZE OF HEADER ! PARAMETER CLI$K_UTILOPR = '00000000'X ! UTILITY OPERATIONS PARAMETER CLI$K_INPSPEC = '00000001'X ! REQUEST FOR AN INPUT SPECIFICATION PARAMETER CLI$K_OUTSPEC = '00000002'X ! AN OUTPUT FILE SPECIFICATION PARAMETER CLI$K_PARDONE = '00000003'X ! PARAMETER DONE REQUEST PARAMETER CLI$K_VALCONV = '00000004'X ! REQUEST A VALUE CONVERSION PARAMETER CLI$K_CLINT = '00000005'X ! CLINT OPERATIONS ! PARAMETER CLI$K_INITPRS = '00000000'X ! REQUEST INITIALIZATION OF PARSE PARAMETER CLI$K_GETCMD = '00000001'X ! GET COMMAND BUFFER LIMITS PARAMETER CLI$K_GETQUAL = '00000002'X ! OPTAIN STATE OF QUALIFIERS PARAMETER CLI$K_GETOPT = '00000003'X ! DECODE COMMAND OPTION PARAMETER CLI$K_GETLINE = '00000004'X ! GET COMMAND LINE ! ! THE CLISERV REQUEST TYPE APPEARS HERE, INSTEAD OF WITH THE OTHER REQUEST ! TYPES, BECAUSE IT HAS NO SUBFUNCTIONS ASSOCIATED WITH IT, AND BECAUSE A ! DAY 1 CODING ERROR CAUSES DCL TO EXPECT THAT THIS REQUEST NUMBER WILL ! APPEAR IN THE SUBFUNCTION BITS. THIS MEANS THAT NO UTILITY OPERATION ! CAN BE DEFINED WITH THE SUBFUNCTION NUMBER 5. ! PARAMETER CLI$K_CLISERV = '00000005'X ! REQUEST A SERVICE FROM THE CLI ! PARAMETER CLI$K_INPUT1 = '00000010'X ! PRIMARY INPUT PARAMETER CLI$K_INPUT2 = '00000011'X ! SECONDARY INPUT PARAMETER CLI$K_INPUT3 = '00000012'X ! THIRD, PARAMETER CLI$K_INPUT4 = '00000013'X ! ETC,ETC,ETC ! PARAMETER CLI$K_OUTPUT1 = '00000020'X ! FIRST OUTPUT PARAMETER CLI$K_OUTPUT2 = '00000021'X ! SECOND OUTPUT PARAMETER CLI$K_OUTPUT3 = '00000022'X ! THIRD,- PARAMETER CLI$K_OUTPUT4 = '00000023'X ! ETC,ETC,ETC ! PARAMETER CLI$K_ENDPRM1 = '00000030'X ! COMPLETED PARAMETER SET 1 PARAMETER CLI$K_ENDPRM2 = '00000031'X ! COMPLETED PARAMETER SET 2 PARAMETER CLI$K_ENDPRM3 = '00000032'X ! COMPLETED PARAMETER SET 3 PARAMETER CLI$K_ENDPRM4 = '00000033'X ! COMPLETED PARAMETER SET 4 ! PARAMETER CLI$K_NUMERVAL = '00000040'X ! NUMBERIC VALUE PARAMETER CLI$K_ASCIIVAL = '00000041'X ! ASCII VALUE PARAMETER CLI$K_KEYWORD = '00000042'X ! KEYWORD VALUE PARAMETER CLI$K_KEYVAL = '00000043'X ! KEYWORD WITH VALUE PARAMETER CLI$K_FILSPEC = '00000044'X ! VALUE IS A FILESPEC ! PARAMETER CLI$K_PRESENT = '00000050'X ! DETERMINE IF ENTITY IS PRESENT PARAMETER CLI$K_GETVALUE = '00000051'X ! GET VALUE OF ENTITY PARAMETER CLI$K_ENDPARSE = '00000052'X ! CLEAN UP AFTER PARSING COMMAND PARAMETER CLI$K_DCLPARSE = '00000053'X ! PARSE USER COMMAND LINE PARAMETER CLI$K_DISPATCH = '00000054'X ! DISPATCH TO ACTION ROUTINE PARAMETER CLI$K_NEXTQUAL = '00000055'X ! PROCESS NEXT QUALIFIER ! STRUCTURE /CLIDEF7/ UNION MAP INTEGER*4 CLI$L_WORKAREA(1:32) ! ALLOCATE 32 LONG WORDS END MAP ! DEFINE CLI UTILITY REQUEST CODES ! ! CODES ARE 8 BITS, CONSISTING OF 2 4 BIT FIELDS ! THE LEAST 4 BITS ARE SUBFUCTION DEFINITONS ! AND THE MOST SIGNIFICANT 4 BITS ARE REQUEST TYPE ! ! DEFINE REQUEST TYPE CODES ! DEFINE COMPLETE CODES FOR UTILITY OPERATIONS ! ! DEFINE COMPLETE CODES FOR INPUT SPECIFICATIONS ! ! DEFINE COMPLETE CODES FOR OUTPUT SPECIFICATIONS ! ! DEFINE CODES FOR RESULT PARSE PARAMETER COMPLETION ! ! DEFINE CODES FOR VALUE CONVERSION REQUESTS ! ! DEFINE COMPLETE CODES FOR UTILITY OPERATIONS ! ! DEFINE SET CODE SET REQUEST BLOCK ! END UNION END STRUCTURE ! CLIDEF7 STRUCTURE /CLIDEF8/ BYTE %FILL(1:4) INTEGER*4 CLI$L_CODESET ! CODE SET VALUE END STRUCTURE ! CLIDEF8 !DEC$ END OPTIONS