Commit | Line | Data |
---|---|---|
50ad1403 KM |
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. | |
ef739be6 KM |
5 | * |
6 | * @(#)frame.rep 5.2 (Berkeley) %G% | |
50ad1403 | 7 | */ |
c6327a22 | 8 | |
c6327a22 ML |
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 */ |