Fix compilation
diff --git a/backend.h b/backend.h
index 68a9694..08306e1 100644
--- a/backend.h
+++ b/backend.h
@@ -22,6 +22,18 @@
#define BACKEND_H
#include "forward.h"
+#include <gelf.h>
+
+enum process_status {
+ ps_invalid, /* Failure. */
+ ps_stop, /* Job-control stop. */
+ ps_tracing_stop,
+ ps_sleeping,
+ ps_zombie,
+ ps_other, /* Necessary other states can be added as needed. */
+};
+
+typedef void *target_address_t;
/*
* This file contains documentation of back end interface. Some of
@@ -52,13 +64,13 @@
enum process_status process_status(pid_t pid);
/* Wait for PID to be ready for tracing. */
-void wait_for_proc(pid_t pid);
+int wait_for_proc(pid_t pid);
/* Send a signal SIG to the task PID. */
int task_kill(pid_t pid, int sig);
/* Called after PID is attached, but before it is continued. */
-void trace_set_options(struct Process *proc, pid_t pid);
+void trace_set_options(struct Process *proc);
/* Called after ltrace forks. Should attach the newly created child,
* in whose context this function is called. */
@@ -80,7 +92,7 @@
*
* XXX note that the IP must fit into an arch pointer. This prevents
* us to use 32-bit ltrace to trace 64-bit process, even on arches
- * that would otherwise support this. Below we have a definition of
+ * that would otherwise support this. Above we have a definition of
* target_address_t. This should be converted to an integral type and
* used for target addresses throughout. */
void *get_instruction_pointer(struct Process *proc);
@@ -169,10 +181,9 @@
void *sym2addr(struct Process *proc, struct library_symbol *sym);
/* Called at some point after we have attached to PROC. This callback
- * should insert an introspection breakpoint for artificial symbol
- * named "" (empty string). When this breakpoint is hit,
- * arch_check_dbg is called. */
-int linkmap_init(struct Process *proc, struct ltelf *elf);
+ * should insert an introspection breakpoint for handling dynamic
+ * linker library loads. */
+int linkmap_init(struct Process *proc, target_address_t dyn_addr);
/* Called for breakpoints defined over an artificial symbol "". This
* can be used (like it is on Linux/GNU) to add more breakpoints
@@ -224,8 +235,6 @@
int arch_process_clone(struct Process *retp, struct Process *proc);
int arch_process_exec(struct Process *proc);
-typedef void *target_address_t;
-
/* This should extract entry point address and interpreter (dynamic
* linker) bias if possible. Returns 0 if there were no errors, -1
* otherwise. Sets *ENTRYP and *INTERP_BIASP to non-zero values if