Loading arch/x86/include/asm/dwarf2.h +66 −31 Original line number Original line Diff line number Diff line Loading @@ -6,10 +6,10 @@ #endif #endif /* /* Macros for dwarf2 CFI unwind table entries. * Macros for dwarf2 CFI unwind table entries. See "as.info" for details on these pseudo ops. Unfortunately * See "as.info" for details on these pseudo ops. Unfortunately they are only supported in very new binutils, so define them * they are only supported in very new binutils, so define them away for older version. * away for older version. */ */ #ifdef CONFIG_AS_CFI #ifdef CONFIG_AS_CFI Loading @@ -36,8 +36,10 @@ #else #else /* Due to the structure of pre-exisiting code, don't use assembler line /* comment character # to ignore the arguments. Instead, use a dummy macro. */ * Due to the structure of pre-exisiting code, don't use assembler line * comment character # to ignore the arguments. Instead, use a dummy macro. */ .macro cfi_ignore a=0, b=0, c=0, d=0 .macro cfi_ignore a=0, b=0, c=0, d=0 .endm .endm Loading @@ -58,4 +60,37 @@ #endif #endif /* * An attempt to make CFI annotations more or less * correct and shorter. It is implied that you know * what you're doing if you use them. */ #ifdef __ASSEMBLY__ #ifdef CONFIG_X86_64 .macro pushq_cfi reg pushq \reg CFI_ADJUST_CFA_OFFSET 8 .endm .macro popq_cfi reg popq \reg CFI_ADJUST_CFA_OFFSET -8 .endm .macro movq_cfi reg offset=0 movq %\reg, \offset(%rsp) CFI_REL_OFFSET \reg, \offset .endm .macro movq_cfi_restore offset reg movq \offset(%rsp), %\reg CFI_RESTORE \reg .endm #else /*!CONFIG_X86_64*/ /* 32bit defenitions are missed yet */ #endif /*!CONFIG_X86_64*/ #endif /*__ASSEMBLY__*/ #endif /* _ASM_X86_DWARF2_H */ #endif /* _ASM_X86_DWARF2_H */ arch/x86/include/asm/hardirq_32.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -22,6 +22,8 @@ DECLARE_PER_CPU(irq_cpustat_t, irq_stat); #define __ARCH_IRQ_STAT #define __ARCH_IRQ_STAT #define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member) #define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member) #define inc_irq_stat(member) (__get_cpu_var(irq_stat).member++) void ack_bad_irq(unsigned int irq); void ack_bad_irq(unsigned int irq); #include <linux/irq_cpustat.h> #include <linux/irq_cpustat.h> Loading arch/x86/include/asm/hardirq_64.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -11,6 +11,8 @@ #define __ARCH_IRQ_STAT 1 #define __ARCH_IRQ_STAT 1 #define inc_irq_stat(member) add_pda(member, 1) #define local_softirq_pending() read_pda(__softirq_pending) #define local_softirq_pending() read_pda(__softirq_pending) #define __ARCH_SET_SOFTIRQ_PENDING 1 #define __ARCH_SET_SOFTIRQ_PENDING 1 Loading arch/x86/include/asm/hw_irq.h +1 −3 Original line number Original line Diff line number Diff line Loading @@ -109,9 +109,7 @@ extern asmlinkage void smp_invalidate_interrupt(struct pt_regs *); #endif #endif #endif #endif #ifdef CONFIG_X86_32 extern void (*__initconst interrupt[NR_VECTORS-FIRST_EXTERNAL_VECTOR])(void); extern void (*const interrupt[NR_VECTORS])(void); #endif typedef int vector_irq_t[NR_VECTORS]; typedef int vector_irq_t[NR_VECTORS]; DECLARE_PER_CPU(vector_irq_t, vector_irq); DECLARE_PER_CPU(vector_irq_t, vector_irq); Loading arch/x86/include/asm/linkage.h +60 −0 Original line number Original line Diff line number Diff line Loading @@ -57,5 +57,65 @@ #define __ALIGN_STR ".align 16,0x90" #define __ALIGN_STR ".align 16,0x90" #endif #endif /* * to check ENTRY_X86/END_X86 and * KPROBE_ENTRY_X86/KPROBE_END_X86 * unbalanced-missed-mixed appearance */ #define __set_entry_x86 .set ENTRY_X86_IN, 0 #define __unset_entry_x86 .set ENTRY_X86_IN, 1 #define __set_kprobe_x86 .set KPROBE_X86_IN, 0 #define __unset_kprobe_x86 .set KPROBE_X86_IN, 1 #define __macro_err_x86 .error "ENTRY_X86/KPROBE_X86 unbalanced,missed,mixed" #define __check_entry_x86 \ .ifdef ENTRY_X86_IN; \ .ifeq ENTRY_X86_IN; \ __macro_err_x86; \ .abort; \ .endif; \ .endif #define __check_kprobe_x86 \ .ifdef KPROBE_X86_IN; \ .ifeq KPROBE_X86_IN; \ __macro_err_x86; \ .abort; \ .endif; \ .endif #define __check_entry_kprobe_x86 \ __check_entry_x86; \ __check_kprobe_x86 #define ENTRY_KPROBE_FINAL_X86 __check_entry_kprobe_x86 #define ENTRY_X86(name) \ __check_entry_kprobe_x86; \ __set_entry_x86; \ .globl name; \ __ALIGN; \ name: #define END_X86(name) \ __unset_entry_x86; \ __check_entry_kprobe_x86; \ .size name, .-name #define KPROBE_ENTRY_X86(name) \ __check_entry_kprobe_x86; \ __set_kprobe_x86; \ .pushsection .kprobes.text, "ax"; \ .globl name; \ __ALIGN; \ name: #define KPROBE_END_X86(name) \ __unset_kprobe_x86; \ __check_entry_kprobe_x86; \ .size name, .-name; \ .popsection #endif /* _ASM_X86_LINKAGE_H */ #endif /* _ASM_X86_LINKAGE_H */ Loading
arch/x86/include/asm/dwarf2.h +66 −31 Original line number Original line Diff line number Diff line Loading @@ -6,10 +6,10 @@ #endif #endif /* /* Macros for dwarf2 CFI unwind table entries. * Macros for dwarf2 CFI unwind table entries. See "as.info" for details on these pseudo ops. Unfortunately * See "as.info" for details on these pseudo ops. Unfortunately they are only supported in very new binutils, so define them * they are only supported in very new binutils, so define them away for older version. * away for older version. */ */ #ifdef CONFIG_AS_CFI #ifdef CONFIG_AS_CFI Loading @@ -36,8 +36,10 @@ #else #else /* Due to the structure of pre-exisiting code, don't use assembler line /* comment character # to ignore the arguments. Instead, use a dummy macro. */ * Due to the structure of pre-exisiting code, don't use assembler line * comment character # to ignore the arguments. Instead, use a dummy macro. */ .macro cfi_ignore a=0, b=0, c=0, d=0 .macro cfi_ignore a=0, b=0, c=0, d=0 .endm .endm Loading @@ -58,4 +60,37 @@ #endif #endif /* * An attempt to make CFI annotations more or less * correct and shorter. It is implied that you know * what you're doing if you use them. */ #ifdef __ASSEMBLY__ #ifdef CONFIG_X86_64 .macro pushq_cfi reg pushq \reg CFI_ADJUST_CFA_OFFSET 8 .endm .macro popq_cfi reg popq \reg CFI_ADJUST_CFA_OFFSET -8 .endm .macro movq_cfi reg offset=0 movq %\reg, \offset(%rsp) CFI_REL_OFFSET \reg, \offset .endm .macro movq_cfi_restore offset reg movq \offset(%rsp), %\reg CFI_RESTORE \reg .endm #else /*!CONFIG_X86_64*/ /* 32bit defenitions are missed yet */ #endif /*!CONFIG_X86_64*/ #endif /*__ASSEMBLY__*/ #endif /* _ASM_X86_DWARF2_H */ #endif /* _ASM_X86_DWARF2_H */
arch/x86/include/asm/hardirq_32.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -22,6 +22,8 @@ DECLARE_PER_CPU(irq_cpustat_t, irq_stat); #define __ARCH_IRQ_STAT #define __ARCH_IRQ_STAT #define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member) #define __IRQ_STAT(cpu, member) (per_cpu(irq_stat, cpu).member) #define inc_irq_stat(member) (__get_cpu_var(irq_stat).member++) void ack_bad_irq(unsigned int irq); void ack_bad_irq(unsigned int irq); #include <linux/irq_cpustat.h> #include <linux/irq_cpustat.h> Loading
arch/x86/include/asm/hardirq_64.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -11,6 +11,8 @@ #define __ARCH_IRQ_STAT 1 #define __ARCH_IRQ_STAT 1 #define inc_irq_stat(member) add_pda(member, 1) #define local_softirq_pending() read_pda(__softirq_pending) #define local_softirq_pending() read_pda(__softirq_pending) #define __ARCH_SET_SOFTIRQ_PENDING 1 #define __ARCH_SET_SOFTIRQ_PENDING 1 Loading
arch/x86/include/asm/hw_irq.h +1 −3 Original line number Original line Diff line number Diff line Loading @@ -109,9 +109,7 @@ extern asmlinkage void smp_invalidate_interrupt(struct pt_regs *); #endif #endif #endif #endif #ifdef CONFIG_X86_32 extern void (*__initconst interrupt[NR_VECTORS-FIRST_EXTERNAL_VECTOR])(void); extern void (*const interrupt[NR_VECTORS])(void); #endif typedef int vector_irq_t[NR_VECTORS]; typedef int vector_irq_t[NR_VECTORS]; DECLARE_PER_CPU(vector_irq_t, vector_irq); DECLARE_PER_CPU(vector_irq_t, vector_irq); Loading
arch/x86/include/asm/linkage.h +60 −0 Original line number Original line Diff line number Diff line Loading @@ -57,5 +57,65 @@ #define __ALIGN_STR ".align 16,0x90" #define __ALIGN_STR ".align 16,0x90" #endif #endif /* * to check ENTRY_X86/END_X86 and * KPROBE_ENTRY_X86/KPROBE_END_X86 * unbalanced-missed-mixed appearance */ #define __set_entry_x86 .set ENTRY_X86_IN, 0 #define __unset_entry_x86 .set ENTRY_X86_IN, 1 #define __set_kprobe_x86 .set KPROBE_X86_IN, 0 #define __unset_kprobe_x86 .set KPROBE_X86_IN, 1 #define __macro_err_x86 .error "ENTRY_X86/KPROBE_X86 unbalanced,missed,mixed" #define __check_entry_x86 \ .ifdef ENTRY_X86_IN; \ .ifeq ENTRY_X86_IN; \ __macro_err_x86; \ .abort; \ .endif; \ .endif #define __check_kprobe_x86 \ .ifdef KPROBE_X86_IN; \ .ifeq KPROBE_X86_IN; \ __macro_err_x86; \ .abort; \ .endif; \ .endif #define __check_entry_kprobe_x86 \ __check_entry_x86; \ __check_kprobe_x86 #define ENTRY_KPROBE_FINAL_X86 __check_entry_kprobe_x86 #define ENTRY_X86(name) \ __check_entry_kprobe_x86; \ __set_entry_x86; \ .globl name; \ __ALIGN; \ name: #define END_X86(name) \ __unset_entry_x86; \ __check_entry_kprobe_x86; \ .size name, .-name #define KPROBE_ENTRY_X86(name) \ __check_entry_kprobe_x86; \ __set_kprobe_x86; \ .pushsection .kprobes.text, "ax"; \ .globl name; \ __ALIGN; \ name: #define KPROBE_END_X86(name) \ __unset_kprobe_x86; \ __check_entry_kprobe_x86; \ .size name, .-name; \ .popsection #endif /* _ASM_X86_LINKAGE_H */ #endif /* _ASM_X86_LINKAGE_H */