aboutsummaryrefslogtreecommitdiffstats
path: root/ipc/compat.c
diff options
context:
space:
mode:
Diffstat (limited to 'ipc/compat.c')
-rw-r--r--ipc/compat.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/ipc/compat.c b/ipc/compat.c
index 2547f29dcd1b..1da2e2eb9d70 100644
--- a/ipc/compat.c
+++ b/ipc/compat.c
@@ -368,6 +368,50 @@ long compat_sys_msgrcv(int first, int second, int msgtyp, int third,
368 return do_msgrcv(first, uptr, second, msgtyp, third, 368 return do_msgrcv(first, uptr, second, msgtyp, third,
369 compat_do_msg_fill); 369 compat_do_msg_fill);
370} 370}
371
372COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second,
373 u32, third, compat_uptr_t, ptr, u32, fifth)
374{
375 int version;
376
377 version = call >> 16; /* hack for backward compatibility */
378 call &= 0xffff;
379
380 switch (call) {
381 case SEMOP:
382 /* struct sembuf is the same on 32 and 64bit :)) */
383 return sys_semtimedop(first, compat_ptr(ptr), second, NULL);
384 case SEMTIMEDOP:
385 return compat_sys_semtimedop(first, compat_ptr(ptr), second,
386 compat_ptr(fifth));
387 case SEMGET:
388 return sys_semget(first, second, third);
389 case SEMCTL:
390 return compat_sys_semctl(first, second, third, compat_ptr(ptr));
391
392 case MSGSND:
393 return compat_sys_msgsnd(first, second, third, compat_ptr(ptr));
394 case MSGRCV:
395 return compat_sys_msgrcv(first, second, fifth, third,
396 version, compat_ptr(ptr));
397 case MSGGET:
398 return sys_msgget(first, second);
399 case MSGCTL:
400 return compat_sys_msgctl(first, second, compat_ptr(ptr));
401
402 case SHMAT:
403 return compat_sys_shmat(first, second, third, version,
404 compat_ptr(ptr));
405 case SHMDT:
406 return sys_shmdt(compat_ptr(ptr));
407 case SHMGET:
408 return sys_shmget(first, (unsigned)second, third);
409 case SHMCTL:
410 return compat_sys_shmctl(first, second, compat_ptr(ptr));
411 }
412
413 return -ENOSYS;
414}
371#else 415#else
372long compat_sys_semctl(int semid, int semnum, int cmd, int arg) 416long compat_sys_semctl(int semid, int semnum, int cmd, int arg)
373{ 417{