1 "         BEGIN INCLUDE FILE ... stack_header.incl.alm  3/72  Bill Silver
 2 "
 3 "         modified 7/76 by M. Weaver for *system links and more system use of areas
 4 "         modified 3/77 by M. Weaver  to add rnt_ptr
 5 "         modified 7/77 by S. Webber to add run_unit_depth and assign_linkage_ptr
 6 "         modified 6/83 by J. Ives to add trace_frames and in_trace.
 7 
 8 " HISTORY COMMENTS:
 9 "  1) change(86-06-24,DGHowe), approve(86-06-24,MCR7396),
10 "     audit(86-08-05,Schroth), install(86-11-03,MR12.0-1206):
11 "     added the heap_header_ptr definition
12 "  2) change(86-08-12,Kissel), approve(86-08-12,MCR7473),
13 "     audit(86-10-10,Fawcett), install(86-11-03,MR12.0-1206):
14 "     Modified to support control point management.  These changes were
15 "     actually made in February 1985 by G. Palter.
16 "  3) change(86-10-22,Fawcett), approve(86-10-22,MCR7473),
17 "     audit(86-10-22,Farley), install(86-11-03,MR12.0-1206):
18 "     Remove the old_lot pointer and replace it with cpm_data_ptr. Use the 18
19 "     bit pad after cur_lot_size for the cpm_enabled. This was done to save
20 "     some space int the stack header and change the cpd_ptr unal to
21 "     cpm_data_ptr (ITS pair).
22 "                                                      END HISTORY COMMENTS
23 
24           equ       stack_header.cpm_data_ptr,4             ptr to control point for this stack
25           equ       stack_header.combined_stat_ptr,6        ptr to separate static area
26 
27           equ       stack_header.clr_ptr,8                  ptr to area containing linkage sections
28           equ       stack_header.max_lot_size,10            number of words allowed in lot (DU)
29           equ       stack_header.main_proc_invoked,10       nonzero if main proc was invoked in run unit (DL)
30           equ       stack_header.run_unit_depth,10          number of active run units stacked (DL)
31           equ       stack_header.cur_lot_size,11            DU number of words (entries) in lot
32           equ       stack_header.cpm_enabled,11             DL  non-zero if control point management is enabled
33           equ       stack_header.system_free_ptr,12         ptr to system storage area
34           equ       stack_header.user_free_ptr,14           ptr to user storage area
35 
36           equ       stack_header.parent_ptr,16              ptr to parent stack or null
37           equ       stack_header.stack_begin_ptr,18         ptr to first stack frame
38           equ       stack_header.stack_end_ptr,20           ptr to next useable stack frame
39           equ       stack_header.lot_ptr,22                 ptr to the lot for the current ring
40 
41           equ       stack_header.signal_ptr,24              ptr to signal proc for current ring
42           equ       stack_header.bar_mode_sp,26             value of sp before entering bar mode
43           equ       stack_header.pl1_operators_ptr,28       ptr: pl1_operators_$operator_table
44           equ       stack_header.call_op_ptr,30             ptr to standard call operator
45 
46           equ       stack_header.push_op_ptr,32             ptr to standard push operator
47           equ       stack_header.return_op_ptr,34           ptr to standard return operator
48           equ       stack_header.ret_no_pop_op_ptr,36       ptr: stand. return/ no pop operator
49           equ       stack_header.entry_op_ptr,38            ptr to standard entry operator
50 
51           equ       stack_header.trans_op_tv_ptr,40         ptr to table of translator operator ptrs
52           equ       stack_header.isot_ptr,42                pointer to ISOT
53           equ       stack_header.sct_ptr,44                 pointer to System Condition Table
54           equ       stack_header.unwinder_ptr,46            pointer to unwinder for current ring
55 
56           equ       stack_header.sys_link_info_ptr,48       ptr to *system link name table
57           equ       stack_header.rnt_ptr,50                 ptr to reference name table
58           equ       stack_header.ect_ptr,52                 ptr to event channel table
59           equ       stack_header.assign_linkage_ptr,54      ptr to area for hcs_$assign_linkage calls
60           equ       stack_header.heap_header_ptr,56         ptr to heap header.
61           equ       stack_header.trace_frames,58            stack of trace_catch_ frames
62           equ       stach_header.trace_top_ptr,59           trace pointer
63           equ       stack_header.in_trace,60                trace antirecurse bit
64           equ       stack_header_end,64                     length of stack header
65 
66 
67 
68 
69           equ       trace_frames.count,0                    number of trace frames on stack
70           equ       trace_frames.top_ptr,1                  packed pointer to top one
71 
72 "         The  following constant is an offset within the  pl1  operators table.
73 "         It  references a  transfer vector table.
74 
75           bool      tv_offset,551
76 
77 
78 "         The  following constants are offsets within this transfer vector table.
79 
80           equ       call_offset,tv_offset+271
81           equ       push_offset,tv_offset+272
82           equ       return_offset,tv_offset+273
83           equ       return_no_pop_offset,tv_offset+274
84           equ       entry_offset,tv_offset+275
85 
86 
87 "         END INCLUDE FILE stack_header.incl.alm