Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ef721987 authored by Stefani Seibold's avatar Stefani Seibold Committed by H. Peter Anvin
Browse files

x86, vdso: Introduce VVAR marco for vdso32



This patch revamps the vvar.h for introduce the VVAR macro for vdso32.

Reviewed-by: default avatarAndy Lutomirski <luto@amacapital.net>
Signed-off-by: default avatarStefani Seibold <stefani@seibold.net>
Link: http://lkml.kernel.org/r/1395094933-14252-8-git-send-email-stefani@seibold.net


Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
parent 0df1ea2b
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -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) */