.. | .. |
---|
| 1 | +/* SPDX-License-Identifier: GPL-2.0-only */ |
---|
1 | 2 | /* |
---|
2 | 3 | * vvar.h: Shared vDSO/kernel variable declarations |
---|
3 | 4 | * Copyright (c) 2011 Andy Lutomirski |
---|
4 | | - * Subject to the GNU General Public License, version 2 |
---|
5 | 5 | * |
---|
6 | 6 | * A handful of variables are accessible (read-only) from userspace |
---|
7 | 7 | * code in the vsyscall page and the vdso. They are declared here. |
---|
.. | .. |
---|
19 | 19 | #ifndef _ASM_X86_VVAR_H |
---|
20 | 20 | #define _ASM_X86_VVAR_H |
---|
21 | 21 | |
---|
22 | | -#if defined(__VVAR_KERNEL_LDS) |
---|
23 | | - |
---|
24 | | -/* The kernel linker script defines its own magic to put vvars in the |
---|
25 | | - * right place. |
---|
| 22 | +#ifdef EMIT_VVAR |
---|
| 23 | +/* |
---|
| 24 | + * EMIT_VVAR() is used by the kernel linker script to put vvars in the |
---|
| 25 | + * right place. Also, it's used by kernel code to import offsets values. |
---|
26 | 26 | */ |
---|
27 | 27 | #define DECLARE_VVAR(offset, type, name) \ |
---|
28 | 28 | EMIT_VVAR(name, offset) |
---|
.. | .. |
---|
33 | 33 | |
---|
34 | 34 | #define DECLARE_VVAR(offset, type, name) \ |
---|
35 | 35 | extern type vvar_ ## name[CS_BASES] \ |
---|
36 | | - __attribute__((visibility("hidden"))); |
---|
| 36 | + __attribute__((visibility("hidden"))); \ |
---|
| 37 | + extern type timens_ ## name[CS_BASES] \ |
---|
| 38 | + __attribute__((visibility("hidden"))); \ |
---|
37 | 39 | |
---|
38 | 40 | #define VVAR(name) (vvar_ ## name) |
---|
| 41 | +#define TIMENS(name) (timens_ ## name) |
---|
39 | 42 | |
---|
40 | 43 | #define DEFINE_VVAR(type, name) \ |
---|
41 | 44 | type name[CS_BASES] \ |
---|