xref: /linux/arch/x86/include/asm/paravirt-base.h (revision 6f7e6393d1ce636bb7ec77a7fe7b77458fddf701)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
3 #ifndef _ASM_X86_PARAVIRT_BASE_H
4 #define _ASM_X86_PARAVIRT_BASE_H
5 
6 /*
7  * Wrapper type for pointers to code which uses the non-standard
8  * calling convention.  See PV_CALL_SAVE_REGS_THUNK below.
9  */
10 struct paravirt_callee_save {
11 	void *func;
12 };
13 
14 struct pv_info {
15 #ifdef CONFIG_PARAVIRT_XXL
16 	u16 extra_user_64bit_cs;  /* __USER_CS if none */
17 #endif
18 	const char *name;
19 };
20 
21 void default_banner(void);
22 extern struct pv_info pv_info;
23 unsigned long paravirt_ret0(void);
24 #ifdef CONFIG_PARAVIRT_XXL
25 u64 _paravirt_ident_64(u64);
26 #endif
27 #define paravirt_nop	((void *)nop_func)
28 
29 #ifdef CONFIG_PARAVIRT_SPINLOCKS
30 void paravirt_set_cap(void);
31 #else
32 static inline void paravirt_set_cap(void) { }
33 #endif
34 
35 #endif /* _ASM_X86_PARAVIRT_BASE_H */
36