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
Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git]
/
arch
/
x86_64
/
ia32
/
sys_ia32.c
diff --git
a/arch/x86_64/ia32/sys_ia32.c
b/arch/x86_64/ia32/sys_ia32.c
index
49bfe95
..
0a8fb7d
100644
(file)
--- a/
arch/x86_64/ia32/sys_ia32.c
+++ b/
arch/x86_64/ia32/sys_ia32.c
@@
-20,6
+20,7
@@
* This should be fixed.
*/
* This should be fixed.
*/
+#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/fs.h>
@@
-76,8
+77,6
@@
int cp_compat_stat(struct kstat *kbuf, struct compat_stat __user *ubuf)
{
int cp_compat_stat(struct kstat *kbuf, struct compat_stat __user *ubuf)
{
- compat_ino_t ino;
-
typeof(ubuf->st_uid) uid = 0;
typeof(ubuf->st_gid) gid = 0;
SET_UID(uid, kbuf->uid);
typeof(ubuf->st_uid) uid = 0;
typeof(ubuf->st_gid) gid = 0;
SET_UID(uid, kbuf->uid);
@@
-86,12
+85,9
@@
int cp_compat_stat(struct kstat *kbuf, struct compat_stat __user *ubuf)
return -EOVERFLOW;
if (kbuf->size >= 0x7fffffff)
return -EOVERFLOW;
return -EOVERFLOW;
if (kbuf->size >= 0x7fffffff)
return -EOVERFLOW;
- ino = kbuf->ino;
- if (sizeof(ino) < sizeof(kbuf->ino) && ino != kbuf->ino)
- return -EOVERFLOW;
if (!access_ok(VERIFY_WRITE, ubuf, sizeof(struct compat_stat)) ||
__put_user (old_encode_dev(kbuf->dev), &ubuf->st_dev) ||
if (!access_ok(VERIFY_WRITE, ubuf, sizeof(struct compat_stat)) ||
__put_user (old_encode_dev(kbuf->dev), &ubuf->st_dev) ||
- __put_user (ino, &ubuf->st_ino) ||
+ __put_user (
kbuf->
ino, &ubuf->st_ino) ||
__put_user (kbuf->mode, &ubuf->st_mode) ||
__put_user (kbuf->nlink, &ubuf->st_nlink) ||
__put_user (uid, &ubuf->st_uid) ||
__put_user (kbuf->mode, &ubuf->st_mode) ||
__put_user (kbuf->nlink, &ubuf->st_nlink) ||
__put_user (uid, &ubuf->st_uid) ||
@@
-513,6
+509,11
@@
sys32_waitpid(compat_pid_t pid, unsigned int *stat_addr, int options)
return compat_sys_wait4(pid, stat_addr, options, NULL);
}
return compat_sys_wait4(pid, stat_addr, options, NULL);
}
+int sys32_ni_syscall(int call)
+{
+ return -ENOSYS;
+}
+
/* 32-bit timeval and related flotsam. */
asmlinkage long
/* 32-bit timeval and related flotsam. */
asmlinkage long
@@
-910,7
+911,7
@@
long sys32_vm86_warning(void)
struct task_struct *me = current;
static char lastcomm[sizeof(me->comm)];
if (strncmp(lastcomm, me->comm, sizeof(lastcomm))) {
struct task_struct *me = current;
static char lastcomm[sizeof(me->comm)];
if (strncmp(lastcomm, me->comm, sizeof(lastcomm))) {
-
compat_
printk(KERN_INFO "%s: vm86 mode not supported on 64 bit kernel\n",
+ printk(KERN_INFO "%s: vm86 mode not supported on 64 bit kernel\n",
me->comm);
strncpy(lastcomm, me->comm, sizeof(lastcomm));
}
me->comm);
strncpy(lastcomm, me->comm, sizeof(lastcomm));
}
@@
-923,3
+924,12
@@
long sys32_lookup_dcookie(u32 addr_low, u32 addr_high,
return sys_lookup_dcookie(((u64)addr_high << 32) | addr_low, buf, len);
}
return sys_lookup_dcookie(((u64)addr_high << 32) | addr_low, buf, len);
}
+static int __init ia32_init (void)
+{
+ printk("IA32 emulation $Id: sys_ia32.c,v 1.32 2002/03/24 13:02:28 ak Exp $\n");
+ return 0;
+}
+
+__initcall(ia32_init);
+
+extern unsigned long ia32_sys_call_table[];