1*5518Slinton/* Copyright (c) 1982 Regents of the University of California */ 2*5518Slinton 3*5518Slintonstatic char sccsid[] = "@(#)frame.rep 1.1 01/18/82"; 4*5518Slinton 5*5518Slinton/* 6*5518Slinton * Definitions for accessing stack frames. 7*5518Slinton */ 8*5518Slinton 9*5518Slinton#define MAINBLK 1 10*5518Slinton 11*5518Slinton/* 12*5518Slinton * Structure of an activation record's block mark. See the 13*5518Slinton * PX implementation notes for more details. 14*5518Slinton */ 15*5518Slinton 16*5518Slintonstruct frame { 17*5518Slinton ADDRESS stackref; /* for px self-checking */ 18*5518Slinton ADDRESS file; /* current file information */ 19*5518Slinton ADDRESS blockp; /* pointer to current block name */ 20*5518Slinton ADDRESS *save_loc; /* saved local variable pointer */ 21*5518Slinton ADDRESS *save_disp; /* saved dp contents */ 22*5518Slinton ADDRESS *save_dp; /* saved dp */ 23*5518Slinton ADDRESS save_pc; /* saved location counter */ 24*5518Slinton int save_lino; /* saved source line number (never used) */ 25*5518Slinton}; 26*5518Slinton 27*5518SlintonFRAME *curframe(); /* get the currently active frame */ 28*5518SlintonFRAME *nextframe(); /* go up the stack */ 29*5518SlintonFRAME *findframe(); /* find the frame for a given function */ 30*5518SlintonADDRESS entry(); /* get the entry address for a frame */ 31*5518SlintonADDRESS *dispval(); /* display associated with a given block */ 32*5518SlintonADDRESS *curdp(); /* return current display pointer */ 33*5518SlintonADDRESS *contents(); /* return the contents of display pointer */ 34*5518SlintonADDRESS stkaddr(); /* stack address associated with a frame */ 35