COMPILATION LISTING OF SEGMENT mu_empty_scope Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 10/23/86 1012.9 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * * 6* * * 7* *********************************************************** */ 8 9 /* ****************************************************** 10* * * 11* * * 12* * Copyright (c) 1972 by Massachusetts Institute of * 13* * Technology and Honeywell Information Systems, Inc. * 14* * * 15* * * 16* ****************************************************** */ 17 18 mu_empty_scope: 19 empty_scope: 20 procedure (dbc_p, scope_p, rdbi_p, delink); 21 22 /* 23* DESCRIPTION: 24* This procedure empties the scope definition of a user for the data base specified. 25* --------------------------------------------------------------------------- 26* HISTORY: 27* Written in 1975 28* Modified by O D Friesen in July 1977 to handle queued scope requests 29* Changed from mrds_dsl_empty_scope to mu_empty_scope by O Friesen - Sept. 1978 - 30* to handle file scopes 31* Modified by M. Pierret 13 December 1979 to fix bug. If database was opened twice 32* by the same process, it was not gauranteed to empty the scope associated 33* with the correct opening. (Test for rdbi_ptr was incorrect) 34* Modified by M. Pierret 14 January 1980 to force conflict check even if process id and db are same 35* Modified by M. Pierret 22 July 1980 to make scope_info...flags = "0"b one assignment instead of four. 36* --------------------------------------------------------------------------- */ 37 38 dcl dbc_p ptr parm; 39 dcl scope_p ptr parm; 40 dcl rdbi_p ptr parm; 41 dcl rdbi_ptr ptr; 42 dcl i fixed bin; 43 dcl delink bit (1) unal; 44 dcl icode fixed bin (35); /* return code */ 45 46 dcl sys_info$max_seg_size fixed bin (35) ext; 47 48 dcl mu_de_queue_user entry (bit (1), bit (1), ptr, ptr, fixed bin (35)); 49 dcl get_process_id_ entry returns (bit (36)); 50 51 dcl addr builtin; 52 dcl fixed builtin; 53 dcl null builtin; 54 dcl rel builtin; 55 dcl unspec builtin; 56 57 58 dbc_ptr = dbc_p; /* use local variable */ 59 scope_ptr = scope_p; 60 rdbi_ptr = rdbi_p; 61 num_filns = 0; 62 63 do i = 1 to scope_info.nfiles; /* iterate once for each file in data base */ 64 scope_info.scope.flags (i) = "0"b; 65 end; 66 67 scope_info.active_scopes = 0; 68 69 /* Get rid of all traces of this user on any scope list */ 70 71 if delink 72 then do; 73 ul_ptr = convert (dbc_ptr, dbc.open_users_ofs); 74 do while (ul_ptr ^= null); 75 76 if user_list.process_id = get_process_id_ () 77 & unspec (user_list.rdbi_bits) = unspec (rdbi_ptr) 78 then do; 79 call mu_de_queue_user (NO_DQ_OPEN, FREE_FIL_LIST, dbc_ptr, ul_ptr, 80 icode); 81 ul_ptr = null; 82 end; 83 else ul_ptr = convert (dbc_ptr, user_list.next_open_ofs); 84 end; 85 86 end; 87 return; 88 89 convert: 90 proc (a_ptr, ofs) returns (ptr); 91 92 /* this procedure function converts an offset from "0"b to null 93* or from the offset value to a pointer value within the segment denoted by a_ptr 94**/ 95 96 dcl result ptr; /* the reultant pointer value */ 97 dcl a_ptr ptr; /* ptr to the segment to which the offset refers */ 98 dcl ofs bit (18) unal; /* the bit offset */ 99 100 dcl (null, ptr) builtin; 101 102 if ofs ^= NULL_OFS 103 then result = ptr (a_ptr, ofs); 104 else result = null; 105 106 return (result); 107 108 end convert; 109 1 1 /* BEGIN INCLUDE FILE mdbm_dbc.incl.pl1 08/23/78 odf */ 1 2 1 3 /* HISTORY: 1 4* 1 5* Modified by odf for new version data bases in August 1978 1 6* Modified by Al Kepner, March 8, 1979 to add new flags for quiescing 1 7* Modified by M. Pierret, 8 April 1980 to look prettier, add pads 1 8* Modified by M. Pierret, 22 August 1980, grouping like fields (flags, offsets..) 1 9* 1 10* 80-11-19 Jim Gray : modified to change version number from 4 to 5 to allow 1 11* automatic update of dbc structures to new r-s-m-d-u scope codes from r-u. 1 12**/ 1 13 1 14 dcl 1 dbc based (dbc_ptr), /* data base control segment description */ 1 15 2 proper, 1 16 3 version fixed bin, /* version number of this structure */ 1 17 3 dtd_mrds fixed bin (71), /* date time dumped by mrds utility */ 1 18 3 flags, 1 19 4 trouble_switch bit (1) unal, /* ON => ungraceful termination of a user process */ 1 20 4 dead_proc_flag bit (1) unal, /* ON => dead process has access to part of data base */ 1 21 4 quiesce_sw bit (1) unal, /* ON => db is quiesced for a administrative user */ 1 22 4 quiesce_db bit (1) unal, /* ON => The entire data base is being quiesced. */ 1 23 4 quiesce_files bit (1) unal, /* ON => A selected set of files is being quiesced. */ 1 24 4 pad bit (31) unal, /* reserved for future use */ 1 25 3 quiesce_lock bit (36) aligned, /* lock word for quiescing data base */ 1 26 3 wakeup_waiters fixed bin, /* nbr users who have been sent a wakeup signal but have not yet 1 27* received it */ 1 28 3 user_counts, 1 29 4 open_users fixed bin, /* nbr of users with data base open in any mode */ 1 30 4 active_users fixed bin, /* nbr of users currently having a scope set */ 1 31 4 waiting_users fixed bin, /* nbr of users waiting to set scope */ 1 32 3 open_lock bit (36) aligned, /* lock word for opening data base */ 1 33 3 scope_lock bit (36) aligned, /* lock word for setting and deleting scope */ 1 34 3 sa_size fixed bin (35), /* size in words of static area */ 1 35 3 pad2 bit (144), 1 36 3 offsets, 1 37 4 open_users_ofs bit (18) unal, /* bit offset to list of users with data base currently open */ 1 38 4 active_users_ofs bit (18) unal, /* bit offset to list of active users in shared mode */ 1 39 4 waiting_users_ofs bit (18) unal, /* bit offset to list of waiting users in shared mode */ 1 40 4 obsolete bit (36) unal, /* obsolete */ 1 41 3 pad3 bit (144), 1 42 2 static_area area (sys_info$max_seg_size - fixed (rel (addr (dbc.static_area))) + 1); 1 43 1 44 dcl dbc_ptr ptr init (null ()); 1 45 1 46 dcl VERSION_NBR fixed bin init (5) static internal options (constant); 1 47 1 48 1 49 /* END mdbm_dcb.incl.pl1 */ 1 50 1 51 110 111 2 1 /* BEGIN mdbm_users.incl.pl1 -- odf, 08/10/78 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(86-10-03,Dupuis), approve(86-10-21,MCR7562), audit(86-10-22,Blair), 2 7* install(86-10-23,MR12.0-1199): 2 8* Deleted the DEFAULT_WAIT variable. 2 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 /* HISTORY: 2 13* Written by Oris Friesen August 10, 1978. 2 14* Modified by M. Pierret 13 December 1979, changing wakeup messages. 2 15* Modified by M. Pierret 13 April 1980 (Jason's birthday) to remove priority and wakeup structures 2 16* Modified by M. Pierret 13 August 1980 to group like fields (ids, offsets...) 2 17* Modified by Jim Gray - - 80-11-19, to add fields to fil_list to allow for complete 2 18* r-u-s-m-d scope codes, instead of just r-u. 2 19* 2 20* 80-12-10 Jim Gray : change names of fil_list prevent/permit modes 2 21* store to append_tuple, retreive to read_attr, delete to delete_tuple, modify to modify_attr, 2 22* and pad to mbz for consistency with MRDS access acl modes. 2 23* 2 24* 80-12-12 Jim Gray : Changed DEFAULT_WAIT declaration to fixed bin 35 from 71, 2 25* so that the wait_seconds fb35 overlay would not get 0 and thus never wait. 2 26* This is currently only used in mrds_dsl_set_fscope. 2 27* 2 28* 82-09-22 Davids: addede the opening_id element to the fil_list structure. 2 29* Put it at the end to make the new structure compatable with the old so 2 30* that testing could take place without having to recompile all the modules 2 31* that use the structure. 2 32* 2 33* 82-10-14 Davids: removed the opening_id element and added the rmri_ptr 2 34* element. This was done because set_fscope must be able to open the 2 35* relation if its not yet opened. 2 36* --------------------------------------------------------------------------- 2 37* DESCRIPTION: 2 38* 2 39* The dbc contains the following information in its static area. 2 40* One group of information is composed of structures (user_list) 2 41* threaded 3 ways to form 3 lists. They are the list of active 2 42* scope users, of open users, and of users waiting to set scope. 2 43* The beginning of each of these lists is pointed to by fields 2 44* in the dbc proper. All of these lists share the user_list structures, 2 45* and are completely contained within these structures, i.e., there 2 46* is no extraneous information in some knook in Scottsdale. 2 47* 2 48* Associated with each user_list structure is a linked list of 2 49* fil_list structures. The list is of all of the files (relations) 2 50* included in the user's scope request. Unlike the user_list 2 51* structures which were shared by several different lists, the structures 2 52* in a user's file list are exclusively hers. The entries contain 2 53* information about the scope request and the file name, and have 2 54* no real connection with the actual files in the resultant model. 2 55* --------------------------------------------------------------------------- */ 2 56 2 57 dcl 1 user_list based (ul_ptr), 2 58 2 ids, 2 59 3 group_id char (32), /* group identifier of this user */ 2 60 3 process_id bit (36), /* process identifier of this user */ 2 61 3 db_lock_id bit (36) aligned, /* the unique lock id for this process -- 2 62* used to identify dead processes */ 2 63 3 ev_chn_id fixed bin (71), /* event channel id for this process */ 2 64 3 rdbi_bits bit (72), /* bit string of rdbi_ptr 2 65* to allow concurrent openings by same process */ 2 66 2 flags, 2 67 3 open_mode fixed bin unal, /* the mode of the db. opening -- NORMAL or QUIESCE */ 2 68 3 passive_sw bit (1) unal, /* OFF => -permit update on some file */ 2 69 3 active_sw bit (1) unal, /* ON => user has a scope set */ 2 70 3 waiting_sw bit (1) unal, /* ON => user is waiting for scope to be set */ 2 71 3 priority_high bit (1) unal, /* obsolete */ 2 72 3 event_signal_sw bit (1) unal, /* ON => user has been signalled thru event wait channel */ 2 73 3 dead_proc bit (1) unal, /* ON => this user's process has died and is inactive */ 2 74 3 dead_proc_conflict 2 75 bit (1) unal, /* this user's scope request conflicts with a dead process */ 2 76 3 queue_activ bit (1) unal, /* activated from the waiting queue */ 2 77 3 pad bit (28), /* reserved for future use */ 2 78 2 allowance_count fixed bin, /* obsolete */ 2 79 2 bypass_count fixed bin, /* obsolete */ 2 80 2 offsets, 2 81 3 fil_list_ofs bit (18) unal, /* bit offset to list of files in this user's scope request */ 2 82 3 next_active_ofs bit (18) unal, /* bit offset to next user in this list of active scope users */ 2 83 3 next_waiting_ofs bit (18) unal, /* bit offset to next user in user list waiting to set scope */ 2 84 3 next_open_ofs bit (18) unal, /* bit offset to next user who has data base open in any mode */ 2 85 2 num_filns fixed bin, /* number of files potentially accessible by this user */ 2 86 2 file (num_filns refer (user_list.num_filns)) char (30); 2 87 /* names of files accessible by this user */ 2 88 2 89 dcl 1 fil_list based (fl_ptr), /* of files which a given user has specified for a scope */ 2 90 2 name char (30), /* data model name of the file specified in scope request */ 2 91 2 permits, /* permit codes for scope setting or deleting */ 2 92 3 mbz1 bit (15) unal, 2 93 3 modify_attr bit (1) unal, 2 94 3 delete_tuple bit (1) unal, 2 95 3 append_tuple bit (1) unal, 2 96 3 update bit (1) unal, 2 97 3 read_attr bit (1) unal, 2 98 2 prevents, /* prevent codes for scope setting or deleting */ 2 99 3 update bit (1) unal, 2 100 3 read_attr bit (1) unal, 2 101 3 append_tuple bit (1) unal, 2 102 3 delete_tuple bit (1) unal, 2 103 3 modify_attr bit (1) unal, 2 104 3 mbz2 bit (29) unal, 2 105 2 next_ofs bit (18) unal, /* bit offset to next file entry for this user's scope request */ 2 106 2 rmri_ptr ptr; /* pointer to the relation's rm_rel_info str */ 2 107 /* needed so that the relation can be opened if need be */ 2 108 2 109 dcl ul_ptr ptr init (null ()); 2 110 dcl fl_ptr ptr init (null ()); 2 111 2 112 dcl num_filns fixed bin; /* number of files accessible by a given user */ 2 113 2 114 2 115 dcl WAIT init (0) fixed bin int static options (constant); 2 116 /* the number of later user requests for which a user 2 117* request will wait before it must be honored */ 2 118 dcl NULL_OFS bit (18) init ("111111111111111111"b) unal int static options (constant); 2 119 dcl DQ_OPEN bit (1) unal init ("1"b) int static options (constant); 2 120 /* dequeue from open list */ 2 121 dcl NO_DQ_OPEN bit (1) init ("0"b) int static options (constant); 2 122 /* do not dequeue from open list */ 2 123 dcl CHAR_Q_F char (8) init ("que_free") int static options (constant); 2 124 dcl QUE_FREE fixed bin (71); 2 125 dcl CHAR_ALARM char (8) init ("alarm___") int static options (constant); 2 126 /* wakeup up signal for time-out */ 2 127 dcl ALARM fixed bin (71); 2 128 dcl FIRST_QUEUE bit (1) init ("1"b) int static options (constant); 2 129 /* this is the 1st time process will asleep */ 2 130 dcl QUEUE_AGAIN bit (1) init ("0"b) int static options (constant); 2 131 /* being queued for the 2nd, 3rd ... time */ 2 132 dcl SET bit (1) unal init ("1"b) int static options (constant); 2 133 /* check to see which scopes can be set */ 2 134 dcl DEL bit (1) unal init ("0"b) int static options (constant); 2 135 /* check to see which scopes can be deleted */ 2 136 dcl ALIVE init ("1"b) bit (1) unal int static options (constant); 2 137 /* process is alive */ 2 138 dcl DEAD init ("0"b) bit (1) unal int static options (constant); 2 139 /* process is dead */ 2 140 dcl Q_PRM init (3) fixed bin (35) int static options (constant); 2 141 /* permit retrieve, update */ 2 142 dcl Q_PRV init (3) fixed bin (35) int static options (constant); 2 143 /* prevent retrieve, update */ 2 144 dcl Q_PRM_BITS bit (2) unal init ("11"b) int static options (constant); 2 145 /* permit retrieve, update */ 2 146 dcl Q_PRV_BITS bit (2) unal init ("11"b) int static options (constant); 2 147 /* prevent retrieve, update */ 2 148 dcl REL_SEC bit (2) init ("11"b) int static options (constant); 2 149 /* measure wait time in relative seconds */ 2 150 dcl FREE_FIL_LIST bit (1) unal init ("1"b) int static options (constant); 2 151 /* free this user's file lists */ 2 152 dcl SAVE_FIL_LIST bit (1) unal init ("0"b) int static options (constant); 2 153 /* do not free this user's file lists */ 2 154 2 155 /* END mdbm_users.incl.pl1 */ 2 156 112 113 3 1 /* BEGIN mdbm_scope_info.incl.pl1 -- odf 8/8/78 */ 3 2 3 3 /* WARNING 3 4* If the scope_info or scope_flags structure is changed then the 3 5* mrds_data_ item saved_res_version MUST be incremented to invalidate 3 6* all existing saved resultants 3 7**/ 3 8 3 9 /* Modified by Jim Gray - - 80-11-17, to add back store/delete/modify permissions */ 3 10 3 11 /* 80-12-10 Jim Gray : change name of store to append_tuple, delete to delete_tuple, 3 12* modify to modify_attr, retrieve to read_attr, remvoe update, put level 4 3 13* qualifiers for permit/prevent modes and to put pads in standard format */ 3 14 3 15 /* 80-12-11 Jim Gray : added submodel version of file/rel name for convenience */ 3 16 3 17 /* 80-12-22 Jim Gray : added like referenced structure so linus_scope_data.incl 3 18* could make use of it for compatibility. */ 3 19 3 20 /* 81-1-11 Jim Gray : added touched bit to scope_flags, so that 3 21* the fact that null scope has been set can be displayed */ 3 22 3 23 /* 85-04-14 Thanh Nguyen: Made scope_flags to be aligned so we could access the 3 24* prevent flags from any pointer which directly pointed to scope_flags itself 3 25* (i.e rm_rel_info.scope_flags_ptr). */ 3 26 3 27 /* this structure is to be allocated in the mrds_dbcb.incl.pl1 static area, 3 28* and is used to maintain the scope mechanism for file access. 3 29* It contains the scope permit/prevent operations that this user 3 30* has set in his view for this opening instance. */ 3 31 3 32 dcl 1 scope_info aligned based (scope_ptr), /* array of scope tuples for this user */ 3 33 2 mbz1 bit (144), /* Reserved for future use */ 3 34 2 nfiles fixed bin, /* Number of scope tuples in user's scope */ 3 35 2 active_scopes fixed bin, /* number of scopes currently active for a given user */ 3 36 2 scope (max_file_init refer (scope_info.nfiles)), /* defines user's scope of access to files */ 3 37 3 name char (30) aligned, /* filename */ 3 38 3 sm_name char (32), /* name of file(rel) in submodel */ 3 39 3 flags like scope_flags ; 3 40 3 41 3 42 declare 1 scope_flags aligned based, /* common layout of scope flag bits */ 3 43 2 permits, /* modes to permit this user */ 3 44 3 read_attr bit (1) unal, /* read_attr access to this file in scope */ 3 45 3 append_tuple bit (1) unal, /* append_tuple concnrrency permission */ 3 46 3 delete_tuple bit (1) unal, /* delete_tuple concurrency permission on rel */ 3 47 3 modify_attr bit (1) unal, /* modify_attr concurrency permission */ 3 48 3 mbz2 bit (10) unal, /* for expansion of permit ops */ 3 49 2 prevents, /* modes to be denyed to other users */ 3 50 3 read_attr bit (1) unal, /* on if user has prevent on read_attr for this file */ 3 51 3 append_tuple bit (1) unal, /* prevent of append_tuple concurrency */ 3 52 3 delete_tuple bit (1) unal, /* prevent of delete_tuple concurrency */ 3 53 3 modify_attr bit (1) unal, /* prevent of modify_attr concurrency */ 3 54 3 mbz3 bit (10) unal, /* for future prevent concurrency modes */ 3 55 2 touched bit (1) unal, /* on => scope set for this relation */ 3 56 2 mbz4 bit (7) unal ; /* for future flags */ 3 57 3 58 dcl max_file_init fixed bin; /* nbr. of files in data base */ 3 59 dcl scope_ptr ptr init (null ()); /* points to scope_info array */ 3 60 dcl scope_rdy bit (6) unal init ("000011"b) int static options (constant); /* scope file ready modes (5 or 6) */ 3 61 dcl scope_rdy_array (6) bit (1) unal based; /* array format of scope_rdy string */ 3 62 3 63 /* END mdbm_scope_info.incl.pl1 */ 114 115 116 end mu_empty_scope; 117 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/23/86 1008.9 mu_empty_scope.pl1 >spec>install>1199>mu_empty_scope.pl1 110 1 10/14/83 1609.0 mdbm_dbc.incl.pl1 >ldd>include>mdbm_dbc.incl.pl1 112 2 10/23/86 1006.0 mdbm_users.incl.pl1 >spec>install>1199>mdbm_users.incl.pl1 114 3 04/18/85 1628.1 mdbm_scope_info.incl.pl1 >ldd>include>mdbm_scope_info.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. FREE_FIL_LIST 000000 constant bit(1) initial unaligned dcl 2-150 set ref 79* NO_DQ_OPEN 000002 constant bit(1) initial unaligned dcl 2-121 set ref 79* NULL_OFS constant bit(18) initial unaligned dcl 2-118 ref 102 a_ptr parameter pointer dcl 97 ref 89 102 active_scopes 5 based fixed bin(17,0) level 2 dcl 3-32 set ref 67* dbc based structure level 1 unaligned dcl 1-14 dbc_p parameter pointer dcl 38 ref 18 18 58 dbc_ptr 000104 automatic pointer initial dcl 1-44 set ref 58* 73* 73 79* 83* 1-44* delink parameter bit(1) unaligned dcl 43 ref 18 18 71 fl_ptr 000110 automatic pointer initial dcl 2-110 set ref 2-110* flags 26 based structure array level 3 dcl 3-32 set ref 64* get_process_id_ 000012 constant entry external dcl 49 ref 76 i 000102 automatic fixed bin(17,0) dcl 42 set ref 63* 64 64 64 64 64 64 64 64 64 64 64 64 64 64* icode 000103 automatic fixed bin(35,0) dcl 44 set ref 79* ids based structure level 2 unaligned dcl 2-57 mu_de_queue_user 000010 constant entry external dcl 48 ref 79 next_open_ofs 23(18) based bit(18) level 3 packed unaligned dcl 2-57 set ref 83* nfiles 4 based fixed bin(17,0) level 2 dcl 3-32 ref 63 null builtin function dcl 100 in procedure "convert" ref 104 null builtin function dcl 53 in procedure "empty_scope" ref 74 81 1-44 2-109 2-110 3-59 num_filns 000112 automatic fixed bin(17,0) dcl 2-112 set ref 61* offsets 21 based structure level 3 in structure "dbc" packed unaligned dcl 1-14 in procedure "empty_scope" offsets 22 based structure level 2 in structure "user_list" packed unaligned dcl 2-57 in procedure "empty_scope" ofs parameter bit(18) unaligned dcl 98 ref 89 102 102 open_users_ofs 21 based bit(18) level 4 packed unaligned dcl 1-14 set ref 73* process_id 10 based bit(36) level 3 packed unaligned dcl 2-57 ref 76 proper based structure level 2 unaligned dcl 1-14 ptr builtin function dcl 100 ref 102 rdbi_bits 14 based bit(72) level 3 packed unaligned dcl 2-57 ref 76 rdbi_p parameter pointer dcl 40 ref 18 18 60 rdbi_ptr 000100 automatic pointer dcl 41 set ref 60* 76 result 000126 automatic pointer dcl 96 set ref 102* 104* 106 scope 6 based structure array level 2 dcl 3-32 scope_flags based structure level 1 dcl 3-42 scope_info based structure level 1 dcl 3-32 scope_p parameter pointer dcl 39 ref 18 18 59 scope_ptr 000114 automatic pointer initial dcl 3-59 set ref 59* 63 64 67 3-59* ul_ptr 000106 automatic pointer initial dcl 2-109 set ref 73* 74 76 76 79* 81* 83* 83 2-109* unspec builtin function dcl 55 ref 76 76 user_list based structure level 1 unaligned dcl 2-57 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALARM automatic fixed bin(71,0) dcl 2-127 ALIVE internal static bit(1) initial unaligned dcl 2-136 CHAR_ALARM internal static char(8) initial unaligned dcl 2-125 CHAR_Q_F internal static char(8) initial unaligned dcl 2-123 DEAD internal static bit(1) initial unaligned dcl 2-138 DEL internal static bit(1) initial unaligned dcl 2-134 DQ_OPEN internal static bit(1) initial unaligned dcl 2-119 FIRST_QUEUE internal static bit(1) initial unaligned dcl 2-128 QUEUE_AGAIN internal static bit(1) initial unaligned dcl 2-130 QUE_FREE automatic fixed bin(71,0) dcl 2-124 Q_PRM internal static fixed bin(35,0) initial dcl 2-140 Q_PRM_BITS internal static bit(2) initial unaligned dcl 2-144 Q_PRV internal static fixed bin(35,0) initial dcl 2-142 Q_PRV_BITS internal static bit(2) initial unaligned dcl 2-146 REL_SEC internal static bit(2) initial unaligned dcl 2-148 SAVE_FIL_LIST internal static bit(1) initial unaligned dcl 2-152 SET internal static bit(1) initial unaligned dcl 2-132 VERSION_NBR internal static fixed bin(17,0) initial dcl 1-46 WAIT internal static fixed bin(17,0) initial dcl 2-115 addr builtin function dcl 51 fil_list based structure level 1 unaligned dcl 2-89 fixed builtin function dcl 52 max_file_init automatic fixed bin(17,0) dcl 3-58 rel builtin function dcl 54 scope_rdy internal static bit(6) initial unaligned dcl 3-60 scope_rdy_array based bit(1) array unaligned dcl 3-61 sys_info$max_seg_size external static fixed bin(35,0) dcl 46 NAMES DECLARED BY EXPLICIT CONTEXT. convert 000235 constant entry internal dcl 89 ref 73 83 empty_scope 000025 constant entry external dcl 18 mu_empty_scope 000036 constant entry external dcl 18 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 340 354 266 350 Length 574 266 14 203 52 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME empty_scope 115 external procedure is an external procedure. convert internal procedure shares stack frame of external procedure empty_scope. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME empty_scope 000100 rdbi_ptr empty_scope 000102 i empty_scope 000103 icode empty_scope 000104 dbc_ptr empty_scope 000106 ul_ptr empty_scope 000110 fl_ptr empty_scope 000112 num_filns empty_scope 000114 scope_ptr empty_scope 000126 result convert THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_process_id_ mu_de_queue_user NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 1 44 000011 2 109 000013 2 110 000014 3 59 000015 18 000020 58 000044 59 000050 60 000053 61 000056 63 000057 64 000067 65 000121 67 000123 71 000125 73 000133 74 000146 76 000152 79 000175 81 000214 82 000216 83 000217 84 000233 87 000234 89 000235 102 000237 104 000253 106 000255 ----------------------------------------------------------- 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