COMPILATION LISTING OF SEGMENT rcp_assign_device_ 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 0953.9 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 14 rcp_assign_device_: 15 procedure (arg_device_type, arg_device_info_ptr, arg_event_id, arg_comment, arg_rcp_id, arg_ecode); 16 17 /* This program implements the rcp_$assign_device entry point. 18* * Created on 11/20/74 by Bill Silver. 19* * 20* * This program is called to assign one device class resource. We will allocate one 21* * RCS entry of this assignment request. We will fill in this entry with all 22* * of the data needed to make this assignment. If there are no errors we will call 23* * rcp_control_ 24* * to perform the actual device assignment. The results of this call will not 25* * be tested until a call is made to rcp_$check_assign. 26**/ 27 /* Modified 841005 to interface to rcp_control_ instead of 28* * rcp_initializer...M.M.Pozzo 29* * Modified 850131 as part of the B2 effort...M. M. Pozzo 30* * Modified 850304 to copy device_info correctly...Chris Jones 31**/ 32 33 /* ARGUMENT DATA */ 34 35 dcl arg_device_type char (*); /* (I) Type of device being assigned. */ 36 dcl arg_comment char (*); /* (I) Caller's comment. */ 37 dcl arg_device_info_ptr ptr; /* (I) Pointer to device info structure. */ 38 dcl arg_ecode fixed bin (35); /* (O) error_table_ code. */ 39 dcl arg_event_id fixed bin (71); /* (I) Caller's event channel ID. */ 40 dcl arg_rcp_id bit (36) aligned; /* (O) ID for this assignment request. */ 41 42 43 /* AUTOMATIC DATA */ 44 45 46 dcl device_info_buffer (RCP_MAX_DEVICE_INFO_SIZE) bit (36) aligned; 47 dcl device_offset bit (18) aligned init ("0"b); 48 /* Offset to device entry passed to rcp_control_. */ 49 dcl process_id bit (36) aligned init ("0"b); 50 /* Process id of process making the request */ 51 dcl rcp_id bit (36) aligned; /* ID that identifies RCS entry. */ 52 dcl rcse_off bit (18); /* Offset to RCS entry. */ 53 dcl volume_offset bit (18) aligned init ("0"b); 54 /* Offset to volume entry passed to rcp_control_. */ 55 56 dcl device_name char (32) init (""); /* Device name */ 57 dcl device_type char (32); /* Device type name. */ 58 dcl operation bit (36) aligned; /* Type of operation being requested by RCP */ 59 60 dcl prev_level fixed bin; /* Caller's validation level. */ 61 dcl ecode fixed bin (35); /* error_table_ code. */ 62 dcl error_count fixed bin (17) init (0); /* Input to rcp_control_ for attachment errors */ 63 dcl 1 rcse_buffer like rcse aligned; /* Template RCSE. */ 64 65 /* EXTERNAL ENTRIES CALLED */ 66 67 dcl cleanup condition; /* Used to set up cleanup handler. */ 68 69 dcl (addr, rel) builtin; 70 71 dcl error_table_$resource_assigned 72 fixed bin (35) external; 73 74 dcl access_operations_$rcp_assign_write 75 bit (36) ext static; 76 77 dcl cu_$level_get entry (fixed bin); 78 dcl cu_$level_set entry (fixed bin); 79 dcl get_ring_ entry returns (fixed bin); 80 dcl rcp_control_ entry (bit (36) aligned, bit (18) aligned, bit (18) aligned, char (*), fixed bin (17), 81 bit (36) aligned, fixed bin (35)); 82 dcl rcp_device_info_$copy entry (char (*), ptr, ptr, fixed bin (35)); 83 dcl rcp_device_info_$get entry (char (*), ptr, ptr, fixed bin, fixed bin (35)); 84 dcl rcp_find_$device entry (char (*) aligned, bit (18)); 85 dcl rcp_rcse_$get entry (ptr, fixed bin (35)); 86 87 call cu_$level_get (prev_level); /* Save caller's validation level. */ 88 on cleanup 89 begin; /* If trouble cleanup. */ 90 call cu_$level_set (prev_level); 91 end; 92 call cu_$level_set (get_ring_ ()); /* Set validation level to RCP level. */ 93 94 rcse_off, /* No RCS entry or rcp_id yet. */ 95 rcp_id = "0"b; 96 device_type = arg_device_type; /* Get type of device being assigned. */ 97 device_info_ptr = arg_device_info_ptr; /* copy the caller's device_info structure */ 98 call rcp_device_info_$copy (device_type, device_info_ptr, addr (device_info_buffer), ecode); 99 if ecode ^= 0 then 100 goto RETURN; 101 device_info_ptr = addr (device_info_buffer); 102 103 rcse_ptr = addr (rcse_buffer); /* Use template RCSE. */ 104 105 call rcp_device_info_$get (device_type, device_info_ptr, rcse_ptr, prev_level, ecode); 106 if ecode ^= 0 then 107 goto RETURN; 108 109 /* Fill in the rest of the RCSE. */ 110 rcse.kind = 2; /* This is an assignment RCSE. */ 111 rcse.disposition = "1"b; /* Explicit assignment => retain. */ 112 rcse.event_id = arg_event_id; /* Save argument data. */ 113 rcse.caller_comment = arg_comment; 114 115 if rcse.flags.device /* Are we assigning a specific device? */ 116 then do; /* Yes, see if already assigned to this process. */ 117 call rcp_find_$device (rcse.device_name, rcse_off); 118 if rcse_off ^= "0"b /* Is it already assigned? */ 119 then do; /* Yes. */ 120 ecode = error_table_$resource_assigned; 121 goto RETURN; 122 end; 123 end; 124 125 call rcp_rcse_$get (rcse_ptr, ecode); /* Now get a real assignment RCSE. */ 126 if ecode ^= 0 then 127 goto RETURN; 128 rcse_off = rel (rcse_ptr); /* Save offset of RCSE. */ 129 rcp_id = rcse.rcp_id; /* Get real RCP ID. */ 130 131 /* Now call rcp_control_ to assign a device. */ 132 operation = access_operations_$rcp_assign_write; 133 volume_offset = "0"b; 134 device_offset = rcse_off; 135 device_name = rcse.device_name; 136 call rcp_control_ (operation, volume_offset, device_offset, device_name, error_count, process_id, ecode); 137 138 RETURN: 139 arg_rcp_id = rcp_id; /* Set return arguments. */ 140 arg_ecode = ecode; 141 call cu_$level_set (prev_level); /* Reset validation level to caller level. */ 142 1 1 /* Begin include file ... rcp_com_seg.incl.pl1 1 2* * 1 3* * Created on 11/20/74 by Bill Silver. 1 4* * Modified on 09/19/77 by R.J.C. Kissel to add label authentication bits. 1 5* * Modified on 12/09/78 by Michael R. Jordan to add removable media bit and label_type. 1 6* * Modified 1/79 by R.J.C. Kissel to add disk label authentication bits. 1 7* * Modified 2/79 by Michael R. Jordan to add volume_density. 1 8* * Modified 11/84 by Paul Farley to add fips flag. 1 9* * Modified 1/3/85 by Fawcett to allow room for mca device type 1 10* * Modified 02/85 by Paul Farley to add no_protect and opr_int_available flags. 1 11* * This include file defines the Resource Control Package communication segment. 1 12* * This segment is used to communicate requests between the various internal 1 13* * parts of RCP. 1 14**/ 1 15 1 16 /****^ HISTORY COMMENTS: 1 17* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 1 18* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 1 19* Support MCA and FIPS. 1 20* END HISTORY COMMENTS */ 1 21 1 22 dcl lock_info_ptr ptr; /* Pointer to lock info structure. */ 1 23 dcl rcs_ptr ptr; /* Pointer to base of RCS. */ 1 24 dcl rcse_ptr ptr; /* Pointer to an RCS entry. */ 1 25 1 26 dcl 1 based_rcp_id based aligned, /* Overlay of an rcp_id. */ 1 27 (2 id_count fixed bin (17), /* Unique count index. */ 1 28 2 rcse_off bit (18)) unaligned; /* Offset of rcp_com_seg entry. */ 1 29 1 30 dcl 1 rcs based (rcs_ptr) aligned, /* Begin at word zero of rcp_com_seg. */ 1 31 2 lock_info like lock_info, /* Data used to lock this segment. */ 1 32 2 ws_maxs (8) fixed bin (19), /* Max IOI workspace size in words. */ 1 33 2 ws_pmaxs (8) fixed bin (19), /* Max IOI workspace size for priv attachments. */ 1 34 2 to_maxs (8) fixed bin (71), /* Max IOI time-out intervals in microseconds. */ 1 35 2 sys_directory char (32), /* Directory used to define a system process. */ 1 36 2 sys_acs char (32), /* Entry name used to define a system process. */ 1 37 2 acs_directory char (32), /* Directory containing device ACSs. */ 1 38 2 id_count fixed bin (35), /* Counter used to form rcp_id. */ 1 39 2 max_entries fixed bin, /* Maximum number of entries allowed. */ 1 40 2 num_entries fixed bin, /* Total number of entries. */ 1 41 2 first_free_off bit (18), /* Offset of first free entry. */ 1 42 2 entry (0 refer (rcs.num_entries)) /* Array of request entries. */ 1 43 like rcse, /* See structure below. */ 1 44 2 end bit (36); /* End of rcp_com_seg. */ 1 45 1 46 dcl 1 lock_info based (lock_info_ptr) aligned, /* Used to meter locking. */ 1 47 2 lock bit (36), /* The lock itself. */ 1 48 2 num_locks fixed bin (35), /* Number of times locked. */ 1 49 2 num_lock_waits fixed bin (35), /* Number of lock waits. */ 1 50 2 time_of_lock fixed bin (71), /* Time of last lock. */ 1 51 2 tot_lock_time fixed bin (71), /* Total time locked. */ 1 52 2 tot_wait_time fixed bin (71), /* Total time waiting for lock. */ 1 53 2 starting_time fixed bin (71); /* Time metering started. */ 1 54 1 55 dcl 1 rcse based (rcse_ptr) aligned, /* Up to state must = rcpd.device. */ 1 56 2 device_name char (8), /* Name of device associated with this entry. */ 1 57 2 volume_name char (32), /* Volume name. Blank => no volume. */ 1 58 2 dtypex fixed bin, /* Device type index. */ 1 59 2 model fixed bin, /* Device model number. */ 1 60 2 num_qualifiers fixed bin, /* Number of device qualifiers. */ 1 61 2 qualifiers (4) fixed bin (35), /* Device qualifiers. */ 1 62 2 state_time fixed bin (71), /* Time device put into current state. */ 1 63 2 state fixed bin, /* 0 - free 1 - assigning 2 - assigned */ 1 64 /* 3 - attaching 4 - attached 5 - completed. */ 1 65 1 66 /* * * * * ** Following fields are unique to RCS entry. */ 1 67 2 kind fixed bin, /* 1 => attach, 2 => assign */ 1 68 2 free_off bit (18), /* Offset of next free entry. 0 => not free. */ 1 69 2 user_off bit (18), /* Offset of next entry in user list. */ 1 70 2 device_off bit (18), /* Offset of device entry in RCPD. */ 1 71 2 volume_off bit (18), /* Offset of volume entry in RCPD. */ 1 72 2 rcse_off bit (18), /* Offset of associated RCS entry. */ 1 73 2 caller_level fixed bin, /* Caller's validation level. */ 1 74 2 disposition bit (1), /* ON => retain, OFF => unassign. */ 1 75 2 flags, /* Special info flags. */ 1 76 (3 device bit (1), /* ON => assigning a specific device. */ 1 77 3 priv bit (1), /* ON => attached with IOI privilege. */ 1 78 3 system bit (1), /* ON => assigned to a system process. */ 1 79 3 t_and_d bit (1), /* ON => T&D attachment. */ 1 80 3 volume bit (1), /* ON => volume associated with this device. */ 1 81 3 writing bit (1), /* ON => writing on volume. */ 1 82 3 have_auth bit (1), /* ON => tape volume authenticated. */ 1 83 3 need_auth bit (1), /* ON => tape volume needs authentication. */ 1 84 3 auth_set bit (1), /* ON => "have_auth" has been set. */ 1 85 3 preload_allowed bit (1), /* ON => preloading of volumes is allowed. */ 1 86 3 preloaded bit (1), /* ON => volume may be loaded on device. */ 1 87 3 not_removable_media bit (1), /* ON => cannot remove volume from device. */ 1 88 3 disk_ss_pack bit (1), /* ON => disk is a storage system volume. */ 1 89 3 disk_copy_of_ss_pack bit (1), /* ON => disk is a copy of a storage system volume. */ 1 90 3 disk_io_pack bit (1), /* ON => disk has label but is not storage system. */ 1 91 3 disk_unregistered bit (1), /* ON => disk is unregistered storage system volume. */ 1 92 3 disk_unreadable bit (1), /* ON => io error reading disk label. */ 1 93 3 must_auto_register bit (1), /* ON => unregistered volume requested */ 1 94 3 fips bit (1), /* ON => FIPS device. */ 1 95 3 no_protect bit (1), /* ON => device has no protect sw. */ 1 96 3 opr_int_available bit (1), /* ON => device connected to MPC with OI button. */ 1 97 3 unused bit (6), 1 98 3 volume_density_index fixed bin (3) unsigned, /* Density of volume */ 1 99 3 label_type fixed bin (6) unsigned)unaligned, /* Type of label read by RCP. */ 1 100 2 rcp_id bit (36), /* ID of this entry. */ 1 101 2 event_id fixed bin (71), /* Caller's event channel ID. */ 1 102 2 process_id bit (36), /* ID of calling process. */ 1 103 2 group_id char (32), /* Group ID of calling process. */ 1 104 2 ecode fixed bin (35), /* Assignment error code. */ 1 105 2 version_num fixed bin, /* Device info version number. */ 1 106 2 workspace_max fixed bin (19), /* Max size of IOI workspace buffer. */ 1 107 2 timeout_max fixed bin (71), /* Max IOI time-out interval. */ 1 108 2 ioi_index fixed bin, /* IOI device index. */ 1 109 2 workspace_ptr ptr, /* Pointer to IOI workspace buffer. */ 1 110 2 caller_comment char (64); /* Caller's comment. */ 1 111 1 112 /* End of include file ... rcp_com_seg.incl.pl1 */ 143 144 2 1 /* START OF: rcp_device_info_structs.incl.pl1 * * * * * * * * * * * * * * * * */ 2 2 2 3 /****^ HISTORY COMMENTS: 2 4* 1) change(85-09-09,Fawcett), approve(85-09-09,MCR6979), 2 5* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 2 6* Support of MCA. 2 7* END HISTORY COMMENTS */ 2 8 2 9 /* Written 03/04/85 by Chris Jones. */ 2 10 2 11 /* This include file obsoletes the following include files: rcp_device_info, rcp_disk_info, 2 12* rcp_printer_info, and rcp_tape_info. */ 2 13 /* Modified May 1985 by Rich Fawcett to add the 8th device MCA */ 2 14 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 15 2 16 dcl device_info_ptr ptr; 2 17 2 18 dcl 1 device_info aligned based (device_info_ptr), 2 19 2 common like device_info_common, 2 20 2 qualifiers (4) fixed bin (35); /* per device type info */ 2 21 2 22 dcl 1 device_info_common aligned based, 2 23 2 version_num fixed bin, /* Version number of this structure. */ 2 24 2 usage_time fixed bin, /* Number of minutes device will/may be used. */ 2 25 2 wait_time fixed bin, /* Number of minutes user will/must wait. */ 2 26 2 system_flag bit (1), /* ON => user wants to be a system process. */ 2 27 2 device_name char (8), /* Device name. */ 2 28 2 model fixed bin; /* Device model number. */ 2 29 2 30 dcl 1 tape_info based (device_info_ptr) aligned, 2 31 2 common like device_info_common, 2 32 2 tracks fixed bin, /* 7 or 9 track */ 2 33 2 density bit (36), /* density capabilities: 200, 556, 800, 1600, 6250 */ 2 34 2 speed bit (36), /* speed: 75, 125, 200 */ 2 35 2 pad bit (36), 2 36 2 volume_name char (32), /* Tape reel name. */ 2 37 2 write_flag bit (1), /* ON => writing on tape reel. */ 2 38 2 position_index fixed bin (35), /* Counter used to determine tape reel position. */ 2 39 /* Limit of version 2 structure, info below returned if version 3 or greater */ 2 40 2 volume_type fixed bin, /* Use rcp_volume_formats.incl.pl1 for decodes */ 2 41 2 volume_density fixed bin, /* 1 - 5 = 200, 556, 800, 1600, or 6250 BPI */ 2 42 2 opr_auth bit (1); /* "1"b => Operator Authentication was required */ 2 43 2 44 dcl tape_info_version_2 fixed bin internal static options (constant) init (2); 2 45 dcl tape_info_version_3 fixed bin internal static options (constant) init (3); 2 46 2 47 dcl 1 disk_info based (device_info_ptr) aligned, 2 48 2 common like device_info_common, 2 49 2 volume_name char (32), /* disk volume name */ 2 50 2 write_flag bit (1); /* on => write_allowed */ 2 51 2 52 dcl 1 printer_info based (device_info_ptr) aligned, 2 53 2 common like device_info_common, 2 54 2 print_train fixed bin, /* print train type */ 2 55 2 line_length fixed bin; /* line length (-1 => not specified */ 2 56 2 57 dcl device_info_size (8) fixed bin static options (constant) init 2 58 (24, 16, 7, 9, 7, 7, 7, 7); 2 59 2 60 dcl RCP_MAX_DEVICE_INFO_SIZE 2 61 fixed bin static options (constant) init (24); 2 62 2 63 /* END OF: rcp_device_info_structs.incl.pl1 * * * * * * * * * * * * * * * * */ 145 146 147 end rcp_assign_device_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0805.9 rcp_assign_device_.pl1 >spec>install>1111>rcp_assign_device_.pl1 143 1 03/27/86 1120.0 rcp_com_seg.incl.pl1 >ldd>include>rcp_com_seg.incl.pl1 145 2 03/27/86 1120.0 rcp_device_info_structs.incl.pl1 >ldd>include>rcp_device_info_structs.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. RCP_MAX_DEVICE_INFO_SIZE constant fixed bin(17,0) initial dcl 2-60 ref 46 access_operations_$rcp_assign_write 000012 external static bit(36) packed unaligned dcl 74 ref 132 addr builtin function dcl 69 ref 98 98 101 103 arg_comment parameter char packed unaligned dcl 36 ref 14 113 arg_device_info_ptr parameter pointer dcl 37 ref 14 97 arg_device_type parameter char packed unaligned dcl 35 ref 14 96 arg_ecode parameter fixed bin(35,0) dcl 38 set ref 14 140* arg_event_id parameter fixed bin(71,0) dcl 39 ref 14 112 arg_rcp_id parameter bit(36) dcl 40 set ref 14 138* caller_comment 64 based char(64) level 2 dcl 1-55 set ref 113* cleanup 000236 stack reference condition dcl 67 ref 88 cu_$level_get 000014 constant entry external dcl 77 ref 87 cu_$level_set 000016 constant entry external dcl 78 ref 90 92 141 device 35 based bit(1) level 3 packed packed unaligned dcl 1-55 ref 115 device_info_buffer 000100 automatic bit(36) array dcl 46 set ref 98 98 101 device_info_common based structure level 1 dcl 2-22 device_info_ptr 000246 automatic pointer dcl 2-16 set ref 97* 98* 101* 105* device_name 000105 automatic char(32) initial packed unaligned dcl 56 in procedure "rcp_assign_device_" set ref 56* 135* 136* device_name based char(8) level 2 in structure "rcse" dcl 1-55 in procedure "rcp_assign_device_" set ref 117* 135 device_offset 000100 automatic bit(18) initial dcl 47 set ref 47* 134* 136* device_type 000115 automatic char(32) packed unaligned dcl 57 set ref 96* 98* 105* disposition 34 based bit(1) level 2 dcl 1-55 set ref 111* ecode 000127 automatic fixed bin(35,0) dcl 61 set ref 98* 99 105* 106 120* 125* 126 136* 140 error_count 000130 automatic fixed bin(17,0) initial dcl 62 set ref 62* 136* error_table_$resource_assigned 000010 external static fixed bin(35,0) dcl 71 ref 120 event_id 40 based fixed bin(71,0) level 2 dcl 1-55 set ref 112* flags 35 based structure level 2 dcl 1-55 get_ring_ 000020 constant entry external dcl 79 ref 92 92 kind 25 based fixed bin(17,0) level 2 dcl 1-55 set ref 110* lock_info based structure level 1 dcl 1-46 operation 000125 automatic bit(36) dcl 58 set ref 132* 136* prev_level 000126 automatic fixed bin(17,0) dcl 60 set ref 87* 90* 105* 141* process_id 000101 automatic bit(36) initial dcl 49 set ref 49* 136* rcp_control_ 000022 constant entry external dcl 80 ref 136 rcp_device_info_$copy 000024 constant entry external dcl 82 ref 98 rcp_device_info_$get 000026 constant entry external dcl 83 ref 105 rcp_find_$device 000030 constant entry external dcl 84 ref 117 rcp_id 36 based bit(36) level 2 in structure "rcse" dcl 1-55 in procedure "rcp_assign_device_" ref 129 rcp_id 000102 automatic bit(36) dcl 51 in procedure "rcp_assign_device_" set ref 94* 129* 138 rcp_rcse_$get 000032 constant entry external dcl 85 ref 125 rcse based structure level 1 dcl 1-55 rcse_buffer 000132 automatic structure level 1 dcl 63 set ref 103 rcse_off 000103 automatic bit(18) packed unaligned dcl 52 set ref 94* 117* 118 128* 134 rcse_ptr 000244 automatic pointer dcl 1-24 set ref 103* 105* 110 111 112 113 115 117 125* 128 129 135 rel builtin function dcl 69 ref 128 volume_offset 000104 automatic bit(18) initial dcl 53 set ref 53* 133* 136* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. based_rcp_id based structure level 1 dcl 1-26 device_info based structure level 1 dcl 2-18 device_info_size internal static fixed bin(17,0) initial array dcl 2-57 disk_info based structure level 1 dcl 2-47 lock_info_ptr automatic pointer dcl 1-22 printer_info based structure level 1 dcl 2-52 rcs based structure level 1 dcl 1-30 rcs_ptr automatic pointer dcl 1-23 tape_info based structure level 1 dcl 2-30 tape_info_version_2 internal static fixed bin(17,0) initial dcl 2-44 tape_info_version_3 internal static fixed bin(17,0) initial dcl 2-45 NAMES DECLARED BY EXPLICIT CONTEXT. RETURN 000362 constant label dcl 138 ref 99 106 121 126 rcp_assign_device_ 000022 constant entry external dcl 14 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 552 606 377 562 Length 1032 377 34 207 153 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rcp_assign_device_ 252 external procedure is an external procedure. on unit on line 88 68 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rcp_assign_device_ 000100 device_info_buffer rcp_assign_device_ 000100 device_offset rcp_assign_device_ 000101 process_id rcp_assign_device_ 000102 rcp_id rcp_assign_device_ 000103 rcse_off rcp_assign_device_ 000104 volume_offset rcp_assign_device_ 000105 device_name rcp_assign_device_ 000115 device_type rcp_assign_device_ 000125 operation rcp_assign_device_ 000126 prev_level rcp_assign_device_ 000127 ecode rcp_assign_device_ 000130 error_count rcp_assign_device_ 000132 rcse_buffer rcp_assign_device_ 000244 rcse_ptr rcp_assign_device_ 000246 device_info_ptr rcp_assign_device_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac alloc_auto_adj enable_op ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$level_get cu_$level_set get_ring_ rcp_control_ rcp_device_info_$copy rcp_device_info_$get rcp_find_$device rcp_rcse_$get THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. access_operations_$rcp_assign_write error_table_$resource_assigned LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000014 46 000042 47 000046 49 000047 53 000050 56 000051 62 000054 87 000055 88 000063 90 000077 91 000106 92 000107 94 000125 96 000127 97 000135 98 000140 99 000166 101 000170 103 000172 105 000174 106 000224 110 000226 111 000231 112 000233 113 000236 115 000243 117 000246 118 000263 120 000266 121 000271 125 000272 126 000303 128 000305 129 000307 132 000312 133 000315 134 000316 135 000321 136 000324 138 000362 140 000365 141 000367 147 000376 ----------------------------------------------------------- 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