Index: linux-2.6.7/include/linux/timex.h
===================================================================
--- linux-2.6.7.orig/include/linux/timex.h
+++ linux-2.6.7/include/linux/timex.h
@@ -409,6 +409,8 @@
 	time_interpolator_last_counter = counter;
 }
 
+/* User level access to interpolator information */
+extern int get_interpolator_info(struct time_interpolator *);
 #else /* !CONFIG_TIME_INTERPOLATION */
 
 static inline void
Index: linux-2.6.7/arch/ia64/kernel/entry.S
===================================================================
--- linux-2.6.7.orig/arch/ia64/kernel/entry.S
+++ linux-2.6.7/arch/ia64/kernel/entry.S
@@ -1514,7 +1514,7 @@
 	data8 sys_mq_getsetattr
 	data8 sys_ni_syscall			// reserved for kexec_load
 	data8 sys_ni_syscall
-	data8 sys_ni_syscall			// 1270
+	data8 sys_get_interpolator_info		// 1270
 	data8 sys_ni_syscall
 	data8 sys_ni_syscall
 	data8 sys_ni_syscall
Index: linux-2.6.7/include/asm-ia64/unistd.h
===================================================================
--- linux-2.6.7.orig/include/asm-ia64/unistd.h
+++ linux-2.6.7/include/asm-ia64/unistd.h
@@ -259,7 +259,7 @@
 #define __NR_mq_getsetattr		1267
 #define __NR_kexec_load			1268
 #define __NR_vserver			1269
-
+#define __NR_get_interpolator_info	1270
 #ifdef __KERNEL__
 
 #include <linux/config.h>
Index: linux-2.6.7/include/linux/syscalls.h
===================================================================
--- linux-2.6.7.orig/include/linux/syscalls.h
+++ linux-2.6.7/include/linux/syscalls.h
@@ -50,6 +50,7 @@
 struct tms;
 struct utimbuf;
 struct mq_attr;
+struct time_interpolator;
 
 #include <linux/config.h>
 #include <linux/types.h>
@@ -484,5 +485,5 @@
 asmlinkage long sys_syslog(int type, char __user *buf, int len);
 asmlinkage long sys_uselib(const char __user *library);
 asmlinkage long sys_ni_syscall(void);
-
+asmlinkage long sys_get_interpolator_info(struct time_interpolator *);
 #endif
Index: linux-2.6.7/kernel/timer.c
===================================================================
--- linux-2.6.7.orig/kernel/timer.c
+++ linux-2.6.7/kernel/timer.c
@@ -1490,6 +1490,29 @@
 	write_sequnlock_irq(&xtime_lock);
 	spin_unlock(&time_interpolator_lock);
 }
+asmlinkage long sys_get_interpolator_info(struct time_interpolator *user_ti)
+{
+         int i;
+
+         i = 0;
+         if (time_interpolator) {
+                 if (copy_to_user(user_ti,time_interpolator,sizeof(struct time_interpolator)))
+                         i = -EFAULT;
+         }
+         else
+                 i = -ENOENT;
+         return i;
+}
+
+EXPORT_SYMBOL(sys_get_interpolator_info);
+
+#else
+
+asmlinkage long sys_get_interpolator_info(struct time_interpolator *user_ti)
+{
+	return -ENOENT;
+}
+
 #endif /* CONFIG_TIME_INTERPOLATION */
 
 /**