COMPILATION LISTING OF SEGMENT imft_default_rqt_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/14/88 1214.4 mst Fri Options: optimize map 1 /* format: style4,delnl,insnl,^ifthendo */ 2 imft_default_rqt_: 3 procedure returns (character (*)); 4 5 /* This function returns the name of the default IMFT request type. It does this by 6* listing the names on imft_1.ms and looking for one of the form "To__1.ms". 7* If it can't find any such, it returns the last name it found that wasn't "imft"; if 8* the only name on the queue is imft_1.ms, then it returns "imft". It also returns "imft" 9* if it can't find the names for some reason. 10* 11* Someday IMFT will use the "default_generic_queue" field of the queue_group_table entry, 12* and this kludge can go away. 13**/ 14 15 /* Written March 1983 by Robert Coren */ 16 17 dcl code fixed bin (35); 18 dcl best_bet char (32); 19 dcl entry_name char (32); 20 dcl i fixed bin; 21 22 dcl imft_data_$queue_dirname external static char (168); 23 24 dcl hcs_$status_ entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)); 25 26 dcl (before, reverse, rtrim, substr) builtin; 27 28 29 dcl 1 auto_status aligned like status_branch; 30 31 dcl auto_area area (1024); 32 33 34 status_ptr = addr (auto_status); 35 status_area_ptr = addr (auto_area); 36 37 call hcs_$status_ (imft_data_$queue_dirname, rtrim (FT_GENERIC_TYPE) || "_1.ms", 1, status_ptr, status_area_ptr, 38 code); 39 if code ^= 0 /* punt */ 40 then return (FT_GENERIC_TYPE); 41 42 best_bet = FT_GENERIC_TYPE; /* in case we can't find anything better */ 43 44 do i = 1 to status_branch.nnames; 45 entry_name = status_entry_names (i); 46 if substr (reverse (rtrim (entry_name)), 1, 5) = reverse ("_1.ms") 47 then do; /* ignore names that aren't even proper queue names */ 48 49 entry_name = before (entry_name, "_1.ms"); 50 if substr (entry_name, 1, 3) = "To_" /* this is a reasonable one */ 51 then return (entry_name); 52 53 else if entry_name ^= FT_GENERIC_TYPE 54 then best_bet = entry_name; 55 end; 56 end; 57 58 /* if we fell through, we didn't find the ideal name, so let's use the best we found */ 59 60 return (best_bet); 61 1 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 1 2 1 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 1 4 1 5 /* This include file contains branch and link structures returned by 1 6* hcs_$status_ and hcs_$status_long. */ 1 7 1 8 dcl 1 status_branch aligned based (status_ptr), 1 9 2 short aligned, 1 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 1 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 1 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 1 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 1 14 3 dtu bit (36) unaligned, /* date/time last used */ 1 15 3 mode bit (5) unaligned, /* caller's effective access */ 1 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 1 17 3 pad1 bit (8) unaligned, 1 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 1 19 1 20 /* Limit of information returned by hcs_$status_ */ 1 21 1 22 2 long aligned, 1 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 1 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 1 25 3 lvid bit (36) unaligned, /* logical volume ID */ 1 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 1 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 1 28 3 pad2 bit (8) unaligned, 1 29 3 copy_switch bit (1) unaligned, /* copy switch */ 1 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 1 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 1 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 1 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 1 34 3 pad3 bit (5) unaligned, 1 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 1 36 3 uid bit (36) unaligned; /* unique ID */ 1 37 1 38 dcl 1 status_link aligned based (status_ptr), 1 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 1 40 2 nnames fixed bin (16) unaligned unsigned, 1 41 2 names_relp bit (18) unaligned, 1 42 2 dtem bit (36) unaligned, 1 43 2 dtd bit (36) unaligned, 1 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 1 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 1 46 1 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 1 48 based (pointer (status_area_ptr, status_branch.names_relp)), 1 49 /* array of names returned */ 1 50 status_pathname character (status_link.pathname_length) aligned 1 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 1 52 /* link target path */ 1 53 status_area_ptr pointer, 1 54 status_ptr pointer; 1 55 1 56 dcl (Link initial (0), 1 57 Segment initial (1), 1 58 Directory initial (2)) fixed bin internal static options (constant); 1 59 /* values for type fields declared above */ 1 60 1 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 62 63 2 1 /* BEGIN INCLUDE FILE ... _imft_ft_request.incl.pl1 */ 2 2 2 3 /* Created: April 1982 by G. Palter */ 2 4 /* Modified: March 1983 by Robert Coren, for requests for remote transfer */ 2 5 2 6 2 7 /****^ HISTORY COMMENTS: 2 8* 1) change(88-06-22,Beattie), approve(88-08-01,MCR7948), 2 9* audit(88-10-14,Farley), install(88-10-14,MR12.2-1165): 2 10* Add flags to support extend, update and delete operations. 2 11* END HISTORY COMMENTS */ 2 12 2 13 2 14 /* IMFT file transfer request definition */ 2 15 2 16 dcl 1 ft_request aligned based (ft_request_ptr), 2 17 2 header like queue_msg_hdr, 2 18 2 request, /* see _imft_ft_commands.incl.pl1 */ 2 19 3 version character (8), 2 20 3 foreign_user character (32) unaligned, /* Person.Project at other Multics for reload access check */ 2 21 3 foreign_dirname character (168) unaligned, /* where to put the branch on the other system */ 2 22 3 foreign_ename character (32) unaligned, /* ... */ 2 23 3 flags, 2 24 4 foreign_user_given bit (1) unaligned, /* ON => forreign_user different from local user */ 2 25 4 foreign_path_given bit (1) unaligned, /* ON => foreign pathname different from local */ 2 26 4 directory_creation_mode bit (2) unaligned, /* controls whether directories are replaced/merged */ 2 27 4 remote_transfer bit (1) unaligned, /* ON => request for transfer from foreign system */ 2 28 4 include_files bit (1) unaligned, /* ON => match files when interpreting starname */ 2 29 4 include_subtrees bit (1) unaligned, /* ON => match subtrees when interpreting starname */ 2 30 4 chase_control bit (2) unaligned, /* controls chasing of links when submitting remote request */ 2 31 4 delete bit (1) unaligned, /* delete source object after good transfer */ 2 32 4 extend bit (1) unaligned, /* place this data at end of current segment */ 2 33 4 update bit (1) unaligned, /* replace contents of current segment with this data */ 2 34 4 pad bit (24) unaligned; 2 35 2 36 dcl ft_request_ptr pointer; 2 37 2 38 dcl FT_REQUEST_VERSION_1 character (8) static options (constant) initial ("ftr_1.00"); 2 39 2 40 dcl FT_GENERIC_TYPE character (32) static options (constant) initial ("imft"); 2 41 dcl FT_MESSAGE_TYPE fixed binary static options (constant) initial (5); 2 42 2 43 dcl (REPLACE_DIRECTORIES initial ("10"b), /* replace entry on target if namedup and source is a dir */ 2 44 MERGE_DIRECTORIES initial ("11"b)) /* merge target and source dirs; replace if target not dir */ 2 45 bit (2) aligned static options (constant); 2 46 2 47 dcl (DEFAULT_CHASE initial ("00"b), /* chase non-starnames; don't chase starnames */ 2 48 NEVER_CHASE initial ("01"b), /* never chase any links */ 2 49 ALWAYS_CHASE initial ("10"b)) /* always chase links */ 2 50 bit (2) aligned static options (constant); 2 51 2 52 /* END INCLUDE FILE ... _imft_ft_request.incl.pl1 */ 64 65 3 1 /* BEGIN INCLUDE FILE ... queue_msg_hdr.incl.pl1 */ 3 2 3 3 /* This is the message header used for standard system queue messages, namely: 3 4* IO daemon requests, absentee requests, retrieval requests. 3 5**/ 3 6 3 7 /* Written by Jerry Whitmore, Spring 1978. 3 8* Modified by T. Casey, November 1978, to add values for state. 3 9* Modified by R. Kovalcik, June 1982, defer_until_process_terminataion 3 10**/ 3 11 3 12 dcl 1 queue_msg_hdr based aligned, /* standard header for all system queue messages */ 3 13 2 msg_time fixed bin (71), /* date and time of request */ 3 14 2 hdr_version fixed bin, /* version of this declaration */ 3 15 2 dirname char (168), /* directory name */ 3 16 2 ename char (32), /* entry name of file requested */ 3 17 2 message_type fixed bin, /* message format descriptor */ 3 18 /* 0 = absentee request */ 3 19 /* 1 = print request */ 3 20 /* 2 = punch request */ 3 21 /* 3 = tape request */ 3 22 /* 4 = retrieval request */ 3 23 2 bit_flags, 3 24 3 delete_sw bit (1) unal, /* delete file when done */ 3 25 3 notify bit (1) unal, /* user wants to be notified */ 3 26 3 defer_until_process_termination bit (1) unal, /* don't process request until process terminates */ 3 27 3 padding bit (33) unal, 3 28 2 state fixed bin, /* stage of processing after being queued: 3 29* 0 = initial unprocessed state, 1 = deferred, 3 30* 2 = in state transition, 3 = eligible, 4 = running, 3 31* 5 = bumped, 6 = deferred_until_process_termination */ 3 32 2 orig_queue fixed bin, /* queue the request was submitted to */ 3 33 2 std_length fixed bin, /* length of std msg for this type */ 3 34 2 dupt_lock bit (36) aligned, /* lock word for defer until process termination */ 3 35 2 hdr_pad (3) fixed bin; 3 36 3 37 dcl queue_msg_hdr_version_1 fixed bin int static options (constant) init (1); /* current version of the header */ 3 38 3 39 /* Values for queue_msg_hdr.state */ 3 40 3 41 dcl STATE_UNPROCESSED fixed bin int static options (constant) init (0); 3 42 dcl STATE_DEFERRED fixed bin int static options (constant) init (1); 3 43 dcl STATE_TRANSITION fixed bin int static options (constant) init (2); 3 44 dcl STATE_ELIGIBLE fixed bin int static options (constant) init (3); 3 45 dcl STATE_RUNNING fixed bin int static options (constant) init (4); 3 46 dcl STATE_BUMPED fixed bin int static options (constant) init (5); 3 47 dcl STATE_DUPT fixed bin int static options (constant) init (6); 3 48 3 49 /* END INCLUDE FILE ... queue_msg_hdr.incl.pl1 */ 66 67 68 end imft_default_rqt_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/14/88 1214.4 imft_default_rqt_.pl1 >special_ldd>install>MR12.2-1165>imft_default_rqt_.pl1 62 1 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.incl.pl1 64 2 10/14/88 1212.4 _imft_ft_request.incl.pl1 >special_ldd>install>MR12.2-1165>_imft_ft_request.incl.pl1 66 3 08/31/82 1636.3 queue_msg_hdr.incl.pl1 >ldd>include>queue_msg_hdr.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. FT_GENERIC_TYPE 000000 constant char(32) initial packed unaligned dcl 2-40 ref 37 39 42 53 auto_area 000134 automatic area(1024) dcl 31 set ref 31* 35 auto_status 000122 automatic structure level 1 dcl 29 set ref 34 before builtin function dcl 26 ref 49 best_bet 000101 automatic char(32) packed unaligned dcl 18 set ref 42* 53* 60 code 000100 automatic fixed bin(35,0) dcl 17 set ref 37* 39 entry_name 000111 automatic char(32) packed unaligned dcl 19 set ref 45* 46 49* 49 50 50 53 53 hcs_$status_ 000012 constant entry external dcl 24 ref 37 i 000121 automatic fixed bin(17,0) dcl 20 set ref 44* 45* imft_data_$queue_dirname 000010 external static char(168) packed unaligned dcl 22 set ref 37* names_relp 0(18) based bit(18) level 3 packed packed unaligned dcl 1-8 ref 45 nnames 0(02) based fixed bin(16,0) level 3 packed packed unsigned unaligned dcl 1-8 ref 44 queue_msg_hdr based structure level 1 dcl 3-12 reverse builtin function dcl 26 ref 46 46 rtrim builtin function dcl 26 ref 37 46 short based structure level 2 dcl 1-8 status_area_ptr 002134 automatic pointer dcl 1-47 set ref 35* 37* 45 status_branch based structure level 1 dcl 1-8 status_entry_names based char(32) array dcl 1-47 ref 45 status_ptr 002136 automatic pointer dcl 1-47 set ref 34* 37* 44 45 substr builtin function dcl 26 ref 46 50 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALWAYS_CHASE internal static bit(2) initial dcl 2-47 DEFAULT_CHASE internal static bit(2) initial dcl 2-47 Directory internal static fixed bin(17,0) initial dcl 1-56 FT_MESSAGE_TYPE internal static fixed bin(17,0) initial dcl 2-41 FT_REQUEST_VERSION_1 internal static char(8) initial packed unaligned dcl 2-38 Link internal static fixed bin(17,0) initial dcl 1-56 MERGE_DIRECTORIES internal static bit(2) initial dcl 2-43 NEVER_CHASE internal static bit(2) initial dcl 2-47 REPLACE_DIRECTORIES internal static bit(2) initial dcl 2-43 STATE_BUMPED internal static fixed bin(17,0) initial dcl 3-46 STATE_DEFERRED internal static fixed bin(17,0) initial dcl 3-42 STATE_DUPT internal static fixed bin(17,0) initial dcl 3-47 STATE_ELIGIBLE internal static fixed bin(17,0) initial dcl 3-44 STATE_RUNNING internal static fixed bin(17,0) initial dcl 3-45 STATE_TRANSITION internal static fixed bin(17,0) initial dcl 3-43 STATE_UNPROCESSED internal static fixed bin(17,0) initial dcl 3-41 Segment internal static fixed bin(17,0) initial dcl 1-56 ft_request based structure level 1 dcl 2-16 ft_request_ptr automatic pointer dcl 2-36 queue_msg_hdr_version_1 internal static fixed bin(17,0) initial dcl 3-37 status_link based structure level 1 dcl 1-38 status_pathname based char dcl 1-47 NAME DECLARED BY EXPLICIT CONTEXT. imft_default_rqt_ 000027 constant entry external dcl 2 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 34 35 empty builtin function ref 31 pointer builtin function ref 45 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 332 346 263 342 Length 576 263 14 214 47 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME imft_default_rqt_ 1168 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME imft_default_rqt_ 000100 code imft_default_rqt_ 000101 best_bet imft_default_rqt_ 000111 entry_name imft_default_rqt_ 000121 i imft_default_rqt_ 000122 auto_status imft_default_rqt_ 000134 auto_area imft_default_rqt_ 002134 status_area_ptr imft_default_rqt_ 002136 status_ptr imft_default_rqt_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc shorten_stack ext_entry_desc reverse_cs set_chars_eis return_chars_eis op_empty_ index_before_cs THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. hcs_$status_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. imft_data_$queue_dirname LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 000024 31 000034 34 000037 35 000041 37 000043 39 000127 42 000142 44 000145 45 000157 46 000170 49 000214 50 000226 53 000242 56 000251 60 000253 ----------------------------------------------------------- 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