1 /*        BEGIN INCLUDE FILE probe_info.incl.pl1            */
 2 
 3 
 4 
 5 /****^  HISTORY COMMENTS:
 6   1) change(88-10-24,WAAnderson), approve(88-10-24,MCR7952),
 7      audit(88-10-24,RWaters), install(88-10-27,MR12.2-1194):
 8      Added field 'retry_using_main' to add new C feature.
 9                                                    END HISTORY COMMENTS */
10 
11 
12 /* Created: 04/22/79 W. Olin Sibert, from subsystem_info
13    Modified: 22 Sept 79 JRd to remove:  default (ptr & (auto|based)) init (null ());
14    Added flags.setting_break 08/22/83 Steve Herbst
15    Added flags.executing_quit_request 01/15/85 Steve Herbst
16 */
17 
18 dcl 1 probe_info aligned based (probe_info_ptr),            /* standard data for a probe invocation */
19     2 probe_info_version fixed bin,                         /* version of this structure */
20 
21     2 static_info_ptr pointer unaligned,                    /* pointer to static information structure */
22     2 modes_ptr pointer unaligned,                          /* pointer to probe_modes structure */
23 
24     2 ptr_to_current_source ptr,                            /* current_source is based on this */
25     2 ptr_to_initial_source ptr,                            /* initial_source is based on this */
26     2 machine_cond_ptr pointer,                             /* pointer to machine conditions, if we faulted to get here */
27 
28     2 token_info aligned,                                   /* information about token chain currently being processed */
29       3 first_token pointer unaligned,                      /* first token in chain */
30       3 ct pointer unaligned,                               /* pointer to current token; updated in MANY places */
31       3 end_token bit (18) aligned,                         /* token type at which to stop scanning token chain */
32       3 buffer_ptr pointer unaligned,                       /* pointer to input buffer */
33       3 buffer_lth fixed bin (21),                          /* and length */
34 
35     2 random_info aligned,
36       3 current_stack_frame pointer unaligned,              /* stack frame pointer for frame in which probe was invoked */
37       3 input_type fixed bin,                               /* current input type */
38       3 language_type fixed bin,                            /* current language being processed */
39       3 return_method fixed bin,                            /* how we should return after exiting probe */
40       3 entry_method fixed bin,                             /* how we got here in the first place */
41       3 pad1 (19) bit (36) aligned,
42 
43     2 break_info,                                           /* break info -- only interesting if we got here via a break */
44       3 break_slot_ptr pointer,                             /* pointer to break slot -- non-null IFF at a break */
45       3 last_break_slot_ptr pointer unaligned,              /* pointer to previous break slot, not presently used */
46       3 break_reset bit (1) aligned,                        /* this break has been reset by somebody further on */
47       3 real_break_return_loc pointer,                      /* where to REALLY return to, modulo previous bit */
48 
49     2 probe_area_info,                                      /* information about various probe areas */
50       3 break_segment_ptr pointer unaligned,                /* pointer to Personid.probe */
51       3 break_area_ptr pointer unaligned,                   /* pointer to area in break segment */
52       3 scratch_area_ptr pointer unaligned,                 /* pointer to probe scratch seg in process dir */
53       3 probe_area_ptr pointer unaligned,                   /* This area lasts as long as an invocation of probe. */
54       3 work_area_ptr pointer unaligned,                    /* This area lasts as long as the current request line */
55       3 expression_area_ptr pointer unaligned,              /* This area lasts as long as the current command */
56 
57     2 flags aligned,                                        /* this, in particular, should be saved and restored correctly */
58      (3 execute,                                            /* "1"b => execute requests, "0"b => just check syntax */
59       3 in_listener,                                        /* ON => in probe listener loop */
60       3 executing_request,                                  /* ON => executing a request */
61       3 in_interpret_line,                                  /* executing in probe_listen_$interpret_line */
62       3 setting_break,                                      /* executing "after" or "before": check syntax of "if" */
63       3 executing_quit_request,                             /* to prevent error looping during "quit" request */
64       3 pad (30)) bit (1) unaligned,
65 
66     2 io_switches,                                          /* switches probe will do normal I/O on */
67       3 input_switch pointer,
68       3 output_switch pointer,
69 
70     2 error_info,                                           /* information about the last error saved for later printing */
71       3 error_code fixed bin (35),
72       3 error_message char (300) varying,
73 
74     2 listener_info,                                        /* internal use by probe listener */
75       3 request_name character (32) varying,                /* primary name of the request being processed */
76       3 abort_probe_label label variable,
77       3 abort_line_label label variable,
78       3 depth fixed binary,                                 /* count of active invocations of probe */
79       3 previous pointer unaligned,                         /* -> previous invocation's info */
80       3 next pointer unaligned,
81 
82     2 end_of_probe_info pointer aligned,
83     2 retry_using_main fixed bin aligned;
84 
85 
86 dcl  probe_info_ptr pointer;
87 
88 dcl  probe_info_version fixed bin static options (constant) initial (1);
89 
90 dcl  probe_info_version_1 fixed bin static options (constant) initial (1);
91 
92 dcl  scratch_area area based (probe_info.scratch_area_ptr);
93 dcl  probe_area area based (probe_info.probe_area_ptr);
94 dcl  work_area area based (probe_info.work_area_ptr);
95 dcl  expression_area area based (probe_info.expression_area_ptr);
96 
97 /*        END INCLUDE FILE probe_info.incl.pl1              */