COMPILATION LISTING OF SEGMENT !BBBJXbnbGJBjCD Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/20/88 1244.7 mst Wed Options: table map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 10 /* HISTORY COMMENTS: 11* 1) change(87-04-26,GDixon), approve(87-05-01,MCR7741), 12* audit(87-05-07,Parisek), install(87-08-04,MR12.1-1055): 13* Upgraded for change to answer_table.incl.pl1. 14* END HISTORY COMMENTS */ 15 16 17 /* format: off */ 18 19 structure_library_1_: 20 procedure (); 21 22 /* First come all the structures */ 23 1 1 /* BEGIN INCLUDE FILE aim_template.incl.pl1 */ 1 2 1 3 /* Created 740723 by PG */ 1 4 /* Modified 06/28/78 by C. D. Tavares to add rcp privilege */ 1 5 /* Modified 83-05-10 by E. N. Kitltitz to add communications privilege */ 1 6 1 7 /* This structure defines the components of both an access 1 8* class and an access authorization as interpreted by the 1 9* Access Isolation Mechanism. */ 1 10 1 11 1 12 dcl 1 aim_template aligned based, /* authorization/access class template */ 1 13 2 categories bit (36), /* access categories */ 1 14 2 level fixed bin (17) unaligned, /* sensitivity level */ 1 15 2 privileges unaligned, /* special access privileges (in authorization only) */ 1 16 (3 ipc, /* interprocess communication privilege */ 1 17 3 dir, /* directory privilege */ 1 18 3 seg, /* segment privilege */ 1 19 3 soos, /* security out-of-service privilege */ 1 20 3 ring1, /* ring 1 access privilege */ 1 21 3 rcp, /* RCP resource access privilege */ 1 22 3 comm) bit (1), /* communications cross-AIM privilege */ 1 23 3 pad bit (11); 1 24 1 25 1 26 /* END INCLUDE FILE aim_template.incl.pl1 */ 24 call add ("aim_template", addr (p -> aim_template)); 25 begin; 26 /* BEGIN INCLUDE FILE ... answer_table.incl.pl1 */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* The answer table has one entry per "login instance" whether completed or */ 2 6 /* not. It is connected to the Channel Definition Table by the pointer */ 2 7 /* "channel". The header is used mostly by dialup_. */ 2 8 /* */ 2 9 /* Programs which use this file must also include user_table_header.incl.pl1 */ 2 10 /* */ 2 11 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 12 2 13 /****^ HISTORY COMMENTS: 2 14* 1) change(81-09-10,Kittlitz), approve(), audit(), install(): 2 15* Replace anstbl.incl.pl1. 2 16* 2) change(85-01-15,Swenson), approve(), audit(), install(): 2 17* Add anstbl.session_uid_counter. 2 18* 3) change(85-08-21,Coren), approve(), audit(), install(): 2 19* Add anstbl.message_update_time and named constants for values of 2 20* anstbl.session, and to make all padding explicit. 2 21* 4) change(85-08-23,Coren), approve(), audit(), install(): 2 22* Change "entry" to a placeholder so as not to require 2 23* user_table_entry.incl.pl1. 2 24* 5) change(86-06-29,Swenson), approve(87-07-13,MCR7741), 2 25* audit(87-04-14,GDixon), install(87-08-04,MR12.1-1056): 2 26* Added the flag login_server_present which indicates whether a login 2 27* server request has been received. This is used to determine whether 2 28* dial_ctl_ should call uc_cleanup_network_dials_ (and thus 2 29* hpriv_connection_list_, which only exists with the MNA RPQ software). 2 30* 6) change(87-04-14,GDixon), approve(87-07-13,MCR7741), 2 31* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 2 32* A) Moved constants for ute.pw_flags.mask_ctl into 2 33* user_table_entry.incl.pl1. 2 34* B) Added common table header to all user tables. 2 35* END HISTORY COMMENTS */ 2 36 2 37 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 38 /* */ 2 39 /* The anstbl structure below is divided into sections. Each section begins */ 2 40 /* with a comment describing the elements in the section. Elements are */ 2 41 /* placed within a section, based upon their function or the programs that */ 2 42 /* use them. Each section begins on a double word and is an even number of */ 2 43 /* words long. */ 2 44 /* */ 2 45 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 46 2 47 2 48 2 49 /* format: style4 */ 2 50 2 51 dcl ANSTBL_version_4 static options (constant) init (4); /* version of this declaration */ 2 52 2 53 dcl ansp ptr automatic init (null); 2 54 2 55 dcl 1 anstbl based (ansp) aligned, /* Structure of answer table */ 2 56 2 header like ut_header, /* Header common to all user tables. */ 2 57 2 58 /* Counter elements. */ 2 59 2 nlin fixed bin, /* number of active lines */ 2 60 2 mxlin fixed bin, /* maximum number of active lines */ 2 61 2 n_users fixed bin, /* number of logged-in users */ 2 62 2 max_users fixed bin, /* maximum number of users allowed */ 2 63 2 n_units fixed bin, /* number of logged in units */ 2 64 2 max_units fixed bin, /* maximum number of units */ 2 65 2 n_sessions fixed bin, /* number of Multics sessions */ 2 66 2 n_pad fixed bin, 2 67 2 68 /* Name elements. */ 2 69 2 sysdir char (64) unal, /* name of main system control directory */ 2 70 2 as_tty char (8) unal, /* name of main answering service device. */ 2 71 2 72 /* Login elements. */ 2 73 2 login_word char (8) unal, /* login word if special_session=1 */ 2 74 2 session char (8) unal, /* session indicator */ 2 75 2 special_message char (128) unal, /* message to be printed for special session */ 2 76 2 message_update_time fixed bin (71), /* time at which special_message was last updated */ 2 77 2 message_lng fixed bin, /* length of special message */ 2 78 2 login_pad fixed bin, 2 79 2 80 /* Table update elements. */ 2 81 2 lock_count fixed bin, /* global lock for all system control tables */ 2 82 2 update_pending bit (1) aligned, /* flag indicating that update is required */ 2 83 2 update_channel fixed binary (71), /* event channel of update procedure */ 2 84 2 acct_update_chn fixed bin (71) aligned, /* Timer IPC channel */ 2 85 2 acct_last_update_time fixed bin (71) aligned, /* Time of last accounting update */ 2 86 2 acct_alarm_fail fixed bin, /* non-zero if alarm has failed */ 2 87 2 update_pad fixed bin, 2 88 2 89 /* dialup_ data values. */ 2 90 2 current_time fixed bin (71), /* Time of last transaction */ 2 91 2 processid_index fixed bin (18), /* unique index for process id generation */ 2 92 2 session_uid_counter fixed bin (35), /* current session_uid */ 2 93 2 94 /* load_ctl_ elements. */ 2 95 2 shift fixed bin, /* Shift, set by act_ctl_ */ 2 96 2 auto_maxu fixed bin, /* 0 = manual, 1 = config, 2 = load-level */ 2 97 2 extra_units fixed bin, /* Total daemon and abs units. */ 2 98 /* load_ctl_ load leveling desired response range: */ 2 99 2 response_high fixed bin, /* bad if user response time slower than this */ 2 100 2 response_low fixed bin, /* bad if user response time faster than this */ 2 101 2 load_ctl_pad fixed bin, 2 102 2 103 /* Login server request server data. */ 2 104 2 ls_request_server_event_channel fixed bin (71), /* channel for login server requests */ 2 105 2 ls_request_server_process_id bit (36) aligned, /* process serving login server requests */ 2 106 2 login_server_present bit (1) aligned, /* On IFF a login server request has been processed */ 2 107 2 108 2 entry_pad (28) fixed bin, /* pad to 128 words */ 2 109 2 entry (0 refer (anstbl.current_size)), /* user entries */ 2 110 3 contents (UTE_SIZE) fixed bin; 2 111 2 112 /* constants */ 2 113 2 114 /* values for anstbl.session */ 2 115 2 116 dcl (AT_NORMAL init ("normal "), 2 117 AT_SPECIAL init ("special "), 2 118 AT_SHUTDOWN init ("shutdown")) char (8) internal static options (constant); 2 119 2 120 dcl UTE_SIZE fixed bin internal static initial (300); 2 121 2 122 /* END INCLUDE FILE ... answer_table.incl.pl1 */ 26 27 /* BEGIN INCLUDE FILE ... user_table_header.incl.pl1 */ 3 2 3 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 4 /* */ 3 5 /* This include file declares the header shared by the answer_table, */ 3 6 /* absentee_user_table and daemon_user_table include files. */ 3 7 /* */ 3 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 3 9 3 10 /****^ HISTORY COMMENTS: 3 11* 1) change(87-04-26,GDixon), approve(87-07-13,MCR7741), 3 12* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 3 13* Initial coding. 3 14* END HISTORY COMMENTS */ 3 15 3 16 dcl 1 ut_header aligned based, /* header shared by all user control tables. */ 3 17 2 header_version fixed bin, /* version of the header (3) */ 3 18 2 entry_version fixed bin, /* version of user table entries */ 3 19 2 user_table_type fixed bin, /* 1 interactive, 2 absentee, 3 daemon */ 3 20 2 header_length fixed bin, /* length of the header */ 3 21 2 max_size fixed bin, /* max number of entries in this table */ 3 22 2 current_size fixed bin, /* actual size of table (in entries) */ 3 23 2 number_free fixed bin, /* number of free entries in the table. */ 3 24 2 first_free fixed bin, /* index of first entry in the free list. */ 3 25 2 as_procid bit (36), /* process ID of user table manager process */ 3 26 2 ut_header_pad fixed bin; 3 27 3 28 /* END INCLUDE FILE ... user_table_header.incl.pl1 */ 27 28 dcl 1 answer_table aligned like anstbl based; 29 call add ("answer_table", addr (p -> answer_table)); 30 end; 4 1 /* BEGIN INCLUDE FILE ... apte.incl.pl1 */ 4 2 4 3 /* Modified 1984-11-11 by E. Swenson for IPC event channel validation. */ 4 4 4 5 dcl aptep pointer; 4 6 4 7 dcl 1 apte based (aptep) aligned, /* APT entry declaration for an active (known) process */ 4 8 2 thread unaligned, /* List thread */ 4 9 3 fp bit (18), /* Forward pointer */ 4 10 3 bp bit (18), /* Backward pointer */ 4 11 2 flags unaligned, /* Flags and miscellaneous */ 4 12 3 mbz bit (1), /* This bit must be zero (sentinel bit) */ 4 13 3 wakeup_waiting bit (1), /* ON if process has received wakeup */ 4 14 3 stop_pending bit (1), /* ON if process has received stop connect */ 4 15 3 pre_empted bit (1), /* ON if process is being pre-empted by get_processor */ 4 16 3 hproc bit (1), /* ON if process is hardcore process */ 4 17 3 loaded bit (1), /* ON if required per-process pages are in memory and wired */ 4 18 3 eligible bit (1), /* ON if process is eligible */ 4 19 3 idle bit (1), /* ON if this is an idle process */ 4 20 3 interaction bit (1), /* ON if process has interacted recently */ 4 21 3 pre_empt_pending bit (1), /* ON if process has received pre-empt connect */ 4 22 3 default_procs_required bit (1), /* ON if apte.procs_required is system default */ 4 23 3 realtime_burst bit (1), /* ON if next eligibility is realtime */ 4 24 3 always_loaded bit (1), /* ON if process is not to be unloaded */ 4 25 3 dbr_loaded bit (1), /* ON if DBR is loaded on some CPU */ 4 26 3 being_loaded bit (1), /* ON if somebody loading this process */ 4 27 3 shared_stack_0 bit (1), /* ON if a shared stack_0 is assigned */ 4 28 3 page_wait_flag bit (1), /* flag ON if waiting for page */ 4 29 3 firstsw bit (1), /* OFF until process is intialized */ 4 30 3 state bit (18), /* execution state */ 4 31 2 page_faults fixed bin (35), /* total page faults for the process */ 4 32 2 processid bit (36), /* bit 0-17: offset of ATPE */ 4 33 /* bit 18-35: sequential number */ 4 34 2 te fixed bin (35), /* virtual time since eligibility award */ 4 35 2 ts fixed bin (35), /* virtual time since scheduling */ 4 36 2 ti fixed bin (35), /* virtual time since interaction */ 4 37 2 timax fixed bin (35), /* maximum value allowed for apte.ti */ 4 38 4 39 /* * * * * * * * */ 4 40 4 41 2 ipc_pointers unaligned, 4 42 3 event_thread bit (18), /* relative pointer to ITT list */ 4 43 3 pad3 bit (18), 4 44 2 ips_message bit (36), /* IPS signals pending */ 4 45 2 asteps unaligned, /* relative ASTE pointers */ 4 46 3 pds bit (18), /* PDS (per-process) */ 4 47 3 dseg bit (18), /* DSEG (per-process) */ 4 48 3 prds bit (18), /* PRDS (per-processor) */ 4 49 2 savex7 bit (18) unaligned, /* x7 at call to getwork (return point in pxss) */ 4 50 2 term_processid bit (36), /* process to send wakeup at temination */ 4 51 2 lock_id bit (36), /* File System unqieu ID associated with process */ 4 52 2 time_used_clock fixed bin (71), /* Total CPU time when process last lost CPU */ 4 53 4 54 /* * * * * * * * */ 4 55 4 56 2 wait_event bit (36) aligned, /* Event ID process awaiting */ 4 57 2 wct_index bit (18) unaligned, /* rel offset of WCTE */ 4 58 2 flags2 unaligned, 4 59 3 priority_scheduling bit (1), /* ON if guaranteed eligibility */ 4 60 3 special_wakeups bit (6), /* Special wakeup channels */ 4 61 3 pad7 bit (7), 4 62 3 batch bit (1), /* ON if absentee */ 4 63 3 pr_tag bit (3), /* CPU tag running or last run */ 4 64 2 state_change_time fixed bin (71), /* Time apte.state last changed */ 4 65 2 alarm_event fixed bin (71), /* wakeup event for alarm clock manager */ 4 66 2 alarm_time_thread bit (18) unaligned, /* thread of processes with pending alarms */ 4 67 2 alarm_time bit (54) unaligned, /* wakeup time for alarm */ 4 68 4 69 /* * * * * * */ 4 70 4 71 2 term_channel fixed bin (71), /* wakeup event for account overflow */ 4 72 2 ws_size fixed bin, /* working set estimate for the process */ 4 73 2 temax fixed bin (35), /* maximum eligibility slice (vcpu) */ 4 74 2 deadline fixed bin (71), /* time of next run */ 4 75 2 lock bit (18) unaligned, /* 0 => APTE locked, unlocked => return point of last unlock */ 4 76 2 unusable bit (18) unaligned, /* locking routines destroy */ 4 77 2 cpu_monitor fixed bin (35), /* if not 0, send wakeup to term_processid when virtual cpu 4 78* /* reaches this (units = 1/1024 sec) */ 4 79 2 paging_measure fixed bin (71), /* cumulative memory units */ 4 80 2 access_authorization bit (72), /* authorization of this process */ 4 81 2 dbr fixed bin (71), /* DBR value (constant since DSEG entry-held) */ 4 82 4 83 2 virtual_cpu_time fixed bin (71), /* cumulative virtual CPU time for the process */ 4 84 2 ittes_sent fixed bin (18), /* Unprocessed ITTs sent by this process */ 4 85 2 ittes_got fixed bin (18), /* Unprocessed ITTs received by this process */ 4 86 4 87 /* Cells used to drive and instrument finite-state model for response time 4 88* measurement. Maintained by meter_response_time */ 4 89 4 90 2 current_response_state fixed bin (17) unaligned, /* Process state in modle */ 4 91 2 pad18 bit (18) unaligned, 4 92 2 number_processing fixed bin (35), /* Number interactions */ 4 93 2 last_response_state_time fixed bin (71), /* Clock time at last response state change */ 4 94 2 total_processing_time fixed bin (71), /* Total interaction processing time */ 4 95 4 96 /* * * * * * */ 4 97 4 98 2 begin_interaction_vcpu fixed bin (71), /* Virtual cpu at beginning of last interaction */ 4 99 4 100 /* End of cells for finite-state model */ 4 101 4 102 2 saved_temax fixed bin (35), /* temax at eligibility award */ 4 103 2 procs_required bit (8) unaligned, /* bit mask of CPUs this process can run */ 4 104 2 pad4 bit (28) unaligned, 4 105 2 ipc_r_offset fixed bin (18) unsigned, 4 106 2 ipc_r_factor fixed bin (35) unsigned, 4 107 2 apad (10) fixed bin (35); 4 108 4 109 /* END INCLUDE FILE ... apte.incl.pl1 */ 31 call add ("apte", addr (p -> apte)); 5 1 /* BEGIN INCLUDE FILE area_structures.incl.pl1 10/75 */ 5 2 /* Modified September 1981 by J. Bongiovanni for allocation_p_clock */ 5 3 5 4 dcl area_version_1 fixed bin static init (1); /* version number for this area format */ 5 5 5 6 dcl areap ptr; 5 7 5 8 dcl 1 area_header aligned based (areap), 5 9 2 version fixed bin (35), /* 0 for buddy system, 1 for current areas */ 5 10 2 last_usable bit (18), /* rel pointer to end of area */ 5 11 2 next_virgin bit (18), /* rel pointer to next slot in virgin territory */ 5 12 2 flags, 5 13 3 extend bit (1) unal, /* says area is extensible */ 5 14 3 zero_on_alloc bit (1) unal, /* says to zero after allocation */ 5 15 3 zero_on_free bit (1) unal, /* says to zero after freeing */ 5 16 3 dont_free bit (1) unal, /* dont honor free request -- debugging tool */ 5 17 3 defined_by_call bit (1) unal, /* says area seg got via define_area_ call */ 5 18 3 system bit (1) unal, /* ayss area is managed by the system */ 5 19 3 mbz bit (30) unal, 5 20 2 allocation_method fixed bin, /* 0 is standard, 1 is no_freeing method */ 5 21 2 last_size bit (18), /* size of last allocated block before virgin territory */ 5 22 2 last_block bit (18), /* rel pointer to last allocated block before virgin territory */ 5 23 2 freep (3:16), /* free list info */ 5 24 3 relp bit (18) unal, /* pointer to first block on list */ 5 25 3 max_block_size bit (18) unal, /* size of largest block on list, if known. else zero */ 5 26 2 allocation_p_clock bit (36) aligned, /* counter to prevent IPS race */ 5 27 2 extend_info bit (18) unal, /* offset to extend info block */ 5 28 2 recovery_info bit (18) unal, /* eventually will hold recovery info relp */ 5 29 2 n_allocated fixed bin (17) unal, /* number of allocated blocks */ 5 30 2 n_free fixed bin (17) unal; /* number of free blocks */ 5 31 5 32 dcl (STANDARD_ALLOCATION_METHOD init (0), 5 33 NO_FREEING_ALLOCATION_METHOD init (1) 5 34 ) fixed bin internal static; 5 35 5 36 dcl extend_blockp ptr; 5 37 5 38 dcl 1 extend_block aligned based (extend_blockp), /* contents of extend block for extensible areas */ 5 39 2 first_area ptr unal, /* pointer to first area */ 5 40 2 next_area ptr unal, /* pointer to next area in chain */ 5 41 2 sequence_no fixed bin, /* sequence number for this component */ 5 42 2 name char (32), /* owner of the area */ 5 43 2 pad fixed; /* brings it to an even, 12 word allocation */ 5 44 5 45 dcl alloc_blkhdrsz static internal init(2); 5 46 dcl 1 no_free_area_header aligned based(areap), /* overlay for no_free areas */ 5 47 2 pad(4) ptr, 5 48 2 current_component ptr; /* points to component from which we are allocating */ 5 49 5 50 dcl blockp ptr; 5 51 5 52 dcl 1 block aligned based (blockp), /* declaration for block header */ 5 53 2 prev_size bit (18) unal, /* size of preceding block */ 5 54 2 cur_size bit (18) unal, /* size of current block */ 5 55 2 buddy_pad bit (8) unal, /* non_zero for buddy system area */ 5 56 2 prev_busy bit (1) unal, /* previous-block-is-used flag */ 5 57 2 marked bit (1) unal, 5 58 2 q_no bit (8) unal, /* stratum number when in free list */ 5 59 2 header bit (18) unal, /* pointer to head of area */ 5 60 2 fp bit (18) unal, /* forward free list thread */ 5 61 2 bp bit (18) unal; /* backward free list thread */ 5 62 5 63 dcl min_block_size fixed bin static init (8); /* minimum allowed block size */ 5 64 5 65 /* END INCLUDE FILE area_structures.incl.pl1 */ 32 33 call add ("area_header", addr (p -> area_header)); 34 call add ("extend_block", addr (p -> extend_block)); 35 dcl 1 area_block aligned like block based; /* better name */ 36 call add ("area_block", addr (p -> area_block)); 6 1 /* START OF: ast_lock_meters.incl.pl1 * * * * * * * * * * * * * * * * */ 6 2 6 3 dcl ast_lock_meter_seg$ external; 6 4 6 5 dcl ast_lock_meter_segp ptr; 6 6 6 7 dcl 1 ast_lock_meters aligned based (ast_lock_meter_segp), 6 8 2 n_entries fixed bin, 6 9 2 max_n_entries fixed bin, 6 10 2 invalid fixed bin, 6 11 2 last_locker fixed bin, 6 12 2 last_lock_time fixed bin (71), 6 13 2 last_lock_vcpu fixed bin (71), 6 14 2 last_lock_pf fixed bin (35), 6 15 2 meters (0 refer (ast_lock_meters.max_n_entries)) aligned like lock_meters; 6 16 6 17 dcl 1 lock_meters aligned based, 6 18 2 caller ptr unal, 6 19 2 n_calls fixed bin (35), 6 20 2 time_locked fixed bin (71), 6 21 2 vcpu_locked fixed bin (71), 6 22 2 pf_locked fixed bin (35), 6 23 2 pad fixed bin (35); 6 24 6 25 6 26 /* END OF: ast_lock_meters.incl.pl1 * * * * * * * * * * * * * * * * */ 38 call add ("ast_lock_meters", addr (p -> ast_lock_meters)); 7 1 /* BEGIN INCLUDE FILE ...aste.incl.pl1 ... */ 7 2 7 3 /* Template for an AST entry. Length = 12 words. */ 7 4 7 5 /* Words 0 to 7, and 11 are read by PC; they are read and modified by SC. 7 6* Words 8, 9 and 10 are modified by PC; they should never be modified without locking the PC lock */ 7 7 /* Modified January 1985 by Keith Loepere for multi_class. */ 7 8 7 9 dcl astep ptr; 7 10 7 11 dcl 1 aste based (astep) aligned, 7 12 7 13 (2 fp bit (18), /* forward used list rel pointer */ 7 14 2 bp bit (18), /* backward used list rel pointer */ 7 15 7 16 2 infl bit (18), /* ptr to NEXT in list of ASTE's of my brothers */ 7 17 2 infp bit (18), /* ptr to FIRST in list of ASTE's of my children */ 7 18 7 19 2 strp bit (18), /* rel pointer to process trailer */ 7 20 2 par_astep bit (18), /* rel pointer to parent aste */ 7 21 7 22 2 uid bit (36), /* segment unique id */ 7 23 7 24 2 msl bit (9), /* maximum segment length in 1024 word units */ 7 25 2 pvtx fixed bin (8), /* physical volume table index */ 7 26 2 vtocx fixed bin (17), /* vtoc entry index */ 7 27 7 28 2 usedf bit (1), /* ast entry is being used if non-zero */ 7 29 2 init bit (1), /* used bit - insure 1 lap */ 7 30 2 gtus bit (1), /* global transparent usage switch */ 7 31 2 gtms bit (1), /* global transparent modified switch */ 7 32 2 hc bit (1), /* hard core segment */ 7 33 2 hc_sdw bit (1), /* aste with sdw for hardcore seg if non-zero */ 7 34 2 any_access_on bit (1), /* any sdw allows access, unless write_access_on */ 7 35 2 write_access_on bit (1), /* any sdw allows write access */ 7 36 2 inhibit_cache bit (1), /* flag not to reset above bits */ 7 37 2 explicit_deact_ok bit (1), /* set if user can deactivate seg */ 7 38 2 deact_error bit (1), /* set if error occurred while deactivating */ 7 39 2 hc_part bit (1), /* set if pages are in a hardcore partition */ 7 40 2 fm_damaged bit (1), /* set if filemap checksum was ever bad */ 7 41 2 multi_class bit (1), /* set if page_control should watch state changes to this segment */ 7 42 2 pad1 bit (2), /* OO */ 7 43 2 dius bit (1), /* dumper in use switch */ 7 44 2 nid bit (1), /* if on prevents addtion to incremental dump map */ 7 45 2 dmpr_pad bit (1), 7 46 2 ehs bit (1), /* entry hold switch */ 7 47 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 7 48 2 dirsw bit (1), /* directory switch */ 7 49 2 master_dir bit (1), /* master dir - a root for the log volume */ 7 50 2 volmap_seg bit (1), /* volmap_seg for some volume */ 7 51 2 tqsw (0:1) bit (1), /* terminal quota switch - (0) for non dir pages */ 7 52 2 pad_ic bit (10), /* Used to be aste.ic */ 7 53 7 54 2 dtu bit (36), /* date and time segment last used */ 7 55 7 56 2 dtm bit (36), /* date and time segment last modified */ 7 57 7 58 7 59 2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 7 60 7 61 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 7 62 7 63 2 csl bit (9), /* current segment length in 1024 words units */ 7 64 2 fmchanged bit (1), /* turned on by page if file map changed */ 7 65 2 fms bit (1), /* file modified switch */ 7 66 2 npfs bit (1), /* no page fault switch */ 7 67 2 gtpd bit (1), /* global transparent paging device switch */ 7 68 2 dnzp bit (1), /* don't null out if zero page switch */ 7 69 2 per_process bit (1), /* use master quota for this entry */ 7 70 2 ddnp bit (1), /* don't deposit nulled pages */ 7 71 2 pad2 bit (2), 7 72 2 records bit (9), /* number of records used by the seg in sec storage */ 7 73 2 np bit (9), /* number of pages in core */ 7 74 7 75 7 76 2 ht_fp bit (18), /* hash table forward rel pointer */ 7 77 2 fmchanged1 bit (1), /* value of "fmchanged" saved by pc$get_file_map */ 7 78 2 damaged bit (1), /* PC declared segment unusable */ 7 79 2 pack_ovfl bit (1), /* page fault on seg would cause pack overflow */ 7 80 2 synchronized bit (1), /* Data Management synchronized segment */ 7 81 2 pad3 bit (6), /* OOOOOOOOO */ 7 82 2 ptsi bit (2), /* page table size index */ 7 83 2 marker bit (6)) unaligned; /* marker to indicate last word of ASTE */ 7 84 7 85 7 86 dcl asta (0 : 8000) bit (36*12 /* sst-> sst.astsize */) based aligned; 7 87 7 88 7 89 dcl 1 aste_part aligned based (astep), 7 90 7 91 2 one bit (36) unaligned, /* fp and bp */ 7 92 2 two bit (36*11 - 8) unaligned, /* part that has to be zeroed when ASTE is freed */ 7 93 2 three bit (8) unaligned; /* ptsi and marker */ 7 94 7 95 7 96 dcl 1 seg_aste based (astep) aligned, /* Overlay because quota is only for dirs */ 7 97 2 pad1 bit (8*36), 7 98 2 usage fixed bin (35), /* page fault count: overlays quota */ 7 99 2 pad2 bit (3*36); 7 100 7 101 /* END INCLUDE FILE ... aste.incl.pl1 */ 39 call add ("aste", addr (p -> aste)); 40 8 1 /* BEGIN INCLUDE FILE ... bos_dump.incl.pl1 ... */ 8 2 /* Modified 1 September 1976 */ 8 3 /* Modified 11/11/80 by J. A. Bush for the DPS8/70M CPU */ 8 4 /* Modified 6/12/81 by Rich Coppola to extend the dps8 extended fault reg to 8 5* 15 bits */ 8 6 /* Modified 02/23/81, W. Olin Sibert, to describe old and new FDUMP styles */ 8 7 8 8 8 9 dcl dumpptr ptr; /* pointer to following structure */ 8 10 8 11 dcl 1 dump based (dumpptr) aligned, /* header of dump by fdump */ 8 12 2 dump_header aligned like dump_header, 8 13 8 14 2 segs (1008), /* segment array */ 8 15 3 segno bit (18) unal, /* segment number */ 8 16 3 length bit (18) unal, /* length of segment in sector sized blocks */ 8 17 8 18 2 amptwregs (0 : 63) bit (36), /* assoc. mem. page table word regs */ 8 19 2 amptwptrs (0 : 63) bit (36), /* assoc. mem. page table word pointers */ 8 20 2 amsdwregs (0 : 63) bit (72), /* assoc. mem. segment descriptor word registers */ 8 21 2 amsdwptrs (0 : 63) bit (36), /* assoc. mem. segment descriptor word pointers */ 8 22 8 23 2 ouhist (0 : 63) bit (72), /* operations unit history registers */ 8 24 2 cuhist (0 : 63) bit (72), /* control unit history registers */ 8 25 2 duhist (0 : 63) bit (72), /* decimal unit history registers */ 8 26 2 auhist (0 : 63) bit (72), /* appending unit history registers */ 8 27 8 28 2 prs (0 : 7) ptr, /* pointer registers */ 8 29 8 30 2 regs aligned like dump_registers, /* assorted machine registers */ 8 31 8 32 2 low_order_port bit (3), /* from which clock is read */ 8 33 2 pad4 bit (36), 8 34 2 mctime fixed bin (52), /* time conditions were taken */ 8 35 2 pad5 (0 : 3) bit (36), 8 36 8 37 2 misc_registers like dump_misc_registers, /* Assorted registers & processor data */ 8 38 8 39 2 ptrlen (0 : 7) bit (36), /* pointers and lengths for EIS */ 8 40 8 41 2 coreblocks (0 : 7), 8 42 3 num_first bit (18) unal, /* first addr in coreblock */ 8 43 3 num_blocks bit (18) unal, /* number of blocks used */ 8 44 2 pad7 (112) fixed bin; 8 45 8 46 8 47 dcl 1 dump_header aligned based, /* Standard header for FDUMP */ 8 48 2 words_dumped fixed bin (35), /* total words in dump */ 8 49 2 valid bit (1), /* = 1 if there is a 6180 dump to be had */ 8 50 2 time fixed bin (71), /* time of dump */ 8 51 2 erfno fixed bin (18), /* Error Report Form Number */ 8 52 2 num_segs fixed bin, /* number of segments dumped */ 8 53 2 valid_355 bit (1), /* = 1 if there is a dn355 dump to be had */ 8 54 2 dumped_355s bit (4), /* indicates which 355s were dumped */ 8 55 2 time_355 fixed bin (71), /* time of 355 dump */ 8 56 2 version fixed bin, /* currently 2 */ 8 57 2 pad0 (5) fixed bin; /* pad0 to 16 words */ 8 58 8 59 dcl 1 dump_registers aligned based, /* Standard (SREG) arrangement of registers in dump */ 8 60 (2 x (0 : 7) bit (18), /* index registers */ 8 61 2 a bit (36), /* the a register */ 8 62 2 q bit (36), /* the q register */ 8 63 2 e bit (8), /* the e register */ 8 64 2 pad2 bit (28), /* pad */ 8 65 2 t bit (27), /* timer register */ 8 66 2 pad3 bit (6), /* pad */ 8 67 2 ralr bit (3)) unaligned; /* ring alarm register */ 8 68 8 69 dcl 1 dump_misc_registers aligned based, 8 70 2 scu (0 : 7) bit (36), /* from store control unit instr. */ 8 71 2 mcm (0 : 7) bit (72), /* memory controller masks every 64 K */ 8 72 2 dbr bit (72), /* descriptor segment base register */ 8 73 2 intrpts bit (36), /* interrupts */ 8 74 2 bar bit (36), /* base address register */ 8 75 2 modereg bit (36), /* mode register */ 8 76 2 cmodereg bit (36), /* cache mode register */ 8 77 2 faultreg bit (36), /* fault register */ 8 78 2 ext_fault_reg bit (15) unaligned, /* DPS8 extended fault register */ 8 79 2 pad6 bit (21) unaligned; 8 80 8 81 8 82 8 83 dcl 1 v1_dump aligned based (dumpptr), /* Old version of FDUMP (pre March, 1981) */ 8 84 2 dump_header aligned like dump_header, 8 85 8 86 2 segs (688), /* segment array */ 8 87 3 segno bit (18) unal, /* segment number */ 8 88 3 length bit (18) unal, /* length of segment in sector sized blocks */ 8 89 8 90 2 amsdwregs (0 : 15) bit (72), /* assoc. mem. segment descriptor word registers */ 8 91 2 amsdwptrs (0 : 15) bit (36), /* assoc. mem. segment descriptor word pointers */ 8 92 2 amptwregs (0 : 15) bit (36), /* assoc. mem. page table word regs */ 8 93 2 amptwptrs (0 : 15) bit (36), /* assoc. mem. page table word pointers */ 8 94 2 pad1 (0 : 15) bit (36), 8 95 8 96 2 ouhist (0 : 15) bit (72), /* operations unit history registers */ 8 97 2 cuhist (0 : 15) bit (72), /* control unit history registers */ 8 98 2 auhist (0 : 15) bit (72), /* appending unit history registers */ 8 99 2 duhist (0 : 15) bit (72), /* decimal unit history registers */ 8 100 8 101 2 prs (0 : 7) ptr, /* pointer registers */ 8 102 8 103 2 regs aligned like dump_registers, /* assorted machine registers */ 8 104 8 105 2 mctime fixed bin (52), /* time conditions were taken */ 8 106 2 pad4 (0 : 5) bit (36), 8 107 8 108 2 misc_registers aligned like dump_misc_registers, /* Assorted registers */ 8 109 8 110 2 pad5 bit (36), 8 111 2 ptrlen (0 : 7) bit (36), /* pointers and lengths for EIS */ 8 112 2 pad6 (15) bit (36), 8 113 2 low_order_port bit (3), /* from which clock was read */ 8 114 8 115 2 coreblocks (0 : 7), 8 116 3 num_first bit (18) unal, /* first addr in coreblock */ 8 117 3 num_blocks bit (18) unal; /* number of blocks used */ 8 118 8 119 8 120 dcl DUMP_VERSION_1 fixed bin internal static options (constant) init (1); 8 121 dcl DUMP_VERSION_2 fixed bin internal static options (constant) init (2); 8 122 8 123 /* END INCLUDE FILE ... bos_dump.incl.pl1 ... */ 41 42 dcl 1 bos_dump aligned like dump based; /* better name */ 43 call add ("bos_dump", addr (p -> bos_dump)); 44 9 1 /* BEGIN INCLUDE FILE ... cdt.incl.pl1 */ 9 2 9 3 /* format: style3,idind25,indcomtxt */ 9 4 9 5 /* Channel Definition Table. 9 6* This table lists all of the hardware channels (ports) connected 9 7* to the system, and maintains the attributes of each one. 9 8* 9 9* PG 741230 9 10* Modified by Mike Grady 5/6/76 to add FNP info. 9 11* Modified by Tom Casey 7/29/76 to add more FNP info and a few other things. 9 12* Modified by Robert Coren 6/13/77 to make terminal types be character strings. 9 13* Modified July 1979 by T. Casey to add several variables for MR8.0 process preservation facility. 9 14* Modified December 1980 by E. N. Kittlitz to eliminate cdte.phone_no. 9 15* Modified March 1981 by Robert Coren to add "listening" flag for multiplexers and to add TANDD_SERVICE service_type. 9 16* Modified April 1981 by E. N. Kittlitz to add cdte.dial_ev_chn, cdte.recent_wakeup_time, cdte.recent_wakeup_count. 9 17* Modified July 1981 by T. Casey for MR9.0 to add dialup_flags.detach_after_hangup 9 18* Modified December 1981 by E. N. Kittlitz for cdte.leave_edited, cdte.hold_arg, 9 19* Modified September 1981 by Benson I. Margulies for cdt_mgr_'s tree of multiplexer's. 9 20* Modified August 1982 by E. N. Kittlitz for check_acs. 9 21* Modified January 1983 by Keith Loepere for generic_destination. 9 22* Modified August 1983 by Robert Coren to add mpxe.check and mpxe.retry_load. 9 23* Modified 831216 by E. N. Kittlitz for required_access_class. 9 24* Modified 84-04-01 by BIM to finish communications AIM: 9 25* access class ranges, 9 26* access_control flags. 9 27**/ 9 28 9 29 9 30 /****^ HISTORY COMMENTS: 9 31* 1) change(87-03-17,Beattie), approve(87-04-06,MCR7656), 9 32* audit(87-07-13,Parisek), install(87-08-04,MR12.1-1056): 9 33* Add support for answering service to use IOCBs when tty_ cannot be 9 34* used to service login channels. 9 35* END HISTORY COMMENTS */ 9 36 9 37 9 38 dcl CDT_version_5 fixed bin internal static initial (5) options (constant); 9 39 dcl CDT_version fixed bin internal static initial (6) options (constant); 9 40 9 41 dcl (cdtp, cdtep, fnpep, mpxep) 9 42 ptr; 9 43 9 44 dcl 1 cdt based (cdtp) aligned, /* all of the system channels */ 9 45 2 author like author_dcl.author, /* standard header */ 9 46 2 max_size fixed bin, /* maximum number of cdte's in 255K */ 9 47 2 current_size fixed bin, /* number of last cdte. */ 9 48 2 version fixed bin, 9 49 2 freep fixed bin, /* chain of free cdte's */ 9 50 2 n_cdtes fixed bin, /* number of used cdte's */ 9 51 2 meters_last_reset fixed bin (71), /* clock time dialup meters were reset */ 9 52 2 realtime_in_dialup fixed bin (71), /* Dialup meter */ 9 53 2 cpu_in_dialup fixed bin (71), /* .. */ 9 54 2 pf_in_dialup fixed bin, /* .. */ 9 55 2 pp_in_dialup fixed bin, /* .. */ 9 56 2 entries_to_dialup fixed bin, /* .. */ 9 57 2 flags, 9 58 3 go bit (1) unal, /* ans. serv. said "go ahead and answer the phones" */ 9 59 3 cdt_is_live bit (1) unal, /* cdt is active */ 9 60 3 mux_mgr_system_init 9 61 bit (1) unal, /* mux mgr has loaded top-levels */ 9 62 3 pad1 bit (33) unal, 9 63 2 acceptable_fnp_tbf fixed bin, /* acceptable minutes between FNP crashes */ 9 64 2 spare_channel_count fixed bin, /* number of extra channels to leave room for in ring0 */ 9 65 2 threads aligned like channel_threads, 9 66 /* root of non-fnp-top-level-multiplexers */ 9 67 2 pad2 (31) bit (36) aligned, /* pad header to 80 words */ 9 68 2 fnp_entry dim (8) like fnpe, /* max of 8 FNPs for now */ 9 69 2 cdt_entry dim (2500) like cdte; /* # of cdte's in 255K */ 9 70 9 71 9 72 dcl 1 cdte based (cdtep) aligned, /* a channel */ 9 73 2 in_use fixed bin, /* see dialup_values. 0=NOW_FREE */ 9 74 /**** * These variables are filled in when the CDTE is created by cv_cmf. They are not dynamic. */ 9 75 2 pad1 bit (36) aligned, 9 76 2 name char (32), /* ASCII name of channel */ 9 77 2 access_class (2) bit (72) aligned, /* access class range */ 9 78 2 comment char (48), /* printable message about channel */ 9 79 2 charge_type fixed bin (17) unal, /* billing group */ 9 80 2 service_type fixed bin (17) unal, /* service group (AS, ftp, mc) */ 9 81 2 line_type fixed bin (17) unal, /* tty line type (protocol) */ 9 82 2 baud_rate fixed bin (17) unal, /* 110, 133, 150, etc. */ 9 83 2 modem_type fixed bin (17) unal, /* type of modem on this channel */ 9 84 2 pad2 bit (18) unaligned, 9 85 2 answerback char (8), /* answerback string expected */ 9 86 2 initial_terminal_type 9 87 char (32) unal, /* as specified in the CMF */ 9 88 2 mpx_data unal, /* data used only for multiplexed channels */ 9 89 3 mpx_type fixed bin (17), /* type of multiplexing used */ 9 90 3 mpx_service fixed bin (17), /* service type, active or inactive */ 9 91 2 flags, 9 92 ( 3 attributes, 9 93 4 ck_answerback bit (1), /* ON means that ansbk must equal our records */ 9 94 4 audit_access_error 9 95 bit (1), /* ON means ck that person auth is inside access class range */ 9 96 /* this implies that the access_class describes a range of 9 97* legitimate user auths. */ 9 98 4 hardwired bit (1), /* ON means it is */ 9 99 4 set_modes bit (1), /* ON means to set initial modes at dialup */ 9 100 4 dont_read_answerback 9 101 bit (1), /* ON means don't try to read answerback */ 9 102 4 pada bit (4), 9 103 3 access_control unaligned, /* As below */ 9 104 4 dial_out bit (1), /* dialing user must be on ACS */ 9 105 4 priv_attach bit (1), /* PA_ user must be on ACS */ 9 106 4 dial_server bit (1), /* accept_dials process must be on acs */ 9 107 4 login bit (1), /* logging in user must be on acs */ 9 108 4 slave_dial bit (1), /* dialing user must give -user and be on acs */ 9 109 4 pado bit (3), 9 110 3 options, 9 111 4 execute_initial_command 9 112 bit (1), /* ON means to do it */ 9 113 4 attached_by_operator 9 114 bit (1), /* ON means temporary attachment. */ 9 115 4 private_line bit (1), /* ON means private_line sync modem in use */ 9 116 4 bsc_ebcdic bit (1), /* ON means bsc would like to use ebcdic code set */ 9 117 4 bsc_transparent bit (1), /* ON means bsc is in transparent mode */ 9 118 4 vip_pollselect bit (1), /* ON means VIP line is multidrop */ 9 119 4 autobaud bit (1), /* ON means auto baud detection this channel */ 9 120 4 generic_destination_present 9 121 bit (1), /* ON means that the initial_command field contains 9 122* a generic destination to match on dial_out or priv attach */ 9 123 4 use_iocb bit (1), /* ON means to use IOCB operations to support channel */ 9 124 4 pado bit (9) 9 125 ) unaligned, 9 126 2 initial_command char (64), /* pseudo first input line */ 9 127 /**** The following variables represent dynamic control info, and 9 128* are used mostly by dialup_ and asu_ */ 9 129 2 event fixed bin (71), /* event call channel for channel events */ 9 130 2 current_service_type fixed bin (17) unal, /* Current usage of line. */ 9 131 2 tra_vec fixed bin (17) unal, /* which section of dialup_ to do next */ 9 132 2 count fixed bin (17) unal, /* How many login tries he's had. */ 9 133 2 dialup_flags unal, /* flag bits for dialup to maintain */ 9 134 3 ppm bit (1) unal, /* print preaccess message for IBM terminals */ 9 135 3 cpo bit (1) unal, /* conditional printer-off (depends on answerback */ 9 136 3 wakeup_handler bit (1) unal, /* says who is wakeup handler for this channel */ 9 137 /* 0 = dialup_, 1 = mc_tty_ */ 9 138 3 save_arg bit (1) unal, /* -save login arg given */ 9 139 3 nosave_arg bit (1) unal, /* -nosave login arg given */ 9 140 3 detach_after_hangup 9 141 bit (1) unal, /* remember WAIT_DETACH when setting WAIT_BEFORE_HANGUP */ 9 142 3 leave_edited bit (1) unal, /* user control of edited mode */ 9 143 3 hold_arg bit (1) unal, /* -hold arg given */ 9 144 3 no_hold_arg bit (1) unal, /* -no_hold arg given */ 9 145 3 immediate_arg bit (1) unal, /* -immediate arg given */ 9 146 3 current_access_class_valid 9 147 bit (1) unal, /* dialup_ or lg_ctl_ has determined the current_access_class */ 9 148 3 pad bit (7) unal, 9 149 2 twx fixed bin, /* channel device index */ 9 150 2 state fixed bin, /* channel state */ 9 151 2 tty_id_code char (4), /* channel id (answerback) */ 9 152 2 current_terminal_type 9 153 char (32) unal, /* most recently-set terminal type */ 9 154 2 process ptr unal, /* ptr to ATE owning this channel */ 9 155 2 dialed_to_procid bit (36), /* Dialed channels remember owner's proc id */ 9 156 2 next_channel fixed bin (17) unal, /* cdte index of next channel for this process */ 9 157 2 cur_line_type fixed bin (17) unal, /* line type of currently dialed terminal */ 9 158 2 current_access_class (2) bit (72) aligned, /* This is a range, but at this time it must be a null range. 9 159* We do not yet define multi-class connections, but we will someday. */ 9 160 2 disconnected_ate_index 9 161 fixed bin (17) unal, /* index of ate of disconnected process */ 9 162 2 dial_ctl_ring fixed bin (3) unsigned unaligned, 9 163 /* used by dial_ctl_ to record ring of priv_attach or dial_out attachments */ 9 164 2 dial_rq_privileged bit (1) unaligned, /* used by dial ctl to record comm priv from priv_attach or dial_out request */ 9 165 2 pad3 bit (14) unaligned, 9 166 /**** The following variables are kept for metering purposes. */ 9 167 2 n_dialups fixed bin, /* number of times channel has been dialed up */ 9 168 2 n_logins fixed bin, /* number of login sessions on this channel */ 9 169 2 dialed_up_time fixed bin (35), /* total time channel was dialed up (seconds) */ 9 170 2 dialup_time fixed bin (71), /* time of present dialup */ 9 171 2 disconnected_proc_command 9 172 fixed bin (12) unsigned unal, 9 173 /* 1 to 5 for -list,-create,-connect,-new_proc,-destroy */ 9 174 2 disconnected_proc_number 9 175 fixed bin (12) unsigned unal, 9 176 /* {N} in -connect {N}, -new_proc {N}, -destroy {N} */ 9 177 2 n_disconnected_procs fixed bin (12) unsigned unal, 9 178 /* number of disconnected processes that user has */ 9 179 2 recent_wakeup_count fixed bin, /* counter to detect channel wakeup loop */ 9 180 2 recent_wakeup_time fixed bin (71), /* time of first wakeup in suspected channel wakeup loop */ 9 181 2 dial_ev_chn fixed bin (71), /* Dialed channels remember master's IPC channel */ 9 182 /**** cdt_mgr_ uses these to maintain the tree of channels. They ****/ 9 183 /**** really belong in the mpxe, but it is full up, and the cdte ****/ 9 184 /**** had the space. */ 9 185 2 threads aligned like channel_threads, 9 186 /**** The use name is that of the user who gave the dial or slave ****/ 9 187 /**** preaccess request. ****/ 9 188 2 user_name unaligned, 9 189 3 person char (20) unaligned, 9 190 3 project char (9) unaligned, 9 191 3 pad char (3) unaligned, /* no tag */ 9 192 2 iocbp ptr unaligned; /* 104 words */ 9 193 9 194 9 195 dcl generic_destination based char (32); /* used to match destinations on dial_out and priv_attach, 9 196* overlays initial_command field for slave and autocall lines */ 9 197 9 198 9 199 9 200 dcl 1 fnpe based (fnpep) aligned, /* an FNP */ 9 201 /* These variables are filled in from the CMF */ 9 202 2 type fixed bin, /* type of this FNP, DN355, DN6670, etc. */ 9 203 2 memory fixed bin, /* amount of memory on this FNP */ 9 204 2 nlslas fixed bin, /* number of lslas on this FNP */ 9 205 2 nhslas fixed bin, /* number of hslas on this FNP */ 9 206 2 service_type fixed bin, /* service type */ 9 207 2 mpx_type fixed bin, /* type of multiplexer on this fnp */ 9 208 2 coreimage char (168), /* pathname of image, maybe in >sl1 */ 9 209 /**** The following are used during system operation to remember the state of the FNP */ 9 210 2 boot_segp ptr, /* ptr to seg used for bootload */ 9 211 2 boot_ev_chan fixed bin (71), /* for ring0 to report crashes and bootload complete */ 9 212 2 mpxe like mpxe, /* standard multiplexer data */ 9 213 2 threads aligned like channel_threads, 9 214 /* same mpx threads as channel */ 9 215 2 pad3 (25) fixed bin; /* pad to 96 words per entry */ 9 216 9 217 /* This structure describes the data necessary to control a multiplexer. 9 218* For FNP's., a copy appears in the fnpe. For communications lines, it 9 219* overlays the initial_command field in the cdte. */ 9 220 9 221 dcl 1 mpxe based (mpxep) aligned, 9 222 2 state fixed bin, /* current state, up, down, loading */ 9 223 2 current_service_type fixed bin, /* usually = service type, unless cdt installation changes it */ 9 224 2 current_mpx_type fixed bin, /* type of multiplexer currently running */ 9 225 2 n_bootloads fixed bin, /* count of load attempts */ 9 226 2 time_initial_load fixed bin (71), /* time this MPX first completed a load */ 9 227 2 time_last_load fixed bin (71), /* time MPX last completed a bootload */ 9 228 2 time_last_crash fixed bin (71), /* time MPX last crashed */ 9 229 2 time_load_start fixed bin (71), /* time current load started */ 9 230 2 last_tbf fixed bin, /* number of minutes this MPX was up last bootload */ 9 231 2 flags unal, 9 232 3 go bit (1), /* start MPX after it loads */ 9 233 3 listening bit (1), /* listen has been done on subchannels */ 9 234 3 check bit (1), /* loaded with check option */ 9 235 3 retry_load bit (1), /* reload if load fails */ 9 236 3 pad1 bit (32), 9 237 2 pad2 (2) fixed bin; /* pad to 16 words */ 9 238 9 239 /* These threads define the tree of multiplexers in the cdt. */ 9 240 /* next_sister and prev_sister link nodes at the same level, ordered */ 9 241 /* by alpha sort order of the channel name. Daughter points to the */ 9 242 /* first child of this node, if any. Daughter count is the number */ 9 243 /* of children, as a consistency check. Mother is a back pointer to */ 9 244 /* the parent, present in all the children, not just the first. */ 9 245 /* threads are cdt indexes. If positive, they index the cdt_entry array */ 9 246 /* in cdt, if negative, they are the negative of an index into the fnp_entry */ 9 247 /* array. If zero, they refer to the top of the non-fnp mpx tree. */ 9 248 9 249 dcl 1 channel_threads aligned based, 9 250 2 next_sister fixed bin unaligned, 9 251 2 prev_sister fixed bin unaligned, 9 252 2 daughter fixed bin unaligned, 9 253 2 mother fixed bin unaligned, /* negative is a fnpx, positive a cdtx */ 9 254 2 pad bit (18) unaligned, 9 255 2 daughter_count fixed bin unaligned; 9 256 9 257 /* Values for cdte.service_type field */ 9 258 9 259 dcl ( 9 260 ANS_SERVICE init (1), /* login or dial */ 9 261 FTP_SERVICE init (2), /* file transfer service */ 9 262 MC_SERVICE init (3), /* message coordinator */ 9 263 SLAVE_SERVICE init (4), /* special channel */ 9 264 DIAL_SERVICE init (5), /* transient state */ 9 265 DIAL_OUT_SERVICE init (6), /* auto call line */ 9 266 MPX_SERVICE init (8), /* ring0 demultiplexed line */ 9 267 TANDD_SERVICE init (9) /* transient state, attached for T & D */ 9 268 ) fixed bin internal static options (constant); 9 269 9 270 /* Values for service type in both cdte and fnpe */ 9 271 9 272 dcl ( 9 273 INACTIVE init (7), /* not to be used, even though configured */ 9 274 ACTIVE init (1) 9 275 ) /* for FNP only, configured and to be used */ 9 276 fixed bin internal static options (constant); 9 277 9 278 /* Value for both cdte.in_use and fnpe.state */ 9 279 9 280 dcl NOT_CONFIGURED fixed bin int static init (-1) options (constant); 9 281 /* was not configured at Multics bootload time */ 9 282 9 283 /* NOTE: an INACTIVE channel can be made active by operator command or CDT installation, 9 284* but a NOT_CONFIGURED channel can not be used until its multiplexer is reloaded */ 9 285 9 286 /* Value for cdte.in_use */ 9 287 9 288 dcl CHANNEL_DELETED fixed bin int static init (-2); 9 289 /* channel deleted by CDT installation */ 9 290 9 291 /* NOTE: a configured channel being deleted by a CDT installation is set to CHANNEL_DELETED. 9 292* multiplexer_mgr_ sets cdte.in_use to NOW_FREE at the next reload of its multiplexer. 9 293* A NOT_CONFIGURED channel is set to NOW_FREE immediately when deleted by a CDT installation. */ 9 294 9 295 9 296 /* Values for mpxe.state field */ 9 297 9 298 dcl ( 9 299 FNP_FREE init (0), /* this fnpe is not used */ 9 300 FNP_UNKNOWN init (1), /* FNP is in some unknown state */ 9 301 FNP_DOWN init (2), /* FNP crashed, not yet reloaded */ 9 302 FNP_BOOT init (3), /* FNP has been booted, but no response yet */ 9 303 FNP_UP init (4) /* FNP is up and running fine */ 9 304 ) fixed bin internal static options (constant); 9 305 9 306 dcl ( 9 307 MPX_FREE init (0), /* this mpxe is not used */ 9 308 MPX_UNKNOWN init (1), /* MPX is in some unknown state */ 9 309 MPX_DOWN init (2), /* MPX crashed, not yet reloaded */ 9 310 MPX_BOOT init (3), /* MPX has been booted, but no response yet */ 9 311 MPX_UP init (4) /* MPX is up and running fine */ 9 312 ) fixed bin internal static options (constant); 9 313 10 1 /* BEGIN INCLUDE FILE ... fnp_types.incl.pl1 */ 10 2 10 3 10 4 10 5 /****^ HISTORY COMMENTS: 10 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 10 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 10 8* Add data needed for the uncp multiplexer (DSA gateway) interface 10 9* implementation. 10 10* END HISTORY COMMENTS */ 10 11 10 12 10 13 /* Values for fnpe.type field */ 10 14 /* 10 15* Created 79 May 14 by Art Beattie by splitting information out from cdt.incl.pl1 10 16* Added in March 1982 - DN7100.fd. 10 17**/ 10 18 10 19 dcl (DN355 init (1), /* a DataNet 355 FNP */ 10 20 DN6600 init (2), /* a DataNet 6600 FNP */ 10 21 DN6670 init (3), /* a Honeywell Bull Network Processor (18x) */ 10 22 DN7100 init (4) /* The DSA Datanet architecture (DN7) */ 10 23 ) fixed bin internal static options (constant); 10 24 10 25 dcl fnp_types (4) char (8) int static options (constant) 10 26 init ("DN355", "DN6600", "DN6670", "DN7100"); 10 27 10 28 dcl fnp_models (4) fixed bin (17) int static options (constant) 10 29 init (355, 6600, 6670, 7100); 10 30 10 31 dcl supported_fnp (4) bit (1) int static options (constant) 10 32 init ("0"b, "0"b, "1"b, "1"b); 10 33 10 34 10 35 /* END INCLUDE FILE ... fnp_types.incl.pl1 */ 9 314 9 315 9 316 /* END INCLUDE FILE ... cdt.incl.pl1 */ 45 call add ("cdt", addr (p -> cdt)); 11 1 /* BEGIN INCLUDE FILE ... author_dcl.incl.pl1 */ 11 2 11 3 /* This include file declares the "author" substructure 11 4* in a form suitable for using the PL/I "like" attribute. 11 5* 11 6* Written 750304 by PG 11 7**/ 11 8 11 9 dcl 1 author_dcl aligned based, 12 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 12 2 12 3 /* the "author" items must always be the first ones in the table. The 12 4* module which moves the converted table to the System Control process 12 5* fills in these data items and assumes them to be at the head of the segment 12 6* regardless of the specific table's actual declaration. The variables 12 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 12 8* respectively. For tables installed in multiple processes, these 12 9* are to be used to lock out multiple installations. */ 12 10 12 11 /* Lock should be used as a modification lock. Since, in general, 12 12* entries may not be moved in system tables, even by installations, 12 13* it is sufficient for only installers and programs that change threads 12 14* to set or respect the lock. Simply updating data in an entry 12 15* requires no such protection. 12 16* 12 17* Last_install_time is used by readers of system tables to detect 12 18* installations or other serious modifications. By checking it before 12 19* and after copying a block of data, they can be protected against 12 20* modifications. 12 21* 12 22* Modules that set the lock should save proc_group_id, and then 12 23* put their group id there for the time they hold the lock. 12 24* if they do not actually install the, they should restore the group id. 12 25**/ 12 26 12 27 2 author aligned, /* validation data about table's author */ 12 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 12 29 3 lock bit (36), /* installation lock */ 12 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 12 31 3 update_authorization bit (1) unal, /* update only authorizations */ 12 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 12 33 3 pad bit (33) unaligned, 12 34 3 last_install_time fixed bin (71), 12 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 12 36 3 w_dir char (64), /* author's working directory */ 12 37 12 38 /* END INCLUDE FILE author.incl.pl1 */ 11 10 11 11 2 pad; 11 12 11 13 /* END INCLUDE FILE ... author_dcl.incl.pl1 */ 46 /* Needed for cdt */ 13 1 /* BEGIN INCLUDE FILE ... condition_info.incl.pl1 */ 13 2 13 3 /* Structure for find_condition_info_. 13 4* 13 5* Written 1-Mar-79 by M. N. Davidoff. 13 6**/ 13 7 13 8 /* automatic */ 13 9 13 10 declare condition_info_ptr pointer; 13 11 13 12 /* based */ 13 13 13 14 declare 1 condition_info aligned based (condition_info_ptr), 13 15 2 mc_ptr pointer, /* pointer to machine conditions at fault time */ 13 16 2 version fixed binary, /* Must be 1 */ 13 17 2 condition_name char (32) varying, /* name of condition */ 13 18 2 info_ptr pointer, /* pointer to the condition data structure */ 13 19 2 wc_ptr pointer, /* pointer to wall crossing machine conditions */ 13 20 2 loc_ptr pointer, /* pointer to location where condition occured */ 13 21 2 flags unaligned, 13 22 3 crawlout bit (1), /* on if condition occured in lower ring */ 13 23 3 pad1 bit (35), 13 24 2 pad2 bit (36), 13 25 2 user_loc_ptr pointer, /* ptr to most recent nonsupport loc before condition occurred */ 13 26 2 pad3 (4) bit (36); 13 27 13 28 /* internal static */ 13 29 13 30 declare condition_info_version_1 13 31 fixed binary internal static options (constant) initial (1); 13 32 13 33 /* END INCLUDE FILE ... condition_info.incl.pl1 */ 47 48 call add ("condition_info", addr (p -> condition_info)); 14 1 /* BEGIN INCLUDE FILE ... config_deck.incl.pl1 ... 11/13/80, W. Olin Sibert */ 14 2 14 3 dcl (configp, cardp) pointer; 14 4 dcl config_n_cards fixed bin; /* Number of cards used in config */ 14 5 dcl config_max_cards fixed bin; /* Max number of cards in config */ 14 6 14 7 dcl config_deck$ fixed bin external static; 14 8 14 9 dcl 1 config_deck aligned based (configp), 14 10 2 cards (config_n_cards) aligned like config_card, 14 11 2 pad_cards (config_max_cards - config_n_cards) aligned like config_card; 14 12 14 13 dcl 1 config_card aligned based (cardp), 14 14 2 word char (4) aligned, 14 15 2 data_field (14) bit (36) aligned, 14 16 2 type_word aligned like config_card_type_word; 14 17 14 18 dcl 1 config_card_type_word aligned based, 14 19 2 field_type (14) bit (2) unaligned, 14 20 2 pad1 bit (4) unaligned, 14 21 2 n_fields fixed bin (4) unsigned unaligned; 14 22 14 23 dcl (CONFIG_DECIMAL_TYPE init ("11"b), 14 24 CONFIG_OCTAL_TYPE init ("00"b), 14 25 CONFIG_SINGLE_CHAR_TYPE init ("01"b), 14 26 CONFIG_STRING_TYPE init ("10"b)) bit (2) aligned static options (constant); 14 27 14 28 dcl ZERO_CARD_WORD char (4) aligned internal static options (constant) init (""); 14 29 dcl FREE_CARD_WORD char (4) aligned internal static options (constant) init ("ÿÿÿÿ"); 14 30 14 31 dcl VALID_CARD_WORD_CHARACTERS char (38) internal static options (constant) init 14 32 ("abcdefghijklmnopqrstuvwxyz0123456789_."); /* lowercase letters, digits, period and underscore */ 14 33 14 34 dcl EMPTY_FIELD bit (36) aligned internal static options (constant) init ("777777777777"b3); 14 35 14 36 /* END INCLUDE FILE config_deck.incl.pl1 */ 49 50 config_n_cards, config_max_cards = 0; 51 call add ("config_deck", addr (p -> config_deck)); 52 call add ("config_card", addr (p -> config_card)); 15 1 /* BEGIN INCLUDE FILE cmp.incl.pl1 --- October 1982 */ 15 2 /* Note: This include file has an ALM counterpart NOT made with cif (for historical reasons). Keep it up to date */ 15 3 15 4 dcl cmep ptr; /* pointer to core map entry */ 15 5 15 6 dcl 1 cme based (cmep) aligned, /* core map entry */ 15 7 2 fp bit (18) unaligned, /* forward pointer to next entry */ 15 8 2 bp bit (18) unaligned, /* backward pointer to previous entry */ 15 9 15 10 2 devadd bit (22) unaligned, /* device address of page in the core block */ 15 11 2 pad5 bit (1) unaligned, 15 12 2 synch_held bit (1) unaligned, /* Page of synchronized seg held in memory */ 15 13 2 io bit (1) unaligned, /* input/output indicator 1=output, 0=input */ 15 14 2 pad2 bit (1) unaligned, 15 15 2 er bit (1) unaligned, /* indicates error in previous IO activity */ 15 16 2 removing bit (1) unaligned, /* core is being removed by reconfiguration */ 15 17 2 abs_w bit (1) unaligned, /* absolute address must not be changed for page */ 15 18 2 abs_usable bit (1) unaligned, /* page may be assigned with fixed absolute address */ 15 19 2 notify_requested bit (1) unaligned, /* notify requested on I/O completion */ 15 20 2 pad3 bit (1) unaligned, 15 21 2 phm_hedge bit (1) unaligned, /* on => pc$flush_core ought write. */ 15 22 2 contr bit (3) unaligned, /* controller in which core block is located */ 15 23 15 24 2 ptwp bit (18) unaligned, /* pointer to page table word for the page */ 15 25 2 astep bit (18) unaligned, /* relative AST entry pointer of page */ 15 26 2 pin_counter fixed bin (17) unaligned, /* number of times to skip eviction */ 15 27 2 synch_page_entryp bit (18) unaligned; /* relp to synch page entry */ 15 28 15 29 15 30 dcl 1 cma (0: 1) based aligned like cme; /* Core map array */ 15 31 15 32 dcl 1 mcme based (cmep) aligned, /* core map entry for extracting DID */ 15 33 2 pad bit (36) unaligned, 15 34 2 record_no bit (18) unaligned, /* record number of device */ 15 35 2 add_type bit (4) unaligned, /* see add_type.incl.pl1 */ 15 36 2 flags bit (14) unal, 15 37 2 pad1 bit (18) unal; 15 38 15 39 15 40 /* END INCLUDE FILE cmp.incl.pl1 */ 53 54 call add ("cme", addr (p -> cme)); 55 call add ("mcme", addr (p -> mcme)); 56 call add ("cma", addr (p -> cma)); 57 16 1 /* BEGIN INCLUDE FILE ... dbm.incl.pl1 ... Feb 1976 */ 16 2 16 3 dcl dbm_seg$ ext; 16 4 dcl dbmp ptr; 16 5 16 6 dcl 1 dbm based (dbmp) aligned, 16 7 2 lock_data, 16 8 3 lock bit (36), 16 9 3 event bit (36), 16 10 3 notify bit (1), 16 11 2 control, 16 12 3 init bit (1) unal, 16 13 3 pad1 bit (35) unal, 16 14 2 stats, 16 15 3 sets fixed bin unal, 16 16 3 resets fixed bin unal, 16 17 3 allocs fixed bin unal, 16 18 3 frees fixed bin unal, 16 19 2 pad2 (2) bit (36), 16 20 2 area area (255*1024 -8); 16 21 16 22 /* END INCLUDE FILE ... dbm.incl.pl1 */ 58 call add ("dbm", addr (p -> dbm)); 17 1 /* BEGIN INCLUDE FILE ... dbr.adp.incl.pl1 ... Created July, 1981 */ 17 2 17 3 dcl 1 adp_dbr aligned based, /* ADP Descriptor Base Register */ 17 4 17 5 (2 add bit (26), /* Page table address */ 17 6 2 pad1 bit (1), /* overlays adp_sdw.valid */ 17 7 2 pad2 bit (9), /* overlays adp_sdw.rungs */ 17 8 17 9 2 bound bit (14), /* Bound of segment, in 16 word blocks */ 17 10 2 pad3 bit (2), 17 11 2 stack_base_segno fixed bin (14) unsigned, /* overlays ad_sdw.entry_bound */ 17 12 2 pad4 bit (4), /* overlays adp_sdw.access */ 17 13 2 unpaged bit (1), /* "1"b => segment is unpaged */ 17 14 2 pad5 bit (1)) unaligned; /* overlays adp_sdw.not_a_gate */ 17 15 17 16 /* END INCLUDE FILE dbr.adp.incl.pl1 */ 59 call add ("adp_dbr", addr (p -> adp_dbr)); 18 1 /* BEGIN INCLUDE FILE ... dbr.l68.incl.pl1 ... Created July, 1981 */ 18 2 18 3 dcl 1 l68_dbr aligned based, /* Level 68 Descriptor Base Register */ 18 4 18 5 (2 add bit (24), /* main memory address of page table */ 18 6 2 pad1 bit (9), /* overlays l68_sdw.rings */ 18 7 2 pad2 bit (3), /* overlays l68_sdw.valid & df_no */ 18 8 18 9 2 pad3 bit (1), 18 10 2 bound bit (14), /* boundary field (in 16 word blocks) */ 18 11 2 pad4 bit (4), /* overlays l68_sdw.access */ 18 12 2 unpaged bit (1), /* segment is unpaged if this is 1 */ 18 13 2 pad5 bit (1), /* overlays l68_sdw.not_a_gate */ 18 14 2 pad6 bit (1), /* overlays l68_sdw.cache */ 18 15 2 stack_base_segno fixed bin (14) unsigned) unaligned; /* overlays l68_sdw.entry_bound */ 18 16 18 17 /* END INCLUDE FILE ... dbr.l68.incl.pl1 */ 60 call add ("l68_dbr", addr (p -> l68_dbr)); 19 1 /* BEGIN INCLUDE FILE definition.incl.pl1 */ 19 2 19 3 19 4 19 5 /****^ HISTORY COMMENTS: 19 6* 1) change(86-05-02,Elhard), approve(86-05-02,MCR7391), 19 7* audit(86-07-18,DGHowe), install(86-11-20,MR12.0-1222): 19 8* Modified to add indirect bit to definition flags. 19 9* END HISTORY COMMENTS */ 19 10 19 11 19 12 dcl 1 definition aligned based, 19 13 2 forward unal bit(18), /* offset of next def */ 19 14 2 backward unal bit(18), /* offset of previous def */ 19 15 2 value unal bit(18), 19 16 2 flags unal, 19 17 3 new bit(1), 19 18 3 ignore bit(1), 19 19 3 entry bit(1), 19 20 3 retain bit(1), 19 21 3 argcount bit(1), 19 22 3 descriptors bit(1), 19 23 3 indirect bit(1), 19 24 3 unused bit(8), 19 25 2 class unal bit(3), 19 26 2 symbol unal bit(18), /* offset of ACC for symbol */ 19 27 2 segname unal bit(18); /* offset of segname def */ 19 28 19 29 /* END INCLUDE FILE definition.incl.pl1 */ 61 call add ("definition", addr (p -> definition)); 62 63 begin; /* to avoid name conflicts with the poorly named directory stuff */ 64 /* BEGIN INCLUDE FILE ... dir_allocation_area.incl.pl1 ... last modified December 1973 */ 20 2 20 3 dcl areap ptr; 20 4 20 5 dcl 1 area based (areap) aligned, 20 6 2 nsizes fixed bin (18), /* Number of types. */ 20 7 2 lu fixed bin (18), /* Next available word in area. */ 20 8 2 lw fixed bin (18), /* Last usable word. */ 20 9 2 array (100) aligned, /* Array of types. */ 20 10 3 fptr bit (18) unaligned, /* Free pointer for this size. */ 20 11 3 size fixed bin (17) unaligned; /* Size. */ 20 12 20 13 /* END INCLUDE FILE ... dir_allocation_area.incl.pl1 */ 64 65 dcl 1 dir_allocation_area aligned like area based; 66 call add ("dir_allocation_area", addr (p -> dir_allocation_area)); 67 /* BEGIN INCLUDE FILE ... dir_acl.incl.pl1 ... last modified Nov 1975 for nss */ 21 2 21 3 /* Template for an ACL entry. Length = 8 words */ 21 4 21 5 dcl aclep ptr; 21 6 21 7 dcl 1 acl_entry based (aclep) aligned, /* length is 8 words */ 21 8 2 frp bit(18) unaligned, /* rel ptr to next entry */ 21 9 2 brp bit(18) unaligned, /* rel ptr to previous entry */ 21 10 21 11 2 type bit (18) unaligned, /* type = dir acl */ 21 12 2 size fixed bin (17) unaligned, /* size of acl entry */ 21 13 21 14 21 15 2 name unaligned, /* user name associated with this ACL entry */ 21 16 3 pers_rp bit(18) unaligned, /* name of user */ 21 17 3 proj_rp bit(18) unaligned, /* project of user */ 21 18 3 tag char(1) unaligned, /* tag of user */ 21 19 2 mode bit (3) unaligned, /* mode for userid */ 21 20 2 pad24 bit(24) unaligned, 21 21 21 22 2 ex_mode bit(36), /* extended access modes */ 21 23 21 24 2 checksum bit (36), /* checksum from acl_entry.name */ 21 25 2 owner bit (36); /* uid of owning entry */ 21 26 21 27 /* Template for a person or project name on ACL. Length = 14 words. */ 21 28 21 29 dcl 1 access_name aligned based, /* person or project name */ 21 30 2 frp bit(18) unaligned, /* rel ptr to next name structure */ 21 31 2 brp bit(18) unaligned, /* rel ptr to prev name structure */ 21 32 21 33 2 type bit (18) unaligned, /* type = access name */ 21 34 2 size fixed bin (17) unaligned, /* size of access name */ 21 35 21 36 2 salv_flag fixed bin(17) unaligned, /* used by salvager to check for ascii names */ 21 37 2 usage fixed bin(17) unaligned, /* number of ACL entries that refer to this name */ 21 38 21 39 2 pad1 bit (36), 21 40 21 41 2 name char(32) aligned, /* person or project name itself */ 21 42 21 43 2 checksum bit (36), /* checksum from salv_flag */ 21 44 21 45 2 owner bit (36); /* uid of containing directory */ 21 46 21 47 /* END INCLUDE FILE ... dir_acl.incl.pl1 */ 67 68 dcl 1 dir_acl_entry aligned like acl_entry based; 69 dcl 1 dir_access_name aligned like access_name based; 70 call add ("dir_acl_entry", addr (p -> dir_acl_entry)); 71 call add ("dir_access_name", addr (p -> dir_access_name)); 72 /* BEGIN INCLUDE FILE ... dir_entry.incl.pl1 ...last modified August 1974 for nss */ 22 2 22 3 22 4 /* Template for an entry. Length = 38 words */ 22 5 22 6 dcl ep ptr; 22 7 22 8 dcl 1 entry based (ep) aligned, 22 9 22 10 (2 efrp bit (18), /* forward rel ptr to next entry */ 22 11 2 ebrp bit (18)) unaligned, /* backward rel ptr to previous entry */ 22 12 22 13 2 type bit (18) unaligned, /* type of object = dir entry */ 22 14 2 size fixed bin (17) unaligned, /* size of dir entry */ 22 15 22 16 2 uid bit (36), /* unique id of entry */ 22 17 22 18 2 dtem bit (36), /* date-time entry modified */ 22 19 22 20 (2 bs bit (1), /* branch switch = 1 if branch */ 22 21 2 pad0 bit (17), 22 22 2 nnames fixed bin (17), /* number of names for this entry */ 22 23 22 24 2 name_frp bit (18), /* rel pointer to start of name list */ 22 25 2 name_brp bit (18), /* rel pointer to end of name list */ 22 26 22 27 2 author, /* user who created branch */ 22 28 3 pers_rp bit (18), /* name of user who created branch */ 22 29 3 proj_rp bit (18), /* project of user who created branch */ 22 30 22 31 3 tag char (1), /* tag of user who created branch */ 22 32 3 pad1 char (3), 22 33 22 34 2 primary_name bit (504), /* first name on name list */ 22 35 22 36 2 dtd bit (36), /* date time dumped */ 22 37 22 38 2 pad2 bit (36), 22 39 22 40 22 41 /* the declarations below are for branch only */ 22 42 22 43 22 44 2 pvid bit (36), /* physical volume id */ 22 45 22 46 2 vtocx fixed bin (17), /* vtoc entry index */ 22 47 2 pad3 bit (18), 22 48 22 49 2 dirsw bit (1), /* = 1 if this is a directory branch */ 22 50 2 oosw bit (1), /* out of service switch on = 1 */ 22 51 2 per_process_sw bit (1), /* indicates segment is per process */ 22 52 2 copysw bit (1), /* = 1 make copy of segment whenever initiated */ 22 53 2 safety_sw bit (1), /* if 1 then entry cannot be deleted */ 22 54 2 multiple_class bit (1), /* segment has multiple security classes */ 22 55 2 audit_flag bit (1), /* segment must be audited for security */ 22 56 2 security_oosw bit (1), /* security out of service switch */ 22 57 2 entrypt_sw bit (1), /* 1 if call limiter is to be enabled */ 22 58 2 master_dir bit (1), /* TRUE for master directory */ 22 59 2 tpd bit (1), /* TRUE if this segment is never to go on the PD */ 22 60 2 pad4 bit (11), 22 61 2 entrypt_bound bit (14)) unaligned, /* call limiter */ 22 62 22 63 2 access_class bit (72) aligned, /* security attributes : level and category */ 22 64 22 65 (2 ring_brackets (3) bit (3), /* ring brackets on segment */ 22 66 2 ex_ring_brackets (3) bit (3), /* extended ring brackets */ 22 67 2 acle_count fixed bin (17), /* number of entries on ACL */ 22 68 22 69 2 acl_frp bit (18), /* rel ptr to start of ACL */ 22 70 2 acl_brp bit (18), /* rel ptr to end of ACL */ 22 71 22 72 2 bc_author, /* user who last set the bit count */ 22 73 3 pers_rp bit (18), /* name of user who set the bit count */ 22 74 3 proj_rp bit (18), /* project of user who set the bit count */ 22 75 22 76 3 tag char (1), /* tag of user who set the bit count */ 22 77 3 pad5 bit (2), 22 78 2 bc fixed bin (24)) unaligned, /* bit count for segs, msf indicator for dirs */ 22 79 22 80 2 sons_lvid bit (36), /* logical volume id for immediat inf non dir seg */ 22 81 22 82 2 pad6 bit (36), 22 83 22 84 2 checksum bit (36), /* checksum from dtd */ 22 85 22 86 2 owner bit (36); /* uid of containing directory */ 22 87 22 88 /* END INCLUDE FILE ... dir_entry.incl.pl1 ... */ 72 73 dcl 1 dir_entry aligned like entry based; 74 call add ("dir_entry", addr (p -> dir_entry)); 75 /* BEGIN INCLUDE FILE ... dir_header.incl.pl1 */ 23 2 /* Modified 8/74 for NSS */ 23 3 /* Modified 8/76 to add version number and hash table rel pointer for variable hash table sizes */ 23 4 /* Modified 3/82 BIM for change pclock */ 23 5 /* format: style3 */ 23 6 23 7 /* Template for the directory header. Length = 64 words. */ 23 8 23 9 dcl dp ptr; 23 10 23 11 dcl 1 dir based (dp) aligned, 23 12 23 13 2 modify bit (36), /* Process ID of last modifier */ 23 14 2 type bit (18) unaligned, /* type of object = dir header */ 23 15 2 size fixed bin (17) unaligned, /* size of header in words */ 23 16 2 dtc (3), /* date-time checked by salvager array */ 23 17 3 date bit (36), /* the date */ 23 18 3 error bit (36), /* what errors were discovered */ 23 19 23 20 2 uid bit (36), /* uid of the directory - copied from branch */ 23 21 23 22 2 pvid bit (36), /* phys vol id of the dir - copied from branch */ 23 23 23 24 2 sons_lvid bit (36), /* log vol id for inf non dir seg - copied from branch */ 23 25 23 26 2 access_class bit (72), /* security attributes of dir - copied from branch */ 23 27 23 28 (2 vtocx fixed bin (17), /* vtoc entry index of the dir - copied from branch */ 23 29 2 version_number fixed bin (17), /* version number of header */ 23 30 23 31 2 entryfrp bit (18), /* rel ptr to beginning of entry list */ 23 32 2 pad2 bit (18), 23 33 23 34 2 entrybrp bit (18), /* rel ptr to end of entry list */ 23 35 2 pad3 bit (18), 23 36 23 37 2 pers_frp bit (18), /* rel ptr to start of person name list */ 23 38 2 proj_frp bit (18), /* rel ptr to start of project name list */ 23 39 23 40 2 pers_brp bit (18), /* rel ptr to end of person name list */ 23 41 2 proj_brp bit (18), /* rel ptr to end of project name list */ 23 42 23 43 2 seg_count fixed bin (17), /* number of non-directory branches */ 23 44 2 dir_count fixed bin (17), /* number of directory branches */ 23 45 23 46 2 lcount fixed bin (17), /* number of links */ 23 47 2 acle_total fixed bin (17), /* total number of ACL entries in directory */ 23 48 23 49 2 arearp bit (18), /* relative pointer to beginning of allocation area */ 23 50 2 per_process_sw bit (1), /* indicates dir contains per process segments */ 23 51 2 master_dir bit (1), /* TRUE if this is a master dir */ 23 52 2 force_rpv bit (1), /* TRUE if segs must be on RPV */ 23 53 2 rehashing bit (1), /* TRUE if hash table is being constructed */ 23 54 2 pad4 bit (14), 23 55 23 56 2 iacl_count (0:7), 23 57 3 seg fixed bin (17), /* number of initial acl entries for segs */ 23 58 3 dir fixed bin (17), /* number of initial acl entries for dir */ 23 59 23 60 2 iacl (0:7), /* pointer to initial ACLs for each ring */ 23 61 3 seg_frp bit (18), /* rel ptr to start of initial ACL for segs */ 23 62 3 seg_brp bit (18), /* rel ptr to end of initial ACL for segs */ 23 63 23 64 3 dir_frp bit (18), /* rel ptr to start of initial for dirs */ 23 65 3 dir_brp bit (18), /* rel ptr to end of initial ACL for dirs */ 23 66 23 67 2 htsize fixed bin (17), /* size of hash table */ 23 68 2 hash_table_rp bit (18), /* rel ptr to start of hash table */ 23 69 23 70 2 htused fixed bin (17), /* no. of used places in hash table */ 23 71 2 pad6 fixed bin (17), 23 72 23 73 2 tree_depth fixed bin (17), /* number of levels from root of this dir */ 23 74 2 pad7 bit (18)) unaligned, 23 75 23 76 2 dts bit (36), /* date-time directory last salvaged */ 23 77 23 78 2 master_dir_uid bit (36), /* uid of superior master dir */ 23 79 2 change_pclock fixed bin (35), /* up one each call to sum$dirmod */ 23 80 2 pad8 (11) bit (36), /* pad to make it a 64 word header */ 23 81 2 checksum bit (36), /* checksummed from uid on */ 23 82 2 owner bit (36); /* uid of parent dir */ 23 83 23 84 dcl version_number_2 fixed bin int static options (constant) init (2); 23 85 23 86 /* END INCLUDE FILE ... dir_header.incl.pl1 */ 75 76 dcl 1 dir_header aligned like dir based; 77 call add ("dir_header", addr (p -> dir_header)); 78 /* BEGIN INCLUDE FILE ... dir_ht.incl.pl1 */ 24 2 24 3 24 4 dcl htp ptr; 24 5 24 6 dcl 1 hash_table based (htp) aligned, /* htp = ptr(dp,active_hardcore_data$htrp) */ 24 7 2 modify bit (36) unal, 24 8 2 type bit (18) unal, /* type = dir hash table */ 24 9 2 size fixed bin (17) unal, /* size of current dir hash table entry */ 24 10 2 name_rp (0:1) bit(18) unal, /* rel ptr of name entry */ 24 11 2 checksum bit (36) unal, 24 12 2 owner bit (36) unal; 24 13 /* otherwise rel ptr to name */ 24 14 24 15 /* END INCLUDE FILE ... dir_ht.incl.pl1 */ 78 79 dcl 1 dir_hash_table aligned like hash_table based; 80 call add ("dir_hash_table", addr (p -> dir_hash_table)); 81 /* BEGIN INCLUDE FILE ... dir_link.incl.pl1 ... last modified August 1974 for nss */ 25 2 25 3 /* Template for link. Note that it is identical to entry for first 24 words. */ 25 4 25 5 25 6 dcl 1 link based (ep) aligned, 25 7 25 8 (2 efrp bit (18), /* forward rel ptr to next entry */ 25 9 2 ebrp bit (18), /* backward rel ptr to previous entry */ 25 10 25 11 2 type bit (18), /* type = dir link */ 25 12 2 size fixed bin (17), /* size of link in words */ 25 13 25 14 2 uid bit (36), /* unique id of entry */ 25 15 25 16 2 dtem bit (36), /* date-time entry modified */ 25 17 25 18 2 bs bit (1), /* entry switch = 1 if entry */ 25 19 2 pad0 bit (17), 25 20 2 nnames fixed bin (17), /* number of names for this entry */ 25 21 25 22 2 name_frp bit (18), /* rel pointer to start of name list */ 25 23 2 name_brp bit (18), /* rel pointer to end of name list */ 25 24 25 25 2 author, /* user who created entry */ 25 26 3 pers_rp bit (18), /* name of user who created entry */ 25 27 3 proj_rp bit (18), /* project of user who created entry */ 25 28 25 29 3 tag char (1), /* tag of user who created entry */ 25 30 3 pad1 char (3), 25 31 25 32 2 primary_name bit (504), /* first name on name list */ 25 33 25 34 2 dtd bit (36), /* date time dumped */ 25 35 25 36 2 pad2 bit (36), 25 37 25 38 25 39 /* the declarations below are only applicable to links */ 25 40 25 41 2 pad3 bit (18), 25 42 2 pathname_size fixed bin (17), /* number of characters in pathname */ 25 43 25 44 2 pathname char (168 refer (pathname_size))) unaligned, /* pathname of link */ 25 45 25 46 2 checksum bit (36), /* checksum from uid */ 25 47 25 48 2 owner bit (36); /* uid of containing directory */ 25 49 25 50 /* END INCLUDE FILE ... dir_link.incl.pl1 */ 81 /* Can't "like" to this one because of refers */ 82 begin; 83 dcl 1 dir_link aligned like link based; 84 call add ("dir_link", addr (p -> dir_link)); 85 end; 86 /* BEGIN INCLUDE FILE ... dir_name.incl.pl1 ... last modified Nov 1975 for nss */ 26 2 26 3 /* Template for names of branches or links. Length = 14 words. */ 26 4 26 5 dcl np ptr; 26 6 26 7 dcl 1 names based aligned, /* based on ptr(dp,ep->entry.name_frp) */ 26 8 2 fp bit(18) unaligned, /* rel ptr to next name */ 26 9 2 bp bit(18) unaligned, /* rel ptr to prev name */ 26 10 26 11 2 type bit (18) unaligned, /* type = dir name */ 26 12 2 size fixed bin (17) unaligned, /* size of dir name */ 26 13 26 14 2 entry_rp bit(18) unaligned, /* rel ptr to entry */ 26 15 2 ht_index fixed bin(17) unaligned, /* index of hash table entry */ 26 16 26 17 2 hash_thread bit (18) unal, /* relative ptr to next hash entry */ 26 18 2 pad3 bit (18) unal, 26 19 26 20 2 name char(32) aligned, 26 21 26 22 2 checksum bit (36), /* checksum from entry_rp */ 26 23 26 24 2 owner bit (36); /* uid of entry */ 26 25 26 26 26 27 /* END INCLUDE FILE ... dir_name.incl.pl1 */ 86 87 dcl 1 dir_name aligned like names based; 88 call add ("dir_name", addr (p -> dir_name)); 89 end; 90 91 /* Followed by the include file containing the code to do the work */ 92 93 dcl WHOAMI char (32) internal static options (constant) init ("structure_library_1_"); 94 27 1 27 2 27 3 /* * STRUCTURE_LIBRARY_CODE.INCL.PL1 27 4* * 27 5* * This procedure generates the default library segment for the 27 6* * structure display system. The way it operates is hardly what one 27 7* * would call normal, however. It has to do a number of rather unclean 27 8* * things, and modifications must be made carefully following these 27 9* * conventions: 27 10* * 27 11* * Because the compiler insists on actually having a structure appear 27 12* * in some reference context for it to appear in the symbol table, 27 13* * regardless of options, every structure defined herein must be 27 14* * referenced somehow. This is accomplished with the calls to the 27 15* * "add" procedure. The first argument to the "add" procedure is the 27 16* * name of the structure, put there so it can be added to the table 27 17* * of contents for the segment. 27 18* * 27 19* * The second argument to the add procedure is a pointer, which must 27 20* * always be of the form "addr (p -> structure)". This is done to 27 21* * that the structure will be referenced, while at the same time 27 22* * avoiding any reference to its implicit base, or to other values 27 23* * which must be initialized to avoid warnings. 27 24* * 27 25* * Finally, this program compiles and runs itself using 27 26* * create_data_segment; this is done both to ensure that it gets 27 27* * compiled with a symbol table, and to make it possible copy the 27 28* * object segment and write into the internal static options (constant) 27 29* * array that is the table of structures. All in all, it's pretty 27 30* * complicated. 27 31* * 27 32* * The code for this program is in an include file in order to ease 27 33* * the construction of user-defined structure libraries. In order to 27 34* * use this code, one must create a program looking like this: 27 35* * 27 36* * structure_library_7_: 27 37* * procedure (); 27 38* * 27 39* * < %include statements, calls to add > 27 40* * 27 41* * dcl WHOAMI char (32) internal static options (constant) init ("structure_library_7_"); 27 42* * %include structure_library_code; 27 43* * end structure_library_7_; 27 44* * 27 45* * The standard structure libraries (structure_library_1_.cds, 27 46* * for example, provide a good example of this. 27 47* * 27 48* * 30 May 1983, W. Olin Sibert 27 49* */ 27 50 27 51 /* */ 27 52 27 53 /* Now come the more ordinary parts of code that usually appear in a program */ 27 54 27 55 dcl code fixed binary (35); 27 56 dcl severity_ptr pointer; 27 57 dcl severity_value fixed bin (35) based (severity_ptr); 27 58 dcl answer bit (1) aligned; 27 59 dcl new_segp pointer; 27 60 dcl old_segp pointer; 27 61 dcl bitcount fixed bin (24); 27 62 dcl n_words fixed bin (18); 27 63 dcl based_words (n_words) bit (36) aligned based; 27 64 27 65 dcl p pointer init (null ()); /* our general-purpose base */ 27 66 27 67 dcl com_err_ entry options (variable); 27 68 dcl command_query_$yes_no entry options (variable); 27 69 dcl get_external_variable_ entry (char (*), pointer, fixed bin (19), pointer, fixed bin (35)); 27 70 dcl get_wdir_ entry () returns (char (168)); 27 71 dcl hcs_$make_seg entry (char (*), char (*), char (*), 27 72 fixed bin (5), pointer, fixed bin (35)); 27 73 dcl hcs_$set_bc_seg entry (pointer, fixed bin (24), fixed bin (35)); 27 74 dcl hcs_$status_mins entry 27 75 (pointer, fixed bin (2), fixed bin (24), fixed bin (35)); 27 76 dcl hcs_$terminate_noname entry (pointer, fixed bin (35)); 27 77 dcl nothing entry options (variable); 27 78 27 79 dcl INITIALIZED bit (1) aligned internal static options (constant) init ("0"b); 27 80 dcl initialized_bit bit (1) aligned based; 27 81 27 82 /* The following array is important: it defines the "table of contents" 27 83* for the structure library segment. It is declared and initialized to 27 84* empty, but when the object segment is copied into the library segment, 27 85* it is filled in with the actual names of all the structures, which were 27 86* collected by all the calls to "add", above. */ 27 87 27 88 dcl STRUCTURES (200) char (32) unaligned internal static options (constant) 27 89 init ((200)(32)""); 27 90 27 91 /* This is the automatic array where the data is collected, and the based 27 92* overlay used later on to copy it into the new segment */ 27 93 27 94 dcl based_structures (n_structures) char (32) unaligned based; 27 95 dcl structures (hbound (STRUCTURES, 1)) char (32) unaligned automatic; 27 96 dcl n_structures fixed bin init (0); 27 97 27 98 dcl (addr, codeptr, null, rel, size, unspec) builtin; 27 99 27 100 /* */ 27 101 27 102 /* Finally, the real code, which copies one segment onto the other and 27 103* updates the structures arrays. */ 27 104 27 105 if INITIALIZED then do; 27 106 call com_err_ (0, WHOAMI, "This program is a data segment, and may not be executed."); 27 107 return; 27 108 end; 27 109 27 110 call get_external_variable_ ("pl1_severity_", severity_ptr, (0), (null ()), code); 27 111 if (code ^= 0) then do; 27 112 call com_err_ (code, WHOAMI, "Cannot determine severity for compilation of ^a.", WHOAMI); 27 113 return; 27 114 end; 27 115 27 116 if (severity_value = 2) then do; 27 117 call command_query_$yes_no (answer, 0, WHOAMI, 27 118 27 119 "ERROR 366 means that the program is too large to construct a symbol table; 27 120 this quite commonly happens to structure libraries because of their enormous 27 121 symbol tables. You may be able to fix the error by rearranging some of the 27 122 include files.", 27 123 27 124 "Warning: A severity two PL/I error has occurred. 27 125 If it is ERROR 366, the result of this compilation will be partially invalid. 27 126 Do you wish to continue and generate the library segment anyway?"); 27 127 27 128 if ^answer then return; 27 129 end; 27 130 27 131 old_segp = pointer (addr (STRUCTURES), 0); 27 132 27 133 call hcs_$status_mins (old_segp, (0), bitcount, code); 27 134 if (code ^= 0) then do; 27 135 call com_err_ (code, WHOAMI, 27 136 "Cannot get bitcount of original segment."); 27 137 return; 27 138 end; 27 139 27 140 call hcs_$make_seg ((get_wdir_ ()), WHOAMI, "", 01010b, new_segp, code); 27 141 if (new_segp = null ()) then do; 27 142 call com_err_ (code, WHOAMI, "Cannot create [wd]>^a", WHOAMI); 27 143 return; 27 144 end; 27 145 27 146 n_words = divide (bitcount, 36, 18, 0); 27 147 new_segp -> based_words = old_segp -> based_words; 27 148 27 149 call hcs_$set_bc_seg (new_segp, bitcount, code); 27 150 if (code ^= 0) then do; 27 151 call com_err_ (code, WHOAMI, 27 152 "Cannot set bitcount on [wd]>^a", WHOAMI); 27 153 return; 27 154 end; 27 155 27 156 /* Finally, copy in the structure list */ 27 157 27 158 pointer (new_segp, rel (addr (STRUCTURES))) -> based_structures 27 159 = addr (structures) -> based_structures; 27 160 pointer (new_segp, rel (addr (INITIALIZED))) -> initialized_bit = "1"b; 27 161 27 162 call hcs_$terminate_noname (new_segp, (0)); 27 163 27 164 ERROR_RETURN: 27 165 return; 27 166 27 167 /* */ 27 168 27 169 /* This is called once for each structure which goes in the table of contents. 27 170* It adds the structure to the automatic array, and increments the count. */ 27 171 27 172 add: 27 173 addx: 27 174 procedure (name, useless_pointer); 27 175 27 176 dcl name char (32); 27 177 dcl useless_pointer pointer; 27 178 27 179 /* The bounds check is against hbound - 1, since it is necessary to always 27 180* leave at least one blank entry in the table of contents to show where 27 181* the last valid entry is. */ 27 182 27 183 27 184 if (n_structures >= (hbound (STRUCTURES, 1) - 1)) then do; 27 185 call com_err_ (0, WHOAMI, 27 186 "Too many structures defined. Max is ^d.^/^3xChange the dimension of the STRUCTURES array and recompile.", 27 187 hbound (STRUCTURES, 1)); 27 188 goto ERROR_RETURN; 27 189 end; 27 190 27 191 n_structures = n_structures + 1; 27 192 structures (n_structures) = name; 27 193 structures (n_structures + 1) = ""; 27 194 return; 27 195 end add; 95 96 97 end structure_library_1_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/19/88 1536.0 !BBBJXbnbGJBjCD.pl1 >special_ldd>install>MR12.2-1061>structure_library_1_.cds 24 1 09/07/83 1610.6 aim_template.incl.pl1 >ldd>include>aim_template.incl.pl1 26 2 08/06/87 0913.0 answer_table.incl.pl1 >ldd>include>answer_table.incl.pl1 27 3 08/06/87 0913.6 user_table_header.incl.pl1 >ldd>include>user_table_header.incl.pl1 31 4 01/06/85 1422.2 apte.incl.pl1 >ldd>include>apte.incl.pl1 32 5 09/14/81 1347.6 area_structures.incl.pl1 >ldd>include>area_structures.incl.pl1 37 6 02/02/82 2145.0 ast_lock_meters.incl.pl1 >ldd>include>ast_lock_meters.incl.pl1 39 7 01/30/85 1523.9 aste.incl.pl1 >ldd>include>aste.incl.pl1 41 8 08/12/81 2025.8 bos_dump.incl.pl1 >ldd>include>bos_dump.incl.pl1 45 9 08/06/87 0913.0 cdt.incl.pl1 >ldd>include>cdt.incl.pl1 9-314 10 07/19/88 1524.1 fnp_types.incl.pl1 >special_ldd>install>MR12.2-1061>fnp_types.incl.pl1 46 11 09/09/75 2007.3 author_dcl.incl.pl1 >ldd>include>author_dcl.incl.pl1 11-10 12 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 47 13 06/28/79 1204.8 condition_info.incl.pl1 >ldd>include>condition_info.incl.pl1 49 14 05/08/81 1853.6 config_deck.incl.pl1 >ldd>include>config_deck.incl.pl1 53 15 11/23/82 0953.7 cmp.incl.pl1 >ldd>include>cmp.incl.pl1 58 16 05/27/82 1525.6 dbm.incl.pl1 >ldd>include>dbm.incl.pl1 59 17 03/27/82 0430.3 dbr.adp.incl.pl1 >ldd>include>dbr.adp.incl.pl1 60 18 03/27/82 0430.3 dbr.l68.incl.pl1 >ldd>include>dbr.l68.incl.pl1 61 19 11/24/86 1226.9 definition.incl.pl1 >ldd>include>definition.incl.pl1 64 20 10/15/76 1242.9 dir_allocation_area.incl.pl1 >ldd>include>dir_allocation_area.incl.pl1 67 21 04/29/76 1048.9 dir_acl.incl.pl1 >ldd>include>dir_acl.incl.pl1 72 22 04/29/76 1100.6 dir_entry.incl.pl1 >ldd>include>dir_entry.incl.pl1 75 23 05/24/82 1005.0 dir_header.incl.pl1 >ldd>include>dir_header.incl.pl1 78 24 11/02/76 1414.6 dir_ht.incl.pl1 >ldd>include>dir_ht.incl.pl1 81 25 04/29/76 1049.2 dir_link.incl.pl1 >ldd>include>dir_link.incl.pl1 86 26 11/02/76 1414.7 dir_name.incl.pl1 >ldd>include>dir_name.incl.pl1 95 27 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. CDT_version 000012 constant fixed bin(17,0) initial dcl 9-39 CDT_version_5 000013 constant fixed bin(17,0) initial dcl 9-38 INITIALIZED 000042 constant bit(1) initial dcl 27-79 set ref 27-105 27-160 NOT_CONFIGURED 000011 constant fixed bin(17,0) initial dcl 9-280 STRUCTURES 002070 constant char(32) initial array packed unaligned dcl 27-88 set ref 27-95 27-131 27-158 27-184 27-185 27-185 UTE_SIZE 000000 constant fixed bin(17,0) initial dcl 2-120 ref 2-55 2-55 2-55 2-55 2-55 28 28 28 28 28 WHOAMI 000001 constant char(32) initial packed unaligned dcl 93 set ref 27-106* 27-112* 27-112* 27-117* 27-135* 27-140* 27-142* 27-142* 27-151* 27-151* 27-185* access_name based structure level 1 dcl 21-29 acl_entry based structure level 1 dcl 21-7 aclep 000172 automatic pointer dcl 21-5 ref 21-7 21-7 21-7 21-7 21-7 21-7 21-7 21-7 21-7 21-7 21-7 21-7 21-7 21-7 addr builtin function dcl 27-98 ref 24 24 31 31 33 33 34 34 36 36 38 38 39 39 43 43 45 45 48 48 51 51 52 52 54 54 55 55 56 56 58 58 59 59 60 60 61 61 27-131 27-158 27-158 27-160 29 29 66 66 70 70 71 71 74 74 77 77 80 80 84 84 88 88 adp_dbr based structure level 1 dcl 17-3 set ref 59 59 aim_template based structure level 1 dcl 1-12 set ref 24 24 ansp 000166 automatic pointer initial dcl 2-53 set ref 2-53* 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 2-55 anstbl based structure level 1 dcl 2-55 answer 000146 automatic bit(1) dcl 27-58 set ref 27-117* 27-128 answer_table based structure level 1 dcl 28 set ref 29 29 apte based structure level 1 dcl 4-7 set ref 31 31 aptep 000100 automatic pointer dcl 4-5 ref 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 4-7 area based structure level 1 dcl 20-5 area_block based structure level 1 dcl 35 set ref 36 36 area_header based structure level 1 dcl 5-8 set ref 33 33 areap 000102 automatic pointer dcl 5-6 in procedure "structure_library_1_" ref 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 areap 000170 automatic pointer dcl 20-3 in begin block on line 63 ref 20-5 20-5 20-5 20-5 20-5 20-5 20-5 ast_lock_meter_segp 000110 automatic pointer dcl 6-5 ref 6-7 6-7 6-7 6-7 6-7 6-7 6-7 6-7 6-7 6-7 6-7 6-7 6-7 6-7 6-7 ast_lock_meters based structure level 1 dcl 6-7 set ref 38 38 aste based structure level 1 dcl 7-11 set ref 39 39 astep 000112 automatic pointer dcl 7-9 ref 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 7-11 author based structure level 2 dcl 11-9 author_dcl based structure level 1 dcl 11-9 based_structures based char(32) array packed unaligned dcl 27-94 set ref 27-158* 27-158 based_words based bit(36) array dcl 27-63 set ref 27-147* 27-147 bitcount 000154 automatic fixed bin(24,0) dcl 27-61 set ref 27-133* 27-146 27-149* block based structure level 1 dcl 5-52 blockp 000106 automatic pointer dcl 5-50 ref 5-52 5-52 5-52 5-52 5-52 5-52 5-52 5-52 5-52 5-52 bos_dump based structure level 1 dcl 42 set ref 43 43 cardp 000132 automatic pointer dcl 14-3 ref 14-13 14-13 14-13 14-13 14-13 14-13 14-13 cdt based structure level 1 dcl 9-44 set ref 45 45 cdte based structure level 1 dcl 9-72 cdtep 000120 automatic pointer dcl 9-41 ref 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 9-72 cdtp 000116 automatic pointer dcl 9-41 ref 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 9-44 channel_threads based structure level 1 dcl 9-249 cma based structure array level 1 dcl 15-30 set ref 56 56 cme based structure level 1 dcl 15-6 set ref 54 54 cmep 000136 automatic pointer dcl 15-4 ref 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-6 15-32 15-32 15-32 15-32 15-32 15-32 code 000142 automatic fixed bin(35,0) dcl 27-55 set ref 27-110* 27-111 27-112* 27-133* 27-134 27-135* 27-140* 27-142* 27-149* 27-150 27-151* com_err_ 000026 constant entry external dcl 27-67 ref 27-106 27-112 27-135 27-142 27-151 27-185 command_query_$yes_no 000030 constant entry external dcl 27-68 ref 27-117 condition_info based structure level 1 dcl 13-14 set ref 48 48 condition_info_ptr 000126 automatic pointer dcl 13-10 ref 13-14 13-14 13-14 13-14 13-14 13-14 13-14 13-14 13-14 13-14 13-14 13-14 13-14 config_card based structure level 1 dcl 14-13 set ref 52 52 config_card_type_word based structure level 1 dcl 14-18 config_deck based structure level 1 dcl 14-9 set ref 51 51 config_max_cards 000135 automatic fixed bin(17,0) dcl 14-5 set ref 50* 14-9 14-9 14-9 14-9 14-9 14-9 14-9 config_n_cards 000134 automatic fixed bin(17,0) dcl 14-4 set ref 50* 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 configp 000130 automatic pointer dcl 14-3 ref 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 current_size 5 based fixed bin(17,0) level 3 dcl 2-55 ref 2-55 2-55 28 28 dbm based structure level 1 dcl 16-6 set ref 58 58 dbmp 000140 automatic pointer dcl 16-4 ref 16-6 16-6 16-6 16-6 16-6 16-6 16-6 16-6 16-6 16-6 16-6 16-6 16-6 16-6 16-6 definition based structure level 1 dcl 19-12 set ref 61 61 dir based structure level 1 dcl 23-11 dir_access_name based structure level 1 dcl 69 set ref 71 71 dir_acl_entry based structure level 1 dcl 68 set ref 70 70 dir_allocation_area based structure level 1 dcl 65 set ref 66 66 dir_entry based structure level 1 dcl 73 set ref 74 74 dir_hash_table based structure level 1 dcl 79 set ref 80 80 dir_header based structure level 1 dcl 76 set ref 77 77 dir_link based structure level 1 dcl 83 set ref 84 84 dir_name based structure level 1 dcl 87 set ref 88 88 dp 000176 automatic pointer dcl 23-9 ref 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 23-11 dump based structure level 1 dcl 8-11 dump_header based structure level 1 dcl 8-47 dump_misc_registers based structure level 1 dcl 8-69 dump_registers based structure level 1 dcl 8-59 dumpptr 000114 automatic pointer dcl 8-9 ref 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 8-11 entry based structure level 1 dcl 22-8 ep 000174 automatic pointer dcl 22-6 ref 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 22-8 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 25-6 extend_block based structure level 1 dcl 5-38 set ref 34 34 extend_blockp 000104 automatic pointer dcl 5-36 ref 5-38 5-38 5-38 5-38 5-38 5-38 fnpe based structure level 1 dcl 9-200 fnpep 000122 automatic pointer dcl 9-41 ref 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 9-200 get_external_variable_ 000032 constant entry external dcl 27-69 ref 27-110 get_wdir_ 000034 constant entry external dcl 27-70 ref 27-140 hash_table based structure level 1 dcl 24-6 hcs_$make_seg 000036 constant entry external dcl 27-71 ref 27-140 hcs_$set_bc_seg 000040 constant entry external dcl 27-73 ref 27-149 hcs_$status_mins 000042 constant entry external dcl 27-74 ref 27-133 hcs_$terminate_noname 000044 constant entry external dcl 27-76 ref 27-162 header based structure level 2 dcl 2-55 htp 000200 automatic pointer dcl 24-4 ref 24-6 24-6 24-6 24-6 24-6 24-6 24-6 initialized_bit based bit(1) dcl 27-80 set ref 27-160* l68_dbr based structure level 1 dcl 18-3 set ref 60 60 link based structure level 1 dcl 25-6 lock_meters based structure level 1 dcl 6-17 max_n_entries 1 based fixed bin(17,0) level 2 dcl 6-7 set ref 6-7 6-7 6-7 6-7 6-7 6-7 6-7 mcme based structure level 1 dcl 15-32 set ref 55 55 mpxe based structure level 1 dcl 9-221 mpxep 000124 automatic pointer dcl 9-41 ref 9-221 9-221 9-221 9-221 9-221 9-221 9-221 9-221 9-221 9-221 9-221 9-221 9-221 9-221 9-221 9-221 9-221 n_structures 000160 automatic fixed bin(17,0) initial dcl 27-96 set ref 27-94 27-96* 27-158 27-158 27-158 27-184 27-191* 27-191 27-192 27-193 n_words 000155 automatic fixed bin(18,0) dcl 27-62 set ref 27-63 27-146* 27-147 name parameter char(32) packed unaligned dcl 27-176 ref 27-172 27-172 27-192 names based structure level 1 dcl 26-7 new_segp 000150 automatic pointer dcl 27-59 set ref 27-140* 27-141 27-147 27-149* 27-158 27-160 27-162* null builtin function dcl 27-98 ref 27-65 27-110 27-141 2-53 old_segp 000152 automatic pointer dcl 27-60 set ref 27-131* 27-133* 27-147 p 000156 automatic pointer initial dcl 27-65 set ref 24 24 31 31 33 33 34 34 36 36 38 38 39 39 43 43 45 45 48 48 51 51 52 52 54 54 55 55 56 56 58 58 59 59 60 60 61 61 27-65* 29 29 66 66 70 70 71 71 74 74 77 77 80 80 84 84 88 88 pathname_size 30(18) based fixed bin(17,0) level 2 in structure "dir_link" packed packed unaligned dcl 83 in begin block on line 82 set ref 83 83 83 pathname_size 30(18) based fixed bin(17,0) level 2 in structure "link" packed packed unaligned dcl 25-6 in begin block on line 63 ref 25-6 25-6 25-6 rel builtin function dcl 27-98 ref 27-158 27-160 severity_ptr 000144 automatic pointer dcl 27-56 set ref 27-57 27-110* 27-116 severity_value based fixed bin(35,0) dcl 27-57 ref 27-116 structures 000160 automatic char(32) array packed unaligned dcl 27-95 set ref 27-158 27-192* 27-193* useless_pointer parameter pointer dcl 27-177 ref 27-172 27-172 ut_header based structure level 1 dcl 3-16 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTIVE constant fixed bin(17,0) initial dcl 9-272 ANSTBL_version_4 constant fixed bin(17,0) initial dcl 2-51 ANS_SERVICE constant fixed bin(17,0) initial dcl 9-259 AT_NORMAL constant char(8) initial packed unaligned dcl 2-116 AT_SHUTDOWN constant char(8) initial packed unaligned dcl 2-116 AT_SPECIAL constant char(8) initial packed unaligned dcl 2-116 CHANNEL_DELETED 000015 internal static fixed bin(17,0) initial dcl 9-288 CONFIG_DECIMAL_TYPE constant bit(2) initial dcl 14-23 CONFIG_OCTAL_TYPE constant bit(2) initial dcl 14-23 CONFIG_SINGLE_CHAR_TYPE constant bit(2) initial dcl 14-23 CONFIG_STRING_TYPE constant bit(2) initial dcl 14-23 DIAL_OUT_SERVICE constant fixed bin(17,0) initial dcl 9-259 DIAL_SERVICE constant fixed bin(17,0) initial dcl 9-259 DN355 constant fixed bin(17,0) initial dcl 10-19 DN6600 constant fixed bin(17,0) initial dcl 10-19 DN6670 constant fixed bin(17,0) initial dcl 10-19 DN7100 constant fixed bin(17,0) initial dcl 10-19 DUMP_VERSION_1 constant fixed bin(17,0) initial dcl 8-120 DUMP_VERSION_2 constant fixed bin(17,0) initial dcl 8-121 EMPTY_FIELD constant bit(36) initial dcl 14-34 FNP_BOOT constant fixed bin(17,0) initial dcl 9-298 FNP_DOWN constant fixed bin(17,0) initial dcl 9-298 FNP_FREE constant fixed bin(17,0) initial dcl 9-298 FNP_UNKNOWN constant fixed bin(17,0) initial dcl 9-298 FNP_UP constant fixed bin(17,0) initial dcl 9-298 FREE_CARD_WORD constant char(4) initial dcl 14-29 FTP_SERVICE constant fixed bin(17,0) initial dcl 9-259 INACTIVE constant fixed bin(17,0) initial dcl 9-272 MC_SERVICE constant fixed bin(17,0) initial dcl 9-259 MPX_BOOT constant fixed bin(17,0) initial dcl 9-306 MPX_DOWN constant fixed bin(17,0) initial dcl 9-306 MPX_FREE constant fixed bin(17,0) initial dcl 9-306 MPX_SERVICE constant fixed bin(17,0) initial dcl 9-259 MPX_UNKNOWN constant fixed bin(17,0) initial dcl 9-306 MPX_UP constant fixed bin(17,0) initial dcl 9-306 NO_FREEING_ALLOCATION_METHOD 000012 internal static fixed bin(17,0) initial dcl 5-32 SLAVE_SERVICE constant fixed bin(17,0) initial dcl 9-259 STANDARD_ALLOCATION_METHOD 000011 internal static fixed bin(17,0) initial dcl 5-32 TANDD_SERVICE constant fixed bin(17,0) initial dcl 9-259 VALID_CARD_WORD_CHARACTERS constant char(38) initial packed unaligned dcl 14-31 ZERO_CARD_WORD constant char(4) initial dcl 14-28 alloc_blkhdrsz 000013 internal static fixed bin(17,0) initial dcl 5-45 area_version_1 000010 internal static fixed bin(17,0) initial dcl 5-4 ast_lock_meter_seg$ 000020 external static fixed bin(17,0) dcl 6-3 asta based bit(432) array dcl 7-86 aste_part based structure level 1 dcl 7-89 codeptr builtin function dcl 27-98 condition_info_version_1 constant fixed bin(17,0) initial dcl 13-30 config_deck$ 000022 external static fixed bin(17,0) dcl 14-7 dbm_seg$ 000024 external static fixed bin(17,0) dcl 16-3 fnp_models constant fixed bin(17,0) initial array dcl 10-28 fnp_types constant char(8) initial array packed unaligned dcl 10-25 generic_destination based char(32) packed unaligned dcl 9-195 min_block_size 000014 internal static fixed bin(17,0) initial dcl 5-63 no_free_area_header based structure level 1 dcl 5-46 nothing 000000 constant entry external dcl 27-77 np 000202 automatic pointer dcl 26-5 seg_aste based structure level 1 dcl 7-96 size builtin function dcl 27-98 supported_fnp constant bit(1) initial array packed unaligned dcl 10-31 unspec builtin function dcl 27-98 v1_dump based structure level 1 dcl 8-83 version_number_2 constant fixed bin(17,0) initial dcl 23-84 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR_RETURN 001752 constant label dcl 27-164 ref 27-188 add 001756 constant entry internal dcl 27-172 ref 24 29 31 33 34 36 38 39 43 45 48 51 52 54 55 56 58 59 60 61 66 70 71 74 77 80 84 88 addx 001753 constant entry internal dcl 27-172 structure_library_1_ 000730 constant entry external dcl 19 NAMES DECLARED BY CONTEXT OR IMPLICATION. divide builtin function ref 27-146 hbound builtin function ref 27-95 27-184 27-185 27-185 pointer builtin function ref 27-131 27-158 27-160 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 5344 5412 5170 5354 Length 35434 5170 46 30006 153 6 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME structure_library_1_ 390 external procedure is an external procedure. begin block on line 25 begin block shares stack frame of external procedure structure_library_1_. begin block on line 63 begin block shares stack frame of external procedure structure_library_1_. begin block on line 82 begin block shares stack frame of external procedure structure_library_1_. addx internal procedure shares stack frame of external procedure structure_library_1_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 area_version_1 structure_library_1_ 000011 STANDARD_ALLOCATION_METHOD structure_library_1_ 000012 NO_FREEING_ALLOCATION_METHOD structure_library_1_ 000013 alloc_blkhdrsz structure_library_1_ 000014 min_block_size structure_library_1_ 000015 CHANNEL_DELETED structure_library_1_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME structure_library_1_ 000100 aptep structure_library_1_ 000102 areap structure_library_1_ 000104 extend_blockp structure_library_1_ 000106 blockp structure_library_1_ 000110 ast_lock_meter_segp structure_library_1_ 000112 astep structure_library_1_ 000114 dumpptr structure_library_1_ 000116 cdtp structure_library_1_ 000120 cdtep structure_library_1_ 000122 fnpep structure_library_1_ 000124 mpxep structure_library_1_ 000126 condition_info_ptr structure_library_1_ 000130 configp structure_library_1_ 000132 cardp structure_library_1_ 000134 config_n_cards structure_library_1_ 000135 config_max_cards structure_library_1_ 000136 cmep structure_library_1_ 000140 dbmp structure_library_1_ 000142 code structure_library_1_ 000144 severity_ptr structure_library_1_ 000146 answer structure_library_1_ 000150 new_segp structure_library_1_ 000152 old_segp structure_library_1_ 000154 bitcount structure_library_1_ 000155 n_words structure_library_1_ 000156 p structure_library_1_ 000160 structures structure_library_1_ 000160 n_structures structure_library_1_ 000166 ansp begin block on line 25 000170 areap begin block on line 63 000172 aclep begin block on line 63 000174 ep begin block on line 63 000176 dp begin block on line 63 000200 htp begin block on line 63 000202 np begin block on line 63 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. ast_lock_meter_seg$ config_deck$ dbm_seg$ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000727 27 65 000735 27 95 000737 27 96 000746 24 000747 2 53 000756 29 000760 31 000767 33 000776 34 001005 36 001014 38 001023 39 001032 43 001041 45 001050 48 001057 50 001066 51 001070 52 001077 54 001106 55 001115 56 001124 58 001133 59 001142 60 001151 61 001160 66 001167 70 001176 71 001205 74 001214 77 001223 80 001232 84 001241 88 001250 27 105 001257 27 106 001261 27 107 001306 27 110 001307 27 111 001346 27 112 001350 27 113 001377 27 116 001400 27 117 001403 27 128 001443 27 131 001446 27 133 001451 27 134 001470 27 135 001472 27 137 001516 27 140 001517 27 141 001565 27 142 001571 27 143 001620 27 146 001621 27 147 001624 27 149 001632 27 150 001645 27 151 001647 27 153 001676 27 158 001677 27 160 001727 27 162 001736 27 164 001752 27 172 001753 27 184 001760 27 185 001763 27 188 002016 27 191 002017 27 192 002020 27 193 002030 27 194 002036 Object Segment >special_ldd>install>MR12.2-1061>structure_library_1_ Created on 07/20/88 1244.7 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 5170 5344 5412 5354 Length 35434 5170 153 46 30006 6 3 Definitions: segname: !BBBJXbnbGJBjCD text|730 structure_library_1_ Entrypoint symb|0 symbol_table 12 Links: link|16 *symbol|0 link|20 ast_lock_meter_seg|0 link|26 com_err_ link|30 command_query_$yes_no link|22 config_deck|0 link|24 dbm_seg|0 link|32 get_external_variable_ link|34 get_wdir_ link|44 hcs_$terminate_noname link|42 hcs_$status_mins link|40 hcs_$set_bc_seg link|36 hcs_$make_seg ----------------------------------------------------------- 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