" BEGIN INCLUDE FILE ... ssu_request_macros.incl.alm " Created: 5 May 1980 by W. Olin Sibert " Modified: 25 July 1980 by G. Palter to add multics_request macro " Modified: 1 December 1981 by G. Palter to remove user_flags " Modified: 12 February 1982 by G. Palter for version 4 " Modified: 28 February 1982 by G. Palter to add dont_summarize and dont_list " Modified: 2 August 1982 by Jay Pattin to add unknown_request " Modified: 24 October 1984 by G. Palter to restore user flags and add the " set_default_flags and set_default_multics_flags macros " ALM macros used to define subsystem request tables macro request_table_version aci "srqt_4.0",8 &end macro namelist maclist off,save vfd 36/&K &R&( aci @&i@,32 &) maclist restore &end " " System defined per-request flags bool flags.allow_command,400000 " valid as a command bool flags.allow_af,200000 " valid as an active function bool flags.allow_both,600000 " valid as both bool flags.unimplemented,100000 " request is not yet implemented bool flags.multics_request,040000 " request is actually a Multics command bool flags.dont_summarize,020000 " summarize_requests won't list it bool flags.dont_list,010000 " list_requests won't show it without -all bool flags.unknown,004000 " request is explicitly made unknown " Macros for setting per-request flags macro set_flags_loop maclist off,save &(3 &=&i,default&[ set_flags_loop &1,(0),(&2) &; set &1,&1+&i &]&) maclist restore &end macro set_flags maclist off,save set &1,0 &=&3,&[ set_flags_loop &1,(0),(&2) &; set_flags_loop &1,(&2),(&3) &] maclist restore &end " " set_default_flags {(system-flags)},{(user-flags)} " Sets the default system and/or user flags to be used for requests: " system-flags: defines the default general nature of requests;" the default " default is flags.allow_command " user-flags: defines the default setting for the subsystem specific flags " associated with requests;" the default default is none (0) " Note: If either system-flags or user-flags is ommitted, the default is not " changed from its prior value. This action allows the use of multiple " set_default_flags macros within a table to change system or user " flags without affecting the other defaults macro set_default_flags maclist off,save &^=&1,&[ set_flags .dft_sf,(flags.allow_command),(&1) &] &^=&2,&[ set_flags .dft_uf,(0),(&2) &] maclist restore &end " set_default_multics_flags {(system-flags)},{(user-flags)} " Sets the default system and/or user flags to be used for Multics commands when used as requests: " system-flags: defines the default general nature of Multics requests;" the " default default is flags.allow_command+flags.allow_af " user-flags: defines the default setting for the subsystem specific flags " associated with Multics requests;" the default default is none (0) " Note: If either system-flags or user-flags is ommitted, the default is not " changed from its prior value. This action allows the use of multiple " set_default_multics_flags macros within a table to change system or user " flags without affecting the other defaults macro set_default_multics_flags maclist off,save &^=&1,&[ set_flags .dft_mrsf,(flags.allow_command,flags.allow_af),(&1) &] &^=&2,&[ set_flags .dft_mruf,(0),(&2) &] maclist restore &end " macro .multics_request_doc null &end macro dft_multics_doc_lth set .multics_doc_lth,0 &end " set_default_multics_doc (string) " Sets the default documentation to be used for Multics commands when used as requests: " string: is the documentation string to be used for any subsequent requests defined by " the multics_request_macro;" all occurences of "&1" in this string will be replaced by " the actual name of the request;" Eg: " set_default_multics_doc (Type '.. help &1' for more information.) macro set_default_multics_doc maclist off,save macro .multics_request_doc aci @&1@ &&end macro dft_multics_doc_lth macro .compute set .multics_doc_lth,&&&&l1 &&&&end .compute (&1) &&end maclist restore &end " " begin_table tablename " Defines a subsystem request table (multiple tables may exist in a single object segment): " tablename: the name by which this table may be referenced externally;" references to the " table should be of the form segname$tablename where segname is the name of this " object segment macro begin_table segdef &1 maclist object,save use tables &1: request_table_version aci @&1@,32 dup 6 vfd 36/0 dupend vfd 36/&1.rc maclist off set .rc,0 set_default_flags (default),(default) set_default_multics_flags (default),(default) maclist restore &end " end_table tablename " Indicates the end of a subsystem request table definition: " tablename: the name of the table which has now been completely defined macro end_table maclist off,save set &1.rc,.rc maclist restore &end " " request name,processor,({abbreviations}),{(documentation)}, " {(system-flags)},{(user-flags)} " Defines a subsystem request: " name: the primary name of this request " processor: the name of the procedure which actually executes this request;" it must be " of the form segname$entryname " abbreviations: is the list of defined abbreviations for this request " documentation: a short string used by the list_requests request to explain this request " system-flags: defines the general nature of this request;" the default is " flags.allow_command " user-flags: allows a subsystem to provide subsystem-specific information " with the request's definition;" the default is none (0) macro request maclist off,save set .rc,.rc+1 maclist object use tables vfd 18/&U.call,18/&U.names &=&4,&[ vfd 36/0 &; vfd 18/&U.info,18/&l4 maclist off use info &U.info: aci @&4@ &] use tables set_flags .sf,(.dft_sf),(&5) set_flags .uf,(.dft_uf),(&6) maclist object vfd 18/.sf,18/.uf maclist off use calls &U.call: epaq * lprp4 7|stack_header.lot_ptr,*au call6 &2 use names &U.names: namelist &1&^=&3,&[,&3&] maclist restore &end " " unknown_request name,(abbreviations) " Defines an unknown request: used to make the utilities not recognize a request even though " it is defined in a later request table (such as ssu_request_tables_$standard_request): " name: the primary name of the request to be marked as unknown " abbreviations: is the list of defined abbreviations for this request macro unknown_request maclist off,save set .rc,.rc+1 maclist object use tables vfd 18/&U.call,18/&U.names vfd 36/0 vfd 18/flags.unknown,18/0 maclist off use calls &U.call: epaq * lprp4 7|stack_header.lot_ptr,*au call6 ssu_$unknown_request use names &U.names: namelist &1&^=&2,&[,&2&] maclist restore &end " " multics_request name,({abbreviations}),({documenation}),{procedure}, " {(system-flags)},{(user-flags)} " Defines that a Multics command/AF may be used as a subsystem request: " name: the primary name of this request (usually the name of the Multics command/AF) " abbreviations: is the list of defined abbreviations for this request " documentation: a short string used by the list_requests request to explain this request; " if no documentation is provided, the documentation specified by a prior use of " set_default_multics_doc is used " procedure: the name of the Multics command/AF which is actually executed by this " request;" it must be of the form segname$entryname;" if not given, the default is " name$name " system-flags: defines the general nature of this request;" the default is " flags.allow_command+flags.allow_af " user-flags: allows a subsystem to provide subsystem-specific information " with the request's definition;" the default is none (0) macro multics_request maclist off,save set .rc,.rc+1 maclist object use tables vfd 18/&U.call,18/&U.names &=&3,&[ dft_multics_doc_lth &1,(&2),(&3),(&4),(&5),(&6) vfd 18/&U.info,18/.multics_doc_lth &; vfd 18/&U.info,18/&l3 &] maclist off use info &U.info: &=&3,&[ .multics_request_doc &1,(&2),(&3),(&4),(&5),(&6) &; aci @&3@ &] use tables maclist object set_flags .sf,(.dft_mrsf),(&5) set_flags .uf,(.dft_mruf),(&6) maclist object vfd 18/.sf+flags.multics_request,18/.uf maclist off use calls &U.call: epaq * lprp4 7|stack_header.lot_ptr,*au &=&4,&[ call6 &1$&1 &; call6 &4 &] use names &U.names: namelist &1&^=&2,&[,&2&] maclist restore &end " " Required ALM statements to make this all work use tables use calls use names use info join /text/tables,calls,names,info include stack_header " END INCLUDE FILE ... ssu_request_macros.incl.alm " " " ----------------------------------------------------------- " " " " 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 " "