Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
alternative-asm.h
Go to the documentation of this file.
1 #ifndef _ASM_X86_ALTERNATIVE_ASM_H
2 #define _ASM_X86_ALTERNATIVE_ASM_H
3 
4 #ifdef __ASSEMBLY__
5 
6 #include <asm/asm.h>
7 
8 #ifdef CONFIG_SMP
9  .macro LOCK_PREFIX
10 672: lock
11  .pushsection .smp_locks,"a"
12  .balign 4
13  .long 672b - .
14  .popsection
15  .endm
16 #else
17  .macro LOCK_PREFIX
18  .endm
19 #endif
20 
21 .macro altinstruction_entry orig alt feature orig_len alt_len
22  .long \orig - .
23  .long \alt - .
24  .word \feature
25  .byte \orig_len
26  .byte \alt_len
27 .endm
28 
29 #endif /* __ASSEMBLY__ */
30 
31 #endif /* _ASM_X86_ALTERNATIVE_ASM_H */