1*22770Smckusick/*
2*22770Smckusick * Copyright (c) 1982 Regents of the University of California.
3*22770Smckusick * All rights reserved.  The Berkeley software License Agreement
4*22770Smckusick * specifies the terms and conditions for redistribution.
5*22770Smckusick */
65518Slinton
7*22770Smckusick#ifndef lint
8*22770Smckusickstatic char sccsid[] = "@(#)frame.rep	5.1 (Berkeley) 06/07/85";
9*22770Smckusick#endif not lint
105518Slinton
115518Slinton/*
125518Slinton * Definitions for accessing stack frames.
135518Slinton */
145518Slinton
155518Slinton#define MAINBLK		1
165518Slinton
175518Slinton/*
185518Slinton * Structure of an activation record's block mark.  See the
195518Slinton * PX implementation notes for more details.
205518Slinton */
215518Slinton
225518Slintonstruct frame {
235518Slinton	ADDRESS stackref;	/* for px self-checking */
245518Slinton	ADDRESS file;		/* current file information */
255518Slinton	ADDRESS blockp;		/* pointer to current block name */
265518Slinton	ADDRESS *save_loc;	/* saved local variable pointer */
275518Slinton	ADDRESS *save_disp;	/* saved dp contents */
285518Slinton	ADDRESS *save_dp;	/* saved dp */
295518Slinton	ADDRESS save_pc;	/* saved location counter */
305518Slinton	int save_lino;		/* saved source line number (never used) */
315518Slinton};
325518Slinton
335518SlintonFRAME *curframe();		/* get the currently active frame */
345518SlintonFRAME *nextframe();		/* go up the stack */
355518SlintonFRAME *findframe();		/* find the frame for a given function */
365518SlintonADDRESS entry();		/* get the entry address for a frame */
375518SlintonADDRESS *dispval();		/* display associated with a given block */
385518SlintonADDRESS *curdp();		/* return current display pointer */
395518SlintonADDRESS *contents();		/* return the contents of display pointer */
405518SlintonADDRESS stkaddr();		/* stack address associated with a frame */
41