date and time created 82/01/18 19:21:06 by linton
authorMark Linton <linton@ucbvax.Berkeley.EDU>
Tue, 19 Jan 1982 11:21:06 +0000 (03:21 -0800)
committerMark Linton <linton@ucbvax.Berkeley.EDU>
Tue, 19 Jan 1982 11:21:06 +0000 (03:21 -0800)
SCCS-vsn: usr.bin/pascal/pdx/runtime/frame.rep 1.1

usr/src/usr.bin/pascal/pdx/runtime/frame.rep [new file with mode: 0644]

diff --git a/usr/src/usr.bin/pascal/pdx/runtime/frame.rep b/usr/src/usr.bin/pascal/pdx/runtime/frame.rep
new file mode 100644 (file)
index 0000000..4ba34a7
--- /dev/null
@@ -0,0 +1,34 @@
+/* Copyright (c) 1982 Regents of the University of California */
+
+static char sccsid[] = "@(#)frame.rep 1.1 %G%";
+
+/*
+ * Definitions for accessing stack frames.
+ */
+
+#define MAINBLK                1
+
+/*
+ * Structure of an activation record's block mark.  See the
+ * PX implementation notes for more details.
+ */
+
+struct frame {
+       ADDRESS stackref;       /* for px self-checking */
+       ADDRESS file;           /* current file information */
+       ADDRESS blockp;         /* pointer to current block name */
+       ADDRESS *save_loc;      /* saved local variable pointer */
+       ADDRESS *save_disp;     /* saved dp contents */
+       ADDRESS *save_dp;       /* saved dp */
+       ADDRESS save_pc;        /* saved location counter */
+       int save_lino;          /* saved source line number (never used) */
+};
+
+FRAME *curframe();             /* get the currently active frame */
+FRAME *nextframe();            /* go up the stack */
+FRAME *findframe();            /* find the frame for a given function */
+ADDRESS entry();               /* get the entry address for a frame */
+ADDRESS *dispval();            /* display associated with a given block */
+ADDRESS *curdp();              /* return current display pointer */
+ADDRESS *contents();           /* return the contents of display pointer */
+ADDRESS stkaddr();             /* stack address associated with a frame */