1*5518Slinton/* Copyright (c) 1982 Regents of the University of California */
2*5518Slinton
3*5518Slintonstatic char sccsid[] = "@(#)frame.rep 1.1 01/18/82";
4*5518Slinton
5*5518Slinton/*
6*5518Slinton * Definitions for accessing stack frames.
7*5518Slinton */
8*5518Slinton
9*5518Slinton#define MAINBLK		1
10*5518Slinton
11*5518Slinton/*
12*5518Slinton * Structure of an activation record's block mark.  See the
13*5518Slinton * PX implementation notes for more details.
14*5518Slinton */
15*5518Slinton
16*5518Slintonstruct frame {
17*5518Slinton	ADDRESS stackref;	/* for px self-checking */
18*5518Slinton	ADDRESS file;		/* current file information */
19*5518Slinton	ADDRESS blockp;		/* pointer to current block name */
20*5518Slinton	ADDRESS *save_loc;	/* saved local variable pointer */
21*5518Slinton	ADDRESS *save_disp;	/* saved dp contents */
22*5518Slinton	ADDRESS *save_dp;	/* saved dp */
23*5518Slinton	ADDRESS save_pc;	/* saved location counter */
24*5518Slinton	int save_lino;		/* saved source line number (never used) */
25*5518Slinton};
26*5518Slinton
27*5518SlintonFRAME *curframe();		/* get the currently active frame */
28*5518SlintonFRAME *nextframe();		/* go up the stack */
29*5518SlintonFRAME *findframe();		/* find the frame for a given function */
30*5518SlintonADDRESS entry();		/* get the entry address for a frame */
31*5518SlintonADDRESS *dispval();		/* display associated with a given block */
32*5518SlintonADDRESS *curdp();		/* return current display pointer */
33*5518SlintonADDRESS *contents();		/* return the contents of display pointer */
34*5518SlintonADDRESS stkaddr();		/* stack address associated with a frame */
35