|
|
1.1 ! root 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: * @(#)frame.rep 5.2 (Berkeley) 6/7/85 ! 7: */ ! 8: ! 9: /* ! 10: * Definitions for accessing stack frames. ! 11: */ ! 12: ! 13: #define MAINBLK 1 ! 14: ! 15: /* ! 16: * Structure of an activation record's block mark. See the ! 17: * PX implementation notes for more details. ! 18: */ ! 19: ! 20: struct frame { ! 21: ADDRESS stackref; /* for px self-checking */ ! 22: ADDRESS file; /* current file information */ ! 23: ADDRESS blockp; /* pointer to current block name */ ! 24: ADDRESS *save_loc; /* saved local variable pointer */ ! 25: ADDRESS *save_disp; /* saved dp contents */ ! 26: ADDRESS *save_dp; /* saved dp */ ! 27: ADDRESS save_pc; /* saved location counter */ ! 28: int save_lino; /* saved source line number (never used) */ ! 29: }; ! 30: ! 31: FRAME *curframe(); /* get the currently active frame */ ! 32: FRAME *nextframe(); /* go up the stack */ ! 33: FRAME *findframe(); /* find the frame for a given function */ ! 34: ADDRESS entry(); /* get the entry address for a frame */ ! 35: ADDRESS *dispval(); /* display associated with a given block */ ! 36: ADDRESS *curdp(); /* return current display pointer */ ! 37: ADDRESS *contents(); /* return the contents of display pointer */ ! 38: ADDRESS stkaddr(); /* stack address associated with a frame */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.