COMPILATION LISTING OF SEGMENT resource_control_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/04/82 1725.6 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 resource_control_: 12 proc; 13 14 /* 15* This subroutine implements the user ring interface to the resource 16* control package. All the work is done by the various entry points 17* and this main procedure should never be called. 18**/ 19 20 /* 21* Written by R.J.C. Kissel 5/78. 22* Modified by R.J.C. Kissel 1/79 to call rcp_ gate and to add cancellation entry. 23**/ 24 25 return; /* To make this call a nop. */ 26 27 reserve: 28 entry (resource_desc_ptr, resource_res_ptr, authorization, system, code); 29 30 /* 31* This entry point implements the reservation function. It takes 32* a description of the resources to be reserved, (a rservation group) 33* and makes the reservation as an indivisible operation. The code 34* returned indicates success or failure and the code returned with 35* each resource indicates more specifically where a failure occured. 36**/ 37 38 /* Arguments */ 39 40 /* See the resource_control_desc include file for pointer declarations. */ 41 42 dcl authorization bit (72) aligned; /* Only used if system = "1"b. */ 43 dcl system bit (1) aligned; /* This call wishes to do a privileged reservation. */ 44 dcl code fixed bin (35); /* A standard system status code. */ 45 46 /* Local Variables */ 47 48 /* Local Constants */ 49 50 /* Local Overlays */ 51 52 /* Include Files */ 53 1 1 /* --------------- BEGIN include file resource_control_desc.incl.pl1 --------------- */ 1 2 1 3 /* Written by R.J.C. Kissel 3/78. */ 1 4 /* Modified 09/28/78 by C. D. Tavares */ 1 5 1 6 dcl 1 resource_descriptions based (resource_desc_ptr) aligned, 1 7 2 version_no fixed bin, /* caller must set this to resource_desc_version_1 */ 1 8 2 n_items fixed bin, /* Number of resources described by this structure. */ 1 9 2 item (Resource_count refer (resource_descriptions.n_items)) aligned, 1 10 3 type char (32), /* e.g., "tape_drive" */ 1 11 3 name char (32), /* e.g., "tapa_03" */ 1 12 3 uid bit (36), /* The resource unique id. */ 1 13 3 potential_attributes bit (72), /* resource's permissible attributes */ 1 14 3 attributes (2) bit (72), /* RCP attribute description (output) */ 1 15 3 desired_attributes (4) bit (72), /* desired attributes (input) */ 1 16 3 potential_aim_range (2) bit (72), /* Lowest and highest possible AIM bounds for resource */ 1 17 3 aim_range (2) bit (72), /* Current AIM range */ 1 18 3 owner char (32), /* e.g., "Smith.Project" */ 1 19 3 acs_path char (168), /* Access control segment pathname. */ 1 20 3 location char (168), /* String describing location in unusual cases */ 1 21 3 comment char (168), /* User-settable comment string */ 1 22 3 charge_type char (32), /* accounting identifier for this resource */ 1 23 3 rew bit (3) unaligned, /* user's effective access to resource */ 1 24 3 (usage_lock, /* This resource may not be acquired or used. */ 1 25 release_lock, /* The owner is not allowed to release the resource. */ 1 26 awaiting_clear, /* Resource awaiting manual clear */ 1 27 user_alloc) bit (1) unaligned, /* User claims volume contains useful data */ 1 28 3 pad2 bit (29) unaligned, /* Ignored field. */ 1 29 3 given aligned, /* each of these bits says the corresponding */ 1 30 /* item is significant on input */ 1 31 (4 (name, 1 32 uid, 1 33 potential_attributes, 1 34 desired_attributes, 1 35 potential_aim_range, 1 36 aim_range, 1 37 owner, 1 38 acs_path, 1 39 location, 1 40 comment, 1 41 charge_type, 1 42 usage_lock, 1 43 release_lock, 1 44 user_alloc) bit (1), 1 45 4 pad1 bit (22)) unaligned, 1 46 3 state bit (36) aligned, /* For use of resource_control_ only */ 1 47 3 status_code fixed bin (35); /* Standard system status code for this resource. */ 1 48 1 49 1 50 /* Note that the reservation description must always be used with a resource 1 51* description structure. When they are used together the two structures must 1 52* have the same number of entries, i.e. Resource_count is the same for both. */ 1 53 1 54 1 55 dcl 1 reservation_description based (resource_res_ptr) aligned, 1 56 2 version_no fixed bin, /* The version number for this structure. */ 1 57 2 reserved_for char (32), /* Group id of reserved for process. */ 1 58 2 reserved_by char (32), /* Group id of reserved by process. */ 1 59 2 reservation_id fixed bin (71), /* Reservation id of this reservation group. */ 1 60 2 group_starting_time fixed bin (71), /* Starting time for this reservation group. */ 1 61 2 asap_duration fixed bin (71), /* Duration after which as soon as possible is no longer good. */ 1 62 2 flags aligned, 1 63 (3 auto_expire bit (1), /* Should reservation expire when this process terminates. */ 1 64 3 asap bit (1), /* Make this reservation group as soon as possible. */ 1 65 3 rel bit (1), /* Times are relative/absolute. */ 1 66 3 sec bit (1)) unaligned, /* Times are in sec/microsec. */ 1 67 2 n_items fixed bin, /* Number of resources reserved in this group. */ 1 68 2 reservation_group (Resource_count refer (reservation_description.n_items)), 1 69 3 starting_time fixed bin (71), /* When this resource res. starts in the group. */ 1 70 3 duration fixed bin (71); /* Duration of this resource res. in the group. */ 1 71 1 72 dcl (resource_desc_ptr, 1 73 resource_res_ptr) pointer; 1 74 1 75 dcl (resource_desc_version_1 initial (1), 1 76 resource_res_version_1 initial (1)) internal static options (constant); 1 77 1 78 dcl Resource_count fixed bin; /* The number of resources described in the structures. */ 1 79 1 80 /* ---------------- END include file resource_control_desc.incl.pl1 ---------------- */ 54 55 56 /* External Entries */ 57 58 dcl rcp_sys_$reserve entry (ptr, ptr, bit (72) aligned, fixed bin (35)); 59 dcl rcp_$reserve entry (ptr, ptr, fixed bin (35)); 60 dcl rcp_sys_$cancel_id_string 61 entry (char (*), char (*), fixed bin (35)); 62 dcl rcp_$cancel_id_string 63 entry (char (*), fixed bin (35)); 64 65 /* External Constants */ 66 67 dcl error_table_$mdc_no_access 68 fixed bin (35) external; 69 70 /* Builtin Functions and Conditions */ 71 72 dcl (linkage_error) condition; 73 74 if system 75 then do; /* Check access to rcp_sys_ gate. */ 76 on linkage_error 77 goto BAD_ACCESS; 78 call rcp_sys_$reserve (resource_desc_ptr, resource_res_ptr, authorization, code); 79 revert linkage_error; 80 end; 81 82 else call rcp_$reserve (resource_desc_ptr, resource_res_ptr, code); 83 84 return; 85 86 cancel_id_string: 87 entry (P_res_id, P_grp_id, system, code); 88 89 dcl P_res_id char (*) parameter; 90 dcl P_grp_id char (*) parameter; 91 92 if system 93 then do; 94 on linkage_error 95 goto BAD_ACCESS; 96 call rcp_sys_$cancel_id_string (P_res_id, P_grp_id, code); 97 revert linkage_error; 98 end; 99 100 else call rcp_$cancel_id_string (P_res_id, code); 101 102 return; 103 104 BAD_ACCESS: 105 code = error_table_$mdc_no_access; 106 return; 107 108 end resource_control_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/04/82 1618.9 resource_control_.pl1 >dumps>old>recomp>resource_control_.pl1 54 1 02/13/79 1715.0 resource_control_desc.incl.pl1 >ldd>include>resource_control_desc.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. P_grp_id parameter char unaligned dcl 90 set ref 86 96* P_res_id parameter char unaligned dcl 89 set ref 86 96* 100* authorization parameter bit(72) dcl 42 set ref 27 78* code parameter fixed bin(35,0) dcl 44 set ref 27 78* 82* 86 96* 100* 104* error_table_$mdc_no_access 000020 external static fixed bin(35,0) dcl 67 ref 104 linkage_error 000100 stack reference condition dcl 72 ref 76 79 94 97 rcp_$cancel_id_string 000016 constant entry external dcl 62 ref 100 rcp_$reserve 000012 constant entry external dcl 59 ref 82 rcp_sys_$cancel_id_string 000014 constant entry external dcl 60 ref 96 rcp_sys_$reserve 000010 constant entry external dcl 58 ref 78 resource_desc_ptr parameter pointer dcl 1-72 set ref 27 78* 82* resource_res_ptr parameter pointer dcl 1-72 set ref 27 78* 82* system parameter bit(1) dcl 43 ref 27 74 86 92 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Resource_count automatic fixed bin(17,0) dcl 1-78 reservation_description based structure level 1 dcl 1-55 resource_desc_version_1 internal static fixed bin(17,0) initial dcl 1-75 resource_descriptions based structure level 1 dcl 1-6 resource_res_version_1 internal static fixed bin(17,0) initial dcl 1-75 NAMES DECLARED BY EXPLICIT CONTEXT. BAD_ACCESS 000237 constant label dcl 104 ref 76 94 cancel_id_string 000123 constant entry external dcl 86 reserve 000025 constant entry external dcl 27 resource_control_ 000012 constant entry external dcl 11 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 360 402 243 370 Length 602 243 22 163 115 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME resource_control_ 100 external procedure is an external procedure. on unit on line 76 64 on unit on unit on line 94 64 on unit THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return tra_ext enable ext_entry ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. rcp_$cancel_id_string rcp_$reserve rcp_sys_$cancel_id_string rcp_sys_$reserve THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$mdc_no_access LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000011 25 000017 27 000020 74 000037 76 000042 78 000061 79 000077 80 000100 82 000101 84 000115 86 000116 92 000150 94 000153 96 000172 97 000215 98 000216 100 000217 102 000236 104 000237 106 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