mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 20:42:39 +00:00 
			
		
		
		
	 95fccd465e
			
		
	
	
		95fccd465e
		
	
	
	
	
		
			
			The structure in the x86 jump label code uses the typedef jump_label_t, which is defined by the #ifdef arch type. The structure does not need to be duplicated there. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
		
			
				
	
	
		
			38 lines
		
	
	
		
			694 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			694 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef _ASM_X86_JUMP_LABEL_H
 | |
| #define _ASM_X86_JUMP_LABEL_H
 | |
| 
 | |
| #ifdef __KERNEL__
 | |
| 
 | |
| #include <linux/types.h>
 | |
| #include <asm/nops.h>
 | |
| 
 | |
| #define JUMP_LABEL_NOP_SIZE 5
 | |
| 
 | |
| # define JUMP_LABEL_INITIAL_NOP ".byte 0xe9 \n\t .long 0\n\t"
 | |
| 
 | |
| # define JUMP_LABEL(key, label)					\
 | |
| 	do {							\
 | |
| 		asm goto("1:"					\
 | |
| 			JUMP_LABEL_INITIAL_NOP			\
 | |
| 			".pushsection __jump_table,  \"a\" \n\t"\
 | |
| 			_ASM_PTR "1b, %l[" #label "], %c0 \n\t" \
 | |
| 			".popsection \n\t"			\
 | |
| 			: :  "i" (key) :  : label);		\
 | |
| 	} while (0)
 | |
| 
 | |
| #endif /* __KERNEL__ */
 | |
| 
 | |
| #ifdef CONFIG_X86_64
 | |
| typedef u64 jump_label_t;
 | |
| #else
 | |
| typedef u32 jump_label_t;
 | |
| #endif
 | |
| 
 | |
| struct jump_entry {
 | |
| 	jump_label_t code;
 | |
| 	jump_label_t target;
 | |
| 	jump_label_t key;
 | |
| };
 | |
| 
 | |
| #endif
 |