plot/pc_sampling/source module get_default_directory by line ! VAX Performance and Coverage Analyzer Page 1 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line !GET_DEFAULT_DIRECTORY\ ! 14.8% ******** 1: SUBROUTINE GET_DEFAULT_DIRECTORY ( curnode, cnlen, ! 2: + cdev, cddlen, curdir, ! 3: + cdlen, node, node_len, ! 4: + status ) ! 5: C ! 6: C The following code is based upon and at least partially lifted ! 7: C from the IN foreign command program. ! 8: C ! 9: C (c) Copywrite 1985, M. Edward Nieland, Ames Laboratory USDOE ! 10: C (c) Copywrite 1986, Robert L. Hays, KMS Fusion, Inc. ! 11: C ! 12: C Do not remove copywrite notices. ! 13: C ! 14: C ! 15: IMPLICIT NONE ! 16: C ! 17: INCLUDE '($SSDEF)' page 50 ! VAX Performance and Coverage Analyzer Page 50 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 882: ! REPLACE ORD ERROR CODE ELIMINATED BY MCN0001, SINCE ! 883: ! THE NETWORK CODE REFERENCES IT. ! 884: ! ! 885: ! V03-006 MCN0001 MARIA DEL C. NASR 26-OCT-1982 ! 886: ! PRINT KEY OF REFERENCE OR AREA IDENTIFICATION NUMBER ! 887: ! INSTEAD OF XAB ADDRESS FOR ERRORS RETURNED DURING ! 888: ! INDEXED FILE CREATION. ALSO RENAME ALL UNUSED ERROR ! 889: ! CODES TO TEMP. ! 890: ! ! 891: ! V03-005 JWH0102 JEFFREY W. HORN 24-SEP-1982 ! 892: ! ADD RUP ERROR. ! 893: ! ! 894: ! V03-004 RAS0095 RON SCHAEFER 7-SEP-1982 ! 895: ! ADD OVRDSKQUOTA ERROR. ! 896: ! ! 897: ! V03-002 JWH0002 JEFFREY W. HORN 26-JUL-1982 ! 898: ! CONVERT TO .MSG FORMAT. ADD RUM ERROR. ! 899: ! page 60 ! VAX Performance and Coverage Analyzer Page 60 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 1062: PARAMETER RMS$_RUF = '0001C052'X ! 1063: PARAMETER RMS$_WRTJNL_AIJ = '0001C05A'X ! 1064: PARAMETER RMS$_WRTJNL_BIJ = '0001C062'X ! 1065: PARAMETER RMS$_WRTJNL_ATJ = '0001C06A'X ! 1066: PARAMETER RMS$_WRTJNL_RUJ = '0001C072'X ! 1067: PARAMETER RMS$_RRF = '0001C07A'X ! 1068: ! + ! 1069: ! ! 1070: ! SEVERE ERROR CODES - WITHOUT STV ! 1071: ! ! 1072: ! - ! 1073: ! BIT 16 = BIT 15 = 1, BIT 14 = 0 ! 1074: PARAMETER RMS$_DTFCDDREC = '000183EC'X ! 1075: PARAMETER RMS$_AID = '000183F4'X ! 1076: PARAMETER RMS$_ALN = '000183FC'X ! 1077: PARAMETER RMS$_ALQ = '00018404'X ! 1078: PARAMETER RMS$_ANI = '0001840C'X ! 1079: PARAMETER RMS$_AOP = '00018414'X page 70 ! VAX Performance and Coverage Analyzer Page 70 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 1242: PARAMETER RMS$_DTFCFGFIL = '0001C154'X ! 1243: PARAMETER RMS$_REENT = '0001C15C'X ! 1244: PARAMETER RMS$_ACC_RUJ = '0001C164'X ! 1245: PARAMETER RMS$_TMR = '0001C16C'X ! 1246: PARAMETER RMS$_ACC_AIJ = '0001C174'X ! 1247: PARAMETER RMS$_ACC_BIJ = '0001C17C'X ! 1248: PARAMETER RMS$_ACC_ATJ = '0001C184'X ! 1249: PARAMETER RMS$_DTFDEFFIL = '0001C18C'X ! 1250: PARAMETER RMS$_DTFREGFIL = '0001C194'X ! 1251: PARAMETER RMS$_JNLNOTAUTH = '0001C19C'X ! 1252: ! 1253: INCLUDE '($LNMDEF)' ! 1254: !*** MODULE $LNMDEF *** ! 1255: PARAMETER LNM$M_NO_ALIAS = '00000001'X ! 1256: PARAMETER LNM$M_CONFINE = '00000002'X ! 1257: PARAMETER LNM$M_CRELOG = '00000004'X ! 1258: PARAMETER LNM$M_TABLE = '00000008'X ! 1259: PARAMETER LNM$M_CONCEALED = '00000100'X page 80 ! VAX Performance and Coverage Analyzer Page 78 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Command qualifiers and parameters used: ! Qualifiers: ! /PC_SAMPLING /NOSORT /NOMINIMUM /NOMAXIMUM ! /NOCUMULATIVE /SOURCE /ZEROS /NOSCALE /NOCREATOR_PC ! /NOPATHNAME /NOCHAIN_NAME /NOWRAP /NOPARENT_TASK /NOKEEP /NOTREE ! /FILL=("*","O","x","@",":","#","/","+") ! /NOSTACK_DEPTH /MAIN_IMAGE ! Node specifications: ! MODULE GET_DEFAULT_DIRECTORY BY LINE ! !No filters are defined ! ! ! ! ! ! ! ! page 73 ! VAX Performance and Coverage Analyzer Page 73 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 1296: PARAMETER LNM$_STRING = '00000002'X ! Translation string ! 1297: PARAMETER LNM$_ATTRIBUTES = '00000003'X ! Attribute bits ! 1298: PARAMETER LNM$_TABLE = '00000004'X ! Logical name table name ! 1299: PARAMETER LNM$_LENGTH = '00000005'X ! Length of translation string ! 1300: PARAMETER LNM$_ACMODE = '00000006'X ! Access mode of name ! 1301: PARAMETER LNM$_MAX_INDEX = '00000007'X ! Maximum translation index ! 1302: PARAMETER LNM$_PARENT = '00000008'X ! Parent logical name table name ! 1303: PARAMETER LNM$_LNMB_ADDR = '00000009'X ! Return LNM block address ! 1304: ! internal use by MTL ! 1305: ! and mailbox UCB ! 1306: ! Define item list codes ! 1307: PARAMETER LNM$_CHAIN = 'FFFFFFFF'X ! Chain to next list ! 1308: ! 1309: C ! 1310: CHARACTER*(*) curnode, cdev, curdir ! Input/Output. ! 1311: CHARACTER*(*) node ! 1312: CHARACTER*255 curdev ! Working storage. ! 1313: C ! VAX Performance and Coverage Analyzer Page 74 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 1314: INTEGER*2 cdvlen, node_len ! 1315: C ! 1316: INTEGER*4 name_addr, ret_addr ! 1317: INTEGER*4 status ! 1318: INTEGER*4 cnlen, cddlen, cdlen ! 1319: INTEGER*4 offset ! 1320: INTEGER*4 i ! 1321: C ! 1322: INTEGER*4 SYS$SETDDIR ! 1323: EXTERNAL SYS$SETDDIR ! 1324: INTEGER*4 LIB$SYS_TRNLOG ! 1325: EXTERNAL LIB$SYS_TRNLOG ! 1326: INTEGER*4 LENSTR ! 1327: EXTERNAL LENSTR ! 1328: C ! 1329: C Executable begins here. ! 1330: C ! 1331: C The following code was lifted from the article The 'IN' Foriegn ! VAX Performance and Coverage Analyzer Page 75 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 1332: C Command in the May 1986 issue of the DEC Professional. I changed ! 1333: C The accesses to SYS$TRNLNM to LIB$SYS_TRNLOG to make the interface ! 1334: C easier and more obvious. ! 1335: C ! 3.7% ** 1336: status = SYS$SETDDIR ( , cdlen, curdir ) ! Get current directory. ! 3.7% ** 1337: status = LIB$SYS_TRNLOG ( 'SYS$DISK', cdvlen, ! Translate SYS$DISK, ! 1338: + curdev ) ! the default disk. ! 0.0% 1339: offset = INDEX ( curdev, '::' ) ! Look for node names. ! 0.0% 1340: IF ( offset .EQ. 0 ) THEN ! No node name was ! 3.7% ** 1341: status = LIB$SYS_TRNLOG ( 'SYS$NODE', ! specified, so try ! 1342: + node_len, ! translating SYS$NODE, ! 1343: + node ) ! the default node. ! 0.0% 1344: curnode = node ! Prepare for output. ! 0.0% 1345: cnlen = node_len ! Save node name, ! 0.0% 1346: cdev = curdev ! device name, and the ! 0.0% 1347: cddlen = cdvlen ! lengths for each. ! 1348: ELSE ! Got a node name from ! 0.0% 1349: curnode = curdev(:offset+1) ! translation of ! VAX Performance and Coverage Analyzer Page 76 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 0.0% 1350: cnlen = LENSTR ( curnode ) ! SYS$DISK, so use it ! 0.0% 1351: cdev = curdev(offset+2:cdvlen) ! for the default. ! 0.0% 1352: cddlen = LENSTR ( cdev ) ! ! 1353: END IF ! ! 0.0% 1354: DO WHILE ( curnode(1:1) .EQ. '_' ) ! Pull off any _. ! 0.0% 1355: curnode(1:cnlen-1) = curnode(2:cnlen) ! ! 0.0% 1356: cnlen = cnlen - 1 ! ! 0.0% 1357: END DO ! ! 0.0% 1358: RETURN ! 1359: END ! ! ! ! ! ! ! ! ! VAX Performance and Coverage Analyzer Page 77 ! ! Program Counter Sampling Data (27 data points total) - "*" ! ! VAX PCA Version 2.1-9 23-JUN-1989 09:18:10 ! !PLOT Command Summary Information: !Number of buckets tallied: 19 ! !Program Counter Sampling Data - "*" ! !Data count in largest defined bucket: 4 14.8% !Data count in all defined buckets: 7 25.9% !Data count not in defined buckets: 20 74.1% !Portion of above count in P0 space: 20 74.1% !Number of PC values in P1 space: 0 0.0% !Number of PC values in system space: 0 0.0% !Data points failing /STACK_DEPTH or /MAIN_IMAGE: 0 0.0% ! !Total number of data values collected: 27 100.0% ! ! ! plot/pc_sampling/source module set_default_directory by line ! VAX Performance and Coverage Analyzer Page 1 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line !SET_DEFAULT_DIRECTORY\ ! 0.0% 1: PROGRAM SET_DEFAULT_DIRECTORY ! 2: C ! 3: C The code for this program is liberally lifted from the ! 4: C listing included in the May 1986 DEC Professional magazine. ! 5: C Many thanks to Mr. M. E. Nieland and friends. ! 6: C ! 7: C Much of this work is protected under copywrite by M. Edward ! 8: C Nieland, Ames Laboratory USDOE and by Robert L. Hays, KMS Fusion, ! 9: C Inc. ! 10: C ! 11: C (c) Copywrite 1985, M. Edward Nieland, Ames Laboratory USDOE ! 12: C (c) Copywrite 1986, Robert L. Hays, KMS Fusion, Inc. ! 13: C ! 14: C Do not remove copywrite notices. ! 15: C ! 16: C Modifications: ! 17: C 21-APR-87 Robert L. Hays Added SWING, an SMG directory tree display ! VAX Performance and Coverage Analyzer Page 2 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 18: C and change routine. ! 19: C ! 20: IMPLICIT NONE ! 21: C ! 22: INCLUDE '($RMSDEF)' ! 23: !*** MODULE $RMSDEF *** ! 24: ! ! 25: ! This SDL File Generated by VAX-11 Message V04-00 on 8-APR-1988 00:19:07.75 ! 26: ! ! 27: ! .TITLE RMSDEF -RMS COMPLETION CODES ! 28: ! * * ! 29: ! * COPYRIGHT (C) 1978, 1980, 1982, 1984 BY * ! 30: ! * DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS. * ! 31: ! * ALL RIGHTS RESERVED. * ! 32: ! * * ! 33: ! * THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED * ! 34: ! * ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE * ! 35: ! * INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER * page 60 ! VAX Performance and Coverage Analyzer Page 43 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Command qualifiers and parameters used: ! Qualifiers: ! /PC_SAMPLING /NOSORT /NOMINIMUM /NOMAXIMUM ! /NOCUMULATIVE /SOURCE /ZEROS /NOSCALE /NOCREATOR_PC ! /NOPATHNAME /NOCHAIN_NAME /NOWRAP /NOPARENT_TASK /NOKEEP /NOTREE ! /FILL=("*","O","x","@",":","#","/","+") ! /NOSTACK_DEPTH /MAIN_IMAGE ! Node specifications: ! MODULE SET_DEFAULT_DIRECTORY BY LINE ! !No filters are defined ! ! ! ! ! ! ! ! page 50 ! VAX Performance and Coverage Analyzer Page 43 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Command qualifiers and parameters used: ! Qualifiers: ! /PC_SAMPLING /NOSORT /NOMINIMUM /NOMAXIMUM ! /NOCUMULATIVE /SOURCE /ZEROS /NOSCALE /NOCREATOR_PC ! /NOPATHNAME /NOCHAIN_NAME /NOWRAP /NOPARENT_TASK /NOKEEP /NOTREE ! /FILL=("*","O","x","@",":","#","/","+") ! /NOSTACK_DEPTH /MAIN_IMAGE ! Node specifications: ! MODULE SET_DEFAULT_DIRECTORY BY LINE ! !No filters are defined ! ! ! ! ! ! ! ! page 40 ! VAX Performance and Coverage Analyzer Page 40 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 0.0% 702: CALL FILL_IN_SPEC ( where, size, curnode, cnlen, node, ! Fill in any missing par> ! 703: + node_len, cdev, cddlen, curdir, ! ! 704: + cdlen ) ! ! 705: END IF ! ! 0.0% 706: CALL CHECK_DIR_SPEC ( where, size, curdir, cdlen ) ! Check the directory spe> ! 22.2% ******** 707: status = LIB$FIND_FILE ( where(1:size), dir, idx, '*.*', ) ! See if the directory ex> ! 0.0% 708: CALL LIB$FIND_FILE_END ( idx ) ! End this context right > ! 0.0% 709: IF ( ( status ) .OR. ( status .EQ. RMS$_FNF ) ) THEN ! 0.0% 710: CALL CHANGE_DIRECTORY ( dir, cdev, cddlen, ! 711: + curdir, cdlen, status ) ! 0.0% 712: IF ( status ) THEN ! 0.0% 713: dirlen = INDEX ( dir, ']' ) ! 3.7% * 714: WRITE ( *, 5000 ) curnode(1:cnlen), ! 715: + dir(1:dirlen) ! 0.0% 716: CALL CHANGE_UIC ( dir, dirlen, tst_lun, ! 717: + cdev, cddlen, curdir, ! 718: + cdlen, status ) ! 0.0% 719: IF ( status .NE. 1 ) THEN page 35 ! VAX Performance and Coverage Analyzer Page 35 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 612: PARAMETER RMS$_REENT = '0001C15C'X ! 613: PARAMETER RMS$_ACC_RUJ = '0001C164'X ! 614: PARAMETER RMS$_TMR = '0001C16C'X ! 615: PARAMETER RMS$_ACC_AIJ = '0001C174'X ! 616: PARAMETER RMS$_ACC_BIJ = '0001C17C'X ! 617: PARAMETER RMS$_ACC_ATJ = '0001C184'X ! 618: PARAMETER RMS$_DTFDEFFIL = '0001C18C'X ! 619: PARAMETER RMS$_DTFREGFIL = '0001C194'X ! 620: PARAMETER RMS$_JNLNOTAUTH = '0001C19C'X ! 621: ! 622: C ! 623: CHARACTER*255 curnode, ! 624: + cdev, ! 625: + curdir ! 626: CHARACTER*255 node ! 627: CHARACTER*255 where ! 628: CHARACTER*255 cmd ! 629: CHARACTER*255 dir ! VAX Performance and Coverage Analyzer Page 36 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 630: CHARACTER*255 pre_logical ! 631: C ! 632: LOGICAL*1 more ! 633: LOGICAL set ! 634: C ! 635: INTEGER*2 node_len ! 636: INTEGER*2 strlen ! 637: C ! 638: INTEGER*4 cnlen, cddlen, cdlen ! 639: INTEGER*4 size ! 640: INTEGER*4 i ! 641: INTEGER*4 dirlen, cmdlen ! 642: INTEGER*4 pre_len ! 643: INTEGER*4 tst_lun, out_unit ! 644: INTEGER*4 status ! 645: INTEGER*4 idx / 0 / ! Context for LIB$FIND_FI> ! 646: INTEGER*4 LIB$FIND_FILE ! 647: EXTERNAL LIB$FIND_FILE ! VAX Performance and Coverage Analyzer Page 37 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 648: C ! 649: DATA pre_logical/'LAST_DEFAULT'/ ! 650: DATA cmd/'DEF'/ ! 651: DATA pre_len/12/ ! 652: DATA cmdlen/3/ ! 653: C DATA out_unit/5/ ! 654: DATA tst_lun/2/ ! Used for open on ! 655: ! dir file (RMS attr). ! 656: C ! 657: C Executable begins here. ! 658: C ! 659: c OPEN ( UNIT = out_unit, FILE = 'SYS$OUTPUT', ! 660: c + STATUS = 'unknown' ) ! 0.0% 661: CALL GET_DEFAULT_DIRECTORY ( curnode, cnlen, ! 662: + cdev, cddlen, curdir, ! 663: + cdlen, node, node_len, ! 664: + status ) ! 0.0% 665: CALL GET_AND_PARSE_FOREIGN_CMD ( where, size, set ) ! Parse input command for HOME, PRE, > ! VAX Performance and Coverage Analyzer Page 38 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 0.0% 666: IF ( where(1:1) .EQ. '*' ) THEN ! Use asterix to get to SWING to disp> ! 0.0% 667: CALL SWING ( dir ) ! Return directory at last input from> ! 0.0% 668: CALL STR$TRIM ( dir, dir, strlen ) ! Return len of directory in I*2 STRL> ! 0.0% 669: dirlen = strlen ! Convert I*2 to I*4. ! 0.0% 670: IF ( dir(1:dirlen) .NE. curdir(1:cdlen) ) THEN ! Check for change in directory. ! 0.0% 671: CALL LIB$SET_LOGICAL ( pre_logical(1:pre_len), ! Reset logical for new directory. N> ! 672: + cdev(1:cddlen)// ! update the device location; Curren> ! 673: + curdir(1:cdlen) ) ! available from SWING as far as I ca> ! 674: END IF ! 0.0% 675: dir(1:dirlen+cddlen) = cdev(1:cddlen)//dir(1:dirlen) ! Force current default device onto d> ! 0.0% 676: dirlen = dirlen + cddlen ! Update directory length. ! 0.0% 677: WRITE ( *, 5000 ) curnode(1:cnlen), ! Output message. ! 678: + dir(1:dirlen) ! ! 679: 5000 FORMAT ( ' ',A,A ) ! ! 0.0% 680: CALL CHANGE_UIC ( dir, dirlen, tst_lun, ! Check for change of default owner U> ! 681: + cdev, cddlen, curdir, ! ! 682: + cdlen, status ) ! ! 0.0% 683: IF ( status .NE. 1 ) THEN ! Error from CHANGE_UIC. ! VAX Performance and Coverage Analyzer Page 39 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 0.0% 684: CALL ERROR_MESSAGE ( status, ! Issue system message. ! 685: + cmd, cmdlen ) ! ! 0.0% 686: END IF ! End status check. ! 0.0% 687: ELSE IF ( size .GT. 0 ) THEN ! Got something, and it's> ! 0.0% 688: CALL OPERATE_ON_LOGICAL ( where, size, set ) ! Translate the initial n> ! 0.0% 689: more = .TRUE. ! Force loop to execute o> ! 0.0% 690: DO WHILE ( more ) ! Loop for a while. ! 0.0% 691: i = INDEX ( where, '\' ) ! See if there is a backs> ! 0.0% 692: IF ( i .GT. 0 ) THEN ! If so, use a hyphen (up> ! 0.0% 693: where(i:i) = '-' ! Do it here. ! 694: ELSE ! Okay, no backslashes. ! 0.0% 695: more = .FALSE. ! Exit loop. ! 696: END IF ! ! 0.0% 697: END DO ! ! 698: C DO i = 1, size ! 699: C IF ( where(i:i) .EQ. '\' ) where(i:i) = '-' ! 700: C END DO ! 0.0% 701: IF ( .NOT. set ) THEN ! ! VAX Performance and Coverage Analyzer Page 40 ! ! Program Counter Sampling Data (27 data points total) - "*" ! !Percent Count Line ! 0.0% 702: CALL FILL_IN_SPEC ( where, size, curnode, cnlen, node, ! Fill in any missing par> ! 703: + node_len, cdev, cddlen, curdir, ! ! 704: + cdlen ) ! ! 705: END IF ! ! 0.0% 706: CALL CHECK_DIR_SPEC ( where, size, curdir, cdlen ) ! Check the directory spe> ! 22.2% ******** 707: status = LIB$FIND_FILE ( where(1:size), dir, idx, '*.*', ) ! See if the directory ex> ! 0.0% 708: CALL LIB$FIND_FILE_END ( idx ) ! End this context right > ! 0.0% 709: IF ( ( status ) .OR. ( status .EQ. RMS$_FNF ) ) THEN ! 0.0% 710: CALL CHANGE_DIRECTORY ( dir, cdev, cddlen, ! 711: + curdir, cdlen, status ) ! 0.0% 712: IF ( status ) THEN ! 0.0% 713: dirlen = INDEX ( dir, ']' ) ! 3.7% * 714: WRITE ( *, 5000 ) curnode(1:cnlen), ! 715: + dir(1:dirlen) ! 0.0% 716: CALL CHANGE_UIC ( dir, dirlen, tst_lun, ! 717: + cdev, cddlen, curdir, ! 718: + cdlen, status ) ! 0.0% 719: IF ( status .NE. 1 ) THEN