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