12/28/82 sweep_disk_ The sweep_disk_ subroutine walks through the subtree below a specified node of the directory hierarchy, calling a user-supplied subroutine once for every entry in every directory in the subtree. Entry points in sweep_disk_: (List is generated by the help command) :Entry: sweep_disk_: 11/04/82 sweep_disk_ (entry point) Syntax: declare sweep_disk_ entry (char(168) aligned, entry); call sweep_disk_ (base_path, subroutine); Arguments: base_path is the pathname of the directory that is the base node of the subtree to be scanned. (Input) subroutine is an entry point called for each branch or link in the subtree (see "User-Supplied Subroutines" below). (Input) User-Supplied Subroutines: The subroutine is assumed to have the following declaration and call: declare subroutine entry (char(168) aligned, char(32) aligned, fixed bin, char(32) aligned, ptr, ptr); call subroutine (path, dir_name, level, entryname, b_ptr, n_ptr); Arguments: path is the pathname of the directory immediately superior to the directory that contains the current entry. (Input) dir_name is the name of the directory that contains the current entry. (Input) level is the number of levels deep from the base_path directory of the subtree. (Input) entryname is the primary name on the current entry. (Input) b_ptr is a pointer to the branch structure returned by hcs_$star_list for the current entry. (Input) n_ptr is a pointer to the names area for the immediately superior directory of the current entry returned by hcs_$star_list. (Input) :Entry: dir_list: 11/04/82 sweep_disk_$dir_list Function: This entry point operates in the same way as sweep_disk_ but is much less expensive to use and does not return date_time_contents_modified, date_time_used, or bit_count. Syntax: declare sweep_disk_$dir_list entry (char(168) aligned, entry); call sweep_disk_$dir_list (base_path, subroutine); Notes: The user-supplied subroutine is called in the same way as sweep_disk_, but b_ptr points instead to the branch structure returned by hcs_$star_dir_list. See the hcs_$star_ subroutine. If the base_path argument to the sweep_disk_ subroutine is the root (">"), the directory >process_dir_dir is omitted from the tree walk. The sweep_disk_ subroutine attempts to force access to the directories in the subtree by adding an ACL term of the form "sma Person.Project.tag" to each directory ACL, and deleting that ACL term when finished processing the directory. If the user does not have sufficient access to add this ACL term for a given directory, the subroutine processes those parts of the subtree under it where the user already has sufficient access to list the directories. :Entry: loud: 11/04/82 sweep_disk_$loud Function: This entry point is used for debugging subsystems that use the sweep_disk_ subroutine. It sets an internal static flag in sweep_disk_ that causes sweep_disk_ to call com_err_ and report any errors encountered in listing directories or setting ACLs. Since sweep_disk_$loud takes no arguments, and should only be used for debugging, it can readily be invoked as a command ("sweep_disk_$loud") to cause sweep_disk_ to exhibit this debugging behavior for the rest of the process. There is no corresponding entry point to turn the switch off. Because this is a static switch, and affects all callers of sweep_disk_, it should not be turned on, except to debug, when it is important to understand the exact nature of any errors encountered. Normally, sweep_disk_ ignores errors and continues as best it can. Syntax: declare sweep_disk_$loud entry (); call sweep_disk_$loud (); ----------------------------------------------------------- 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