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