fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / linux / compat.h
index c9ab2a2..80b17f4 100644 (file)
@@ -4,7 +4,6 @@
  * These are the type definitions for the architecture specific
  * syscall compatibility layer.
  */
-#include <linux/config.h>
 
 #ifdef CONFIG_COMPAT
 
@@ -14,6 +13,7 @@
 
 #include <asm/compat.h>
 #include <asm/siginfo.h>
+#include <asm/signal.h>
 
 #define compat_jiffies_to_clock_t(x)   \
                (((unsigned long)(x) * COMPAT_USER_HZ) / HZ)
@@ -45,6 +45,32 @@ struct compat_tms {
        compat_clock_t          tms_cstime;
 };
 
+struct compat_timex {
+       compat_uint_t modes;
+       compat_long_t offset;
+       compat_long_t freq;
+       compat_long_t maxerror;
+       compat_long_t esterror;
+       compat_int_t status;
+       compat_long_t constant;
+       compat_long_t precision;
+       compat_long_t tolerance;
+       struct compat_timeval time;
+       compat_long_t tick;
+       compat_long_t ppsfreq;
+       compat_long_t jitter;
+       compat_int_t shift;
+       compat_long_t stabil;
+       compat_long_t jitcnt;
+       compat_long_t calcnt;
+       compat_long_t errcnt;
+       compat_long_t stbcnt;
+
+       compat_int_t :32; compat_int_t :32; compat_int_t :32; compat_int_t :32;
+       compat_int_t :32; compat_int_t :32; compat_int_t :32; compat_int_t :32;
+       compat_int_t :32; compat_int_t :32; compat_int_t :32; compat_int_t :32;
+};
+
 #define _COMPAT_NSIG_WORDS     (_COMPAT_NSIG / _COMPAT_NSIG_BPW)
 
 typedef struct {
@@ -121,6 +147,24 @@ typedef struct compat_sigevent {
        } _sigev_un;
 } compat_sigevent_t;
 
+struct compat_robust_list {
+       compat_uptr_t                   next;
+};
+
+struct compat_robust_list_head {
+       struct compat_robust_list       list;
+       compat_long_t                   futex_offset;
+       compat_uptr_t                   list_op_pending;
+};
+
+extern void compat_exit_robust_list(struct task_struct *curr);
+
+asmlinkage long
+compat_sys_set_robust_list(struct compat_robust_list_head __user *head,
+                          compat_size_t len);
+asmlinkage long
+compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
+                          compat_size_t __user *len_ptr);
 
 long compat_sys_semctl(int first, int second, int third, void __user *uptr);
 long compat_sys_msgsnd(int first, int second, int third, void __user *uptr);
@@ -152,7 +196,7 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp,
 #define BITS_TO_COMPAT_LONGS(bits) \
        (((bits)+BITS_PER_COMPAT_LONG-1)/BITS_PER_COMPAT_LONG)
 
-long compat_get_bitmap(unsigned long *mask, compat_ulong_t __user *umask,
+long compat_get_bitmap(unsigned long *mask, const compat_ulong_t __user *umask,
                       unsigned long bitmap_size);
 long compat_put_bitmap(compat_ulong_t __user *umask, unsigned long *mask,
                       unsigned long bitmap_size);
@@ -181,5 +225,14 @@ static inline int compat_timespec_compare(struct compat_timespec *lhs,
        return lhs->tv_nsec - rhs->tv_nsec;
 }
 
+asmlinkage long compat_sys_adjtimex(struct compat_timex __user *utp);
+
+extern int compat_printk(const char *fmt, ...);
+extern void sigset_from_compat(sigset_t *set, compat_sigset_t *compat);
+
+asmlinkage long compat_sys_migrate_pages(compat_pid_t pid,
+               compat_ulong_t maxnode, const compat_ulong_t __user *old_nodes,
+               const compat_ulong_t __user *new_nodes);
+
 #endif /* CONFIG_COMPAT */
 #endif /* _LINUX_COMPAT_H */