Fix some bugs & typing problems.

This commit is contained in:
fvdl 1995-09-07 21:48:59 +00:00
parent 1a86f1c724
commit a396a097b7
23 changed files with 939 additions and 67 deletions

View File

@ -1,4 +1,4 @@
$NetBSD: syscalls.master,v 1.11 1995/08/27 20:51:53 fvdl Exp $
$NetBSD: syscalls.master,v 1.12 1995/09/07 21:49:02 fvdl Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@ -87,7 +87,7 @@
43 STD { int linux_times(struct times *tms); }
44 UNIMPL linux_prof
45 STD { int linux_brk(char *nsize); }
46 NOARGS { int setgid(uid_t gid); }
46 NOARGS { int setgid(gid_t gid); }
47 NOARGS { gid_t getgid(void); }
48 STD { int linux_signal(int sig, linux_handler_t handler); }
49 NOARGS { uid_t geteuid(void); }
@ -113,8 +113,8 @@
struct linux_sigaction *osa); }
68 STD { int linux_siggetmask(void); }
69 STD { int linux_sigsetmask(linux_sigset_t mask); }
70 NOARGS { int compat_43_setreuid(int ruid, int euid); }
71 NOARGS { int compat_43_setregid(int rgid, int egid); }
70 STD { int linux_setreuid(int ruid, int euid); }
71 STD { int linux_setregid(int rgid, int egid); }
72 STD { int linux_sigsuspend(caddr_t restart, int oldmask, \
int mask); }
73 STD { int linux_sigpending(linux_sigset_t *mask); }
@ -144,7 +144,7 @@
92 STD { int linux_truncate(char *path, long length); }
93 NOARGS { int compat_43_ftruncate(int fd, long length); }
94 NOARGS { int fchmod(int fd, int mode); }
95 NOARGS { int fchown(int fd, int uid, int gid); }
95 STD { int linux_fchown(int fd, int uid, int gid); }
96 NOARGS { int getpriority(int which, int who); }
97 NOARGS { int setpriority(int which, int who, int prio); }
98 NOARGS { int profil(caddr_t samples, u_int size, \

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_break.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_break.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_file.c,v 1.9 1995/08/27 20:51:48 fvdl Exp $ */
/* $NetBSD: linux_file.c,v 1.10 1995/09/07 21:48:59 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -487,7 +487,7 @@ linux_lstat(p, uap, retval)
}
/*
* The following syscalls are only here because of the alternate path check.
* The following syscalls are mostly here because of the alternate path check.
*/
int
linux_access(p, uap, retval)
@ -521,7 +521,8 @@ linux_unlink(p, uap, retval)
return unlink(p, uap, retval);
}
int linux_chdir(p, uap, retval)
int
linux_chdir(p, uap, retval)
struct proc *p;
struct linux_chdir_args /* {
syscallarg(char *) path;
@ -546,10 +547,19 @@ linux_mknod(p, uap, retval)
register_t *retval;
{
caddr_t sg = stackgap_init(p->p_emul);
struct mkfifo_args bma;
LINUX_CHECK_ALT_CREAT(p, &sg, SCARG(uap, path));
return mknod(p, uap, retval);
/*
* BSD handles FIFOs seperately
*/
if (SCARG(uap, mode) & S_IFIFO) {
SCARG(&bma, path) = SCARG(uap, path);
SCARG(&bma, mode) = SCARG(uap, mode);
return mkfifo(p, uap, retval);
} else
return mknod(p, uap, retval);
}
int
@ -578,11 +588,39 @@ linux_chown(p, uap, retval)
} */ *uap;
register_t *retval;
{
struct chown_args bca;
caddr_t sg = stackgap_init(p->p_emul);
LINUX_CHECK_ALT_EXIST(p, &sg, SCARG(uap, path));
return chmod(p, uap, retval);
SCARG(&bca, path) = SCARG(uap, path);
SCARG(&bca, uid) = ((linux_uid_t)SCARG(uap, uid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, uid);
SCARG(&bca, gid) = ((linux_gid_t)SCARG(uap, gid) == (linux_gid_t)-1) ?
(gid_t)-1 : SCARG(uap, gid);
return chown(p, &bca, retval);
}
int
linux_fchown(p, uap, retval)
struct proc *p;
struct linux_fchown_args /* {
syscallarg(int) fd;
syscallarg(int) uid;
syscallarg(int) gid;
} */ *uap;
register_t *retval;
{
struct fchown_args bfa;
SCARG(&bfa, fd) = SCARG(uap, fd);
SCARG(&bfa, uid) = ((linux_uid_t)SCARG(uap, uid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, uid);
SCARG(&bfa, gid) = ((linux_gid_t)SCARG(uap, gid) == (linux_gid_t)-1) ?
(gid_t)-1 : SCARG(uap, gid);
return fchown(p, &bfa, retval);
}
int

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_llseek.c,v 1.9 1995/08/27 20:51:48 fvdl Exp $ */
/* $NetBSD: linux_llseek.c,v 1.10 1995/09/07 21:48:59 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -487,7 +487,7 @@ linux_lstat(p, uap, retval)
}
/*
* The following syscalls are only here because of the alternate path check.
* The following syscalls are mostly here because of the alternate path check.
*/
int
linux_access(p, uap, retval)
@ -521,7 +521,8 @@ linux_unlink(p, uap, retval)
return unlink(p, uap, retval);
}
int linux_chdir(p, uap, retval)
int
linux_chdir(p, uap, retval)
struct proc *p;
struct linux_chdir_args /* {
syscallarg(char *) path;
@ -546,10 +547,19 @@ linux_mknod(p, uap, retval)
register_t *retval;
{
caddr_t sg = stackgap_init(p->p_emul);
struct mkfifo_args bma;
LINUX_CHECK_ALT_CREAT(p, &sg, SCARG(uap, path));
return mknod(p, uap, retval);
/*
* BSD handles FIFOs seperately
*/
if (SCARG(uap, mode) & S_IFIFO) {
SCARG(&bma, path) = SCARG(uap, path);
SCARG(&bma, mode) = SCARG(uap, mode);
return mkfifo(p, uap, retval);
} else
return mknod(p, uap, retval);
}
int
@ -578,11 +588,39 @@ linux_chown(p, uap, retval)
} */ *uap;
register_t *retval;
{
struct chown_args bca;
caddr_t sg = stackgap_init(p->p_emul);
LINUX_CHECK_ALT_EXIST(p, &sg, SCARG(uap, path));
return chmod(p, uap, retval);
SCARG(&bca, path) = SCARG(uap, path);
SCARG(&bca, uid) = ((linux_uid_t)SCARG(uap, uid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, uid);
SCARG(&bca, gid) = ((linux_gid_t)SCARG(uap, gid) == (linux_gid_t)-1) ?
(gid_t)-1 : SCARG(uap, gid);
return chown(p, &bca, retval);
}
int
linux_fchown(p, uap, retval)
struct proc *p;
struct linux_fchown_args /* {
syscallarg(int) fd;
syscallarg(int) uid;
syscallarg(int) gid;
} */ *uap;
register_t *retval;
{
struct fchown_args bfa;
SCARG(&bfa, fd) = SCARG(uap, fd);
SCARG(&bfa, uid) = ((linux_uid_t)SCARG(uap, uid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, uid);
SCARG(&bfa, gid) = ((linux_gid_t)SCARG(uap, gid) == (linux_gid_t)-1) ?
(gid_t)-1 : SCARG(uap, gid);
return fchown(p, &bfa, retval);
}
int

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_misc.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_misc.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_misc_notalpha.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_misc_notalpha.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_oldmmap.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_oldmmap.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_oldolduname.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_oldolduname.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_oldselect.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_oldselect.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_olduname.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_olduname.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_pipe.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_pipe.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
$NetBSD: syscalls.master,v 1.11 1995/08/27 20:51:53 fvdl Exp $
$NetBSD: syscalls.master,v 1.12 1995/09/07 21:49:02 fvdl Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@ -87,7 +87,7 @@
43 STD { int linux_times(struct times *tms); }
44 UNIMPL linux_prof
45 STD { int linux_brk(char *nsize); }
46 NOARGS { int setgid(uid_t gid); }
46 NOARGS { int setgid(gid_t gid); }
47 NOARGS { gid_t getgid(void); }
48 STD { int linux_signal(int sig, linux_handler_t handler); }
49 NOARGS { uid_t geteuid(void); }
@ -113,8 +113,8 @@
struct linux_sigaction *osa); }
68 STD { int linux_siggetmask(void); }
69 STD { int linux_sigsetmask(linux_sigset_t mask); }
70 NOARGS { int compat_43_setreuid(int ruid, int euid); }
71 NOARGS { int compat_43_setregid(int rgid, int egid); }
70 STD { int linux_setreuid(int ruid, int euid); }
71 STD { int linux_setregid(int rgid, int egid); }
72 STD { int linux_sigsuspend(caddr_t restart, int oldmask, \
int mask); }
73 STD { int linux_sigpending(linux_sigset_t *mask); }
@ -144,7 +144,7 @@
92 STD { int linux_truncate(char *path, long length); }
93 NOARGS { int compat_43_ftruncate(int fd, long length); }
94 NOARGS { int fchmod(int fd, int mode); }
95 NOARGS { int fchown(int fd, int uid, int gid); }
95 STD { int linux_fchown(int fd, int uid, int gid); }
96 NOARGS { int getpriority(int which, int who); }
97 NOARGS { int setpriority(int which, int who, int prio); }
98 NOARGS { int profil(caddr_t samples, u_int size, \

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_file.c,v 1.9 1995/08/27 20:51:48 fvdl Exp $ */
/* $NetBSD: linux_file.c,v 1.10 1995/09/07 21:48:59 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -487,7 +487,7 @@ linux_lstat(p, uap, retval)
}
/*
* The following syscalls are only here because of the alternate path check.
* The following syscalls are mostly here because of the alternate path check.
*/
int
linux_access(p, uap, retval)
@ -521,7 +521,8 @@ linux_unlink(p, uap, retval)
return unlink(p, uap, retval);
}
int linux_chdir(p, uap, retval)
int
linux_chdir(p, uap, retval)
struct proc *p;
struct linux_chdir_args /* {
syscallarg(char *) path;
@ -546,10 +547,19 @@ linux_mknod(p, uap, retval)
register_t *retval;
{
caddr_t sg = stackgap_init(p->p_emul);
struct mkfifo_args bma;
LINUX_CHECK_ALT_CREAT(p, &sg, SCARG(uap, path));
return mknod(p, uap, retval);
/*
* BSD handles FIFOs seperately
*/
if (SCARG(uap, mode) & S_IFIFO) {
SCARG(&bma, path) = SCARG(uap, path);
SCARG(&bma, mode) = SCARG(uap, mode);
return mkfifo(p, uap, retval);
} else
return mknod(p, uap, retval);
}
int
@ -578,11 +588,39 @@ linux_chown(p, uap, retval)
} */ *uap;
register_t *retval;
{
struct chown_args bca;
caddr_t sg = stackgap_init(p->p_emul);
LINUX_CHECK_ALT_EXIST(p, &sg, SCARG(uap, path));
return chmod(p, uap, retval);
SCARG(&bca, path) = SCARG(uap, path);
SCARG(&bca, uid) = ((linux_uid_t)SCARG(uap, uid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, uid);
SCARG(&bca, gid) = ((linux_gid_t)SCARG(uap, gid) == (linux_gid_t)-1) ?
(gid_t)-1 : SCARG(uap, gid);
return chown(p, &bca, retval);
}
int
linux_fchown(p, uap, retval)
struct proc *p;
struct linux_fchown_args /* {
syscallarg(int) fd;
syscallarg(int) uid;
syscallarg(int) gid;
} */ *uap;
register_t *retval;
{
struct fchown_args bfa;
SCARG(&bfa, fd) = SCARG(uap, fd);
SCARG(&bfa, uid) = ((linux_uid_t)SCARG(uap, uid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, uid);
SCARG(&bfa, gid) = ((linux_gid_t)SCARG(uap, gid) == (linux_gid_t)-1) ?
(gid_t)-1 : SCARG(uap, gid);
return fchown(p, &bfa, retval);
}
int

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_misc.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_misc.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_break.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_break.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_llseek.c,v 1.9 1995/08/27 20:51:48 fvdl Exp $ */
/* $NetBSD: linux_llseek.c,v 1.10 1995/09/07 21:48:59 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -487,7 +487,7 @@ linux_lstat(p, uap, retval)
}
/*
* The following syscalls are only here because of the alternate path check.
* The following syscalls are mostly here because of the alternate path check.
*/
int
linux_access(p, uap, retval)
@ -521,7 +521,8 @@ linux_unlink(p, uap, retval)
return unlink(p, uap, retval);
}
int linux_chdir(p, uap, retval)
int
linux_chdir(p, uap, retval)
struct proc *p;
struct linux_chdir_args /* {
syscallarg(char *) path;
@ -546,10 +547,19 @@ linux_mknod(p, uap, retval)
register_t *retval;
{
caddr_t sg = stackgap_init(p->p_emul);
struct mkfifo_args bma;
LINUX_CHECK_ALT_CREAT(p, &sg, SCARG(uap, path));
return mknod(p, uap, retval);
/*
* BSD handles FIFOs seperately
*/
if (SCARG(uap, mode) & S_IFIFO) {
SCARG(&bma, path) = SCARG(uap, path);
SCARG(&bma, mode) = SCARG(uap, mode);
return mkfifo(p, uap, retval);
} else
return mknod(p, uap, retval);
}
int
@ -578,11 +588,39 @@ linux_chown(p, uap, retval)
} */ *uap;
register_t *retval;
{
struct chown_args bca;
caddr_t sg = stackgap_init(p->p_emul);
LINUX_CHECK_ALT_EXIST(p, &sg, SCARG(uap, path));
return chmod(p, uap, retval);
SCARG(&bca, path) = SCARG(uap, path);
SCARG(&bca, uid) = ((linux_uid_t)SCARG(uap, uid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, uid);
SCARG(&bca, gid) = ((linux_gid_t)SCARG(uap, gid) == (linux_gid_t)-1) ?
(gid_t)-1 : SCARG(uap, gid);
return chown(p, &bca, retval);
}
int
linux_fchown(p, uap, retval)
struct proc *p;
struct linux_fchown_args /* {
syscallarg(int) fd;
syscallarg(int) uid;
syscallarg(int) gid;
} */ *uap;
register_t *retval;
{
struct fchown_args bfa;
SCARG(&bfa, fd) = SCARG(uap, fd);
SCARG(&bfa, uid) = ((linux_uid_t)SCARG(uap, uid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, uid);
SCARG(&bfa, gid) = ((linux_gid_t)SCARG(uap, gid) == (linux_gid_t)-1) ?
(gid_t)-1 : SCARG(uap, gid);
return fchown(p, &bfa, retval);
}
int

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_misc_notalpha.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_misc_notalpha.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_oldmmap.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_oldmmap.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_oldolduname.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_oldolduname.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_oldselect.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_oldselect.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_olduname.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_olduname.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: linux_pipe.c,v 1.17 1995/08/23 20:17:28 fvdl Exp $ */
/* $NetBSD: linux_pipe.c,v 1.18 1995/09/07 21:49:01 fvdl Exp $ */
/*
* Copyright (c) 1995 Frank van der Linden
@ -126,6 +126,8 @@ linux_waitpid(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -170,6 +172,8 @@ linux_wait4(p, uap, retval)
if ((error = wait4(p, &w4a, retval)))
return error;
p->p_siglist &= ~sigmask(SIGCHLD);
if (status != NULL) {
if ((error = copyin(status, &tstat, sizeof tstat)))
return error;
@ -1009,7 +1013,7 @@ linux_getpgid(p, uap, retval)
int
linux_personality(p, uap, retval)
struct proc *p;
struct linux_personality_args /* P
struct linux_personality_args /* {
syscallarg(int) per;
} */ *uap;
register_t *retval;
@ -1019,3 +1023,44 @@ linux_personality(p, uap, retval)
retval[0] = 0;
return 0;
}
/*
* The calls are here because of type conversions.
*/
int
linux_setreuid(p, uap, retval)
struct proc *p;
struct linux_setreuid_args /* {
syscallarg(int) ruid;
syscallarg(int) euid;
} */ *uap;
register_t *retval;
{
struct compat_43_setreuid_args bsa;
SCARG(&bsa, ruid) = ((linux_uid_t)SCARG(uap, ruid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, ruid);
SCARG(&bsa, euid) = ((linux_uid_t)SCARG(uap, euid) == (linux_uid_t)-1) ?
(uid_t)-1 : SCARG(uap, euid);
return compat_43_setreuid(p, &bsa, retval);
}
int
linux_setregid(p, uap, retval)
struct proc *p;
struct linux_setregid_args /* {
syscallarg(int) rgid;
syscallarg(int) egid;
} */ *uap;
register_t *retval;
{
struct compat_43_setregid_args bsa;
SCARG(&bsa, rgid) = ((linux_gid_t)SCARG(uap, rgid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, rgid);
SCARG(&bsa, egid) = ((linux_gid_t)SCARG(uap, egid) == (linux_gid_t)-1) ?
(uid_t)-1 : SCARG(uap, egid);
return compat_43_setregid(p, &bsa, retval);
}

View File

@ -1,4 +1,4 @@
$NetBSD: syscalls.master,v 1.11 1995/08/27 20:51:53 fvdl Exp $
$NetBSD: syscalls.master,v 1.12 1995/09/07 21:49:02 fvdl Exp $
; @(#)syscalls.master 8.1 (Berkeley) 7/19/93
@ -87,7 +87,7 @@
43 STD { int linux_times(struct times *tms); }
44 UNIMPL linux_prof
45 STD { int linux_brk(char *nsize); }
46 NOARGS { int setgid(uid_t gid); }
46 NOARGS { int setgid(gid_t gid); }
47 NOARGS { gid_t getgid(void); }
48 STD { int linux_signal(int sig, linux_handler_t handler); }
49 NOARGS { uid_t geteuid(void); }
@ -113,8 +113,8 @@
struct linux_sigaction *osa); }
68 STD { int linux_siggetmask(void); }
69 STD { int linux_sigsetmask(linux_sigset_t mask); }
70 NOARGS { int compat_43_setreuid(int ruid, int euid); }
71 NOARGS { int compat_43_setregid(int rgid, int egid); }
70 STD { int linux_setreuid(int ruid, int euid); }
71 STD { int linux_setregid(int rgid, int egid); }
72 STD { int linux_sigsuspend(caddr_t restart, int oldmask, \
int mask); }
73 STD { int linux_sigpending(linux_sigset_t *mask); }
@ -144,7 +144,7 @@
92 STD { int linux_truncate(char *path, long length); }
93 NOARGS { int compat_43_ftruncate(int fd, long length); }
94 NOARGS { int fchmod(int fd, int mode); }
95 NOARGS { int fchown(int fd, int uid, int gid); }
95 STD { int linux_fchown(int fd, int uid, int gid); }
96 NOARGS { int getpriority(int which, int who); }
97 NOARGS { int setpriority(int which, int who, int prio); }
98 NOARGS { int profil(caddr_t samples, u_int size, \