git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git]
/
include
/
asm-parisc
/
compat.h
diff --git
a/include/asm-parisc/compat.h
b/include/asm-parisc/compat.h
index
ca0eac6
..
fe85790
100644
(file)
--- a/
include/asm-parisc/compat.h
+++ b/
include/asm-parisc/compat.h
@@
-5,6
+5,7
@@
*/
#include <linux/types.h>
#include <linux/sched.h>
*/
#include <linux/types.h>
#include <linux/sched.h>
+#include <linux/thread_info.h>
#define COMPAT_USER_HZ 100
#define COMPAT_USER_HZ 100
@@
-13,8
+14,10
@@
typedef s32 compat_ssize_t;
typedef s32 compat_time_t;
typedef s32 compat_clock_t;
typedef s32 compat_pid_t;
typedef s32 compat_time_t;
typedef s32 compat_clock_t;
typedef s32 compat_pid_t;
-typedef u32 compat_uid_t;
-typedef u32 compat_gid_t;
+typedef u32 __compat_uid_t;
+typedef u32 __compat_gid_t;
+typedef u32 __compat_uid32_t;
+typedef u32 __compat_gid32_t;
typedef u16 compat_mode_t;
typedef u32 compat_ino_t;
typedef u32 compat_dev_t;
typedef u16 compat_mode_t;
typedef u32 compat_ino_t;
typedef u32 compat_dev_t;
@@
-24,7
+27,7
@@
typedef u16 compat_nlink_t;
typedef u16 compat_ipc_pid_t;
typedef s32 compat_daddr_t;
typedef u32 compat_caddr_t;
typedef u16 compat_ipc_pid_t;
typedef s32 compat_daddr_t;
typedef u32 compat_caddr_t;
-typedef
u
32 compat_timer_t;
+typedef
s
32 compat_timer_t;
typedef s32 compat_int_t;
typedef s32 compat_long_t;
typedef s32 compat_int_t;
typedef s32 compat_long_t;
@@
-67,8
+70,8
@@
struct compat_stat {
compat_dev_t st_realdev;
u16 st_basemode;
u16 st_spareshort;
compat_dev_t st_realdev;
u16 st_basemode;
u16 st_spareshort;
-
compat_uid_t
st_uid;
-
compat_gid_t
st_gid;
+
__compat_uid32_t
st_uid;
+
__compat_gid32_t
st_gid;
u32 st_spare4[3];
};
u32 st_spare4[3];
};
@@
-136,10
+139,25
@@
static inline void __user *compat_ptr(compat_uptr_t uptr)
return (void __user *)(unsigned long)uptr;
}
return (void __user *)(unsigned long)uptr;
}
+static inline compat_uptr_t ptr_to_compat(void __user *uptr)
+{
+ return (u32)(unsigned long)uptr;
+}
+
static __inline__ void __user *compat_alloc_user_space(long len)
{
struct pt_regs *regs = ¤t->thread.regs;
return (void __user *)regs->gr[30];
}
static __inline__ void __user *compat_alloc_user_space(long len)
{
struct pt_regs *regs = ¤t->thread.regs;
return (void __user *)regs->gr[30];
}
+static inline int __is_compat_task(struct task_struct *t)
+{
+ return test_ti_thread_flag(t->thread_info, TIF_32BIT);
+}
+
+static inline int is_compat_task(void)
+{
+ return __is_compat_task(current);
+}
+
#endif /* _ASM_PARISC_COMPAT_H */
#endif /* _ASM_PARISC_COMPAT_H */