01/30/73 ACL primitives The following hcs_ entry points are available for reading and setting the ACL's of storage system branches (segments and directories): dcl hcs_$list_acl entry(char(*),char(*),ptr,ptr,ptr, fixed bin,fixed bin(35)); call hcs_$list_acl(dir,entry,area_ptr,alloc_ptr,acl_ptr, acl_count,code); dcl hcs_$list_dir_acl entry(char(*),char(*),ptr,ptr,ptr, fixed bin,fixed bin(35)); call hcs_$list_dir_acl(dir,entry,area_ptr,alloc_ptr, dir_acl_ptr,acl_count,code); dcl hcs_$add_acl_entries entry(char(*),char(*),ptr, fixed bin,fixed bin(35)); call hcs_$add_acl_entries(dir,entry,acl_ptr,acl_count, code); dcl hcs_$add_dir_acl_entries entry(char(*),char(*),ptr,fixed bin, fixed bin(35)); call hcs_$add_dir_acl_entries(dir,entry,dir_acl_ptr, acl_count,code); dcl hcs_$delete_acl_entries entry(char(*),char(*),ptr, fixed bin,fixed bin(35)); call hcs_$delete_acl_entries(dir,entry,delete_acl_ptr, acl_count,code); dcl hcs_$delete_dir_acl_entries entry(char(*),char(*),ptr, fixed bin,fixed bin(35)); call hcs_$delete_dir_acl_entries(dir,entry,delete_acl_ptr, acl_count, code); dcl hcs_$replace_acl entry(char(*),char(*),ptr, fixed bin,bit(1) aligned,fixed bin(35)); call hcs_$replace_acl(dir,entry,acl_ptr,acl_count, no_sysdaemon_sw,code); dcl hcs_$replace_dir_acl entry(char(*),char(*),ptr, fixed bin,bit(1) aligned,fixed bin(35)); call hcs_$replace_dir_acl(dir,entry,dir_acl_ptr, acl_count,no_sysdaemon_sw,code); Arguments: The arguments are similar in meaning to the old hcs_$acl_...arguments. Note that separate entries are provided for segments and directories, and that there are three structures: one for segments, one for directories, and one for deleting acls of both segments and directories. hcs_$list_acl and hcs_$list_dir_acl now take another argument, alloc_ptr, which is returned when listing the entire acl; otherwise, only the modes of the entries in the acl_ptr structure will be filled in (if found). To delete an entire acl, hcs_$replace_acl with an acl_count = 0 and no_sysdaemon_sw = "1"b can be used for segments. dir char(168) pathname of the directory (Input). entry char(32) name of the entry in the dir (Input). acl_ptr ptr points to an acl structure (Input, except in acl_list where if whole acl is wanted it is set to null). dir_acl_ptr ptr as acl_ptr except points to dir_acl structure. acl_count fixed bin no. of acls in structure (Input except when listing the entire acl, then output). area_ptr ptr points to area where acl list is to be allocated when listing whole acl; otherwise, it must be null. alloc_ptr set to allocated list in area when listing whole acl (Output). no_sysdaemon_sw bit(1) aligned if "0"b then *.SysDaemon.* rwa (sma) will be appended to top of replacement list.(Lower list entries may overwrite this). If "1"b then above isn't done. code fixed bin(35) standard error code. If not 0 then function was not performed. List of structures used: dcl 1 acl(acl_count) based(acl_ptr) aligned, 2 access_name char(32), 2 mode bit(36), bits 1-4 are (rewa) rest must be 0. 2 pad bit(36), must be 0. 2 error_code fixed bin(35); dcl 1 dir_acl(acl_count) based(dir_acl_ptr) aligned, 2 access_name char(32), 2 dir_mode bit(36) bit 1-3 are (sma) rest must be 0. 2 error_code fixed bin(35); dcl 1 del_acl(acl_count) based(del_acl_ptr) aligned, 2 access_name char(32), 2 error_code fixed bin(35); access_name is of the form Name.Project.Tag. Each of the components must be present and may be "*". ----------------------------------------------------------- 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