]> git.hungrycats.org Git - linux/commitdiff
ppc64: compat_sys_fcntl from Stephen Rothwell, remove socketcall emulation
authorAnton Blanchard <anton@samba.org>
Sat, 15 Mar 2003 03:26:35 +0000 (14:26 +1100)
committerAnton Blanchard <anton@samba.org>
Sat, 15 Mar 2003 03:26:35 +0000 (14:26 +1100)
arch/ppc64/kernel/misc.S
arch/ppc64/kernel/sys32.S
arch/ppc64/kernel/sys_ppc32.c
include/asm-ppc64/compat.h
include/asm-ppc64/fcntl.h

index 3c51203499227712d4b354bb2bf389565aaa80e2..81200e28f16b92c3028b89e19d51b42873a5a40e 100644 (file)
@@ -557,7 +557,7 @@ _GLOBAL(sys_call_table32)
        .llong .sys32_umount
        .llong .sys_ni_syscall          /* old lock syscall */
        .llong .sys32_ioctl
-       .llong .sys32_fcntl             /* 55 */
+       .llong .compat_sys_fcntl        /* 55 */
        .llong .sys_ni_syscall          /* old mpx syscall */
        .llong .sys32_setpgid
        .llong .sys_ni_syscall          /* old ulimit syscall */
@@ -706,7 +706,7 @@ _GLOBAL(sys_call_table32)
        .llong .sys_ni_syscall          /* reserved for MacOnLinux */
        .llong .sys_getdents64
        .llong .sys_pivot_root
-       .llong .sys32_fcntl64
+       .llong .compat_sys_fcntl64
        .llong .sys_madvise             /* 205 */
        .llong .sys_mincore
        .llong .sys_gettid
index cb924eb538a222355bcc70c065ebcbfebbcd02e5..6c7888abb88d4e76ec094f3437ad949df7bebc71 100644 (file)
@@ -25,287 +25,3 @@ _GLOBAL(ppc32_lseek)
        extsw           r4,r4           /* sign extend off_t offset parm */
        b               .sys_lseek
 
-_GLOBAL(compat_sys_socketcall) /* r3=call, r4=args */
-       cmpwi           r3, 1
-       blt-            .do_einval
-       cmpwi           r3, 17
-       bgt-            .do_einval
-       subi            r3, r3, 1       /* index into socketcall_table vectors and jmp */
-       sldi            r3, r3, 3       /* each entry is 8 bytes */
-       LOADADDR(r10,.socketcall_table_begin)
-       ldx             r10, r10, r3
-       mtctr           r10
-       bctr
-
-/* Socket function vectored fix ups for 32 bit */
-_STATIC(do_sys_socket) /* sys_socket(int, int, int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwa             r4,4(r10)
-3:     lwa             r5,8(r10)
-       b               .sys_socket
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .previous
-
-_STATIC(do_sys_bind) /* sys_bind(int fd, struct sockaddr *, int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwa             r5,8(r10)
-       b               .sys_bind
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .previous
-
-_STATIC(do_sys_connect) /* sys_connect(int, struct sockaddr *, int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwa             r5,8(r10)
-       b               .sys_connect
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .previous
-
-_STATIC(do_sys_listen) /* sys_listen(int, int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwa             r4,4(r10)
-       b               .sys_listen
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .previous
-
-_STATIC(do_sys_accept) /* sys_accept(int, struct sockaddr *, int *) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwz             r5,8(r10)
-       b               .sys_accept
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .previous
-
-_STATIC(do_sys_getsockname) /* sys_getsockname(int, struct sockaddr *, int *) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwz             r5,8(r10)
-       b               .sys_getsockname
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .previous
-
-_STATIC(do_sys_getpeername) /* sys_getpeername(int, struct sockaddr *, int *) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwz             r5,8(r10)
-       b               .sys_getpeername
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .previous
-
-_STATIC(do_sys_socketpair) /* sys_socketpair(int, int, int, int *) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwa             r4,4(r10)
-3:     lwa             r5,8(r10)
-4:     lwz             r6,12(r10)
-       b               .sys_socketpair
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .llong          4b,.do_efault
-       .previous
-
-_STATIC(do_sys_send) /* sys_send(int, void *, size_t, unsigned int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwz             r5,8(r10)
-4:     lwz             r6,12(r10)
-       b               .sys_send
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .llong          4b,.do_efault
-       .previous
-
-_STATIC(do_sys_recv) /* sys_recv(int, void *, size_t, unsigned int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwz             r5,8(r10)
-4:     lwz             r6,12(r10)
-       b               .sys_recv
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .llong          4b,.do_efault
-       .previous
-
-_STATIC(do_sys_sendto) /* sys32_sendto(int, u32, compat_size_t, unsigned int, u32, int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwz             r5,8(r10)
-4:     lwz             r6,12(r10)
-5:     lwz             r7,16(r10)
-6:     lwz             r8,20(r10)
-       b               .sys_sendto
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .llong          4b,.do_efault
-       .llong          5b,.do_efault
-       .llong          6b,.do_efault
-       .previous
-
-_STATIC(do_sys_recvfrom) /* sys32_recvfrom(int, u32, compat_size_t, unsigned int, u32, u32) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwz             r5,8(r10)
-4:     lwz             r6,12(r10)
-5:     lwz             r7,16(r10)
-6:     lwz             r8,20(r10)
-       b               .sys_recvfrom
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .llong          4b,.do_efault
-       .llong          5b,.do_efault
-       .llong          6b,.do_efault
-       .previous
-
-_STATIC(do_sys_shutdown) /* sys_shutdown(int, int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwa             r4,4(r10)
-       b               .sys_shutdown
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .previous
-
-_STATIC(do_sys_setsockopt) /* compat_sys_setsockopt(int, int, int, char *, int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwa             r4,4(r10)
-3:     lwa             r5,8(r10)
-4:     lwz             r6,12(r10)
-5:     lwa             r7,16(r10)
-       b               .compat_sys_setsockopt
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .llong          4b,.do_efault
-       .llong          5b,.do_efault
-       .previous
-
-_STATIC(do_sys_getsockopt) /* compat_sys_getsockopt(int, int, int, u32, u32) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwa             r4,4(r10)
-3:     lwa             r5,8(r10)
-4:     lwz             r6,12(r10)
-5:     lwz             r7,16(r10)
-       b               .compat_sys_getsockopt
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .llong          4b,.do_efault
-       .llong          5b,.do_efault
-       .previous
-
-_STATIC(do_sys_sendmsg) /* compat_sys_sendmsg(int, struct compat_msghdr *, unsigned int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwa             r5,8(r10)
-       b               .compat_sys_sendmsg
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .previous
-
-_STATIC(do_sys_recvmsg) /* compat_sys_recvmsg(int, struct compat_msghdr *, unsigned int) */
-       mr              r10,r4
-1:     lwa             r3,0(r10)
-2:     lwz             r4,4(r10)
-3:     lwa             r5,8(r10)
-       b               .compat_sys_recvmsg
-       .section        __ex_table,"a"
-       .align          3
-       .llong          1b,.do_efault
-       .llong          2b,.do_efault
-       .llong          3b,.do_efault
-       .previous
-
-_STATIC(do_einval)
-       li      r3,-EINVAL
-       blr
-
-_STATIC(do_efault)
-       li      r3,-EFAULT
-       blr
-
-       .balign 8
-_GLOBAL(socketcall_table_begin)
-       .llong          .do_sys_socket
-       .llong          .do_sys_bind
-       .llong          .do_sys_connect
-       .llong          .do_sys_listen
-       .llong          .do_sys_accept
-       .llong          .do_sys_getsockname
-       .llong          .do_sys_getpeername
-       .llong          .do_sys_socketpair
-       .llong          .do_sys_send
-       .llong          .do_sys_recv
-       .llong          .do_sys_sendto
-       .llong          .do_sys_recvfrom
-       .llong          .do_sys_shutdown
-       .llong          .do_sys_setsockopt
-       .llong          .do_sys_getsockopt
-       .llong          .do_sys_sendmsg
-       .llong          .do_sys_recvmsg
-_GLOBAL(socketcall_table_end)
index 1954d4ba142644b3490b52a9b577f7680fd27655..36970e3b4fb5b929276873fc7b5f760f4da8fc68 100644 (file)
@@ -246,32 +246,6 @@ out:
        return ret;
 }
 
-extern asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg);
-asmlinkage long sys32_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       switch (cmd) {
-       case F_GETLK:
-       case F_SETLK:
-       case F_SETLKW:
-       {
-               struct flock f;
-               mm_segment_t old_fs;
-               long ret;
-
-               if(get_compat_flock(&f, (struct compat_flock *)arg))
-                       return -EFAULT;
-               old_fs = get_fs(); set_fs (KERNEL_DS);
-               ret = sys_fcntl(fd, cmd, (unsigned long)&f);
-               set_fs (old_fs);
-               if(put_compat_flock(&f, (struct compat_flock *)arg))
-                       return -EFAULT;
-               return ret;
-       }
-       default:
-               return sys_fcntl(fd, cmd, (unsigned long)arg);
-       }
-}
-
 struct ncp_mount_data32_v3 {
         int version;
         unsigned int ncp_fd;
@@ -2848,13 +2822,6 @@ asmlinkage long sys32_umount(char * name, u32 flags)
        return sys_umount(name, (int)flags);
 }
 
-asmlinkage long sys32_fcntl64(unsigned int fd, unsigned int cmd, unsigned long arg)
-{
-       if (cmd >= F_GETLK64 && cmd <= F_SETLKW64)
-               return sys_fcntl(fd, cmd + F_GETLK - F_GETLK64, arg);
-       return sys32_fcntl(fd, cmd, arg);
-}
-
 struct __sysctl_args32 {
        u32 name;
        int nlen;
index 4385fb4494c5fa3e7e03b7d7797c2dfa2c67bc11..75cb531ca3e3e6bdfda25b3783c69009a495911c 100644 (file)
@@ -61,7 +61,18 @@ struct compat_flock {
        compat_off_t    l_start;
        compat_off_t    l_len;
        compat_pid_t    l_pid;
-       short           __unused;
+};
+
+#define F_GETLK64      12      /*  using 'struct flock64' */
+#define F_SETLK64      13
+#define F_SETLKW64     14
+
+struct compat_flock64 {
+       short           l_type;
+       short           l_whence;
+       compat_loff_t   l_start;
+       compat_loff_t   l_len;
+       compat_pid_t    l_pid;
 };
 
 struct compat_statfs {
@@ -84,4 +95,7 @@ typedef u32           compat_old_sigset_t;
 
 typedef u32            compat_sigset_word;
 
+#define COMPAT_OFF_T_MAX       0x7fffffff
+#define COMPAT_LOFF_T_MAX      0x7fffffffffffffffL
+
 #endif /* _ASM_PPC64_COMPAT_H */
index 19ba4d6dc63ce43cbf0ba6a36427217b938c0f49..1ef83570b4e4d97aebdfdef2dc0cfe1722880a4b 100644 (file)
 #define F_SETSIG       10      /*  for sockets. */
 #define F_GETSIG       11      /*  for sockets. */
 
-#define F_GETLK64      12      /*  using 'struct flock64' */
-#define F_SETLK64      13
-#define F_SETLKW64     14
-
 /* for F_[GET|SET]FL */
 #define FD_CLOEXEC     1       /* actually anything with low bit set goes */
 
@@ -87,13 +83,6 @@ struct flock {
        pid_t l_pid;
 };
 
-struct flock64 {
-       short  l_type;
-       short  l_whence;
-       loff_t l_start;
-       loff_t l_len;
-       pid_t  l_pid;
-};
-
 #define F_LINUX_SPECIFIC_BASE  1024
+
 #endif /* _PPC64_FCNTL_H */