COMPILATION LISTING OF SEGMENT !BBBJXbnbKXwJcQ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/20/88 1246.5 mst Wed Options: table map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 /* format: off */ 7 8 /* Modified December 1984 by Bonnie Braun to add unpaged_page_tables. */ 9 /* Modified December 1984 by Robert Coren to put tty_buf in a begin block, and to 10* add these notices. */ 11 12 structure_library_5_: 13 procedure (); 14 15 /* First come all the structures */ 16 17 dcl sdwp pointer; 1 1 /* BEGIN INCLUDE FILE ... sdw.adp.incl.pl1 ... 01/16/81, for ADP conversion */ 1 2 /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ 1 3 1 4 dcl 1 adp_sdw based (sdwp) aligned, /* ADP Segment Descriptor Word */ 1 5 1 6 (2 add bit (26), /* Page table address */ 1 7 2 valid bit (1), /* "1"b => SDW is valid */ 1 8 2 rings, /* Ring brackets */ 1 9 3 r1 bit (3), 1 10 3 r2 bit (3), 1 11 3 r3 bit (3), 1 12 1 13 2 bound bit (14), /* Bound of segment, in 16 word blocks */ 1 14 2 pad1 bit (2), 1 15 2 entry_bound bit (14), /* Gate entry bound */ 1 16 2 access, /* Access permission bits */ 1 17 3 read bit (1), 1 18 3 execute bit (1), 1 19 3 write bit (1), 1 20 3 privileged bit (1), 1 21 2 unpaged bit (1), /* "1"b => segment is unpaged */ 1 22 2 not_a_gate bit (1)) unaligned; /* "0"b => entry bound is checked by hardware */ 1 23 1 24 /* END INCLUDE FILE sdw.adp.incl.pl1 */ 18 call add ("adp_sdw", addr (p -> adp_sdw)); 2 1 /* BEGIN INCLUDE FILE ... sdw.l68.incl.pl1 ... Updated for ADP conversion 03/01/81 */ 2 2 /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ 2 3 2 4 dcl 1 l68_sdw based (sdwp) aligned, /* Level 68 Segment Descriptor Word */ 2 5 2 6 (2 add bit (24), /* main memory address of page table */ 2 7 2 rings, /* ring brackets for the segment */ 2 8 3 r1 bit (3), 2 9 3 r2 bit (3), 2 10 3 r3 bit (3), 2 11 2 valid bit (1), /* directed fault bit (0 => fault) */ 2 12 2 df_no bit (2), /* directed fault number */ 2 13 2 14 2 pad1 bit (1), 2 15 2 bound bit (14), /* boundary field (in 16 word blocks) */ 2 16 2 access, /* access bits */ 2 17 3 read bit (1), /* read permission bit */ 2 18 3 execute bit (1), /* execute permission bit */ 2 19 3 write bit (1), /* write permission bit */ 2 20 3 privileged bit (1), /* privileged bit */ 2 21 2 unpaged bit (1), /* segment is unpaged if this is 1 */ 2 22 2 not_a_gate bit (1), /* if this is 0 the entry bound is checked by hardware */ 2 23 2 cache bit (1), /* cache enable bit */ 2 24 2 entry_bound bit (14)) unaligned; /* entry bound */ 2 25 2 26 /* END INCLUDE FILE ... sdw.l68.incl.pl1 */ 19 call add ("l68_sdw", addr (p -> l68_sdw)); 3 1 /* BEGIN INCLUDE FILE ... sdw_info.incl.pl1 ... 12/16/80, for ADP conversion */ 3 2 /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ 3 3 3 4 dcl sdw_info_ptr pointer; 3 5 3 6 dcl 1 sdw_info aligned based (sdw_info_ptr), /* Structure describing SDW contents */ 3 7 2 address fixed bin (26), /* Address of seg base or of page table */ 3 8 2 size fixed bin (19), /* Max length of segment (NOT offset of last word) */ 3 9 3 10 2 access unaligned, /* REWP */ 3 11 3 read bit (1) unaligned, 3 12 3 execute bit (1) unaligned, 3 13 3 write bit (1) unaligned, 3 14 3 privileged bit (1) unaligned, 3 15 3 16 2 pad1 bit (32) unaligned, 3 17 3 18 2 rings unaligned, /* Ring brackets */ 3 19 3 r1 bit (3) unaligned, 3 20 3 r2 bit (3) unaligned, 3 21 3 r3 bit (3) unaligned, 3 22 3 23 2 pad2 bit (27) unaligned, 3 24 3 25 2 flags aligned, 3 26 3 paged bit (1) unaligned, /* "1"b => Segment is paged */ 3 27 3 faulted bit (1) unaligned, /* "1"b => SDW has fault set */ 3 28 3 cache bit (1) unaligned, /* "1"b => Segment is encacheable */ 3 29 3 pad3 bit (33) unaligned, 3 30 3 31 2 gate_entry_bound fixed bin (14); /* Number of entrypoints in gate, or zero */ 3 32 3 33 /* END INCLUDE FILE ... sdw_info.incl.pl1 */ 20 call add ("sdw_info", addr (p -> sdw_info)); 4 1 /* BEGIN INCLUDE FILE segdamage_msg.incl.pl1 Bernard Greenberg 7/15/77 */ 4 2 4 3 /* This binary syserr message should be sent when the system damages a segment. 4 4* The value of sst$damaged_ct whould be incremented at this time. */ 4 5 4 6 dcl 1 segdamage aligned, 4 7 2 pvid bit (36) aligned, /* Volume PVID */ 4 8 2 lvid bit (36) aligned, /* Volume LVID */ 4 9 2 pno fixed bin (17) unaligned, /* Page number, -1 => don't know/care */ 4 10 2 vtocx fixed bin (17) unaligned, /* VTOC index, -1 => none, -2 => don't know */ 4 11 2 uid bit (36) aligned, /* Seg UID */ 4 12 2 uid_path (0:15) bit (36) aligned; /* Parent dir uid path, zero padded on right */ 4 13 4 14 /* END INCLUDE FILE segdamage_msg.incl.pl1 */ 21 22 call add ("segdamage", addr (segdamage)); /* NOT BASED */ 5 1 /* BEGIN INCLUDE FILE ... signaller_stack.incl.pl1 ... Created Feb 79 by D.Spector */ 5 2 5 3 /* This file matches signaller_stack.incl.alm and is currently used only by verify_lock */ 5 4 5 5 declare 1 signaller_stack based unaligned, 5 6 2 pad (8) bit (36), /* Make machine conditions 0 mod 16 */ 5 7 2 mach_cond (48) bit (36), /* Machine conditions */ 5 8 2 mc_ptr ptr aligned, /* Pointer to machine conditions */ 5 9 2 null_ptr ptr aligned, /* Null pointer */ 5 10 2 string_descriptor bit (36), /* Condition name descriptor */ 5 11 2 ptr_descriptor bit (36), /* M.C. ptr descriptor */ 5 12 2 arglist (18) bit (36), /* Arg list for call to signal */ 5 13 2 signal_string char (32), /* Condition name */ 5 14 2 on_unit (16) bit (36), /* Must be at 128 in stack frame */ 5 15 2 history_registers (128) bit (36); 5 16 5 17 /* on_unit must start at 128 because trap_caller_caller_ sets up a stack frame 5 18* assuming this to be so. Similarly mach_cond must start at 48. */ 5 19 5 20 /* END INCLUDE FILE ... signaller_stack.incl.pl1 ... */ 23 24 call add ("signaller_stack", addr (p -> signaller_stack)); 25 begin; 26 /* BEGIN INCLUDE FILE slt.incl.pl1 --- Last modified 2/76 SHW */ 6 2 6 3 /* Declarations for Segment Loading Table header and array. 6 4* 6 5* Used by Initialization and MST Checker subroutines */ 6 6 6 7 dcl sltp ptr, /* pointer to base of SLT segment */ 6 8 names_ptr ptr, /* pointer to base of SLT names segment */ 6 9 namep ptr, /* pointer to segment name list block */ 6 10 pathp ptr, /* pointer to segment's directory path name */ 6 11 aclp ptr; /* pointer to acl structure */ 6 12 6 13 declare 1 slt based (sltp) aligned, /* declaration of Segment Loading Table (SLT) */ 6 14 2 name_seg_ptr ptr, /* words 0-1, pointer (ITS pair) to name segment */ 6 15 2 free_core_start fixed bin (24), /* word 2, start of free core after perm-wired */ 6 16 2 first_sup_seg fixed bin (18), /* word 3, first supervisor segment number */ 6 17 2 last_sup_seg fixed bin (18), /* word 4, last supervisor segment number */ 6 18 2 first_init_seg fixed bin (18), /* word 5, first initializer segment number */ 6 19 2 last_init_seg fixed bin (18), /* word 6, last initializer segment number */ 6 20 2 free_core_size fixed bin (24), /* size (in words) of free core after perm-wired */ 6 21 2 seg (0:8191) aligned, /* segment entries (4 words each) */ 6 22 3 slte (4) fixed bin (35); /* Space for SLT entries */ 6 23 6 24 /* auxiliary segment of SLT for storing of segment names and directory path names */ 6 25 6 26 declare 1 name_seg based (names_ptr) aligned, /* name segment header */ 6 27 2 pad bit (18) unal, 6 28 2 next_loc bit (18) unal, /* Next available free location in name seg */ 6 29 2 ht (0:127) bit (18) aligned; /* Names hash table */ 6 30 6 31 declare 1 segnam based (namep) aligned, /* declaration for segment name block */ 6 32 2 count fixed bin (17), /* number of segment names in this block */ 6 33 2 names (50 refer (segnam.count)), /* segment name array */ 6 34 3 hp bit (18) unal, /* hash thread pointer */ 6 35 3 ref bit (1) unal, /* "1"b if name referenced */ 6 36 3 pad bit (5) unal, 6 37 3 segno bit (12) unal, /* segment number associated with this name */ 6 38 3 name char (32) unal; /* space for name (max 32 characters) */ 6 39 6 40 declare 1 path based (pathp) aligned, /* declaration for directory path name */ 6 41 2 size fixed bin (17), /* length of pathname */ 6 42 2 name char (168 refer (path.size)) unal, /* directory path name */ 6 43 2 acls fixed bin; /* ACL list starts here */ 6 44 6 45 declare 1 acls based (aclp) aligned, /* declaration for acl list */ 6 46 2 count fixed bin, /* number of entries in acl list */ 6 47 2 acl (50 refer (acls.count)), /* array of acl entries */ 6 48 3 userid char (32), /* user specification */ 6 49 3 mode bit (36) aligned, /* mode for the specified user */ 6 50 3 pad bit (36) aligned, 6 51 3 code fixed bin; 6 52 6 53 6 54 /* END INCLUDE FILE slt.incl.pl1 */ 26 27 call add ("slt", addr (p -> slt)); 28 dcl 1 slt_name_seg aligned like name_seg based; 29 call add ("slt_name_seg", addr (p -> slt_name_seg)); 30 dcl 1 slt_segname aligned like segnam based; 31 call add ("slt_segname", addr (p -> slt_segname)); 32 dcl 1 slt_path aligned like path based; 33 call add ("slt_path", addr (p -> slt_path)); 34 dcl 1 slt_acls aligned like acls based; 35 call add ("slt_acls", addr (p -> slt_acls)); 36 end; 7 1 /* BEGIN INCLUDE FILE slte.incl.pl1 */ 7 2 /* Declaration for Segment Loading Table Entry structure. 7 3* Used by Initialization, MST Generation, and MST Checker subroutines */ 7 4 /* modified 5/4/76 by Noel I. Morris */ 7 5 /* last modified 12/12/83 by Keith Loepere for breakpointable */ 7 6 /* format: style3 */ 7 7 7 8 dcl sltep ptr; 7 9 7 10 dcl 1 slte_uns based (sltep) aligned, 7 11 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 7 12 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 7 13 /**** End of word 1 */ 7 14 2 access bit (4), /* SDW access bit (REWP) */ 7 15 2 cache bit (1), /* Segment to be allowed in cache */ 7 16 2 abs_seg bit (1), /* segment is an abs seg if ON */ 7 17 2 firmware_seg bit (1), /* load in low 256 */ 7 18 2 layout_seg bit (1), /* mailbox & such */ 7 19 2 breakpointable bit (1), /* includes breakpoint_page */ 7 20 2 pad1 bit (3), /* unused */ 7 21 2 wired bit (1), /* segment is wired if ON */ 7 22 2 paged bit (1), /* segment is paged if ON */ 7 23 2 per_process bit (1), /* segment is per-process if ON */ 7 24 2 pad3 bit (2), 7 25 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 7 26 /**** End of 1st half of word 2 */ 7 27 2 pad4 bit (3), 7 28 2 branch_required bit (1), /* path name supplied if ON */ 7 29 2 init_seg bit (1), /* segment is init_seg if ON */ 7 30 2 temp_seg bit (1), /* segment is temp_seg if ON */ 7 31 2 link_provided bit (1), /* linkage segment provided if ON */ 7 32 2 link_sect bit (1), /* segment is linkage segment if ON */ 7 33 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 7 34 2 combine_link bit (1), /* linkage is combined if ON */ 7 35 2 pre_linked bit (1), /* lot entry has been made if ON */ 7 36 2 defs bit (1), /* segment is definitions segment if ON */ 7 37 /***** End of word 2 */ 7 38 2 pad5 bit (6), 7 39 2 cur_length fixed bin (9) uns, /* current length of segment (in 1024 word blocks) */ 7 40 2 ringbrack (3) fixed bin (3) uns, /* ringbrackets */ 7 41 2 segno fixed bin (18) uns, /* text/link segment number */ 7 42 /***** End of word 3 */ 7 43 2 pad7 bit (3), 7 44 2 max_length fixed bin (9) uns, /* maximum length for segment */ 7 45 2 bit_count fixed bin (24) uns 7 46 ) unaligned; /* bitcount of segment */ 7 47 7 48 dcl 1 slte based (sltep) aligned, 7 49 ( 2 names_ptr bit (18), /* rel pointer to thread of names */ 7 50 2 path_ptr bit (18), /* rel pointer to pathname (if present) */ 7 51 2 access bit (4), /* SDW access bit (REWP) */ 7 52 2 cache bit (1), /* Segment to be allowed in cache */ 7 53 2 abs_seg bit (1), /* segment is an abs seg if ON */ 7 54 2 firmware_seg bit (1), 7 55 2 layout_seg bit (1), 7 56 2 breakpointable bit (1), 7 57 2 pad2 bit (3), 7 58 2 wired bit (1), /* segment is wired if ON */ 7 59 2 paged bit (1), /* segment is paged if ON */ 7 60 2 per_process bit (1), /* segment is per-process if ON */ 7 61 2 pad3 bit (2), 7 62 2 acl_provided bit (1), /* ON if acl structure follows path_name on MST */ 7 63 2 pad4 bit (3), 7 64 2 branch_required bit (1), /* path name supplied if ON */ 7 65 2 init_seg bit (1), /* segment is init_seg if ON */ 7 66 2 temp_seg bit (1), /* segment is temp_seg if ON */ 7 67 2 link_provided bit (1), /* linkage segment provided if ON */ 7 68 2 link_sect bit (1), /* segment is linkage segment if ON */ 7 69 2 link_sect_wired bit (1), /* linkage segment is wired if ON */ 7 70 2 combine_link bit (1), /* linkage is combined if ON */ 7 71 2 pre_linked bit (1), /* lot entry has been made if ON */ 7 72 2 defs bit (1), /* segment is definitions segment if ON */ 7 73 2 pad5 bit (6), 7 74 2 cur_length bit (9), /* current length of segment (in 1024 word blocks) */ 7 75 2 ringbrack (3) bit (3), /* ringbrackets */ 7 76 2 segno bit (18), /* text/link segment number */ 7 77 2 pad6 bit (3), 7 78 2 max_length bit (9), /* maximum length for segment */ 7 79 2 bit_count bit (24) 7 80 ) unaligned; /* bitcount of segment */ 7 81 7 82 /* END INCLUDE FILE slte.incl.pl1 */ 37 call add ("slte", addr (p -> slte)); 8 1 /* BEGIN INCLUDE FILE ... sst.incl.pl1 ... January 1971 */ 8 2 /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ 8 3 /* Deleted paging device info and added pc segmove info, Benson Margulies 84-01-03 */ 8 4 /* Added covert channel meters, Keith Loepere 85-01-08. */ 8 5 8 6 dcl sst_seg$ external; 8 7 dcl sstp ptr; 8 8 8 9 dcl 1 sst based (sstp) aligned, 8 10 2 space (8) fixed bin, /* empty space to watch for bugs */ 8 11 8 12 /* SST HEADER */ 8 13 8 14 2 pre_page_time fixed bin (71), /* total time spent pre-paging */ 8 15 2 post_purge_time fixed bin (71), /* total time spent post-purging */ 8 16 2 post_in_core fixed bin, /* total pages in core (and in list) at purge time */ 8 17 2 thrashing fixed bin, /* meter of thrashing being done on system */ 8 18 2 npfs_misses fixed bin, /* meter of times npfs was on when pre-paging */ 8 19 2 salv fixed bin, /* flag which is ^=0 if and only if salvaging */ 8 20 8 21 2 ptl bit (36), /* global page table loop lock */ 8 22 2 astl bit (36), /* global ast allocation block lock */ 8 23 2 astl_event bit (36), /* event used when waiting for AST lock */ 8 24 2 astl_notify_requested bit (1) aligned, /* flag to notify AST lock */ 8 25 2 nused fixed bin, /* number of pages on used list */ 8 26 2 ptwbase fixed bin (24), /* absolute address of page table array */ 8 27 2 tfreep ptr, /* pointer to first trailer on free list */ 8 28 8 29 2 astap ptr, /* aste array pointer */ 8 30 2 ptl_wait_ct fixed bin, /* pxss: number is >= # of processes waiting to ptl */ 8 31 2 astsize fixed bin, /* size of an AST entry */ 8 32 2 cmesize fixed bin, /* size of a CME entry */ 8 33 2 root_astep ptr, /* pointer to the root AST entry */ 8 34 8 35 2 pts (0: 3) fixed bin, /* array of page table sizes */ 8 36 2 level (0:3), /* per-list information about ASTE's */ 8 37 3 (ausedp, no_aste) bit (18) unaligned, /* used list and count of number of entries */ 8 38 8 39 2 (atempp, atempp1) bit (18) unal, /* temp seg list pointer */ 8 40 2 dm_enabled bit (1) aligned, /* ON => journal seg exists */ 8 41 2 (ainitp, ainitp1) bit (18) unal, /* init seg list pointer */ 8 42 2 strsize fixed bin, /* Trailer size in words. */ 8 43 8 44 /* CORE MAP HEADER */ 8 45 8 46 2 cmp ptr, /* pointer to start of core map */ 8 47 2 usedp bit (18), /* pointer to first used core block */ 8 48 2 wtct fixed bin, /* count of pages being written */ 8 49 8 50 2 startp bit (18), /* pointer to solid page for lap counting (fsdct) */ 8 51 2 removep bit (18), /* pointer to list of pages being removed from use */ 8 52 /* MISC */ 8 53 8 54 2 double_write fixed bin, /* trigger for store through scheme */ 8 55 /* 0 = no double writes, 8 56* 1 = all non-pd pages get written, 8 57* 2 = all directories get written */ 8 58 2 temp_w_event bit (36) aligned, /* wait event for temp wiring lock */ 8 59 2 root_pvtx fixed bin, /* pvtx or rpv */ 8 60 2 nolock bit (1) aligned, /* if on, don't lock ptl on interrupts */ 8 61 8 62 2 fc_skips_pinned fixed bin (35), /* number of skips over pinned page in find_core */ 8 63 2 cl_skips_pinned fixed bin (35), /* number of skips over pinned page in claim_mod_core */ 8 64 2 ast_ht_ptr ptr, /* AST hast table pointer */ 8 65 2 ast_ht_n_buckets fixed bin, /* number of buckets in AST hash table */ 8 66 2 ast_ht_uid_mask bit (36) aligned, /* mask to strip out low-order bits of uid */ 8 67 2 meter_ast_locking fixed bin, /* non-zero enables AST lock meters */ 8 68 2 checksum_filemap fixed bin, /* non-zero enables filemap checksumming */ 8 69 8 70 2 page_read_errors fixed bin, /* read errors posted to page control */ 8 71 2 page_write_errors fixed bin, /* write errors posted to page control */ 8 72 8 73 2 cycle_pv_allocation fixed bin, /* flag to cycle VTOCE allocation among PVs */ 8 74 8 75 2 n_trailers fixed bin, /* Number of trailer entries in str_seg */ 8 76 2 synch_activations fixed bin (35), /* Activation attempts for synchronized segs */ 8 77 2 synch_skips fixed bin (35), /* get_aste skips because not synchronized */ 8 78 8 79 2 lock_waits fixed bin, /* Number of times we had to wait for a lock */ 8 80 2 total_locks_set fixed bin, /* Total number of block locks set */ 8 81 2 pdir_page_faults fixed bin, /* total page faults off >pdd */ 8 82 2 level_1_page_faults fixed bin, /* total page faults in sys libes */ 8 83 2 dir_page_faults fixed bin, /* Total page faults on directories */ 8 84 2 ring_0_page_faults fixed bin, /* page faults in ring 0 */ 8 85 2 rqover fixed bin (35), /* errcode for record quota overflow */ 8 86 2 pc_io_waits fixed bin, /* Number of times pc had to wait on io */ 8 87 8 88 8 89 /* The following (until pdmap) used to be the 'cnt' in cnt.incl.pl1 */ 8 90 8 91 2 steps fixed bin, /* number of steps taken around used list */ 8 92 2 needc fixed bin, /* number of times core page needed */ 8 93 2 ceiling fixed bin, /* number of times ceiling hit */ 8 94 2 ctwait fixed bin, /* number of times write counter was full */ 8 95 2 wired fixed bin, /* number of pages wired by pc */ 8 96 2 laps fixed bin, /* number of times around used list */ 8 97 2 skipw fixed bin, /* number of pages skiped because they were wired */ 8 98 2 skipu fixed bin, /* because of being used */ 8 99 8 100 2 skipm fixed bin, /* because of being modified */ 8 101 2 skipos fixed bin, /* because out of service */ 8 102 2 aused fixed bin, /* number of AST entries on used list */ 8 103 2 damaged_ct fixed bin, /* count of segments that system damaged */ 8 104 2 deact_count fixed bin, /* count of deactivations */ 8 105 2 demand_deact_attempts fixed bin, /* user requested deactivations */ 8 106 2 demand_deactivations fixed bin, /* user instigated deactivations */ 8 107 8 108 2 reads (8) fixed bin, /* number of reads for each did */ 8 109 2 writes (8) fixed bin, /* number of writes for each did */ 8 110 8 111 2 short_pf_count fixed bin, /* count of page faults on out of service pages */ 8 112 2 loop_locks fixed bin, /* count of times locked PTL */ 8 113 2 loop_lock_time fixed bin (71), /* time spent looping on PTL */ 8 114 2 cpu_sf_time fixed bin (71), /* cpu time spent in seg_fault */ 8 115 2 total_sf_pf fixed bin, /* total page faults while in seg_fault */ 8 116 2 total_sf fixed bin, /* total number of seg_faults */ 8 117 2 pre_page_size fixed bin, /* total pre-pagings expected */ 8 118 2 post_list_size fixed bin, 8 119 2 post_purgings fixed bin, /* total number of post-purgings */ 8 120 2 post_purge_calls fixed bin, /* total number of calls to post-purge */ 8 121 2 pre_page_calls fixed bin, /* total number of calls tp pre-page */ 8 122 2 pre_page_list_size fixed bin, 8 123 2 pre_page_misses fixed bin, /* total number of misses in pre-page list */ 8 124 2 pre_pagings fixed bin, /* total number of pre-pagings */ 8 125 8 126 /* TEMPORARY WIRED PROCEDURE INFO */ 8 127 8 128 2 wire_proc_data (8) fixed bin (71), /* data for wire_proc */ 8 129 8 130 /* MAIN MEMORY USAGE INFORMATION */ 8 131 8 132 2 abs_wired_count fixed bin, /* count of abs-wired pages */ 8 133 2 system_type fixed bin, /* ADP_SYSTEM or L68_SYSTEM */ 8 134 2 wired_copies fixed bin, /* number of times a wired page was copied */ 8 135 2 recopies fixed bin, /* number of times recopied because modified */ 8 136 2 first_core_block fixed bin, /* core map index for first block of core */ 8 137 2 last_core_block fixed bin, /* core map index for last block of core */ 8 138 2 fw_retries fixed bin (35), /* force_write retries due to ASTE move */ 8 139 2 pvhtp ptr unaligned, /* ptr to PV hold table for debugging */ 8 140 8 141 /* AST METERS */ 8 142 8 143 2 askipsize (0: 3) fixed bin, /* array of skips because wrong AST size */ 8 144 2 aneedsize (0: 3) fixed bin, /* array of times needed each size */ 8 145 8 146 2 stepsa fixed bin, /* count of steps taken looking for an AST entry */ 8 147 2 askipsehs fixed bin, /* count of skips because EHS was ON */ 8 148 2 asearches fixed bin, /* count of full searches made */ 8 149 2 askipslevel fixed bin, /* count of skips because pages were in core */ 8 150 2 askipsinit fixed bin, /* count of times turned OFF init switch */ 8 151 2 acost fixed bin, /* cumulative cost of deactivations */ 8 152 2 askipslock fixed bin, /* count of skips because couldn't lock parent */ 8 153 2 askipdius fixed bin, /* count of skips because DIUS was on */ 8 154 8 155 2 alaps fixed bin, /* lap counter for AST list */ 8 156 2 updates fixed bin, /* calls to updateb */ 8 157 2 setfaults_all fixed bin, /* setfaults done to the entire SDW */ 8 158 2 setfaults_acc fixed bin, /* setfaults done to the access field */ 8 159 2 total_bf fixed bin, /* count of bound faults */ 8 160 2 total_bf_pf fixed bin, /* page faults during bound faults */ 8 161 2 cpu_bf_time fixed bin (71), /* cpu time spent in bound fault */ 8 162 8 163 2 asteps (0: 3) fixed bin, /* per-size AST step counters */ 8 164 8 165 2 ast_locked_at_time fixed bin (71), /* clock reading when ast last locked */ 8 166 2 ast_locked_total_time fixed bin (71), /* total real time the ast lock was locked */ 8 167 2 ast_lock_wait_time fixed bin (71), /* total real time of all waiting on ast lock */ 8 168 2 ast_locking_count fixed bin (35), /* number of times ast was locked */ 8 169 2 cleanup_count fixed bin, /* calls to pc$cleanup */ 8 170 2 cleanup_real_time fixed bin (71), /* total real time in pc$cleanup */ 8 171 8 172 /* PRE-PAGE METERS */ 8 173 8 174 2 tree_count (0: 63) fixed bin, /* counters for pre-page decisions */ 8 175 8 176 2 pp_meters (0: 63) fixed bin, /* counters for measuring pre-page success */ 8 177 8 178 8 179 2 wusedp bit (18) aligned, /* Relative cmep to next cme for writing */ 8 180 2 write_hunts fixed bin, /* Times claim_mod_core invoked */ 8 181 2 claim_skip_cme fixed bin, /* Times unacceptable cme found by c_m_c */ 8 182 2 claim_skip_free fixed bin, /* Times free cme passed by c_m_c */ 8 183 2 claim_notmod fixed bin, /* Times c_m_c passed pure page */ 8 184 2 claim_passed_used fixed bin, /* Times used page seen */ 8 185 2 claim_skip_ptw fixed bin, /* Times c_m_c saw unacceptable ptw */ 8 186 2 claim_writes fixed bin, /* Writes queued by c_m_c */ 8 187 2 claim_steps fixed bin, /* Steps passed in core claiming */ 8 188 2 pre_seeks_failed fixed bin, /* counter of times quick find_core_ failed */ 8 189 2 resurrections fixed bin, /* nulled addresses reinstated */ 8 190 2 volmap_seg_page_faults fixed bin (35), /* Pseudo-page faults on volmap_seg */ 8 191 2 oopv fixed bin, /* out-of-physical-volume page faults */ 8 192 2 dblw_resurrections fixed bin, /* addresses resurrected by double-writing */ 8 193 2 sgm_time fixed bin (71), /* Time (VCPU) in seg mover */ 8 194 2 sgm_pf fixed bin, /* Page faults in seg moving */ 8 195 2 bad_sgms fixed bin, /* Seg moves that failed */ 8 196 2 sgm_sgft fixed bin, /* Seg faults in seg moves */ 8 197 2 good_sgms fixed bin, /* Seg moves that completed */ 8 198 2 claim_runs fixed bin, /* Times claim_mod_core had to run */ 8 199 2 activations fixed bin, /* total count of activations */ 8 200 2 dir_activations fixed bin, /* count of directory activations */ 8 201 2 hedge_updatevs fixed bin, /* call-in updatevs */ 8 202 2 hedge_writes fixed bin, /* call in core flush writes */ 8 203 2 evict_recover_data, /* see evict_page.alm */ 8 204 3 evict_ptp bit (18) unal, /* ptp of page being moved */ 8 205 3 evict_phmbit bit (18) unal, /* N/Z if page was mod */ 8 206 8 207 /* Data for metering force_write facility 08/19/78 */ 8 208 8 209 2 force_swrites fixed bin, /* Calls on segments to force write */ 8 210 2 force_pwrites fixed bin, /* Mod pages so written */ 8 211 2 fw_none fixed bin, /* Force write wrote none */ 8 212 2 force_updatevs fixed bin, /* Updatev's so forced */ 8 213 8 214 2 pf_unlock_ptl_time fixed bin (71), /* Time unlocking ptln page faults */ 8 215 2 pf_unlock_ptl_meterings fixed bin, 8 216 8 217 2 makeknown_activations fixed bin (35), /* activations at makeknown time */ 8 218 2 backup_activations fixed bin (35), /* activations for backup */ 8 219 2 metering_flags aligned, /* small chunks of misc. information */ 8 220 3 activate_activated bit (1) unal, /* ON => last call to activate entry actually activated something */ 8 221 3 pad bit (35) unal, 8 222 2 seg_fault_calls fixed bin (35), /* number calls to seg_fault for explicit activation */ 8 223 8 224 /* METERS FOR STACK TRUNCATION */ 8 225 8 226 2 (stk_truncate_should_didnt, /* counts */ 8 227 stk_truncate_should_did, 8 228 stk_truncate_shouldnt_didnt, 8 229 stk_truncate_shouldnt_did) fixed bin (35), 8 230 2 stk_pages_truncated fixed bin (35), 8 231 2 stk_pages_truncated_in_core fixed bin (35), 8 232 8 233 /* SUPPORT FOR PC SEGMOVES */ 8 234 8 235 2 segmove_lock aligned, 8 236 3 pid bit (36) aligned, 8 237 3 event bit (36) aligned, 8 238 3 notify bit (1) aligned, 8 239 2 segmove_io_limit fixed bin, /* max read aheads */ 8 240 2 segmove_found_synch fixed bin (35), /* cme.synch_held */ 8 241 2 segmove_synch_disappeared fixed bin (35), /* page$check_synch fixed */ 8 242 2 segmove_n_reads fixed bin (35), /* total IO's queued. */ 8 243 2 segmove_max_tries fixed bin (35), /* max times through the read loop */ 8 244 8 245 2 segmove_astep ptr unal, /* if non-null, addresses to be rescued from old_addr_astep */ 8 246 2 segmove_pvtx fixed bin, /* if segmove_astep nonnull, valid */ 8 247 2 segmove_vtocx fixed bin, /* ditto */ 8 248 2 segmove_old_addr_astep ptr unaligned, /* ditto */ 8 249 2 segmove_new_addr_astep ptr unaligned, /* if non-null, the addresses must be deposited. */ 8 250 8 251 2 mod_during_write fixed bin, /* times a page was modified while it was being written */ 8 252 2 zero_pages fixed bin, /* count of pages truncated because all zero */ 8 253 2 trace_sw aligned, /* tracing control flags */ 8 254 3 pad_trace bit (32) unaligned, 8 255 3 pc_trace_pf bit (1) unaligned, /* tracing for page faults, done, etc. */ 8 256 3 tty_trace bit (1) unaligned, 8 257 3 pc_trace bit (1) unaligned, /* flag used by page control primitives */ 8 258 3 sc_trace bit (1) unaligned, /* flag used by segment control primitives */ 8 259 2 new_pages fixed bin, /* newly created pages */ 8 260 2 ast_track bit (1) aligned, /* "1"b => keep SST name table */ 8 261 2 dirlock_writebehind fixed bin, /* =1 to flush modified dir pages in lock$unlock */ 8 262 2 write_limit fixed bin, /* Max # of outstanding writes by page control */ 8 263 2 crash_test_segmove bit (1) aligned, /* crash in mid-segmove */ 8 264 2 delayed_seg_state_chg fixed bin (35), /* count of times a process was delayed in affecting a seg state */ 8 265 2 audit_seg_state_chg fixed bin (35), /* count of times a process was audited for excessive seg state changes */ 8 266 2 seg_state_chg_delay fixed bin (52), /* total times processes were delayed for covert channels */ 8 267 2 seg_state_change_limit fixed bin, /* number of events over which we determine covert channel bandwidth */ 8 268 2 max_seg_state_change_bw fixed bin, /* maximum bps for covert channel before we delay */ 8 269 2 audit_seg_state_change_bw fixed bin, /* maximum bps for covert channel before we audit */ 8 270 2 seg_state_chg_operation bit (36) aligned, /* access_operation_ value for excessive_seg_state_chg */ 8 271 2 pad4 (126) bit (36) aligned; /* padding to 512 words (1000)8 */ 8 272 8 273 /* END INCLUDE FILE sst.incl.pl1 */ 38 call add ("sst", addr (p -> sst)); 9 1 /* Begin include file sstnt.incl.pl1 */ 9 2 9 3 /* Created 10/03/74 by Bernard Greenberg */ 9 4 /* modified 08/24/79 by J. A. Bush for easier calculation of size of sstnt */ 9 5 /* Modified 08/27/84 by Keith Loepere to purge BOS */ 9 6 9 7 dcl sst_names_$ ext; /* Segment containing sst name table */ 9 8 9 9 dcl sstnp ptr; /* Pointer to sst name segment */ 9 10 9 11 dcl 1 sstnt based (sstnp) aligned, /* Major structure */ 9 12 2 valid bit (1) aligned, /* 1 => structure filled by Multics */ 9 13 2 multics_or_bce char (4) aligned, /* Origin of data in table */ 9 14 2 nentries fixed bin, /* number of entries in the sstnt */ 9 15 2 pad1 (5) fixed bin, 9 16 9 17 2 (ast_sizes, /* Sizes of ASTE's at each level */ 9 18 ast_name_offsets, /* Starting index for names at each level */ 9 19 ast_offsets, /* Starting rel addr of each AST region */ 9 20 pad2) (0 : 3) fixed bin, 9 21 9 22 2 names (0 : 0 refer (sstnt.nentries)) char (32) varying; /* Names of AST entries */ 9 23 9 24 dcl (sstnmx, ptsi_a) fixed bin (17); /* Index into name table */ 9 25 9 26 dcl nm_astep ptr; /* astep to be used */ 9 27 9 28 /* End include file sstnt.incl.pl1 */ 39 call add ("sstnt", addr (p -> sstnt)); 10 1 /* BEGIN INCLUDE FILE ... stack_0_data.incl.pl1 */ 10 2 10 3 /* Created 790509 by Mike Grady */ 10 4 10 5 dcl stack_0_data$ fixed bin ext; /* shared stack 0 data base seg */ 10 6 dcl stack_0_data_init_number_of_stacks fixed bin; /* Make PL/I work */ 10 7 dcl sdtp ptr; 10 8 10 9 dcl 1 sdt aligned based (sdtp), /* stack 0 database */ 10 10 2 lock bit (36), /* lock before changing threads */ 10 11 2 num_stacks fixed bin, /* number of stacks in pool */ 10 12 2 freep bit (18), /* head of free thread, managed LIFO */ 10 13 2 pad fixed bin, 10 14 2 stacks (stack_0_data_init_number_of_stacks 10 15 refer (sdt.num_stacks)) like sdte; 10 16 10 17 dcl sdtep ptr; 10 18 10 19 dcl 1 sdte aligned based (sdtep), /* stack data table entry */ 10 20 2 nextp bit (18) unal, /* thread to next free entry (if free) */ 10 21 2 pad bit (18) unal, 10 22 2 astep bit (18) unal, /* ptr to ASTE for this stack seg */ 10 23 2 aptep bit (18) unal, /* ptr to APTE of process using this stack, if not free */ 10 24 2 sdw bit (72); /* SDW for this stack seg */ 10 25 10 26 /* END INCLUDE FILE ... stack_0_data.incl.pl1 */ 40 41 dcl 1 stack_0_data aligned like sdt based; 42 call add ("stack_0_data", addr (p -> stack_0_data)); 43 call add ("sdte", addr (p -> sdte)); 11 1 /* BEGIN INCLUDE FILE ... stack_frame.incl.pl1 ... */ 11 2 11 3 /* format: off */ 11 4 11 5 /* Modified: 16 Dec 1977, D. Levin - to add fio_ps_ptr and pl1_ps_ptr */ 11 6 /* Modified: 3 Feb 1978, P. Krupp - to add run_unit_manager bit & main_proc bit */ 11 7 /* Modified: 21 March 1978, D. Levin - change fio_ps_ptr to support_ptr */ 11 8 /* Modified: 03/01/84, S. Herbst - Added RETURN_PTR_MASK */ 11 9 11 10 11 11 /****^ HISTORY COMMENTS: 11 12* 1) change(86-09-15,Kissel), approve(86-09-15,MCR7473), 11 13* audit(86-10-01,Fawcett), install(86-11-03,MR12.0-1206): 11 14* Modified to add constants for the translator_id field in the stack_frame 11 15* structure. 11 16* END HISTORY COMMENTS */ 11 17 11 18 11 19 dcl RETURN_PTR_MASK bit (72) int static options (constant) /* mask to be AND'd with stack_frame.return_ptr */ 11 20 init ("777777777777777777000000"b3); /* when copying, to ignore bits that a call fills */ 11 21 /* with indicators (nonzero for Fortran hexfp caller) */ 11 22 /* say: unspec(ptr) = unspec(stack_frame.return_ptr) & RETURN_PTR_MASK; */ 11 23 11 24 dcl TRANSLATOR_ID_PL1V2 bit (18) internal static options (constant) init ("000000"b3); 11 25 dcl TRANSLATOR_ID_ALM bit (18) internal static options (constant) init ("000001"b3); 11 26 dcl TRANSLATOR_ID_PL1V1 bit (18) internal static options (constant) init ("000002"b3); 11 27 dcl TRANSLATOR_ID_SIGNAL_CALLER bit (18) internal static options (constant) init ("000003"b3); 11 28 dcl TRANSLATOR_ID_SIGNALLER bit (18) internal static options (constant) init ("000004"b3); 11 29 11 30 11 31 dcl sp pointer; /* pointer to beginning of stack frame */ 11 32 11 33 dcl stack_frame_min_length fixed bin static init(48); 11 34 11 35 11 36 dcl 1 stack_frame based(sp) aligned, 11 37 2 pointer_registers(0 : 7) ptr, 11 38 2 prev_sp pointer, 11 39 2 next_sp pointer, 11 40 2 return_ptr pointer, 11 41 2 entry_ptr pointer, 11 42 2 operator_and_lp_ptr ptr, /* serves as both */ 11 43 2 arg_ptr pointer, 11 44 2 static_ptr ptr unaligned, 11 45 2 support_ptr ptr unal, /* only used by fortran I/O */ 11 46 2 on_unit_relp1 bit(18) unaligned, 11 47 2 on_unit_relp2 bit(18) unaligned, 11 48 2 translator_id bit(18) unaligned, /* Translator ID (see constants above) 11 49* 0 => PL/I version II 11 50* 1 => ALM 11 51* 2 => PL/I version I 11 52* 3 => signal caller frame 11 53* 4 => signaller frame */ 11 54 2 operator_return_offset bit(18) unaligned, 11 55 2 x(0: 7) bit(18) unaligned, /* index registers */ 11 56 2 a bit(36), /* accumulator */ 11 57 2 q bit(36), /* q-register */ 11 58 2 e bit(36), /* exponent */ 11 59 2 timer bit(27) unaligned, /* timer */ 11 60 2 pad bit(6) unaligned, 11 61 2 ring_alarm_reg bit(3) unaligned; 11 62 11 63 11 64 dcl 1 stack_frame_flags based(sp) aligned, 11 65 2 pad(0 : 7) bit(72), /* skip over prs */ 11 66 2 xx0 bit(22) unal, 11 67 2 main_proc bit(1) unal, /* on if frame belongs to a main procedure */ 11 68 2 run_unit_manager bit(1) unal, /* on if frame belongs to run unit manager */ 11 69 2 signal bit(1) unal, /* on if frame belongs to logical signal_ */ 11 70 2 crawl_out bit(1) unal, /* on if this is a signal caller frame */ 11 71 2 signaller bit(1) unal, /* on if next frame is signaller's */ 11 72 2 link_trap bit(1) unal, /* on if this frame was made by the linker */ 11 73 2 support bit(1) unal, /* on if frame belongs to a support proc */ 11 74 2 condition bit(1) unal, /* on if condition established in this frame */ 11 75 2 xx0a bit(6) unal, 11 76 2 xx1 fixed bin, 11 77 2 xx2 fixed bin, 11 78 2 xx3 bit(25) unal, 11 79 2 old_crawl_out bit (1) unal, /* on if this is a signal caller frame */ 11 80 2 old_signaller bit(1) unal, /* on if next frame is signaller's */ 11 81 2 xx3a bit(9) unaligned, 11 82 2 xx4(9) bit(72) aligned, 11 83 2 v2_pl1_op_ret_base ptr, /* When a V2 PL/I program calls an operator the 11 84* * operator puts a pointer to the base of 11 85* * the calling procedure here. (text base ptr) */ 11 86 2 xx5 bit(72) aligned, 11 87 2 pl1_ps_ptr ptr; /* ptr to ps for this frame; also used by fio. */ 11 88 11 89 /* format: on */ 11 90 11 91 /* END INCLUDE FILE ... stack_frame.incl.pl1 */ 44 call add ("stack_frame", addr (p -> stack_frame)); 12 1 /* BEGIN INCLUDE FILE ... stack_header.incl.pl1 .. 3/72 Bill Silver */ 12 2 /* modified 7/76 by M. Weaver for *system links and more system use of areas */ 12 3 /* modified 3/77 by M. Weaver to add rnt_ptr */ 12 4 /* Modified April 1983 by C. Hornig for tasking */ 12 5 12 6 /****^ HISTORY COMMENTS: 12 7* 1) change(86-06-24,DGHowe), approve(86-06-24,MCR7396), 12 8* audit(86-08-05,Schroth), install(86-11-03,MR12.0-1206): 12 9* added the heap_header_ptr definition. 12 10* 2) change(86-08-12,Kissel), approve(86-08-12,MCR7473), 12 11* audit(86-10-10,Fawcett), install(86-11-03,MR12.0-1206): 12 12* Modified to support control point management. These changes were actually 12 13* made in February 1985 by G. Palter. 12 14* 3) change(86-10-22,Fawcett), approve(86-10-22,MCR7473), 12 15* audit(86-10-22,Farley), install(86-11-03,MR12.0-1206): 12 16* Remove the old_lot pointer and replace it with cpm_data_ptr. Use the 18 12 17* bit pad after cur_lot_size for the cpm_enabled. This was done to save some 12 18* space int the stack header and change the cpd_ptr unal to cpm_data_ptr 12 19* (ITS pair). 12 20* END HISTORY COMMENTS */ 12 21 12 22 /* format: style2 */ 12 23 12 24 dcl sb ptr; /* the main pointer to the stack header */ 12 25 12 26 dcl 1 stack_header based (sb) aligned, 12 27 2 pad1 (4) fixed bin, /* (0) also used as arg list by outward_call_handler */ 12 28 2 cpm_data_ptr ptr, /* (4) pointer to control point which owns this stack */ 12 29 2 combined_stat_ptr ptr, /* (6) pointer to area containing separate static */ 12 30 2 clr_ptr ptr, /* (8) pointer to area containing linkage sections */ 12 31 2 max_lot_size fixed bin (17) unal, /* (10) DU number of words allowed in lot */ 12 32 2 main_proc_invoked fixed bin (11) unal, /* (10) DL nonzero if main procedure invoked in run unit */ 12 33 2 have_static_vlas bit (1) unal, /* (10) DL "1"b if (very) large arrays are being used in static */ 12 34 2 pad4 bit (2) unal, 12 35 2 run_unit_depth fixed bin (2) unal, /* (10) DL number of active run units stacked */ 12 36 2 cur_lot_size fixed bin (17) unal, /* (11) DU number of words (entries) in lot */ 12 37 2 cpm_enabled bit (18) unal, /* (11) DL non-zero if control point management is enabled */ 12 38 2 system_free_ptr ptr, /* (12) pointer to system storage area */ 12 39 2 user_free_ptr ptr, /* (14) pointer to user storage area */ 12 40 2 null_ptr ptr, /* (16) */ 12 41 2 stack_begin_ptr ptr, /* (18) pointer to first stack frame on the stack */ 12 42 2 stack_end_ptr ptr, /* (20) pointer to next useable stack frame */ 12 43 2 lot_ptr ptr, /* (22) pointer to the lot for the current ring */ 12 44 2 signal_ptr ptr, /* (24) pointer to signal procedure for current ring */ 12 45 2 bar_mode_sp ptr, /* (26) value of sp before entering bar mode */ 12 46 2 pl1_operators_ptr ptr, /* (28) pointer to pl1_operators_$operator_table */ 12 47 2 call_op_ptr ptr, /* (30) pointer to standard call operator */ 12 48 2 push_op_ptr ptr, /* (32) pointer to standard push operator */ 12 49 2 return_op_ptr ptr, /* (34) pointer to standard return operator */ 12 50 2 return_no_pop_op_ptr 12 51 ptr, /* (36) pointer to standard return / no pop operator */ 12 52 2 entry_op_ptr ptr, /* (38) pointer to standard entry operator */ 12 53 2 trans_op_tv_ptr ptr, /* (40) pointer to translator operator ptrs */ 12 54 2 isot_ptr ptr, /* (42) pointer to ISOT */ 12 55 2 sct_ptr ptr, /* (44) pointer to System Condition Table */ 12 56 2 unwinder_ptr ptr, /* (46) pointer to unwinder for current ring */ 12 57 2 sys_link_info_ptr ptr, /* (48) pointer to *system link name table */ 12 58 2 rnt_ptr ptr, /* (50) pointer to Reference Name Table */ 12 59 2 ect_ptr ptr, /* (52) pointer to event channel table */ 12 60 2 assign_linkage_ptr ptr, /* (54) pointer to storage for (obsolete) hcs_$assign_linkage */ 12 61 2 heap_header_ptr ptr, /* (56) pointer to the heap header for this ring */ 12 62 2 trace, 12 63 3 frames, 12 64 4 count fixed bin, /* (58) number of trace frames */ 12 65 4 top_ptr ptr unal, /* (59) pointer to last trace frame */ 12 66 3 in_trace bit (36) aligned, /* (60) trace antirecursion flag */ 12 67 2 pad2 bit (36), /* (61) */ 12 68 2 pad5 pointer; /* (62) pointer to future stuff */ 12 69 12 70 /* The following offset refers to a table within the pl1 operator table. */ 12 71 12 72 dcl tv_offset fixed bin init (361) internal static; 12 73 /* (551) octal */ 12 74 12 75 12 76 /* The following constants are offsets within this transfer vector table. */ 12 77 12 78 dcl ( 12 79 call_offset fixed bin init (271), 12 80 push_offset fixed bin init (272), 12 81 return_offset fixed bin init (273), 12 82 return_no_pop_offset fixed bin init (274), 12 83 entry_offset fixed bin init (275) 12 84 ) internal static; 12 85 12 86 12 87 12 88 12 89 12 90 /* The following declaration is an overlay of the whole stack header. Procedures which 12 91* move the whole stack header should use this overlay. 12 92**/ 12 93 12 94 dcl stack_header_overlay (size (stack_header)) fixed bin based (sb); 12 95 12 96 12 97 12 98 /* END INCLUDE FILE ... stack_header.incl.pl1 */ 45 call add ("stack_header", addr (p -> stack_header)); 13 1 13 2 /* BEGIN INCLUDE FILE ... str.incl.pl1 ... last modified March 1970 */ 13 3 13 4 dcl str_seg$ ext, 13 5 strp ptr; 13 6 13 7 dcl 1 str based (strp) aligned, /* segment or process trailer declaration */ 13 8 13 9 (2 fp bit (18), /* forward ast trailer rel pointer */ 13 10 2 bp bit (18), /* backward ast trailer rel pointer*/ 13 11 13 12 2 segno bit (18), /* segment number*/ 13 13 2 dstep bit (18)) unaligned; /* rel pointer to ring 0 dste */ 13 14 13 15 dcl stra (0:8000) bit (72) based (strp) aligned; 13 16 13 17 /* END INCLUDE FILE ... str.incl.pl1 */ 13 18 46 47 dcl 1 segment_trailer aligned like str based; 48 call add ("segment_trailer", addr (p -> segment_trailer)); 14 1 /* BEGIN INCLUDE FILE syserr_data.incl.pl1 */ 14 2 14 3 /* Created by Bill Silver on 01/03/73. */ 14 4 /* Modified September 1975 by Larry Johnson to add binary data */ 14 5 /* Modified March 1976 by Steve Webber for use with cds */ 14 6 /* Modified 1985-01-21 by EJ Sharpe: added wmess.process_id */ 14 7 /* Modified 1985-02-18 by Keith Loepere to break out headers. */ 14 8 14 9 /* This include file defines the syserr and log areas found in syserr_data.cds 14 10* There is one lock that coordinates the use of all the data found in 14 11* syserr_data.cds. NOTE, if this include file changes, syserr_data.cds 14 12* may also have to be changed. */ 14 13 14 14 dcl syserr_data$syserr_area char (1) aligned external, 14 15 syserr_data$wired_log_area char (1) aligned external; 14 16 14 17 dcl sd_ptr ptr, /* Pointer to beginning of syserr_area. */ 14 18 wlog_ptr ptr, /* Pointer to beginning of wired_log_area. */ 14 19 wmess_ptr ptr; /* Pointer to a message entry in the wired log. */ 14 20 14 21 dcl 1 sd based (sd_ptr) aligned, /* Overlay of syserr_data$syserr_area. */ 14 22 2 lock bit (36), /* Locks all the data in syserr_data. */ 14 23 2 log_flag bit (1) unal, /* ON => logging mechanism enabled. */ 14 24 2 char_type_flag bit (1) unal, /* ON => ASCII, OFF => BCD. */ 14 25 2 ocdcm_init_flag bit (1) unal, /* ON => ocdcm_ has been initialized. */ 14 26 2 pad bit (33) unal, 14 27 2 prev_text_written char (80); /* Text of last message written */ 14 28 14 29 dcl 1 wlog based (wlog_ptr) aligned, /* Overlay of syserr_data$wired_log_area. */ 14 30 2 head like wlog_header, /* Wired log header. */ 14 31 2 buffer (wlog.head.bsize) bit (36); /* Wired log buffer. */ 14 32 14 33 dcl 1 wlog_header based aligned, /* WIRED LOG HEADER */ 14 34 2 bsize fixed bin, /* Size of the wired log buffer in words. 14 35* Defined in syserr_data.cds. */ 14 36 2 count fixed bin, /* Num of message entries in wired log. */ 14 37 2 slog_ptr ptr, /* Pointer to the paged log segment: syserr_log. */ 14 38 2 seq_num fixed bin (35), /* Sequence number of last message logged. */ 14 39 2 next bit (18) unal, /* Offset relative to base syserr_data */ 14 40 /* Where next entry will go in wired log. */ 14 41 2 pad bit (18) unal; 14 42 14 43 14 44 /* This is an overlay of a message entry that goes into the wired log. Each message 14 45* entry corresponds to one syserr message. */ 14 46 14 47 dcl 1 wmess based (wmess_ptr) aligned, 14 48 2 header aligned like wmess_header, 14 49 2 text char (0 refer (wmess.text_len)), /* Text of expanded message - kept in ASCII. */ 14 50 2 data (0 refer (wmess.data_size)) bit (36); /* Binary data area */ 14 51 14 52 dcl 1 wmess_header based aligned, 14 53 2 seq_num fixed bin (35), /* Sequence number of this message. */ 14 54 2 time fixed bin (71) unal, /* Time message logged at */ 14 55 2 code fixed bin (11) unal, /* Syserr code associated with this message. */ 14 56 2 text_len fixed bin (11) unal, /* Length of message text in ASCII characters. */ 14 57 2 data_size fixed bin (11) unal, /* Size of binary data */ 14 58 2 data_code fixed bin (11) unal, /* Data code */ 14 59 2 pad bit (24) unal, 14 60 2 process_id bit (36); /* ID of process which wrote message */ 14 61 14 62 /* END INCLUDE FILE syserr_data.incl.pl1 */ 49 50 dcl 1 syserr_data aligned like sd based; 51 call add ("syserr_data", addr (p -> syserr_data)); 52 dcl 1 wired_syserr_log aligned like wlog based; 53 call add ("wired_syserr_log", addr (p -> wired_syserr_log)); 54 dcl 1 wired_syserr_message aligned like wmess based; 55 call add ("wired_syserr_message", addr (p -> wired_syserr_message)); 15 1 /* BEGIN INCLUDE FILE ... syserr_log_dcls.incl.pl1 ... 84-08-17 ... W. Olin Sibert */ 15 2 /* Modified 1984-12-10, BIM: changed to a fast lock, added error count. */ 15 3 15 4 /* The syserr_log_data segment, made reverse-deciduous in >sl1, overlays the 15 5* first page of the LOG partition, and contains control information about 15 6* the other syserr_log segments. */ 15 7 15 8 declare syserr_log_data$ fixed bin external static; 15 9 declare syserr_log_data_ptr pointer; 15 10 15 11 declare 1 syserr_log_data aligned based (syserr_log_data_ptr), 15 12 2 version char (8) unaligned, /* SYSERR_LOG_DATA_V1 */ 15 13 2 old_init_word char (4) unaligned, /* Overlays slog.head.init_word ("INIT") */ 15 14 2 pad003 bit (1) aligned, 15 15 15 16 2 live_log fixed bin, /* Identifier of live log (#1 or #2) */ 15 17 2 pad001 bit (1) aligned, 15 18 2 error_count fixed bin (35), /* errors copying the log */ 15 19 2 swap_time fixed bin (71), /* Time of last log swap; zero if other_log_empty */ 15 20 15 21 2 messages_copied fixed bin (35), /* A meter */ 15 22 2 messages_lost fixed bin (35), /* Messages not copied because logs full */ 15 23 15 24 2 log_start (2) fixed bin, /* Offset of each log segment in the partition */ 15 25 2 log_size (2) fixed bin, /* Number of pages in each log segment */ 15 26 15 27 2 per_bootload, /* Ramaining structure is reinitialized at each boot */ 15 28 3 log_ptr (2) pointer, /* Pointer to the three segments in the partition */ 15 29 15 30 3 log_name (2) char (32) unaligned, /* Current names of log segments (by syserr_seg_manager) */ 15 31 3 log_dir char (168) unaligned, /* Parent directory */ 15 32 15 33 3 lock aligned, 15 34 4 pid bit (36) aligned, /* Standard format wait lock, used when updating log */ 15 35 4 event_id fixed bin (35), 15 36 4 notify_requested 15 37 bit (1) unaligned, 15 38 4 pad bit (35) unaligned, 15 39 3 take_a_fault bit (1) aligned, /* Forces a fault if on, for testing fault recovery */ 15 40 3 test_mode bit (1) aligned, /* Running in outer-ring test mode */ 15 41 15 42 3 copy_disabled bit (1) aligned, /* No more messages being copied into live log */ 15 43 3 drop_severity_5 bit (1) aligned, /* No more severity 5 messages (log is 3/4 full) */ 15 44 3 wakeup_on_printable bit (1) aligned, /* Console recovery: send wakeup for printable message */ 15 45 15 46 3 copy_threshold fixed bin (18), /* How often to copy to outer ring log segments */ 15 47 3 copy_channel fixed bin (71), 15 48 3 copy_process_id bit (36) aligned, 15 49 15 50 2 pad fixed bin (71); /* Anything goes, as long as it's under a page */ 15 51 15 52 declare SYSERR_LOG_DATA_V1 char (8) internal static options (constant) init ("syserr01"); 15 53 15 54 /* END INCLUDE FILE ... syserr_log_dcls.incl.p1l */ 56 57 call add ("syserr_log_data", addr (p -> syserr_log_data)); 58 16 1 /* BEGIN INCLUDE FILE ... tcb.incl.pl1 */ 16 2 16 3 /* Date Last Modified and Reason 16 4* Created 04/19/77 by J. Stern (from part of tty.incl.pl1) 16 5* Modified 2/6/78 by Robert Coren to add input_msg_size 16 6* Modified 4/18/78 by Robert Coren to add framing_chars 16 7* Modified 8/31/78 by J. Nicholls to add scroll mode 16 8* Extracted 9/12/78 by J. Stern from tty_data.incl.pl1 16 9* Modified Oct.1979 by Robert Coren to expand to 36 possible modes 16 10* Modified 1/21/80 by Robert Coren to add no_outp, oddp, & eight_bit modes 16 11* Modified 10/08/80 by Robert Coren to add meters for tty_read & tty_write 16 12* Modified: 10 November 1980 by G. Palter to add can_type and explicit padding 16 13* Modified 12/04/80 by Robert Coren to add saved copy of meters 16 14* Modified 2/24/81 by Robert Coren to add time spent in tty_read and _write 16 15* Modified April 1981 by Robert Coren to add time last dialed up 16 16**/ 16 17 16 18 dcl tcbp ptr; 16 19 16 20 dcl 1 tcb based (tcbp) aligned, /* declaration of per terminal control block */ 16 21 16 22 2 terminal_type char (32) unaligned, /* terminal type name */ 16 23 2 tables, 16 24 3 input_mvtrp bit (18) unaligned, /* rel pointer to current input mvt table */ 16 25 3 output_mvtrp bit (18) unaligned, /* rel pointer to current output mvt table */ 16 26 3 input_tctrp bit (18) unaligned, /* rel pointer to current input tct table */ 16 27 3 output_tctrp bit (18) unaligned, /* rel pointer to current output tct table */ 16 28 3 specialrp bit (18) unaligned, /* rel pointer to current special chars table */ 16 29 3 delayrp bit (18) unaligned, /* rel pointer to current delay table */ 16 30 2 default_tables, 16 31 3 df_input_mvtrp bit (18) unaligned, /* rel pointer to default input mvt table */ 16 32 3 df_output_mvtrp bit (18) unaligned, /* rel pointer to default output mvt table */ 16 33 3 df_input_tctrp bit (18) unaligned, /* rel pointer to default input tct table */ 16 34 3 df_output_tctrp bit (18) unaligned, /* rel pointer to default output tct table */ 16 35 3 df_specialrp bit (18) unaligned, /* rel pointer to default special chars table */ 16 36 3 df_delayrp bit (18) unaligned, /* rel pointer to default delay table */ 16 37 2 special_input_chars unaligned, 16 38 3 erase char (1) unaligned, /* erase character */ 16 39 3 kill char (1) unaligned, /* kill character */ 16 40 2 old_type fixed bin (17) unaligned, /* old terminal type number */ 16 41 16 42 2 modes unaligned, /* modes set by order call */ 16 43 3 edited bit (1) unaligned, /* edited output mode */ 16 44 3 tabm bit (1) unaligned, /* insert output tabs mode */ 16 45 3 canm bit (1) unaligned, /* do canonical form conversion */ 16 46 16 47 3 escm bit (1) unaligned, /* do input escape conversions */ 16 48 3 erklm bit (1) unaligned, /* do erase kill processing */ 16 49 3 rawim bit (1) unaligned, /* don't convert input */ 16 50 16 51 3 rawom bit (1) unaligned, /* don't convert output */ 16 52 3 redm bit (1) unaligned, /* has red-shift function */ 16 53 3 vertsp bit (1) unaligned, /* send real ff's and vt's if on, else escape them */ 16 54 16 55 3 echo_cr bit (1) unaligned, /* echo carriage returns */ 16 56 3 echo_lf bit (1) unaligned, /* echo line feeds */ 16 57 3 echo_tab bit (1) unaligned, /* echo tabs */ 16 58 16 59 3 hndlquit bit (1) unaligned, /* cr's on quit */ 16 60 3 full_duplex bit (1) unaligned, /* xmit and receive simultaneously */ 16 61 3 echoplex bit (1) unaligned, /* echo input characters on terminal */ 16 62 16 63 3 upper_case bit (1) unaligned, /* map lower-case output into upper-case */ 16 64 3 replay bit (1) unaligned, /* replay interrupted input */ 16 65 3 polite bit (1) unaligned, /* output must start at left margin */ 16 66 16 67 3 control bit (1) unaligned, /* accept control characters */ 16 68 3 blk_xfer bit (1) unaligned, /* block transfer or "frame" mode */ 16 69 3 breakall bit (1) unaligned, /* break on all characters */ 16 70 16 71 3 scroll bit (1) unaligned, /* scroll mode for crt terminals */ 16 72 3 prefixnl bit (1) unaligned, /* prefix output iwth nl when input interrupted */ 16 73 3 wake_tbl bit (1) unaligned, /* input wakeups determined by wakeup table */ 16 74 16 75 3 iflow bit (1) unaligned, /* input flow control */ 16 76 3 oflow bit (1) unaligned, /* output flow control */ 16 77 3 no_outp bit (1) unaligned, /* don't generate output parity */ 16 78 16 79 3 eight_bit bit (1) unaligned, /* don't strip input parity */ 16 80 3 odd_parity bit (1) unaligned, /* generate odd parity (if any) */ 16 81 16 82 3 modes_pad bit (7) unaligned, 16 83 16 84 2 id char (4) unaligned, /* terminal id */ 16 85 16 86 2 colmax fixed bin (8) unaligned, /* current maximum number of columns */ 16 87 2 linemax fixed bin (8) unaligned, /* current maximum number of lines/frame */ 16 88 2 wrt_lchar fixed bin (17) unaligned, /* char within last write block */ 16 89 16 90 2 input_msg_size fixed bin, /* maximum input message size in chars */ 16 91 2 framing_chars unaligned, 16 92 3 frame_begin char (1) unaligned, /* frame-begin character */ 16 93 3 frame_end char (1) unaligned, /* frame-end character */ 16 94 2 max_output_block fixed bin (18) unsigned unaligned, /* maximum size of output block in block_acknowledge */ 16 95 16 96 2 input_suspend_seq unaligned, /* sequence for input suspension */ 16 97 3 count fixed bin (9) unsigned, 16 98 3 chars char (3), 16 99 2 input_resume_seq unaligned, /* likewise for input resumption */ 16 100 3 count fixed bin (9) unsigned, 16 101 3 chars char (3), 16 102 16 103 2 output_suspend_etb_seq unaligned, /* sequence for output suspension or end_of_block */ 16 104 3 count fixed bin (9) unsigned, 16 105 3 chars char (3), 16 106 2 output_resume_ack_seq unaligned, /* likewise for resumption or ack */ 16 107 3 count fixed bin (9) unsigned, 16 108 3 chars char (3), 16 109 16 110 2 flags unaligned, /* tty dim flag bits */ 16 111 3 breakall_enabled bit (1) unaligned, /* channel is permitted to use breakall mode */ 16 112 3 dont_count_next bit (1) unaligned, /* next output character is escaped */ 16 113 3 keyboard_locking bit (1) unaligned, /* ON if doing keybd locking for ASCIi line type */ 16 114 3 no_printer_off bit (1) unaligned, /* reject printer_off/printer_on orders */ 16 115 3 break_char_pending bit (1) unaligned, /* break character is in preconverted buffer */ 16 116 3 uproc_attached bit (1) unaligned, /* user process has attached device */ 16 117 3 block_acknowledge bit (1) unaligned, /* block acknowledgement output protocol */ 16 118 3 flags_pad bit (27) unaligned, 16 119 16 120 2 actshift bit (2) unaligned, /* tty shift, 00 none, 01 lower, 10 upper, 11 unknown */ 16 121 16 122 2 cumulative_meters, /* continuously running meters */ 16 123 3 read_calls fixed bin (35), /* number of calls to tty_read */ 16 124 3 write_calls fixed bin (35), /* number of calls to tty_write */ 16 125 3 read_chars fixed bin (35), /* after conversion */ 16 126 3 write_chars fixed bin (35), /* before conversion */ 16 127 3 read_time fixed bin (71), /* total time spent in tty_read */ 16 128 3 write_time fixed bin (71), /* total time spent in tty_write */ 16 129 2 saved_meters like tcb.cumulative_meters, /* meters saved at last dialup */ 16 130 16 131 2 can_type fixed binary (9) unaligned unsigned, /* type of canonicalization to use on this channel */ 16 132 2 pad1 bit (27) unaligned, /* to word boundary */ 16 133 2 time_dialed fixed bin (71); /* clock time of last copy_meters order */ 16 134 16 135 /* END INCLUDE FILE ... tcb.incl.pl1 */ 59 call add ("tcb", addr (p -> tcb)); 60 begin; 61 /* BEGIN INCLUDE FILE ... tcm.incl.pl1 ... used to generate tc_data cds */ 17 2 /* NOTE -- This include file has TWO counterparts in ALM: tc_meters.incl.alm and */ 17 3 /* wcte.incl.alm. They cannot be produced with cif, and must be kept up to date manually. */ 17 4 /* Modified 830914 to replace tty_polling_time with opc_polling_time... -E. A. Ranzenbach */ 17 5 /* Modified 1984.05.21 by M. Pandolf to add tc_suspend_lock */ 17 6 /* Modified 1984.11.26 by Keith Loepere for uid_array. */ 17 7 /* Modified 1984.12.06 by Keith Loepere for page create delaying. */ 17 8 17 9 dcl tcmp ptr; 17 10 17 11 dcl 1 tcm aligned based (tcmp), 17 12 2 tc_suspend_lock like lock, /* when locked, tc is suspended */ 17 13 2 cid2 fixed bin (18), 17 14 2 cid3 fixed bin (18), 17 15 2 cid4 fixed bin (18), 17 16 2 depth_count fixed bin (18), /* depth last process run */ 17 17 2 loadings fixed bin (18), /* number of process loadings */ 17 18 17 19 2 blocks fixed bin (18), /* number of calls to block */ 17 20 2 wakeups fixed bin (18), /* number of calls to wakeup */ 17 21 2 waits fixed bin (18), /* number of calls to wait */ 17 22 2 notifies fixed bin (18), /* number of calls to notify */ 17 23 2 schedulings fixed bin (18), 17 24 2 interactions fixed bin (18), /* number of interactive schedulings */ 17 25 2 avequeue fixed bin (35, 18), /* recent time average of number in queue */ 17 26 2 te_wait fixed bin (18), /* times te called from wait */ 17 27 17 28 2 te_block fixed bin (18), /* times te updated from block */ 17 29 2 te_i_stop fixed bin (18), /* times te updated from i_stop */ 17 30 2 te_pre_empt fixed bin (18), /* times te updated from pre_empt */ 17 31 2 p_interactions fixed bin, /* times interaction bit turned off because of high priority */ 17 32 2 idle fixed bin (71), /* total idle time */ 17 33 2 mp_idle fixed bin (71), /* multi-programming idle */ 17 34 17 35 2 nmp_idle fixed bin (71), /* non-multi-programming idle time */ 17 36 2 zero_idle fixed bin (71), /* zero idle time */ 17 37 2 last_time fixed bin (71), /* last time a process was run */ 17 38 2 loop_locks fixed bin (18), /* times looped on the APT lock */ 17 39 2 loop_lock_time fixed bin (18), /* time looping on the APT lock */ 17 40 2 ave_eligible fixed bin (35, 18), /* average length of eligible queue */ 17 41 2 sort_to_elhead fixed bin (18), /* 0=> no one,1 => int've only, 2 => everybody */ 17 42 2 processor_time fixed bin (71), /* total processor time on system */ 17 43 2 response_time fixed bin (71), /* estimate of response time */ 17 44 2 eligible_time fixed bin (71), /* estimate of eligible time */ 17 45 2 response_count fixed bin, /* count of response meters */ 17 46 2 eligible_count fixed bin, /* count of eligible meters */ 17 47 2 quit_counts (0:5) fixed bin, /* array of buckets indexed by state */ 17 48 2 loading_idle fixed bin (71), /* loading_idle time */ 17 49 2 delta_vcpu fixed bin (71), /* delta virtual CPU time for the system */ 17 50 2 post_purge_switch fixed bin, /* ON if post purging is to be done */ 17 51 2 time_out_severity fixed bin, /* syserr first arg for notify time outs */ 17 52 2 notify_check fixed bin, /* obsolete */ 17 53 2 quit_priority fixed bin, /* factor for scheduler quit response */ 17 54 2 iobm_polling_time fixed bin (71), /* time to poll iobm */ 17 55 2 end_of_time fixed bin (71), /* very large time */ 17 56 2 gp_at_notify fixed bin (18), /* 0 => just do get_idle_processor */ 17 57 2 gp_at_ptlnotify fixed bin (18), /* 0 => just do get_idle_processor */ 17 58 2 int_q_enabled fixed bin (18), /* 0 => no intv q in percent mode */ 17 59 2 fnp_buffer_threshold fixed bin (18), /* if fewer free buffs then stingy alloc strategy */ 17 60 /* set this to >= half n_ttylines/fnp for safety */ 17 61 17 62 /* 100 octal */ 17 63 17 64 2 depths (8) fixed bin (18), /* histogram of run depths */ 17 65 2 tdepths (8) fixed bin (71), /* histogram of times run per depth */ 17 66 2 pfdepth (8) fixed bin (18), /* histogram of page faults per depth */ 17 67 17 68 2 ptl_not_waits fixed bin (18), /* times ptl_wait noticed ptl was unlocked */ 17 69 2 gw_gp_window_count fixed bin (18), /* times window noticed */ 17 70 2 metering_lock fixed bin (18), /* 0=locked, else unlocked */ 17 71 2 ptl_waits fixed bin (18), /* num calls to ptl_wait */ 17 72 2 gp_start_count fixed bin (18), /* to detect gw_gp window lossage */ 17 73 2 gp_done_count fixed bin (18), 17 74 2 nto_check_time fixed bin (71), /* next time at which nto code will be called */ 17 75 2 nto_delta fixed bin (35), /* microsec between nto checks */ 17 76 2 nto_count fixed bin (18), /* number of times nto detected */ 17 77 2 tcpu_scheduling fixed bin (18), /* obsolete */ 17 78 2 nto_event bit (36), /* last event which NTO'd */ 17 79 2 page_notifies fixed bin (18), 17 80 2 notify_nobody_count fixed bin (18), 17 81 2 notify_nobody_event bit (36), 17 82 2 system_type fixed bin, /* used to be tcm.inter */ 17 83 17 84 2 stat (0:15) fixed bin (18), /* num apte's in each state */ 17 85 17 86 /* 200 octal */ 17 87 17 88 2 wait (8), 17 89 3 time fixed bin (18), /* histogram of page fault waiting times versus did */ 17 90 3 count fixed bin (18), 17 91 17 92 2 ready (8), 17 93 3 time fixed bin (18), /* histogram of times in ready queue */ 17 94 3 count fixed bin (18), 17 95 17 96 2 total_pf_time fixed bin (71), /* total time spent from start to end of 17 97* all page faults */ 17 98 2 total_pf_count fixed bin (18), /* total number of page faults metered */ 17 99 2 auto_tune_ws fixed bin (18), /* 0=> dont, atherwise compensate for quantum len */ 17 100 2 ocore_delta fixed bin (18), /* number of pages reserved for int users */ 17 101 2 ws_sum fixed bin (18), /* total of eligible's ws_sizes */ 17 102 2 nonidle_force_count fixed bin (18), /* count of eligibilities forced */ 17 103 2 itt_list_lock bit (36) aligned, /* Lock on ITT free list */ 17 104 2 cpu_pf_time fixed bin (71), /* total cpu time spent handling page faults */ 17 105 2 cpu_pf_count fixed bin (18), /* total count of cpu time meterings */ 17 106 2 special_offsets unaligned, 17 107 3 apt_offset bit (18), 17 108 3 pad bit (18), 17 109 2 getwork_time fixed bin (71), /* total time spent in getwork */ 17 110 2 getwork_count fixed bin (18), /* total times through getwork */ 17 111 2 short_pf_count fixed bin (18), /* number of short page faults */ 17 112 2 interrupt_time fixed bin (71), /* total time spent in interrupt */ 17 113 2 interrupt_count fixed bin (71), /* total number of metered interrupts */ 17 114 2 ocore fixed bin (35, 18), /* fraction of core for int've users */ 17 115 2 pre_empt_flag bit (36) aligned, /* controls whether preempting at done time */ 17 116 2 cumulative_memory_usage fixed binary (71), /* total number of memory usage units */ 17 117 2 processor_time_at_define_wc fixed bin (71), /* value of processor_time when WC's last defined */ 17 118 2 boost_priority fixed bin, /* number of times priority process given high priority */ 17 119 2 lost_priority fixed bin, /* number of times priority process lost eligibility */ 17 120 2 total_clock_lag fixed bin (71), /* sum of all simulated clock delays */ 17 121 2 clock_simulations fixed bin, /* number of times alarm clock interrupt was simulated */ 17 122 2 max_clock_lag fixed bin, /* largest simulated alarm clock delay */ 17 123 17 124 /* 300 octal */ 17 125 17 126 2 pdscopyl fixed bin (18), /* amount of pds to copy for new process */ 17 127 2 max_hproc_segno fixed bin, /* largest allowed hardcore segment number */ 17 128 2 prds_length fixed bin (18), /* length of PRDS */ 17 129 2 pds_length fixed bin (18), /* length of PDS */ 17 130 2 lock fixed bin (18), /* process id generator lock */ 17 131 2 id bit (36) aligned, /* next uid to be added to uid_array */ 17 132 2 system_shutdown fixed bin (18), 17 133 2 working_set_factor fixed bin (35, 18), /* working set factor */ 17 134 17 135 2 ncpu fixed bin (18), /* number of processors currently being used */ 17 136 2 last_eligible bit (18), /* last process to gain eligibility */ 17 137 2 apt_lock fixed bin (35), /* + write; 0 hidden; -1 unlocked; -(N+1) Nreaders */ 17 138 2 apt_size fixed bin (18), /* number of APT entries */ 17 139 2 realtime_q aligned like based_sentinel, /* processes with realtime deadlines */ 17 140 2 aht_size fixed bin (18), /* APT hash table size */ 17 141 2 itt_size fixed bin (18), /* number of ITT entries */ 17 142 17 143 2 dst_size fixed bin (18), /* number of allowed DST entries */ 17 144 2 itt_free_list bit (18), /* pointer to ITT free list */ 17 145 2 used_itt fixed bin (18), /* number of used ITT entries */ 17 146 2 initializer_id bit (36) aligned, /* process id of initializer */ 17 147 2 n_eligible fixed bin (18), /* number of processes eligible */ 17 148 2 max_eligible fixed bin (30), /* maximum allowed number of eligible processes */ 17 149 2 wait_enable fixed bin (18), /* turned on when waiting mechanism works */ 17 150 2 apt_entry_size fixed bin (18), /* size of an APT entry */ 17 151 17 152 2 interactive_q aligned like based_sentinel, /* head of interactive queue */ 17 153 2 dst_ptr ptr, /* pointer to device signal table */ 17 154 2 old_user ptr, /* last process to run (apt ptr ) */ 17 155 2 initialize_time fixed bin (71), /* time of initialization */ 17 156 17 157 2 init_event fixed bin (18), /* wait event during initialization */ 17 158 2 oldt fixed bin (18), /* timer reading from previous process */ 17 159 2 newt fixed bin (18), /* timer setting for new process */ 17 160 2 tefirst fixed bin (30), /* first eligible time */ 17 161 2 telast fixed bin (30), /* last eligible time */ 17 162 2 timax fixed bin (35), /* time in queue for lowest level */ 17 163 2 empty_q bit (18), /* thread of empty APT entries */ 17 164 2 working_set_addend fixed bin (18), /* additive working set parameter */ 17 165 2 ready_q_head bit (0) aligned, /* for added segdef */ 17 166 2 eligible_q_head aligned like based_sentinel, /* head of eligible queue */ 17 167 2 ready_q_tail bit (0) aligned, /* for added segdef */ 17 168 2 eligible_q_tail aligned like based_sentinel, /* tail of eligible queue */ 17 169 2 idle_tail aligned like based_sentinel, /* tail of idle list */ 17 170 2 min_eligible fixed bin (30), 17 171 2 alarm_timer_list bit (18) aligned, /* rel pointer to apt entry for next alarm timer */ 17 172 2 guaranteed_elig_inc fixed bin (35), /* amount of guaranteed eligibility time in microsecs. */ 17 173 2 priority_sched_inc fixed bin (35), /* amount of block time before process is given priority */ 17 174 2 next_alarm_time fixed bin (71), /* clock time for next alarm timer */ 17 175 2 priority_sched_time fixed bin (71), /* time for priority process to be given priority */ 17 176 2 opc_polling_time fixed bin (71), /* time to poll console DIM */ 17 177 2 disk_polling_time fixed bin (71), /* time to poll disk DIM */ 17 178 2 tape_polling_time fixed bin (71), /* time to poll tape DIM */ 17 179 2 imp_polling_time fixed bin (71), /* time to poll imp */ 17 180 2 imp_polling_lock fixed bin (18), /* do not poll if lock set */ 17 181 2 max_channels fixed bin (18), /* num special channels per process */ 17 182 17 183 /* 400 octal */ 17 184 17 185 2 system_virtual_time fixed bin (71), /* non-idle virtual time */ 17 186 2 credit_bank fixed bin (71), /* credits not yet passed out */ 17 187 2 min_wct_index bit (18) aligned, /* offset of initializer work class table entry */ 17 188 2 max_wct_index bit (18) aligned, /* offset of highest wcte currently defined */ 17 189 2 delta_vt fixed bin (71), /* temp used by pxss.compute_virtual_clocks */ 17 190 2 gross_idle_time fixed bin (71), /* idle time_used_clock */ 17 191 2 credits_per_scatter fixed bin (35), /* total number of credits awarded at once */ 17 192 2 best_credit_value fixed bin (18), /* temp for pxss.find_next_eligible */ 17 193 2 define_wc_time fixed bin (71), /* clock time when workclasses last degined */ 17 194 2 max_batch_elig fixed bin (35), 17 195 2 num_batch_elig fixed bin (35), 17 196 2 deadline_mode fixed bin (35), /* 0=> ti sorts, else deadline sorts */ 17 197 2 credits_scattered fixed bin (35), 17 198 2 max_max_eligible fixed bin (30), /* Maximum of maxe */ 17 199 2 max_stopped_stack_0 fixed bin (35), /* Maximum stack_0's suspended by stopped procs */ 17 200 2 stopped_stack_0 fixed bin (35), /* Number stack_0's suspended by stopped procs */ 17 201 2 mos_polling_interval fixed bin (35), /* for heals */ 17 202 2 mos_polling_time fixed bin (71), /* for heals */ 17 203 2 vcpu_response_bounds (VCPU_RESPONSE_BOUNDS) fixed bin (35), 17 204 2 vcpu_response_bounds_size fixed bin (35), 17 205 2 meter_response_time_calls fixed bin (35), 17 206 2 meter_response_time_invalid fixed bin (35), 17 207 2 meter_response_time_overhead fixed bin (71), 17 208 2 init_wait_time fixed bin (71), /* used by wait/notify during initialization */ 17 209 2 init_wait_timeout fixed bin (71), /* notify-timeout interval during initialization */ 17 210 2 init_timeout_severity fixed bin, /* notify-timeout severity during initialization */ 17 211 2 init_timeout_recurse fixed bin, /* count of NTO recursion during initialization */ 17 212 2 max_timer_register fixed bin (71), /* max cpu burst = # cpus x pre_empt_sample_time */ 17 213 2 pre_empt_sample_time fixed bin (35), /* tuning parameter - max time between samples */ 17 214 2 governing_credit_bank fixed bin (35), /* used for limiting eligibility on governed work classes*/ 17 215 2 process_initial_quantum fixed bin (35), /* eligibility quantum first eligibility */ 17 216 2 default_procs_required bit (8) aligned, /* default mask of CPUs required */ 17 217 2 work_class_idle fixed bin (71), /* idle time due to work class restrictions */ 17 218 17 219 /* Tuning Parameters for Stack Truncation */ 17 220 17 221 2 stk_truncate bit (1) aligned, 17 222 2 stk_truncate_always bit (1) aligned, 17 223 2 stk_trunc_avg_f1 fixed bin (35, 18), 17 224 2 stk_trunc_avg_f2 fixed bin (35, 18), 17 225 2 lock_error_severity fixed bin, /* syserr severity */ 17 226 17 227 2 gv_integration fixed bin (35), /* Integration interval for governing */ 17 228 2 gv_integration_set bit (1) aligned, /* ON => gv_integration set by ctp */ 17 229 2 pauses fixed bin (35), /* Calls to pause (reschedule) */ 17 230 2 volmap_polling_time fixed bin (71), 17 231 2 next_ring0_timer fixed bin (71), /* next time that ring 0 timer goes off */ 17 232 2 realtime_io_priority_switch fixed bin, /* 0 => give I/O interrupt wakeups realtime priotiry */ 17 233 2 realtime_io_deadline fixed bin (35), /* Delta to clock for I/O realtime deadline */ 17 234 2 realtime_io_quantum fixed bin (35), /* Quantum for I/O realtime burst */ 17 235 2 realtime_priorities fixed bin (35), /* Count for metering */ 17 236 2 relinquishes fixed bin (35), /* Calls to relinquish_priority */ 17 237 2 abort_ips_mask bit (36) aligned, /* IPS mask for tc_util$check_abort */ 17 238 17 239 /* 500 octal */ 17 240 17 241 2 uid_array (0:15) bit (36) aligned, /* array from which a uid is chosen (randomly) */ 17 242 2 pad5 (176) fixed bin (35), /* room for expansion compatibly */ 17 243 17 244 /* 1000 octal */ 17 245 17 246 2 pad7 (64) fixed bin (35), 17 247 17 248 /* 1100 octal */ 17 249 17 250 2 pad6 (8) fixed bin (35), 17 251 2 work_class_table aligned, /* array of per workclass information */ 17 252 3 wcte (0:16) aligned like wct_entry, 17 253 17 254 /* 3000 octal */ 17 255 17 256 2 apt fixed bin; 17 257 17 258 dcl wctep ptr; 17 259 17 260 dcl 1 wct_entry aligned based (wctep), /* Work class entry */ 17 261 2 thread unaligned, /* Ready list */ 17 262 3 fp bit (18), /* Head of ready list */ 17 263 3 bp bit (18), /* Tail of ready list */ 17 264 2 flags unaligned, 17 265 3 mnbz bit (1), /* Sentinel bit must not be zero. */ 17 266 3 defined bit (1), 17 267 3 io_priority bit (1), 17 268 3 governed bit (1), 17 269 3 interactive_q bit (1), 17 270 3 pad bit (31), 17 271 2 credits fixed bin (35), /* Current worthiness of group */ 17 272 2 minf fixed bin (35), /* min fraction of cpu */ 17 273 2 pin_weight fixed bin (35), /* number of cycles to pin pages */ 17 274 2 eligibilities fixed bin (35), /* Count of eligibilities awarded */ 17 275 2 cpu_sum fixed bin (71), /* CPU used by members */ 17 276 2 resp1 fixed bin (71), 17 277 2 resp2 fixed bin (71), 17 278 2 quantum1 fixed bin (35), 17 279 2 quantum2 fixed bin (35), 17 280 2 rmeter1 fixed bin (71), 17 281 2 rmeter2 fixed bin (71), 17 282 2 rcount1 fixed bin (35), 17 283 2 rcount2 fixed bin (35), 17 284 2 realtime fixed bin (35), 17 285 2 purging fixed bin (35), 17 286 2 maxel fixed bin (35), 17 287 2 nel fixed bin (35), 17 288 2 number_thinks fixed bin (35), /* number times process entered "think" state */ 17 289 2 number_queues fixed bin (35), /* number times process entered "queued" state */ 17 290 2 total_think_time fixed bin (71), 17 291 2 total_queue_time fixed bin (71), 17 292 17 293 /* The next three arrays correspond to the array vcpu_response_bounds */ 17 294 17 295 2 number_processing (VCPU_RESPONSE_BOUNDS+1) fixed bin (35), /* number times entered "processing" state */ 17 296 2 total_processing_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 17 297 2 total_vcpu_time (VCPU_RESPONSE_BOUNDS+1) fixed bin (71), 17 298 2 maxf fixed bin (35), /* maximum fraction of cpu time */ 17 299 2 governing_credits fixed bin (35), /* for limiting cpu resources */ 17 300 2 pad1 (4) fixed bin (35); 17 301 17 302 17 303 dcl 1 based_sentinel aligned based, /* format of pxss-style sentinel */ 17 304 2 fp bit (18) unal, 17 305 2 bp bit (18) unal, 17 306 2 sentinel bit (36) aligned; 17 307 17 308 dcl VCPU_RESPONSE_BOUNDS fixed bin init (3) int static options (constant); 17 309 17 310 /* END INCLUDE FILE tcm.incl.pl1 */ 61 62 /* Begin include file hc_lock.incl.pl1 BIM 2/82 */ 18 2 /* Replaced by hc_fast_lock.incl.pl1 RSC 11/84 because name of structure 18 3* encourages name conflicts. 18 4* USE HC_FAST_LOCK INSTEAD! 18 5**/ 18 6 18 7 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 18 8 18 9 /* format: style3 */ 18 10 18 11 declare lock_ptr pointer; 18 12 declare 1 lock aligned based (lock_ptr), 18 13 2 pid bit (36) aligned, /* holder of lock */ 18 14 2 event bit (36) aligned, /* event associated with lock */ 18 15 2 flags aligned, 18 16 3 notify_sw bit (1) unaligned, 18 17 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 18 18 18 19 /* End include file hc_lock.incl.pl1 */ 62 63 dcl 1 tc_data aligned like tcm based; 64 call add ("tc_data", addr (p -> tc_data)); 65 call add ("tcm", addr (p -> tcm)); 66 call add ("wct_entry", addr (p -> wct_entry)); 67 end; 68 begin; /* because tty_buf includes hc_fast_lock */ 69 /* BEGIN INCLUDE FILE ... tty_buf.incl.pl1 */ 19 2 19 3 /* Date Last Modified and Reason 19 4* Created 04/19/77 by J. Stern (from part of tty.incl.pl1) 19 5* Modified January 1978 by Robert Coren and Larry Johnson for variable-size buffers 19 6* Modified 2/6/78 by Robert Coren to make circular_queue size settable 19 7* Modified Aug 78 by J. Nicholls to move the buffer block format to a file of its own 19 8* and wtcb to its own plus other modification for ring 0 multiplexing, tty_buffer_block.incl.pl1 19 9* Modified 7/17/79 by B. Greenberg for echo negotiation meters. 19 10* Modified November 1979 by C. Hornig for MCS tracing. 19 11* Modified December 1979 by Robert Coren to add FNP channel lock meter 19 12* Modified February 1980 by Robert Coren to remove all references to circular buffer 19 13* Modified March 1980 by Robert Coren to reorganize metering information 19 14* Modified December 1980 by Robert Coren to add FNP-specific events 19 15* Modified 24 March 1982, W. Olin Sibert, to add mcs_timer support, recoverable_error_severity 19 16* Modified November 1984 by Robert Coren to add tty_area_lock 19 17**/ 19 18 19 19 dcl ttybp ptr, 19 20 tty_buf$ ext static, /* tty buffer segment */ 19 21 tty_ev fixed bin int static options (constant) init (57), /* event used for wait and notify */ 19 22 abs_buf_limit fixed bin (18) static options (constant) init (64), /* minimum number of words we will leave free */ 19 23 input_bpart fixed bin (18) static options (constant) init (2), /* fraction of bleft we will allow for input */ 19 24 output_bpart fixed bin (18) static options (constant) init (4); /* fraction of bleft we will allow for output */ 19 25 19 26 19 27 dcl qblock_size fixed bin int static options (constant) init (16); /* size in words of a delay queue block */ 19 28 dcl bsizec fixed bin int static options (constant) init (60); /* number of characters in smallest buffer */ 19 29 dcl buf_per_second fixed bin int static options (constant) init (10); /* for figuring out max. buffer size based on speed */ 19 30 19 31 dcl FNP_DUMP_PATCH_EVENT fixed bin int static options (constant) init (58); 19 32 dcl FNP_METER_EVENT fixed bin int static options (constant) init (59); 19 33 dcl TTY_AREA_LOCK_EVENT bit (36) aligned int static options (constant) init ("74"b3); 19 34 19 35 dcl 1 tty_buf aligned based (ttybp), /* declaration of tty buffer seg */ 19 36 2 slock bit (36), /* per system lock */ 19 37 2 absorig fixed bin (24), /* abs address of this seg */ 19 38 2 borig bit (18), /* index of start of buffer area */ 19 39 2 bleft fixed bin (18), /* words left in pool */ 19 40 2 free bit (18), /* pointer to start of free pool */ 19 41 2 fnp_config_flags (8) bit (1) unal, /* flag(i) ON if fnp(i) configured */ 19 42 2 padb1 bit (28) unaligned, 19 43 2 lct_ptr ptr, /* pointer to logical channel table */ 19 44 19 45 2 nrawread fixed bin (35), /* number of raw chars input, total */ 19 46 2 nrawwrite fixed bin (35), /* number of raw characters output */ 19 47 2 ninchars fixed bin (35), /* total input chars after conversion */ 19 48 2 noutchars fixed bin (35), /* total output chars before conversion */ 19 49 2 readblocked fixed bin (35), /* number of times go input blocked */ 19 50 2 nblocked fixed bin (35), /* number of times process output blocked */ 19 51 2 minbuf fixed bin (18), /* min output buffer size */ 19 52 2 totbuf fixed bin (35), /* divide by nblocked to get ave buffer size */ 19 53 19 54 2 preconverted fixed bin (35), /* number of converted chars held in tty_buf */ 19 55 2 input_restart fixed bin, /* number of times tty_read had to start over */ 19 56 2 output_restart fixed bin, /* number of times tty_write has had to start over */ 19 57 2 output_buffer_overflow fixed bin, /* number of times tty_write has run out of buffers */ 19 58 2 read_time fixed bin (71), /* total time spent in tty_read */ 19 59 2 write_time fixed bin (71), /* total time spent in tty_write */ 19 60 19 61 2 read_calls fixed bin (35), /* number of calls to tty_read */ 19 62 2 write_calls fixed bin (35), /* number of calls to tty_write */ 19 63 2 bfx fixed bin, /* used in calls to iobm */ 19 64 2 nquits fixed bin (35), /* number of quits */ 19 65 2 space_needed_data, 19 66 3 space_needed bit (1) unal, /* space_needed bit on in at least 1 lcte */ 19 67 3 space_needed_calls fixed bin (34) unal, /* meter of uses of this facility */ 19 68 2 space_lock_count fixed bin (35), /* count of times tty_buf.slock locked */ 19 69 2 space_lock_wait_count fixed bin (35), /* count of times necessary to loop to lock it */ 19 70 2 space_lock_wait_time fixed bin (35), /* total time looped trying to lock it */ 19 71 19 72 2 alloc_calls fixed bin (35), /* total number of allocations performed in tty_buf */ 19 73 2 free_calls fixed bin (35), /* total number of freeings in tty_buf */ 19 74 2 alloc_time fixed bin (35), /* time spent masked in tty_space_man$get entries */ 19 75 2 free_time fixed bin (35), /* time spent masked in tty_space_man$free entries */ 19 76 2 total_alloc_steps fixed bin (35), /* number of steps thru free chain while doing above */ 19 77 2 alloc_failures fixed bin (35), /* number of unsuccessful attempts to allocate space */ 19 78 2 cumulative_input_space fixed bin (71), /* cumulative amount of space allocated for input */ 19 79 19 80 2 cumulative_output_space fixed bin (71), /* cumulative amount of space allocated for output */ 19 81 2 cumulative_control_space fixed bin (71), /* cumulative amount of space allocated by tty_space_man$get_space */ 19 82 2 input_space_updates fixed bin (35), /* number of increments to cumulative_input_space */ 19 83 2 output_space_updates fixed bin (35), /* number of increments to cumulative_output_space */ 19 84 2 control_space_updates fixed bin (35), /* number of increments to cumulative_control_space */ 19 85 2 minimum_free_space fixed bin (18), /* smallest amount of free space ever available */ 19 86 19 87 2 current_input_space fixed bin (18), /* amount of space currently allocated for input */ 19 88 2 current_output_space fixed bin (18), /* amount of space currently allocated for output */ 19 89 2 current_control_space fixed bin (18), /* amount of space currently allocated by get_space */ 19 90 2 tty_lock_calls fixed bin (35), /* number of calls to tty_lock$lock entries */ 19 91 2 found_channel_locked fixed bin (35), /* number of times tty_lock found channel already locked */ 19 92 2 max_wait_time fixed bin (35), /* longest time waited for any channel lock */ 19 93 2 total_wait_time fixed bin (71), /* total amount of time spent waiting for channel locks */ 19 94 19 95 2 echo_neg_time fixed bin (71), /* cumulative time spent doing echo negotiation */ 19 96 2 echo_neg_interrupts fixed bin (35), /* Echo-negotiated shipments */ 19 97 2 echo_neg_r0_chars fixed bin (35), /* Chars echoed by ring 0 */ 19 98 2 echo_neg_mux_chars fixed bin (35), /* Chars echoed by mux */ 19 99 2 echo_neg_sndopt_restarts fixed bin (35), /* Echo reinits */ 19 100 2 echo_neg_mux_nonecho fixed bin (35), 19 101 2 echo_neg_entries fixed bin (35), /* Entries into negotiate */ 19 102 19 103 2 echo_neg_mux_inhibit bit (1) aligned, /* For testing */ 19 104 2 n_queued_interrupts fixed bin (35), /* number of interrupts queued by tty_lock */ 19 105 2 trace unaligned, /* tracing information */ 19 106 3 flags, 19 107 4 enable bit, /* global tracing control */ 19 108 4 default_mode bit, /* whether to trace channels by default */ 19 109 4 read bit, /* read */ 19 110 4 write bit, /* write */ 19 111 4 data bit, /* buffers on reads and writes */ 19 112 4 control bit, /* control, priv_control, and hpriv_control */ 19 113 4 modes bit, /* (get set check)_modes */ 19 114 4 interrupt bit, /* interrupt, interrupt_later */ 19 115 4 init bit, /* init_multiplexer, terminate_multiplexer */ 19 116 4 start bit, /* start, stop */ 19 117 4 shutdown bit, /* shutdown */ 19 118 4 space_man bit, /* tty_space_man$* */ 19 119 4 pad_flags bit (6), 19 120 3 data_offset bit (18), /* offset of tracing data */ 19 121 19 122 2 recoverable_error_severity fixed bin, /* Syserr severity for recoverable MCS errors */ 19 123 19 124 2 timer_lock bit (36) aligned, /* Lock owned by mcs_timer */ 19 125 2 next_timer_offset bit (18) aligned, /* Offset of next timer to come due */ 19 126 2 timer_count fixed bin, /* Number of timers outstanding */ 19 127 2 timer_process bit (36) aligned, /* Who is doing timers? */ 19 128 19 129 2 timer_ev_chn fixed bin (71), /* How get get him */ 19 130 2 timer_lock_wait_time fixed bin (71), /* CPU time spent spinning on timer lock */ 19 131 19 132 2 timer_lock_count fixed bin (35), /* Number of times timer lock locked */ 19 133 2 timer_lock_wait_count fixed bin (35), /* Number of times imer lock waited on */ 19 134 2 timer_call_time fixed bin (71), /* CPU time spent in call side timer operations */ 19 135 19 136 2 timer_polling_time fixed bin (71), /* CPU time spent polling (including channel_manager) */ 19 137 2 timer_set_calls fixed bin (35), /* Number of calls to mcs_timer$set, set_wired */ 19 138 2 timer_reset_calls fixed bin (35), /* Number of calls to mcs_timer$reset, reset_wired */ 19 139 19 140 2 timer_change_calls fixed bin (35), /* Number of calls to mcs_timer$change, change_wired */ 19 141 2 timer_poll_calls fixed bin (35), /* Number of calls to mcs_timer$poll */ 19 142 2 timer_error_calls fixed bin (35), /* Number of mcs_timer calls ending with recoverable errors */ 19 143 2 timer_duplicate_pollings fixed bin (35), /* Number of timer polling found in progress on other CPU */ 19 144 19 145 2 tty_area_lock like hc_fast_lock, /* to prevent contention in allocating/freeing in tty_area */ 19 146 19 147 2 pad2 (13) fixed bin (35), 19 148 19 149 2 free_space fixed bin; /* start of free space region */ 19 150 19 151 20 1 /* BEGIN INCLUDE FILE...hc_fast_lock.incl.pl1 */ 20 2 20 3 /* Created November 1984 by Robert Coren to replace hc_lock.incl.pl1 */ 20 4 20 5 /* Lock format suitable for use with lock$lock_fast, unlock_fast */ 20 6 20 7 /* format: style3 */ 20 8 20 9 declare lock_ptr pointer; 20 10 declare 1 hc_fast_lock aligned based (lock_ptr), 20 11 2 pid bit (36) aligned, /* holder of lock */ 20 12 2 event bit (36) aligned, /* event associated with lock */ 20 13 2 flags aligned, 20 14 3 notify_sw bit (1) unaligned, 20 15 3 pad bit (35) unaligned; /* certain locks use this pad, like dirs */ 20 16 20 17 /* END INCLUDE FILE...hc_fast_lock.incl.pl1 */ 19 152 19 153 19 154 /* END INCLUDE FILE ... tty_buf.incl.pl1 */ 69 70 call add ("tty_buf", addr (p -> tty_buf)); 71 end; 72 begin; /* because blockp is declared already somewhere else */ 73 /* BEGIN INCLUDE FILE ... tty_buffer_block.incl.pl1 */ 21 2 21 3 21 4 21 5 /****^ HISTORY COMMENTS: 21 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 21 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 21 8* Add data needed for the uncp multiplexer (DSA gateway) interface 21 9* implementation. 21 10* END HISTORY COMMENTS */ 21 11 21 12 21 13 /* 21 14* Separated from tty_buf.incl.pl1 aug 78 by J. Nicholls 21 15* Modified May 1979 by Larry Johnson to add max_buffer_tally array and to use unsigned variables. 21 16* Reported in February 1982 the modifications to add the "turn" bit in flags. 21 17**/ 21 18 21 19 dcl blockp ptr; /* pointer which block entry is based on */ 21 20 dcl free_blockp ptr; /* pointer to head of free space chain */ 21 21 21 22 21 23 dcl 1 free_block aligned based (free_blockp), /* format of start of free block */ 21 24 2 next bit (18), /* foward pointer to next free block */ 21 25 2 size fixed bin; /* number of words in this block */ 21 26 21 27 21 28 dcl 1 buffer based (blockp) aligned, /* buffer definition */ 21 29 2 next fixed bin (18) unal uns, /* addr of next buffer */ 21 30 2 flags unaligned, 21 31 3 end_of_page bit (1) unaligned, /* buffer contains end of page */ 21 32 3 converted bit (1) unaligned, /* buffer contains converted input */ 21 33 3 break bit (1) unaligned, /* buffer contains break character */ 21 34 3 mark bit (1) unaligned, /* buffer contains first character after "mark" */ 21 35 3 turn bit (1) unaligned, /* ON if the turn must be sent */ 21 36 3 pad bit (1) unaligned, 21 37 2 size_code fixed bin (3) unal uns, /* (nwords/16) - 1 */ 21 38 2 tally fixed bin (9) unal uns, /* number of characters in buffer */ 21 39 2 chars (0:59) char (1) unaligned; /* room for 60 data characters */ 21 40 21 41 /* the following array, if indexed by buffer.size_code will give maximum number of characters permitted in that buffer */ 21 42 21 43 dcl max_buffer_tally (0:7) fixed bin int static options (constant) init (60, 124, 188, 252, 316, 380, 444, 508); 21 44 21 45 /* END INCLUDE FILE ... tty_buffer_block.incl.pl1 */ 73 74 dcl 1 tty_buffer aligned like buffer based; 75 call add ("tty_buffer", addr (p -> tty_buffer)); 76 dcl 1 free_tty_buffer aligned like free_block based; 77 call add ("free_tty_buffer", addr (p -> free_tty_buffer)); 78 end; 79 22 1 /* BEGIN INCLUDE FILE ... tty_tables.incl.pl1 */ 22 2 22 3 /* Created 3/14/77 by J. Stern */ 22 4 22 5 22 6 dcl tty_tables$ ext static; /* table storage segment */ 22 7 22 8 dcl 1 tty_tables_hdr aligned based (ttytp), /* header of tty_tables segment */ 22 9 2 lock bit (36) aligned, /* lock for modifications */ 22 10 2 event fixed bin (35), /* event to wait for if locked */ 22 11 2 notify_reqd bit (1) aligned, /* if ON, notify requested after unlocking */ 22 12 2 table_area_size fixed bin (18), /* size of table allocation area */ 22 13 2 per_type_data (6), /* data kept on per table type basis */ 22 14 3 first_table bit (18) aligned, /* rel ptr to first table in list */ 22 15 3 count fixed bin, /* count of tables in list */ 22 16 2 table_area area (tty_tables_hdr.table_area_size); /* table allocation area */ 22 17 22 18 dcl ttytp ptr; /* ptr to tty_tables_hdr */ 22 19 22 20 dcl 1 table_descriptor aligned based (tdp), /* entry in threaded list of tables */ 22 21 2 pattern bit (36) aligned, /* = (18) "10"b */ 22 22 2 type fixed bin, /* table type */ 22 23 2 next_table bit (18) aligned, /* rel ptr to next table in list */ 22 24 2 prev_table bit (18) aligned, /* rel ptr to previous table in list */ 22 25 2 ref_count fixed bin, /* reference count (times added minus times deleted) */ 22 26 2 len fixed bin, /* table length in bits */ 22 27 2 table_contents bit (table_alloc_len refer (table_descriptor.len)); 22 28 22 29 dcl tdp ptr; /* ptr to table_descriptor */ 22 30 dcl table_alloc_len fixed bin; /* table length used to allocate new table_descriptor */ 22 31 22 32 22 33 /* END INCLUDE FILE ... tty_tables.incl.pl1 */ 80 81 call add ("tty_tables_hdr", addr (p -> tty_tables_hdr)); 82 23 1 /* BEGIN include file unpaged_page_tables.incl.pl1 */ 23 2 23 3 /* This include file describes the segments unpaged_page_tables and 23 4*int_unpaged_page_tables. These segments contain the page tables for 23 5*segments that are paged and wired, those segments previously called 23 6*unpaged. 23 7* 23 8*Written September 15, 1983 by Keith Loepere. */ 23 9 23 10 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 23 11 23 12 dcl upt_ptr ptr; 23 13 dcl 1 upt aligned based (upt_ptr), 23 14 2 sst_absloc fixed bin (26), /* for dump analyzers */ 23 15 2 sst_last_loc fixed bin (26), 23 16 2 upt_absloc fixed bin (26), 23 17 2 upt_last_loc fixed bin (26), 23 18 2 iupt_absloc fixed bin (26), 23 19 2 iupt_last_loc fixed bin (26), 23 20 23 21 2 current_length fixed bin, /* number of words currently used */ 23 22 2 max_length fixed bin, /* max number of words in memory allocated */ 23 23 2 first_entry like upt_entry; 23 24 23 25 dcl upt_entry_ptr ptr; 23 26 dcl 1 upt_entry aligned based (upt_entry_ptr), 23 27 2 size fixed bin, /* number of page table words allocated */ 23 28 2 segno fixed bin, /* of hardcore segment */ 23 29 2 ptws (0 refer (upt_entry.size)) bit (36) aligned; 23 30 23 31 /* END include file unpaged_page_tables.incl.pl1 */ 83 84 dcl 1 iupt aligned like upt based; 85 dcl 1 iupte aligned like upt_entry based; 86 call add ("upt", addr (p -> upt)); 87 call add ("upt_entry", addr (p -> upt_entry)); 88 call add ("iupte", addr (p -> iupte)); 89 call add ("iupt", addr (p -> iupt)); 90 24 1 /* BEGIN INCLUDE FILE ... vol_map.incl.pl1 */ 24 2 24 3 dcl vol_mapp ptr; 24 4 24 5 dcl 1 vol_map based (vol_mapp) aligned, 24 6 24 7 2 n_rec fixed bin(17), /* number of records represented in the map */ 24 8 2 base_add fixed bin(17), /* record number for first bit in bit map */ 24 9 2 n_free_rec fixed bin(17), /* number of free records */ 24 10 2 bit_map_n_words fixed bin(17), /* number of words of the bit map */ 24 11 2 pad (60) bit(36), /* pad to 64 words */ 24 12 2 bit_map (3*1024 - 64) bit(36) ; /* bit map - the entire vol map occupies 3 records */ 24 13 24 14 /* END INCLUDE ... vol_map */ 91 call add ("vol_map", addr (p -> vol_map)); 25 1 /* BEGIN INCLUDE FILE ... volume_registration.incl.pl1 */ 25 2 25 3 /* Modified 07/27/84 by EJ Sharpe to make pv_registration a 25 4* separate structure. Also renamed "hvid" to "lvid" 25 5* and "hvname" to "lvname". 25 6* Modified 84-11-06 by EJ Sharpe to combine (max min)_access_class into 25 7* access_class_range (2) bit (72) and add version constant 25 8* Also changed version constant from 1 to 2. 25 9**/ 25 10 25 11 dcl vrp ptr; 25 12 dcl pvrp ptr; 25 13 25 14 dcl 1 volume_registration aligned based (vrp), 25 15 2 version fixed bin, /* Version number of this dcl */ 25 16 2 lvid bit (36), /* Logical volume unique ID */ 25 17 2 lvname char (32), /* Logical volume name */ 25 18 2 access_class_range (2) bit (72), /* Range of authorizations that may use the vol */ 25 19 2 volume_owner char (32), /* Person.Project */ 25 20 2 acs_path char (168), /* Path name of ACS */ 25 21 2 flags, 25 22 3 public bit (1) unal, /* TRUE if public volume */ 25 23 3 pad bit (35) unal, 25 24 2 npv fixed bin, /* Number of physical volumes */ 25 25 2 pv (0 refer (volume_registration.npv)) like pv_registration; 25 26 25 27 25 28 dcl 1 pv_registration aligned based (pvrp), 25 29 2 pvid bit (36), /* Physical volume unique ID */ 25 30 2 model fixed bin, /* Model number */ 25 31 2 pvname char (32), /* Physical volume name */ 25 32 2 location char (32), /* Where to find volume */ 25 33 2 mfg_serial char (32), /* Manufacturer's serial no, etc */ 25 34 2 date_registered fixed bin (71), /* Date and time registered */ 25 35 2 password bit (2); 25 36 25 37 dcl Volume_Registration_Version_2 fixed bin init (2) static options (constant); 25 38 25 39 /* END INCLUDE FILE ... volume_registration.incl.pl1 */ 92 93 call add ("volume_registration", addr (p -> volume_registration)); 26 1 /* START OF: vtoc_buffer.incl.pl1 November 1982 * * * * * * * * * * * * * * * * */ 26 2 26 3 26 4 26 5 /****^ HISTORY COMMENTS: 26 6* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 26 7* audit(86-05-27,GDixon), install(86-07-18,MR12.0-1098): 26 8* Add the software read-alter-rewrite when needed for devices that do only 26 9* 512 word IO. 26 10* END HISTORY COMMENTS */ 26 11 26 12 26 13 dcl vtoc_buffer_seg$ ext; 26 14 26 15 dcl vtoc_buffer_segp ptr; 26 16 dcl vtoc_buf_descp ptr; 26 17 dcl vtoc_bufp ptr; 26 18 dcl vtoc_buf_desc_arrayp ptr; 26 19 dcl vtoc_buf_arrayp ptr; 26 20 26 21 dcl vtoc_buf_n_buffers fixed bin; 26 22 dcl vtoc_buf_n_buckets fixed bin; 26 23 26 24 26 25 dcl 1 vtoc_buffer aligned based (vtoc_buffer_segp), 26 26 26 27 2 lock, /* Global lock for VTOC buffers */ 26 28 3 processid bit (36) aligned, /* Owner */ 26 29 3 wait_event bit (36) aligned, /* For lock */ 26 30 3 notify_sw bit (1) aligned, /* ON => notify on unlock */ 26 31 26 32 2 n_bufs fixed bin, /* Number of full VTOCE buffers */ 26 33 2 n_hash_buckets fixed bin, /* Number of hash table buckets */ 26 34 2 hash_mask bit (36) aligned, /* Mask for hash algorithm */ 26 35 2 abs_addr fixed bin (24), /* Absolute address of vtoc_buffer_seg */ 26 36 2 wait_event_constant fixed bin (36) uns unal, /* Constant to add to part index to form wait event */ 26 37 2 buf_desc_offset bit (18), /* Offset of buf_desc */ 26 38 2 buf_offset bit (18), /* Offset of buf */ 26 39 2 hash_table_offset bit (18), /* Offset of hash_table */ 26 40 2 search_index fixed bin, /* Roving pointer for buffer selection */ 26 41 2 unsafe_pvtx fixed bin, /* PVTE index with update in progress */ 26 42 2 scavenger_free_p_clock 26 43 fixed bin (35), /* Pseudo-Clock for scavenger-free-other-allocate race */ 26 44 2 meters, 26 45 3 call_get fixed bin (35), /* Calls to get_vtoce */ 26 46 3 call_put fixed bin (35), /* Calls to put_vtoce */ 26 47 3 call_alloc fixed bin (35), /* Calls to alloc_and_put_vtoce */ 26 48 3 call_free fixed bin (35), /* Calls to free_vtoce */ 26 49 3 call_await fixed bin (35), /* Calls to await_vtoce */ 26 50 3 steps fixed bin (35), /* Steps through buffer allocation */ 26 51 3 skip_os fixed bin (35), /* Skipped because out-of-service */ 26 52 3 skip_hot fixed bin (35), /* Skipped because buffer hot */ 26 53 3 skip_wait fixed bin (35), /* Skipped because notify_sw set */ 26 54 3 disk_reads fixed bin (35), /* Number of same */ 26 55 3 disk_writes fixed bin (35), /* Number of same */ 26 56 3 get_buffer_calls fixed bin (35), /* Number of calls to GET_BUFFER */ 26 57 3 get_buffer_hits fixed bin (35), /* Number times VTOCE in buffer */ 26 58 3 wait_calls fixed bin (35), /* Number of calls to WAIT */ 26 59 3 wait_os fixed bin (35), /* Number of times had to wait */ 26 60 3 scavenger_free_checks 26 61 fixed bin (35), /* Number of times had to check pseudo-clock */ 26 62 3 scavenger_free_losses 26 63 fixed bin (35), /* Number of times race lost between scavenger freeing and other allocate */ 26 64 3 soft_rar fixed bin (35), /* Nunber of times a software read_alter_rewrite performed */ 26 65 26 66 3 pad (14) fixed bin (35), 26 67 26 68 2 hash_table (vtoc_buf_n_buckets refer (vtoc_buffer.n_hash_buckets)) bit (18) aligned, 26 69 26 70 26 71 2 buf_desc (vtoc_buf_n_buffers refer (vtoc_buffer.n_bufs)) aligned like vtoc_buf_desc, 26 72 26 73 2 buffer (vtoc_buf_n_buffers refer (vtoc_buffer.n_bufs)) aligned like vtoce_buffer; 26 74 26 75 26 76 26 77 dcl 1 vtoc_buf_desc_array (vtoc_buffer.n_bufs) aligned based (vtoc_buf_desc_arrayp) like vtoc_buf_desc; 26 78 26 79 26 80 dcl 1 vtoc_buf_desc aligned based (vtoc_buf_descp), 26 81 2 pvtx fixed bin (17) unal, /* PVTE index */ 26 82 2 vtocx fixed bin (17) unal, /* VTOCE Index */ 26 83 2 parts_used bit (3) unal, /* Mask of parts used or os */ 26 84 2 err bit (1) unal, /* ON => I/O error on buffer */ 26 85 2 notify_sw bit (1) unal, /* ON => notify requied on I/O completion */ 26 86 2 write_sw bit (1) unal, /* ON => write I/O */ 26 87 2 os bit (1) unal, /* ON => I/O in progress */ 26 88 2 ioq bit (1) unal, /* ON => I/O has been requested */ 26 89 2 used bit (1) unal, /* ON => this descriptor is in use */ 26 90 2 pad bit (9) unal, 26 91 2 wait_index fixed bin (17) unal, /* Buffer index for forming wait event */ 26 92 2 ht_thread bit (18) unal, /* Offset of next entry in hash table */ 26 93 2 buf_rel bit (18) unal; /* Offset of buffer in segment */ 26 94 26 95 dcl 1 vtoce_buffer_array (vtoc_buffer.n_bufs) aligned based (vtoc_buf_arrayp) like vtoce_buffer; 26 96 26 97 dcl 1 vtoce_buffer aligned based (vtoc_bufp), 26 98 2 parts (3) aligned, 26 99 3 words (64) bit (36) aligned; 26 100 26 101 26 102 dcl N_PARTS_PER_VTOCE fixed bin int static options (constant) init (3); 26 103 dcl VTOCE_PART_SIZE fixed bin int static options (constant) init (64); 26 104 dcl VTOCE_BUFFER_SIZE fixed bin int static options (constant) init (3 * 64); 26 105 dcl N_VTOCE_PER_RECORD fixed bin int static options (constant) init (5); 26 106 dcl N_SECTOR_PER_VTOCE fixed bin int static options (constant) init (3); 26 107 26 108 26 109 /* END OF: vtoc_buffer.incl.pl1 * * * * * * * * * * * * * * * * */ 94 call add ("vtoc_buffer", addr (p -> vtoc_buffer)); 27 1 /* BEGIN INCLUDE FILE ... vtoc_header.incl.pl1 */ 27 2 27 3 dcl vtoc_headerp ptr; 27 4 27 5 dcl 1 vtoc_header based (vtoc_headerp) aligned, 27 6 27 7 2 version fixed bin (17), /* version number. The current version number is 1. * */ 27 8 2 n_vtoce fixed bin (17), /* number of vtoc entries */ 27 9 2 vtoc_last_recno fixed bin (17), /* record number of the last record of the vtoc */ 27 10 2 n_free_vtoce fixed bin (17), /* number of free vtoc entries */ 27 11 2 first_free_vtocx fixed bin (17), /* index of the first vtoce in the free list */ 27 12 2 pad (3) bit (36), 27 13 2 dmpr_bit_map (2048 - 8) bit (36); /* space for dmpr bit map */ 27 14 27 15 /* END INCLUDE ... vtoc_header */ 27 16 95 call add ("vtoc_header", addr (p -> vtoc_header)); 28 1 /* BEGIN INCLUDE FILE ...vtoce.incl.pl1 ... last modified September 1982 */ 28 2 /* Template for a VTOC entry. Length = 192 words. (3 * 64). */ 28 3 /* NOTE: vtoc_man clears pad fields before writing a vtoce. */ 28 4 28 5 dcl vtocep ptr; 28 6 28 7 dcl 1 vtoce based (vtocep) aligned, 28 8 28 9 28 10 (2 pad_free_vtoce_chain bit (36), /* Used to be pointer to next free VTOCE */ 28 11 28 12 2 uid bit (36), /* segment's uid - zero if vtoce is free */ 28 13 28 14 2 msl bit (9), /* maximum segment length in 1024 word units */ 28 15 2 csl bit (9), /* current segment length - in 1024 word units */ 28 16 2 records bit (9), /* number of records used by the seg in second storage */ 28 17 2 pad2 bit (9), 28 18 28 19 2 dtu bit (36), /* date and time segment was last used */ 28 20 28 21 2 dtm bit (36), /* date and time segment was last modified */ 28 22 28 23 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 28 24 2 deciduous bit (1), /* true if hc_sdw */ 28 25 2 nid bit (1), /* no incremental dump switch */ 28 26 2 dnzp bit (1), /* Dont null zero pages */ 28 27 2 gtpd bit (1), /* Global transparent paging device */ 28 28 2 per_process bit (1), /* Per process segment (deleted every bootload) */ 28 29 2 damaged bit (1), /* TRUE if contents damaged */ 28 30 2 fm_damaged bit (1), /* TRUE if filemap checksum bad */ 28 31 2 fm_checksum_valid bit (1), /* TRUE if the checksum has been computed */ 28 32 2 synchronized bit (1), /* TRUE if this is a data management synchronized segment */ 28 33 2 pad3 bit (8), 28 34 2 dirsw bit (1), /* directory switch */ 28 35 2 master_dir bit (1), /* master directory - a root for the logical volume */ 28 36 2 pad4 bit (16)) unaligned, /* not used */ 28 37 28 38 2 fm_checksum bit (36) aligned, /* Checksum of used portion of file map */ 28 39 28 40 (2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 28 41 28 42 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 28 43 28 44 2 received (0:1) fixed bin (18) unsigned, /* total amount of storage this dir has received */ 28 45 28 46 2 trp (0:1) fixed bin (71), /* time record product - (0) for non dir pages */ 28 47 28 48 2 trp_time (0:1) bit (36), /* time time_record_product was last calculated */ 28 49 28 50 28 51 28 52 28 53 28 54 2 fm (0:255) bit (18), /* file map - 256 entries - 18 bits per entry */ 28 55 28 56 2 pad6 (10) bit (36), /* not used */ 28 57 28 58 2 ncd bit (1), /* no complete dump switch */ 28 59 2 pad7 bit (17), 28 60 2 pad8 bit (18), 28 61 28 62 2 dtd bit (36), /* date-time-dumped */ 28 63 28 64 2 volid (3) bit (36), /* volume ids of last incremental, consolidated, and complete dumps */ 28 65 28 66 2 master_dir_uid bit (36), /* superior master directory uid */ 28 67 28 68 28 69 28 70 28 71 2 uid_path (0:15) bit (36), /* uid pathname of all parents starting after the root */ 28 72 28 73 2 primary_name char (32), /* primary name of the segment */ 28 74 28 75 2 time_created bit (36), /* time the segment was created */ 28 76 28 77 2 par_pvid bit (36), /* physical volume id of the parent */ 28 78 28 79 2 par_vtocx fixed bin (17), /* vtoc entry index of the parent */ 28 80 2 branch_rp bit (18)) unaligned, /* rel pointer of the branch of this segment */ 28 81 28 82 2 cn_salv_time bit (36), /* time branch - vtoce connection checked */ 28 83 28 84 2 access_class bit (72), /* access class in branch */ 28 85 2 perm_flags aligned, 28 86 3 per_bootload bit (1) unal, /* ON => deleted each bootload */ 28 87 3 pad9 bit (35) unal, 28 88 2 owner bit (36); /* pvid of this volume */ 28 89 28 90 dcl vtoce_parts (3) bit (36 * 64) aligned based (vtocep); 28 91 28 92 dcl 1 seg_vtoce based (vtocep) aligned, /* Overlay for vtoce of segments, which don't have quota */ 28 93 2 pad1 bit (7*36), 28 94 2 usage fixed bin (35), /* page fault count: overlays quota */ 28 95 2 pad2 bit (184*36); 28 96 28 97 /* END INCLUDE FILE vtoce.incl.pl1 */ 96 call add ("vtoce", addr (p -> vtoce)); 97 29 1 29 2 /* Begin include file ...... wire_proc_data.incl.pl1 29 3* Extracted from sst.incl.pl1 8/3/76 by Noel I. Morris */ 29 4 29 5 dcl wpdp ptr; /* pointer to data */ 29 6 29 7 dcl 1 wpd based (wpdp) aligned, 29 8 2 temp_w_lock bit (36), /* lock for the temp wired procedure info */ 29 9 2 temp_w_max fixed bin (17), /* the maximum index currently in use */ 29 10 2 temp_w (7) like twe; /* one two word entry per temp wired procedure */ 29 11 29 12 dcl twep ptr; /* pointer to table entry */ 29 13 29 14 dcl 1 twe based (twep) aligned, /* entry for temp wired procedure */ 29 15 (2 segno bit (18), /* segment number that is temp wired */ 29 16 2 count bit (18), /* count of number of outstanding wire calls */ 29 17 2 linkno bit (18), /* segment number of the linkage segment */ 29 18 2 flp bit (8), /* first page of linkage segment for this procedure */ 29 19 2 llp bit (8), /* last page of linkage segment for this procedure */ 29 20 2 link_w bit (1), /* bit is on if linkage is permanently wired */ 29 21 2 seg_w bit (1)) unaligned; /* bit is on if procedure is permanently wired */ 29 22 29 23 /* End of include file ...... wire_proc_data.incl.pl1 */ 29 24 98 99 dcl 1 wire_proc_data aligned like wpd based; 100 call add ("wire_proc_data", addr (p -> wire_proc_data)); 101 30 1 /* BEGIN INCLUDE FILE ... wtcb.incl.pl1 */ 30 2 30 3 30 4 /****^ HISTORY COMMENTS: 30 5* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 30 6* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 30 7* Add data needed for the uncp multiplexer (DSA gateway) interface 30 8* implementation. 30 9* END HISTORY COMMENTS */ 30 10 30 11 30 12 /* 30 13* Moved from tty_buf.incl.pl1 Aug 78 by J. Nicholls plus changes for ring 0 demultiplexing 30 14* Error code added Nov. 1982 by Robert Coren 30 15* Modified December 1984 by Robert Coren to invent "more_flags" structure and 30 16* its first flag, line_status_disabled 30 17* Reported modifications for the DN7100 interim in August 85. 30 18**/ 30 19 30 20 dcl wtcbp ptr; /* pointer to head of wtcb */ 30 21 30 22 dcl 1 wtcb based (wtcbp) aligned, /* wired terminal control block */ 30 23 2 hevent fixed bin (71) aligned, /* event channel for hangup/dialup signal */ 30 24 2 event fixed bin (71) aligned, /* users event channel, for uproc */ 30 25 30 26 2 line_status bit (72) aligned, /* actual line status sent by fnp */ 30 27 30 28 2 tcb_ptr ptr unal, /* pointer to tcb */ 30 29 2 pad1 fixed bin (35), /* formerly time dialedup */ 30 30 30 31 2 hproc bit (36) aligned, /* boss processid */ 30 32 2 uproc bit (36) aligned, /* tty user processid */ 30 33 30 34 2 baud_rate fixed bin (18) unal uns, /* baud rate of this line */ 30 35 2 line_type fixed bin (18) unal uns, /* line type for line protocol */ 30 36 30 37 2 flags unaligned, 30 38 3 listen bit (1) unaligned, /* if on, listen for dialups */ 30 39 3 dialed bit (1) unaligned, /* if on, line is dialed up */ 30 40 3 send_output bit (1) unaligned, /* on if DN355 requested more output */ 30 41 30 42 3 qenable bit (1) unaligned, /* if on, signal quits */ 30 43 3 qflag bit (1) unaligned, /* on after quit, causes writes to be ignored */ 30 44 3 end_frame bit (1) unaligned, /* write chain fills ards frame */ 30 45 30 46 3 notify_reqd bit (1) unaligned, /* if on, do notify after unlocking lock */ 30 47 3 work_reqd bit (1) unaligned, /* if on, call dn355 before returning */ 30 48 3 dialing bit (1) unaligned, /* if on, 355 is dialing a phone number */ 30 49 30 50 3 dial_status_valid bit (1) unaligned, /* if on, dial_status_code is valid */ 30 51 3 input_available bit (1) unaligned, /* input for this device is waiting in wired space */ 30 52 3 tcb_initialized bit (1) unaligned, /* if on, tcb has been initialized */ 30 53 30 54 3 wflag bit (1) unaligned, /* process blocked on output */ 30 55 3 rflag bit (1) unaligned, /* process blocked on input */ 30 56 3 wru bit (1) unaligned, /* reading answerback */ 30 57 30 58 3 hndlquit bit (1) unaligned, /* on if in hndlquit mode */ 30 59 3 count_lines bit (1) unaligned, /* on if tcb.linemax > 0 */ 30 60 3 line_status_present bit (1) unaligned, /* fnp has sent line status */ 30 61 30 62 3 sync_line bit (1) unaligned, /* channel is synchronous line type */ 30 63 3 breakall bit (1) unaligned, /* channel is in breakall mode */ 30 64 3 scroll bit (1) unaligned, /* channel is in scroll mode */ 30 65 30 66 3 negotiating_echo bit (1) unaligned, /* ring zero to echo chars. */ 30 67 3 wake_tbl bit (1) unaligned, /* on if in wake_tbl mode */ 30 68 3 allow_wakeup bit (1) unaligned, /* on to allow input wakeup in wake_tbl mode */ 30 69 30 70 3 receive_mode_device bit (1) unaligned, /* device must be told to enter receive mode */ 30 71 3 mark_set bit (1) unal, /* write_with_mark call outstanding */ 30 72 3 masked bit (1) unal, /* channel masked by FNP */ 30 73 30 74 2 dial_status_code fixed bin (8) unaligned, /* code returned by 355 after dialing a phone number */ 30 75 30 76 2 fblock fixed bin (17) unaligned, /* oldest read pointer, block */ 30 77 2 lblock fixed bin (17) unaligned, /* newest read block */ 30 78 30 79 2 fchar fixed bin (9) unsigned unaligned, /* first block char index */ 30 80 2 actline fixed bin (9) unsigned unaligned, /* line number of current line */ 30 81 2 actcol fixed bin (9) unsigned unaligned, /* tty column position */ 30 82 2 nramsgs fixed bin (9) unsigned unaligned, /* current number of read-ahead msgs */ 30 83 30 84 2 write_first fixed bin (17) unaligned, /* first write block */ 30 85 2 write_last fixed bin (17) unaligned, /* last write block */ 30 86 2 write_cnt fixed bin (17) unaligned, /* count of chars in write chain */ 30 87 2 white_col fixed bin (17) unaligned, /* column position resulting from trailing white space */ 30 88 30 89 2 max_buf_size fixed bin (9) unal uns, /* maximum-size buffer to be allocated for this channel */ 30 90 2 buffer_pad fixed bin (9) unal uns, /* amount of pad to be left in output buffers */ 30 91 2 devx fixed bin (17) unaligned, /* index into lct of channel's entry */ 30 92 2 echdp bit (18) unaligned, /* echo negotiation data ptr */ 30 93 2 waketp bit (18) unaligned, /* wakeup table offset */ 30 94 2 prompt_len fixed bin (8) unaligned, /* number of chars in prompt string */ 30 95 2 prompt char (3) unaligned, /* text of prompt message */ 30 96 2 line_delimiter char (1) unal, /* line delimiter for tty_read parse */ 30 97 2 more_flags unaligned, /* in addition to flags (above) */ 30 98 3 line_status_disabled bit (1) unaligned, /* "1"b => don't relay line_status interrupts */ 30 99 2 send_turn bit (1) unal, /* For the Dn7100 interim */ 30 100 2 pad bit (25) unal, 30 101 2 error_code fixed bin (35), /* error code returned by channel_manager to tty_interrupt */ 30 102 2 pad2 bit (36); 30 103 30 104 /* Ends on doubleword boundary */ 30 105 30 106 /* END INCLUDE FILE ... wtcb.incl.pl1 */ 102 call add ("wtcb", addr (p -> wtcb)); 103 104 /* Followed by the include file containing the code to do the work */ 105 106 dcl WHOAMI char (32) internal static options (constant) init ("structure_library_5_"); 107 31 1 31 2 31 3 /* * STRUCTURE_LIBRARY_CODE.INCL.PL1 31 4* * 31 5* * This procedure generates the default library segment for the 31 6* * structure display system. The way it operates is hardly what one 31 7* * would call normal, however. It has to do a number of rather unclean 31 8* * things, and modifications must be made carefully following these 31 9* * conventions: 31 10* * 31 11* * Because the compiler insists on actually having a structure appear 31 12* * in some reference context for it to appear in the symbol table, 31 13* * regardless of options, every structure defined herein must be 31 14* * referenced somehow. This is accomplished with the calls to the 31 15* * "add" procedure. The first argument to the "add" procedure is the 31 16* * name of the structure, put there so it can be added to the table 31 17* * of contents for the segment. 31 18* * 31 19* * The second argument to the add procedure is a pointer, which must 31 20* * always be of the form "addr (p -> structure)". This is done to 31 21* * that the structure will be referenced, while at the same time 31 22* * avoiding any reference to its implicit base, or to other values 31 23* * which must be initialized to avoid warnings. 31 24* * 31 25* * Finally, this program compiles and runs itself using 31 26* * create_data_segment; this is done both to ensure that it gets 31 27* * compiled with a symbol table, and to make it possible copy the 31 28* * object segment and write into the internal static options (constant) 31 29* * array that is the table of structures. All in all, it's pretty 31 30* * complicated. 31 31* * 31 32* * The code for this program is in an include file in order to ease 31 33* * the construction of user-defined structure libraries. In order to 31 34* * use this code, one must create a program looking like this: 31 35* * 31 36* * structure_library_7_: 31 37* * procedure (); 31 38* * 31 39* * < %include statements, calls to add > 31 40* * 31 41* * dcl WHOAMI char (32) internal static options (constant) init ("structure_library_7_"); 31 42* * %include structure_library_code; 31 43* * end structure_library_7_; 31 44* * 31 45* * The standard structure libraries (structure_library_1_.cds, 31 46* * for example, provide a good example of this. 31 47* * 31 48* * 30 May 1983, W. Olin Sibert 31 49* */ 31 50 31 51 /* */ 31 52 31 53 /* Now come the more ordinary parts of code that usually appear in a program */ 31 54 31 55 dcl code fixed binary (35); 31 56 dcl severity_ptr pointer; 31 57 dcl severity_value fixed bin (35) based (severity_ptr); 31 58 dcl answer bit (1) aligned; 31 59 dcl new_segp pointer; 31 60 dcl old_segp pointer; 31 61 dcl bitcount fixed bin (24); 31 62 dcl n_words fixed bin (18); 31 63 dcl based_words (n_words) bit (36) aligned based; 31 64 31 65 dcl p pointer init (null ()); /* our general-purpose base */ 31 66 31 67 dcl com_err_ entry options (variable); 31 68 dcl command_query_$yes_no entry options (variable); 31 69 dcl get_external_variable_ entry (char (*), pointer, fixed bin (19), pointer, fixed bin (35)); 31 70 dcl get_wdir_ entry () returns (char (168)); 31 71 dcl hcs_$make_seg entry (char (*), char (*), char (*), 31 72 fixed bin (5), pointer, fixed bin (35)); 31 73 dcl hcs_$set_bc_seg entry (pointer, fixed bin (24), fixed bin (35)); 31 74 dcl hcs_$status_mins entry 31 75 (pointer, fixed bin (2), fixed bin (24), fixed bin (35)); 31 76 dcl hcs_$terminate_noname entry (pointer, fixed bin (35)); 31 77 dcl nothing entry options (variable); 31 78 31 79 dcl INITIALIZED bit (1) aligned internal static options (constant) init ("0"b); 31 80 dcl initialized_bit bit (1) aligned based; 31 81 31 82 /* The following array is important: it defines the "table of contents" 31 83* for the structure library segment. It is declared and initialized to 31 84* empty, but when the object segment is copied into the library segment, 31 85* it is filled in with the actual names of all the structures, which were 31 86* collected by all the calls to "add", above. */ 31 87 31 88 dcl STRUCTURES (200) char (32) unaligned internal static options (constant) 31 89 init ((200)(32)""); 31 90 31 91 /* This is the automatic array where the data is collected, and the based 31 92* overlay used later on to copy it into the new segment */ 31 93 31 94 dcl based_structures (n_structures) char (32) unaligned based; 31 95 dcl structures (hbound (STRUCTURES, 1)) char (32) unaligned automatic; 31 96 dcl n_structures fixed bin init (0); 31 97 31 98 dcl (addr, codeptr, null, rel, size, unspec) builtin; 31 99 31 100 /* */ 31 101 31 102 /* Finally, the real code, which copies one segment onto the other and 31 103* updates the structures arrays. */ 31 104 31 105 if INITIALIZED then do; 31 106 call com_err_ (0, WHOAMI, "This program is a data segment, and may not be executed."); 31 107 return; 31 108 end; 31 109 31 110 call get_external_variable_ ("pl1_severity_", severity_ptr, (0), (null ()), code); 31 111 if (code ^= 0) then do; 31 112 call com_err_ (code, WHOAMI, "Cannot determine severity for compilation of ^a.", WHOAMI); 31 113 return; 31 114 end; 31 115 31 116 if (severity_value = 2) then do; 31 117 call command_query_$yes_no (answer, 0, WHOAMI, 31 118 31 119 "ERROR 366 means that the program is too large to construct a symbol table; 31 120 this quite commonly happens to structure libraries because of their enormous 31 121 symbol tables. You may be able to fix the error by rearranging some of the 31 122 include files.", 31 123 31 124 "Warning: A severity two PL/I error has occurred. 31 125 If it is ERROR 366, the result of this compilation will be partially invalid. 31 126 Do you wish to continue and generate the library segment anyway?"); 31 127 31 128 if ^answer then return; 31 129 end; 31 130 31 131 old_segp = pointer (addr (STRUCTURES), 0); 31 132 31 133 call hcs_$status_mins (old_segp, (0), bitcount, code); 31 134 if (code ^= 0) then do; 31 135 call com_err_ (code, WHOAMI, 31 136 "Cannot get bitcount of original segment."); 31 137 return; 31 138 end; 31 139 31 140 call hcs_$make_seg ((get_wdir_ ()), WHOAMI, "", 01010b, new_segp, code); 31 141 if (new_segp = null ()) then do; 31 142 call com_err_ (code, WHOAMI, "Cannot create [wd]>^a", WHOAMI); 31 143 return; 31 144 end; 31 145 31 146 n_words = divide (bitcount, 36, 18, 0); 31 147 new_segp -> based_words = old_segp -> based_words; 31 148 31 149 call hcs_$set_bc_seg (new_segp, bitcount, code); 31 150 if (code ^= 0) then do; 31 151 call com_err_ (code, WHOAMI, 31 152 "Cannot set bitcount on [wd]>^a", WHOAMI); 31 153 return; 31 154 end; 31 155 31 156 /* Finally, copy in the structure list */ 31 157 31 158 pointer (new_segp, rel (addr (STRUCTURES))) -> based_structures 31 159 = addr (structures) -> based_structures; 31 160 pointer (new_segp, rel (addr (INITIALIZED))) -> initialized_bit = "1"b; 31 161 31 162 call hcs_$terminate_noname (new_segp, (0)); 31 163 31 164 ERROR_RETURN: 31 165 return; 31 166 31 167 /* */ 31 168 31 169 /* This is called once for each structure which goes in the table of contents. 31 170* It adds the structure to the automatic array, and increments the count. */ 31 171 31 172 add: 31 173 addx: 31 174 procedure (name, useless_pointer); 31 175 31 176 dcl name char (32); 31 177 dcl useless_pointer pointer; 31 178 31 179 /* The bounds check is against hbound - 1, since it is necessary to always 31 180* leave at least one blank entry in the table of contents to show where 31 181* the last valid entry is. */ 31 182 31 183 31 184 if (n_structures >= (hbound (STRUCTURES, 1) - 1)) then do; 31 185 call com_err_ (0, WHOAMI, 31 186 "Too many structures defined. Max is ^d.^/^3xChange the dimension of the STRUCTURES array and recompile.", 31 187 hbound (STRUCTURES, 1)); 31 188 goto ERROR_RETURN; 31 189 end; 31 190 31 191 n_structures = n_structures + 1; 31 192 structures (n_structures) = name; 31 193 structures (n_structures + 1) = ""; 31 194 return; 31 195 end add; 108 109 110 end structure_library_5_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/19/88 1534.7 !BBBJXbnbKXwJcQ.pl1 >special_ldd>install>MR12.2-1061>structure_library_5_.cds 18 1 03/27/82 0429.8 sdw.adp.incl.pl1 >ldd>include>sdw.adp.incl.pl1 19 2 03/27/82 0429.8 sdw.l68.incl.pl1 >ldd>include>sdw.l68.incl.pl1 20 3 03/27/82 0430.3 sdw_info.incl.pl1 >ldd>include>sdw_info.incl.pl1 21 4 08/18/77 0954.0 segdamage_msg.incl.pl1 >ldd>include>segdamage_msg.incl.pl1 23 5 03/08/79 1715.0 signaller_stack.incl.pl1 >ldd>include>signaller_stack.incl.pl1 26 6 05/24/82 1005.0 slt.incl.pl1 >ldd>include>slt.incl.pl1 37 7 07/11/84 0937.3 slte.incl.pl1 >ldd>include>slte.incl.pl1 38 8 01/30/85 1523.9 sst.incl.pl1 >ldd>include>sst.incl.pl1 39 9 11/02/84 0912.2 sstnt.incl.pl1 >ldd>include>sstnt.incl.pl1 40 10 10/25/79 0712.2 stack_0_data.incl.pl1 >ldd>include>stack_0_data.incl.pl1 44 11 11/07/86 1550.3 stack_frame.incl.pl1 >ldd>include>stack_frame.incl.pl1 45 12 11/07/86 1550.3 stack_header.incl.pl1 >ldd>include>stack_header.incl.pl1 46 13 05/06/74 1751.6 str.incl.pl1 >ldd>include>str.incl.pl1 49 14 03/08/85 0852.7 syserr_data.incl.pl1 >ldd>include>syserr_data.incl.pl1 56 15 01/06/85 1422.2 syserr_log_dcls.incl.pl1 >ldd>include>syserr_log_dcls.incl.pl1 59 16 06/18/81 0900.8 tcb.incl.pl1 >ldd>include>tcb.incl.pl1 61 17 01/30/85 1523.9 tcm.incl.pl1 >ldd>include>tcm.incl.pl1 62 18 01/06/85 1422.1 hc_lock.incl.pl1 >ldd>include>hc_lock.incl.pl1 69 19 01/06/85 1422.1 tty_buf.incl.pl1 >ldd>include>tty_buf.incl.pl1 19-152 20 01/06/85 1422.1 hc_fast_lock.incl.pl1 >ldd>include>hc_fast_lock.incl.pl1 73 21 07/19/88 1524.3 tty_buffer_block.incl.pl1 >special_ldd>install>MR12.2-1061>tty_buffer_block.incl.pl1 80 22 02/23/79 1435.1 tty_tables.incl.pl1 >ldd>include>tty_tables.incl.pl1 83 23 07/11/84 0937.3 unpaged_page_tables.incl.pl1 >ldd>include>unpaged_page_tables.incl.pl1 91 24 04/29/76 1050.5 vol_map.incl.pl1 >ldd>include>vol_map.incl.pl1 92 25 11/20/84 1944.9 volume_registration.incl.pl1 >ldd>include>volume_registration.incl.pl1 94 26 07/24/86 2051.8 vtoc_buffer.incl.pl1 >ldd>include>vtoc_buffer.incl.pl1 95 27 05/23/77 0919.3 vtoc_header.incl.pl1 >ldd>include>vtoc_header.incl.pl1 96 28 10/04/83 1105.1 vtoce.incl.pl1 >ldd>include>vtoce.incl.pl1 98 29 09/14/76 0802.8 wire_proc_data.incl.pl1 >ldd>include>wire_proc_data.incl.pl1 102 30 07/19/88 1524.6 wtcb.incl.pl1 >special_ldd>install>MR12.2-1061>wtcb.incl.pl1 108 31 09/12/84 2307.0 structure_library_code.incl.pl1 >ldd>include>structure_library_code.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. INITIALIZED 000034 constant bit(1) initial dcl 31-79 set ref 31-105 31-160 STRUCTURES 006023 constant char(32) initial array packed unaligned dcl 31-88 set ref 31-95 31-131 31-158 31-184 31-185 31-185 VCPU_RESPONSE_BOUNDS 006022 constant fixed bin(17,0) initial dcl 17-308 ref 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 WHOAMI 000000 constant char(32) initial packed unaligned dcl 106 set ref 31-106* 31-112* 31-112* 31-117* 31-135* 31-140* 31-142* 31-142* 31-151* 31-151* 31-185* aclp 000272 automatic pointer dcl 6-7 ref 6-45 6-45 6-45 6-45 6-45 6-45 6-45 acls based structure level 1 dcl 6-45 addr builtin function dcl 31-98 ref 18 18 19 19 20 20 22 22 24 24 37 37 38 38 39 39 42 42 43 43 44 44 45 45 48 48 51 51 53 53 55 55 57 57 59 59 81 81 86 86 87 87 88 88 89 89 91 91 93 93 94 94 95 95 96 96 100 100 102 102 31-131 31-158 31-158 31-160 27 27 29 29 31 31 33 33 35 35 64 64 65 65 66 66 70 70 75 75 77 77 adp_sdw based structure level 1 dcl 1-4 set ref 18 18 answer 000242 automatic bit(1) dcl 31-58 set ref 31-117* 31-128 based_sentinel based structure level 1 dcl 17-303 based_structures based char(32) array packed unaligned dcl 31-94 set ref 31-158* 31-158 based_words based bit(36) array dcl 31-63 set ref 31-147* 31-147 bitcount 000250 automatic fixed bin(24,0) dcl 31-61 set ref 31-133* 31-146 31-149* blockp 000306 automatic pointer dcl 21-19 ref 21-28 21-28 21-28 21-28 21-28 21-28 21-28 21-28 21-28 21-28 21-28 21-28 bsize based fixed bin(17,0) level 3 dcl 14-29 ref 14-29 52 buffer based structure level 1 dcl 21-28 code 000236 automatic fixed bin(35,0) dcl 31-55 set ref 31-110* 31-111 31-112* 31-133* 31-134 31-135* 31-140* 31-142* 31-149* 31-150 31-151* com_err_ 000044 constant entry external dcl 31-67 ref 31-106 31-112 31-135 31-142 31-151 31-185 command_query_$yes_no 000046 constant entry external dcl 31-68 ref 31-117 count based fixed bin(17,0) level 2 in structure "acls" dcl 6-45 in begin block on line 25 ref 6-45 6-45 6-45 6-45 6-45 34 34 34 34 34 count based fixed bin(17,0) level 2 in structure "segnam" dcl 6-31 in begin block on line 25 ref 6-31 6-31 6-31 6-31 6-31 6-31 30 30 30 30 30 30 cumulative_meters 32 based structure level 2 dcl 16-20 data_size 3(24) based fixed bin(11,0) level 3 packed packed unaligned dcl 14-47 ref 14-47 54 free_block based structure level 1 dcl 21-23 free_blockp 000310 automatic pointer dcl 21-20 ref 21-23 21-23 21-23 free_tty_buffer based structure level 1 dcl 76 set ref 77 77 get_external_variable_ 000050 constant entry external dcl 31-69 ref 31-110 get_wdir_ 000052 constant entry external dcl 31-70 ref 31-140 hc_fast_lock based structure level 1 dcl 20-10 hcs_$make_seg 000054 constant entry external dcl 31-71 ref 31-140 hcs_$set_bc_seg 000056 constant entry external dcl 31-73 ref 31-149 hcs_$status_mins 000060 constant entry external dcl 31-74 ref 31-133 hcs_$terminate_noname 000062 constant entry external dcl 31-76 ref 31-162 head based structure level 2 dcl 14-29 header based structure level 2 dcl 14-47 initialized_bit based bit(1) dcl 31-80 set ref 31-160* iupt based structure level 1 dcl 84 set ref 89 89 iupte based structure level 1 dcl 85 set ref 88 88 l68_sdw based structure level 1 dcl 2-4 set ref 19 19 lock based structure level 1 dcl 18-12 lock_ptr 000300 automatic pointer dcl 18-11 in begin block on line 60 ref 18-12 18-12 18-12 18-12 18-12 18-12 lock_ptr 000304 automatic pointer dcl 20-9 in begin block on line 68 ref 20-10 20-10 20-10 20-10 20-10 20-10 n_bufs 3 based fixed bin(17,0) level 2 dcl 26-25 set ref 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 n_hash_buckets 4 based fixed bin(17,0) level 2 dcl 26-25 set ref 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 n_structures 000254 automatic fixed bin(17,0) initial dcl 31-96 set ref 31-94 31-96* 31-158 31-158 31-158 31-184 31-191* 31-191 31-192 31-193 n_words 000251 automatic fixed bin(18,0) dcl 31-62 set ref 31-63 31-146* 31-147 name parameter char(32) packed unaligned dcl 31-176 ref 31-172 31-172 31-192 name_seg based structure level 1 dcl 6-26 namep 000266 automatic pointer dcl 6-7 ref 6-31 6-31 6-31 6-31 6-31 6-31 6-31 6-31 names_ptr 000264 automatic pointer dcl 6-7 ref 6-26 6-26 6-26 6-26 nentries 2 based fixed bin(17,0) level 2 dcl 9-11 set ref 9-11 new_segp 000244 automatic pointer dcl 31-59 set ref 31-140* 31-141 31-147 31-149* 31-158 31-160 31-162* npv 101 based fixed bin(17,0) level 2 dcl 25-14 set ref 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 null builtin function dcl 31-98 ref 31-65 31-110 31-141 num_stacks 1 based fixed bin(17,0) level 2 dcl 10-9 ref 10-9 10-9 10-9 10-9 10-9 10-9 41 41 41 41 41 41 old_segp 000246 automatic pointer dcl 31-60 set ref 31-131* 31-133* 31-147 p 000252 automatic pointer initial dcl 31-65 set ref 18 18 19 19 20 20 24 24 37 37 38 38 39 39 42 42 43 43 44 44 45 45 48 48 51 51 53 53 55 55 57 57 59 59 81 81 86 86 87 87 88 88 89 89 91 91 93 93 94 94 95 95 96 96 100 100 102 102 31-65* 27 27 29 29 31 31 33 33 35 35 64 64 65 65 66 66 70 70 75 75 77 77 path based structure level 1 dcl 6-40 pathp 000270 automatic pointer dcl 6-7 ref 6-40 6-40 6-40 6-40 pv_registration based structure level 1 dcl 25-28 pvrp 000206 automatic pointer dcl 25-12 ref 25-28 25-28 25-28 25-28 25-28 25-28 25-28 25-28 rel builtin function dcl 31-98 ref 31-158 31-160 sb 000152 automatic pointer dcl 12-24 ref 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 12-26 sd based structure level 1 dcl 14-21 sd_ptr 000156 automatic pointer dcl 14-17 ref 14-21 14-21 14-21 14-21 14-21 14-21 14-21 sdt based structure level 1 dcl 10-9 sdte based structure level 1 dcl 10-19 set ref 43 43 sdtep 000146 automatic pointer dcl 10-17 ref 10-19 10-19 10-19 10-19 10-19 10-19 sdtp 000144 automatic pointer dcl 10-7 ref 10-9 10-9 10-9 10-9 10-9 10-9 10-9 10-9 10-9 10-9 10-9 sdw_info based structure level 1 dcl 3-6 set ref 20 20 sdw_info_ptr 000102 automatic pointer dcl 3-4 ref 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 3-6 sdwp 000100 automatic pointer dcl 17 ref 1-4 1-4 1-4 1-4 1-4 1-4 1-4 1-4 1-4 1-4 1-4 1-4 1-4 1-4 1-4 1-4 1-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 2-4 segdamage 000104 automatic structure level 1 dcl 4-6 set ref 22 22 segment_trailer based structure level 1 dcl 47 set ref 48 48 segnam based structure level 1 dcl 6-31 severity_ptr 000240 automatic pointer dcl 31-56 set ref 31-57 31-110* 31-116 severity_value based fixed bin(35,0) dcl 31-57 ref 31-116 signaller_stack based structure level 1 unaligned dcl 5-5 set ref 24 24 size based fixed bin(17,0) level 2 in structure "upt_entry" dcl 23-26 in procedure "structure_library_5_" set ref 23-13 23-26 84 85 size based fixed bin(17,0) level 2 in structure "path" dcl 6-40 in begin block on line 25 ref 6-40 6-40 32 32 slt based structure level 1 dcl 6-13 set ref 27 27 slt_acls based structure level 1 dcl 34 set ref 35 35 slt_name_seg based structure level 1 dcl 28 set ref 29 29 slt_path based structure level 1 dcl 32 set ref 33 33 slt_segname based structure level 1 dcl 30 set ref 31 31 slte based structure level 1 dcl 7-48 set ref 37 37 sltep 000130 automatic pointer dcl 7-8 ref 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 7-48 sltp 000262 automatic pointer dcl 6-7 ref 6-13 6-13 6-13 6-13 6-13 6-13 6-13 6-13 6-13 6-13 sp 000150 automatic pointer dcl 11-31 ref 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 11-36 sst based structure level 1 dcl 8-9 set ref 38 38 sstnp 000134 automatic pointer dcl 9-9 ref 9-11 9-11 9-11 9-11 9-11 9-11 9-11 9-11 9-11 9-11 sstnt based structure level 1 dcl 9-11 set ref 39 39 sstp 000132 automatic pointer dcl 8-7 ref 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 8-9 stack_0_data based structure level 1 dcl 41 set ref 42 42 stack_frame based structure level 1 dcl 11-36 set ref 44 44 stack_header based structure level 1 dcl 12-26 set ref 45 45 str based structure level 1 dcl 13-7 strp 000154 automatic pointer dcl 13-4 ref 13-7 13-7 13-7 13-7 13-7 structures 000254 automatic char(32) array packed unaligned dcl 31-95 set ref 31-158 31-192* 31-193* syserr_data based structure level 1 dcl 50 set ref 51 51 syserr_log_data based structure level 1 dcl 15-11 set ref 57 57 syserr_log_data_ptr 000164 automatic pointer dcl 15-9 ref 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 15-11 table_area_size 3 based fixed bin(18,0) level 2 dcl 22-8 set ref 22-8 tc_data based structure level 1 dcl 63 set ref 64 64 tcb based structure level 1 dcl 16-20 set ref 59 59 tcbp 000166 automatic pointer dcl 16-18 ref 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 16-20 tcm based structure level 1 dcl 17-11 set ref 65 65 tcmp 000274 automatic pointer dcl 17-9 ref 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 17-11 text_len 3(12) based fixed bin(11,0) level 3 packed packed unaligned dcl 14-47 ref 14-47 14-47 54 54 tty_buf based structure level 1 dcl 19-35 set ref 70 70 tty_buffer based structure level 1 dcl 74 set ref 75 75 tty_tables_hdr based structure level 1 dcl 22-8 set ref 81 81 ttybp 000302 automatic pointer dcl 19-19 ref 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 19-35 ttytp 000170 automatic pointer dcl 22-18 ref 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 twe based structure level 1 dcl 29-14 twep 000232 automatic pointer dcl 29-12 ref 29-14 29-14 29-14 29-14 29-14 29-14 29-14 29-14 upt based structure level 1 dcl 23-13 set ref 86 86 upt_entry based structure level 1 dcl 23-26 set ref 87 87 upt_entry_ptr 000200 automatic pointer dcl 23-25 ref 23-26 23-26 23-26 23-26 upt_ptr 000176 automatic pointer dcl 23-12 ref 23-13 23-13 23-13 23-13 23-13 23-13 23-13 23-13 23-13 23-13 23-13 23-13 23-13 useless_pointer parameter pointer dcl 31-177 ref 31-172 31-172 vol_map based structure level 1 dcl 24-5 set ref 91 91 vol_mapp 000202 automatic pointer dcl 24-3 ref 24-5 24-5 24-5 24-5 24-5 24-5 24-5 volume_registration based structure level 1 dcl 25-14 set ref 93 93 vrp 000204 automatic pointer dcl 25-11 ref 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 25-14 vtoc_buf_desc based structure level 1 dcl 26-80 vtoc_buf_descp 000212 automatic pointer dcl 26-16 ref 26-80 26-80 26-80 26-80 26-80 26-80 26-80 26-80 26-80 26-80 26-80 26-80 26-80 26-80 vtoc_buffer based structure level 1 dcl 26-25 set ref 94 94 vtoc_buffer_segp 000210 automatic pointer dcl 26-15 ref 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 26-25 vtoc_bufp 000214 automatic pointer dcl 26-17 ref 26-97 26-97 26-97 vtoc_header based structure level 1 dcl 27-5 set ref 95 95 vtoc_headerp 000224 automatic pointer dcl 27-3 ref 27-5 27-5 27-5 27-5 27-5 27-5 27-5 27-5 vtoce based structure level 1 dcl 28-7 set ref 96 96 vtoce_buffer based structure level 1 dcl 26-97 vtocep 000226 automatic pointer dcl 28-5 ref 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 28-7 wct_entry based structure level 1 dcl 17-260 set ref 66 66 wctep 000276 automatic pointer dcl 17-258 ref 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 17-260 wire_proc_data based structure level 1 dcl 99 set ref 100 100 wired_syserr_log based structure level 1 dcl 52 set ref 53 53 wired_syserr_message based structure level 1 dcl 54 set ref 55 55 wlog based structure level 1 dcl 14-29 wlog_header based structure level 1 dcl 14-33 wlog_ptr 000160 automatic pointer dcl 14-17 ref 14-29 14-29 14-29 14-29 14-29 14-29 14-29 14-29 14-29 wmess based structure level 1 dcl 14-47 wmess_header based structure level 1 dcl 14-52 wmess_ptr 000162 automatic pointer dcl 14-17 ref 14-47 14-47 14-47 14-47 14-47 14-47 14-47 14-47 14-47 14-47 14-47 14-47 wpd based structure level 1 dcl 29-7 wpdp 000230 automatic pointer dcl 29-5 ref 29-7 29-7 29-7 29-7 29-7 29-7 29-7 29-7 29-7 29-7 29-7 wtcb based structure level 1 dcl 30-22 set ref 102 102 wtcbp 000234 automatic pointer dcl 30-20 ref 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 30-22 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. FNP_DUMP_PATCH_EVENT constant fixed bin(17,0) initial dcl 19-31 FNP_METER_EVENT constant fixed bin(17,0) initial dcl 19-32 N_PARTS_PER_VTOCE constant fixed bin(17,0) initial dcl 26-102 N_SECTOR_PER_VTOCE constant fixed bin(17,0) initial dcl 26-106 N_VTOCE_PER_RECORD constant fixed bin(17,0) initial dcl 26-105 RETURN_PTR_MASK constant bit(72) initial packed unaligned dcl 11-19 SYSERR_LOG_DATA_V1 constant char(8) initial packed unaligned dcl 15-52 TRANSLATOR_ID_ALM constant bit(18) initial packed unaligned dcl 11-25 TRANSLATOR_ID_PL1V1 constant bit(18) initial packed unaligned dcl 11-26 TRANSLATOR_ID_PL1V2 constant bit(18) initial packed unaligned dcl 11-24 TRANSLATOR_ID_SIGNALLER constant bit(18) initial packed unaligned dcl 11-28 TRANSLATOR_ID_SIGNAL_CALLER constant bit(18) initial packed unaligned dcl 11-27 TTY_AREA_LOCK_EVENT constant bit(36) initial dcl 19-33 VTOCE_BUFFER_SIZE constant fixed bin(17,0) initial dcl 26-104 VTOCE_PART_SIZE constant fixed bin(17,0) initial dcl 26-103 Volume_Registration_Version_2 constant fixed bin(17,0) initial dcl 25-37 abs_buf_limit constant fixed bin(18,0) initial dcl 19-19 bsizec constant fixed bin(17,0) initial dcl 19-28 buf_per_second constant fixed bin(17,0) initial dcl 19-29 call_offset 000012 internal static fixed bin(17,0) initial dcl 12-78 codeptr builtin function dcl 31-98 entry_offset 000016 internal static fixed bin(17,0) initial dcl 12-78 input_bpart constant fixed bin(18,0) initial dcl 19-19 max_buffer_tally constant fixed bin(17,0) initial array dcl 21-43 nm_astep 000140 automatic pointer dcl 9-26 nothing 000000 constant entry external dcl 31-77 output_bpart constant fixed bin(18,0) initial dcl 19-19 ptsi_a 000137 automatic fixed bin(17,0) dcl 9-24 push_offset 000013 internal static fixed bin(17,0) initial dcl 12-78 qblock_size constant fixed bin(17,0) initial dcl 19-27 return_no_pop_offset 000015 internal static fixed bin(17,0) initial dcl 12-78 return_offset 000014 internal static fixed bin(17,0) initial dcl 12-78 seg_vtoce based structure level 1 dcl 28-92 size builtin function dcl 31-98 slte_uns based structure level 1 dcl 7-10 sst_names_$ 000024 external static fixed bin(17,0) dcl 9-7 sst_seg$ 000022 external static fixed bin(17,0) dcl 8-6 sstnmx 000136 automatic fixed bin(17,0) dcl 9-24 stack_0_data$ 000026 external static fixed bin(17,0) dcl 10-5 stack_0_data_init_number_of_stacks 000142 automatic fixed bin(17,0) dcl 10-6 stack_frame_flags based structure level 1 dcl 11-64 stack_frame_min_length 000010 internal static fixed bin(17,0) initial dcl 11-33 stack_header_overlay based fixed bin(17,0) array dcl 12-94 str_seg$ 000030 external static fixed bin(17,0) dcl 13-4 stra based bit(72) array dcl 13-15 syserr_data$syserr_area 000032 external static char(1) dcl 14-14 syserr_data$wired_log_area 000034 external static char(1) dcl 14-14 syserr_log_data$ 000036 external static fixed bin(17,0) dcl 15-8 table_alloc_len 000174 automatic fixed bin(17,0) dcl 22-30 table_descriptor based structure level 1 dcl 22-20 tdp 000172 automatic pointer dcl 22-29 tty_buf$ 000064 external static fixed bin(17,0) dcl 19-19 tty_ev constant fixed bin(17,0) initial dcl 19-19 tty_tables$ 000040 external static fixed bin(17,0) dcl 22-6 tv_offset 000011 internal static fixed bin(17,0) initial dcl 12-72 unspec builtin function dcl 31-98 vtoc_buf_arrayp 000220 automatic pointer dcl 26-19 vtoc_buf_desc_array based structure array level 1 dcl 26-77 vtoc_buf_desc_arrayp 000216 automatic pointer dcl 26-18 vtoc_buf_n_buckets 000223 automatic fixed bin(17,0) dcl 26-22 vtoc_buf_n_buffers 000222 automatic fixed bin(17,0) dcl 26-21 vtoc_buffer_seg$ 000042 external static fixed bin(17,0) dcl 26-13 vtoce_buffer_array based structure array level 1 dcl 26-95 vtoce_parts based bit(2304) array dcl 28-90 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR_RETURN 005676 constant label dcl 31-164 ref 31-188 add 005702 constant entry internal dcl 31-172 ref 18 19 20 22 24 27 29 31 33 35 37 38 39 42 43 44 45 48 51 53 55 57 59 64 65 66 70 75 77 81 86 87 88 89 91 93 94 95 96 100 102 addx 005677 constant entry internal dcl 31-172 structure_library_5_ 004522 constant entry external dcl 12 NAMES DECLARED BY CONTEXT OR IMPLICATION. divide builtin function ref 31-146 hbound builtin function ref 31-95 31-184 31-185 31-185 pointer builtin function ref 31-131 31-158 31-160 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 11354 11442 11123 11364 Length 52702 11123 66 41224 230 10 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME structure_library_5_ 470 external procedure is an external procedure. begin block on line 25 begin block shares stack frame of external procedure structure_library_5_. begin block on line 60 begin block shares stack frame of external procedure structure_library_5_. begin block on line 68 begin block shares stack frame of external procedure structure_library_5_. begin block on line 72 begin block shares stack frame of external procedure structure_library_5_. addx internal procedure shares stack frame of external procedure structure_library_5_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 stack_frame_min_length structure_library_5_ 000011 tv_offset structure_library_5_ 000012 call_offset structure_library_5_ 000013 push_offset structure_library_5_ 000014 return_offset structure_library_5_ 000015 return_no_pop_offset structure_library_5_ 000016 entry_offset structure_library_5_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME structure_library_5_ 000100 sdwp structure_library_5_ 000102 sdw_info_ptr structure_library_5_ 000104 segdamage structure_library_5_ 000130 sltep structure_library_5_ 000132 sstp structure_library_5_ 000134 sstnp structure_library_5_ 000136 sstnmx structure_library_5_ 000137 ptsi_a structure_library_5_ 000140 nm_astep structure_library_5_ 000142 stack_0_data_init_number_of_stacks structure_library_5_ 000144 sdtp structure_library_5_ 000146 sdtep structure_library_5_ 000150 sp structure_library_5_ 000152 sb structure_library_5_ 000154 strp structure_library_5_ 000156 sd_ptr structure_library_5_ 000160 wlog_ptr structure_library_5_ 000162 wmess_ptr structure_library_5_ 000164 syserr_log_data_ptr structure_library_5_ 000166 tcbp structure_library_5_ 000170 ttytp structure_library_5_ 000172 tdp structure_library_5_ 000174 table_alloc_len structure_library_5_ 000176 upt_ptr structure_library_5_ 000200 upt_entry_ptr structure_library_5_ 000202 vol_mapp structure_library_5_ 000204 vrp structure_library_5_ 000206 pvrp structure_library_5_ 000210 vtoc_buffer_segp structure_library_5_ 000212 vtoc_buf_descp structure_library_5_ 000214 vtoc_bufp structure_library_5_ 000216 vtoc_buf_desc_arrayp structure_library_5_ 000220 vtoc_buf_arrayp structure_library_5_ 000222 vtoc_buf_n_buffers structure_library_5_ 000223 vtoc_buf_n_buckets structure_library_5_ 000224 vtoc_headerp structure_library_5_ 000226 vtocep structure_library_5_ 000230 wpdp structure_library_5_ 000232 twep structure_library_5_ 000234 wtcbp structure_library_5_ 000236 code structure_library_5_ 000240 severity_ptr structure_library_5_ 000242 answer structure_library_5_ 000244 new_segp structure_library_5_ 000246 old_segp structure_library_5_ 000250 bitcount structure_library_5_ 000251 n_words structure_library_5_ 000252 p structure_library_5_ 000254 n_structures structure_library_5_ 000254 structures structure_library_5_ 000262 sltp begin block on line 25 000264 names_ptr begin block on line 25 000266 namep begin block on line 25 000270 pathp begin block on line 25 000272 aclp begin block on line 25 000274 tcmp begin block on line 60 000276 wctep begin block on line 60 000300 lock_ptr begin block on line 60 000302 ttybp begin block on line 68 000304 lock_ptr begin block on line 68 000306 blockp begin block on line 72 000310 free_blockp begin block on line 72 THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_temp call_ext_out_desc call_ext_out return_mac alloc_auto_adj shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ command_query_$yes_no get_external_variable_ get_wdir_ hcs_$make_seg hcs_$set_bc_seg hcs_$status_mins hcs_$terminate_noname THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. sst_names_$ sst_seg$ stack_0_data$ str_seg$ syserr_data$syserr_area syserr_data$wired_log_area syserr_log_data$ tty_buf$ tty_tables$ vtoc_buffer_seg$ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 004521 31 65 004527 31 95 004531 31 96 004540 18 004541 19 004550 20 004557 22 004566 24 004575 27 004604 29 004613 31 004622 33 004631 35 004640 37 004647 38 004656 39 004665 42 004674 43 004703 44 004712 45 004721 48 004730 51 004737 53 004746 55 004755 57 004764 59 004773 64 005002 65 005011 66 005020 70 005027 75 005036 77 005045 81 005054 86 005063 87 005072 88 005101 89 005110 91 005117 93 005126 94 005135 95 005144 96 005153 100 005162 102 005171 31 105 005200 31 106 005202 31 107 005227 31 110 005230 31 111 005267 31 112 005271 31 113 005320 31 116 005321 31 117 005324 31 128 005364 31 131 005367 31 133 005372 31 134 005411 31 135 005413 31 137 005437 31 140 005440 31 141 005506 31 142 005512 31 143 005544 31 146 005545 31 147 005550 31 149 005556 31 150 005571 31 151 005573 31 153 005622 31 158 005623 31 160 005653 31 162 005662 31 164 005676 31 172 005677 31 184 005704 31 185 005707 31 188 005742 31 191 005743 31 192 005744 31 193 005754 31 194 005762 Object Segment >special_ldd>install>MR12.2-1061>structure_library_5_ Created on 07/20/88 1246.5 mst Wed by GJohnson.SysMaint.a using Multics PL/I Compiler, Release 30, of February 16, 1988 Object Text Defs Link Symb Static Start 0 0 11123 11354 11442 11364 Length 52702 11123 230 66 41224 10 3 Definitions: segname: !BBBJXbnbKXwJcQ text|4522 structure_library_5_ Entrypoint symb|0 symbol_table 19 Links: link|20 *symbol|0 link|44 com_err_ link|46 command_query_$yes_no link|50 get_external_variable_ link|52 get_wdir_ link|62 hcs_$terminate_noname link|60 hcs_$status_mins link|56 hcs_$set_bc_seg link|54 hcs_$make_seg link|24 sst_names_|0 link|22 sst_seg|0 link|26 stack_0_data|0 link|30 str_seg|0 link|34 syserr_data$wired_log_area link|32 syserr_data$syserr_area link|36 syserr_log_data|0 link|64 tty_buf|0 link|40 tty_tables|0 link|42 vtoc_buffer_seg|0 ----------------------------------------------------------- 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