blob: 0a37909ae3c559adbb67486ea30dd67ba7b8f811 [file] [log] [blame]
Each operating system must have a subdir here, with a Makefile
The first target of that Makefile must build a file "sysdep.o" in this
directory.
The "clean" target of that Makefile must undo all the efects of the
first target, and must remove "sysdep.o" in this dir.
Files "sysdep.h", "signalent.h" and "syscallent.h" must be present
inside the directory after invoking the first target of the Makefile.
-----------
"sysdep.o" must export the following functions:
Event * next_event(void);
void continue_after_breakpoint(Process * proc, Breakpoint * sbp, int delete_it);
void continue_after_signal(pid_t pid, int signum);
void continue_enabling_breakpoint(pid_t pid, Breakpoint * sbp);
void continue_process(pid_t pid);
void enable_breakpoint(pid_t pid, Breakpoint * sbp);
void disable_breakpoint(pid_t pid, Breakpoint * sbp);
int fork_p(int sysnum);
int exec_p(int sysnum);
int syscall_p(Process * proc, int status, int * sysnum);
void * get_instruction_pointer(pid_t pid);
void * get_stack_pointer(pid_t pid);
void * get_return_addr(pid_t pid, void * stack_pointer);
long gimme_arg(enum tof type, Process * proc, arg_type_info*);
int umovestr(Process * proc, void * addr, int len, void * laddr);
int umovelong(Process * proc, void * addr, long * result);
char * pid2name(pid_t pid);
void trace_me(void);
int trace_pid(pid_t pid);
void untrace_pid(pid_t pid);
void linkmap_init(Process *, struct ltelf *);