COMPILATION LISTING OF SEGMENT cmcs_purge_queues_ Compiled by: Multics PL/I Compiler, Release 31b, of April 24, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 05/24/89 1022.9 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1989 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 6* * * 7* *********************************************************** */ 8 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8060), 14* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 15* MCR8060 cmcs_purge_queues_.pl1 Reformatted code to new Cobol standard. 16* END HISTORY COMMENTS */ 17 18 19 /* Modified on 03/03/81 by FCH, [4.4-1], once per process initialization, BUG468 */ 20 /* Modified since Version 4.3 */ 21 22 /* format: style3 */ 23 cmcs_purge_queues_: 24 proc (a_queue_ctl_eindex, a_long_sw, a_code); 25 26 dcl a_queue_ctl_eindex fixed bin, 27 a_long_sw bit (1), 28 a_code fixed bin (35); 29 30 dcl i fixed bin; /* dummy to avoid looping for count ^= 0 */ 31 32 dcl my_name char (18) int static options (constant) init ("cmcs_purge_queues_"); 33 34 dcl sub_err_ entry options (variable); 35 dcl sub_err_retval fixed bin (35); 36 37 dcl iocb_ptr ptr; 38 39 dcl ( 40 ioa_, 41 ioa_$rsnnl 42 ) entry options (variable); 43 44 dcl 1 msg_descr int static like vfile_descr; 45 46 dcl msg_descr_ptr ptr int static; 47 48 dcl fb21 fixed bin (21); 49 50 51 52 dcl (msg_no, seg_no) fixed bin (35); 53 54 dcl 1 static_vfile_rs int static like vfile_rs; 55 56 dcl attach_descr char (256), 57 attach_descr_len fixed bin; 58 59 dcl switch_name char (7) int static options (constant) init ("cmcs_pq"); 60 61 dcl overlay_len fixed bin, 62 overlay (overlay_len) fixed bin (35) based; 63 64 dcl (error_table_$no_record) 65 fixed bin (35) external; 66 67 dcl (addr, fixed, null, size, substr) 68 builtin; 69 70 /* */ 71 1 1 /* BEGIN INCLUDE FILE... cmcs_control_hdr.incl.pl1 */ 1 2 1 3 /* This include file is the 1st part of all cobol_mcs tables */ 1 4 1 5 /* Bob May, 4/30/77 */ 1 6 1 7 dcl control_hdr_len fixed bin int static options (constant) init (32); 1 8 1 9 dcl control_hdr_ptr ptr; 1 10 1 11 dcl 1 control_hdr aligned based (control_hdr_ptr), 1 12 2 lockword bit (36) aligned, /* for process_id */ 1 13 2 version fixed bin, 1 14 2 clock_created fixed bin (71), 1 15 2 author aligned, 1 16 3 group_id char (32), /* person.proj.tag */ 1 17 3 process_id bit (36), 1 18 2 max_size fixed bin (18), /* maximum number of entries seg can hold */ 1 19 2 current_size fixed bin (18), /* index of last active entry */ 1 20 2 entry_count fixed bin (18), /* number of active entries */ 1 21 2 cmcs_control_hdr_filler (16) fixed bin; /* words (17-32) for later expansion */ 1 22 1 23 /* END INCLUDE FILE... cmcs_control_hdr.incl.pl1 */ 72 2 1 /* BEGIN INCLUDE FILE... cmcs_entry_dcls.incl.pl1 */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(89-04-23,Zimmerman), approve(89-04-23,MCR8087), 2 7* audit(89-05-05,RWaters), install(89-05-24,MR12.3-1048): 2 8* MCR8087 cmcs_entry_dcls.incl.pl1 Shorten wait time for cmcs_station_ctl_. 2 9* END HISTORY COMMENTS */ 2 10 2 11 2 12 /* Entry declarations for the COBOL MCS runtime support package */ 2 13 2 14 /* Modified on 10/20/84 by FCH, [5.3-1] */ 2 15 /* Modified on 04/29/81 by FCH, [4.4-1] */ 2 16 /* Bob May, 6/01/77 */ 2 17 2 18 dcl cmcs_create_queues_ entry (fixed bin (35)); 2 19 2 20 dcl cmcs_date_time_ entry (fixed bin (71), char (6) unaligned, char (8) unaligned); 2 21 2 22 dcl cmcs_decode_status_ entry (ptr, ptr, fixed bin, fixed bin, fixed bin (35)); 2 23 2 24 dcl cmcs_expand_tree_path_ entry (char (*), char (48), fixed bin (35)); 2 25 2 26 dcl cmcs_fillin_hdr_ entry (ptr, fixed bin, fixed bin, fixed bin, fixed bin (35)); 2 27 2 28 dcl cmcs_initiate_ctl_ entry (char (*), ptr, fixed bin (35)); 2 29 2 30 dcl cmcs_print_ entry (ptr, ptr, fixed bin (35), ptr, fixed bin (35)); 2 31 2 32 dcl cmcs_purge_queues_ entry (fixed bin, bit (1), fixed bin (35)); 2 33 2 34 dcl cmcs_queue_ctl_$accept_message_count entry (ptr, fixed bin, fixed bin (35)); 2 35 dcl cmcs_queue_ctl_$disable entry (ptr, fixed bin, char (10), fixed bin (35)); 2 36 dcl cmcs_queue_ctl_$enable entry (ptr, fixed bin, char (10), fixed bin (35)); 2 37 dcl cmcs_queue_ctl_$print entry (ptr, fixed bin, ptr, fixed bin (35)); 2 38 dcl cmcs_queue_ctl_$purge entry (ptr, fixed bin, fixed bin (35)); 2 39 dcl cmcs_queue_ctl_$receive entry (ptr, fixed bin, ptr, fixed bin, fixed bin (35)); 2 40 dcl cmcs_queue_ctl_$send entry (ptr, fixed bin, ptr, fixed bin, fixed bin, bit (36), fixed bin (35)); 2 41 dcl cmcs_queue_ctl_$stop_run entry (fixed bin, fixed bin (35)); 2 42 2 43 dcl cmcs_scramble_ entry (char (10)) returns (char (10)); 2 44 2 45 dcl cmcs_set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)); /*[5.3-1]*/ 2 46 dcl cmcs_set_lock_$unlock entry (bit (36) aligned, fixed bin (35)); 2 47 2 48 dcl cmcs_station_ctl_$attach entry (char (12), fixed bin, fixed bin (35)); 2 49 dcl cmcs_station_ctl_$detach entry (fixed bin, fixed bin (35)); 2 50 dcl cmcs_station_ctl_$detach_name entry (char (12), fixed bin (35)); 2 51 dcl cmcs_station_ctl_$disable_input_terminal entry (ptr, char (10), fixed bin (35)); 2 52 dcl cmcs_station_ctl_$disable_output_terminal entry (ptr, char (10), fixed bin (35)); 2 53 dcl cmcs_station_ctl_$enable_input_terminal entry (ptr, char (10), fixed bin (35)); 2 54 dcl cmcs_station_ctl_$enable_output_terminal entry (ptr, char (10), fixed bin (35)); 2 55 dcl cmcs_station_ctl_$find_destination entry (char (12), fixed bin, ptr, fixed bin (35)); /*[4.4-1]*/ 2 56 dcl cmcs_station_ctl_$input_disabled entry (fixed bin, bit (1), fixed bin (35)); 2 57 dcl cmcs_station_ctl_$output_disabled entry (fixed bin, bit (1), fixed bin (35)); 2 58 dcl cmcs_station_ctl_$validate entry (char (12), fixed bin, fixed bin (35)); 2 59 2 60 dcl cmcs_status_list_ctl_$add entry (ptr, ptr, ptr, fixed bin, fixed bin (35)); 2 61 dcl cmcs_status_list_ctl_$delete entry (ptr, ptr, ptr, fixed bin, fixed bin (35)); 2 62 dcl cmcs_status_list_ctl_$move entry (ptr, ptr, ptr, fixed bin, fixed bin, fixed bin (35)); 2 63 2 64 dcl cmcs_terminal_ctl_$find entry (char (8), char (12), fixed bin (35)); 2 65 2 66 dcl cmcs_tree_ctl_$find_destination entry (char (12), fixed bin, ptr, fixed bin (35)); 2 67 dcl cmcs_tree_ctl_$find_index entry (fixed bin, ptr, fixed bin (35)); 2 68 dcl cmcs_tree_ctl_$find_tree_path entry (ptr, fixed bin, fixed bin, ptr, fixed bin (35)); 2 69 dcl cmcs_tree_ctl_$find_qual_name entry (char (12), fixed bin, ptr, char (52), fixed bin (35)); /*[4.4-1]*/ 2 70 2 71 dcl cmcs_wait_ctl_$add entry (char (48), fixed bin, fixed bin (35)); 2 72 dcl cmcs_wait_ctl_$delete entry (fixed bin, fixed bin (35)); 2 73 dcl cmcs_wait_ctl_$find entry (char (48), ptr, fixed bin (35)); 2 74 dcl cmcs_wait_ctl_$mp_available entry (fixed bin, fixed bin, fixed bin (35)); 2 75 dcl cmcs_wait_ctl_$mp_login entry (fixed bin, fixed bin (35)); 2 76 dcl cmcs_wait_ctl_$mp_logout entry (fixed bin, fixed bin (35)); 2 77 dcl cmcs_wait_ctl_$clear_mp entry (fixed bin (35)); 2 78 dcl cmcs_wait_ctl_$start_mp entry (fixed bin (35)); 2 79 dcl cmcs_wait_ctl_$stop_mp entry (fixed bin (35)); 2 80 2 81 /* END INCLUDE FILE... cmcs_entry_dcls.incl.pl1 */ 73 3 1 /* BEGIN INCLUDE FILE... cmcs_error_table_dcls.incl.pl1 */ 3 2 3 3 /* Bob May, 6/30/77 */ 3 4 3 5 dcl (cmcs_error_table_$ambiguous_tree_path, cmcs_error_table_$bad_call_parm, cmcs_error_table_$bad_dest, 3 6 cmcs_error_table_$bad_dest_count, cmcs_error_table_$bad_message_length, 3 7 cmcs_error_table_$bad_password, cmcs_error_table_$bad_queue_path, cmcs_error_table_$bad_slew, 3 8 3 9 cmcs_error_table_$bad_source, cmcs_error_table_$bad_station, 3 10 cmcs_error_table_$bad_term_devchn, cmcs_error_table_$bad_tree_path, 3 11 cmcs_error_table_$dest_already_disabled, cmcs_error_table_$dest_already_enabled, 3 12 3 13 cmcs_error_table_$dest_disabled, cmcs_error_table_$no_message, 3 14 cmcs_error_table_$no_partial_messages, cmcs_error_table_$null_partial_message, 3 15 cmcs_error_table_$queue_already_disabled, cmcs_error_table_$queue_already_enabled, 3 16 3 17 cmcs_error_table_$queue_disabled, cmcs_error_table_$source_already_disabled, 3 18 cmcs_error_table_$source_already_enabled, cmcs_error_table_$source_disabled) fixed bin (35) external; 3 19 3 20 /* END INCLUDE FILE... cmcs_error_table_dcls.incl.pl1 */ 74 4 1 /* BEGIN INCLUDE FILE... cmcs_iox_processing.incl.pl1, 07/01/74 */ 4 2 4 3 dcl iox_$attach_iocb entry (ptr, char (*), fixed bin (35)), 4 4 iox_$attach_name entry (char (*), ptr, char (*), ptr, fixed bin (35)), 4 5 iox_$close entry (ptr, fixed bin (35)), 4 6 iox_$control entry (ptr, char (*), ptr, fixed bin (35)), 4 7 iox_$delete_record entry (ptr, fixed bin (35)), 4 8 iox_$detach_iocb entry (ptr, fixed bin (35)), 4 9 iox_$find_iocb entry (char (*), ptr, fixed bin (35)), 4 10 iox_$get_chars entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)), 4 11 iox_$get_line entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)), 4 12 iox_$modes entry (ptr, char (*), char (*), fixed bin (35)), 4 13 iox_$open entry (ptr, fixed bin, bit (1) aligned, fixed bin (35)), 4 14 iox_$position entry (ptr, fixed bin, fixed bin (21), fixed bin (35)), 4 15 iox_$put_chars entry (ptr, ptr, fixed bin (21), fixed bin (35)), 4 16 iox_$read_key entry (ptr, char (256) varying, fixed bin (21), fixed bin (35)), 4 17 iox_$read_length entry (ptr, fixed bin (21), fixed bin (35)), 4 18 iox_$read_record entry (ptr, ptr, fixed bin (21), fixed bin (21), fixed bin (35)), 4 19 iox_$rewrite_record entry (ptr, ptr, fixed bin (21), fixed bin (35)), 4 20 iox_$seek_key entry (ptr, char (256) varying, fixed bin (21), fixed bin (35)), 4 21 iox_$write_record entry (ptr, ptr, fixed bin (21), fixed bin (35)); 4 22 4 23 /* * * EXTERNAL * * */ 4 24 4 25 dcl (iox_$user_io, 4 26 iox_$user_input, 4 27 iox_$user_output, 4 28 iox_$error_output) ptr external; 4 29 4 30 /* * * MODES * * */ 4 31 4 32 /* 4 33* 1 stream_input 4 34* 2 stream_output 4 35* 3 stream_input_output 4 36* 4 sequential_input 4 37* 5 sequential_output 4 38* 6 sequential_input_output 4 39* 7 sequential_update 4 40* 8 keyed_sequential_input 4 41* 9 keyed_sequential_output 4 42* 10 keyed_sequential_update 4 43* 11 direct_input 4 44* 12 direct_output 4 45* 13 direct_update 4 46**/ 4 47 4 48 /* END INCLUDE FILE... cmcs_iox_processing.incl.pl1 */ 75 5 1 /* BEGIN INCLUDE FILE... cmcs_key_dcls.incl.pl1 */ 5 2 5 3 /* 5 4* This COBOL MCS include file gives the structure of the key fields used to access 5 5* the message records in an indexed vfile. 5 6**/ 5 7 5 8 /* Bob May, 5/31/77 */ 5 9 5 10 dcl key char (256) varying; /* used by iox_ */ 5 11 5 12 dcl 1 key_struc aligned, 5 13 (2 key_len init (8), 5 14 2 msg_no, 5 15 2 seg_no) fixed bin (35); 5 16 5 17 dcl based_key char (8) varying based (addr (key_struc)); 5 18 5 19 /* END INCLUDE FILE... cmcs_key_dcls.incl.pl1 */ 76 6 1 /* BEGIN INCLUDE FILE... cmcs_msg_hdr.incl.pl1 */ 6 2 6 3 /* This include file defines the structure of the msg header for COBOL MCS messages. 6 4* Both msg_hdr/msg_seg and msg_seg only records have their msg_no and seg_no 6 5* in the first two words of the record. The seg_no in msg_hdr/msg_seg records will always 6 6* be 1; the seg_no in msg_seg records will always be greater than 1. */ 6 7 6 8 /* Bob May, 5/31/77 */ 6 9 6 10 dcl (msg_hdr_len init (26), /* 24, plus fudges for alignment */ 6 11 msg_hdr_version init (1)) fixed bin int static options (constant); 6 12 6 13 dcl msg_hdr_ptr ptr; 6 14 6 15 dcl 1 msg_hdr aligned based (msg_hdr_ptr), 6 16 2 msg_no fixed bin (35), /* same as in key */ 6 17 2 seg_no fixed bin (35), /* always 1, to indicate msg_hdr */ 6 18 2 lockword bit (36) aligned, /* current owner */ 6 19 2 version fixed bin, 6 20 2 source_station char (12), /* who created this msg */ 6 21 2 source_group_id char (32), /* User_id of msg source */ 6 22 2 final_delim fixed bin, /* 0 illegal, 1-3 legal */ 6 23 2 clock_available fixed bin (71), /* when msg is available for processing */ 6 24 2 clock_deleted fixed bin (71), /* processing completed */ 6 25 2 seg_count fixed bin, /* total number of (msg) segments for this msg */ 6 26 2 msg_len fixed bin (35), /* sum of all segments, in chars */ 6 27 2 status_info, 6 28 3 msg_status fixed bin, /* 0 undefined, 1-4 legal */ 6 29 /* 1 - send incomplete */ 6 30 /* 2 - send complete (available for processing) */ 6 31 /* 3 - receive incomplete (in process) */ 6 32 /* 4 - receive complete */ 6 33 3 descrs, 6 34 4 f_descr like vfile_descr, 6 35 4 b_descr like vfile_descr, 6 36 2 msg_seg like msg_seg; /* for seg 1, where msg hdr and seg are together */ 6 37 6 38 /* END INCLUDE FILE... cmcs_msg_hdr.incl.pl1 */ 77 7 1 /* BEGIN INCLUDE FILE... cmcs_msg_seg.incl.pl1 */ 7 2 7 3 /* This include file defines the structure of a COBOL MCS message segment */ 7 4 7 5 /* Bob May, 5/31/77 */ 7 6 7 7 dcl (msg_seg_hdr_len init (4), 7 8 msg_seg_version init (1)) fixed bin int static options (constant); 7 9 7 10 dcl msg_seg_ptr ptr; 7 11 7 12 dcl 1 msg_seg aligned based (msg_seg_ptr), 7 13 2 hdr, 7 14 3 msg_no fixed bin (35), /* same as in key */ 7 15 3 seg_no fixed bin (35), /* same as in key */ 7 16 3 slew_ctl fixed bin (35), 7 17 3 seg_len fixed bin (35), /* of this segment, in chars */ 7 18 2 data, 7 19 3 seg_data char (msg_seg.hdr.seg_len); 7 20 7 21 /* END INCLUDE FILE... cmcs_msg_seg.incl.pl1 */ 78 8 1 /* BEGIN INCLUDE FILE ... cmcs_queue_ctl.incl.pl1 */ 8 2 8 3 /* This COBOL MCSD include file defines the structure of the cmcs_queue_ctl.control segment. */ 8 4 8 5 /* Bob May, 5/31/77 */ 8 6 8 7 dcl (queue_ctl_hdr_len init (0), 8 8 queue_ctl_entry_len init (48), 8 9 queue_ctl_version init (1)) fixed bin internal static options (constant); 8 10 8 11 dcl queue_ctl_ptr ptr int static; 8 12 8 13 dcl 1 queue_ctl aligned based (queue_ctl_ptr), 8 14 2 hdr like control_hdr, 8 15 2 entries (queue_ctl.current_size) like queue_ctl_entry; 8 16 8 17 dcl queue_ctl_eindex fixed bin; 8 18 8 19 dcl queue_ctl_eptr ptr; 8 20 8 21 dcl 1 queue_ctl_entry aligned based (queue_ctl_eptr), 8 22 2 lockword bit (36) aligned, 8 23 2 tree_ctl_eindex fixed bin, /* index of corresponding entry in tree_ctl */ 8 24 2 tree_path, 8 25 3 level_names (4) char (12), 8 26 2 queue_name char (32), /* includes suffix */ 8 27 2 msg_no fixed bin (35), /* always increasing, until reset manually */ 8 28 2 flags, 8 29 (3 input_disabled_sw bit (1), 8 30 3 mp_entered_sw bit (1), 8 31 3 mp_active_sw bit (1), 8 32 3 mp_sw bit (1), 8 33 3 cmd_sw bit (1), 8 34 3 filler bit (31)) unaligned, 8 35 2 filler (10) fixed bin (35), 8 36 2 mp_lockword bit (36) aligned, /* process_id of message processor */ 8 37 2 status_lists_lockword bit (36) aligned, /* only to manipulate the status lists */ 8 38 2 status_list_ctl_entries (4) like status_list_ctl_entry; /* everything belonging to this queue */ 8 39 8 40 dcl status_list_ctl_eindex fixed bin; 8 41 8 42 dcl status_list_ctl_eptr ptr; 8 43 8 44 dcl 1 status_list_ctl_entry aligned based (status_list_ctl_eptr), 8 45 2 count fixed bin, 8 46 2 descrs, 8 47 3 f_descr like vfile_descr, 8 48 3 b_descr like vfile_descr; 8 49 8 50 /* END INCLUDE FILE ... cmcs_queue_ctl.incl.pl1 */ 79 9 1 /* BEGIN INCLUDE FILE ... cmcs_user_ctl.incl.pl1 */ 9 2 9 3 /* 9 4* This COBOL MCS include file defines the global, process-dependent variables that are 9 5* not part of the PD copy of cmcs_tree_ctl.control. 9 6**/ 9 7 9 8 /* Modified on 05/06/81 by FCH, [4.4-1], attach command */ 9 9 /* Bob May, 5/31/77 */ 9 10 9 11 dcl user_ctl_exists_sw bit (1) aligned int static init ("0"b); /* indicates legitimacy of external_user_ctl_ptr */ 9 12 9 13 dcl external_user_ctl_ptr ptr external; /* global ptr for user_ctl */ 9 14 9 15 dcl user_ctl_ptr ptr int static; 9 16 9 17 dcl 1 user_ctl aligned based (user_ctl_ptr), 9 18 9 19 /* Flags */ 9 20 9 21 2 init_sw, 9 22 3 terminal_ctl bit(1), 9 23 3 tree_ctl bit(1), 9 24 3 status_list_ctl bit(1), 9 25 3 station_ctl bit(1), 9 26 3 queue_ctl bit(1), 9 27 3 set_lock bit(1), 9 28 3 wait_ctl bit(1), 9 29 3 purge_queues bit(1), 9 30 3 create_queues bit(1), 9 31 3 initiate_ctl bit(1), 9 32 3 mcs bit(1), 9 33 2 flags, 9 34 (3 initialized_sw bit (1), 9 35 3 interactive_sw bit (1), 9 36 3 mp_sw bit (1), /* message processor process */ 9 37 3 terminal_sw bit (1), /* user terminal process */ 9 38 3 admin_sw bit (1), /* cobol_mcs_admin */ 9 39 3 attach_bit bit(1), /*[4.4-1]*/ 9 40 3 rec bit(1), /*[4.4-1]*/ 9 41 3 filler bit (29)) unaligned, 9 42 2 cmcs_dir char (168), 9 43 2 output_file char(168), /*[4.4-1]*/ 9 44 2 station_name char (12), /* current station */ 9 45 2 station_ctl_eindex fixed bin, /* current station */ 9 46 2 process_id bit (36), 9 47 2 process_type fixed bin, /* 0 - not defined, 1 - MP, 2 - terminal, 3 - admin */ 9 48 2 filler fixed bin (35), /* to explicitly align ptrs */ 9 49 2 control_ptrs, 9 50 3 queue_ctl_ptr ptr, 9 51 3 iocb_ptr ptr, /*[4.4-1]*/ 9 52 3 station_ctl_ptr ptr, 9 53 3 system_ctl_ptr ptr, 9 54 3 terminal_ctl_ptr ptr, 9 55 3 tree_ctl_ptr ptr, 9 56 3 wait_ctl_ptr ptr, 9 57 3 filler_ptrs (4) ptr, 9 58 2 terminal_info, 9 59 3 term_id char (4), 9 60 3 term_type fixed bin, 9 61 3 term_channel char (8), 9 62 2 last_receive_info, 9 63 3 tree_path char (48), 9 64 3 tree_ctl_eindex fixed bin, 9 65 3 tree_ctl_eptr ptr, 9 66 2 last_send_info, 9 67 3 dest_name char (12), 9 68 3 tree_ctl_eindex fixed bin, 9 69 3 tree_ctl_eptr ptr, 9 70 2 station_info, 9 71 3 station_count fixed bin, /* must be 1 for phase 1 */ 9 72 3 station_entries (2), 9 73 4 station_name char (12), 9 74 4 station_ctl_eptr ptr, 9 75 4 station_ctl_eindex fixed bin, 9 76 2 wait_info, 9 77 3 wait_ctl_eptr ptr, 9 78 3 wait_ctl_eindex fixed bin, 9 79 3 wait_ctl_mp_eindex fixed bin, /* only for message processors */ 9 80 3 wait_ctl_mp_eptr ptr, 9 81 3 ev_wait_chn fixed bin (71), /* for message processors */ 9 82 3 ev_call_chn fixed bin (71), /* for terminals, to get message responses */ 9 83 3 ev_wait_list_ptr ptr, /* for ipc_$block */ 9 84 3 ev_info_ptr ptr; /* for wakeup */ 9 85 9 86 /* END INCLUDE FILE ... cmcs_user_ctl.incl.pl1 */ 80 10 1 /* BEGIN INCLUDE FILE... cmcs_vfile_rs.incl.pl1 */ 10 2 10 3 /* This COBOL MCS include file is used to reference records by their 10 4* vfile_ descriptors. It is used mainly in the maintenance of 10 5* message status lists. */ 10 6 10 7 /* Bob May, 6/30/77 */ 10 8 10 9 dcl vfile_rs_version fixed bin int static options (constant) init (1); 10 10 10 11 dcl vfile_rs_ptr ptr; 10 12 10 13 dcl 1 vfile_rs aligned based (vfile_rs_ptr), 10 14 2 version fixed bin, /* currently must be set to 1 */ 10 15 2 flags, 10 16 (3 lock_sw bit (1), /* "1"b */ 10 17 3 unlock_sw bit (1), /* "1"b */ 10 18 3 create_sw bit (1), /* "0"b */ 10 19 /* switch separator */ 10 20 3 locate_sw bit (1), /* "0"b for current_rec, "1"b to use descriptor */ 10 21 3 filler bit (32)) unaligned, /* (32) "0"b */ 10 22 2 rec_len fixed bin (21), 10 23 2 max_rec_len fixed bin (21), 10 24 2 rec_ptr ptr, 10 25 2 descr like vfile_descr, /* process INdependent addressing */ 10 26 2 filler fixed bin; /* 0 */ 10 27 10 28 dcl 1 vfile_descr, /* process INdependent addressing */ 10 29 (2 comp_no fixed bin (17), /* component of MSF */ 10 30 2 comp_offset bit (18)) unaligned; /* offset of record in component */ 10 31 10 32 /* END INCLUDE FILE... cmcs_vfile_rs.incl.pl1 */ 81 82 83 /* */ 84 85 /*[4.4-1]*/ 86 if ^(external_user_ctl_ptr -> user_ctl.init_sw.purge_queues) 87 then call setup; 88 89 if a_queue_ctl_eindex = 0 90 then do queue_ctl_eindex = 1 to queue_ctl.current_size; 91 92 call purge_queue; 93 94 end; 95 96 else do; 97 98 queue_ctl_eindex = a_queue_ctl_eindex; 99 100 if queue_ctl_eindex < 1 | queue_ctl_eindex > queue_ctl.current_size 101 then do; 102 103 a_code = cmcs_error_table_$bad_call_parm; 104 return; 105 106 end; 107 108 call purge_queue; /* dropped thru, specific index ok */ 109 110 end; 111 112 a_code = 0; 113 return; 114 115 /* */ 116 117 purge_queue: 118 proc (); 119 120 /* Requires that queue_ctl_eindex be set to desired queue prior to call */ 121 122 queue_ctl_eptr = addr (queue_ctl.entries (queue_ctl_eindex)); 123 124 if a_long_sw 125 then call ioa_ ("Queue ^a^/^-Partial sends = ^d^/^-Available = ^d^/^-Partial receives ^d^/^-Completed = ^d", 126 queue_ctl_entry.queue_name, queue_ctl_entry.status_list_ctl_entries (1).count, 127 queue_ctl_entry.status_list_ctl_entries (2).count, queue_ctl_entry.status_list_ctl_entries (3).count, 128 queue_ctl_entry.status_list_ctl_entries (4).count); 129 130 call ioa_$rsnnl ("vfile_ ^a>^a -old", attach_descr, attach_descr_len, user_ctl.cmcs_dir, 131 queue_ctl_entry.queue_name); 132 133 call iox_$attach_name (switch_name, iocb_ptr, substr (attach_descr, 1, attach_descr_len), null (), a_code); 134 135 if a_code ^= 0 136 then do; 137 138 call sub_err_ (a_code, my_name, "c", null (), sub_err_retval, "Attempting to attach queue ^a.", 139 queue_ctl_entry.queue_name); 140 141 go to pq_ret; 142 143 end; 144 145 call iox_$open (iocb_ptr, 13, "0"b, a_code); 146 147 if a_code ^= 0 148 then do; 149 150 call sub_err_ (a_code, my_name, "c", null (), sub_err_retval, "Attempting to open ^a.", 151 queue_ctl_entry.queue_name); 152 153 go to detach; 154 155 end; 156 157 do status_list_ctl_eindex = 1, 3, 4; 158 159 status_list_ctl_eptr = addr (queue_ctl_entry.status_list_ctl_entries (status_list_ctl_eindex)); 160 161 do i = 1 to status_list_ctl_entry.count; 162 163 msg_descr = status_list_ctl_entry.f_descr; 164 /* get first in list */ 165 166 if status_list_ctl_eindex = 3 167 then do; 168 call cmcs_status_list_ctl_$move (queue_ctl_eptr, iocb_ptr, msg_descr_ptr, 3, 2, a_code); 169 170 if a_code ^= 0 171 then do; 172 173 call sub_err_ (a_code, my_name, "c", null (), sub_err_retval, 174 "Attempting to move status 3 message back to status 2."); 175 176 go to end_count_loop; 177 178 end; 179 end; 180 else do; /* 1 or 4, delete it */ 181 182 static_vfile_rs.descr = status_list_ctl_entry.f_descr; 183 184 call iox_$control (iocb_ptr, "record_status", vfile_rs_ptr, a_code); 185 186 if a_code ^= 0 187 then do; 188 189 call sub_err_ (a_code, my_name, "c", null (), sub_err_retval, 190 "Attempting to seek descriptor to get the msg header."); 191 192 msg_hdr_ptr = null (); 193 msg_seg_ptr = null (); 194 195 go to end_count_loop; 196 197 end; 198 199 msg_hdr_ptr = static_vfile_rs.rec_ptr; 200 msg_seg_ptr = addr (msg_hdr.msg_seg); 201 202 msg_no = msg_hdr.msg_no; /* for subsequent seek keys */ 203 204 call cmcs_status_list_ctl_$delete (queue_ctl_eptr, iocb_ptr, msg_descr_ptr, 205 status_list_ctl_eindex, a_code); 206 207 if a_code ^= 0 208 then do; 209 210 call sub_err_ (a_code, my_name, "c", null (), sub_err_retval, 211 "Attempting to delete message from status list ^d.", status_list_ctl_eindex); 212 213 go to end_count_loop; 214 215 end; 216 217 key_struc.msg_no = msg_no; 218 key_struc.seg_no = 0; 219 220 seg_delete_loop: 221 key_struc.seg_no = key_struc.seg_no + 1; 222 key = based_key; /* to make vfile_ happy */ 223 224 call iox_$seek_key (iocb_ptr, key, fb21, a_code); 225 226 if a_code ^= 0 227 then if a_code = error_table_$no_record 228 then go to end_count_loop; 229 else do; 230 231 call sub_err_ (a_code, my_name, "c", null (), sub_err_retval, 232 "Attempting to seek ^d/^d for deletion.", key_struc.msg_no, 233 key_struc.seg_no); 234 235 go to end_count_loop; 236 237 end; 238 239 call iox_$delete_record (iocb_ptr, a_code); 240 241 if a_code ^= 0 242 then do; 243 244 call sub_err_ (a_code, my_name, "c", null (), sub_err_retval, 245 "Attempting to delete ^d/^d.", key_struc.msg_no, key_struc.seg_no); 246 go to seg_delete_loop; 247 248 end; 249 250 end /* status 1 or 4 */; 251 252 end_count_loop: 253 end /* count > 0 */; 254 end /* status 1, 3, or 4 */; 255 256 close: 257 call iox_$close (iocb_ptr, a_code); 258 259 if a_code ^= 0 260 then call sub_err_ (a_code, my_name, "c", null (), sub_err_retval, "Attempting to close ^a.", 261 queue_ctl_entry.queue_name); 262 263 detach: 264 call iox_$detach_iocb (iocb_ptr, a_code); 265 266 if a_code ^= 0 267 then call sub_err_ (a_code, my_name, "c", null (), sub_err_retval, "Attempting to detach ^a.", 268 queue_ctl_entry.queue_name); 269 270 pq_ret: 271 return; 272 273 end /* purge_queue */; 274 275 /* */ 276 277 setup: 278 proc (); 279 280 user_ctl_ptr = external_user_ctl_ptr; 281 queue_ctl_ptr = user_ctl.queue_ctl_ptr; 282 283 msg_descr_ptr = addr (msg_descr); 284 vfile_rs_ptr = addr (static_vfile_rs); 285 overlay_len = size (static_vfile_rs); 286 vfile_rs_ptr -> overlay (*) = 0; 287 static_vfile_rs.locate_sw = "1"b; 288 static_vfile_rs.version = vfile_rs_version; 289 290 user_ctl.init_sw.purge_queues = "1"b; 291 return; 292 293 end /* setup */; 294 295 end /* cmcs_purge_queues_ */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 05/24/89 0833.9 cmcs_purge_queues_.pl1 >spec>install>MR12.3-1048>cmcs_purge_queues_.pl1 72 1 03/27/82 0439.5 cmcs_control_hdr.incl.pl1 >ldd>include>cmcs_control_hdr.incl.pl1 73 2 05/24/89 0811.5 cmcs_entry_dcls.incl.pl1 >spec>install>MR12.3-1048>cmcs_entry_dcls.incl.pl1 74 3 03/27/82 0439.5 cmcs_error_table_dcls.incl.pl1 >ldd>include>cmcs_error_table_dcls.incl.pl1 75 4 03/27/82 0439.5 cmcs_iox_processing.incl.pl1 >ldd>include>cmcs_iox_processing.incl.pl1 76 5 03/27/82 0439.5 cmcs_key_dcls.incl.pl1 >ldd>include>cmcs_key_dcls.incl.pl1 77 6 03/27/82 0439.5 cmcs_msg_hdr.incl.pl1 >ldd>include>cmcs_msg_hdr.incl.pl1 78 7 03/27/82 0439.5 cmcs_msg_seg.incl.pl1 >ldd>include>cmcs_msg_seg.incl.pl1 79 8 03/27/82 0439.5 cmcs_queue_ctl.incl.pl1 >ldd>include>cmcs_queue_ctl.incl.pl1 80 9 03/27/82 0431.5 cmcs_user_ctl.incl.pl1 >ldd>include>cmcs_user_ctl.incl.pl1 81 10 03/27/82 0439.6 cmcs_vfile_rs.incl.pl1 >ldd>include>cmcs_vfile_rs.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. a_code parameter fixed bin(35,0) dcl 26 set ref 23 103* 112* 133* 135 138* 145* 147 150* 168* 170 173* 184* 186 189* 204* 207 210* 224* 226 226 231* 239* 241 244* 256* 259 259* 263* 266 266* a_long_sw parameter bit(1) packed unaligned dcl 26 ref 23 124 a_queue_ctl_eindex parameter fixed bin(17,0) dcl 26 ref 23 89 98 addr builtin function dcl 67 ref 122 159 200 222 283 284 attach_descr 000106 automatic char(256) packed unaligned dcl 56 set ref 130* 133 133 attach_descr_len 000206 automatic fixed bin(17,0) dcl 56 set ref 130* 133 133 based_key based varying char(8) dcl 5-17 ref 222 cmcs_dir 14 based char(168) level 2 dcl 9-17 set ref 130* cmcs_error_table_$bad_call_parm 000044 external static fixed bin(35,0) dcl 3-5 ref 103 cmcs_status_list_ctl_$delete 000040 constant entry external dcl 2-61 ref 204 cmcs_status_list_ctl_$move 000042 constant entry external dcl 2-62 ref 168 control_hdr based structure level 1 dcl 1-11 control_ptrs 150 based structure level 2 dcl 9-17 count based fixed bin(17,0) level 2 in structure "status_list_ctl_entry" dcl 8-44 in procedure "cmcs_purge_queues_" ref 161 count 44 based fixed bin(17,0) array level 3 in structure "queue_ctl_entry" dcl 8-21 in procedure "cmcs_purge_queues_" set ref 124* 124* 124* 124* current_size 16 based fixed bin(18,0) level 3 dcl 8-13 ref 89 100 descr 6 000014 internal static structure level 2 packed packed unaligned dcl 54 set ref 182* descrs 1 based structure level 2 dcl 8-44 entries 40 based structure array level 2 dcl 8-13 set ref 122 error_table_$no_record 000036 external static fixed bin(35,0) dcl 64 ref 226 external_user_ctl_ptr 000064 external static pointer dcl 9-13 ref 86 280 f_descr 1 based structure level 3 dcl 8-44 ref 163 182 fb21 000104 automatic fixed bin(21,0) dcl 48 set ref 224* flags 1 000014 internal static structure level 2 packed packed unaligned dcl 54 hdr based structure level 2 dcl 8-13 i 000100 automatic fixed bin(17,0) dcl 30 set ref 161* init_sw based structure level 2 dcl 9-17 ioa_ 000032 constant entry external dcl 39 ref 124 ioa_$rsnnl 000034 constant entry external dcl 39 ref 130 iocb_ptr 000102 automatic pointer dcl 37 set ref 133* 145* 168* 184* 204* 224* 239* 256* 263* iox_$attach_name 000046 constant entry external dcl 4-3 ref 133 iox_$close 000050 constant entry external dcl 4-3 ref 256 iox_$control 000052 constant entry external dcl 4-3 ref 184 iox_$delete_record 000054 constant entry external dcl 4-3 ref 239 iox_$detach_iocb 000056 constant entry external dcl 4-3 ref 263 iox_$open 000060 constant entry external dcl 4-3 ref 145 iox_$seek_key 000062 constant entry external dcl 4-3 ref 224 key 000210 automatic varying char(256) dcl 5-10 set ref 222* 224* key_len 000311 automatic fixed bin(35,0) initial level 2 dcl 5-12 set ref 5-12* key_struc 000311 automatic structure level 1 dcl 5-12 set ref 222 locate_sw 1(03) 000014 internal static bit(1) level 3 packed packed unaligned dcl 54 set ref 287* msg_descr 000010 internal static structure level 1 packed packed unaligned dcl 44 set ref 163* 283 msg_descr_ptr 000012 internal static pointer dcl 46 set ref 168* 204* 283* msg_hdr based structure level 1 dcl 6-15 msg_hdr_ptr 000314 automatic pointer dcl 6-13 set ref 192* 199* 200 202 msg_no 1 000311 automatic fixed bin(35,0) level 2 in structure "key_struc" dcl 5-12 in procedure "cmcs_purge_queues_" set ref 217* 231* 244* msg_no 000105 automatic fixed bin(35,0) dcl 52 in procedure "cmcs_purge_queues_" set ref 202* 217 msg_no based fixed bin(35,0) level 2 in structure "msg_hdr" dcl 6-15 in procedure "cmcs_purge_queues_" ref 202 msg_seg based structure level 1 dcl 7-12 in procedure "cmcs_purge_queues_" msg_seg 31 based structure level 2 in structure "msg_hdr" dcl 6-15 in procedure "cmcs_purge_queues_" set ref 200 msg_seg_ptr 000316 automatic pointer dcl 7-10 set ref 193* 200* my_name 000002 constant char(18) initial packed unaligned dcl 32 set ref 138* 150* 173* 189* 210* 231* 244* 259* 266* null builtin function dcl 67 ref 133 133 138 138 150 150 173 173 189 189 192 193 210 210 231 231 244 244 259 259 266 266 overlay based fixed bin(35,0) array dcl 61 set ref 286* overlay_len 000207 automatic fixed bin(17,0) dcl 61 set ref 285* 286 purge_queues 7 based bit(1) level 3 dcl 9-17 set ref 86 290* queue_ctl based structure level 1 dcl 8-13 queue_ctl_eindex 000320 automatic fixed bin(17,0) dcl 8-17 set ref 89* 98* 100 100 122 queue_ctl_entry based structure level 1 dcl 8-21 queue_ctl_eptr 000322 automatic pointer dcl 8-19 set ref 122* 124 124 124 124 124 130 138 150 159 168* 204* 259 266 queue_ctl_ptr 150 based pointer level 3 in structure "user_ctl" dcl 9-17 in procedure "cmcs_purge_queues_" ref 281 queue_ctl_ptr 000024 internal static pointer dcl 8-11 in procedure "cmcs_purge_queues_" set ref 89 100 122 281* queue_name 16 based char(32) level 2 dcl 8-21 set ref 124* 130* 138* 150* 259* 266* rec_ptr 4 000014 internal static pointer level 2 dcl 54 set ref 199 seg_no 2 000311 automatic fixed bin(35,0) level 2 dcl 5-12 set ref 218* 220* 220 231* 244* size builtin function dcl 67 ref 285 static_vfile_rs 000014 internal static structure level 1 unaligned dcl 54 set ref 284 285 status_list_ctl_eindex 000324 automatic fixed bin(17,0) dcl 8-40 set ref 157* 159 166 204* 210* status_list_ctl_entries 44 based structure array level 2 dcl 8-21 set ref 159 status_list_ctl_entry based structure level 1 dcl 8-44 status_list_ctl_eptr 000326 automatic pointer dcl 8-42 set ref 159* 161 163 182 sub_err_ 000030 constant entry external dcl 34 ref 138 150 173 189 210 231 244 259 266 sub_err_retval 000101 automatic fixed bin(35,0) dcl 35 set ref 138* 150* 173* 189* 210* 231* 244* 259* 266* substr builtin function dcl 67 ref 133 133 switch_name 000000 constant char(7) initial packed unaligned dcl 59 set ref 133* user_ctl based structure level 1 dcl 9-17 user_ctl_ptr 000026 internal static pointer dcl 9-15 set ref 130 280* 281 290 version 000014 internal static fixed bin(17,0) level 2 dcl 54 set ref 288* vfile_descr 000332 automatic structure level 1 packed packed unaligned dcl 10-28 vfile_rs based structure level 1 dcl 10-13 vfile_rs_ptr 000330 automatic pointer dcl 10-11 set ref 184* 284* 286 vfile_rs_version constant fixed bin(17,0) initial dcl 10-9 ref 288 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. cmcs_create_queues_ 000000 constant entry external dcl 2-18 cmcs_date_time_ 000000 constant entry external dcl 2-20 cmcs_decode_status_ 000000 constant entry external dcl 2-22 cmcs_error_table_$ambiguous_tree_path external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$bad_dest external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$bad_dest_count external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$bad_message_length external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$bad_password external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$bad_queue_path external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$bad_slew external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$bad_source external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$bad_station external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$bad_term_devchn external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$bad_tree_path external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$dest_already_disabled external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$dest_already_enabled external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$dest_disabled external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$no_message external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$no_partial_messages external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$null_partial_message external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$queue_already_disabled external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$queue_already_enabled external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$queue_disabled external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$source_already_disabled external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$source_already_enabled external static fixed bin(35,0) dcl 3-5 cmcs_error_table_$source_disabled external static fixed bin(35,0) dcl 3-5 cmcs_expand_tree_path_ 000000 constant entry external dcl 2-24 cmcs_fillin_hdr_ 000000 constant entry external dcl 2-26 cmcs_initiate_ctl_ 000000 constant entry external dcl 2-28 cmcs_print_ 000000 constant entry external dcl 2-30 cmcs_purge_queues_ 000000 constant entry external dcl 2-32 cmcs_queue_ctl_$accept_message_count 000000 constant entry external dcl 2-34 cmcs_queue_ctl_$disable 000000 constant entry external dcl 2-35 cmcs_queue_ctl_$enable 000000 constant entry external dcl 2-36 cmcs_queue_ctl_$print 000000 constant entry external dcl 2-37 cmcs_queue_ctl_$purge 000000 constant entry external dcl 2-38 cmcs_queue_ctl_$receive 000000 constant entry external dcl 2-39 cmcs_queue_ctl_$send 000000 constant entry external dcl 2-40 cmcs_queue_ctl_$stop_run 000000 constant entry external dcl 2-41 cmcs_scramble_ 000000 constant entry external dcl 2-43 cmcs_set_lock_$lock 000000 constant entry external dcl 2-45 cmcs_set_lock_$unlock 000000 constant entry external dcl 2-46 cmcs_station_ctl_$attach 000000 constant entry external dcl 2-48 cmcs_station_ctl_$detach 000000 constant entry external dcl 2-49 cmcs_station_ctl_$detach_name 000000 constant entry external dcl 2-50 cmcs_station_ctl_$disable_input_terminal 000000 constant entry external dcl 2-51 cmcs_station_ctl_$disable_output_terminal 000000 constant entry external dcl 2-52 cmcs_station_ctl_$enable_input_terminal 000000 constant entry external dcl 2-53 cmcs_station_ctl_$enable_output_terminal 000000 constant entry external dcl 2-54 cmcs_station_ctl_$find_destination 000000 constant entry external dcl 2-55 cmcs_station_ctl_$input_disabled 000000 constant entry external dcl 2-56 cmcs_station_ctl_$output_disabled 000000 constant entry external dcl 2-57 cmcs_station_ctl_$validate 000000 constant entry external dcl 2-58 cmcs_status_list_ctl_$add 000000 constant entry external dcl 2-60 cmcs_terminal_ctl_$find 000000 constant entry external dcl 2-64 cmcs_tree_ctl_$find_destination 000000 constant entry external dcl 2-66 cmcs_tree_ctl_$find_index 000000 constant entry external dcl 2-67 cmcs_tree_ctl_$find_qual_name 000000 constant entry external dcl 2-69 cmcs_tree_ctl_$find_tree_path 000000 constant entry external dcl 2-68 cmcs_wait_ctl_$add 000000 constant entry external dcl 2-71 cmcs_wait_ctl_$clear_mp 000000 constant entry external dcl 2-77 cmcs_wait_ctl_$delete 000000 constant entry external dcl 2-72 cmcs_wait_ctl_$find 000000 constant entry external dcl 2-73 cmcs_wait_ctl_$mp_available 000000 constant entry external dcl 2-74 cmcs_wait_ctl_$mp_login 000000 constant entry external dcl 2-75 cmcs_wait_ctl_$mp_logout 000000 constant entry external dcl 2-76 cmcs_wait_ctl_$start_mp 000000 constant entry external dcl 2-78 cmcs_wait_ctl_$stop_mp 000000 constant entry external dcl 2-79 control_hdr_len internal static fixed bin(17,0) initial dcl 1-7 control_hdr_ptr automatic pointer dcl 1-9 fixed builtin function dcl 67 iox_$attach_iocb 000000 constant entry external dcl 4-3 iox_$error_output external static pointer dcl 4-25 iox_$find_iocb 000000 constant entry external dcl 4-3 iox_$get_chars 000000 constant entry external dcl 4-3 iox_$get_line 000000 constant entry external dcl 4-3 iox_$modes 000000 constant entry external dcl 4-3 iox_$position 000000 constant entry external dcl 4-3 iox_$put_chars 000000 constant entry external dcl 4-3 iox_$read_key 000000 constant entry external dcl 4-3 iox_$read_length 000000 constant entry external dcl 4-3 iox_$read_record 000000 constant entry external dcl 4-3 iox_$rewrite_record 000000 constant entry external dcl 4-3 iox_$user_input external static pointer dcl 4-25 iox_$user_io external static pointer dcl 4-25 iox_$user_output external static pointer dcl 4-25 iox_$write_record 000000 constant entry external dcl 4-3 msg_hdr_len internal static fixed bin(17,0) initial dcl 6-10 msg_hdr_version internal static fixed bin(17,0) initial dcl 6-10 msg_seg_hdr_len internal static fixed bin(17,0) initial dcl 7-7 msg_seg_version internal static fixed bin(17,0) initial dcl 7-7 queue_ctl_entry_len internal static fixed bin(17,0) initial dcl 8-7 queue_ctl_hdr_len internal static fixed bin(17,0) initial dcl 8-7 queue_ctl_version internal static fixed bin(17,0) initial dcl 8-7 seg_no automatic fixed bin(35,0) dcl 52 user_ctl_exists_sw internal static bit(1) initial dcl 9-11 NAMES DECLARED BY EXPLICIT CONTEXT. close 001404 constant label dcl 256 cmcs_purge_queues_ 000231 constant entry external dcl 23 detach 001471 constant label dcl 263 ref 153 end_count_loop 001367 constant label dcl 252 ref 176 195 213 226 235 pq_ret 001556 constant label dcl 270 ref 141 purge_queue 000304 constant entry internal dcl 117 ref 92 108 seg_delete_loop 001173 constant label dcl 220 ref 246 setup 001557 constant entry internal dcl 277 ref 86 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2022 2110 1620 2032 Length 2534 1620 66 407 201 20 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME cmcs_purge_queues_ 356 external procedure is an external procedure. purge_queue internal procedure shares stack frame of external procedure cmcs_purge_queues_. setup internal procedure shares stack frame of external procedure cmcs_purge_queues_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 msg_descr cmcs_purge_queues_ 000012 msg_descr_ptr cmcs_purge_queues_ 000014 static_vfile_rs cmcs_purge_queues_ 000024 queue_ctl_ptr cmcs_purge_queues_ 000026 user_ctl_ptr cmcs_purge_queues_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME cmcs_purge_queues_ 000100 i cmcs_purge_queues_ 000101 sub_err_retval cmcs_purge_queues_ 000102 iocb_ptr cmcs_purge_queues_ 000104 fb21 cmcs_purge_queues_ 000105 msg_no cmcs_purge_queues_ 000106 attach_descr cmcs_purge_queues_ 000206 attach_descr_len cmcs_purge_queues_ 000207 overlay_len cmcs_purge_queues_ 000210 key cmcs_purge_queues_ 000311 key_struc cmcs_purge_queues_ 000314 msg_hdr_ptr cmcs_purge_queues_ 000316 msg_seg_ptr cmcs_purge_queues_ 000320 queue_ctl_eindex cmcs_purge_queues_ 000322 queue_ctl_eptr cmcs_purge_queues_ 000324 status_list_ctl_eindex cmcs_purge_queues_ 000326 status_list_ctl_eptr cmcs_purge_queues_ 000330 vfile_rs_ptr cmcs_purge_queues_ 000332 vfile_descr cmcs_purge_queues_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cmcs_status_list_ctl_$delete cmcs_status_list_ctl_$move ioa_ ioa_$rsnnl iox_$attach_name iox_$close iox_$control iox_$delete_record iox_$detach_iocb iox_$open iox_$seek_key sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. cmcs_error_table_$bad_call_parm error_table_$no_record external_user_ctl_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000225 5 12 000236 86 000240 89 000245 92 000261 94 000262 98 000265 100 000266 103 000274 104 000277 108 000300 112 000301 113 000303 117 000304 122 000305 124 000313 130 000355 133 000416 135 000460 138 000464 141 000534 145 000535 147 000556 150 000561 153 000631 157 000632 159 000636 161 000643 163 000653 166 000661 168 000664 170 000711 173 000714 176 000757 179 000760 182 000761 184 000765 186 001015 189 001020 192 001063 193 001065 195 001066 199 001067 200 001072 202 001075 204 001077 207 001115 210 001120 213 001167 217 001170 218 001172 220 001173 222 001177 224 001204 226 001222 231 001230 235 001300 239 001301 241 001312 244 001315 246 001366 252 001367 254 001371 256 001404 259 001416 263 001471 266 001503 270 001556 277 001557 280 001560 281 001564 283 001567 284 001571 285 001573 286 001575 287 001607 288 001612 290 001614 291 001617 ----------------------------------------------------------- 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