summaryrefslogtreecommitdiff
path: root/Kernel/Arch
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel/Arch')
-rw-r--r--Kernel/Arch/x86/common/Interrupts.cpp22
-rw-r--r--Kernel/Arch/x86/i386/Processor.cpp49
2 files changed, 38 insertions, 33 deletions
diff --git a/Kernel/Arch/x86/common/Interrupts.cpp b/Kernel/Arch/x86/common/Interrupts.cpp
index 2f97af41bb..f9004599b7 100644
--- a/Kernel/Arch/x86/common/Interrupts.cpp
+++ b/Kernel/Arch/x86/common/Interrupts.cpp
@@ -45,7 +45,7 @@ static EntropySource s_entropy_source_interrupts { EntropySource::Static::Interr
#define EH_ENTRY(ec, title) \
extern "C" void title##_asm_entry(); \
extern "C" void title##_handler(TrapFrame*) __attribute__((used)); \
- NAKED void title##_asm_entry(){ \
+ NAKED void title##_asm_entry() { \
asm( \
" pusha\n" \
" pushl %ds\n" \
@@ -64,13 +64,14 @@ static EntropySource s_entropy_source_interrupts { EntropySource::Static::Interr
" cld\n" \
" call enter_trap_no_irq \n" \
" call " #title "_handler\n" \
- " jmp common_trap_exit \n"); \
+ " jmp common_trap_exit \n" \
+ ); \
}
#define EH_ENTRY_NO_CODE(ec, title) \
- extern "C" void title##_asm_entry(); \
+ extern "C" void title##_asm_entry(); \
extern "C" void title##_handler(TrapFrame*) __attribute__((used)); \
- NAKED void title##_asm_entry(){ \
+ NAKED void title##_asm_entry() { \
asm( \
" pushl $0x0\n" \
" pusha\n" \
@@ -90,14 +91,15 @@ static EntropySource s_entropy_source_interrupts { EntropySource::Static::Interr
" cld\n" \
" call enter_trap_no_irq \n" \
" call " #title "_handler\n" \
- " jmp common_trap_exit \n"); \
+ " jmp common_trap_exit \n" \
+ ); \
}
#elif ARCH(X86_64)
#define EH_ENTRY(ec, title) \
extern "C" void title##_asm_entry(); \
extern "C" void title##_handler(TrapFrame*) __attribute__((used)); \
- NAKED void title##_asm_entry(){ \
+ NAKED void title##_asm_entry() { \
asm( \
" pushq %r15\n" \
" pushq %r14\n" \
@@ -124,13 +126,14 @@ static EntropySource s_entropy_source_interrupts { EntropySource::Static::Interr
" lea 0x8(%rsp), %rdi \n" \
" call " #title "_handler\n" \
" addq $0x8, %rsp\n" /* undo alignment */ \
- " jmp common_trap_exit \n"); \
+ " jmp common_trap_exit \n" \
+ ); \
}
#define EH_ENTRY_NO_CODE(ec, title) \
extern "C" void title##_handler(TrapFrame*) __attribute__((used)); \
extern "C" void title##_asm_entry(); \
- NAKED void title##_asm_entry(){ \
+ NAKED void title##_asm_entry() { \
asm( \
" pushq $0x0\n" \
" pushq %r15\n" \
@@ -156,7 +159,8 @@ static EntropySource s_entropy_source_interrupts { EntropySource::Static::Interr
" call enter_trap_no_irq \n" \
" movq %rsp, %rdi \n" \
" call " #title "_handler\n" \
- " jmp common_trap_exit \n"); \
+ " jmp common_trap_exit \n" \
+ ); \
}
#endif
diff --git a/Kernel/Arch/x86/i386/Processor.cpp b/Kernel/Arch/x86/i386/Processor.cpp
index 73bcf86550..b47cb59051 100644
--- a/Kernel/Arch/x86/i386/Processor.cpp
+++ b/Kernel/Arch/x86/i386/Processor.cpp
@@ -22,15 +22,16 @@ NAKED void thread_context_first_enter(void)
// clang-format off
// enter_thread_context returns to here first time a thread is executing
asm(
- // switch_context will have pushed from_thread and to_thread to our new
- // stack prior to thread_context_first_enter() being called, and the
- // pointer to TrapFrame was the top of the stack before that
- " movl 8(%esp), %ebx \n" // save pointer to TrapFrame
- " cld \n"
- " call context_first_init \n"
- " addl $" __STRINGIFY(ENTER_THREAD_CONTEXT_ARGS_SIZE) ", %esp \n"
- " movl %ebx, 0(%esp) \n" // push pointer to TrapFrame
- " jmp common_trap_exit \n");
+ // switch_context will have pushed from_thread and to_thread to our new
+ // stack prior to thread_context_first_enter() being called, and the
+ // pointer to TrapFrame was the top of the stack before that
+ " movl 8(%esp), %ebx \n" // save pointer to TrapFrame
+ " cld \n"
+ " call context_first_init \n"
+ " addl $" __STRINGIFY(ENTER_THREAD_CONTEXT_ARGS_SIZE) ", %esp \n"
+ " movl %ebx, 0(%esp) \n" // push pointer to TrapFrame
+ " jmp common_trap_exit \n"
+ );
// clang-format on
}
@@ -39,21 +40,21 @@ NAKED void do_assume_context(Thread*, u32)
// clang-format off
// FIXME: I hope (Thread* thread, u32 flags) aren't compiled away
asm(
- " movl 4(%esp), %ebx \n"
- " movl 8(%esp), %esi \n"
- // We're going to call Processor::init_context, so just make sure
- // we have enough stack space so we don't stomp over it
- " subl $(" __STRINGIFY(4 + REGISTER_STATE_SIZE + TRAP_FRAME_SIZE + 4) "), %esp \n"
- " pushl %esi \n"
- " pushl %ebx \n"
- " cld \n"
- " call do_init_context \n"
- " addl $8, %esp \n"
- " movl %eax, %esp \n" // move stack pointer to what Processor::init_context set up for us
- " pushl %ebx \n" // push to_thread
- " pushl %ebx \n" // push from_thread
- " pushl $thread_context_first_enter \n" // should be same as regs.eip
- " jmp enter_thread_context \n"
+ " movl 4(%esp), %ebx \n"
+ " movl 8(%esp), %esi \n"
+ // We're going to call Processor::init_context, so just make sure
+ // we have enough stack space so we don't stomp over it
+ " subl $(" __STRINGIFY(4 + REGISTER_STATE_SIZE + TRAP_FRAME_SIZE + 4) "), %esp \n"
+ " pushl %esi \n"
+ " pushl %ebx \n"
+ " cld \n"
+ " call do_init_context \n"
+ " addl $8, %esp \n"
+ " movl %eax, %esp \n" // move stack pointer to what Processor::init_context set up for us
+ " pushl %ebx \n" // push to_thread
+ " pushl %ebx \n" // push from_thread
+ " pushl $thread_context_first_enter \n" // should be same as regs.eip
+ " jmp enter_thread_context \n"
);
// clang-format on
}