148095Sbostic/*-
2*62145Sbostic * Copyright (c) 1980, 1993
3*62145Sbostic *	The Regents of the University of California.  All rights reserved.
422779Smckusick *
548095Sbostic * %sccs.include.redist.c%
648095Sbostic *
7*62145Sbostic *	@(#)frame.rep	8.1 (Berkeley) 06/06/93
822770Smckusick */
95518Slinton
105518Slinton/*
115518Slinton * Definitions for accessing stack frames.
125518Slinton */
135518Slinton
145518Slinton#define MAINBLK		1
155518Slinton
165518Slinton/*
175518Slinton * Structure of an activation record's block mark.  See the
185518Slinton * PX implementation notes for more details.
195518Slinton */
205518Slinton
215518Slintonstruct frame {
225518Slinton	ADDRESS stackref;	/* for px self-checking */
235518Slinton	ADDRESS file;		/* current file information */
245518Slinton	ADDRESS blockp;		/* pointer to current block name */
255518Slinton	ADDRESS *save_loc;	/* saved local variable pointer */
265518Slinton	ADDRESS *save_disp;	/* saved dp contents */
275518Slinton	ADDRESS *save_dp;	/* saved dp */
285518Slinton	ADDRESS save_pc;	/* saved location counter */
295518Slinton	int save_lino;		/* saved source line number (never used) */
305518Slinton};
315518Slinton
325518SlintonFRAME *curframe();		/* get the currently active frame */
335518SlintonFRAME *nextframe();		/* go up the stack */
345518SlintonFRAME *findframe();		/* find the frame for a given function */
355518SlintonADDRESS entry();		/* get the entry address for a frame */
365518SlintonADDRESS *dispval();		/* display associated with a given block */
375518SlintonADDRESS *curdp();		/* return current display pointer */
385518SlintonADDRESS *contents();		/* return the contents of display pointer */
395518SlintonADDRESS stkaddr();		/* stack address associated with a frame */
40