mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 19:27:45 +00:00
parent
311b2c0720
commit
5666809889
2 changed files with 62 additions and 62 deletions
|
@ -34,7 +34,7 @@ struct TrapFrame {
|
||||||
|
|
||||||
static_assert(TRAP_FRAME_SIZE == sizeof(TrapFrame));
|
static_assert(TRAP_FRAME_SIZE == sizeof(TrapFrame));
|
||||||
|
|
||||||
extern "C" void enter_trap_no_irq(TrapFrame* trap);
|
extern "C" void enter_trap_no_irq(TrapFrame* trap) __attribute__((used));
|
||||||
extern "C" void enter_trap(TrapFrame*) __attribute__((used));
|
extern "C" void enter_trap(TrapFrame*) __attribute__((used));
|
||||||
extern "C" void exit_trap(TrapFrame*) __attribute__((used));
|
extern "C" void exit_trap(TrapFrame*) __attribute__((used));
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ static EntropySource s_entropy_source_interrupts { EntropySource::Static::Interr
|
||||||
#elif ARCH(X86_64)
|
#elif ARCH(X86_64)
|
||||||
#define EH_ENTRY(ec, title) \
|
#define EH_ENTRY(ec, title) \
|
||||||
extern "C" void title##_asm_entry(); \
|
extern "C" void title##_asm_entry(); \
|
||||||
extern "C" void title##_handler(TrapFrame*); \
|
extern "C" void title##_handler(TrapFrame*) __attribute__((used)); \
|
||||||
asm( \
|
asm( \
|
||||||
".globl " #title "_asm_entry\n" \
|
".globl " #title "_asm_entry\n" \
|
||||||
"" #title "_asm_entry: \n" \
|
"" #title "_asm_entry: \n" \
|
||||||
|
@ -124,11 +124,11 @@ static EntropySource s_entropy_source_interrupts { EntropySource::Static::Interr
|
||||||
" call enter_trap_no_irq \n" \
|
" call enter_trap_no_irq \n" \
|
||||||
" lea 0x8(%rsp), %rdi \n" \
|
" lea 0x8(%rsp), %rdi \n" \
|
||||||
" call " #title "_handler\n" \
|
" call " #title "_handler\n" \
|
||||||
" addq $0x8, %rsp\n" /* undo alignment */\
|
" addq $0x8, %rsp\n" /* undo alignment */ \
|
||||||
" jmp common_trap_exit \n");
|
" jmp common_trap_exit \n");
|
||||||
|
|
||||||
#define EH_ENTRY_NO_CODE(ec, title) \
|
#define EH_ENTRY_NO_CODE(ec, title) \
|
||||||
extern "C" void title##_handler(TrapFrame*); \
|
extern "C" void title##_handler(TrapFrame*) __attribute__((used)); \
|
||||||
extern "C" void title##_asm_entry(); \
|
extern "C" void title##_asm_entry(); \
|
||||||
asm( \
|
asm( \
|
||||||
".globl " #title "_asm_entry\n" \
|
".globl " #title "_asm_entry\n" \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue