vsyscall.h 1.2 KB
Newer Older
V
Vegard Nossum 已提交
1 2
#ifndef ASM_X86__VSYSCALL_H
#define ASM_X86__VSYSCALL_H
L
Linus Torvalds 已提交
3 4 5 6

enum vsyscall_num {
	__NR_vgettimeofday,
	__NR_vtime,
7
	__NR_vgetcpu,
L
Linus Torvalds 已提交
8 9 10 11 12
};

#define VSYSCALL_START (-10UL << 20)
#define VSYSCALL_SIZE 1024
#define VSYSCALL_END (-2UL << 20)
13
#define VSYSCALL_MAPPED_PAGES 1
L
Linus Torvalds 已提交
14 15 16
#define VSYSCALL_ADDR(vsyscall_nr) (VSYSCALL_START+VSYSCALL_SIZE*(vsyscall_nr))

#ifdef __KERNEL__
17
#include <linux/seqlock.h>
L
Linus Torvalds 已提交
18

19
#define __section_vgetcpu_mode __attribute__ ((unused, __section__ (".vgetcpu_mode"), aligned(16)))
L
Linus Torvalds 已提交
20 21
#define __section_jiffies __attribute__ ((unused, __section__ (".jiffies"), aligned(16)))

22 23 24
/* Definitions for CONFIG_GENERIC_TIME definitions */
#define __section_vsyscall_gtod_data __attribute__ \
	((unused, __section__ (".vsyscall_gtod_data"),aligned(16)))
25 26
#define __section_vsyscall_clock __attribute__ \
	((unused, __section__ (".vsyscall_clock"),aligned(16)))
27 28
#define __vsyscall_fn \
	__attribute__ ((unused, __section__(".vsyscall_fn"))) notrace
L
Linus Torvalds 已提交
29

30 31 32 33
#define VGETCPU_RDTSCP	1
#define VGETCPU_LSL	2

extern int __vgetcpu_mode;
L
Linus Torvalds 已提交
34 35 36
extern volatile unsigned long __jiffies;

/* kernel space (writeable) */
37
extern int vgetcpu_mode;
L
Linus Torvalds 已提交
38 39
extern struct timezone sys_tz;

I
Ingo Molnar 已提交
40 41
extern void map_vsyscall(void);

L
Linus Torvalds 已提交
42 43
#endif /* __KERNEL__ */

V
Vegard Nossum 已提交
44
#endif /* ASM_X86__VSYSCALL_H */