Implement 32-bit compatibility for waitid(2).

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Ralf Baechle
2005-02-16 21:21:29 +00:00
parent a19050f301
commit 54f2da755b
4 changed files with 51 additions and 2 deletions

View File

@@ -221,6 +221,28 @@ sys32_waitpid(compat_pid_t pid, unsigned int *stat_addr, int options)
return compat_sys_wait4(pid, stat_addr, options, NULL);
}
asmlinkage long
sysn32_waitid(int which, compat_pid_t pid,
siginfo_t __user *uinfo, int options,
struct compat_rusage __user *uru)
{
struct rusage ru;
long ret;
mm_segment_t old_fs = get_fs();
set_fs (KERNEL_DS);
ret = sys_waitid(which, pid, uinfo, options,
uru ? (struct rusage __user *) &ru : NULL);
set_fs (old_fs);
if (ret < 0 || uinfo->si_signo == 0)
return ret;
if (uru)
ret = put_compat_rusage(&ru, uru);
return ret;
}
struct sysinfo32 {
s32 uptime;
u32 loads[3];