ack/util/int/rsb.h

35 lines
932 B
C
Raw Normal View History

1994-06-24 11:31:16 +00:00
/* $Id$ */
1988-06-22 16:57:09 +00:00
/* The Return Status Block contains, in push order:
FIL, LIN, LB, PC, PI, rsbcode
In a trap this is preceeded by:
FRA, FRASize, FRA_def, trap_nr
*/
/* offsets to be added to a local base */
extern int rsb_rsbcode;
extern int rsb_PI;
extern int rsb_PC;
extern int rsb_LB;
extern int rsb_LIN;
extern int rsb_FIL;
extern int rsbsize;
/* The last item stored in the Return Status Block is a word containing
a code describing the type of the RSB.
*/
#define RSBMASK 0xfff0
#define RSBCODE 0x2b90 /* 0rrr rrrr rrrr 0000, r = random */
#define RSB_STP (RSBCODE + 1) /* in first RSB */
#define RSB_CAL (RSBCODE + 2) /* in RSB from call */
#define RSB_RTT (RSBCODE + 3) /* in RSB from returnable trap */
#define RSB_NRT (RSBCODE + 4) /* in RSB from non-returnable trap */
#define is_LB(p) ((st_lds(p+rsb_rsbcode, wsize) & RSBMASK) == RSBCODE)
2019-03-17 14:42:00 +00:00
void init_rsb(void);
void pushrsb(int rsbcode);
int poprsb(int rtt);