COMPILATION LISTING OF SEGMENT remove_user Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 11/01/83 1110.8 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* Modified July 1983 by B. Margolin to delete the corresponding 12* Mail Table entry */ 13 14 remove_user: procedure options (variable); 15 16 declare iox_$user_input pointer external; 17 18 declare pnt_manager_$remove_entry entry (character (*), fixed bin (35)), 19 urf_manager_$remove_entry entry (character (*), fixed bin (35)), 20 mail_table_priv_$delete entry (char (*) varying, bit (1), fixed bin (35)), 21 cu_$arg_ptr entry (fixed bin, pointer, fixed bin (21), fixed bin (35)), 22 cu_$arg_count entry returns (fixed bin), 23 iox_$get_line entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)), 24 (com_err_, ioa_) entry options (variable); 25 26 declare ME char (32) init ("remove_user") static options (constant); 27 28 declare arg char (al) based (ap); 29 declare al fixed bin (21), 30 ap pointer, 31 (nargs, i) fixed bin, 32 uid character (32), 33 code fixed bin (35); 34 35 declare (addr, length, substr) builtin; 36 37 nargs = cu_$arg_count (); 38 if nargs = 0 39 then do; 40 call ioa_ ("User ID:"); 41 call iox_$get_line (iox_$user_input, addr (uid), length (uid), al, code); 42 if code ^= 0 then do; 43 call com_err_ (code, ME, "Reading user ID."); 44 return; 45 end; 46 substr (uid, al) = ""; /* blank out rest of string */ 47 call process (uid); 48 end; 49 else do i = 1 to nargs; 50 call cu_$arg_ptr (i, ap, al, code); 51 if code ^= 0 then do; 52 call com_err_ (code, ME, "Getting argument ^d.", i); 53 return; 54 end; 55 call process (arg); 56 end; 57 return; 58 59 process: procedure (User); 60 declare User char (*) parameter; 61 declare code fixed bin (35); 62 63 call pnt_manager_$remove_entry (User, code); 64 if code ^= 0 then call com_err_ (code, ME, "Deleting PNT entry for ""^a"".", User); 65 call urf_manager_$remove_entry (User, code); 66 if code ^= 0 then call com_err_ (code, ME, "Deleting URF entry for ""^a"".", User); 67 call mail_table_priv_$delete (rtrim (User), "1"b, code); 68 if code ^= 0 then call com_err_ (code, ME, "Deleting Mail Table entry for ""^a"".", User); 69 end process; 70 71 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/01/83 1039.6 remove_user.pl1 >spec>on>11/01/83-mail>remove_user.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. ME 000000 constant char(32) initial unaligned dcl 26 set ref 43* 52* 64* 66* 68* User parameter char unaligned dcl 60 set ref 59 63* 64* 65* 66* 67 67 68* addr builtin function dcl 35 ref 41 41 al 000100 automatic fixed bin(21,0) dcl 29 set ref 41* 46 50* 55 55 ap 000102 automatic pointer dcl 29 set ref 50* 55 arg based char unaligned dcl 28 set ref 55* code 000126 automatic fixed bin(35,0) dcl 61 in procedure "process" set ref 63* 64 64* 65* 66 66* 67* 68 68* code 000116 automatic fixed bin(35,0) dcl 29 in procedure "remove_user" set ref 41* 42 43* 50* 51 52* com_err_ 000026 constant entry external dcl 18 ref 43 52 64 66 68 cu_$arg_count 000022 constant entry external dcl 18 ref 37 cu_$arg_ptr 000020 constant entry external dcl 18 ref 50 i 000105 automatic fixed bin(17,0) dcl 29 set ref 49* 50* 52* ioa_ 000030 constant entry external dcl 18 ref 40 iox_$get_line 000024 constant entry external dcl 18 ref 41 iox_$user_input 000010 external static pointer dcl 16 set ref 41* length builtin function dcl 35 ref 41 41 mail_table_priv_$delete 000016 constant entry external dcl 18 ref 67 nargs 000104 automatic fixed bin(17,0) dcl 29 set ref 37* 38 49 pnt_manager_$remove_entry 000012 constant entry external dcl 18 ref 63 substr builtin function dcl 35 set ref 46* uid 000106 automatic char(32) unaligned dcl 29 set ref 41 41 41 41 46* 47* urf_manager_$remove_entry 000014 constant entry external dcl 18 ref 65 NAMES DECLARED BY EXPLICIT CONTEXT. process 000306 constant entry internal dcl 59 ref 47 55 remove_user 000067 constant entry external dcl 14 NAME DECLARED BY CONTEXT OR IMPLICATION. rtrim builtin function ref 67 67 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 706 740 560 716 Length 1122 560 32 145 125 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME remove_user 178 external procedure is an external procedure. process internal procedure shares stack frame of external procedure remove_user. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME remove_user 000100 al remove_user 000102 ap remove_user 000104 nargs remove_user 000105 i remove_user 000106 uid remove_user 000116 code remove_user 000126 code process THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr ioa_ iox_$get_line mail_table_priv_$delete pnt_manager_$remove_entry urf_manager_$remove_entry THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. iox_$user_input LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000066 37 000074 38 000102 40 000104 41 000117 42 000142 43 000144 44 000171 46 000172 47 000203 48 000206 49 000207 50 000215 51 000232 52 000234 53 000267 55 000270 56 000303 57 000305 59 000306 63 000317 64 000336 65 000372 66 000411 67 000445 68 000513 69 000550 ----------------------------------------------------------- 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