19#include "gdbsupport/common-defs.h"
20#include "gdbsupport/break-common.h"
25#include "elf/common.h"
27#include <asm/ptrace.h>
48 int tid = ptid.lwp ();
53 debug_printf (
"prepare_to_resume thread %d\n", tid);
106 memset (to, 0,
sizeof (*to));
114 to->cpt_si_timerid = from->si_timerid;
115 to->cpt_si_overrun = from->si_overrun;
116 to->cpt_si_ptr = (intptr_t) from->si_ptr;
118 else if (to->
si_code == SI_USER)
120 to->cpt_si_pid = from->si_pid;
121 to->cpt_si_uid = from->si_uid;
125 to->cpt_si_pid = from->si_pid;
126 to->cpt_si_uid = from->si_uid;
127 to->cpt_si_ptr = (intptr_t) from->si_ptr;
134 to->cpt_si_pid = from->si_pid;
135 to->cpt_si_uid = from->si_uid;
136 to->cpt_si_status = from->si_status;
137 to->cpt_si_utime = from->si_utime;
138 to->cpt_si_stime = from->si_stime;
144 to->cpt_si_addr = (intptr_t) from->si_addr;
147 to->cpt_si_band = from->si_band;
148 to->cpt_si_fd = from->si_fd;
151 to->cpt_si_pid = from->si_pid;
152 to->cpt_si_uid = from->si_uid;
153 to->cpt_si_ptr = (intptr_t) from->si_ptr;
164 memset (to, 0,
sizeof (*to));
170 if (to->si_code == SI_TIMER)
172 to->si_timerid = from->cpt_si_timerid;
173 to->si_overrun = from->cpt_si_overrun;
174 to->si_ptr = (
void *) (intptr_t) from->cpt_si_ptr;
176 else if (to->si_code == SI_USER)
178 to->si_pid = from->cpt_si_pid;
179 to->si_uid = from->cpt_si_uid;
183 to->si_pid = from->cpt_si_pid;
184 to->si_uid = from->cpt_si_uid;
185 to->si_ptr = (
void *) (intptr_t) from->cpt_si_ptr;
189 switch (to->si_signo)
192 to->si_pid = from->cpt_si_pid;
193 to->si_uid = from->cpt_si_uid;
194 to->si_status = from->cpt_si_status;
195 to->si_utime = from->cpt_si_utime;
196 to->si_stime = from->cpt_si_stime;
202 to->si_addr = (
void *) (intptr_t) from->cpt_si_addr;
205 to->si_band = from->cpt_si_band;
206 to->si_fd = from->cpt_si_fd;
209 to->si_pid = from->cpt_si_pid;
210 to->si_uid = from->cpt_si_uid;
211 to->si_ptr = (
void* ) (intptr_t) from->cpt_si_ptr;
222 lwpid_t lwpid,
int idx,
void **base,
231 iovec.iov_base = ®64;
232 iovec.iov_len =
sizeof (reg64);
236 iovec.iov_base = ®32;
237 iovec.iov_len =
sizeof (reg32);
247 *base = (
void *) (reg64 - idx);
249 *base = (
void *) (uintptr_t) (reg32 - idx);
259 uint64_t tls_regs[2];
261 iovec.iov_base = tls_regs;
262 iovec.iov_len =
sizeof (tls_regs);
bool aarch64_any_set_debug_regs_state(aarch64_debug_reg_state *state, bool watchpoint)
void aarch64_linux_set_debug_regs(struct aarch64_debug_reg_state *state, int tid, int watchpoint)
#define DR_MARK_ALL_CHANGED(x, m)
#define DR_HAS_CHANGED(x)
#define DR_CLEAR_CHANGED(x)
struct aarch64_debug_reg_state * aarch64_get_debug_reg_state(pid_t pid)
ps_err_e aarch64_ps_get_thread_area(struct ps_prochandle *ph, lwpid_t lwpid, int idx, void **base, int is_64bit_p)
void aarch64_linux_prepare_to_resume(struct lwp_info *lwp)
void aarch64_linux_new_thread(struct lwp_info *lwp)
void aarch64_compat_siginfo_from_siginfo(compat_siginfo_t *to, siginfo_t *from)
void aarch64_siginfo_from_compat_siginfo(siginfo_t *to, compat_siginfo_t *from)
int aarch64_tls_register_count(int tid)
void aarch64_linux_delete_thread(struct arch_lwp_info *arch_lwp)
#define ptrace(request, pid, addr, data)
ptid_t ptid_of_lwp(struct lwp_info *lwp)
void lwp_set_arch_private_info(struct lwp_info *lwp, struct arch_lwp_info *info)
struct arch_lwp_info * lwp_arch_private_info(struct lwp_info *lwp)
dr_changed_t dr_changed_bp
dr_changed_t dr_changed_wp