|
|
|
@ -1,14 +1,14 @@
|
|
|
|
|
/* $NetBSD: rump_syscalls.c,v 1.48 2010/08/30 10:24:42 pooka Exp $ */
|
|
|
|
|
/* $NetBSD: rump_syscalls.c,v 1.49 2010/08/30 10:34:51 pooka Exp $ */
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* System call vector and marshalling for rump.
|
|
|
|
|
*
|
|
|
|
|
* DO NOT EDIT-- this file is automatically generated.
|
|
|
|
|
* created from NetBSD: syscalls.master,v 1.235 2010/06/10 19:09:03 pooka Exp
|
|
|
|
|
* created from NetBSD: syscalls.master,v 1.236 2010/08/30 10:32:54 pooka Exp
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include <sys/cdefs.h>
|
|
|
|
|
__KERNEL_RCSID(0, "$NetBSD: rump_syscalls.c,v 1.48 2010/08/30 10:24:42 pooka Exp $");
|
|
|
|
|
__KERNEL_RCSID(0, "$NetBSD: rump_syscalls.c,v 1.49 2010/08/30 10:34:51 pooka Exp $");
|
|
|
|
|
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/param.h>
|
|
|
|
@ -242,6 +242,23 @@ rump_sys_chown(const char * path, uid_t uid, gid_t gid)
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_chown,rump_enosys);
|
|
|
|
|
|
|
|
|
|
pid_t rump_sys_getpid(void);
|
|
|
|
|
pid_t
|
|
|
|
|
rump_sys_getpid(void )
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_getpid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)NULL, 0, rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_getpid_with_ppid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_unmount(const char *, int);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_unmount(const char * path, int flags)
|
|
|
|
@ -263,6 +280,60 @@ rump_sys_unmount(const char * path, int flags)
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_unmount,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_setuid(uid_t);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_setuid(uid_t uid)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_setuid_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, uid) = uid;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_setuid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_setuid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
uid_t rump_sys_getuid(void);
|
|
|
|
|
uid_t
|
|
|
|
|
rump_sys_getuid(void )
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_getuid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)NULL, 0, rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_getuid_with_euid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
uid_t rump_sys_geteuid(void);
|
|
|
|
|
uid_t
|
|
|
|
|
rump_sys_geteuid(void )
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_geteuid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)NULL, 0, rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_geteuid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
ssize_t rump_sys_recvmsg(int, struct msghdr *, int);
|
|
|
|
|
ssize_t
|
|
|
|
|
rump_sys_recvmsg(int s, struct msghdr * msg, int flags)
|
|
|
|
@ -476,6 +547,23 @@ rump_sys_sync(void )
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_sync,rump_enosys);
|
|
|
|
|
|
|
|
|
|
pid_t rump_sys_getppid(void);
|
|
|
|
|
pid_t
|
|
|
|
|
rump_sys_getppid(void )
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_getppid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)NULL, 0, rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_getppid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_dup(int);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_dup(int fd)
|
|
|
|
@ -496,6 +584,81 @@ rump_sys_dup(int fd)
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_dup,rump_enosys);
|
|
|
|
|
|
|
|
|
|
gid_t rump_sys_getegid(void);
|
|
|
|
|
gid_t
|
|
|
|
|
rump_sys_getegid(void )
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_getegid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)NULL, 0, rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_getegid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
gid_t rump_sys_getgid(void);
|
|
|
|
|
gid_t
|
|
|
|
|
rump_sys_getgid(void )
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_getgid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)NULL, 0, rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_getgid_with_egid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys___getlogin(char *, size_t);
|
|
|
|
|
int
|
|
|
|
|
rump_sys___getlogin(char * namebuf, size_t namelen)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys___getlogin_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, namebuf) = namebuf;
|
|
|
|
|
SPARG(&callarg, namelen) = namelen;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS___getlogin, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys___getlogin,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys___setlogin(const char *);
|
|
|
|
|
int
|
|
|
|
|
rump_sys___setlogin(const char * namebuf)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys___setlogin_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, namebuf) = namebuf;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS___setlogin, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys___setlogin,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_ioctl(int, u_long, void *);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_ioctl(int fd, u_long com, void * data)
|
|
|
|
@ -601,6 +764,86 @@ rump_sys_chroot(const char * path)
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_chroot,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_getgroups(int, gid_t *);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_getgroups(int gidsetsize, gid_t * gidset)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_getgroups_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, gidsetsize) = gidsetsize;
|
|
|
|
|
SPARG(&callarg, gidset) = gidset;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_getgroups, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_getgroups,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_setgroups(int, const gid_t *);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_setgroups(int gidsetsize, const gid_t * gidset)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_setgroups_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, gidsetsize) = gidsetsize;
|
|
|
|
|
SPARG(&callarg, gidset) = gidset;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_setgroups, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_setgroups,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_getpgrp(void);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_getpgrp(void )
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_getpgrp, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)NULL, 0, rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_getpgrp,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_setpgid(int, int);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_setpgid(int pid, int pgid)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_setpgid_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, pid) = pid;
|
|
|
|
|
SPARG(&callarg, pgid) = pgid;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_setpgid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_setpgid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_dup2(int, int);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_dup2(int from, int to)
|
|
|
|
@ -864,6 +1107,48 @@ rump_sys_fchmod(int fd, mode_t mode)
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_fchmod,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_setreuid(uid_t, uid_t);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_setreuid(uid_t ruid, uid_t euid)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_setreuid_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, ruid) = ruid;
|
|
|
|
|
SPARG(&callarg, euid) = euid;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_setreuid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_setreuid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_setregid(gid_t, gid_t);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_setregid(gid_t rgid, gid_t egid)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_setregid_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, rgid) = rgid;
|
|
|
|
|
SPARG(&callarg, egid) = egid;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_setregid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_setregid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_rename(const char *, const char *);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_rename(const char * from, const char * to)
|
|
|
|
@ -1037,6 +1322,23 @@ rump_sys_rmdir(const char * path)
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_rmdir,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_setsid(void);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_setsid(void )
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_setsid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)NULL, 0, rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_setsid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_nfssvc(int, void *);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_nfssvc(int flag, void * argp)
|
|
|
|
@ -1106,6 +1408,66 @@ rump_sys_pwrite(int fd, const void * buf, size_t nbyte, off_t offset)
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_pwrite,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_setgid(gid_t);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_setgid(gid_t gid)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_setgid_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, gid) = gid;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_setgid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_setgid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_setegid(gid_t);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_setegid(gid_t egid)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_setegid_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, egid) = egid;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_setegid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_setegid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_seteuid(uid_t);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_seteuid(uid_t euid)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_seteuid_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, euid) = euid;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_seteuid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_seteuid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
long rump_sys_pathconf(const char *, int);
|
|
|
|
|
long
|
|
|
|
|
rump_sys_pathconf(const char * path, int name)
|
|
|
|
@ -1282,6 +1644,26 @@ rump_sys___sysctl(const int * name, u_int namelen, void * old, size_t * oldlenp,
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys___sysctl,rump_enosys);
|
|
|
|
|
|
|
|
|
|
pid_t rump_sys_getpgid(pid_t);
|
|
|
|
|
pid_t
|
|
|
|
|
rump_sys_getpgid(pid_t pid)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_getpgid_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, pid) = pid;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_getpgid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_getpgid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_reboot(int, char *);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_reboot(int opt, char * bootstr)
|
|
|
|
@ -1595,6 +1977,26 @@ rump_sys_lchown(const char * path, uid_t uid, gid_t gid)
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_lchown,rump_enosys);
|
|
|
|
|
|
|
|
|
|
pid_t rump_sys_getsid(pid_t);
|
|
|
|
|
pid_t
|
|
|
|
|
rump_sys_getsid(pid_t pid)
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
struct sys_getsid_args callarg;
|
|
|
|
|
|
|
|
|
|
SPARG(&callarg, pid) = pid;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_getsid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)&callarg, sizeof(callarg), rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_getsid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_fchroot(int);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_fchroot(int fd)
|
|
|
|
@ -1636,6 +2038,23 @@ rump_sys_lchflags(const char * path, u_long flags)
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_lchflags,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_issetugid(void);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_issetugid(void )
|
|
|
|
|
{
|
|
|
|
|
register_t rval[2] = {0, 0};
|
|
|
|
|
int error = 0;
|
|
|
|
|
|
|
|
|
|
error = rump_sysproxy(SYS_issetugid, rump_sysproxy_arg,
|
|
|
|
|
(uint8_t *)NULL, 0, rval);
|
|
|
|
|
if (error) {
|
|
|
|
|
rval[0] = -1;
|
|
|
|
|
rumpuser_seterrno(error);
|
|
|
|
|
}
|
|
|
|
|
return rval[0];
|
|
|
|
|
}
|
|
|
|
|
__weak_alias(sys_issetugid,rump_enosys);
|
|
|
|
|
|
|
|
|
|
int rump_sys_kqueue(void);
|
|
|
|
|
int
|
|
|
|
|
rump_sys_kqueue(void )
|
|
|
|
@ -2780,17 +3199,17 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 19 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 20 = unrumped */
|
|
|
|
|
(sy_call_t *)sys_getpid_with_ppid }, /* 20 = getpid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 21 = unrumped */
|
|
|
|
|
{ ns(struct sys_unmount_args), 0,
|
|
|
|
|
(sy_call_t *)sys_unmount }, /* 22 = unmount */
|
|
|
|
|
{ ns(struct sys_setuid_args), 0,
|
|
|
|
|
(sy_call_t *)sys_setuid }, /* 23 = setuid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 23 = unrumped */
|
|
|
|
|
(sy_call_t *)sys_getuid_with_euid }, /* 24 = getuid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 24 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 25 = unrumped */
|
|
|
|
|
(sy_call_t *)sys_geteuid }, /* 25 = geteuid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 26 = unrumped */
|
|
|
|
|
{ ns(struct sys_recvmsg_args), 0,
|
|
|
|
@ -2818,7 +3237,7 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 38 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 39 = unrumped */
|
|
|
|
|
(sy_call_t *)sys_getppid }, /* 39 = getppid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 40 = unrumped */
|
|
|
|
|
{ ns(struct sys_dup_args), 0,
|
|
|
|
@ -2826,7 +3245,7 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_pipe }, /* 42 = pipe */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 43 = unrumped */
|
|
|
|
|
(sy_call_t *)sys_getegid }, /* 43 = getegid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 44 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
@ -2834,13 +3253,13 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 46 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 47 = unrumped */
|
|
|
|
|
(sy_call_t *)sys_getgid_with_egid }, /* 47 = getgid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 48 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 49 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 50 = unrumped */
|
|
|
|
|
{ ns(struct sys___getlogin_args), 0,
|
|
|
|
|
(sy_call_t *)sys___getlogin }, /* 49 = __getlogin */
|
|
|
|
|
{ ns(struct sys___setlogin_args), 0,
|
|
|
|
|
(sy_call_t *)sys___setlogin }, /* 50 = __setlogin */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 51 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
@ -2897,14 +3316,14 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 77 = obsolete vlimit */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 78 = unrumped */
|
|
|
|
|
{ ns(struct sys_getgroups_args), 0,
|
|
|
|
|
(sy_call_t *)sys_getgroups }, /* 79 = getgroups */
|
|
|
|
|
{ ns(struct sys_setgroups_args), 0,
|
|
|
|
|
(sy_call_t *)sys_setgroups }, /* 80 = setgroups */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 79 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 80 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 81 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 82 = unrumped */
|
|
|
|
|
(sy_call_t *)sys_getpgrp }, /* 81 = getpgrp */
|
|
|
|
|
{ ns(struct sys_setpgid_args), 0,
|
|
|
|
|
(sy_call_t *)sys_setpgid }, /* 82 = setpgid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 83 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
@ -2991,10 +3410,10 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
(sy_call_t *)sys_fchmod }, /* 124 = fchmod */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 125 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 126 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 127 = unrumped */
|
|
|
|
|
{ ns(struct sys_setreuid_args), 0,
|
|
|
|
|
(sy_call_t *)sys_setreuid }, /* 126 = setreuid */
|
|
|
|
|
{ ns(struct sys_setregid_args), 0,
|
|
|
|
|
(sy_call_t *)sys_setregid }, /* 127 = setregid */
|
|
|
|
|
{ ns(struct sys_rename_args), 0,
|
|
|
|
|
(sy_call_t *)sys_rename }, /* 128 = rename */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
@ -3034,7 +3453,7 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 146 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 147 = unrumped */
|
|
|
|
|
(sy_call_t *)sys_setsid }, /* 147 = setsid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 148 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
@ -3121,12 +3540,12 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 179 = unimplemented */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 180 = unimplemented */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 181 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 182 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 183 = unrumped */
|
|
|
|
|
{ ns(struct sys_setgid_args), 0,
|
|
|
|
|
(sy_call_t *)sys_setgid }, /* 181 = setgid */
|
|
|
|
|
{ ns(struct sys_setegid_args), 0,
|
|
|
|
|
(sy_call_t *)sys_setegid }, /* 182 = setegid */
|
|
|
|
|
{ ns(struct sys_seteuid_args), 0,
|
|
|
|
|
(sy_call_t *)sys_seteuid }, /* 183 = seteuid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 184 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
@ -3173,8 +3592,8 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 205 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)sys_nomodule }, /* 206 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 207 = unrumped */
|
|
|
|
|
{ ns(struct sys_getpgid_args), 0,
|
|
|
|
|
(sy_call_t *)sys_getpgid }, /* 207 = getpgid */
|
|
|
|
|
{ ns(struct sys_reboot_args), 0,
|
|
|
|
|
(sy_call_t *)sys_reboot }, /* 208 = reboot */
|
|
|
|
|
{ ns(struct sys_poll_args), 0,
|
|
|
|
@ -3364,8 +3783,8 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 284 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 285 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 286 = unrumped */
|
|
|
|
|
{ ns(struct sys_getsid_args), 0,
|
|
|
|
|
(sy_call_t *)sys_getsid }, /* 286 = getsid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 287 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
@ -3418,7 +3837,7 @@ struct sysent rump_sysent[] = {
|
|
|
|
|
{ ns(struct sys_lchflags_args), 0,
|
|
|
|
|
(sy_call_t *)sys_lchflags }, /* 304 = lchflags */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 305 = unrumped */
|
|
|
|
|
(sy_call_t *)sys_issetugid }, /* 305 = issetugid */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|
(sy_call_t *)rump_enosys }, /* 306 = unrumped */
|
|
|
|
|
{ 0, 0, 0,
|
|
|
|
|