2005-04-17 02:20:36 +04:00
# ifndef _ASM_X86_64_VSYSCALL_H_
# define _ASM_X86_64_VSYSCALL_H_
enum vsyscall_num {
__NR_vgettimeofday ,
__NR_vtime ,
2006-09-26 12:52:28 +04:00
__NR_vgetcpu ,
2005-04-17 02:20:36 +04:00
} ;
# define VSYSCALL_START (-10UL << 20)
# define VSYSCALL_SIZE 1024
# define VSYSCALL_END (-2UL << 20)
2006-12-07 04:14:09 +03:00
# define VSYSCALL_MAPPED_PAGES 1
2005-04-17 02:20:36 +04:00
# define VSYSCALL_ADDR(vsyscall_nr) (VSYSCALL_START+VSYSCALL_SIZE*(vsyscall_nr))
# ifdef __KERNEL__
2006-09-16 23:15:48 +04:00
# include <linux/seqlock.h>
2005-04-17 02:20:36 +04:00
2006-09-26 12:52:28 +04:00
# define __section_vgetcpu_mode __attribute__ ((unused, __section__ (".vgetcpu_mode"), aligned(16)))
2005-04-17 02:20:36 +04:00
# define __section_jiffies __attribute__ ((unused, __section__ (".jiffies"), aligned(16)))
2007-02-16 12:28:21 +03:00
/* Definitions for CONFIG_GENERIC_TIME definitions */
# define __section_vsyscall_gtod_data __attribute__ \
( ( unused , __section__ ( " .vsyscall_gtod_data " ) , aligned ( 16 ) ) )
2007-07-21 19:10:01 +04:00
# define __section_vsyscall_clock __attribute__ \
( ( unused , __section__ ( " .vsyscall_clock " ) , aligned ( 16 ) ) )
2007-02-16 12:28:21 +03:00
# define __vsyscall_fn __attribute__ ((unused,__section__(".vsyscall_fn")))
2005-04-17 02:20:36 +04:00
2006-09-26 12:52:28 +04:00
# define VGETCPU_RDTSCP 1
# define VGETCPU_LSL 2
extern int __vgetcpu_mode ;
2005-04-17 02:20:36 +04:00
extern volatile unsigned long __jiffies ;
/* kernel space (writeable) */
2006-09-26 12:52:28 +04:00
extern int vgetcpu_mode ;
2005-04-17 02:20:36 +04:00
extern struct timezone sys_tz ;
2008-01-30 15:32:39 +03:00
extern void map_vsyscall ( void ) ;
2005-04-17 02:20:36 +04:00
# endif /* __KERNEL__ */
# endif /* _ASM_X86_64_VSYSCALL_H_ */