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