microblaze: remove sys_ipc
The ipc system call is now unused in microblaze, as the system call table points directly to the indidual system calls for IPC. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Michal Simek <monstr@monstr.eu>
This commit is contained in:
parent
3863dbceac
commit
bfc0ca0d33
2 changed files with 1 additions and 100 deletions
|
@ -33,105 +33,6 @@
|
|||
#include <linux/unistd.h>
|
||||
|
||||
#include <asm/syscalls.h>
|
||||
/*
|
||||
* sys_ipc() is the de-multiplexer for the SysV IPC calls..
|
||||
*
|
||||
* This is really horribly ugly. This will be remove with new toolchain.
|
||||
*/
|
||||
asmlinkage long
|
||||
sys_ipc(uint call, int first, int second, int third, void *ptr, long fifth)
|
||||
{
|
||||
int version, ret;
|
||||
|
||||
version = call >> 16; /* hack for backward compatibility */
|
||||
call &= 0xffff;
|
||||
|
||||
ret = -EINVAL;
|
||||
switch (call) {
|
||||
case SEMOP:
|
||||
ret = sys_semop(first, (struct sembuf *)ptr, second);
|
||||
break;
|
||||
case SEMGET:
|
||||
ret = sys_semget(first, second, third);
|
||||
break;
|
||||
case SEMCTL:
|
||||
{
|
||||
union semun fourth;
|
||||
|
||||
if (!ptr)
|
||||
break;
|
||||
ret = (access_ok(VERIFY_READ, ptr, sizeof(long)) ? 0 : -EFAULT)
|
||||
|| (get_user(fourth.__pad, (void **)ptr)) ;
|
||||
if (ret)
|
||||
break;
|
||||
ret = sys_semctl(first, second, third, fourth);
|
||||
break;
|
||||
}
|
||||
case MSGSND:
|
||||
ret = sys_msgsnd(first, (struct msgbuf *) ptr, second, third);
|
||||
break;
|
||||
case MSGRCV:
|
||||
switch (version) {
|
||||
case 0: {
|
||||
struct ipc_kludge tmp;
|
||||
|
||||
if (!ptr)
|
||||
break;
|
||||
ret = (access_ok(VERIFY_READ, ptr, sizeof(tmp))
|
||||
? 0 : -EFAULT) || copy_from_user(&tmp,
|
||||
(struct ipc_kludge *) ptr, sizeof(tmp));
|
||||
if (ret)
|
||||
break;
|
||||
ret = sys_msgrcv(first, tmp.msgp, second, tmp.msgtyp,
|
||||
third);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
ret = sys_msgrcv(first, (struct msgbuf *) ptr,
|
||||
second, fifth, third);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case MSGGET:
|
||||
ret = sys_msgget((key_t) first, second);
|
||||
break;
|
||||
case MSGCTL:
|
||||
ret = sys_msgctl(first, second, (struct msqid_ds *) ptr);
|
||||
break;
|
||||
case SHMAT:
|
||||
switch (version) {
|
||||
default: {
|
||||
ulong raddr;
|
||||
ret = access_ok(VERIFY_WRITE, (ulong *) third,
|
||||
sizeof(ulong)) ? 0 : -EFAULT;
|
||||
if (ret)
|
||||
break;
|
||||
ret = do_shmat(first, (char *) ptr, second, &raddr);
|
||||
if (ret)
|
||||
break;
|
||||
ret = put_user(raddr, (ulong *) third);
|
||||
break;
|
||||
}
|
||||
case 1: /* iBCS2 emulator entry point */
|
||||
if (!segment_eq(get_fs(), get_ds()))
|
||||
break;
|
||||
ret = do_shmat(first, (char *) ptr, second,
|
||||
(ulong *) third);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SHMDT:
|
||||
ret = sys_shmdt((char *)ptr);
|
||||
break;
|
||||
case SHMGET:
|
||||
ret = sys_shmget(first, second, third);
|
||||
break;
|
||||
case SHMCTL:
|
||||
ret = sys_shmctl(first, second, (struct shmid_ds *) ptr);
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
asmlinkage long microblaze_vfork(struct pt_regs *regs)
|
||||
{
|
||||
|
|
|
@ -121,7 +121,7 @@ ENTRY(sys_call_table)
|
|||
.long sys_wait4
|
||||
.long sys_swapoff /* 115 */
|
||||
.long sys_sysinfo
|
||||
.long sys_ipc
|
||||
.long sys_ni_syscall /* old sys_ipc */
|
||||
.long sys_fsync
|
||||
.long sys_ni_syscall /* sys_sigreturn_wrapper */
|
||||
.long sys_clone /* 120 */
|
||||
|
|
Loading…
Reference in a new issue