diff options
Diffstat (limited to 'arch/x86_64/kernel/entry.S')
-rw-r--r-- | arch/x86_64/kernel/entry.S | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S index a0cf36ba7c56..a04fc4108ff2 100644 --- a/arch/x86_64/kernel/entry.S +++ b/arch/x86_64/kernel/entry.S | |||
@@ -22,9 +22,21 @@ | |||
22 | * at the top of the kernel process stack. | 22 | * at the top of the kernel process stack. |
23 | * - partial stack frame: partially saved registers upto R11. | 23 | * - partial stack frame: partially saved registers upto R11. |
24 | * - full stack frame: Like partial stack frame, but all register saved. | 24 | * - full stack frame: Like partial stack frame, but all register saved. |
25 | * | 25 | * |
26 | * TODO: | 26 | * Some macro usage: |
27 | * - schedule it carefully for the final hardware. | 27 | * - CFI macros are used to generate dwarf2 unwind information for better |
28 | * backtraces. They don't change any code. | ||
29 | * - SAVE_ALL/RESTORE_ALL - Save/restore all registers | ||
30 | * - SAVE_ARGS/RESTORE_ARGS - Save/restore registers that C functions modify. | ||
31 | * There are unfortunately lots of special cases where some registers | ||
32 | * not touched. The macro is a big mess that should be cleaned up. | ||
33 | * - SAVE_REST/RESTORE_REST - Handle the registers not saved by SAVE_ARGS. | ||
34 | * Gives a full stack frame. | ||
35 | * - ENTRY/END Define functions in the symbol table. | ||
36 | * - FIXUP_TOP_OF_STACK/RESTORE_TOP_OF_STACK - Fix up the hardware stack | ||
37 | * frame that is otherwise undefined after a SYSCALL | ||
38 | * - TRACE_IRQ_* - Trace hard interrupt state for lock debugging. | ||
39 | * - errorentry/paranoidentry/zeroentry - Define exception entry points. | ||
28 | */ | 40 | */ |
29 | 41 | ||
30 | #include <linux/linkage.h> | 42 | #include <linux/linkage.h> |