/* Copyright (c) 1993 Xerox Corporation. All rights reserved. */ /* $Id$ $Date$ * * PCR Debugger public interface. */ #ifndef __PCR_Dbg_h #define __PCR_Dbg_h 1 #include #include /* * Debugger client (debuggee) */ extern long PCR_Dbg_Call(PCR_Any key, PCR_Any arg); /* Invoke the debugger. The value of key identifies the (real) type of arg. Caller is suspended in such a way that its state may be examined (or even modified) by the debugger. */ /* * Debugger */ struct PCR_Dbg_CallInfoRep { PCR_Th_T *ci_t; PCR_Any ci_key; PCR_Any ci_arg; }; typedef struct PCR_Dbg_CallInfoRep PCR_Dbg_CallInfo; extern PCR_ERes PCR_Dbg_AwaitCall( PCR_Dbg_CallInfo **cip, const PCR_sigset_t *sigMask, PCR_Msec wakeup ); /* Wait for a thread to call debugger, fill in *cip. Success: PCR_ERes_okay Failure: PCR_ETIMEDOUT */ extern PCR_ERes PCR_Dbg_Restart(PCR_Dbg_CallInfo *ci, long ans); /* Restart the debuggee represented by ci, returning ans as the result of his invocation of PCR_Dbg_Call. The callinfo ci must have been acquired using PCR_Dbg_AwaitCall. */ #endif /* ! __PCR_Dbg_h */ /* $Log$ */