COMPILATION LISTING OF SEGMENT rcp_compute_raw_mode Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 0951.0 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1985 * 6* * * 7* *********************************************************** */ 8 9 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 10 rcp_compute_raw_mode: 11 procedure (a_rm_on, a_requestor_info_ptr, a_resource_info_ptr, a_acs_path, a_owner, a_raw_mode, a_error_code); 12 13 /****^ This internal subroutine implements discretionary access 14* computations for RCP. 15* Created 841025 by Maria M. Pozzo */ 16 17 18 /****^ HISTORY COMMENTS: 19* 1) change(85-07-12,Pozzo), approve(86-02-21,MCR7346), audit(86-07-29,Farley), 20* install(86-08-01,MR12.0-1108): 21* Modified to allow owners to retain REW access if the ACS specified in the 22* registry does not exist. 23* END HISTORY COMMENTS */ 24 25 26 /****^ If Resource Management is DISABLED, simply get the ACL from 27* the ACS segment located in >sc1>rcp. 28* If Resource Management is ENABLED, and there is an ACS segment 29* set the access from the ACL of the ACS segment. 30* If there is no ACS, get the resource owner from the registry 31* and set as follows: 32* owner = user_id REW owner 33* NULL world 34* owner = free NULL world 35* owner = system NULL world */ 36 37 /* ARGUMENT DATA */ 38 39 dcl a_rm_on bit (1) aligned; /* (I) "1"b means Resource Management is Enabled. */ 40 dcl a_requestor_info_ptr ptr; /* (I) Pointer to information about the real requestor of the RCP operation - not Initializer. */ 41 dcl a_resource_info_ptr ptr; /* (I) Pointer to information about the resource being requested */ 42 dcl a_acs_path char (168); /* (I) Pathname of the associated ACS segment */ 43 dcl a_owner char (32); /* (I/O) Owner of the resource */ 44 dcl a_raw_mode bit (3); /* (O) Resulting discretionary access mode of requestor to resource */ 45 dcl a_error_code fixed bin (35); /* (O) Error code */ 46 47 48 /* AUTOMATIC */ 49 50 dcl local_raw_mode bit (3); /* Local raw mode */ 51 dcl rm_on bit (1) aligned; /* ON=> Resource Management enabled */ 52 dcl temp_mode bit (36) aligned; /* Conversion of modes */ 53 dcl is_volume bit (1); /* ON=> resource type is volume */ 54 55 dcl acs_path char (168); /* ACS path name */ 56 dcl owner char (32) varying; /* Resource owner */ 57 dcl registry_dir char (64); /* Registry directory */ 58 dcl user char (32); /* User id */ 59 60 dcl error_code fixed bin (35); 61 62 63 /* EXTERNAL STATIC */ 64 65 dcl error_table_$resource_bad_access 66 fixed bin (35) ext static; 67 dcl error_table_$resource_unknown 68 fixed bin (35) ext static; 69 70 /* BUILTINS */ 71 72 dcl (length, rtrim, substr) 73 builtin; 74 75 /* ENTRIES CALLED */ 76 77 dcl hcs_$get_user_raw_mode entry (char (*), char (*), char (*), bit (36) aligned, fixed bin (35)); 78 dcl resource_info_$get_type 79 entry (char (*), bit (1), fixed bin (35)); 80 81 /* Copy input arguments */ 82 83 rm_on = a_rm_on; 84 requestor_info_ptr = a_requestor_info_ptr; 85 resource_info_ptr = a_resource_info_ptr; 86 acs_path = a_acs_path; 87 owner = a_owner; 88 89 /* Initialize local variables and get set up */ 90 91 local_raw_mode = N_ACCESS; 92 temp_mode = (36)"0"b; 93 error_code = 0; 94 95 /* The user is in the form of *.*.* and the owner is in */ 96 /* the form *.* in the registry so must strip user of tag. */ 97 98 user = substr (requestor_info.user_id, 1, length (rtrim (requestor_info.user_id)) - 2); 99 registry_dir = resource_info.registry_dir; 100 101 /* Is Resource Management Enabled */ 102 103 if (rm_on & acs_path = "") then do; 104 if owner = user then /* Owner gets REW */ 105 local_raw_mode = REW_ACCESS; 106 else local_raw_mode = N_ACCESS; /* NULL access to world */ 107 end; 108 else if (acs_path ^= "") then do; /* We have an ACS path */ 109 call hcs_$get_user_raw_mode (acs_path, "", (requestor_info.user_id), temp_mode, error_code); 110 111 /* If the access on the acs_path cannont be determined (i.e. it */ 112 /* doesn't exist or something) the owner should retain REW. */ 113 114 if error_code ^= 0 then 115 if user = owner then do; 116 local_raw_mode = REW_ACCESS; 117 error_code = 0; 118 end; 119 else goto MAIN_RETURN; 120 else local_raw_mode = substr (temp_mode, 1, 3); 121 end; 122 else do; 123 124 /* We know there's no ACS and RM is disabled */ 125 126 call resource_info_$get_type (resource_info.resource_type, is_volume, error_code); 127 if error_code ^= 0 then 128 goto MAIN_RETURN; 129 if is_volume then 130 local_raw_mode = RW_ACCESS; /* Everyone has RW to volumes */ 131 132 /* At this point it is not a volume and there is no */ 133 /* ACS for it so it is not a known resource. */ 134 135 else error_code = error_table_$resource_unknown; 136 end; 137 138 MAIN_RETURN: 139 if local_raw_mode = N_ACCESS then 140 error_code = error_table_$resource_bad_access; 141 a_raw_mode = local_raw_mode; 142 a_error_code = error_code; 143 return; 144 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 145 146 2 1 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 2 /* Begin include file rcp_requestor_info.incl.pl1 2 3* * 2 4* * This include file gives information about the subject, 2 5* * or requestor of the RCP operation. In one case, absentee 2 6* * requests, the user is the Initializer, so this piece of 2 7* * information tells us about the real requestor of the RCP 2 8* * operation. 2 9**/ 2 10 2 11 dcl requestor_info_ptr ptr; 2 12 2 13 dcl 1 requestor_info aligned based (requestor_info_ptr), 2 14 2 user_id char (32), 2 15 2 current_authorization bit (72) aligned, 2 16 2 validation_level fixed bin (3); 2 17 2 18 /* end include file .. rcp_requestor_info.incl.pl1 */ 147 148 3 1 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 3 2 /* Begin include file rcp_resource_info.incl.pl1 3 3* * 3 4* * This include file gives information about the object, 3 5* * or resource for the RCP operation. If RM is enabled this 3 6* * information will provide the registry name and switch pointer 3 7* * for the registry so additional resource information can be 3 8* * determined. If RM is disabled, this information will include 3 9* * the resource name and/or type. 3 10**/ 3 11 3 12 dcl resource_info_ptr ptr; 3 13 3 14 dcl 1 resource_info based (resource_info_ptr), 3 15 2 registry_dir aligned char (64), /* Could be a different if it is reconstruct operation */ 3 16 2 registry_switch_ptr 3 17 ptr, /* Switch to the registry */ 3 18 2 registry_record_ptr 3 19 ptr, /* Pointer to the registry record */ 3 20 2 resource_type char (32), /* Resource type */ 3 21 2 resource_name char (32); /* Resource name */ 3 22 3 23 /* end include file .. rcp_resource_info.incl.pl1 */ 149 150 4 1 /* --------------- BEGIN include file rcp_registry.incl.pl1 --------------- */ 4 2 4 3 /* Written 05/04/78 by C. D. Tavares */ 4 4 4 5 dcl 1 registry_record aligned based (record_ptr), 4 6 2 dynamic_info aligned, 4 7 3 attributes (2) bit (72) aligned, 4 8 3 (location_desc, 4 9 comment_desc, 4 10 pad (2)) fixed bin (35) aligned, 4 11 2 acquisition_info aligned, 4 12 3 (owner_desc, 4 13 acs_path_desc, 4 14 aim_range_desc) fixed bin (35) aligned, 4 15 3 flags unaligned, 4 16 4 (usage_lock, 4 17 release_lock, 4 18 awaiting_clear, 4 19 user_alloc, 4 20 system, 4 21 free) bit (1) unaligned, 4 22 4 pad bit (12) unaligned, 4 23 3 reserver_chain bit (18) unaligned, 4 24 3 pad (2) fixed bin (35) aligned, 4 25 2 registration_info aligned, 4 26 3 uid bit (36) aligned, 4 27 3 (potential_attributes_desc, 4 28 potential_aim_range_desc, 4 29 charge_type_desc, 4 30 pad (2)) fixed bin (35) aligned, 4 31 3 name unaligned, 4 32 4 n fixed bin (8) unaligned, 4 33 4 string char (rr_strl refer (registry_record.name.n)) unaligned; 4 34 4 35 dcl 1 registry_header aligned based (header_ptr), 4 36 2 rtde_size fixed bin (18), 4 37 2 rtde_copy (RTDE_SIZE refer (registry_header.rtde_size)) bit (36) aligned, 4 38 2 other aligned, 4 39 3 last_transaction_time fixed bin (71), 4 40 3 pad (18) bit (36) aligned; 4 41 4 42 dcl RTDE_SIZE fixed bin (18); 4 43 5 1 /* --------------- BEGIN include file rtdt.incl.pl1 --------------- */ 5 2 5 3 dcl 1 rtdt aligned based (rtdtp), /* resource type description table */ 6 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 6 2 6 3 /* the "author" items must always be the first ones in the table. The 6 4* module which moves the converted table to the System Control process 6 5* fills in these data items and assumes them to be at the head of the segment 6 6* regardless of the specific table's actual declaration. The variables 6 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 6 8* respectively. For tables installed in multiple processes, these 6 9* are to be used to lock out multiple installations. */ 6 10 6 11 /* Lock should be used as a modification lock. Since, in general, 6 12* entries may not be moved in system tables, even by installations, 6 13* it is sufficient for only installers and programs that change threads 6 14* to set or respect the lock. Simply updating data in an entry 6 15* requires no such protection. 6 16* 6 17* Last_install_time is used by readers of system tables to detect 6 18* installations or other serious modifications. By checking it before 6 19* and after copying a block of data, they can be protected against 6 20* modifications. 6 21* 6 22* Modules that set the lock should save proc_group_id, and then 6 23* put their group id there for the time they hold the lock. 6 24* if they do not actually install the, they should restore the group id. 6 25**/ 6 26 6 27 2 author aligned, /* validation data about table's author */ 6 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 6 29 3 lock bit (36), /* installation lock */ 6 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 6 31 3 update_authorization bit (1) unal, /* update only authorizations */ 6 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 6 33 3 pad bit (33) unaligned, 6 34 3 last_install_time fixed bin (71), 6 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 6 36 3 w_dir char (64), /* author's working directory */ 6 37 6 38 /* END INCLUDE FILE author.incl.pl1 */ 5 4 5 5 2 version fixed bin, /* version number */ 5 6 2 installed_under_resource_mgt bit (1) aligned, /* resource mgt. was ON when this was installed */ 5 7 2 charge_type_table_ptr offset, /* points to charge_type_table */ 5 8 2 first_resource offset, /* chain for RTDE's */ 5 9 2 rtdt_area area (RTDT_area_len); /* all following items allocated here */ 5 10 5 11 dcl 1 charge_type_table aligned based (cttp), /* describes charges for resource types */ 5 12 2 n_charge_types fixed bin, /* number of distinct charge types */ 5 13 2 charge_types (N_CHARGE_TYPES refer (charge_type_table.n_charge_types)) aligned char (32), 5 14 2 flagword fixed bin (35) aligned; /* this word simply help us set bitcount properly */ 5 15 5 16 dcl 1 rtde aligned based (rtdep), /* describes one resource type */ 5 17 2 fixed_info aligned, 5 18 3 next_resource offset, /* chains to next type, or nullo */ 5 19 3 name char (32), /* name of resource type, e.g. "tape_drive" */ 5 20 3 syn_to char (32), /* if is_synonym this is master syn */ 5 21 3 precanon_proc char (64), /* name of routine to standardize resource name */ 5 22 3 pad_1 (16) fixed bin (35), 5 23 3 flags unaligned, 5 24 4 (valid, /* resource type hasn't been deleted */ 5 25 is_volume, /* specifies volume or device type */ 5 26 manual_clear, /* volumes of this type to be "degaussed" between owners */ 5 27 addition_pending, /* bookkeeping bit for upd_rtdt_ */ 5 28 deletion_pending, 5 29 is_synonym) bit (1) unaligned, /* ditto */ 5 30 4 pad bit (12) unaligned, 5 31 3 (process_limit, /* how many can you assign at one time */ 5 32 default_time, /* implicit reservations are for how many minutes */ 5 33 max_time, /* how long can you reserve it for */ 5 34 advance_notice_time, /* warn operator to prepare mount ahead of time */ 5 35 pad2, 5 36 n_exclusion_specs, /* number of distinct "name=" fields in attributes */ 5 37 n_mates, /* number of mating devs/vols for this vol/dev */ 5 38 n_subtypes, /* number of registration subtypes */ 5 39 n_defined_attributes) fixed bin (17) unaligned, /* number of defined attributes */ 5 40 3 pad_2 (8) fixed bin (35), 5 41 3 attributes_valid bit (72) aligned, /* "1"b if corresp. attribute undeleted */ 5 42 3 attributes_to_match bit (72) aligned, /* potential mate must possess these attributes */ 5 43 3 attribute_names (72) char (12) aligned, /* all possible attributes for this resource */ 5 44 3 exclusion_specs (36) bit (72) aligned, /* each masks all attrributes of the form "key=val" */ 5 45 3 pad_3 (32) fixed bin (35), 5 46 3 registration_defaults aligned, /* applied at reg. time if none given */ 5 47 4 default_flags aligned, 5 48 5 (potential_attributes_given, /* "1"b = there are default potential_attributes */ 5 49 attributes_given, /* and similarly, etc. */ 5 50 aim_range_given, 5 51 charge_type_given) bit (1) unaligned, 5 52 5 pad bit (31) unaligned, 5 53 4 potential_attributes bit (72) aligned, /* for registration, if given */ 5 54 4 attributes bit (72) aligned, /* for registration and also for runtime "I-don't-care" */ 5 55 4 aim_range (2) bit (72) aligned, /* and similarly, etc. */ 5 56 4 charge_type fixed bin, 5 57 4 pad_4 (8) fixed bin (35) aligned, 5 58 2 mates (N_MATES refer (rtde.n_mates)) char (32) aligned, 5 59 /* the volume type that mounts on this device, or vice versa */ 5 60 2 subtypes (N_SUBTYPES refer (rtde.n_subtypes)) aligned, /* named registration default groups */ 5 61 3 subtype_name char (32), /* name of the group */ 5 62 3 subtype_defaults like rtde.registration_defaults aligned; 5 63 5 64 dcl RTDT_version_3 fixed bin static options (constant) initial (3), 5 65 RTDT_version_2 fixed bin static options (constant) initial (2), 5 66 /* same format, but without precanon_proc */ 5 67 (N_MATES, N_SUBTYPES, N_CHARGE_TYPES) fixed bin, 5 68 RTDT_area_len fixed bin (18); 5 69 5 70 dcl (rtdep, rtdtp, cttp) pointer; 5 71 5 72 /* ---------------- END include file rtdt.incl.pl1 ---------------- */ 4 44 4 45 4 46 dcl (record_ptr, header_ptr) pointer, 4 47 rr_strl fixed bin; 4 48 4 49 /* ---------------- END include file rcp_registry.incl.pl1 ---------------- */ 151 152 153 end rcp_compute_raw_mode; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0804.6 rcp_compute_raw_mode.pl1 >spec>install>1111>rcp_compute_raw_mode.pl1 145 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 147 2 03/15/85 0953.1 rcp_requestor_info.incl.pl1 >ldd>include>rcp_requestor_info.incl.pl1 149 3 03/15/85 0953.1 rcp_resource_info.incl.pl1 >ldd>include>rcp_resource_info.incl.pl1 151 4 11/20/79 2015.5 rcp_registry.incl.pl1 >ldd>include>rcp_registry.incl.pl1 4-44 5 11/20/79 2015.6 rtdt.incl.pl1 >ldd>include>rtdt.incl.pl1 5-4 6 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.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. N_ACCESS constant bit(3) initial packed unaligned dcl 1-11 ref 91 106 138 REW_ACCESS constant bit(3) initial packed unaligned dcl 1-11 ref 104 116 RW_ACCESS constant bit(3) initial packed unaligned dcl 1-11 ref 129 a_acs_path parameter char(168) packed unaligned dcl 42 ref 10 86 a_error_code parameter fixed bin(35,0) dcl 45 set ref 10 142* a_owner parameter char(32) packed unaligned dcl 43 ref 10 87 a_raw_mode parameter bit(3) packed unaligned dcl 44 set ref 10 141* a_requestor_info_ptr parameter pointer dcl 40 ref 10 84 a_resource_info_ptr parameter pointer dcl 41 ref 10 85 a_rm_on parameter bit(1) dcl 39 ref 10 83 acs_path 000104 automatic char(168) packed unaligned dcl 55 set ref 86* 103 108 109* error_code 000217 automatic fixed bin(35,0) dcl 60 set ref 93* 109* 114 117* 126* 127 135* 138* 142 error_table_$resource_bad_access 000010 external static fixed bin(35,0) dcl 65 ref 138 error_table_$resource_unknown 000012 external static fixed bin(35,0) dcl 67 ref 135 fixed_info based structure level 2 dcl 5-16 hcs_$get_user_raw_mode 000014 constant entry external dcl 77 ref 109 is_volume 000103 automatic bit(1) packed unaligned dcl 53 set ref 126* 129 length builtin function dcl 72 ref 98 local_raw_mode 000100 automatic bit(3) packed unaligned dcl 50 set ref 91* 104* 106* 116* 120* 129* 138 141 owner 000156 automatic varying char(32) dcl 56 set ref 87* 104 114 registration_defaults 602 based structure level 3 dcl 5-16 registry_dir 000167 automatic char(64) packed unaligned dcl 57 in procedure "rcp_compute_raw_mode" set ref 99* registry_dir based char(64) level 2 in structure "resource_info" dcl 3-14 in procedure "rcp_compute_raw_mode" ref 99 requestor_info based structure level 1 dcl 2-13 requestor_info_ptr 000220 automatic pointer dcl 2-11 set ref 84* 98 98 109 resource_info based structure level 1 unaligned dcl 3-14 resource_info_$get_type 000016 constant entry external dcl 78 ref 126 resource_info_ptr 000222 automatic pointer dcl 3-12 set ref 85* 99 126 resource_type 24 based char(32) level 2 packed packed unaligned dcl 3-14 set ref 126* rm_on 000101 automatic bit(1) dcl 51 set ref 83* 103 rtde based structure level 1 dcl 5-16 rtrim builtin function dcl 72 ref 98 substr builtin function dcl 72 ref 98 120 temp_mode 000102 automatic bit(36) dcl 52 set ref 92* 109* 120 user 000207 automatic char(32) packed unaligned dcl 58 set ref 98* 104 114 user_id based char(32) level 2 dcl 2-13 ref 98 98 109 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-33 E_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 M_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_CHARGE_TYPES automatic fixed bin(17,0) dcl 5-64 N_MATES automatic fixed bin(17,0) dcl 5-64 N_SUBTYPES automatic fixed bin(17,0) dcl 5-64 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RTDE_SIZE automatic fixed bin(18,0) dcl 4-42 RTDT_area_len automatic fixed bin(18,0) dcl 5-64 RTDT_version_2 internal static fixed bin(17,0) initial dcl 5-64 RTDT_version_3 internal static fixed bin(17,0) initial dcl 5-64 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 W_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 charge_type_table based structure level 1 dcl 5-11 cttp automatic pointer dcl 5-70 header_ptr automatic pointer dcl 4-46 record_ptr automatic pointer dcl 4-46 registry_header based structure level 1 dcl 4-35 registry_record based structure level 1 dcl 4-5 rr_strl automatic fixed bin(17,0) dcl 4-46 rtdep automatic pointer dcl 5-70 rtdt based structure level 1 dcl 5-3 rtdtp automatic pointer dcl 5-70 NAMES DECLARED BY EXPLICIT CONTEXT. MAIN_RETURN 000226 constant label dcl 138 ref 114 127 rcp_compute_raw_mode 000020 constant entry external dcl 10 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 342 362 243 352 Length 652 243 20 254 77 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rcp_compute_raw_mode 180 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rcp_compute_raw_mode 000100 local_raw_mode rcp_compute_raw_mode 000101 rm_on rcp_compute_raw_mode 000102 temp_mode rcp_compute_raw_mode 000103 is_volume rcp_compute_raw_mode 000104 acs_path rcp_compute_raw_mode 000156 owner rcp_compute_raw_mode 000167 registry_dir rcp_compute_raw_mode 000207 user rcp_compute_raw_mode 000217 error_code rcp_compute_raw_mode 000220 requestor_info_ptr rcp_compute_raw_mode 000222 resource_info_ptr rcp_compute_raw_mode THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. hcs_$get_user_raw_mode resource_info_$get_type THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$resource_bad_access error_table_$resource_unknown LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000012 83 000025 84 000031 85 000034 86 000037 87 000043 91 000051 92 000052 93 000053 98 000054 99 000072 103 000076 104 000104 107 000114 108 000115 109 000121 114 000154 116 000163 117 000165 118 000166 120 000167 121 000172 126 000173 127 000213 129 000215 135 000223 138 000226 141 000233 142 000240 143 000242 ----------------------------------------------------------- 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