1 /* BEGIN INCLUDE FILE ... _ssu_sci.incl.pl1 */ 2 /* Created: 31 April 1980 by W. Olin Sibert */ 3 /* Modified: 17 November 1981 by Jay Pattin to add info_prefix */ 4 /* Modified: 10 December 1981 by G. Palter to make arg_count, arg_ptr, return_arg, and arg_list_ptr replaceable */ 5 /* Modified: 10 February 1982 by G. Palter to reorganize and make changes required for installation */ 6 /* Modified: June 1982 by G. Palter for version 2 (new request processor options and replaceable procedures) */ 7 /* Modified: 6 November 1984 by G. Palter for version 3 (get_subsystem_and_request_name is now replaceable) */ 8 9 /* format: style4,^delnl */ 10 11 12 /* Structure used internally by subsystem utilities to contain control information about a single invocation */ 13 14 dcl 1 sci aligned based (sci_ptr), 15 2 version character (8), 16 2 parent_area_ptr pointer, /* -> area holding this data and referenced structures */ 17 18 2 global_info, /* global information about this subsystem ... */ 19 3 subsystem_name char (32) unaligned, /* ... its name (eg: read_mail) */ 20 3 subsystem_version char (32) unaligned, /* ... its version numer (eg: 4.3j) */ 21 3 info_ptr pointer, /* ... -> data maintained by the subsystem */ 22 3 standalone_abort_entry entry () variable, /* ... for standalone invocations: called by ssu_$abort_* */ 23 3 flags, 24 4 standalone_invocation bit (1) unaligned, /* ... ON => ssu_$standalone_invocation was used */ 25 4 in_listener bit (1) unaligned, /* ... ON => in subsystem listener loop */ 26 4 executing_request bit (1) unaligned, /* ... ON => executing a request */ 27 4 debug_mode bit (1) unaligned, /* ... ON => debugging the subsystem */ 28 4 pad bit (32) unaligned, 29 30 2 recursion_info, /* describes relationship of this invocation to other active 31 invocations of the same subsystem ... */ 32 3 invocation_data_idx fixed binary, /* ... locates the list of active invocations */ 33 3 level fixed binary, /* ... # of active invocations when this one created + 1 */ 34 3 previous_sci_ptr pointer, /* ... -> description of previous invocation */ 35 3 next_sci_ptr pointer, /* ... -> description of next invocation */ 36 37 2 request_processor_info, /* information related to request line processing ... */ 38 3 request_tables_ptr pointer, /* ... -> list of request tables in use */ 39 3 rp_options_ptr pointer, /* ... -> options controlling the processor */ 40 3 abort_line_label label variable, 41 3 request_data_ptr pointer, /* ... -> request_data structure for current request */ 42 43 2 prompt_and_ready_info, /* information related to prompts and ready messages ... */ 44 3 prompt character (64) varying, /* the prompt (if any): an ioa_ control string */ 45 3 prompt_mode, /* controls prompting ... */ 46 4 dont_prompt bit (1) unaligned, /* ... ON => never prompt */ 47 4 prompt_after_null_lines bit (1) unaligned, /* ... ON => prompt after a blank line if prompts enabled */ 48 4 dont_prompt_if_typeahead bit (1) unaligned, /* ... ON => suppress prompts if request line available */ 49 4 pad bit (33) unaligned, 50 3 ready_enabled bit (1) aligned, /* ... ON => ready procedure should be invoked */ 51 52 2 listener_info, /* information used by the listener ... */ 53 3 abort_subsystem_label label variable, 54 3 temp_seg_ptr pointer, /* ... -> temporary segment used for long request lines */ 55 56 2 temp_info_ptr pointer, /* pointer to data used by ssu_temp_mgr_ */ 57 58 2 info_info, /* information related to self-documentation ... */ 59 3 info_dirs_ptr pointer, /* ... -> list of info directories */ 60 3 info_prefix character (32), /* ... prefix used to form info segment names */ 61 62 2 ec_info, /* data for subsystem exec_com processing ... */ 63 3 ec_suffix char (32) unaligned, /* ... suffix of exec_com segments */ 64 3 ec_search_list char (32) unaligned, /* ... search list used to find exec_coms */ 65 3 subsystem_dir_ptr pointer, /* ... defines referencing_dir rule for above search list */ 66 67 2 entries, /* all replaceable entries ... */ 68 ( 69 3 abort_line, /* ... invoked by ssu_$abort_line */ 70 3 abort_subsystem, /* ... invoked by ssu_$abort_subsystem */ 71 3 print_message, /* ... invoked by ssu_$print_message */ 72 3 program_interrupt, /* ... cannot be called externally */ 73 3 pre_request_line, /* ... cannot be called externally */ 74 3 post_request_line, /* ... cannot be called externally */ 75 3 ready, /* ... invoked by ssu_$ready_proc */ 76 3 cpescape, /* ... cannot be called externally */ 77 3 unknown_request, /* ... invoked by ssu_$unknown_request */ 78 3 listen, /* ... invoked by ssu_$listen */ 79 3 execute_line, /* ... invoked by ssu_$execute_line */ 80 3 evaluate_active_string, /* ... invoked by ssu_$evaluate_active_string */ 81 3 invoke_request, /* ... invoked by ssu_$invoke_request */ 82 3 locate_request, /* ... invoked by ssu_$locate_request */ 83 3 arg_count, /* ... invoked by ssu_$arg_count */ 84 3 arg_ptr, /* ... invoked by ssu_$arg_ptr */ 85 3 return_arg, /* ... invoked by ssu_$return_arg */ 86 3 arg_list_ptr, /* ... invoked by ssu_$arg_list_ptr */ 87 3 get_default_rp_options, /* ... invoked by ssu_$get_default_rp_options */ 88 3 get_rp_options, /* ... invoked by ssu_$get_request_processor_options */ 89 3 set_rp_options, /* ... invoked by ssu_$set_request_processor_options */ 90 3 reset_rp_options, /* ... invoked by ssu_$reset_request_processor_options */ 91 3 get_subsys_and_request_name /* ... invoked by ssu_$get_subsystem_and_request_name */ 92 ) entry () variable options (variable); 93 94 dcl sci_ptr pointer; 95 96 dcl sci_parent_area area based (sci.parent_area_ptr); 97 98 dcl SCI_VERSION_3 character (8) static options (constant) init ("sci_0003"); 99 100 /* END INCLUDE FILE ... _ssu_sci.incl.pl1 */