1/*
2 * Copyright (c) 1982 Regents of the University of California.
3 * All rights reserved.  The Berkeley software License Agreement
4 * specifies the terms and conditions for redistribution.
5 */
6
7#ifndef lint
8static char sccsid[] = "@(#)frame.rep	5.1 (Berkeley) 06/07/85";
9#endif not lint
10
11/*
12 * Definitions for accessing stack frames.
13 */
14
15#define MAINBLK		1
16
17/*
18 * Structure of an activation record's block mark.  See the
19 * PX implementation notes for more details.
20 */
21
22struct frame {
23	ADDRESS stackref;	/* for px self-checking */
24	ADDRESS file;		/* current file information */
25	ADDRESS blockp;		/* pointer to current block name */
26	ADDRESS *save_loc;	/* saved local variable pointer */
27	ADDRESS *save_disp;	/* saved dp contents */
28	ADDRESS *save_dp;	/* saved dp */
29	ADDRESS save_pc;	/* saved location counter */
30	int save_lino;		/* saved source line number (never used) */
31};
32
33FRAME *curframe();		/* get the currently active frame */
34FRAME *nextframe();		/* go up the stack */
35FRAME *findframe();		/* find the frame for a given function */
36ADDRESS entry();		/* get the entry address for a frame */
37ADDRESS *dispval();		/* display associated with a given block */
38ADDRESS *curdp();		/* return current display pointer */
39ADDRESS *contents();		/* return the contents of display pointer */
40ADDRESS stkaddr();		/* stack address associated with a frame */
41