--- scrt/heap.c.orig Tue Feb 23 01:11:33 1993 +++ scrt/heap.c Wed Feb 2 22:22:22 2000 @@ -66,6 +66,9 @@ #ifdef VAX extern sc_r2tor11( ); #endif +#ifdef FREEBSD +extern sc_geti386regs( S2CINT* a ); +#endif /* Forward declarations */ @@ -368,6 +371,31 @@ S2CINT r2tor11[10], *pp; sc_r2tor11( r2tor11 ); + STACKPTR( pp ); + while (pp != sc_stackbase) move_continuation_ptr( ((SCP)*pp++) ); +} +#endif + +#ifdef FREEBSD +/* The following code is used to read the stack pointer. The register + number is passed in to force an argument to be on the stack, which in + turn can be used to find the address of the top of stack. +*/ + +S2CINT *sc_processor_register( S2CINT reg ) +{ + return( ® ); +} + +/* All processor registers which might contain pointers are traced by the + following procedure. +*/ + +static trace_stack_and_registers() +{ + S2CINT i386regs[6], *pp; + + sc_geti386regs( i386regs ); STACKPTR( pp ); while (pp != sc_stackbase) move_continuation_ptr( ((SCP)*pp++) ); }