mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-24 05:04:00 +08:00
x86, vdso: Introduce VVAR marco for vdso32
This patch revamps the vvar.h for introduce the VVAR macro for vdso32. Reviewed-by: Andy Lutomirski <luto@amacapital.net> Signed-off-by: Stefani Seibold <stefani@seibold.net> Link: http://lkml.kernel.org/r/1395094933-14252-8-git-send-email-stefani@seibold.net Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
parent
0df1ea2b79
commit
ef721987ae
@ -26,6 +26,15 @@
|
||||
|
||||
#else
|
||||
|
||||
#ifdef BUILD_VDSO32
|
||||
|
||||
#define DECLARE_VVAR(offset, type, name) \
|
||||
extern type vvar_ ## name __attribute__((visibility("hidden")));
|
||||
|
||||
#define VVAR(name) (vvar_ ## name)
|
||||
|
||||
#else
|
||||
|
||||
extern char __vvar_page;
|
||||
|
||||
/* Base address of vvars. This is not ABI. */
|
||||
@ -39,12 +48,13 @@ extern char __vvar_page;
|
||||
static type const * const vvaraddr_ ## name = \
|
||||
(void *)(VVAR_ADDRESS + (offset));
|
||||
|
||||
#define VVAR(name) (*vvaraddr_ ## name)
|
||||
#endif
|
||||
|
||||
#define DEFINE_VVAR(type, name) \
|
||||
type name \
|
||||
__attribute__((section(".vvar_" #name), aligned(16))) __visible
|
||||
|
||||
#define VVAR(name) (*vvaraddr_ ## name)
|
||||
|
||||
#endif
|
||||
|
||||
/* DECLARE_VVAR(offset, type, name) */
|
||||
|
Loading…
Reference in New Issue
Block a user