kernel: get rid of unused interrupt_registers
process_t member was never set, but was referenced in ptrace core-local member was set in x86-64 but never used
This commit is contained in:
parent
023b078d0e
commit
4f36cac62c
@ -117,7 +117,6 @@ typedef struct process {
|
|||||||
|
|
||||||
tree_node_t * tree_entry;
|
tree_node_t * tree_entry;
|
||||||
struct regs * syscall_registers;
|
struct regs * syscall_registers;
|
||||||
struct regs * interrupt_registers;
|
|
||||||
list_t * wait_queue;
|
list_t * wait_queue;
|
||||||
list_t * shm_mappings;
|
list_t * shm_mappings;
|
||||||
list_t * node_waits;
|
list_t * node_waits;
|
||||||
@ -202,8 +201,6 @@ struct ProcessorLocal {
|
|||||||
int cpu_id;
|
int cpu_id;
|
||||||
union PML * current_pml;
|
union PML * current_pml;
|
||||||
|
|
||||||
struct regs * interrupt_registers;
|
|
||||||
|
|
||||||
#ifdef __x86_64__
|
#ifdef __x86_64__
|
||||||
int lapic_id;
|
int lapic_id;
|
||||||
/* Processor information loaded at startup. */
|
/* Processor information loaded at startup. */
|
||||||
|
@ -678,7 +678,6 @@ struct regs * isr_handler_inner(struct regs * r) {
|
|||||||
|
|
||||||
struct regs * isr_handler(struct regs * r) {
|
struct regs * isr_handler(struct regs * r) {
|
||||||
int from_userspace = r->cs != 0x08;
|
int from_userspace = r->cs != 0x08;
|
||||||
this_core->interrupt_registers = r;
|
|
||||||
|
|
||||||
if (from_userspace && this_core->current_process) {
|
if (from_userspace && this_core->current_process) {
|
||||||
this_core->current_process->time_switch = arch_perf_timer();
|
this_core->current_process->time_switch = arch_perf_timer();
|
||||||
|
@ -248,10 +248,6 @@ long ptrace_detach(pid_t pid, int sig) {
|
|||||||
* Copies the interrupt register context of the tracee into a tracer-provided
|
* Copies the interrupt register context of the tracee into a tracer-provided
|
||||||
* address. The size, meaning, and layout of the data copied is architecture-dependent.
|
* address. The size, meaning, and layout of the data copied is architecture-dependent.
|
||||||
*
|
*
|
||||||
* Currently this is either @c interrupt_registers or @c syscall_registers, depending
|
|
||||||
* on what is available. Since the tracee needs to be suspended this should represent
|
|
||||||
* the actual userspace register context when it resumes.
|
|
||||||
*
|
|
||||||
* On AArch64 we also add ELR, which isn't in the interrupt or syscall register contexts,
|
* On AArch64 we also add ELR, which isn't in the interrupt or syscall register contexts,
|
||||||
* but pushed somewhere else...
|
* but pushed somewhere else...
|
||||||
*
|
*
|
||||||
@ -268,7 +264,7 @@ long ptrace_getregs(pid_t pid, void * data) {
|
|||||||
if (!tracee || (tracee->tracer != this_core->current_process->id) || !(tracee->flags & PROC_FLAG_SUSPENDED)) return -ESRCH;
|
if (!tracee || (tracee->tracer != this_core->current_process->id) || !(tracee->flags & PROC_FLAG_SUSPENDED)) return -ESRCH;
|
||||||
|
|
||||||
/* Copy registers */
|
/* Copy registers */
|
||||||
memcpy(data, tracee->interrupt_registers ? tracee->interrupt_registers : tracee->syscall_registers, sizeof(struct regs));
|
memcpy(data, tracee->syscall_registers, sizeof(struct regs));
|
||||||
#ifdef __aarch64__
|
#ifdef __aarch64__
|
||||||
memcpy((char*)data + sizeof(struct regs), &tracee->thread.context.saved[10], sizeof(uintptr_t));
|
memcpy((char*)data + sizeof(struct regs), &tracee->thread.context.saved[10], sizeof(uintptr_t));
|
||||||
#endif
|
#endif
|
||||||
@ -398,7 +394,7 @@ long ptrace_singlestep(pid_t pid, int sig) {
|
|||||||
|
|
||||||
/* arch_set_singlestep? */
|
/* arch_set_singlestep? */
|
||||||
#if defined(__x86_64__)
|
#if defined(__x86_64__)
|
||||||
struct regs * target = tracee->interrupt_registers ? tracee->interrupt_registers : tracee->syscall_registers;
|
struct regs * target = tracee->syscall_registers;
|
||||||
target->rflags |= (1 << 8);
|
target->rflags |= (1 << 8);
|
||||||
#elif defined(__aarch64__)
|
#elif defined(__aarch64__)
|
||||||
tracee->thread.context.saved[11] |= (1 << 21);
|
tracee->thread.context.saved[11] |= (1 << 21);
|
||||||
|
Loading…
Reference in New Issue
Block a user