COMPILATION LISTING OF SEGMENT init_dm_journal_seg Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 0940.6 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* *********************************************************** */ 8 /* format: style3 */ 9 init_dm_journal_seg: 10 proc; 11 12 /* Program to initialize the Page Control data base dm_journal_seg_ 13* 14* Written October 1982 by J. Bongiovanni 15* Modified January 1983 by J. Bongiovanni to call make_sdw instead of get_main 16**/ 17 18 /* Automatic */ 19 20 dcl dm_journal_astep ptr; 21 dcl dm_journal_segno fixed bin (18); 22 dcl journalx fixed bin; 23 dcl pagex fixed bin; 24 dcl seg_pages fixed bin; 25 dcl sx fixed bin; 26 dcl tsdw fixed bin (71); 27 28 /* Static */ 29 30 dcl DBMJ_CARD_FIELDS fixed bin internal static options (constant) init (6); 31 dcl JOURNAL_WAIT_EVENT bit (36) aligned internal static options (constant) init ("666000000000"b3); 32 33 /* External */ 34 35 dcl slt$ external; 36 dcl sst$dm_enabled bit (1) aligned external static; 37 dcl 1 sst$level (0:3) aligned external, 38 2 ausedp bit (18) unaligned, 39 2 no_aste fixed bin (18) unsigned unaligned; 40 dcl sst$nused fixed bin (19) external static; 41 dcl tc_data$end_of_time fixed bin (71) external static; 42 43 /* Entry */ 44 45 dcl config$find entry (char (4) aligned, ptr); 46 dcl make_sdw entry (fixed bin (18), fixed bin (71), ptr, ptr); 47 dcl pmut$swap_sdw entry (ptr, ptr); 48 dcl syserr entry options (variable); 49 50 /* Builtin */ 51 52 dcl addr builtin; 53 dcl divide builtin; 54 dcl null builtin; 55 dcl rel builtin; 56 dcl size builtin; 57 58 59 /* Parse DBMJ config card, if there is one */ 60 61 dbmj_cardp = null (); 62 call config$find (DBMJ_CARD_WORD, dbmj_cardp); 63 64 if dbmj_cardp = null () 65 then return; 66 67 if dbmj_card.type_word.n_fields ^= DBMJ_CARD_FIELDS 68 then do; 69 BAD_DBMJ_CARD: 70 call syserr (CRASH, "init_dm_journal_seg: Invalid DBMJ config card."); 71 end; 72 else do; 73 if (dbmj_card.n_journals <= 0) | (dbmj_card.max_held_pages <= 0) 74 then goto BAD_DBMJ_CARD; 75 do sx = lbound (dbmj_card.per_aste_pool, 1) to hbound (dbmj_card.per_aste_pool, 1); 76 if sst$level (sx).no_aste <= dbmj_card.per_aste_pool (sx) 77 then goto BAD_DBMJ_CARD; 78 end; 79 n_dm_journals = dbmj_card.n_journals; 80 max_dm_pages = dbmj_card.max_held_pages; 81 end; 82 83 84 85 /* Get memory for dm_journal_seg_ */ 86 87 dm_journal_segp = addr (dm_journal_seg_$); 88 seg_pages = divide (size (dm_journal) + 1023, 1024, 17); 89 dm_journal_segno = bin (baseno (dm_journal_segp)); 90 sltp = addr (slt$); 91 sltep = addr (slt.seg (dm_journal_segno)); 92 slte_uns.cur_length = seg_pages; 93 slte.wired = "1"b; 94 call make_sdw (dm_journal_segno, tsdw, dm_journal_astep, (null ())); 95 if dm_journal_astep = null () 96 then call syserr (CRASH, "init_dm_journal_seg: make_sdw failed for dm_journal_seg_"); 97 call pmut$swap_sdw (dm_journal_segp, addr (tsdw)); 98 99 100 /* Initialize dm_journal_seg_ */ 101 102 dm_journal.n_journals = n_dm_journals; 103 dm_journal.max_held_pages_mem = max_dm_pages; 104 dm_journal.per_aste_pool (*).threshold = dbmj_card.per_aste_pool (*); 105 dm_journal.free_list_relp = rel (addr (dm_journal.page_entry)); 106 dm_journal.wait_event = JOURNAL_WAIT_EVENT; 107 108 do journalx = 1 to n_dm_journals; 109 dm_journal.per_journal (journalx).time_stamp = tc_data$end_of_time; 110 end; 111 112 do pagex = 1 to max_dm_pages - 1; 113 dm_journal.page_entry (pagex).fp = rel (addr (dm_journal.page_entry (pagex + 1))); 114 end; 115 116 117 sst$dm_enabled = "1"b; 118 119 return; 120 121 /* format: off */ 122 /* START OF: config_dbmj_card.incl.pl1 October 1982 * * * * * * * * * * * * * * * * */ 1 2 1 3 dcl dbmj_cardp ptr; /* Pointer to a DBMJ card */ 1 4 1 5 dcl 1 dbmj_card based (dbmj_cardp) aligned, /* DBMJ card declaraction */ 1 6 2 word char (4), /* "dbmj" */ 1 7 2 n_journals fixed bin, /* Number of journals */ 1 8 2 max_held_pages fixed bin, /* Maximum number of held pages */ 1 9 2 per_aste_pool (0:3) fixed bin, /* Maximum number of active segments by pool */ 1 10 2 pad (8) bit (36) aligned, /* pad to 15 fields */ 1 11 1 12 2 type_word aligned, 1 13 3 field_type (14) bit (2) unaligned, /* type of each field; see config_deck.incl.pl1 */ 1 14 3 pad1 bit (4) unaligned, 1 15 3 n_fields fixed bin (4) unsigned unaligned; /* number of fields on card */ 1 16 1 17 dcl DBMJ_CARD_WORD char (4) aligned internal static options (constant) init ("dbmj"); 1 18 1 19 /* END OF: config_dbmj_card.incl.pl1 * * * * * * * * * * * * * * * * */ 122 123 /* START OF: dm_journal_seg_.incl.pl1 October 1982 * * * * * * * * * * * * * * * * */ 2 2 /* modified June 1982 by M. Pandolf for more meters * * * * * * * */ 2 3 2 4 dcl dm_journal_seg_$ external; 2 5 2 6 dcl dm_journal_segp ptr; 2 7 dcl dm_per_journalp ptr; 2 8 dcl dm_per_journal_arrayp ptr; 2 9 dcl dm_page_entryp ptr; 2 10 2 11 dcl n_dm_journals fixed bin; 2 12 dcl max_dm_pages fixed bin; 2 13 2 14 2 15 dcl 1 dm_journal aligned based (dm_journal_segp), 2 16 2 17 2 lock bit (36) aligned, /* Lock for manipulating journal entries */ 2 18 2 wait_event bit (36) aligned, /* Wait Event for lock */ 2 19 2 notify_sw bit (1) aligned, 2 20 2 21 2 n_journals fixed bin, /* Number of journals */ 2 22 2 n_journals_inuse fixed bin, /* Number of journals in use now */ 2 23 2 max_held_pages_mem fixed bin, /* Maximum number of pages held in memory */ 2 24 2 n_held_pages_mem fixed bin, /* Number of pages held in memory */ 2 25 2 max_held_per_journal fixed bin, /* max_held_pages_mem / n_journals_inuse */ 2 26 2 per_aste_pool (0:3) aligned, 2 27 3 threshold fixed bin, /* Maximum number of active segments */ 2 28 3 n_active fixed bin, /* Number currently active */ 2 29 2 free_list_relp bit (18) aligned, /* Free entry list first ptr */ 2 30 2 synch_write_calls fixed bin (35), /* Number of calls to check write */ 2 31 2 synch_write_holds fixed bin (35), /* Number of times page held for call */ 2 32 2 synch_write_no_stamp 2 33 fixed bin (35), /* Number of times page had null DM stamp */ 2 34 2 synch_write_inv_vers 2 35 fixed bin (35), /* Number of times page had invalid DM stamp */ 2 36 2 synch_write_inv_ix 2 37 fixed bin (35), /* Number of times page had invalid BJ index */ 2 38 2 synch_write_inv_time 2 39 fixed bin (35), /* Number of times page had future time stamp */ 2 40 2 synch_write_tosses fixed bin (35), /* Number of times page tossed because of threshold */ 2 41 2 unlink_calls fixed bin (35), /* Number of calls to unlink all entries to a journal */ 2 42 2 unlink_steps fixed bin (35), /* Number of CMEs unlinked */ 2 43 2 activate_calls fixed bin (35), /* Number of times synch segment activated */ 2 44 2 deactivate_calls fixed bin (35), /* Number of times synch segment deactivated */ 2 45 2 activate_denied fixed bin (35), /* Number of times activation threshold exceeded */ 2 46 2 set_stamp_calls fixed bin (35), /* Number of times called to set time stamp */ 2 47 2 allocate_calls fixed bin (35), /* Number of times called to allocate a journal */ 2 48 2 free_calls fixed bin (35), /* Number of times called to free a journal */ 2 49 2 50 2 per_journal (n_dm_journals refer (dm_journal.n_journals)) aligned like dm_per_journal, 2 51 2 page_entry (max_dm_pages refer (dm_journal.max_held_pages_mem)) aligned like dm_page_entry; 2 52 2 53 2 54 dcl 1 dm_per_journal_array (dm_journal.n_journals) aligned like dm_per_journal based (dm_per_journal_arrayp); 2 55 2 56 dcl 1 dm_per_journal aligned based (dm_per_journalp), /* One entry per DM journal */ 2 57 2 time_stamp fixed bin (71), /* Pages before this time can be written */ 2 58 2 n_held fixed bin, /* Number of pages held in memory */ 2 59 2 uid bit (36) aligned, /* Unique ID for owner - ""b => not used */ 2 60 2 access_class bit (72) aligned, /* Access Class of Owner */ 2 61 2 entry_relp bit (18) aligned, /* Pointer to list of pages held for this journal */ 2 62 2 pad bit (36) aligned; 2 63 2 64 2 65 dcl 1 dm_page_entry aligned based (dm_page_entryp), 2 66 2 fp bit (18) unal, /* Forward pointer */ 2 67 2 bp bit (18) unal, /* Backward pointer */ 2 68 2 cme_relp bit (18) unal, /* Rel ptr -> CME */ 2 69 2 journal_relp bit (18) unal; /* Rel ptr -> dm_per_journal */ 2 70 2 71 2 72 /* END OF: dm_journal_seg_.incl.pl1 * * * * * * * * * * * * * * * * */ 2 73 123 124 /* BEGIN INCLUDE FILE slt.incl.pl1 --- Last modified 2/76 SHW */ 3 2 3 3 /* Declarations for Segment Loading Table header and array. 3 4* 3 5* Used by Initialization and MST Checker subroutines */ 3 6 3 7 dcl sltp ptr, /* pointer to base of SLT segment */ 3 8 names_ptr ptr, /* pointer to base of SLT names segment */ 3 9 namep ptr, /* pointer to segment name list block */ 3 10 pathp ptr, /* pointer to segment's directory path name */ 3 11 aclp ptr; /* pointer to acl structure */ 3 12 3 13 declare 1 slt based (sltp) aligned, /* declaration of Segment Loading Table (SLT) */ 3 14 2 name_seg_ptr ptr, /* words 0-1, pointer (ITS pair) to name segment */ 3 15 2 free_core_start fixed bin (24), /* word 2, start of free core after perm-wired */ 3 16 2 first_sup_seg fixed bin (18), /* word 3, first supervisor segment number */ 3 17 2 last_sup_seg fixed bin (18), /* word 4, last supervisor segment number */ 3 18 2 first_init_seg fixed bin (18), /* word 5, first initializer segment number */ 3 19 2 last_init_seg fixed bin (18), /* word 6, last initializer segment number */ 3 20 2 free_core_size fixed bin (24), /* size (in words) of free core after perm-wired */ 3 21 2 seg (0:8191) aligned, /* segment entries (4 words each) */ 3 22 3 slte (4) fixed bin (35); /* Space for SLT entries */ 3 23 3 24 /* auxiliary segment of SLT for storing of segment names and directory path names */ 3 25 3 26 declare 1 name_seg based (names_ptr) aligned, /* name segment header */ 3 27 2 pad bit (18) unal, 3 28 2 next_loc bit (18) unal, /* Next available free location in name seg */ 3 29 2 ht (0:127) bit (18) aligned; /* Names hash table */ 3 30 3 31 declare 1 segnam based (namep) aligned, /* declaration for segment name block */ 3 32 2 count fixed bin (17), /* number of segment names in this block */ 3 33 2 names (50 refer (segnam.count)), /* segment name array */ 3 34 3 hp bit (18) unal, /* hash thread pointer */ 3 35 3 ref bit (1) unal, /* "1"b if name referenced */ 3 36 3 pad bit (5) unal, 3 37 3 segno bit (12) unal, /* segment number associated with this name */ 3 38 3 name char (32) unal; /* space for name (max 32 characters) */ 3 39 3 40 declare 1 path based (pathp) aligned, /* declaration for directory path name */ 3 41 2 size fixed bin (17), /* length of pathname */ 3 42 2 name char (168 refer (path.size)) unal, /* directory path name */ 3 43 2 acls fixed bin; /* ACL list starts here */ 3 44 3 45 declare 1 acls based (aclp) aligned, /* declaration for acl list */ 3 46 2 count fixed bin, /* number of entries in acl list */ 3 47 2 acl (50 refer (acls.count)), /* array of acl entries */ 3 48 3 userid char (32), /* user specification */ 3 49 3 mode bit (36) aligned, /* mode for the specified user */ 3 50 3 pad bit (36) aligned, 3 51 3 code fixed bin; 3 52 3 53 3 54 /* END INCLUDE FILE slt.incl.pl1 */ 124 125 /* BEGIN INCLUDE FILE slte.incl.pl1 */ 4 2 /* Declaration for Segment Loading Table Entry structure. 4 3* Used by Initialization, MST Generation, and MST Checker subroutines */ 4 4 /* modified 5/4/76 by Noel I. Morris */ 4 5 /* last modified 12/12/83 by Keith Loepere for breakpointable */ 4 6 /* format: style3 */ 4 7 4 8 dcl sltep ptr; 4 9 4 10 dcl 1 slte_uns based (sltep) aligned, 4 11 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 4 12 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 4 13 /**** End of word 1 */ 4 14 2 access bit (4), /* SDW access bit (REWP) */ 4 15 2 cache bit (1), /* Segment to be allowed in cache */ 4 16 2 abs_seg bit (1), /* segment is an abs seg if ON */ 4 17 2 firmware_seg bit (1), /* load in low 256 */ 4 18 2 layout_seg bit (1), /* mailbox & such */ 4 19 2 breakpointable bit (1), /* includes breakpoint_page */ 4 20 2 pad1 bit (3), /* unused */ 4 21 2 wired bit (1), /* segment is wired if ON */ 4 22 2 paged bit (1), /* segment is paged if ON */ 4 23 2 per_process bit (1), /* segment is per-process if ON */ 4 24 2 pad3 bit (2), 4 25 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 4 26 /**** End of 1st half of word 2 */ 4 27 2 pad4 bit (3), 4 28 2 branch_required bit (1), /* path name supplied if ON */ 4 29 2 init_seg bit (1), /* segment is init_seg if ON */ 4 30 2 temp_seg bit (1), /* segment is temp_seg if ON */ 4 31 2 link_provided bit (1), /* linkage segment provided if ON */ 4 32 2 link_sect bit (1), /* segment is linkage segment if ON */ 4 33 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 4 34 2 combine_link bit (1), /* linkage is combined if ON */ 4 35 2 pre_linked bit (1), /* lot entry has been made if ON */ 4 36 2 defs bit (1), /* segment is definitions segment if ON */ 4 37 /***** End of word 2 */ 4 38 2 pad5 bit (6), 4 39 2 cur_length fixed bin (9) uns, /* current length of segment (in 1024 word blocks) */ 4 40 2 ringbrack (3) fixed bin (3) uns, /* ringbrackets */ 4 41 2 segno fixed bin (18) uns, /* text/link segment number */ 4 42 /***** End of word 3 */ 4 43 2 pad7 bit (3), 4 44 2 max_length fixed bin (9) uns, /* maximum length for segment */ 4 45 2 bit_count fixed bin (24) uns 4 46 ) unaligned; /* bitcount of segment */ 4 47 4 48 dcl 1 slte based (sltep) aligned, 4 49 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 4 50 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 4 51 2 access bit (4), /* SDW access bit (REWP) */ 4 52 2 cache bit (1), /* Segment to be allowed in cache */ 4 53 2 abs_seg bit (1), /* segment is an abs seg if ON */ 4 54 2 firmware_seg bit (1), 4 55 2 layout_seg bit (1), 4 56 2 breakpointable bit (1), 4 57 2 pad2 bit (3), 4 58 2 wired bit (1), /* segment is wired if ON */ 4 59 2 paged bit (1), /* segment is paged if ON */ 4 60 2 per_process bit (1), /* segment is per-process if ON */ 4 61 2 pad3 bit (2), 4 62 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 4 63 2 pad4 bit (3), 4 64 2 branch_required bit (1), /* path name supplied if ON */ 4 65 2 init_seg bit (1), /* segment is init_seg if ON */ 4 66 2 temp_seg bit (1), /* segment is temp_seg if ON */ 4 67 2 link_provided bit (1), /* linkage segment provided if ON */ 4 68 2 link_sect bit (1), /* segment is linkage segment if ON */ 4 69 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 4 70 2 combine_link bit (1), /* linkage is combined if ON */ 4 71 2 pre_linked bit (1), /* lot entry has been made if ON */ 4 72 2 defs bit (1), /* segment is definitions segment if ON */ 4 73 2 pad5 bit (6), 4 74 2 cur_length bit (9), /* current length of segment (in 1024 word blocks) */ 4 75 2 ringbrack (3) bit (3), /* ringbrackets */ 4 76 2 segno bit (18), /* text/link segment number */ 4 77 2 pad6 bit (3), 4 78 2 max_length bit (9), /* maximum length for segment */ 4 79 2 bit_count bit (24) 4 80 ) unaligned; /* bitcount of segment */ 4 81 4 82 /* END INCLUDE FILE slte.incl.pl1 */ 125 126 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 5 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 5 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 5 4 5 5 /* This include file has an ALM version. Keep 'em in sync! */ 5 6 5 7 dcl ( 5 8 5 9 /* The following constants define the message action codes. This indicates 5 10*how a message is to be handled. */ 5 11 5 12 SYSERR_CRASH_SYSTEM init (1), 5 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 5 14 5 15 SYSERR_TERMINATE_PROCESS init (2), 5 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 5 17 5 18 SYSERR_PRINT_WITH_ALARM init (3), 5 19 BEEP init (3), /* Beep and print the message on the console. */ 5 20 5 21 SYSERR_PRINT_ON_CONSOLE init (0), 5 22 ANNOUNCE init (0), /* Just print the message on the console. */ 5 23 5 24 SYSERR_LOG_OR_PRINT init (4), 5 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 5 26 5 27 SYSERR_LOG_OR_DISCARD init (5), 5 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 5 29 5 30 5 31 /* The following constants are added to the normal severities to indicate 5 32*different sorting classes of messages. */ 5 33 5 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 5 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 5 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 5 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 5 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 5 39 ) fixed bin internal static options (constant); 5 40 5 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 126 127 128 /* BEGIN MESSAGE DOCUMENTATION 129* 130* 131*Message: 132*init_dm_journal_seg: Invalid DBMJ config card. 133* 134*S: $crash 135* 136*T: $init 137* 138*M: The DBMJ configuration card is not in proper format. 139*This could be a format error, or one of the following criteria may not 140*be satisfied. The limit on active segments for a pool must be smaller than 141*the pool size. 142* 143*A: Correct the configuration deck and reboot. 144* 145* 146*Message: 147*init_dm_journal_seg: make_sdw failed for dm_journal_seg_ 148* 149*S: $crash 150* 151*T: $init 152* 153*M: The ASTE for dm_journal_seg_ could not be created. 154* 155*A: $contact 156* 157* 158*END MESSAGE DOCUMENTATION */ 159 160 end init_dm_journal_seg; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0826.9 init_dm_journal_seg.pl1 >spec>install>1112>init_dm_journal_seg.pl1 122 1 11/23/82 0953.7 config_dbmj_card.incl.pl1 >ldd>include>config_dbmj_card.incl.pl1 123 2 09/07/83 1610.6 dm_journal_seg_.incl.pl1 >ldd>include>dm_journal_seg_.incl.pl1 124 3 05/24/82 1005.0 slt.incl.pl1 >ldd>include>slt.incl.pl1 125 4 07/11/84 0937.3 slte.incl.pl1 >ldd>include>slte.incl.pl1 126 5 05/17/85 0615.7 syserr_constants.incl.pl1 >ldd>include>syserr_constants.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. CRASH 000004 constant fixed bin(17,0) initial dcl 5-7 set ref 69* 95* DBMJ_CARD_FIELDS constant fixed bin(17,0) initial dcl 30 ref 67 DBMJ_CARD_WORD 000000 constant char(4) initial dcl 1-17 set ref 62* JOURNAL_WAIT_EVENT constant bit(36) initial dcl 31 ref 106 addr builtin function dcl 52 ref 87 90 91 97 97 105 113 config$find 000020 constant entry external dcl 45 ref 62 cur_length 2 based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 4-10 set ref 92* dbmj_card based structure level 1 dcl 1-5 dbmj_cardp 000112 automatic pointer dcl 1-3 set ref 61* 62* 64 67 73 73 75 75 76 79 80 104 divide builtin function dcl 53 ref 88 dm_journal based structure level 1 dcl 2-15 set ref 88 dm_journal_astep 000100 automatic pointer dcl 20 set ref 94* 95 dm_journal_seg_$ 000030 external static fixed bin(17,0) dcl 2-4 set ref 87 dm_journal_segno 000102 automatic fixed bin(18,0) dcl 21 set ref 89* 91 94* dm_journal_segp 000114 automatic pointer dcl 2-6 set ref 87* 88 89 97* 102 103 104 105 105 106 109 113 113 dm_page_entry based structure level 1 dcl 2-65 dm_per_journal based structure level 1 dcl 2-56 fp based bit(18) array level 3 packed packed unaligned dcl 2-15 set ref 113* free_list_relp 20 based bit(18) level 2 dcl 2-15 set ref 105* journalx 000103 automatic fixed bin(17,0) dcl 22 set ref 108* 109* make_sdw 000022 constant entry external dcl 46 ref 94 max_dm_pages 000117 automatic fixed bin(17,0) dcl 2-12 set ref 80* 88 103 112 max_held_pages 2 based fixed bin(17,0) level 2 dcl 1-5 ref 73 80 max_held_pages_mem 5 based fixed bin(17,0) level 2 dcl 2-15 set ref 103* n_dm_journals 000116 automatic fixed bin(17,0) dcl 2-11 set ref 79* 88 102 108 n_fields 17(32) based fixed bin(4,0) level 3 packed packed unsigned unaligned dcl 1-5 ref 67 n_journals 3 based fixed bin(17,0) level 2 in structure "dm_journal" dcl 2-15 in procedure "init_dm_journal_seg" set ref 102* 105 113 113 n_journals 1 based fixed bin(17,0) level 2 in structure "dbmj_card" dcl 1-5 in procedure "init_dm_journal_seg" ref 73 79 no_aste 0(18) 000014 external static fixed bin(18,0) array level 2 packed packed unsigned unaligned dcl 37 ref 76 null builtin function dcl 54 ref 61 64 94 95 page_entry based structure array level 2 dcl 2-15 set ref 105 113 pagex 000104 automatic fixed bin(17,0) dcl 23 set ref 112* 113 113* per_aste_pool 3 based fixed bin(17,0) array level 2 in structure "dbmj_card" dcl 1-5 in procedure "init_dm_journal_seg" ref 75 75 76 104 per_aste_pool 10 based structure array level 2 in structure "dm_journal" dcl 2-15 in procedure "init_dm_journal_seg" per_journal 40 based structure array level 2 dcl 2-15 pmut$swap_sdw 000024 constant entry external dcl 47 ref 97 rel builtin function dcl 55 ref 105 113 seg 10 based structure array level 2 dcl 3-13 set ref 91 seg_pages 000105 automatic fixed bin(17,0) dcl 24 set ref 88* 92 size builtin function dcl 56 ref 88 slt based structure level 1 dcl 3-13 slt$ 000010 external static fixed bin(17,0) dcl 35 set ref 90 slte based structure level 1 dcl 4-48 slte_uns based structure level 1 dcl 4-10 sltep 000122 automatic pointer dcl 4-8 set ref 91* 92 93 sltp 000120 automatic pointer dcl 3-7 set ref 90* 91 sst$dm_enabled 000012 external static bit(1) dcl 36 set ref 117* sst$level 000014 external static structure array level 1 dcl 37 sx 000106 automatic fixed bin(17,0) dcl 25 set ref 75* 76 76* syserr 000026 constant entry external dcl 48 ref 69 95 tc_data$end_of_time 000016 external static fixed bin(71,0) dcl 41 ref 109 threshold 10 based fixed bin(17,0) array level 3 dcl 2-15 set ref 104* time_stamp 40 based fixed bin(71,0) array level 3 dcl 2-15 set ref 109* tsdw 000110 automatic fixed bin(71,0) dcl 26 set ref 94* 97 97 type_word 17 based structure level 2 dcl 1-5 wait_event 1 based bit(36) level 2 dcl 2-15 set ref 106* wired 1(12) based bit(1) level 2 packed packed unaligned dcl 4-48 set ref 93* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ANNOUNCE internal static fixed bin(17,0) initial dcl 5-7 BEEP internal static fixed bin(17,0) initial dcl 5-7 JUST_LOG internal static fixed bin(17,0) initial dcl 5-7 LOG internal static fixed bin(17,0) initial dcl 5-7 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 5-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 5-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 5-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 5-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 5-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 5-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 5-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 5-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 5-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 5-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 5-7 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 5-7 aclp automatic pointer dcl 3-7 acls based structure level 1 dcl 3-45 dm_page_entryp automatic pointer dcl 2-9 dm_per_journal_array based structure array level 1 dcl 2-54 dm_per_journal_arrayp automatic pointer dcl 2-8 dm_per_journalp automatic pointer dcl 2-7 name_seg based structure level 1 dcl 3-26 namep automatic pointer dcl 3-7 names_ptr automatic pointer dcl 3-7 path based structure level 1 dcl 3-40 pathp automatic pointer dcl 3-7 segnam based structure level 1 dcl 3-31 sst$nused external static fixed bin(19,0) dcl 40 NAMES DECLARED BY EXPLICIT CONTEXT. BAD_DBMJ_CARD 000073 constant label dcl 69 ref 73 76 init_dm_journal_seg 000043 constant entry external dcl 9 NAMES DECLARED BY CONTEXT OR IMPLICATION. baseno builtin function ref 89 bin builtin function ref 89 hbound builtin function ref 75 lbound builtin function ref 75 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 506 540 366 516 Length 1022 366 32 246 117 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME init_dm_journal_seg 133 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME init_dm_journal_seg 000100 dm_journal_astep init_dm_journal_seg 000102 dm_journal_segno init_dm_journal_seg 000103 journalx init_dm_journal_seg 000104 pagex init_dm_journal_seg 000105 seg_pages init_dm_journal_seg 000106 sx init_dm_journal_seg 000110 tsdw init_dm_journal_seg 000112 dbmj_cardp init_dm_journal_seg 000114 dm_journal_segp init_dm_journal_seg 000116 n_dm_journals init_dm_journal_seg 000117 max_dm_pages init_dm_journal_seg 000120 sltp init_dm_journal_seg 000122 sltep init_dm_journal_seg THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. config$find make_sdw pmut$swap_sdw syserr THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_journal_seg_$ slt$ sst$dm_enabled sst$level tc_data$end_of_time LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000042 61 000050 62 000052 64 000062 67 000066 69 000073 71 000113 73 000114 75 000120 76 000125 78 000134 79 000136 80 000141 87 000143 88 000146 89 000160 90 000164 91 000166 92 000171 93 000174 94 000176 95 000214 97 000240 102 000253 103 000256 104 000260 105 000276 106 000303 108 000305 109 000316 110 000324 112 000326 113 000337 114 000360 117 000362 119 000365 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved