#include <stdint.h>
#include <pthread.h>
-struct jit_code_entry
-{
- struct jit_code_entry *next_entry;
- struct jit_code_entry *prev_entry;
- const char *symfile_addr;
- uint64_t symfile_size;
-};
-
-struct jit_descriptor
-{
- uint32_t version;
- /* This type should be jit_actions_t, but we use uint32_t
- to be explicit about the bitwidth. */
- uint32_t action_flag;
- struct jit_code_entry *relevant_entry;
- struct jit_code_entry *first_entry;
-};
-
-struct jit_descriptor __jit_debug_descriptor = { 1, 0, 0, 0 };
-
-void __jit_debug_register_code()
-{
-}
+#include "jit-protocol.h"
static void *
thread_proc (void *arg)
#include <sys/stat.h>
#include <unistd.h>
+#include "jit-protocol.h"
+
/* ElfW is coming from linux. On other platforms it does not exist.
Let us define it here. */
#ifndef ElfW
#define _ElfW_1(e,w,t) e##w##t
#endif /* !ElfW */
-typedef enum
-{
- JIT_NOACTION = 0,
- JIT_REGISTER_FN,
- JIT_UNREGISTER_FN
-} jit_actions_t;
-
-struct jit_code_entry
-{
- struct jit_code_entry *next_entry;
- struct jit_code_entry *prev_entry;
- const char *symfile_addr;
- uint64_t symfile_size;
-};
-
-struct jit_descriptor
-{
- uint32_t version;
- /* This type should be jit_actions_t, but we use uint32_t
- to be explicit about the bitwidth. */
- uint32_t action_flag;
- struct jit_code_entry *relevant_entry;
- struct jit_code_entry *first_entry;
-};
-
-/* GDB puts a breakpoint in this function. */
-void __attribute__((noinline)) __jit_debug_register_code () { }
-
-/* Make sure to specify the version statically, because the
- debugger may check the version before we can set it. */
-struct jit_descriptor __jit_debug_descriptor = { 1, 0, 0, 0 };
-
static void
usage (const char *const argv0)
{
__jit_debug_descriptor.first_entry = entry;
/* Notify GDB. */
- __jit_debug_descriptor.action_flag = JIT_REGISTER_FN;
+ __jit_debug_descriptor.action_flag = JIT_REGISTER;
__jit_debug_register_code ();
}
__jit_debug_descriptor.first_entry = NULL;
/* Notify GDB. */
- __jit_debug_descriptor.action_flag = JIT_UNREGISTER_FN;
+ __jit_debug_descriptor.action_flag = JIT_UNREGISTER;
__jit_debug_register_code ();
__jit_debug_descriptor.relevant_entry = prev_entry;
{
struct jit_code_entry *next_entry;
struct jit_code_entry *prev_entry;
- void *symfile_addr;
+ const void *symfile_addr;
uint64_t symfile_size;
};
struct jit_code_entry *first_entry;
};
+struct jit_descriptor __jit_debug_descriptor = { 1, 0, 0, 0 };
+
+void __attribute__((noinline)) __jit_debug_register_code()
+{
+}
+
#endif /* JIT_PROTOCOL_H */
#include "jit-reader-host.h"
#include "jit-protocol.h"
-void __attribute__((noinline)) __jit_debug_register_code () { }
-
-struct jit_descriptor __jit_debug_descriptor = { 1, 0, 0, 0 };
struct jit_code_entry only_entry;
typedef void (jit_function_stack_mangle_t) (void);
#include <stdint.h>
-struct jit_code_entry
-{
- struct jit_code_entry *next_entry;
- struct jit_code_entry *prev_entry;
- const char *symfile_addr;
- uint64_t symfile_size;
-};
-
-struct jit_descriptor
-{
- uint32_t version;
- /* This type should be jit_actions_t, but we use uint32_t
- to be explicit about the bitwidth. */
- uint32_t action_flag;
- struct jit_code_entry *relevant_entry;
- struct jit_code_entry *first_entry;
-};
-
#ifdef SPACER
/* This exists to change the address of __jit_debug_descriptor. */
int spacer = 4;
#endif
-struct jit_descriptor __jit_debug_descriptor = { 1, 0, 0, 0 };
-
-void
-__jit_debug_register_code (void)
-{
-}
+#include "jit-protocol.h"
\ No newline at end of file