diff options
author | Luca Dariz <luca@orpolo.org> | 2023-02-12 18:28:16 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-02-12 19:07:26 +0100 |
commit | f8d840ae46e014d3c65021e169c32e5e39c9ab5a (patch) | |
tree | 9f3172a158b7cb64515c80845d6c0f706cc5e565 | |
parent | 1956a5e0f56793e11edc8fcf0a66fb68c1e4049d (diff) | |
download | gnumach-f8d840ae46e014d3c65021e169c32e5e39c9ab5a.tar.gz gnumach-f8d840ae46e014d3c65021e169c32e5e39c9ab5a.tar.bz2 gnumach-f8d840ae46e014d3c65021e169c32e5e39c9ab5a.zip |
extend data types to hold a 64-bit address
* i386/i386/trap.c: change from int to a proper type to hold a
register value
* x86_64/locore.S: use 64-bit register to avoid address truncation
Message-Id: <20230212172818.1511405-8-luca@orpolo.org>
-rw-r--r-- | i386/i386/trap.c | 12 | ||||
-rw-r--r-- | x86_64/locore.S | 4 |
2 files changed, 8 insertions, 8 deletions
diff --git a/i386/i386/trap.c b/i386/i386/trap.c index 1e04ae7d..9a35fb42 100644 --- a/i386/i386/trap.c +++ b/i386/i386/trap.c @@ -154,9 +154,9 @@ char *trap_name(unsigned int trapnum) */ void kernel_trap(struct i386_saved_state *regs) { - int code; - int subcode; - int type; + unsigned long code; + unsigned long subcode; + unsigned long type; vm_map_t map; kern_return_t result; thread_t thread; @@ -357,9 +357,9 @@ dump_ss(regs); int user_trap(struct i386_saved_state *regs) { int exc = 0; /* Suppress gcc warning */ - int code; - int subcode; - int type; + unsigned long code; + unsigned long subcode; + unsigned long type; thread_t thread = current_thread(); #ifdef __x86_64__ diff --git a/x86_64/locore.S b/x86_64/locore.S index c54b5cd8..a2663aff 100644 --- a/x86_64/locore.S +++ b/x86_64/locore.S @@ -590,7 +590,7 @@ trap_from_kernel: ENTRY(thread_exception_return) ENTRY(thread_bootstrap_return) movq %rsp,%rcx /* get kernel stack */ - or $(KERNEL_STACK_SIZE-1),%ecx + or $(KERNEL_STACK_SIZE-1),%rcx movq -7-IKS_SIZE(%rcx),%rsp /* switch back to PCB stack */ jmp _return_from_trap @@ -603,7 +603,7 @@ ENTRY(thread_bootstrap_return) ENTRY(thread_syscall_return) movq S_ARG0,%rax /* get return value */ movq %rsp,%rcx /* get kernel stack */ - or $(KERNEL_STACK_SIZE-1),%ecx + or $(KERNEL_STACK_SIZE-1),%rcx movq -7-IKS_SIZE(%rcx),%rsp /* switch back to PCB stack */ movq %rax,R_EAX(%rsp) /* save return value */ jmp _return_from_trap |