]> git.proxmox.com Git - qemu.git/commitdiff
linux-user: Merge pread/pwrite into pread64/pwrite64
authorPeter Maydell <peter.maydell@linaro.org>
Fri, 12 Oct 2012 03:55:51 +0000 (03:55 +0000)
committerBlue Swirl <blauwirbel@gmail.com>
Sat, 8 Dec 2012 18:49:30 +0000 (18:49 +0000)
The Linux syscalls underlying pread() and pwrite() take a 64 bit
offset on all architectures, even if some of them name the syscall
"pread/pwrite" rather than "pread64/pwrite64" for historical reasons.
So move the four QEMU target architectures (arm, i386, sparc,
unicore32) which were defining TARGET_NR_pread/pwrite to define
TARGET_NR_pread64/pwrite64 instead, and drop the TARGET_NR_pread/pwrite
implementation code completely.

(Based on examination of the kernel sources for the four architectures
this patch affects.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
linux-user/arm/syscall_nr.h
linux-user/i386/syscall_nr.h
linux-user/sparc/syscall_nr.h
linux-user/strace.list
linux-user/syscall.c
linux-user/unicore32/syscall_nr.h

index 5356395659abbd3ea2058d4f8e6255cd8387cd69..42d68550dc0bd9a89595a7ca95101f51102a86b6 100644 (file)
 #define TARGET_NR_rt_sigtimedwait              (177)
 #define TARGET_NR_rt_sigqueueinfo              (178)
 #define TARGET_NR_rt_sigsuspend                (179)
-#define TARGET_NR_pread                        (180)
-#define TARGET_NR_pwrite                       (181)
+#define TARGET_NR_pread64                       (180)
+#define TARGET_NR_pwrite64                      (181)
 #define TARGET_NR_chown                        (182)
 #define TARGET_NR_getcwd                       (183)
 #define TARGET_NR_capget                       (184)
index 74abfcacb410a64cdf036b6d93aec7e6cee18c21..f0803050d8d635546740cc1c6385090d540e6d4a 100644 (file)
 #define TARGET_NR_rt_sigtimedwait      177
 #define TARGET_NR_rt_sigqueueinfo      178
 #define TARGET_NR_rt_sigsuspend        179
-#define TARGET_NR_pread                180
-#define TARGET_NR_pwrite               181
+#define TARGET_NR_pread64               180
+#define TARGET_NR_pwrite64              181
 #define TARGET_NR_chown                182
 #define TARGET_NR_getcwd               183
 #define TARGET_NR_capget               184
index f201f9f788021de34038489cdcacef19e37296ce..061711cc033907a1d467e6f7ad31b9b77f7623f4 100644 (file)
@@ -62,8 +62,8 @@
 #define TARGET_NR_getpagesize         64 /* Common                                      */
 #define TARGET_NR_msync               65 /* Common in newer 1.3.x revs...               */
 #define TARGET_NR_vfork               66 /* Common                                      */
-#define TARGET_NR_pread               67 /* Linux Specific                              */
-#define TARGET_NR_pwrite              68 /* Linux Specific                              */
+#define TARGET_NR_pread64             67 /* Linux Specific */
+#define TARGET_NR_pwrite64            68 /* Linux Specific */
 #define TARGET_NR_geteuid32           69 /* Linux sparc32, sbrk under SunOS             */
 #define TARGET_NR_getegid32           70 /* Linux sparc32, sstk under SunOS             */
 #define TARGET_NR_mmap                71 /* Common                                      */
index af3c6a0ccede1120c1de2d9adb6e309063d3fc4e..08f115d843608a167cf8048845d101fa3673c806 100644 (file)
 #ifdef TARGET_NR_prctl
 { TARGET_NR_prctl, "prctl" , NULL, NULL, NULL },
 #endif
-#ifdef TARGET_NR_pread
-{ TARGET_NR_pread, "pread" , NULL, NULL, NULL },
-#endif
 #ifdef TARGET_NR_pread64
 { TARGET_NR_pread64, "pread64" , NULL, NULL, NULL },
 #endif
 #ifdef TARGET_NR_putpmsg
 { TARGET_NR_putpmsg, "putpmsg" , NULL, NULL, NULL },
 #endif
-#ifdef TARGET_NR_pwrite
-{ TARGET_NR_pwrite, "pwrite" , NULL, NULL, NULL },
-#endif
 #ifdef TARGET_NR_pwrite64
 { TARGET_NR_pwrite64, "pwrite64" , NULL, NULL, NULL },
 #endif
index e4291ed776773219958eb62b56773ed7433751f8..31d527646593394eb1944b8ecef152629f05862e 100644 (file)
@@ -7449,24 +7449,6 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1,
         goto unimplemented;
 #endif
 #endif
-#ifdef TARGET_NR_pread
-    case TARGET_NR_pread:
-        if (regpairs_aligned(cpu_env))
-            arg4 = arg5;
-        if (!(p = lock_user(VERIFY_WRITE, arg2, arg3, 0)))
-            goto efault;
-        ret = get_errno(pread(arg1, p, arg3, arg4));
-        unlock_user(p, arg2, ret);
-        break;
-    case TARGET_NR_pwrite:
-        if (regpairs_aligned(cpu_env))
-            arg4 = arg5;
-        if (!(p = lock_user(VERIFY_READ, arg2, arg3, 1)))
-            goto efault;
-        ret = get_errno(pwrite(arg1, p, arg3, arg4));
-        unlock_user(p, arg2, 0);
-        break;
-#endif
 #ifdef TARGET_NR_pread64
     case TARGET_NR_pread64:
         if (regpairs_aligned(cpu_env)) {
index 9c72d84d804bf4f00e0435bb0e2dafb1728067de..486b8c45a037f965a5be909c326d57e43138b914 100644 (file)
 #define TARGET_NR_rt_sigtimedwait               177
 #define TARGET_NR_rt_sigqueueinfo               178
 #define TARGET_NR_rt_sigsuspend                 179
-#define TARGET_NR_pread                         180
-#define TARGET_NR_pwrite                        181
+#define TARGET_NR_pread64                       180
+#define TARGET_NR_pwrite64                      181
 #define TARGET_NR_chown                         182
 #define TARGET_NR_getcwd                        183
 #define TARGET_NR_capget                        184