! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! ! Types of libraries ! ! Define the library types DECLARE LONG CONSTANT LBR$C_TYP_UNK = 0 ! Unknown/unspecified library type DECLARE LONG CONSTANT LBR$C_TYP_OBJ = 1 ! Object/shareable image library DECLARE LONG CONSTANT LBR$C_TYP_MLB = 2 ! Macro library DECLARE LONG CONSTANT LBR$C_TYP_HLP = 3 ! Help file library DECLARE LONG CONSTANT LBR$C_TYP_TXT = 4 ! TEXT library DECLARE LONG CONSTANT LBR$C_TYP_SHSTB = 5 ! Shareable image symbol library DECLARE LONG CONSTANT LBR$C_TYP_NCS = 6 ! NCS library DECLARE LONG CONSTANT LBR$C_TYP_DECMX = 6 ! Maximum Digital library type defined DECLARE LONG CONSTANT LBR$C_TYP_EOBJ = 7 ! Alpha object library DECLARE LONG CONSTANT LBR$C_TYP_ESHSTB = 8 ! Alpha Shareable image symbol library DECLARE LONG CONSTANT LBR$C_TYP_ELFOBJ = 9 ! ELF object library DECLARE LONG CONSTANT LBR$C_TYP_ELFSHSTB = 10 ! ELF Shareable image symbol library DECLARE LONG CONSTANT ELBR$C_TYP_DECMX = 10 ! Maximum library type defined DECLARE LONG CONSTANT LBR$C_TYP_RDEC = 127 ! Types between DECMX and RDEC are ! reserved to Digital DECLARE LONG CONSTANT LBR$C_TYP_USRLW = 128 ! User library types range from 128 DECLARE LONG CONSTANT LBR$C_TYP_USRHI = 255 ! to 255. ! ! Function codes for lbr$flush ! DECLARE LONG CONSTANT LBR$C_FLUSHDATA = 1 ! Flush data blocks from cache DECLARE LONG CONSTANT LBR$C_FLUSHALL = 0 ! Flush data blocks, then index blocks ! ! Librarian fixed parameters ! DECLARE LONG CONSTANT LBR$C_MAXRECSIZ = 2048 ! Maximum record size allowed DECLARE LONG CONSTANT LBR$C_PAGESIZE = 512 ! Size of memory page DECLARE LONG CONSTANT LBR$C_HASHSIZE = 512 ! Size of hash table ** Must be power of 2 ** DECLARE LONG CONSTANT LBR$C_TEXTPAGE = 508 ! No. of useable bytes on a text page DECLARE LONG CONSTANT LBR$C_DEXTQ = 50 ! Library default extend quantity DECLARE LONG CONSTANT LBR$C_MAXCTL = 64 ! Maximum number of open libraries DECLARE LONG CONSTANT LBR$C_MAXHDRSIZ = 128 ! Maximum length of module header ! (max user length is: ! lbr$c_maxhdrsiz-mhd$c_length) DECLARE LONG CONSTANT LBR$C_DEFENTALL = 300 ! Number of entries to allocate by default DECLARE LONG CONSTANT LBR$C_RETRYOPEN = 120 ! Number of times to retry open on RMS$_FLK DECLARE LONG CONSTANT LBR$C_RETRYWAIT = 1 ! Number of seconds to wait DECLARE LONG CONSTANT LBR$C_MINREAD = 2 ! Minimum number of blocks to read DECLARE LONG CONSTANT LBR$C_MAXREAD = 100 ! Max blocks can ever read DECLARE LONG CONSTANT LBR$C_MEMXTRA = 50 ! Number blocks to expand region by above and beyond lbr$gl_maxread DECLARE LONG CONSTANT LBR$C_PUTBUFSIZ = 30 ! Block size of VM empty cache buffer DECLARE LONG CONSTANT LBR$C_FLSHBFSIZ = 1 ! Block size of stack mt_cache buffer DECLARE LONG CONSTANT LBR$C_MAXIDXRD = 20 ! Maximum blocks in one index read DECLARE LONG CONSTANT LBR$C_ELFMAXKEYLEN = 1024 ! Maximum length of an ASCII keyword for ELF libraries DECLARE LONG CONSTANT LBR$C_MAXKEYLEN = 128 ! Maximum length of an ASCII keyword, at most N, where ! 3*(N+7) < or = 506 DECLARE LONG CONSTANT LBR$C_MAXLUHREC = 32768 ! maximum library update history record length DECLARE LONG CONSTANT LBR$M_SYM_WEAK = 1 ! Weak symbol attribute DECLARE LONG CONSTANT LBR$M_SYM_GROUP = 2 ! Group symbol attribute DECLARE LONG CONSTANT LBR$M_SYM_ALL = X"80000000"L ! All types symbol DECLARE LONG CONSTANT LBR$M_SYM_NGG = 1 ! Symbol type bitmasks - Nongroup global symbol DECLARE LONG CONSTANT LBR$M_SYM_UXWK = 2 ! Symbol type bitmasks - Unix weak symbol DECLARE LONG CONSTANT LBR$M_SYM_GG = 4 ! Symbol type bitmasks - group global symbol DECLARE LONG CONSTANT LBR$M_SYM_GUXWK = 8 ! Symbol type bitmasks - group Unix weak symbol ! ! Librarian fixed parameters for ALPHA ! DECLARE LONG CONSTANT ELBR$C_MAXRECSIZ = 8192 ! Maximum record size allowed ! ! LBR$INI_CONTROL argument list ! DECLARE LONG CONSTANT LBR$C_CREATE = 0 ! Create a new library DECLARE LONG CONSTANT LBR$C_READ = 1 ! Read an existing library DECLARE LONG CONSTANT LBR$C_UPDATE = 2 ! Update an exisiting library DECLARE LONG CONSTANT LBR$C_MAXFUNC = 2 ! Maximum legal function DECLARE LONG CONSTANT LBR$S_LBRDEF = 16 record LBRDEF LONG LBRDEF$$_FILL_1 ! Argument count LONG LBR$L_IC_CTLTBL ! Control index address LONG LBR$L_IC_FUNC ! Function LONG LBR$L_IC_TYPE ! Type of library expected to open ! ! LBR$OPEN argument list ! end record LBRDEF DECLARE LONG CONSTANT LBR$S_LBRDEF1 = 32 record LBRDEF1 LONG LBRDEF$$_FILL_2 ! Argument count LONG LBR$L_OP_CTLTBL ! Control index address LONG LBR$L_OP_FNS ! Address of string descriptor for filename LONG LBR$L_OP_CREOPT ! Address of create options array LONG LBR$L_OP_DNS ! Address of descriptor for default name string LONG LBR$L_OP_RLFNA ! Address of NAM block for related file LONG LBR$L_OP_RNS ! Address of descriptor for related filename string LONG LBR$L_OP_RNSLEN ! Address of longword to store resultant filename string length ! ! LBR$CLOSE argument list ! end record LBRDEF1 DECLARE LONG CONSTANT LBR$S_LBRDEF2 = 8 record LBRDEF2 LONG LBRDEF$$_FILL_3 ! Argument count LONG LBR$L_CL_CTLTBL ! Control index address ! ! LBR$GET_HEADER argument list ! end record LBRDEF2 DECLARE LONG CONSTANT LBR$S_LBRDEF3 = 12 record LBRDEF3 LONG LBRDEF$$_FILL_4 ! Argument count LONG LBR$L_GH_CTLTBL ! Address of Control index LONG LBR$L_GH_RETARY ! Address of 128-longword array for return info ! ! LBR$SET_INDEX argument list ! end record LBRDEF3 DECLARE LONG CONSTANT LBR$S_LBRDEF4 = 12 record LBRDEF4 LONG LBRDEF$$_FILL_5 ! Argument count LONG LBR$L_SI_CTLTBL ! Control index address LONG LBR$L_SI_IDXNUM ! Address of index number ! ! LBR$LOOKUP_KEY argument list ! end record LBRDEF4 DECLARE LONG CONSTANT LBR$S_LBRDEF5 = 16 record LBRDEF5 LONG LBRDEF$$_FILL_6 ! Argument count LONG LBR$L_LK_CTLTBL ! Control index address LONG LBR$L_LK_KEYNAM ! Address of string descriptor or binary value LONG LBR$L_LK_TXTRFA ! Address of quadword to return RFA if found ! ! LBR$INSERT_KEY argument list ! end record LBRDEF5 DECLARE LONG CONSTANT LBR$S_LBRDEF6 = 16 record LBRDEF6 LONG LBRDEF$$_FILL_7 ! Argument count LONG LBR$L_IK_CTLTBL ! Control index address LONG LBR$L_IK_KEYNAM ! Address of string descriptor or binary value LONG LBR$L_IK_TXTRFA ! Address of RFA of text ! ! LBR$REPLACE_MOD argument list ! ! ! LBR$REPLACE_KEY argument list ! end record LBRDEF6 DECLARE LONG CONSTANT LBR$S_LBRDEF7 = 20 record LBRDEF7 LONG LBRDEF$$_FILL_8 ! Argument count LONG LBR$L_RK_CTLTBL ! Control index address LONG LBR$L_RK_KEYNAM ! Address of string descriptor or binary value LONG LBR$L_RK_OLDRFA ! Address of RFA of old text LONG LBR$L_RK_NEWRFA ! Address of RFA of new text ! ! LBR$DELETE_KEY argument list ! end record LBRDEF7 DECLARE LONG CONSTANT LBR$S_LBRDEF8 = 12 record LBRDEF8 LONG LBRDEF$$_FILL_9 ! Argument count LONG LBR$L_DK_CTLTBL ! Control index address LONG LBR$L_DK_KEYNAM ! Address of string descriptor or binary value ! ! LBR$DELETE_DATA argument list ! end record LBRDEF8 DECLARE LONG CONSTANT LBR$S_LBRDEF9 = 12 record LBRDEF9 LONG LBRDEF$$_FILL_10 ! Argument count LONG LBR$L_DD_CTLTBL ! Control index address LONG LBR$L_DD_TXTRFA ! Address of RFA to delete from ! ! LBR$GET_RECORD argument list ! end record LBRDEF9 DECLARE LONG CONSTANT LBR$S_LBRDEF10 = 16 record LBRDEF10 LONG LBRDEF$$_FILL_11 ! Argument count LONG LBR$L_GR_CTLTBL ! Control index address LONG LBR$L_GR_BUFDES ! Address of descriptor of buffer LONG LBR$L_GR_BUFLEN ! Address of longword to return record size ! ! LBR$PUT_RECORD argument list ! end record LBRDEF10 DECLARE LONG CONSTANT LBR$S_LBRDEF11 = 16 record LBRDEF11 LONG LBRDEF$$_FILL_12 ! Argument count LONG LBR$L_PR_CTLTBL ! Control index address LONG LBR$L_PR_BUFDES ! Address of descriptor of buffer to output LONG LBR$L_PR_TXTRFA ! Address of quadword to return RFA ! of text record ! ! LBR$PUT_END argument list ! end record LBRDEF11 DECLARE LONG CONSTANT LBR$S_LBRDEF12 = 8 record LBRDEF12 LONG LBRDEF$$_FILL_13 ! Argument count LONG LBR$L_PE_CTLTBL ! Control index address ! ! LBR$SEARCH argument list ! end record LBRDEF12 DECLARE LONG CONSTANT LBR$S_LBRDEF13 = 20 record LBRDEF13 LONG LBRDEF$$_FILL_14 ! Argument count LONG LBR$L_SR_CTLTBL ! Control index address LONG LBR$L_SR_IDXNUM ! Address of index number LONG LBR$L_SR_RFA ! Address of RFA to search index for LONG LBR$L_SR_USRTN ! User routine to call on match ! ! Argument list for user routine called by LBR$SEARCH ! end record LBRDEF13 DECLARE LONG CONSTANT LBR$S_LBRDEF14 = 12 record LBRDEF14 LONG LBRDEF$$_FILL_15 ! Argument count LONG LBR$L_SU_KEYDES ! Address of string descriptor or binary value LONG LBR$L_SU_TXTRFA ! Address of array containing rfa of module ! ! LBR$GET_INDEX argument list ! end record LBRDEF14 DECLARE LONG CONSTANT LBR$S_LBRDEF15 = 16 record LBRDEF15 LONG LBRDEF$$_FILL_16 ! Argument count LONG LBR$L_GI_CTLTBL ! Control index address LONG LBR$L_GI_IDXNUM ! Index number LONG LBR$L_GI_USRTN ! User routine to call for each entry ! ! Argument list for user routine called by LBR$GET_INDEX ! end record LBRDEF15 DECLARE LONG CONSTANT LBR$S_LBRDEF16 = 12 record LBRDEF16 LONG LBRDEF$$_FILL_17 ! Argument count LONG LBR$L_GU_KEYADR ! Address of descriptor or binary value LONG LBR$L_GU_TXTRFA ! RFA of associated text ! ! LBR$ADD_UPDATE argument list ! end record LBRDEF16 DECLARE LONG CONSTANT LBR$C_ADDMOD = 1 ! Add module DECLARE LONG CONSTANT LBR$C_DELMOD = 2 ! Delete module DECLARE LONG CONSTANT LBR$C_REPMOD = 3 ! Replace module ! DECLARE LONG CONSTANT LBR$S_LBRDEF17 = 16 record LBRDEF17 LONG LBRDEF$$_FILL_18 ! Argument count LONG LBR$L_AU_CTLTBL ! Control index address LONG LBR$L_AU_FLAGS ! Flags LONG LBR$L_AU_KEYNAM ! Address of string descriptor or binary value ! Types of operations logged ! LBR$GET_UPDATES argument list ! end record LBRDEF17 DECLARE LONG CONSTANT LBR$S_LBRDEF18 = 12 record LBRDEF18 LONG LBRDEF$$_FILL_19 ! Argument count LONG LBR$L_GU_CTLTBL ! Control index address LONG LBR$L_GU_USRTN ! User routine to call for each update ! ! Argument list for user routine called by LBR$GET_UPDATES ! end record LBRDEF18 DECLARE LONG CONSTANT LBR$S_LBRDEF19 = 8 record LBRDEF19 LONG LBRDEF$$_FILL_20 ! Argument list LONG LBR$L_UU_UPDESC ! String descriptor for history line end record LBRDEF19 ! ! LBR$MAP_MODULE argument list ! DECLARE LONG CONSTANT LBR$S_LBRDEF20 = 28 record LBRDEF20 LONG LBRDEF$$_FILL_21 ! Argument count LONG LBR$L_MM_CTLTBL ! Control index address BASIC$QUADWORD LBR$Q_MM_VAADDR ! 64-bit virtual Address of the specified object module BASIC$QUADWORD LBR$Q_MM_MODSIZ ! Address of module size LONG LBR$L_MM_TXTRFA ! Address of RFA to map from ! ! Argument list for user routine called by LBR$MAP_MODULE ! end record LBRDEF20 ! ! LBR$UNMAP_MODULE argument list ! DECLARE LONG CONSTANT LBR$S_LBRDEF21 = 12 record LBRDEF21 LONG LBRDEF$$_FILL_22 ! Argument count LONG LBR$L_UM_CTLTBL ! Control index address LONG LBR$L_UM_TXTRFA ! Address of RFA to unmap ! ! Argument list for user routine called by LBR$UNMAP_MODULE ! end record LBRDEF21 ! ! LBR$GET_VERSION argument list ! DECLARE LONG CONSTANT LBR$S_LBRDEF22 = 12 record LBRDEF22 LONG LBRDEF$$_FILL_23 ! Argument count LONG LBR$L_GV_VERDESC ! Addr of Version Descriptor LONG LBR$L_GV_RETLEN ! Address of ret. len. ! ! Argument list for user routine called by LBR$GET_VERSION ! end record LBRDEF22 ! ! LBR$LOOKUP_TYPE argument list ! DECLARE LONG CONSTANT LBR$S_LBRDEF23 = 20 record LBRDEF23 LONG LBRDEF$$_FILL_24 ! Argument count LONG LBR$L_LT_CTLTBL ! Control index address LONG LBR$L_LT_KEYNAM ! Address of string descriptor or binary value LONG LBR$L_LT_TXTRFA ! Address of quadword to return RFA if found LONG LBR$L_LT_FLAG ! Address of ret. flag ! ! Argument list for user routine called by LBR$LOOKUP_TYPE ! end record LBRDEF23 ! ! LBR$PUT_MODULE argument list ! DECLARE LONG CONSTANT LBR$S_LBRDEF24 = 28 record LBRDEF24 LONG LBRDEF$$_FILL_25 ! Argument count LONG LBR$L_PM_CTLTBL ! Control index address BASIC$QUADWORD LBR$Q_PM_VAADDR ! 64-bit virtual Address of the specified object module BASIC$QUADWORD LBR$Q_PM_MODSIZ ! Address of module size LONG LBR$L_PM_TXTRFA ! Address of return RFA ! ! Argument list for user routine called by LBR$PUT_MODULE ! end record LBRDEF24