1/* 2 * Copyright (c) 1982 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 */ 6 7#ifndef lint 8static char sccsid[] = "@(#)frame.rep 5.1 (Berkeley) 06/07/85"; 9#endif not lint 10 11/* 12 * Definitions for accessing stack frames. 13 */ 14 15#define MAINBLK 1 16 17/* 18 * Structure of an activation record's block mark. See the 19 * PX implementation notes for more details. 20 */ 21 22struct frame { 23 ADDRESS stackref; /* for px self-checking */ 24 ADDRESS file; /* current file information */ 25 ADDRESS blockp; /* pointer to current block name */ 26 ADDRESS *save_loc; /* saved local variable pointer */ 27 ADDRESS *save_disp; /* saved dp contents */ 28 ADDRESS *save_dp; /* saved dp */ 29 ADDRESS save_pc; /* saved location counter */ 30 int save_lino; /* saved source line number (never used) */ 31}; 32 33FRAME *curframe(); /* get the currently active frame */ 34FRAME *nextframe(); /* go up the stack */ 35FRAME *findframe(); /* find the frame for a given function */ 36ADDRESS entry(); /* get the entry address for a frame */ 37ADDRESS *dispval(); /* display associated with a given block */ 38ADDRESS *curdp(); /* return current display pointer */ 39ADDRESS *contents(); /* return the contents of display pointer */ 40ADDRESS stkaddr(); /* stack address associated with a frame */ 41