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