2008-06-18 19:08:48 +04:00
# ifndef ASM_X86__VSYSCALL_H
# define ASM_X86__VSYSCALL_H
2005-04-17 02:20:36 +04:00
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 ) ) )
2008-05-12 23:20:41 +04:00
# define __vsyscall_fn \
__attribute__ ( ( unused , __section__ ( " .vsyscall_fn " ) ) ) notrace
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__ */
2008-06-18 19:08:48 +04:00
# endif /* ASM_X86__VSYSCALL_H */