| /********************************************************************** | |
| ptproxy.h | |
| Copyright (C) 1999 Lars Brinkhoff. See the file COPYING for licensing | |
| terms and conditions. | |
| **********************************************************************/ | |
| #ifndef __PTPROXY_H | |
| #define __PTPROXY_H | |
| #include <sys/types.h> | |
| typedef struct debugger debugger_state; | |
| typedef struct debugee debugee_state; | |
| struct debugger | |
| { | |
| pid_t pid; | |
| int wait_options; | |
| int *wait_status_ptr; | |
| unsigned int waiting : 1; | |
| unsigned int real_wait : 1; | |
| unsigned int expecting_child : 1; | |
| int (*handle_trace) (debugger_state *, pid_t); | |
| debugee_state *debugee; | |
| }; | |
| struct debugee | |
| { | |
| pid_t pid; | |
| int wait_status; | |
| unsigned int died : 1; | |
| unsigned int event : 1; | |
| unsigned int stopped : 1; | |
| unsigned int trace_singlestep : 1; | |
| unsigned int trace_syscall : 1; | |
| unsigned int traced : 1; | |
| unsigned int zombie : 1; | |
| unsigned int in_context : 1; | |
| }; | |
| extern int debugger_syscall(debugger_state *debugger, pid_t pid); | |
| extern int debugger_normal_return (debugger_state *debugger, pid_t unused); | |
| extern long proxy_ptrace (struct debugger *, int, pid_t, long, long, pid_t, | |
| int *strace_out); | |
| extern void debugger_cancelled_return(debugger_state *debugger, int result); | |
| #endif | |
| /* | |
| * Overrides for Emacs so that we follow Linus's tabbing style. | |
| * Emacs will notice this stuff at the end of the file and automatically | |
| * adjust the settings for this buffer only. This must remain at the end | |
| * of the file. | |
| * --------------------------------------------------------------------------- | |
| * Local variables: | |
| * c-file-style: "linux" | |
| * End: | |
| */ |