[Midnightbsd-cvs] src [10148] trunk/sys/compat: sync with freebsd 10
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Wed May 30 16:43:31 EDT 2018
Revision: 10148
http://svnweb.midnightbsd.org/src/?rev=10148
Author: laffer1
Date: 2018-05-30 16:43:30 -0400 (Wed, 30 May 2018)
Log Message:
-----------
sync with freebsd 10
Modified Paths:
--------------
trunk/sys/compat/freebsd32/Makefile
trunk/sys/compat/freebsd32/freebsd32.h
trunk/sys/compat/freebsd32/freebsd32_ioctl.c
trunk/sys/compat/freebsd32/freebsd32_ioctl.h
trunk/sys/compat/freebsd32/freebsd32_ipc.h
trunk/sys/compat/freebsd32/freebsd32_misc.c
trunk/sys/compat/freebsd32/freebsd32_proto.h
trunk/sys/compat/freebsd32/freebsd32_signal.h
trunk/sys/compat/freebsd32/freebsd32_syscall.h
trunk/sys/compat/freebsd32/freebsd32_syscalls.c
trunk/sys/compat/freebsd32/freebsd32_sysent.c
trunk/sys/compat/freebsd32/freebsd32_systrace_args.c
trunk/sys/compat/freebsd32/freebsd32_util.h
trunk/sys/compat/freebsd32/syscalls.conf
trunk/sys/compat/freebsd32/syscalls.master
trunk/sys/compat/ia32/ia32_genassym.c
trunk/sys/compat/ia32/ia32_reg.h
trunk/sys/compat/ia32/ia32_signal.h
trunk/sys/compat/ia32/ia32_sysvec.c
trunk/sys/compat/ia32/ia32_util.h
trunk/sys/compat/linprocfs/linprocfs.c
trunk/sys/compat/linsysfs/linsysfs.c
Added Paths:
-----------
trunk/sys/compat/freebsd32/freebsd32_capability.c
trunk/sys/compat/freebsd32/freebsd32_misc.h
Property Changed:
----------------
trunk/sys/compat/freebsd32/syscalls.conf
trunk/sys/compat/freebsd32/syscalls.master
Modified: trunk/sys/compat/freebsd32/Makefile
===================================================================
--- trunk/sys/compat/freebsd32/Makefile 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/Makefile 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,7 +1,7 @@
+# $MidnightBSD$
# Makefile for syscall tables
#
-# $FreeBSD: src/sys/compat/freebsd32/Makefile,v 1.4 2005/10/23 23:58:23 obrien Exp $
-# $MidnightBSD: src/sys/compat/freebsd32/Makefile,v 1.3 2011/10/15 20:18:31 laffer1 Exp $
+# $FreeBSD: stable/10/sys/compat/freebsd32/Makefile 315063 2017-03-11 08:40:59Z dchagin $
all:
@echo "make sysent only"
@@ -10,11 +10,6 @@
freebsd32_sysent.c freebsd32_syscalls.c freebsd32_syscall.h freebsd32_proto.h freebsd32_systrace_args.c : \
../../kern/makesyscalls.sh syscalls.master syscalls.conf
- -mv -f freebsd32_sysent.c freebsd32_sysent.c.bak
- -mv -f freebsd32_syscalls.c freebsd32_syscalls.c.bak
- -mv -f freebsd32_syscall.h freebsd32_syscall.h.bak
- -mv -f freebsd32_proto.h freebsd32_proto.h.bak
- -mv -f freebsd32_systrace_args.c freebsd32_systrace_args.c.bak
sh ../../kern/makesyscalls.sh syscalls.master syscalls.conf
clean:
Modified: trunk/sys/compat/freebsd32/freebsd32.h
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32.h 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32.h,v 1.6.2.1 2007/12/19 20:37:53 jhb Exp $
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32.h 310121 2016-12-15 16:52:17Z vangyzen $
*/
#ifndef _COMPAT_FREEBSD32_FREEBSD32_H_
@@ -43,8 +43,17 @@
#define PTROUT_CP(src,dst,fld) \
do { (dst).fld = PTROUT((src).fld); } while (0)
+/*
+ * Being a newer port, 32-bit FreeBSD/MIPS uses 64-bit time_t.
+ */
+#ifdef __mips__
+typedef int64_t time32_t;
+#else
+typedef int32_t time32_t;
+#endif
+
struct timeval32 {
- int32_t tv_sec;
+ time32_t tv_sec;
int32_t tv_usec;
};
#define TV_CP(src,dst,fld) do { \
@@ -53,7 +62,7 @@
} while (0)
struct timespec32 {
- int32_t tv_sec;
+ time32_t tv_sec;
int32_t tv_nsec;
};
#define TS_CP(src,dst,fld) do { \
@@ -61,6 +70,15 @@
CP((src).fld,(dst).fld,tv_nsec); \
} while (0)
+struct itimerspec32 {
+ struct timespec32 it_interval;
+ struct timespec32 it_value;
+};
+#define ITS_CP(src, dst) do { \
+ TS_CP((src), (dst), it_interval); \
+ TS_CP((src), (dst), it_value); \
+} while (0)
+
struct rusage32 {
struct timeval32 ru_utime;
struct timeval32 ru_stime;
@@ -158,6 +176,7 @@
u_int32_t st_blksize;
u_int32_t st_flags;
u_int32_t st_gen;
+ int32_t st_lspare;
struct timespec32 st_birthtim;
unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec32));
unsigned int :(8 / 2) * (16 - (int)sizeof(struct timespec32));
@@ -225,32 +244,6 @@
uint32_t num;
};
-/*
- * Alternative layouts for <sys/procfs.h>
- */
-struct prstatus32 {
- int pr_version;
- u_int pr_statussz;
- u_int pr_gregsetsz;
- u_int pr_fpregsetsz;
- int pr_osreldate;
- int pr_cursig;
- pid_t pr_pid;
- struct reg32 pr_reg;
-};
-
-struct prpsinfo32 {
- int pr_version;
- u_int pr_psinfosz;
- char pr_fname[PRFNAMESZ+1];
- char pr_psargs[PRARGSZ+1];
-};
-
-struct thrmisc32 {
- char pr_tname[MAXCOMLEN+1];
- u_int _pad;
-};
-
struct mq_attr32 {
int mq_flags;
int mq_maxmsg;
@@ -323,8 +316,11 @@
char ki_comm[COMMLEN+1];
char ki_emul[KI_EMULNAMELEN+1];
char ki_loginclass[LOGINCLASSLEN+1];
- char ki_sparestrings[50];
+ char ki_moretdname[MAXCOMLEN-TDNAMLEN+1];
+ char ki_sparestrings[46];
int ki_spareints[KI_NSPARE_INT];
+ int ki_flag2;
+ int ki_fibnum;
u_int ki_cr_flags;
int ki_jid;
int ki_numthreads;
@@ -342,6 +338,12 @@
int ki_tdflags;
};
+struct kinfo_sigtramp32 {
+ uint32_t ksigtramp_start;
+ uint32_t ksigtramp_end;
+ uint32_t ksigtramp_spare[4];
+};
+
struct kld32_file_stat_1 {
int version; /* set to sizeof(struct kld_file_stat_1) */
char name[MAXPATHLEN];
@@ -361,4 +363,10 @@
char pathname[MAXPATHLEN];
};
+struct procctl_reaper_pids32 {
+ u_int rp_count;
+ u_int rp_pad0[15];
+ uint32_t rp_pids;
+};
+
#endif /* !_COMPAT_FREEBSD32_FREEBSD32_H_ */
Added: trunk/sys/compat/freebsd32/freebsd32_capability.c
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_capability.c (rev 0)
+++ trunk/sys/compat/freebsd32/freebsd32_capability.c 2018-05-30 20:43:30 UTC (rev 10148)
@@ -0,0 +1,175 @@
+/* $MidnightBSD$ */
+/*-
+ * Copyright (c) 2013 The FreeBSD Foundation
+ * All rights reserved.
+ *
+ * This software was developed by Pawel Jakub Dawidek under sponsorship from
+ * the FreeBSD Foundation.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_capability.c 280258 2015-03-19 13:37:36Z rwatson $");
+
+#include "opt_capsicum.h"
+
+#include <sys/param.h>
+#include <sys/capsicum.h>
+#include <sys/filedesc.h>
+#include <sys/malloc.h>
+#include <sys/proc.h>
+#include <sys/syscallsubr.h>
+#include <sys/sysproto.h>
+
+#include <security/audit/audit.h>
+
+#include <compat/freebsd32/freebsd32_proto.h>
+
+#ifdef CAPABILITIES
+
+MALLOC_DECLARE(M_FILECAPS);
+
+int
+freebsd32_cap_enter(struct thread *td,
+ struct freebsd32_cap_enter_args *uap)
+{
+
+ /*
+ * We do not have an equivalent of capabilities.conf for freebsd32
+ * compatibility, so do not allow capability mode for now.
+ */
+ return (ENOSYS);
+}
+
+int
+freebsd32_cap_ioctls_limit(struct thread *td,
+ struct freebsd32_cap_ioctls_limit_args *uap)
+{
+ u_long *cmds;
+ uint32_t *cmds32;
+ size_t ncmds;
+ u_int i;
+ int error;
+
+ ncmds = uap->ncmds;
+
+ if (ncmds > 256) /* XXX: Is 256 sane? */
+ return (EINVAL);
+
+ if (ncmds == 0) {
+ cmds = NULL;
+ } else {
+ cmds32 = malloc(sizeof(cmds32[0]) * ncmds, M_FILECAPS, M_WAITOK);
+ error = copyin(uap->cmds, cmds32, sizeof(cmds32[0]) * ncmds);
+ if (error != 0) {
+ free(cmds32, M_FILECAPS);
+ return (error);
+ }
+ cmds = malloc(sizeof(cmds[0]) * ncmds, M_FILECAPS, M_WAITOK);
+ for (i = 0; i < ncmds; i++)
+ cmds[i] = cmds32[i];
+ free(cmds32, M_FILECAPS);
+ }
+
+ return (kern_cap_ioctls_limit(td, uap->fd, cmds, ncmds));
+}
+
+int
+freebsd32_cap_ioctls_get(struct thread *td,
+ struct freebsd32_cap_ioctls_get_args *uap)
+{
+ struct filedesc *fdp;
+ struct filedescent *fdep;
+ uint32_t *cmds32;
+ u_long *cmds;
+ size_t maxcmds;
+ int error, fd;
+ u_int i;
+
+ fd = uap->fd;
+ cmds32 = uap->cmds;
+ maxcmds = uap->maxcmds;
+
+ AUDIT_ARG_FD(fd);
+
+ fdp = td->td_proc->p_fd;
+ FILEDESC_SLOCK(fdp);
+
+ if (fget_locked(fdp, fd) == NULL) {
+ error = EBADF;
+ goto out;
+ }
+
+ /*
+ * If all ioctls are allowed (fde_nioctls == -1 && fde_ioctls == NULL)
+ * the only sane thing we can do is to not populate the given array and
+ * return CAP_IOCTLS_ALL (actually, INT_MAX).
+ */
+
+ fdep = &fdp->fd_ofiles[fd];
+ cmds = fdep->fde_ioctls;
+ if (cmds32 != NULL && cmds != NULL) {
+ for (i = 0; i < MIN(fdep->fde_nioctls, maxcmds); i++) {
+ error = suword32(&cmds32[i], cmds[i]);
+ if (error != 0)
+ goto out;
+ }
+ }
+ if (fdep->fde_nioctls == -1)
+ td->td_retval[0] = INT_MAX;
+ else
+ td->td_retval[0] = fdep->fde_nioctls;
+
+ error = 0;
+out:
+ FILEDESC_SUNLOCK(fdp);
+ return (error);
+}
+
+#else /* !CAPABILITIES */
+
+int
+freebsd32_cap_enter(struct thread *td,
+ struct freebsd32_cap_enter_args *uap)
+{
+
+ return (ENOSYS);
+}
+
+int
+freebsd32_cap_ioctls_limit(struct thread *td,
+ struct freebsd32_cap_ioctls_limit_args *uap)
+{
+
+ return (ENOSYS);
+}
+
+int
+freebsd32_cap_ioctls_get(struct thread *td,
+ struct freebsd32_cap_ioctls_get_args *uap)
+{
+
+ return (ENOSYS);
+}
+
+#endif /* CAPABILITIES */
Property changes on: trunk/sys/compat/freebsd32/freebsd32_capability.c
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Modified: trunk/sys/compat/freebsd32/freebsd32_ioctl.c
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_ioctl.c 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_ioctl.c 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2008 David E. O'Brien
* All rights reserved.
@@ -28,12 +29,12 @@
*/
#include <sys/cdefs.h>
-__MBSDID("$MidnightBSD: src/sys/compat/freebsd32/freebsd32_ioctl.c,v 1.1 2011/12/31 21:09:15 laffer1 Exp $");
+__FBSDID("$FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_ioctl.c 280258 2015-03-19 13:37:36Z rwatson $");
#include "opt_compat.h"
#include <sys/param.h>
-#include <sys/capability.h>
+#include <sys/capsicum.h>
#include <sys/cdio.h>
#include <sys/fcntl.h>
#include <sys/filio.h>
@@ -344,6 +345,71 @@
return (error);
}
+static int
+freebsd32_ioctl_sg(struct thread *td,
+ struct freebsd32_ioctl_args *uap, struct file *fp)
+{
+ struct sg_io_hdr io;
+ struct sg_io_hdr32 io32;
+ int error;
+
+ if ((error = copyin(uap->data, &io32, sizeof(io32))) != 0)
+ return (error);
+
+ CP(io32, io, interface_id);
+ CP(io32, io, dxfer_direction);
+ CP(io32, io, cmd_len);
+ CP(io32, io, mx_sb_len);
+ CP(io32, io, iovec_count);
+ CP(io32, io, dxfer_len);
+ PTRIN_CP(io32, io, dxferp);
+ PTRIN_CP(io32, io, cmdp);
+ PTRIN_CP(io32, io, sbp);
+ CP(io32, io, timeout);
+ CP(io32, io, flags);
+ CP(io32, io, pack_id);
+ PTRIN_CP(io32, io, usr_ptr);
+ CP(io32, io, status);
+ CP(io32, io, masked_status);
+ CP(io32, io, msg_status);
+ CP(io32, io, sb_len_wr);
+ CP(io32, io, host_status);
+ CP(io32, io, driver_status);
+ CP(io32, io, resid);
+ CP(io32, io, duration);
+ CP(io32, io, info);
+
+ if ((error = fo_ioctl(fp, SG_IO, (caddr_t)&io, td->td_ucred, td)) != 0)
+ return (error);
+
+ CP(io, io32, interface_id);
+ CP(io, io32, dxfer_direction);
+ CP(io, io32, cmd_len);
+ CP(io, io32, mx_sb_len);
+ CP(io, io32, iovec_count);
+ CP(io, io32, dxfer_len);
+ PTROUT_CP(io, io32, dxferp);
+ PTROUT_CP(io, io32, cmdp);
+ PTROUT_CP(io, io32, sbp);
+ CP(io, io32, timeout);
+ CP(io, io32, flags);
+ CP(io, io32, pack_id);
+ PTROUT_CP(io, io32, usr_ptr);
+ CP(io, io32, status);
+ CP(io, io32, masked_status);
+ CP(io, io32, msg_status);
+ CP(io, io32, sb_len_wr);
+ CP(io, io32, host_status);
+ CP(io, io32, driver_status);
+ CP(io, io32, resid);
+ CP(io, io32, duration);
+ CP(io, io32, info);
+
+ error = copyout(&io32, uap->data, sizeof(io32));
+
+ return (error);
+}
+
int
freebsd32_ioctl(struct thread *td, struct freebsd32_ioctl_args *uap)
{
@@ -353,9 +419,11 @@
caddr_t data;
}*/ ;
struct file *fp;
+ cap_rights_t rights;
int error;
- if ((error = fget(td, uap->fd, CAP_IOCTL, &fp)) != 0)
+ error = fget(td, uap->fd, cap_rights_init(&rights, CAP_IOCTL), &fp);
+ if (error != 0)
return (error);
if ((fp->f_flag & (FREAD | FWRITE)) == 0) {
fdrop(fp, td);
@@ -391,6 +459,10 @@
error = freebsd32_ioctl_pciocgetconf(td, uap, fp);
break;
+ case SG_IO_32:
+ error = freebsd32_ioctl_sg(td, uap, fp);
+ break;
+
default:
fdrop(fp, td);
ap.fd = uap->fd;
Modified: trunk/sys/compat/freebsd32/freebsd32_ioctl.h
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_ioctl.h 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_ioctl.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2008 David E. O'Brien
* All rights reserved.
@@ -26,12 +27,14 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $MidnightBSD: src/sys/compat/freebsd32/freebsd32_ioctl.h,v 1.2 2011/12/31 21:42:59 laffer1 Exp $
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_ioctl.h 268139 2014-07-02 10:16:12Z mav $
*/
#ifndef _COMPAT_FREEBSD32_IOCTL_H_
#define _COMPAT_FREEBSD32_IOCTL_H_
+#include <cam/scsi/scsi_sg.h>
+
typedef __uint32_t caddr_t32;
struct ioc_toc_header32 {
@@ -122,5 +125,6 @@
#define MEMRANGE_GET32 _IOWR('m', 50, struct mem_range_op32)
#define MEMRANGE_SET32 _IOW('m', 51, struct mem_range_op32)
#define PCIOCGETCONF_32 _IOWR('p', 5, struct pci_conf_io32)
+#define SG_IO_32 _IOWR(SGIOC, 0x85, struct sg_io_hdr32)
#endif /* _COMPAT_FREEBSD32_IOCTL_H_ */
Modified: trunk/sys/compat/freebsd32/freebsd32_ipc.h
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_ipc.h 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_ipc.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,4 +1,4 @@
-/* $MidnightBSD: src/sys/compat/freebsd32/freebsd32_ipc.h,v 1.3 2012/01/04 01:35:37 laffer1 Exp $ */
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2002 Doug Rabson
* All rights reserved.
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_ipc.h,v 1.2.2.2 2007/12/19 20:43:41 jhb Exp $
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_ipc.h 205322 2010-03-19 11:01:51Z kib $
*/
#ifndef _COMPAT_FREEBSD32_FREEBSD32_IPC_H_
Modified: trunk/sys/compat/freebsd32/freebsd32_misc.c
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_misc.c 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_misc.c 2018-05-30 20:43:30 UTC (rev 10148)
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/compat/freebsd32/freebsd32_misc.c,v 1.67.2.3 2007/12/20 19:43:55 jhb Exp $");
+__FBSDID("$FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_misc.c 325867 2017-11-15 22:35:16Z gordon $");
#include "opt_compat.h"
#include "opt_inet.h"
@@ -36,6 +36,7 @@
#include <sys/param.h>
#include <sys/bus.h>
+#include <sys/capsicum.h>
#include <sys/clock.h>
#include <sys/exec.h>
#include <sys/fcntl.h>
@@ -56,6 +57,7 @@
#include <sys/mutex.h>
#include <sys/namei.h>
#include <sys/proc.h>
+#include <sys/procctl.h>
#include <sys/reboot.h>
#include <sys/resource.h>
#include <sys/resourcevar.h>
@@ -102,34 +104,33 @@
#include <compat/freebsd32/freebsd32_util.h>
#include <compat/freebsd32/freebsd32.h>
#include <compat/freebsd32/freebsd32_ipc.h>
+#include <compat/freebsd32/freebsd32_misc.h>
#include <compat/freebsd32/freebsd32_signal.h>
#include <compat/freebsd32/freebsd32_proto.h>
+FEATURE(compat_freebsd_32bit, "Compatible with 32-bit FreeBSD");
+
+#ifndef __mips__
CTASSERT(sizeof(struct timeval32) == 8);
CTASSERT(sizeof(struct timespec32) == 8);
CTASSERT(sizeof(struct itimerval32) == 16);
+#endif
CTASSERT(sizeof(struct statfs32) == 256);
+#ifndef __mips__
CTASSERT(sizeof(struct rusage32) == 72);
+#endif
CTASSERT(sizeof(struct sigaltstack32) == 12);
CTASSERT(sizeof(struct kevent32) == 20);
CTASSERT(sizeof(struct iovec32) == 8);
CTASSERT(sizeof(struct msghdr32) == 28);
+#ifndef __mips__
CTASSERT(sizeof(struct stat32) == 96);
+#endif
CTASSERT(sizeof(struct sigaction32) == 24);
static int freebsd32_kevent_copyout(void *arg, struct kevent *kevp, int count);
static int freebsd32_kevent_copyin(void *arg, struct kevent *kevp, int count);
-#if BYTE_ORDER == BIG_ENDIAN
-#define PAIR32TO64(type, name) ((name ## 2) | ((type)(name ## 1) << 32))
-#define RETVAL_HI 0
-#define RETVAL_LO 1
-#else
-#define PAIR32TO64(type, name) ((name ## 1) | ((type)(name ## 2) << 32))
-#define RETVAL_HI 1
-#define RETVAL_LO 0
-#endif
-
void
freebsd32_rusage_out(const struct rusage *s, struct rusage32 *s32)
{
@@ -188,15 +189,13 @@
wrup = &wru;
else
wrup = NULL;
-
if (uap->info != NULL) {
sip = &si;
bzero(sip, sizeof(*sip));
} else
sip = NULL;
-
error = kern_wait6(td, uap->idtype, PAIR32TO64(id_t, uap->id),
- &status, uap->options, wrup, sip);
+ &status, uap->options, wrup, sip);
if (error != 0)
return (error);
if (uap->status != NULL)
@@ -246,7 +245,8 @@
#ifdef COMPAT_FREEBSD4
int
-freebsd4_freebsd32_getfsstat(struct thread *td, struct freebsd4_freebsd32_getfsstat_args *uap)
+freebsd4_freebsd32_getfsstat(struct thread *td,
+ struct freebsd4_freebsd32_getfsstat_args *uap)
{
struct statfs *buf, *sp;
struct statfs32 stat32;
@@ -402,12 +402,17 @@
freebsd32_execve(struct thread *td, struct freebsd32_execve_args *uap)
{
struct image_args eargs;
+ struct vmspace *oldvmspace;
int error;
+ error = pre_execve(td, &oldvmspace);
+ if (error != 0)
+ return (error);
error = freebsd32_exec_copyin_args(&eargs, uap->fname, UIO_USERSPACE,
uap->argv, uap->envv);
if (error == 0)
error = kern_execve(td, &eargs, NULL);
+ post_execve(td, error, oldvmspace);
return (error);
}
@@ -415,8 +420,12 @@
freebsd32_fexecve(struct thread *td, struct freebsd32_fexecve_args *uap)
{
struct image_args eargs;
+ struct vmspace *oldvmspace;
int error;
+ error = pre_execve(td, &oldvmspace);
+ if (error != 0)
+ return (error);
error = freebsd32_exec_copyin_args(&eargs, NULL, UIO_SYSSPACE,
uap->argv, uap->envv);
if (error == 0) {
@@ -423,6 +432,7 @@
eargs.fd = uap->fd;
error = kern_execve(td, &eargs, NULL);
}
+ post_execve(td, error, oldvmspace);
return (error);
}
@@ -451,9 +461,8 @@
}
} else {
vm_offset_t addr = trunc_page(start);
- rv = vm_map_find(map, 0, 0,
- &addr, PAGE_SIZE, FALSE, prot,
- VM_PROT_ALL, 0);
+ rv = vm_map_find(map, NULL, 0, &addr, PAGE_SIZE, 0,
+ VMFS_NO_SPACE, prot, VM_PROT_ALL, 0);
if (rv != KERN_SUCCESS)
return (EINVAL);
}
@@ -545,9 +554,8 @@
rv = vm_map_remove(map, start, end);
if (rv != KERN_SUCCESS)
return (EINVAL);
- rv = vm_map_find(map, 0, 0,
- &start, end - start, FALSE,
- prot, VM_PROT_ALL, 0);
+ rv = vm_map_find(map, NULL, 0, &start, end - start,
+ 0, VMFS_NO_SPACE, prot, VM_PROT_ALL, 0);
if (rv != KERN_SUCCESS)
return (EINVAL);
r.fd = fd;
@@ -591,7 +599,8 @@
#ifdef COMPAT_FREEBSD6
int
-freebsd6_freebsd32_mmap(struct thread *td, struct freebsd6_freebsd32_mmap_args *uap)
+freebsd6_freebsd32_mmap(struct thread *td,
+ struct freebsd6_freebsd32_mmap_args *uap)
{
struct freebsd32_mmap_args ap;
@@ -985,7 +994,11 @@
return (error);
}
+#ifndef __mips__
#define FREEBSD32_ALIGNBYTES (sizeof(int) - 1)
+#else
+#define FREEBSD32_ALIGNBYTES (sizeof(long) - 1)
+#endif
#define FREEBSD32_ALIGN(p) \
(((u_long)(p) + FREEBSD32_ALIGNBYTES) & ~FREEBSD32_ALIGNBYTES)
#define FREEBSD32_CMSG_SPACE(l) \
@@ -1133,47 +1146,91 @@
return (error);
}
-
+/*
+ * Copy-in the array of control messages constructed using alignment
+ * and padding suitable for a 32-bit environment and construct an
+ * mbuf using alignment and padding suitable for a 64-bit kernel.
+ * The alignment and padding are defined indirectly by CMSG_DATA(),
+ * CMSG_SPACE() and CMSG_LEN().
+ */
static int
-freebsd32_convert_msg_in(struct mbuf **controlp)
+freebsd32_copyin_control(struct mbuf **mp, caddr_t buf, u_int buflen)
{
- struct mbuf *control = *controlp;
- struct cmsghdr *cm = mtod(control, struct cmsghdr *);
- void *data;
- socklen_t clen = control->m_len, datalen;
+ struct mbuf *m;
+ void *md;
+ u_int idx, len, msglen;
int error;
- error = 0;
- *controlp = NULL;
+ buflen = FREEBSD32_ALIGN(buflen);
- while (cm != NULL) {
- if (sizeof(struct cmsghdr) > clen || cm->cmsg_len > clen) {
- error = EINVAL;
+ if (buflen > MCLBYTES)
+ return (EINVAL);
+
+ /*
+ * Iterate over the buffer and get the length of each message
+ * in there. This has 32-bit alignment and padding. Use it to
+ * determine the length of these messages when using 64-bit
+ * alignment and padding.
+ */
+ idx = 0;
+ len = 0;
+ while (idx < buflen) {
+ error = copyin(buf + idx, &msglen, sizeof(msglen));
+ if (error)
+ return (error);
+ if (msglen < sizeof(struct cmsghdr))
+ return (EINVAL);
+ msglen = FREEBSD32_ALIGN(msglen);
+ if (idx + msglen > buflen)
+ return (EINVAL);
+ idx += msglen;
+ msglen += CMSG_ALIGN(sizeof(struct cmsghdr)) -
+ FREEBSD32_ALIGN(sizeof(struct cmsghdr));
+ len += CMSG_ALIGN(msglen);
+ }
+
+ if (len > MCLBYTES)
+ return (EINVAL);
+
+ m = m_get(M_WAITOK, MT_CONTROL);
+ if (len > MLEN)
+ MCLGET(m, M_WAITOK);
+ m->m_len = len;
+
+ md = mtod(m, void *);
+ while (buflen > 0) {
+ error = copyin(buf, md, sizeof(struct cmsghdr));
+ if (error)
break;
- }
+ msglen = *(u_int *)md;
+ msglen = FREEBSD32_ALIGN(msglen);
- data = FREEBSD32_CMSG_DATA(cm);
- datalen = (caddr_t)cm + cm->cmsg_len - (caddr_t)data;
+ /* Modify the message length to account for alignment. */
+ *(u_int *)md = msglen + CMSG_ALIGN(sizeof(struct cmsghdr)) -
+ FREEBSD32_ALIGN(sizeof(struct cmsghdr));
- *controlp = sbcreatecontrol(data, datalen, cm->cmsg_type,
- cm->cmsg_level);
- controlp = &(*controlp)->m_next;
+ md = (char *)md + CMSG_ALIGN(sizeof(struct cmsghdr));
+ buf += FREEBSD32_ALIGN(sizeof(struct cmsghdr));
+ buflen -= FREEBSD32_ALIGN(sizeof(struct cmsghdr));
- if (FREEBSD32_CMSG_SPACE(datalen) < clen) {
- clen -= FREEBSD32_CMSG_SPACE(datalen);
- cm = (struct cmsghdr *)
- ((caddr_t)cm + FREEBSD32_CMSG_SPACE(datalen));
- } else {
- clen = 0;
- cm = NULL;
+ msglen -= FREEBSD32_ALIGN(sizeof(struct cmsghdr));
+ if (msglen > 0) {
+ error = copyin(buf, md, msglen);
+ if (error)
+ break;
+ md = (char *)md + CMSG_ALIGN(msglen);
+ buf += msglen;
+ buflen -= msglen;
}
}
- m_freem(control);
+ if (error)
+ m_free(m);
+ else
+ *mp = m;
return (error);
}
-
int
freebsd32_sendmsg(struct thread *td,
struct freebsd32_sendmsg_args *uap)
@@ -1211,14 +1268,13 @@
goto out;
}
- error = sockargs(&control, msg.msg_control,
- msg.msg_controllen, MT_CONTROL);
+ error = freebsd32_copyin_control(&control, msg.msg_control,
+ msg.msg_controllen);
if (error)
goto out;
-
- error = freebsd32_convert_msg_in(&control);
- if (error)
- goto out;
+
+ msg.msg_control = NULL;
+ msg.msg_controllen = 0;
}
error = kern_sendit(td, uap->s, &msg, uap->flags, control,
@@ -1376,6 +1432,49 @@
}
int
+freebsd32_futimens(struct thread *td, struct freebsd32_futimens_args *uap)
+{
+ struct timespec32 ts32[2];
+ struct timespec ts[2], *tsp;
+ int error;
+
+ if (uap->times != NULL) {
+ error = copyin(uap->times, ts32, sizeof(ts32));
+ if (error)
+ return (error);
+ CP(ts32[0], ts[0], tv_sec);
+ CP(ts32[0], ts[0], tv_nsec);
+ CP(ts32[1], ts[1], tv_sec);
+ CP(ts32[1], ts[1], tv_nsec);
+ tsp = ts;
+ } else
+ tsp = NULL;
+ return (kern_futimens(td, uap->fd, tsp, UIO_SYSSPACE));
+}
+
+int
+freebsd32_utimensat(struct thread *td, struct freebsd32_utimensat_args *uap)
+{
+ struct timespec32 ts32[2];
+ struct timespec ts[2], *tsp;
+ int error;
+
+ if (uap->times != NULL) {
+ error = copyin(uap->times, ts32, sizeof(ts32));
+ if (error)
+ return (error);
+ CP(ts32[0], ts[0], tv_sec);
+ CP(ts32[0], ts[0], tv_nsec);
+ CP(ts32[1], ts[1], tv_sec);
+ CP(ts32[1], ts[1], tv_nsec);
+ tsp = ts;
+ } else
+ tsp = NULL;
+ return (kern_utimensat(td, uap->fd, uap->path, UIO_USERSPACE,
+ tsp, UIO_SYSSPACE, uap->flag));
+}
+
+int
freebsd32_adjtime(struct thread *td, struct freebsd32_adjtime_args *uap)
{
struct timeval32 tv32;
@@ -1557,7 +1656,8 @@
int32_t base32;
int error;
- error = kern_getdirentries(td, uap->fd, uap->buf, uap->count, &base);
+ error = kern_getdirentries(td, uap->fd, uap->buf, uap->count, &base,
+ NULL, UIO_USERSPACE);
if (error)
return (error);
if (uap->basep != NULL) {
@@ -1643,23 +1743,21 @@
freebsd32_do_sendfile(struct thread *td,
struct freebsd32_sendfile_args *uap, int compat)
{
- struct sendfile_args ap;
struct sf_hdtr32 hdtr32;
struct sf_hdtr hdtr;
struct uio *hdr_uio, *trl_uio;
struct iovec32 *iov32;
+ struct file *fp;
+ cap_rights_t rights;
+ off_t offset;
int error;
+ offset = PAIR32TO64(off_t, uap->offset);
+ if (offset < 0)
+ return (EINVAL);
+
hdr_uio = trl_uio = NULL;
- ap.fd = uap->fd;
- ap.s = uap->s;
- ap.offset = PAIR32TO64(off_t,uap->offset);
- ap.nbytes = uap->nbytes;
- ap.hdtr = (struct sf_hdtr *)uap->hdtr; /* XXX not used */
- ap.sbytes = uap->sbytes;
- ap.flags = uap->flags;
-
if (uap->hdtr != NULL) {
error = copyin(uap->hdtr, &hdtr32, sizeof(hdtr32));
if (error)
@@ -1685,7 +1783,17 @@
}
}
- error = kern_sendfile(td, &ap, hdr_uio, trl_uio, compat);
+ AUDIT_ARG_FD(uap->fd);
+
+ if ((error = fget_read(td, uap->fd,
+ cap_rights_init(&rights, CAP_PREAD), &fp)) != 0) {
+ goto out;
+ }
+
+ error = fo_sendfile(fp, uap->s, hdr_uio, trl_uio, offset,
+ uap->nbytes, uap->sbytes, uap->flags, compat ? SFK_COMPAT : 0, td);
+ fdrop(fp, td);
+
out:
if (hdr_uio)
free(hdr_uio, M_IOV);
@@ -1872,6 +1980,7 @@
{
int error, name[CTL_MAXNAME];
size_t j, oldlen;
+ uint32_t tmp;
if (uap->namelen > CTL_MAXNAME || uap->namelen < 2)
return (EINVAL);
@@ -1878,10 +1987,14 @@
error = copyin(uap->name, name, uap->namelen * sizeof(int));
if (error)
return (error);
- if (uap->oldlenp)
- oldlen = fuword32(uap->oldlenp);
- else
+ if (uap->oldlenp) {
+ error = fueword32(uap->oldlenp, &tmp);
+ oldlen = tmp;
+ } else {
oldlen = 0;
+ }
+ if (error != 0)
+ return (EFAULT);
error = userland_sysctl(td, name, uap->namelen,
uap->old, &oldlen, 1,
uap->new, uap->newlen, &j, SCTL_MASK32);
@@ -1916,7 +2029,7 @@
CP(j32_v0, j, version);
PTRIN_CP(j32_v0, j, path);
PTRIN_CP(j32_v0, j, hostname);
- j.ip4s = j32_v0.ip_number;
+ j.ip4s = htonl(j32_v0.ip_number); /* jail_v0 is host order */
break;
}
@@ -2255,7 +2368,7 @@
!useracc((caddr_t)uap->rmtp, sizeof(rmt), VM_PROT_WRITE))
return (EFAULT);
error = kern_nanosleep(td, &rqt, &rmt);
- if (error && uap->rmtp) {
+ if (error == EINTR && uap->rmtp) {
int error2;
CP(rmt, rmt32, tv_sec);
@@ -2321,7 +2434,85 @@
return (error);
}
+int freebsd32_ktimer_create(struct thread *td,
+ struct freebsd32_ktimer_create_args *uap)
+{
+ struct sigevent32 ev32;
+ struct sigevent ev, *evp;
+ int error, id;
+
+ if (uap->evp == NULL) {
+ evp = NULL;
+ } else {
+ evp = &ev;
+ error = copyin(uap->evp, &ev32, sizeof(ev32));
+ if (error != 0)
+ return (error);
+ error = convert_sigevent32(&ev32, &ev);
+ if (error != 0)
+ return (error);
+ }
+ error = kern_ktimer_create(td, uap->clock_id, evp, &id, -1);
+ if (error == 0) {
+ error = copyout(&id, uap->timerid, sizeof(int));
+ if (error != 0)
+ kern_ktimer_delete(td, id);
+ }
+ return (error);
+}
+
int
+freebsd32_ktimer_settime(struct thread *td,
+ struct freebsd32_ktimer_settime_args *uap)
+{
+ struct itimerspec32 val32, oval32;
+ struct itimerspec val, oval, *ovalp;
+ int error;
+
+ error = copyin(uap->value, &val32, sizeof(val32));
+ if (error != 0)
+ return (error);
+ ITS_CP(val32, val);
+ ovalp = uap->ovalue != NULL ? &oval : NULL;
+ error = kern_ktimer_settime(td, uap->timerid, uap->flags, &val, ovalp);
+ if (error == 0 && uap->ovalue != NULL) {
+ ITS_CP(oval, oval32);
+ error = copyout(&oval32, uap->ovalue, sizeof(oval32));
+ }
+ return (error);
+}
+
+int
+freebsd32_ktimer_gettime(struct thread *td,
+ struct freebsd32_ktimer_gettime_args *uap)
+{
+ struct itimerspec32 val32;
+ struct itimerspec val;
+ int error;
+
+ error = kern_ktimer_gettime(td, uap->timerid, &val);
+ if (error == 0) {
+ ITS_CP(val, val32);
+ error = copyout(&val32, uap->value, sizeof(val32));
+ }
+ return (error);
+}
+
+int
+freebsd32_clock_getcpuclockid2(struct thread *td,
+ struct freebsd32_clock_getcpuclockid2_args *uap)
+{
+ clockid_t clk_id;
+ int error;
+
+ error = kern_clock_getcpuclockid2(td, PAIR32TO64(id_t, uap->id),
+ uap->which, &clk_id);
+ if (error == 0)
+ error = copyout(&clk_id, uap->clock_id, sizeof(clockid_t));
+ return (error);
+}
+
+int
freebsd32_thr_new(struct thread *td,
struct freebsd32_thr_new_args *uap)
{
@@ -2386,12 +2577,38 @@
dst->si_uid = src->si_uid;
dst->si_status = src->si_status;
dst->si_addr = (uintptr_t)src->si_addr;
- dst->si_value.sigval_int = src->si_value.sival_int;
+ dst->si_value.sival_int = src->si_value.sival_int;
dst->si_timerid = src->si_timerid;
dst->si_overrun = src->si_overrun;
}
+#ifndef _FREEBSD32_SYSPROTO_H_
+struct freebsd32_sigqueue_args {
+ pid_t pid;
+ int signum;
+ /* union sigval32 */ int value;
+};
+#endif
int
+freebsd32_sigqueue(struct thread *td, struct freebsd32_sigqueue_args *uap)
+{
+ union sigval sv;
+
+ /*
+ * On 32-bit ABIs, sival_int and sival_ptr are the same.
+ * On 64-bit little-endian ABIs, the low bits are the same.
+ * In 64-bit big-endian ABIs, sival_int overlaps with
+ * sival_ptr's HIGH bits. We choose to support sival_int
+ * rather than sival_ptr in this case as it seems to be
+ * more common.
+ */
+ bzero(&sv, sizeof(sv));
+ sv.sival_int = uap->value;
+
+ return (kern_sigqueue(td, uap->pid, uap->signum, &sv));
+}
+
+int
freebsd32_sigtimedwait(struct thread *td, struct freebsd32_sigtimedwait_args *uap)
{
struct timespec32 ts32;
@@ -2703,7 +2920,8 @@
{
int argc, envc, i;
u_int32_t *vectp;
- char *stringp, *destp;
+ char *stringp;
+ uintptr_t destp;
u_int32_t *stack_base;
struct freebsd32_ps_strings *arginfo;
char canary[sizeof(long) * 8];
@@ -2725,26 +2943,25 @@
szsigcode = *(imgp->proc->p_sysent->sv_szsigcode);
else
szsigcode = 0;
- destp = (caddr_t)arginfo - szsigcode - SPARE_USRSPACE -
- roundup(execpath_len, sizeof(char *)) -
- roundup(sizeof(canary), sizeof(char *)) -
- roundup(sizeof(pagesizes32), sizeof(char *)) -
- roundup((ARG_MAX - imgp->args->stringspace), sizeof(char *));
+ destp = (uintptr_t)arginfo;
/*
* install sigcode
*/
- if (szsigcode != 0)
- copyout(imgp->proc->p_sysent->sv_sigcode,
- ((caddr_t)arginfo - szsigcode), szsigcode);
+ if (szsigcode != 0) {
+ destp -= szsigcode;
+ destp = rounddown2(destp, sizeof(uint32_t));
+ copyout(imgp->proc->p_sysent->sv_sigcode, (void *)destp,
+ szsigcode);
+ }
/*
* Copy the image path for the rtld.
*/
if (execpath_len != 0) {
- imgp->execpathp = (uintptr_t)arginfo - szsigcode - execpath_len;
- copyout(imgp->execpath, (void *)imgp->execpathp,
- execpath_len);
+ destp -= execpath_len;
+ imgp->execpathp = destp;
+ copyout(imgp->execpath, (void *)destp, execpath_len);
}
/*
@@ -2751,9 +2968,9 @@
* Prepare the canary for SSP.
*/
arc4rand(canary, sizeof(canary), 0);
- imgp->canary = (uintptr_t)arginfo - szsigcode - execpath_len -
- sizeof(canary);
- copyout(canary, (void *)imgp->canary, sizeof(canary));
+ destp -= sizeof(canary);
+ imgp->canary = destp;
+ copyout(canary, (void *)destp, sizeof(canary));
imgp->canarylen = sizeof(canary);
/*
@@ -2761,11 +2978,15 @@
*/
for (i = 0; i < MAXPAGESIZES; i++)
pagesizes32[i] = (uint32_t)pagesizes[i];
- imgp->pagesizes = (uintptr_t)arginfo - szsigcode - execpath_len -
- roundup(sizeof(canary), sizeof(char *)) - sizeof(pagesizes32);
- copyout(pagesizes32, (void *)imgp->pagesizes, sizeof(pagesizes32));
+ destp -= sizeof(pagesizes32);
+ destp = rounddown2(destp, sizeof(uint32_t));
+ imgp->pagesizes = destp;
+ copyout(pagesizes32, (void *)destp, sizeof(pagesizes32));
imgp->pagesizeslen = sizeof(pagesizes32);
+ destp -= ARG_MAX - imgp->args->stringspace;
+ destp = rounddown2(destp, sizeof(uint32_t));
+
/*
* If we have a valid auxargs ptr, prepare some room
* on the stack.
@@ -2785,13 +3006,14 @@
vectp = (u_int32_t *) (destp - (imgp->args->argc +
imgp->args->envc + 2 + imgp->auxarg_size + execpath_len) *
sizeof(u_int32_t));
- } else
+ } else {
/*
* The '+ 2' is for the null pointers at the end of each of
* the arg and env vector sets
*/
- vectp = (u_int32_t *)
- (destp - (imgp->args->argc + imgp->args->envc + 2) * sizeof(u_int32_t));
+ vectp = (u_int32_t *)(destp - (imgp->args->argc +
+ imgp->args->envc + 2) * sizeof(u_int32_t));
+ }
/*
* vectp also becomes our initial stack base
@@ -2804,7 +3026,7 @@
/*
* Copy out strings - arguments and environment.
*/
- copyout(stringp, destp, ARG_MAX - imgp->args->stringspace);
+ copyout(stringp, (void *)destp, ARG_MAX - imgp->args->stringspace);
/*
* Fill in "ps_strings" struct for ps, w, etc.
@@ -2847,8 +3069,8 @@
int
freebsd32_kldstat(struct thread *td, struct freebsd32_kldstat_args *uap)
{
- struct kld_file_stat stat;
- struct kld32_file_stat stat32;
+ struct kld_file_stat *stat;
+ struct kld32_file_stat *stat32;
int error, version;
if ((error = copyin(&uap->stat->version, &version, sizeof(version)))
@@ -2858,17 +3080,22 @@
version != sizeof(struct kld32_file_stat))
return (EINVAL);
- error = kern_kldstat(td, uap->fileid, &stat);
- if (error != 0)
- return (error);
-
- bcopy(&stat.name[0], &stat32.name[0], sizeof(stat.name));
- CP(stat, stat32, refs);
- CP(stat, stat32, id);
- PTROUT_CP(stat, stat32, address);
- CP(stat, stat32, size);
- bcopy(&stat.pathname[0], &stat32.pathname[0], sizeof(stat.pathname));
- return (copyout(&stat32, uap->stat, version));
+ stat = malloc(sizeof(*stat), M_TEMP, M_WAITOK | M_ZERO);
+ stat32 = malloc(sizeof(*stat32), M_TEMP, M_WAITOK | M_ZERO);
+ error = kern_kldstat(td, uap->fileid, stat);
+ if (error == 0) {
+ bcopy(&stat->name[0], &stat32->name[0], sizeof(stat->name));
+ CP(*stat, *stat32, refs);
+ CP(*stat, *stat32, id);
+ PTROUT_CP(*stat, *stat32, address);
+ CP(*stat, *stat32, size);
+ bcopy(&stat->pathname[0], &stat32->pathname[0],
+ sizeof(stat->pathname));
+ error = copyout(stat32, uap->stat, version);
+ }
+ free(stat, M_TEMP);
+ free(stat32, M_TEMP);
+ return (error);
}
int
@@ -2876,8 +3103,9 @@
struct freebsd32_posix_fallocate_args *uap)
{
- return (kern_posix_fallocate(td, uap->fd,
- PAIR32TO64(off_t, uap->offset), PAIR32TO64(off_t, uap->len)));
+ td->td_retval[0] = kern_posix_fallocate(td, uap->fd,
+ PAIR32TO64(off_t, uap->offset), PAIR32TO64(off_t, uap->len));
+ return (0);
}
int
@@ -2885,6 +3113,161 @@
struct freebsd32_posix_fadvise_args *uap)
{
- return (kern_posix_fadvise(td, uap->fd, PAIR32TO64(off_t, uap->offset),
- PAIR32TO64(off_t, uap->len), uap->advice));
+ td->td_retval[0] = kern_posix_fadvise(td, uap->fd,
+ PAIR32TO64(off_t, uap->offset), PAIR32TO64(off_t, uap->len),
+ uap->advice);
+ return (0);
}
+
+int
+convert_sigevent32(struct sigevent32 *sig32, struct sigevent *sig)
+{
+
+ CP(*sig32, *sig, sigev_notify);
+ switch (sig->sigev_notify) {
+ case SIGEV_NONE:
+ break;
+ case SIGEV_THREAD_ID:
+ CP(*sig32, *sig, sigev_notify_thread_id);
+ /* FALLTHROUGH */
+ case SIGEV_SIGNAL:
+ CP(*sig32, *sig, sigev_signo);
+ PTRIN_CP(*sig32, *sig, sigev_value.sival_ptr);
+ break;
+ case SIGEV_KEVENT:
+ CP(*sig32, *sig, sigev_notify_kqueue);
+ CP(*sig32, *sig, sigev_notify_kevent_flags);
+ PTRIN_CP(*sig32, *sig, sigev_value.sival_ptr);
+ break;
+ default:
+ return (EINVAL);
+ }
+ return (0);
+}
+
+int
+freebsd32_procctl(struct thread *td, struct freebsd32_procctl_args *uap)
+{
+ void *data;
+ union {
+ struct procctl_reaper_status rs;
+ struct procctl_reaper_pids rp;
+ struct procctl_reaper_kill rk;
+ } x;
+ union {
+ struct procctl_reaper_pids32 rp;
+ } x32;
+ int error, error1, flags;
+
+ switch (uap->com) {
+ case PROC_SPROTECT:
+ case PROC_TRACE_CTL:
+ error = copyin(PTRIN(uap->data), &flags, sizeof(flags));
+ if (error != 0)
+ return (error);
+ data = &flags;
+ break;
+ case PROC_REAP_ACQUIRE:
+ case PROC_REAP_RELEASE:
+ if (uap->data != NULL)
+ return (EINVAL);
+ data = NULL;
+ break;
+ case PROC_REAP_STATUS:
+ data = &x.rs;
+ break;
+ case PROC_REAP_GETPIDS:
+ error = copyin(uap->data, &x32.rp, sizeof(x32.rp));
+ if (error != 0)
+ return (error);
+ CP(x32.rp, x.rp, rp_count);
+ PTRIN_CP(x32.rp, x.rp, rp_pids);
+ data = &x.rp;
+ break;
+ case PROC_REAP_KILL:
+ error = copyin(uap->data, &x.rk, sizeof(x.rk));
+ if (error != 0)
+ return (error);
+ data = &x.rk;
+ break;
+ case PROC_TRACE_STATUS:
+ data = &flags;
+ break;
+ default:
+ return (EINVAL);
+ }
+ error = kern_procctl(td, uap->idtype, PAIR32TO64(id_t, uap->id),
+ uap->com, data);
+ switch (uap->com) {
+ case PROC_REAP_STATUS:
+ if (error == 0)
+ error = copyout(&x.rs, uap->data, sizeof(x.rs));
+ break;
+ case PROC_REAP_KILL:
+ error1 = copyout(&x.rk, uap->data, sizeof(x.rk));
+ if (error == 0)
+ error = error1;
+ break;
+ case PROC_TRACE_STATUS:
+ if (error == 0)
+ error = copyout(&flags, uap->data, sizeof(flags));
+ break;
+ }
+ return (error);
+}
+
+int
+freebsd32_fcntl(struct thread *td, struct freebsd32_fcntl_args *uap)
+{
+ long tmp;
+
+ switch (uap->cmd) {
+ /*
+ * Do unsigned conversion for arg when operation
+ * interprets it as flags or pointer.
+ */
+ case F_SETLK_REMOTE:
+ case F_SETLKW:
+ case F_SETLK:
+ case F_GETLK:
+ case F_SETFD:
+ case F_SETFL:
+ case F_OGETLK:
+ case F_OSETLK:
+ case F_OSETLKW:
+ tmp = (unsigned int)(uap->arg);
+ break;
+ default:
+ tmp = uap->arg;
+ break;
+ }
+ return (kern_fcntl_freebsd(td, uap->fd, uap->cmd, tmp));
+}
+
+int
+freebsd32_ppoll(struct thread *td, struct freebsd32_ppoll_args *uap)
+{
+ struct timespec32 ts32;
+ struct timespec ts, *tsp;
+ sigset_t set, *ssp;
+ int error;
+
+ if (uap->ts != NULL) {
+ error = copyin(uap->ts, &ts32, sizeof(ts32));
+ if (error != 0)
+ return (error);
+ CP(ts32, ts, tv_sec);
+ CP(ts32, ts, tv_nsec);
+ tsp = &ts;
+ } else
+ tsp = NULL;
+ if (uap->set != NULL) {
+ error = copyin(uap->set, &set, sizeof(set));
+ if (error != 0)
+ return (error);
+ ssp = &set;
+ } else
+ ssp = NULL;
+
+ return (kern_poll(td, uap->fds, uap->nfds, tsp, ssp));
+}
Added: trunk/sys/compat/freebsd32/freebsd32_misc.h
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_misc.h (rev 0)
+++ trunk/sys/compat/freebsd32/freebsd32_misc.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -0,0 +1,48 @@
+/* $MidnightBSD$ */
+/*-
+ * Copyright (c) 2013 The FreeBSD Foundation
+ * All rights reserved.
+ *
+ * This software was developed by Pawel Jakub Dawidek under sponsorship from
+ * the FreeBSD Foundation.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_misc.h 254490 2013-08-18 13:34:11Z pjd $
+ */
+
+#ifndef _COMPAT_FREEBSD32_MISC_H_
+#define _COMPAT_FREEBSD32_MISC_H_
+
+#include <sys/endian.h>
+
+#if BYTE_ORDER == BIG_ENDIAN
+#define PAIR32TO64(type, name) ((name ## 2) | ((type)(name ## 1) << 32))
+#define RETVAL_HI 0
+#define RETVAL_LO 1
+#else
+#define PAIR32TO64(type, name) ((name ## 1) | ((type)(name ## 2) << 32))
+#define RETVAL_HI 1
+#define RETVAL_LO 0
+#endif
+
+#endif /* !_COMPAT_FREEBSD32_MISC_H_ */
Property changes on: trunk/sys/compat/freebsd32/freebsd32_misc.h
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
Modified: trunk/sys/compat/freebsd32/freebsd32_proto.h
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_proto.h 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_proto.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,9 +1,9 @@
+/* $MidnightBSD$ */
/*
* System call prototypes.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD$
- * created from; MidnightBSD: src/sys/compat/freebsd32/syscalls.master,v 1.6 2012/01/04 02:14:06 laffer1 Exp
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_proto.h 318323 2017-05-15 22:50:54Z brooks $
*/
#ifndef _FREEBSD32_SYSPROTO_H_
@@ -12,8 +12,10 @@
#include <sys/signal.h>
#include <sys/acl.h>
#include <sys/cpuset.h>
+#include <sys/_ffcounter.h>
#include <sys/_semaphore.h>
#include <sys/ucontext.h>
+#include <sys/wait.h>
#include <bsm/audit_kevents.h>
@@ -32,7 +34,7 @@
#define PADR_(t) 0
#endif
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
struct freebsd32_wait4_args {
@@ -53,11 +55,11 @@
};
struct freebsd32_recvfrom_args {
char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)];
- char buf_l_[PADL_(u_int32_t)]; u_int32_t buf; char buf_r_[PADR_(u_int32_t)];
- char len_l_[PADL_(u_int32_t)]; u_int32_t len; char len_r_[PADR_(u_int32_t)];
+ char buf_l_[PADL_(uint32_t)]; uint32_t buf; char buf_r_[PADR_(uint32_t)];
+ char len_l_[PADL_(uint32_t)]; uint32_t len; char len_r_[PADR_(uint32_t)];
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
- char from_l_[PADL_(u_int32_t)]; u_int32_t from; char from_r_[PADR_(u_int32_t)];
- char fromlenaddr_l_[PADL_(u_int32_t)]; u_int32_t fromlenaddr; char fromlenaddr_r_[PADR_(u_int32_t)];
+ char from_l_[PADL_(uint32_t)]; uint32_t from; char from_r_[PADR_(uint32_t)];
+ char fromlenaddr_l_[PADL_(uint32_t)]; uint32_t fromlenaddr; char fromlenaddr_r_[PADR_(uint32_t)];
};
struct ofreebsd32_sigpending_args {
register_t dummy;
@@ -73,8 +75,8 @@
};
struct freebsd32_execve_args {
char fname_l_[PADL_(char *)]; char * fname; char fname_r_[PADR_(char *)];
- char argv_l_[PADL_(u_int32_t *)]; u_int32_t * argv; char argv_r_[PADR_(u_int32_t *)];
- char envv_l_[PADL_(u_int32_t *)]; u_int32_t * envv; char envv_r_[PADR_(u_int32_t *)];
+ char argv_l_[PADL_(uint32_t *)]; uint32_t * argv; char argv_r_[PADR_(uint32_t *)];
+ char envv_l_[PADL_(uint32_t *)]; uint32_t * envv; char envv_r_[PADR_(uint32_t *)];
};
struct freebsd32_mprotect_args {
char addr_l_[PADL_(const void *)]; const void * addr; char addr_r_[PADR_(const void *)];
@@ -90,6 +92,11 @@
char which_l_[PADL_(u_int)]; u_int which; char which_r_[PADR_(u_int)];
char itv_l_[PADL_(struct itimerval32 *)]; struct itimerval32 * itv; char itv_r_[PADR_(struct itimerval32 *)];
};
+struct freebsd32_fcntl_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)];
+ char arg_l_[PADL_(int)]; int arg; char arg_r_[PADR_(int)];
+};
struct freebsd32_select_args {
char nd_l_[PADL_(int)]; int nd; char nd_r_[PADR_(int)];
char in_l_[PADL_(fd_set *)]; fd_set * in; char in_r_[PADR_(fd_set *)];
@@ -174,9 +181,9 @@
char name_l_[PADL_(int *)]; int * name; char name_r_[PADR_(int *)];
char namelen_l_[PADL_(u_int)]; u_int namelen; char namelen_r_[PADR_(u_int)];
char old_l_[PADL_(void *)]; void * old; char old_r_[PADR_(void *)];
- char oldlenp_l_[PADL_(u_int32_t *)]; u_int32_t * oldlenp; char oldlenp_r_[PADR_(u_int32_t *)];
+ char oldlenp_l_[PADL_(uint32_t *)]; uint32_t * oldlenp; char oldlenp_r_[PADR_(uint32_t *)];
char new_l_[PADL_(void *)]; void * new; char new_r_[PADR_(void *)];
- char newlen_l_[PADL_(u_int32_t)]; u_int32_t newlen; char newlen_r_[PADR_(u_int32_t)];
+ char newlen_l_[PADL_(uint32_t)]; uint32_t newlen; char newlen_r_[PADR_(uint32_t)];
};
struct freebsd32_futimes_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
@@ -207,10 +214,31 @@
char clock_id_l_[PADL_(clockid_t)]; clockid_t clock_id; char clock_id_r_[PADR_(clockid_t)];
char tp_l_[PADL_(struct timespec32 *)]; struct timespec32 * tp; char tp_r_[PADR_(struct timespec32 *)];
};
+struct freebsd32_ktimer_create_args {
+ char clock_id_l_[PADL_(clockid_t)]; clockid_t clock_id; char clock_id_r_[PADR_(clockid_t)];
+ char evp_l_[PADL_(struct sigevent32 *)]; struct sigevent32 * evp; char evp_r_[PADR_(struct sigevent32 *)];
+ char timerid_l_[PADL_(int *)]; int * timerid; char timerid_r_[PADR_(int *)];
+};
+struct freebsd32_ktimer_settime_args {
+ char timerid_l_[PADL_(int)]; int timerid; char timerid_r_[PADR_(int)];
+ char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
+ char value_l_[PADL_(const struct itimerspec32 *)]; const struct itimerspec32 * value; char value_r_[PADR_(const struct itimerspec32 *)];
+ char ovalue_l_[PADL_(struct itimerspec32 *)]; struct itimerspec32 * ovalue; char ovalue_r_[PADR_(struct itimerspec32 *)];
+};
+struct freebsd32_ktimer_gettime_args {
+ char timerid_l_[PADL_(int)]; int timerid; char timerid_r_[PADR_(int)];
+ char value_l_[PADL_(struct itimerspec32 *)]; struct itimerspec32 * value; char value_r_[PADR_(struct itimerspec32 *)];
+};
struct freebsd32_nanosleep_args {
char rqtp_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * rqtp; char rqtp_r_[PADR_(const struct timespec32 *)];
char rmtp_l_[PADL_(struct timespec32 *)]; struct timespec32 * rmtp; char rmtp_r_[PADR_(struct timespec32 *)];
};
+struct freebsd32_clock_getcpuclockid2_args {
+ char id1_l_[PADL_(uint32_t)]; uint32_t id1; char id1_r_[PADR_(uint32_t)];
+ char id2_l_[PADL_(uint32_t)]; uint32_t id2; char id2_r_[PADR_(uint32_t)];
+ char which_l_[PADL_(int)]; int which; char which_r_[PADR_(int)];
+ char clock_id_l_[PADL_(clockid_t *)]; clockid_t * clock_id; char clock_id_r_[PADR_(clockid_t *)];
+};
struct freebsd32_aio_read_args {
char aiocbp_l_[PADL_(struct aiocb32 *)]; struct aiocb32 * aiocbp; char aiocbp_r_[PADR_(struct aiocb32 *)];
};
@@ -221,7 +249,7 @@
char mode_l_[PADL_(int)]; int mode; char mode_r_[PADR_(int)];
char acb_list_l_[PADL_(struct aiocb32 *const *)]; struct aiocb32 *const * acb_list; char acb_list_r_[PADR_(struct aiocb32 *const *)];
char nent_l_[PADL_(int)]; int nent; char nent_r_[PADR_(int)];
- char sig_l_[PADL_(struct sigevent *)]; struct sigevent * sig; char sig_r_[PADR_(struct sigevent *)];
+ char sig_l_[PADL_(struct sigevent32 *)]; struct sigevent32 * sig; char sig_r_[PADR_(struct sigevent32 *)];
};
struct freebsd32_lutimes_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
@@ -231,15 +259,15 @@
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)];
char iovcnt_l_[PADL_(u_int)]; u_int iovcnt; char iovcnt_r_[PADR_(u_int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
};
struct freebsd32_pwritev_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char iovp_l_[PADL_(struct iovec32 *)]; struct iovec32 * iovp; char iovp_r_[PADR_(struct iovec32 *)];
char iovcnt_l_[PADL_(u_int)]; u_int iovcnt; char iovcnt_r_[PADR_(u_int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
};
struct freebsd32_modstat_args {
char modid_l_[PADL_(int)]; int modid; char modid_r_[PADR_(int)];
@@ -308,8 +336,8 @@
struct freebsd32_sendfile_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
char nbytes_l_[PADL_(size_t)]; size_t nbytes; char nbytes_r_[PADR_(size_t)];
char hdtr_l_[PADL_(struct sf_hdtr32 *)]; struct sf_hdtr32 * hdtr; char hdtr_r_[PADR_(struct sf_hdtr32 *)];
char sbytes_l_[PADL_(off_t *)]; off_t * sbytes; char sbytes_r_[PADR_(off_t *)];
@@ -368,6 +396,11 @@
char param_l_[PADL_(struct thr_param32 *)]; struct thr_param32 * param; char param_r_[PADR_(struct thr_param32 *)];
char param_size_l_[PADL_(int)]; int param_size; char param_size_r_[PADR_(int)];
};
+struct freebsd32_sigqueue_args {
+ char pid_l_[PADL_(pid_t)]; pid_t pid; char pid_r_[PADR_(pid_t)];
+ char signum_l_[PADL_(int)]; int signum; char signum_r_[PADR_(int)];
+ char value_l_[PADL_(int)]; int value; char value_r_[PADR_(int)];
+};
struct freebsd32_kmq_open_args {
char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)];
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
@@ -393,6 +426,10 @@
char msg_prio_l_[PADL_(unsigned)]; unsigned msg_prio; char msg_prio_r_[PADR_(unsigned)];
char abs_timeout_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * abs_timeout; char abs_timeout_r_[PADR_(const struct timespec32 *)];
};
+struct freebsd32_kmq_notify_args {
+ char mqd_l_[PADL_(int)]; int mqd; char mqd_r_[PADR_(int)];
+ char sigev_l_[PADL_(const struct sigevent32 *)]; const struct sigevent32 * sigev; char sigev_r_[PADR_(const struct sigevent32 *)];
+};
struct freebsd32_aio_fsync_args {
char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)];
char aiocbp_l_[PADL_(struct aiocb32 *)]; struct aiocb32 * aiocbp; char aiocbp_r_[PADR_(struct aiocb32 *)];
@@ -403,8 +440,8 @@
char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)];
char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
};
struct freebsd32_pwrite_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
@@ -411,8 +448,8 @@
char buf_l_[PADL_(const void *)]; const void * buf; char buf_r_[PADR_(const void *)];
char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
};
struct freebsd32_mmap_args {
char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)];
@@ -421,27 +458,27 @@
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char pos1_l_[PADL_(u_int32_t)]; u_int32_t pos1; char pos1_r_[PADR_(u_int32_t)];
- char pos2_l_[PADL_(u_int32_t)]; u_int32_t pos2; char pos2_r_[PADR_(u_int32_t)];
+ char pos1_l_[PADL_(uint32_t)]; uint32_t pos1; char pos1_r_[PADR_(uint32_t)];
+ char pos2_l_[PADL_(uint32_t)]; uint32_t pos2; char pos2_r_[PADR_(uint32_t)];
};
struct freebsd32_lseek_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
char whence_l_[PADL_(int)]; int whence; char whence_r_[PADR_(int)];
};
struct freebsd32_truncate_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char length1_l_[PADL_(u_int32_t)]; u_int32_t length1; char length1_r_[PADR_(u_int32_t)];
- char length2_l_[PADL_(u_int32_t)]; u_int32_t length2; char length2_r_[PADR_(u_int32_t)];
+ char length1_l_[PADL_(uint32_t)]; uint32_t length1; char length1_r_[PADR_(uint32_t)];
+ char length2_l_[PADL_(uint32_t)]; uint32_t length2; char length2_r_[PADR_(uint32_t)];
};
struct freebsd32_ftruncate_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char length1_l_[PADL_(u_int32_t)]; u_int32_t length1; char length1_r_[PADR_(u_int32_t)];
- char length2_l_[PADL_(u_int32_t)]; u_int32_t length2; char length2_r_[PADR_(u_int32_t)];
+ char length1_l_[PADL_(uint32_t)]; uint32_t length1; char length1_r_[PADR_(uint32_t)];
+ char length2_l_[PADL_(uint32_t)]; uint32_t length2; char length2_r_[PADR_(uint32_t)];
};
#else
struct freebsd32_pread_args {
@@ -448,15 +485,15 @@
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)];
char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
};
struct freebsd32_pwrite_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char buf_l_[PADL_(const void *)]; const void * buf; char buf_r_[PADR_(const void *)];
char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
};
struct freebsd32_mmap_args {
char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)];
@@ -464,24 +501,24 @@
char prot_l_[PADL_(int)]; int prot; char prot_r_[PADR_(int)];
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char pos1_l_[PADL_(u_int32_t)]; u_int32_t pos1; char pos1_r_[PADR_(u_int32_t)];
- char pos2_l_[PADL_(u_int32_t)]; u_int32_t pos2; char pos2_r_[PADR_(u_int32_t)];
+ char pos1_l_[PADL_(uint32_t)]; uint32_t pos1; char pos1_r_[PADR_(uint32_t)];
+ char pos2_l_[PADL_(uint32_t)]; uint32_t pos2; char pos2_r_[PADR_(uint32_t)];
};
struct freebsd32_lseek_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
char whence_l_[PADL_(int)]; int whence; char whence_r_[PADR_(int)];
};
struct freebsd32_truncate_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
- char length1_l_[PADL_(u_int32_t)]; u_int32_t length1; char length1_r_[PADR_(u_int32_t)];
- char length2_l_[PADL_(u_int32_t)]; u_int32_t length2; char length2_r_[PADR_(u_int32_t)];
+ char length1_l_[PADL_(uint32_t)]; uint32_t length1; char length1_r_[PADR_(uint32_t)];
+ char length2_l_[PADL_(uint32_t)]; uint32_t length2; char length2_r_[PADR_(uint32_t)];
};
struct freebsd32_ftruncate_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char length1_l_[PADL_(u_int32_t)]; u_int32_t length1; char length1_r_[PADR_(u_int32_t)];
- char length2_l_[PADL_(u_int32_t)]; u_int32_t length2; char length2_r_[PADR_(u_int32_t)];
+ char length1_l_[PADL_(uint32_t)]; uint32_t length1; char length1_r_[PADR_(uint32_t)];
+ char length2_l_[PADL_(uint32_t)]; uint32_t length2; char length2_r_[PADR_(uint32_t)];
};
#endif
#ifdef PAD64_REQUIRED
@@ -488,15 +525,15 @@
struct freebsd32_cpuset_setid_args {
char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char id1_l_[PADL_(u_int32_t)]; u_int32_t id1; char id1_r_[PADR_(u_int32_t)];
- char id2_l_[PADL_(u_int32_t)]; u_int32_t id2; char id2_r_[PADR_(u_int32_t)];
+ char id1_l_[PADL_(uint32_t)]; uint32_t id1; char id1_r_[PADR_(uint32_t)];
+ char id2_l_[PADL_(uint32_t)]; uint32_t id2; char id2_r_[PADR_(uint32_t)];
char setid_l_[PADL_(cpusetid_t)]; cpusetid_t setid; char setid_r_[PADR_(cpusetid_t)];
};
#else
struct freebsd32_cpuset_setid_args {
char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)];
- char id1_l_[PADL_(u_int32_t)]; u_int32_t id1; char id1_r_[PADR_(u_int32_t)];
- char id2_l_[PADL_(u_int32_t)]; u_int32_t id2; char id2_r_[PADR_(u_int32_t)];
+ char id1_l_[PADL_(uint32_t)]; uint32_t id1; char id1_r_[PADR_(uint32_t)];
+ char id2_l_[PADL_(uint32_t)]; uint32_t id2; char id2_r_[PADR_(uint32_t)];
char setid_l_[PADL_(cpusetid_t)]; cpusetid_t setid; char setid_r_[PADR_(cpusetid_t)];
};
#endif
@@ -503,15 +540,15 @@
struct freebsd32_cpuset_getid_args {
char level_l_[PADL_(cpulevel_t)]; cpulevel_t level; char level_r_[PADR_(cpulevel_t)];
char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)];
- char id1_l_[PADL_(u_int32_t)]; u_int32_t id1; char id1_r_[PADR_(u_int32_t)];
- char id2_l_[PADL_(u_int32_t)]; u_int32_t id2; char id2_r_[PADR_(u_int32_t)];
+ char id1_l_[PADL_(uint32_t)]; uint32_t id1; char id1_r_[PADR_(uint32_t)];
+ char id2_l_[PADL_(uint32_t)]; uint32_t id2; char id2_r_[PADR_(uint32_t)];
char setid_l_[PADL_(cpusetid_t *)]; cpusetid_t * setid; char setid_r_[PADR_(cpusetid_t *)];
};
struct freebsd32_cpuset_getaffinity_args {
char level_l_[PADL_(cpulevel_t)]; cpulevel_t level; char level_r_[PADR_(cpulevel_t)];
char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)];
- char id1_l_[PADL_(u_int32_t)]; u_int32_t id1; char id1_r_[PADR_(u_int32_t)];
- char id2_l_[PADL_(u_int32_t)]; u_int32_t id2; char id2_r_[PADR_(u_int32_t)];
+ char id1_l_[PADL_(uint32_t)]; uint32_t id1; char id1_r_[PADR_(uint32_t)];
+ char id2_l_[PADL_(uint32_t)]; uint32_t id2; char id2_r_[PADR_(uint32_t)];
char cpusetsize_l_[PADL_(size_t)]; size_t cpusetsize; char cpusetsize_r_[PADR_(size_t)];
char mask_l_[PADL_(cpuset_t *)]; cpuset_t * mask; char mask_r_[PADR_(cpuset_t *)];
};
@@ -518,15 +555,15 @@
struct freebsd32_cpuset_setaffinity_args {
char level_l_[PADL_(cpulevel_t)]; cpulevel_t level; char level_r_[PADR_(cpulevel_t)];
char which_l_[PADL_(cpuwhich_t)]; cpuwhich_t which; char which_r_[PADR_(cpuwhich_t)];
- char id1_l_[PADL_(u_int32_t)]; u_int32_t id1; char id1_r_[PADR_(u_int32_t)];
- char id2_l_[PADL_(u_int32_t)]; u_int32_t id2; char id2_r_[PADR_(u_int32_t)];
+ char id1_l_[PADL_(uint32_t)]; uint32_t id1; char id1_r_[PADR_(uint32_t)];
+ char id2_l_[PADL_(uint32_t)]; uint32_t id2; char id2_r_[PADR_(uint32_t)];
char cpusetsize_l_[PADL_(size_t)]; size_t cpusetsize; char cpusetsize_r_[PADR_(size_t)];
char mask_l_[PADL_(const cpuset_t *)]; const cpuset_t * mask; char mask_r_[PADR_(const cpuset_t *)];
};
struct freebsd32_fexecve_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char argv_l_[PADL_(u_int32_t *)]; u_int32_t * argv; char argv_r_[PADR_(u_int32_t *)];
- char envv_l_[PADL_(u_int32_t *)]; u_int32_t * envv; char envv_r_[PADR_(u_int32_t *)];
+ char argv_l_[PADL_(uint32_t *)]; uint32_t * argv; char argv_r_[PADR_(uint32_t *)];
+ char envv_l_[PADL_(uint32_t *)]; uint32_t * envv; char envv_r_[PADR_(uint32_t *)];
};
struct freebsd32_fstatat_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
@@ -565,6 +602,9 @@
char cmd_l_[PADL_(int)]; int cmd; char cmd_r_[PADR_(int)];
char buf_l_[PADL_(struct shmid_ds32 *)]; struct shmid_ds32 * buf; char buf_r_[PADR_(struct shmid_ds32 *)];
};
+struct freebsd32_cap_enter_args {
+ register_t dummy;
+};
struct freebsd32_pselect_args {
char nd_l_[PADL_(int)]; int nd; char nd_r_[PADR_(int)];
char in_l_[PADL_(fd_set *)]; fd_set * in; char in_r_[PADR_(fd_set *)];
@@ -627,7 +667,54 @@
char info_l_[PADL_(siginfo_t *)]; siginfo_t * info; char info_r_[PADR_(siginfo_t *)];
};
#endif
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+struct freebsd32_cap_ioctls_limit_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char cmds_l_[PADL_(const uint32_t *)]; const uint32_t * cmds; char cmds_r_[PADR_(const uint32_t *)];
+ char ncmds_l_[PADL_(size_t)]; size_t ncmds; char ncmds_r_[PADR_(size_t)];
+};
+struct freebsd32_cap_ioctls_get_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char cmds_l_[PADL_(uint32_t *)]; uint32_t * cmds; char cmds_r_[PADR_(uint32_t *)];
+ char maxcmds_l_[PADL_(size_t)]; size_t maxcmds; char maxcmds_r_[PADR_(size_t)];
+};
+struct freebsd32_aio_mlock_args {
+ char aiocbp_l_[PADL_(struct aiocb32 *)]; struct aiocb32 * aiocbp; char aiocbp_r_[PADR_(struct aiocb32 *)];
+};
+#ifdef PAD64_REQUIRED
+struct freebsd32_procctl_args {
+ char idtype_l_[PADL_(int)]; int idtype; char idtype_r_[PADR_(int)];
+ char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
+ char id1_l_[PADL_(uint32_t)]; uint32_t id1; char id1_r_[PADR_(uint32_t)];
+ char id2_l_[PADL_(uint32_t)]; uint32_t id2; char id2_r_[PADR_(uint32_t)];
+ char com_l_[PADL_(int)]; int com; char com_r_[PADR_(int)];
+ char data_l_[PADL_(void *)]; void * data; char data_r_[PADR_(void *)];
+};
+#else
+struct freebsd32_procctl_args {
+ char idtype_l_[PADL_(int)]; int idtype; char idtype_r_[PADR_(int)];
+ char id1_l_[PADL_(uint32_t)]; uint32_t id1; char id1_r_[PADR_(uint32_t)];
+ char id2_l_[PADL_(uint32_t)]; uint32_t id2; char id2_r_[PADR_(uint32_t)];
+ char com_l_[PADL_(int)]; int com; char com_r_[PADR_(int)];
+ char data_l_[PADL_(void *)]; void * data; char data_r_[PADR_(void *)];
+};
+#endif
+struct freebsd32_ppoll_args {
+ char fds_l_[PADL_(struct pollfd *)]; struct pollfd * fds; char fds_r_[PADR_(struct pollfd *)];
+ char nfds_l_[PADL_(u_int)]; u_int nfds; char nfds_r_[PADR_(u_int)];
+ char ts_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * ts; char ts_r_[PADR_(const struct timespec32 *)];
+ char set_l_[PADL_(const sigset_t *)]; const sigset_t * set; char set_r_[PADR_(const sigset_t *)];
+};
+struct freebsd32_futimens_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char times_l_[PADL_(struct timespec *)]; struct timespec * times; char times_r_[PADR_(struct timespec *)];
+};
+struct freebsd32_utimensat_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char times_l_[PADL_(struct timespec *)]; struct timespec * times; char times_r_[PADR_(struct timespec *)];
+ char flag_l_[PADL_(int)]; int flag; char flag_r_[PADR_(int)];
+};
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
int freebsd32_wait4(struct thread *, struct freebsd32_wait4_args *);
@@ -640,6 +727,7 @@
int freebsd32_mprotect(struct thread *, struct freebsd32_mprotect_args *);
int freebsd32_setitimer(struct thread *, struct freebsd32_setitimer_args *);
int freebsd32_getitimer(struct thread *, struct freebsd32_getitimer_args *);
+int freebsd32_fcntl(struct thread *, struct freebsd32_fcntl_args *);
int freebsd32_select(struct thread *, struct freebsd32_select_args *);
int freebsd32_gettimeofday(struct thread *, struct freebsd32_gettimeofday_args *);
int freebsd32_getrusage(struct thread *, struct freebsd32_getrusage_args *);
@@ -663,7 +751,11 @@
int freebsd32_clock_gettime(struct thread *, struct freebsd32_clock_gettime_args *);
int freebsd32_clock_settime(struct thread *, struct freebsd32_clock_settime_args *);
int freebsd32_clock_getres(struct thread *, struct freebsd32_clock_getres_args *);
+int freebsd32_ktimer_create(struct thread *, struct freebsd32_ktimer_create_args *);
+int freebsd32_ktimer_settime(struct thread *, struct freebsd32_ktimer_settime_args *);
+int freebsd32_ktimer_gettime(struct thread *, struct freebsd32_ktimer_gettime_args *);
int freebsd32_nanosleep(struct thread *, struct freebsd32_nanosleep_args *);
+int freebsd32_clock_getcpuclockid2(struct thread *, struct freebsd32_clock_getcpuclockid2_args *);
int freebsd32_aio_read(struct thread *, struct freebsd32_aio_read_args *);
int freebsd32_aio_write(struct thread *, struct freebsd32_aio_write_args *);
int freebsd32_lio_listio(struct thread *, struct freebsd32_lio_listio_args *);
@@ -699,10 +791,12 @@
int freebsd32_thr_suspend(struct thread *, struct freebsd32_thr_suspend_args *);
int freebsd32_umtx_op(struct thread *, struct freebsd32_umtx_op_args *);
int freebsd32_thr_new(struct thread *, struct freebsd32_thr_new_args *);
+int freebsd32_sigqueue(struct thread *, struct freebsd32_sigqueue_args *);
int freebsd32_kmq_open(struct thread *, struct freebsd32_kmq_open_args *);
int freebsd32_kmq_setattr(struct thread *, struct freebsd32_kmq_setattr_args *);
int freebsd32_kmq_timedreceive(struct thread *, struct freebsd32_kmq_timedreceive_args *);
int freebsd32_kmq_timedsend(struct thread *, struct freebsd32_kmq_timedsend_args *);
+int freebsd32_kmq_notify(struct thread *, struct freebsd32_kmq_notify_args *);
int freebsd32_aio_fsync(struct thread *, struct freebsd32_aio_fsync_args *);
#ifdef PAD64_REQUIRED
int freebsd32_pread(struct thread *, struct freebsd32_pread_args *);
@@ -735,6 +829,7 @@
int freebsd32_semctl(struct thread *, struct freebsd32_semctl_args *);
int freebsd32_msgctl(struct thread *, struct freebsd32_msgctl_args *);
int freebsd32_shmctl(struct thread *, struct freebsd32_shmctl_args *);
+int freebsd32_cap_enter(struct thread *, struct freebsd32_cap_enter_args *);
int freebsd32_pselect(struct thread *, struct freebsd32_pselect_args *);
#ifdef PAD64_REQUIRED
int freebsd32_posix_fallocate(struct thread *, struct freebsd32_posix_fallocate_args *);
@@ -745,10 +840,21 @@
int freebsd32_posix_fadvise(struct thread *, struct freebsd32_posix_fadvise_args *);
int freebsd32_wait6(struct thread *, struct freebsd32_wait6_args *);
#endif
+int freebsd32_cap_ioctls_limit(struct thread *, struct freebsd32_cap_ioctls_limit_args *);
+int freebsd32_cap_ioctls_get(struct thread *, struct freebsd32_cap_ioctls_get_args *);
+int freebsd32_aio_mlock(struct thread *, struct freebsd32_aio_mlock_args *);
+#ifdef PAD64_REQUIRED
+int freebsd32_procctl(struct thread *, struct freebsd32_procctl_args *);
+#else
+int freebsd32_procctl(struct thread *, struct freebsd32_procctl_args *);
+#endif
+int freebsd32_ppoll(struct thread *, struct freebsd32_ppoll_args *);
+int freebsd32_futimens(struct thread *, struct freebsd32_futimens_args *);
+int freebsd32_utimensat(struct thread *, struct freebsd32_utimensat_args *);
#ifdef COMPAT_43
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
struct ofreebsd32_lseek_args {
@@ -816,6 +922,9 @@
#ifdef PAD64_REQUIRED
#else
#endif
+#ifdef PAD64_REQUIRED
+#else
+#endif
int ofreebsd32_lseek(struct thread *, struct ofreebsd32_lseek_args *);
int ofreebsd32_stat(struct thread *, struct ofreebsd32_stat_args *);
int ofreebsd32_lstat(struct thread *, struct ofreebsd32_lstat_args *);
@@ -837,7 +946,7 @@
#ifdef COMPAT_FREEBSD4
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
struct freebsd4_freebsd32_getfsstat_args {
@@ -860,8 +969,8 @@
struct freebsd4_freebsd32_sendfile_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char s_l_[PADL_(int)]; int s; char s_r_[PADR_(int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
char nbytes_l_[PADL_(size_t)]; size_t nbytes; char nbytes_r_[PADR_(size_t)];
char hdtr_l_[PADL_(struct sf_hdtr32 *)]; struct sf_hdtr32 * hdtr; char hdtr_r_[PADR_(struct sf_hdtr32 *)];
char sbytes_l_[PADL_(off_t *)]; off_t * sbytes; char sbytes_r_[PADR_(off_t *)];
@@ -884,6 +993,9 @@
#ifdef PAD64_REQUIRED
#else
#endif
+#ifdef PAD64_REQUIRED
+#else
+#endif
int freebsd4_freebsd32_getfsstat(struct thread *, struct freebsd4_freebsd32_getfsstat_args *);
int freebsd4_freebsd32_statfs(struct thread *, struct freebsd4_freebsd32_statfs_args *);
int freebsd4_freebsd32_fstatfs(struct thread *, struct freebsd4_freebsd32_fstatfs_args *);
@@ -897,7 +1009,7 @@
#ifdef COMPAT_FREEBSD6
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
struct freebsd6_freebsd32_pread_args {
@@ -905,8 +1017,8 @@
char buf_l_[PADL_(void *)]; void * buf; char buf_r_[PADR_(void *)];
char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
};
struct freebsd6_freebsd32_pwrite_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
@@ -913,8 +1025,8 @@
char buf_l_[PADL_(const void *)]; const void * buf; char buf_r_[PADR_(const void *)];
char nbyte_l_[PADL_(size_t)]; size_t nbyte; char nbyte_r_[PADR_(size_t)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
};
struct freebsd6_freebsd32_mmap_args {
char addr_l_[PADL_(caddr_t)]; caddr_t addr; char addr_r_[PADR_(caddr_t)];
@@ -923,27 +1035,27 @@
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char pos1_l_[PADL_(u_int32_t)]; u_int32_t pos1; char pos1_r_[PADR_(u_int32_t)];
- char pos2_l_[PADL_(u_int32_t)]; u_int32_t pos2; char pos2_r_[PADR_(u_int32_t)];
+ char pos1_l_[PADL_(uint32_t)]; uint32_t pos1; char pos1_r_[PADR_(uint32_t)];
+ char pos2_l_[PADL_(uint32_t)]; uint32_t pos2; char pos2_r_[PADR_(uint32_t)];
};
struct freebsd6_freebsd32_lseek_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char offset1_l_[PADL_(u_int32_t)]; u_int32_t offset1; char offset1_r_[PADR_(u_int32_t)];
- char offset2_l_[PADL_(u_int32_t)]; u_int32_t offset2; char offset2_r_[PADR_(u_int32_t)];
+ char offset1_l_[PADL_(uint32_t)]; uint32_t offset1; char offset1_r_[PADR_(uint32_t)];
+ char offset2_l_[PADL_(uint32_t)]; uint32_t offset2; char offset2_r_[PADR_(uint32_t)];
char whence_l_[PADL_(int)]; int whence; char whence_r_[PADR_(int)];
};
struct freebsd6_freebsd32_truncate_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char length1_l_[PADL_(u_int32_t)]; u_int32_t length1; char length1_r_[PADR_(u_int32_t)];
- char length2_l_[PADL_(u_int32_t)]; u_int32_t length2; char length2_r_[PADR_(u_int32_t)];
+ char length1_l_[PADL_(uint32_t)]; uint32_t length1; char length1_r_[PADR_(uint32_t)];
+ char length2_l_[PADL_(uint32_t)]; uint32_t length2; char length2_r_[PADR_(uint32_t)];
};
struct freebsd6_freebsd32_ftruncate_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
- char length1_l_[PADL_(u_int32_t)]; u_int32_t length1; char length1_r_[PADR_(u_int32_t)];
- char length2_l_[PADL_(u_int32_t)]; u_int32_t length2; char length2_r_[PADR_(u_int32_t)];
+ char length1_l_[PADL_(uint32_t)]; uint32_t length1; char length1_r_[PADR_(uint32_t)];
+ char length2_l_[PADL_(uint32_t)]; uint32_t length2; char length2_r_[PADR_(uint32_t)];
};
#ifdef PAD64_REQUIRED
#else
@@ -954,6 +1066,9 @@
#ifdef PAD64_REQUIRED
#else
#endif
+#ifdef PAD64_REQUIRED
+#else
+#endif
int freebsd6_freebsd32_pread(struct thread *, struct freebsd6_freebsd32_pread_args *);
int freebsd6_freebsd32_pwrite(struct thread *, struct freebsd6_freebsd32_pwrite_args *);
int freebsd6_freebsd32_mmap(struct thread *, struct freebsd6_freebsd32_mmap_args *);
@@ -966,7 +1081,7 @@
#ifdef COMPAT_FREEBSD7
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
struct freebsd7_freebsd32_semctl_args {
@@ -994,6 +1109,9 @@
#ifdef PAD64_REQUIRED
#else
#endif
+#ifdef PAD64_REQUIRED
+#else
+#endif
int freebsd7_freebsd32_semctl(struct thread *, struct freebsd7_freebsd32_semctl_args *);
int freebsd7_freebsd32_msgctl(struct thread *, struct freebsd7_freebsd32_msgctl_args *);
int freebsd7_freebsd32_shmctl(struct thread *, struct freebsd7_freebsd32_shmctl_args *);
@@ -1019,6 +1137,7 @@
#define FREEBSD32_SYS_AUE_freebsd32_mprotect AUE_MPROTECT
#define FREEBSD32_SYS_AUE_freebsd32_setitimer AUE_SETITIMER
#define FREEBSD32_SYS_AUE_freebsd32_getitimer AUE_GETITIMER
+#define FREEBSD32_SYS_AUE_freebsd32_fcntl AUE_FCNTL
#define FREEBSD32_SYS_AUE_freebsd32_select AUE_SELECT
#define FREEBSD32_SYS_AUE_ofreebsd32_sigreturn AUE_NULL
#define FREEBSD32_SYS_AUE_ofreebsd32_sigvec AUE_O_SIGVEC
@@ -1060,7 +1179,11 @@
#define FREEBSD32_SYS_AUE_freebsd32_clock_gettime AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_clock_settime AUE_CLOCK_SETTIME
#define FREEBSD32_SYS_AUE_freebsd32_clock_getres AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd32_ktimer_create AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd32_ktimer_settime AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd32_ktimer_gettime AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_nanosleep AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd32_clock_getcpuclockid2 AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_aio_read AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_aio_write AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_lio_listio AUE_NULL
@@ -1100,10 +1223,12 @@
#define FREEBSD32_SYS_AUE_freebsd32_thr_suspend AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_umtx_op AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_thr_new AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd32_sigqueue AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_kmq_open AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_kmq_setattr AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_kmq_timedreceive AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_kmq_timedsend AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd32_kmq_notify AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_aio_fsync AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_pread AUE_PREAD
#define FREEBSD32_SYS_AUE_freebsd32_pwrite AUE_PWRITE
@@ -1130,6 +1255,7 @@
#define FREEBSD32_SYS_AUE_freebsd32_semctl AUE_SEMCTL
#define FREEBSD32_SYS_AUE_freebsd32_msgctl AUE_MSGCTL
#define FREEBSD32_SYS_AUE_freebsd32_shmctl AUE_SHMCTL
+#define FREEBSD32_SYS_AUE_freebsd32_cap_enter AUE_CAP_ENTER
#define FREEBSD32_SYS_AUE_freebsd32_pselect AUE_SELECT
#define FREEBSD32_SYS_AUE_freebsd32_posix_fallocate AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_posix_fadvise AUE_NULL
@@ -1137,6 +1263,14 @@
#define FREEBSD32_SYS_AUE_freebsd32_posix_fallocate AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_posix_fadvise AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_wait6 AUE_WAIT6
+#define FREEBSD32_SYS_AUE_freebsd32_cap_ioctls_limit AUE_CAP_IOCTLS_LIMIT
+#define FREEBSD32_SYS_AUE_freebsd32_cap_ioctls_get AUE_CAP_IOCTLS_GET
+#define FREEBSD32_SYS_AUE_freebsd32_aio_mlock AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd32_procctl AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd32_procctl AUE_NULL
+#define FREEBSD32_SYS_AUE_freebsd32_ppoll AUE_POLL
+#define FREEBSD32_SYS_AUE_freebsd32_futimens AUE_FUTIMES
+#define FREEBSD32_SYS_AUE_freebsd32_utimensat AUE_FUTIMESAT
#undef PAD_
#undef PADL_
Modified: trunk/sys/compat/freebsd32/freebsd32_signal.h
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_signal.h 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_signal.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,4 +1,4 @@
-/* $MidnightBSD: src/sys/compat/freebsd32/freebsd32_signal.h,v 1.2 2008/12/03 00:24:35 laffer1 Exp $ */
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2006 David Xu <davidxu at freebsd.org>
* All rights reserved.
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_signal.h,v 1.1 2006/10/05 01:58:08 davidxu Exp $
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_signal.h 253527 2013-07-21 19:33:48Z kib $
*/
#ifndef _COMPAT_FREEBSD32_SIGNAL_H_
@@ -98,6 +98,8 @@
} _sigev_un;
};
+struct sigevent;
+int convert_sigevent32(struct sigevent32 *sig32, struct sigevent *sig);
void siginfo_to_siginfo32(const siginfo_t *src, struct siginfo32 *dst);
#endif /* !_COMPAT_FREEBSD32_SIGNAL_H_ */
Modified: trunk/sys/compat/freebsd32/freebsd32_syscall.h
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_syscall.h 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_syscall.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,9 +1,9 @@
+/* $MidnightBSD$ */
/*
* System call numbers.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD$
- * created from; MidnightBSD: src/sys/compat/freebsd32/syscalls.master,v 1.6 2012/01/04 02:14:06 laffer1 Exp
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_syscall.h 318323 2017-05-15 22:50:54Z brooks $
*/
#define FREEBSD32_SYS_syscall 0
@@ -97,7 +97,7 @@
/* 88 is obsolete osethostname */
#define FREEBSD32_SYS_getdtablesize 89
#define FREEBSD32_SYS_dup2 90
-#define FREEBSD32_SYS_fcntl 92
+#define FREEBSD32_SYS_freebsd32_fcntl 92
#define FREEBSD32_SYS_freebsd32_select 93
#define FREEBSD32_SYS_fsync 95
#define FREEBSD32_SYS_setpriority 96
@@ -206,7 +206,16 @@
#define FREEBSD32_SYS_freebsd32_clock_gettime 232
#define FREEBSD32_SYS_freebsd32_clock_settime 233
#define FREEBSD32_SYS_freebsd32_clock_getres 234
+#define FREEBSD32_SYS_freebsd32_ktimer_create 235
+#define FREEBSD32_SYS_ktimer_delete 236
+#define FREEBSD32_SYS_freebsd32_ktimer_settime 237
+#define FREEBSD32_SYS_freebsd32_ktimer_gettime 238
+#define FREEBSD32_SYS_ktimer_getoverrun 239
#define FREEBSD32_SYS_freebsd32_nanosleep 240
+#define FREEBSD32_SYS_ffclock_getcounter 241
+#define FREEBSD32_SYS_ffclock_setestimate 242
+#define FREEBSD32_SYS_ffclock_getestimate 243
+#define FREEBSD32_SYS_freebsd32_clock_getcpuclockid2 247
#define FREEBSD32_SYS_minherit 250
#define FREEBSD32_SYS_rfork 251
#define FREEBSD32_SYS_openbsd_poll 252
@@ -351,12 +360,12 @@
#define FREEBSD32_SYS_auditctl 453
#define FREEBSD32_SYS_freebsd32_umtx_op 454
#define FREEBSD32_SYS_freebsd32_thr_new 455
-#define FREEBSD32_SYS_sigqueue 456
+#define FREEBSD32_SYS_freebsd32_sigqueue 456
#define FREEBSD32_SYS_freebsd32_kmq_open 457
#define FREEBSD32_SYS_freebsd32_kmq_setattr 458
#define FREEBSD32_SYS_freebsd32_kmq_timedreceive 459
#define FREEBSD32_SYS_freebsd32_kmq_timedsend 460
-#define FREEBSD32_SYS_kmq_notify 461
+#define FREEBSD32_SYS_freebsd32_kmq_notify 461
#define FREEBSD32_SYS_kmq_unlink 462
#define FREEBSD32_SYS_abort2 463
#define FREEBSD32_SYS_thr_set_name 464
@@ -411,10 +420,13 @@
#define FREEBSD32_SYS_freebsd32_msgctl 511
#define FREEBSD32_SYS_freebsd32_shmctl 512
#define FREEBSD32_SYS_lpathconf 513
-#define FREEBSD32_SYS_cap_new 514
-#define FREEBSD32_SYS_cap_getrights 515
-#define FREEBSD32_SYS_cap_enter 516
+ /* 514 is obsolete cap_new */
+#define FREEBSD32_SYS___cap_rights_get 515
+#define FREEBSD32_SYS_freebsd32_cap_enter 516
#define FREEBSD32_SYS_cap_getmode 517
+#define FREEBSD32_SYS_pdfork 518
+#define FREEBSD32_SYS_pdkill 519
+#define FREEBSD32_SYS_pdgetpid 520
#define FREEBSD32_SYS_freebsd32_pselect 522
#define FREEBSD32_SYS_getloginclass 523
#define FREEBSD32_SYS_setloginclass 524
@@ -429,4 +441,20 @@
#define FREEBSD32_SYS_freebsd32_posix_fallocate 530
#define FREEBSD32_SYS_freebsd32_posix_fadvise 531
#define FREEBSD32_SYS_freebsd32_wait6 532
-#define FREEBSD32_SYS_MAXSYSCALL 533
+#define FREEBSD32_SYS_cap_rights_limit 533
+#define FREEBSD32_SYS_freebsd32_cap_ioctls_limit 534
+#define FREEBSD32_SYS_freebsd32_cap_ioctls_get 535
+#define FREEBSD32_SYS_cap_fcntls_limit 536
+#define FREEBSD32_SYS_cap_fcntls_get 537
+#define FREEBSD32_SYS_bindat 538
+#define FREEBSD32_SYS_connectat 539
+#define FREEBSD32_SYS_chflagsat 540
+#define FREEBSD32_SYS_accept4 541
+#define FREEBSD32_SYS_pipe2 542
+#define FREEBSD32_SYS_freebsd32_aio_mlock 543
+#define FREEBSD32_SYS_freebsd32_procctl 544
+#define FREEBSD32_SYS_freebsd32_procctl 544
+#define FREEBSD32_SYS_freebsd32_ppoll 545
+#define FREEBSD32_SYS_freebsd32_futimens 546
+#define FREEBSD32_SYS_freebsd32_utimensat 547
+#define FREEBSD32_SYS_MAXSYSCALL 548
Modified: trunk/sys/compat/freebsd32/freebsd32_syscalls.c
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_syscalls.c 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_syscalls.c 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,13 +1,13 @@
+/* $MidnightBSD$ */
/*
* System call names.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD$
- * created from; MidnightBSD: src/sys/compat/freebsd32/syscalls.master,v 1.6 2012/01/04 02:14:06 laffer1 Exp
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_syscalls.c 318323 2017-05-15 22:50:54Z brooks $
*/
const char *freebsd32_syscallnames[] = {
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
"syscall", /* 0 = syscall */
@@ -102,7 +102,7 @@
"getdtablesize", /* 89 = getdtablesize */
"dup2", /* 90 = dup2 */
"#91", /* 91 = getdopt */
- "fcntl", /* 92 = fcntl */
+ "freebsd32_fcntl", /* 92 = freebsd32_fcntl */
"freebsd32_select", /* 93 = freebsd32_select */
"#94", /* 94 = setdopt */
"fsync", /* 95 = fsync */
@@ -245,19 +245,19 @@
"freebsd32_clock_gettime", /* 232 = freebsd32_clock_gettime */
"freebsd32_clock_settime", /* 233 = freebsd32_clock_settime */
"freebsd32_clock_getres", /* 234 = freebsd32_clock_getres */
- "#235", /* 235 = timer_create */
- "#236", /* 236 = timer_delete */
- "#237", /* 237 = timer_settime */
- "#238", /* 238 = timer_gettime */
- "#239", /* 239 = timer_getoverrun */
+ "freebsd32_ktimer_create", /* 235 = freebsd32_ktimer_create */
+ "ktimer_delete", /* 236 = ktimer_delete */
+ "freebsd32_ktimer_settime", /* 237 = freebsd32_ktimer_settime */
+ "freebsd32_ktimer_gettime", /* 238 = freebsd32_ktimer_gettime */
+ "ktimer_getoverrun", /* 239 = ktimer_getoverrun */
"freebsd32_nanosleep", /* 240 = freebsd32_nanosleep */
- "#241", /* 241 = nosys */
- "#242", /* 242 = nosys */
- "#243", /* 243 = nosys */
+ "ffclock_getcounter", /* 241 = ffclock_getcounter */
+ "ffclock_setestimate", /* 242 = ffclock_setestimate */
+ "ffclock_getestimate", /* 243 = ffclock_getestimate */
"#244", /* 244 = nosys */
"#245", /* 245 = nosys */
"#246", /* 246 = nosys */
- "#247", /* 247 = nosys */
+ "freebsd32_clock_getcpuclockid2", /* 247 = freebsd32_clock_getcpuclockid2 */
"#248", /* 248 = ntp_gettime */
"#249", /* 249 = nosys */
"minherit", /* 250 = minherit */
@@ -466,12 +466,12 @@
"auditctl", /* 453 = auditctl */
"freebsd32_umtx_op", /* 454 = freebsd32_umtx_op */
"freebsd32_thr_new", /* 455 = freebsd32_thr_new */
- "sigqueue", /* 456 = sigqueue */
+ "freebsd32_sigqueue", /* 456 = freebsd32_sigqueue */
"freebsd32_kmq_open", /* 457 = freebsd32_kmq_open */
"freebsd32_kmq_setattr", /* 458 = freebsd32_kmq_setattr */
"freebsd32_kmq_timedreceive", /* 459 = freebsd32_kmq_timedreceive */
"freebsd32_kmq_timedsend", /* 460 = freebsd32_kmq_timedsend */
- "kmq_notify", /* 461 = kmq_notify */
+ "freebsd32_kmq_notify", /* 461 = freebsd32_kmq_notify */
"kmq_unlink", /* 462 = kmq_unlink */
"abort2", /* 463 = abort2 */
"thr_set_name", /* 464 = thr_set_name */
@@ -537,14 +537,14 @@
"freebsd32_msgctl", /* 511 = freebsd32_msgctl */
"freebsd32_shmctl", /* 512 = freebsd32_shmctl */
"lpathconf", /* 513 = lpathconf */
- "cap_new", /* 514 = cap_new */
- "cap_getrights", /* 515 = cap_getrights */
- "cap_enter", /* 516 = cap_enter */
+ "obs_cap_new", /* 514 = obsolete cap_new */
+ "__cap_rights_get", /* 515 = __cap_rights_get */
+ "freebsd32_cap_enter", /* 516 = freebsd32_cap_enter */
"cap_getmode", /* 517 = cap_getmode */
- "#518", /* 518 = pdfork */
- "#519", /* 519 = pdkill */
- "#520", /* 520 = pdgetpid */
- "#521", /* 521 = pdwait */
+ "pdfork", /* 518 = pdfork */
+ "pdkill", /* 519 = pdkill */
+ "pdgetpid", /* 520 = pdgetpid */
+ "#521", /* 521 = pdwait4 */
"freebsd32_pselect", /* 522 = freebsd32_pselect */
"getloginclass", /* 523 = getloginclass */
"setloginclass", /* 524 = setloginclass */
@@ -562,4 +562,23 @@
"freebsd32_posix_fadvise", /* 531 = freebsd32_posix_fadvise */
"freebsd32_wait6", /* 532 = freebsd32_wait6 */
#endif
+ "cap_rights_limit", /* 533 = cap_rights_limit */
+ "freebsd32_cap_ioctls_limit", /* 534 = freebsd32_cap_ioctls_limit */
+ "freebsd32_cap_ioctls_get", /* 535 = freebsd32_cap_ioctls_get */
+ "cap_fcntls_limit", /* 536 = cap_fcntls_limit */
+ "cap_fcntls_get", /* 537 = cap_fcntls_get */
+ "bindat", /* 538 = bindat */
+ "connectat", /* 539 = connectat */
+ "chflagsat", /* 540 = chflagsat */
+ "accept4", /* 541 = accept4 */
+ "pipe2", /* 542 = pipe2 */
+ "freebsd32_aio_mlock", /* 543 = freebsd32_aio_mlock */
+#ifdef PAD64_REQUIRED
+ "freebsd32_procctl", /* 544 = freebsd32_procctl */
+#else
+ "freebsd32_procctl", /* 544 = freebsd32_procctl */
+#endif
+ "freebsd32_ppoll", /* 545 = freebsd32_ppoll */
+ "freebsd32_futimens", /* 546 = freebsd32_futimens */
+ "freebsd32_utimensat", /* 547 = freebsd32_utimensat */
};
Modified: trunk/sys/compat/freebsd32/freebsd32_sysent.c
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_sysent.c 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_sysent.c 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,9 +1,9 @@
+/* $MidnightBSD$ */
/*
* System call switch table.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD$
- * created from; MidnightBSD: src/sys/compat/freebsd32/syscalls.master,v 1.6 2012/01/04 02:14:06 laffer1 Exp
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_sysent.c 321018 2017-07-15 17:00:43Z dchagin $
*/
#include "opt_compat.h"
@@ -44,7 +44,7 @@
/* The casts are bogus but will do for now. */
struct sysent freebsd32_sysent[] = {
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 0 = syscall */
@@ -139,7 +139,7 @@
{ 0, (sy_call_t *)sys_getdtablesize, AUE_GETDTABLESIZE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 89 = getdtablesize */
{ AS(dup2_args), (sy_call_t *)sys_dup2, AUE_DUP2, NULL, 0, 0, 0, SY_THR_STATIC }, /* 90 = dup2 */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 91 = getdopt */
- { AS(fcntl_args), (sy_call_t *)sys_fcntl, AUE_FCNTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 92 = fcntl */
+ { AS(freebsd32_fcntl_args), (sy_call_t *)freebsd32_fcntl, AUE_FCNTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 92 = freebsd32_fcntl */
{ AS(freebsd32_select_args), (sy_call_t *)freebsd32_select, AUE_SELECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 93 = freebsd32_select */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 94 = setdopt */
{ AS(fsync_args), (sy_call_t *)sys_fsync, AUE_FSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 95 = fsync */
@@ -282,19 +282,19 @@
{ AS(freebsd32_clock_gettime_args), (sy_call_t *)freebsd32_clock_gettime, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 232 = freebsd32_clock_gettime */
{ AS(freebsd32_clock_settime_args), (sy_call_t *)freebsd32_clock_settime, AUE_CLOCK_SETTIME, NULL, 0, 0, 0, SY_THR_STATIC }, /* 233 = freebsd32_clock_settime */
{ AS(freebsd32_clock_getres_args), (sy_call_t *)freebsd32_clock_getres, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 234 = freebsd32_clock_getres */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 235 = timer_create */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 236 = timer_delete */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 237 = timer_settime */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 238 = timer_gettime */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 239 = timer_getoverrun */
+ { AS(freebsd32_ktimer_create_args), (sy_call_t *)freebsd32_ktimer_create, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 235 = freebsd32_ktimer_create */
+ { AS(ktimer_delete_args), (sy_call_t *)sys_ktimer_delete, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 236 = ktimer_delete */
+ { AS(freebsd32_ktimer_settime_args), (sy_call_t *)freebsd32_ktimer_settime, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 237 = freebsd32_ktimer_settime */
+ { AS(freebsd32_ktimer_gettime_args), (sy_call_t *)freebsd32_ktimer_gettime, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 238 = freebsd32_ktimer_gettime */
+ { AS(ktimer_getoverrun_args), (sy_call_t *)sys_ktimer_getoverrun, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 239 = ktimer_getoverrun */
{ AS(freebsd32_nanosleep_args), (sy_call_t *)freebsd32_nanosleep, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 240 = freebsd32_nanosleep */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 241 = nosys */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 242 = nosys */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 243 = nosys */
+ { AS(ffclock_getcounter_args), (sy_call_t *)sys_ffclock_getcounter, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 241 = ffclock_getcounter */
+ { AS(ffclock_setestimate_args), (sy_call_t *)sys_ffclock_setestimate, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 242 = ffclock_setestimate */
+ { AS(ffclock_getestimate_args), (sy_call_t *)sys_ffclock_getestimate, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 243 = ffclock_getestimate */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 244 = nosys */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 245 = nosys */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 246 = nosys */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 247 = nosys */
+ { AS(freebsd32_clock_getcpuclockid2_args), (sy_call_t *)freebsd32_clock_getcpuclockid2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 247 = freebsd32_clock_getcpuclockid2 */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 248 = ntp_gettime */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 249 = nosys */
{ AS(minherit_args), (sy_call_t *)sys_minherit, AUE_MINHERIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 250 = minherit */
@@ -503,12 +503,12 @@
{ AS(auditctl_args), (sy_call_t *)sys_auditctl, AUE_AUDITCTL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 453 = auditctl */
{ AS(freebsd32_umtx_op_args), (sy_call_t *)freebsd32_umtx_op, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 454 = freebsd32_umtx_op */
{ AS(freebsd32_thr_new_args), (sy_call_t *)freebsd32_thr_new, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 455 = freebsd32_thr_new */
- { AS(sigqueue_args), (sy_call_t *)sys_sigqueue, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 456 = sigqueue */
+ { AS(freebsd32_sigqueue_args), (sy_call_t *)freebsd32_sigqueue, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 456 = freebsd32_sigqueue */
{ AS(freebsd32_kmq_open_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 457 = freebsd32_kmq_open */
{ AS(freebsd32_kmq_setattr_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 458 = freebsd32_kmq_setattr */
{ AS(freebsd32_kmq_timedreceive_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 459 = freebsd32_kmq_timedreceive */
{ AS(freebsd32_kmq_timedsend_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 460 = freebsd32_kmq_timedsend */
- { AS(kmq_notify_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 461 = kmq_notify */
+ { AS(freebsd32_kmq_notify_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 461 = freebsd32_kmq_notify */
{ AS(kmq_unlink_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 462 = kmq_unlink */
{ AS(abort2_args), (sy_call_t *)sys_abort2, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 463 = abort2 */
{ AS(thr_set_name_args), (sy_call_t *)sys_thr_set_name, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 464 = thr_set_name */
@@ -518,10 +518,10 @@
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 468 = nosys */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 469 = __getpath_fromfd */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 470 = __getpath_fromaddr */
- { AS(sctp_peeloff_args), (sy_call_t *)sys_sctp_peeloff, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 471 = sctp_peeloff */
- { AS(sctp_generic_sendmsg_args), (sy_call_t *)sys_sctp_generic_sendmsg, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 472 = sctp_generic_sendmsg */
- { AS(sctp_generic_sendmsg_iov_args), (sy_call_t *)sys_sctp_generic_sendmsg_iov, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 473 = sctp_generic_sendmsg_iov */
- { AS(sctp_generic_recvmsg_args), (sy_call_t *)sys_sctp_generic_recvmsg, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 474 = sctp_generic_recvmsg */
+ { AS(sctp_peeloff_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 471 = sctp_peeloff */
+ { AS(sctp_generic_sendmsg_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 472 = sctp_generic_sendmsg */
+ { AS(sctp_generic_sendmsg_iov_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 473 = sctp_generic_sendmsg_iov */
+ { AS(sctp_generic_recvmsg_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 474 = sctp_generic_recvmsg */
#ifdef PAD64_REQUIRED
{ AS(freebsd32_pread_args), (sy_call_t *)freebsd32_pread, AUE_PREAD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 475 = freebsd32_pread */
{ AS(freebsd32_pwrite_args), (sy_call_t *)freebsd32_pwrite, AUE_PWRITE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 476 = freebsd32_pwrite */
@@ -574,14 +574,14 @@
{ AS(freebsd32_msgctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 511 = freebsd32_msgctl */
{ AS(freebsd32_shmctl_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 512 = freebsd32_shmctl */
{ AS(lpathconf_args), (sy_call_t *)sys_lpathconf, AUE_LPATHCONF, NULL, 0, 0, 0, SY_THR_STATIC }, /* 513 = lpathconf */
- { AS(cap_new_args), (sy_call_t *)sys_cap_new, AUE_CAP_NEW, NULL, 0, 0, 0, SY_THR_STATIC }, /* 514 = cap_new */
- { AS(cap_getrights_args), (sy_call_t *)sys_cap_getrights, AUE_CAP_GETRIGHTS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 515 = cap_getrights */
- { 0, (sy_call_t *)sys_cap_enter, AUE_CAP_ENTER, NULL, 0, 0, 0, SY_THR_STATIC }, /* 516 = cap_enter */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 514 = obsolete cap_new */
+ { AS(__cap_rights_get_args), (sy_call_t *)sys___cap_rights_get, AUE_CAP_RIGHTS_GET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 515 = __cap_rights_get */
+ { 0, (sy_call_t *)freebsd32_cap_enter, AUE_CAP_ENTER, NULL, 0, 0, 0, SY_THR_STATIC }, /* 516 = freebsd32_cap_enter */
{ AS(cap_getmode_args), (sy_call_t *)sys_cap_getmode, AUE_CAP_GETMODE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 517 = cap_getmode */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 518 = pdfork */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 519 = pdkill */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 520 = pdgetpid */
- { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 521 = pdwait */
+ { AS(pdfork_args), (sy_call_t *)sys_pdfork, AUE_PDFORK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 518 = pdfork */
+ { AS(pdkill_args), (sy_call_t *)sys_pdkill, AUE_PDKILL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 519 = pdkill */
+ { AS(pdgetpid_args), (sy_call_t *)sys_pdgetpid, AUE_PDGETPID, NULL, 0, 0, 0, SY_THR_STATIC }, /* 520 = pdgetpid */
+ { 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 521 = pdwait4 */
{ AS(freebsd32_pselect_args), (sy_call_t *)freebsd32_pselect, AUE_SELECT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 522 = freebsd32_pselect */
{ AS(getloginclass_args), (sy_call_t *)sys_getloginclass, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 523 = getloginclass */
{ AS(setloginclass_args), (sy_call_t *)sys_setloginclass, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 524 = setloginclass */
@@ -599,4 +599,23 @@
{ AS(freebsd32_posix_fadvise_args), (sy_call_t *)freebsd32_posix_fadvise, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 531 = freebsd32_posix_fadvise */
{ AS(freebsd32_wait6_args), (sy_call_t *)freebsd32_wait6, AUE_WAIT6, NULL, 0, 0, 0, SY_THR_STATIC }, /* 532 = freebsd32_wait6 */
#endif
+ { AS(cap_rights_limit_args), (sy_call_t *)sys_cap_rights_limit, AUE_CAP_RIGHTS_LIMIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 533 = cap_rights_limit */
+ { AS(freebsd32_cap_ioctls_limit_args), (sy_call_t *)freebsd32_cap_ioctls_limit, AUE_CAP_IOCTLS_LIMIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 534 = freebsd32_cap_ioctls_limit */
+ { AS(freebsd32_cap_ioctls_get_args), (sy_call_t *)freebsd32_cap_ioctls_get, AUE_CAP_IOCTLS_GET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 535 = freebsd32_cap_ioctls_get */
+ { AS(cap_fcntls_limit_args), (sy_call_t *)sys_cap_fcntls_limit, AUE_CAP_FCNTLS_LIMIT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 536 = cap_fcntls_limit */
+ { AS(cap_fcntls_get_args), (sy_call_t *)sys_cap_fcntls_get, AUE_CAP_FCNTLS_GET, NULL, 0, 0, 0, SY_THR_STATIC }, /* 537 = cap_fcntls_get */
+ { AS(bindat_args), (sy_call_t *)sys_bindat, AUE_BINDAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 538 = bindat */
+ { AS(connectat_args), (sy_call_t *)sys_connectat, AUE_CONNECTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 539 = connectat */
+ { AS(chflagsat_args), (sy_call_t *)sys_chflagsat, AUE_CHFLAGSAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 540 = chflagsat */
+ { AS(accept4_args), (sy_call_t *)sys_accept4, AUE_ACCEPT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 541 = accept4 */
+ { AS(pipe2_args), (sy_call_t *)sys_pipe2, AUE_PIPE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 542 = pipe2 */
+ { AS(freebsd32_aio_mlock_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 543 = freebsd32_aio_mlock */
+#ifdef PAD64_REQUIRED
+ { AS(freebsd32_procctl_args), (sy_call_t *)freebsd32_procctl, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 544 = freebsd32_procctl */
+#else
+ { AS(freebsd32_procctl_args), (sy_call_t *)freebsd32_procctl, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 544 = freebsd32_procctl */
+#endif
+ { AS(freebsd32_ppoll_args), (sy_call_t *)freebsd32_ppoll, AUE_POLL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 545 = freebsd32_ppoll */
+ { AS(freebsd32_futimens_args), (sy_call_t *)freebsd32_futimens, AUE_FUTIMES, NULL, 0, 0, 0, SY_THR_STATIC }, /* 546 = freebsd32_futimens */
+ { AS(freebsd32_utimensat_args), (sy_call_t *)freebsd32_utimensat, AUE_FUTIMESAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 547 = freebsd32_utimensat */
};
Modified: trunk/sys/compat/freebsd32/freebsd32_systrace_args.c
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_systrace_args.c 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_systrace_args.c 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,8 +1,9 @@
+/* $MidnightBSD$ */
/*
* System call argument to DTrace register array converstion.
*
* DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD$
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_systrace_args.c 318323 2017-05-15 22:50:54Z brooks $
* This file is part of the DTrace syscall provider.
*/
@@ -11,7 +12,7 @@
{
int64_t *iarg = (int64_t *) uarg;
switch (sysnum) {
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
/* nosys */
@@ -209,11 +210,11 @@
case 29: {
struct freebsd32_recvfrom_args *p = params;
iarg[0] = p->s; /* int */
- uarg[1] = p->buf; /* u_int32_t */
- uarg[2] = p->len; /* u_int32_t */
+ uarg[1] = p->buf; /* uint32_t */
+ uarg[2] = p->len; /* uint32_t */
iarg[3] = p->flags; /* int */
- uarg[4] = p->from; /* u_int32_t */
- uarg[5] = p->fromlenaddr; /* u_int32_t */
+ uarg[4] = p->from; /* uint32_t */
+ uarg[5] = p->fromlenaddr; /* uint32_t */
*n_args = 6;
break;
}
@@ -255,8 +256,8 @@
/* chflags */
case 34: {
struct chflags_args *p = params;
- uarg[0] = (intptr_t) p->path; /* char * */
- iarg[1] = p->flags; /* int */
+ uarg[0] = (intptr_t) p->path; /* const char * */
+ uarg[1] = p->flags; /* u_long */
*n_args = 2;
break;
}
@@ -264,7 +265,7 @@
case 35: {
struct fchflags_args *p = params;
iarg[0] = p->fd; /* int */
- iarg[1] = p->flags; /* int */
+ uarg[1] = p->flags; /* u_long */
*n_args = 2;
break;
}
@@ -402,8 +403,8 @@
case 59: {
struct freebsd32_execve_args *p = params;
uarg[0] = (intptr_t) p->fname; /* char * */
- uarg[1] = (intptr_t) p->argv; /* u_int32_t * */
- uarg[2] = (intptr_t) p->envv; /* u_int32_t * */
+ uarg[1] = (intptr_t) p->argv; /* uint32_t * */
+ uarg[2] = (intptr_t) p->envv; /* uint32_t * */
*n_args = 3;
break;
}
@@ -557,12 +558,12 @@
*n_args = 2;
break;
}
- /* fcntl */
+ /* freebsd32_fcntl */
case 92: {
- struct fcntl_args *p = params;
+ struct freebsd32_fcntl_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->cmd; /* int */
- iarg[2] = p->arg; /* long */
+ iarg[2] = p->arg; /* int */
*n_args = 3;
break;
}
@@ -996,9 +997,9 @@
uarg[0] = (intptr_t) p->name; /* int * */
uarg[1] = p->namelen; /* u_int */
uarg[2] = (intptr_t) p->old; /* void * */
- uarg[3] = (intptr_t) p->oldlenp; /* u_int32_t * */
+ uarg[3] = (intptr_t) p->oldlenp; /* uint32_t * */
uarg[4] = (intptr_t) p->new; /* void * */
- uarg[5] = p->newlen; /* u_int32_t */
+ uarg[5] = p->newlen; /* uint32_t */
*n_args = 6;
break;
}
@@ -1195,6 +1196,47 @@
*n_args = 2;
break;
}
+ /* freebsd32_ktimer_create */
+ case 235: {
+ struct freebsd32_ktimer_create_args *p = params;
+ iarg[0] = p->clock_id; /* clockid_t */
+ uarg[1] = (intptr_t) p->evp; /* struct sigevent32 * */
+ uarg[2] = (intptr_t) p->timerid; /* int * */
+ *n_args = 3;
+ break;
+ }
+ /* ktimer_delete */
+ case 236: {
+ struct ktimer_delete_args *p = params;
+ iarg[0] = p->timerid; /* int */
+ *n_args = 1;
+ break;
+ }
+ /* freebsd32_ktimer_settime */
+ case 237: {
+ struct freebsd32_ktimer_settime_args *p = params;
+ iarg[0] = p->timerid; /* int */
+ iarg[1] = p->flags; /* int */
+ uarg[2] = (intptr_t) p->value; /* const struct itimerspec32 * */
+ uarg[3] = (intptr_t) p->ovalue; /* struct itimerspec32 * */
+ *n_args = 4;
+ break;
+ }
+ /* freebsd32_ktimer_gettime */
+ case 238: {
+ struct freebsd32_ktimer_gettime_args *p = params;
+ iarg[0] = p->timerid; /* int */
+ uarg[1] = (intptr_t) p->value; /* struct itimerspec32 * */
+ *n_args = 2;
+ break;
+ }
+ /* ktimer_getoverrun */
+ case 239: {
+ struct ktimer_getoverrun_args *p = params;
+ iarg[0] = p->timerid; /* int */
+ *n_args = 1;
+ break;
+ }
/* freebsd32_nanosleep */
case 240: {
struct freebsd32_nanosleep_args *p = params;
@@ -1203,6 +1245,37 @@
*n_args = 2;
break;
}
+ /* ffclock_getcounter */
+ case 241: {
+ struct ffclock_getcounter_args *p = params;
+ uarg[0] = (intptr_t) p->ffcount; /* ffcounter * */
+ *n_args = 1;
+ break;
+ }
+ /* ffclock_setestimate */
+ case 242: {
+ struct ffclock_setestimate_args *p = params;
+ uarg[0] = (intptr_t) p->cest; /* struct ffclock_estimate * */
+ *n_args = 1;
+ break;
+ }
+ /* ffclock_getestimate */
+ case 243: {
+ struct ffclock_getestimate_args *p = params;
+ uarg[0] = (intptr_t) p->cest; /* struct ffclock_estimate * */
+ *n_args = 1;
+ break;
+ }
+ /* freebsd32_clock_getcpuclockid2 */
+ case 247: {
+ struct freebsd32_clock_getcpuclockid2_args *p = params;
+ uarg[0] = p->id1; /* uint32_t */
+ uarg[1] = p->id2; /* uint32_t */
+ iarg[2] = p->which; /* int */
+ uarg[3] = (intptr_t) p->clock_id; /* clockid_t * */
+ *n_args = 4;
+ break;
+ }
/* minherit */
case 250: {
struct minherit_args *p = params;
@@ -1262,7 +1335,7 @@
iarg[0] = p->mode; /* int */
uarg[1] = (intptr_t) p->acb_list; /* struct aiocb32 *const * */
iarg[2] = p->nent; /* int */
- uarg[3] = (intptr_t) p->sig; /* struct sigevent * */
+ uarg[3] = (intptr_t) p->sig; /* struct sigevent32 * */
*n_args = 4;
break;
}
@@ -1339,8 +1412,8 @@
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->iovp; /* struct iovec32 * */
uarg[2] = p->iovcnt; /* u_int */
- uarg[3] = p->offset1; /* u_int32_t */
- uarg[4] = p->offset2; /* u_int32_t */
+ uarg[3] = p->offset1; /* uint32_t */
+ uarg[4] = p->offset2; /* uint32_t */
*n_args = 5;
break;
}
@@ -1350,8 +1423,8 @@
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->iovp; /* struct iovec32 * */
uarg[2] = p->iovcnt; /* u_int */
- uarg[3] = p->offset1; /* u_int32_t */
- uarg[4] = p->offset2; /* u_int32_t */
+ uarg[3] = p->offset1; /* uint32_t */
+ uarg[4] = p->offset2; /* uint32_t */
*n_args = 5;
break;
}
@@ -1543,7 +1616,7 @@
/* __getcwd */
case 326: {
struct __getcwd_args *p = params;
- uarg[0] = (intptr_t) p->buf; /* u_char * */
+ uarg[0] = (intptr_t) p->buf; /* char * */
uarg[1] = p->buflen; /* u_int */
*n_args = 2;
break;
@@ -1895,7 +1968,7 @@
case 391: {
struct lchflags_args *p = params;
uarg[0] = (intptr_t) p->path; /* const char * */
- iarg[1] = p->flags; /* int */
+ uarg[1] = p->flags; /* u_long */
*n_args = 2;
break;
}
@@ -1912,8 +1985,8 @@
struct freebsd32_sendfile_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->s; /* int */
- uarg[2] = p->offset1; /* u_int32_t */
- uarg[3] = p->offset2; /* u_int32_t */
+ uarg[2] = p->offset1; /* uint32_t */
+ uarg[3] = p->offset2; /* uint32_t */
uarg[4] = p->nbytes; /* size_t */
uarg[5] = (intptr_t) p->hdtr; /* struct sf_hdtr32 * */
uarg[6] = (intptr_t) p->sbytes; /* off_t * */
@@ -2325,12 +2398,12 @@
*n_args = 2;
break;
}
- /* sigqueue */
+ /* freebsd32_sigqueue */
case 456: {
- struct sigqueue_args *p = params;
+ struct freebsd32_sigqueue_args *p = params;
iarg[0] = p->pid; /* pid_t */
iarg[1] = p->signum; /* int */
- uarg[2] = (intptr_t) p->value; /* void * */
+ iarg[2] = p->value; /* int */
*n_args = 3;
break;
}
@@ -2375,11 +2448,11 @@
*n_args = 5;
break;
}
- /* kmq_notify */
+ /* freebsd32_kmq_notify */
case 461: {
- struct kmq_notify_args *p = params;
+ struct freebsd32_kmq_notify_args *p = params;
iarg[0] = p->mqd; /* int */
- uarg[1] = (intptr_t) p->sigev; /* const struct sigevent * */
+ uarg[1] = (intptr_t) p->sigev; /* const struct sigevent32 * */
*n_args = 2;
break;
}
@@ -2479,8 +2552,8 @@
uarg[1] = (intptr_t) p->buf; /* void * */
uarg[2] = p->nbyte; /* size_t */
iarg[3] = p->pad; /* int */
- uarg[4] = p->offset1; /* u_int32_t */
- uarg[5] = p->offset2; /* u_int32_t */
+ uarg[4] = p->offset1; /* uint32_t */
+ uarg[5] = p->offset2; /* uint32_t */
*n_args = 6;
break;
}
@@ -2491,8 +2564,8 @@
uarg[1] = (intptr_t) p->buf; /* const void * */
uarg[2] = p->nbyte; /* size_t */
iarg[3] = p->pad; /* int */
- uarg[4] = p->offset1; /* u_int32_t */
- uarg[5] = p->offset2; /* u_int32_t */
+ uarg[4] = p->offset1; /* uint32_t */
+ uarg[5] = p->offset2; /* uint32_t */
*n_args = 6;
break;
}
@@ -2505,8 +2578,8 @@
iarg[3] = p->flags; /* int */
iarg[4] = p->fd; /* int */
iarg[5] = p->pad; /* int */
- uarg[6] = p->pos1; /* u_int32_t */
- uarg[7] = p->pos2; /* u_int32_t */
+ uarg[6] = p->pos1; /* uint32_t */
+ uarg[7] = p->pos2; /* uint32_t */
*n_args = 8;
break;
}
@@ -2515,8 +2588,8 @@
struct freebsd32_lseek_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->pad; /* int */
- uarg[2] = p->offset1; /* u_int32_t */
- uarg[3] = p->offset2; /* u_int32_t */
+ uarg[2] = p->offset1; /* uint32_t */
+ uarg[3] = p->offset2; /* uint32_t */
iarg[4] = p->whence; /* int */
*n_args = 5;
break;
@@ -2526,8 +2599,8 @@
struct freebsd32_truncate_args *p = params;
uarg[0] = (intptr_t) p->path; /* char * */
iarg[1] = p->pad; /* int */
- uarg[2] = p->length1; /* u_int32_t */
- uarg[3] = p->length2; /* u_int32_t */
+ uarg[2] = p->length1; /* uint32_t */
+ uarg[3] = p->length2; /* uint32_t */
*n_args = 4;
break;
}
@@ -2536,8 +2609,8 @@
struct freebsd32_ftruncate_args *p = params;
iarg[0] = p->fd; /* int */
iarg[1] = p->pad; /* int */
- uarg[2] = p->length1; /* u_int32_t */
- uarg[3] = p->length2; /* u_int32_t */
+ uarg[2] = p->length1; /* uint32_t */
+ uarg[3] = p->length2; /* uint32_t */
*n_args = 4;
break;
}
@@ -2548,8 +2621,8 @@
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->buf; /* void * */
uarg[2] = p->nbyte; /* size_t */
- uarg[3] = p->offset1; /* u_int32_t */
- uarg[4] = p->offset2; /* u_int32_t */
+ uarg[3] = p->offset1; /* uint32_t */
+ uarg[4] = p->offset2; /* uint32_t */
*n_args = 5;
break;
}
@@ -2559,8 +2632,8 @@
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->buf; /* const void * */
uarg[2] = p->nbyte; /* size_t */
- uarg[3] = p->offset1; /* u_int32_t */
- uarg[4] = p->offset2; /* u_int32_t */
+ uarg[3] = p->offset1; /* uint32_t */
+ uarg[4] = p->offset2; /* uint32_t */
*n_args = 5;
break;
}
@@ -2572,8 +2645,8 @@
iarg[2] = p->prot; /* int */
iarg[3] = p->flags; /* int */
iarg[4] = p->fd; /* int */
- uarg[5] = p->pos1; /* u_int32_t */
- uarg[6] = p->pos2; /* u_int32_t */
+ uarg[5] = p->pos1; /* uint32_t */
+ uarg[6] = p->pos2; /* uint32_t */
*n_args = 7;
break;
}
@@ -2581,8 +2654,8 @@
case 478: {
struct freebsd32_lseek_args *p = params;
iarg[0] = p->fd; /* int */
- uarg[1] = p->offset1; /* u_int32_t */
- uarg[2] = p->offset2; /* u_int32_t */
+ uarg[1] = p->offset1; /* uint32_t */
+ uarg[2] = p->offset2; /* uint32_t */
iarg[3] = p->whence; /* int */
*n_args = 4;
break;
@@ -2591,8 +2664,8 @@
case 479: {
struct freebsd32_truncate_args *p = params;
uarg[0] = (intptr_t) p->path; /* char * */
- uarg[1] = p->length1; /* u_int32_t */
- uarg[2] = p->length2; /* u_int32_t */
+ uarg[1] = p->length1; /* uint32_t */
+ uarg[2] = p->length2; /* uint32_t */
*n_args = 3;
break;
}
@@ -2600,8 +2673,8 @@
case 480: {
struct freebsd32_ftruncate_args *p = params;
iarg[0] = p->fd; /* int */
- uarg[1] = p->length1; /* u_int32_t */
- uarg[2] = p->length2; /* u_int32_t */
+ uarg[1] = p->length1; /* uint32_t */
+ uarg[2] = p->length2; /* uint32_t */
*n_args = 3;
break;
}
@@ -2644,8 +2717,8 @@
struct freebsd32_cpuset_setid_args *p = params;
iarg[0] = p->which; /* cpuwhich_t */
iarg[1] = p->pad; /* int */
- uarg[2] = p->id1; /* u_int32_t */
- uarg[3] = p->id2; /* u_int32_t */
+ uarg[2] = p->id1; /* uint32_t */
+ uarg[3] = p->id2; /* uint32_t */
iarg[4] = p->setid; /* cpusetid_t */
*n_args = 5;
break;
@@ -2655,8 +2728,8 @@
case 485: {
struct freebsd32_cpuset_setid_args *p = params;
iarg[0] = p->which; /* cpuwhich_t */
- uarg[1] = p->id1; /* u_int32_t */
- uarg[2] = p->id2; /* u_int32_t */
+ uarg[1] = p->id1; /* uint32_t */
+ uarg[2] = p->id2; /* uint32_t */
iarg[3] = p->setid; /* cpusetid_t */
*n_args = 4;
break;
@@ -2667,8 +2740,8 @@
struct freebsd32_cpuset_getid_args *p = params;
iarg[0] = p->level; /* cpulevel_t */
iarg[1] = p->which; /* cpuwhich_t */
- uarg[2] = p->id1; /* u_int32_t */
- uarg[3] = p->id2; /* u_int32_t */
+ uarg[2] = p->id1; /* uint32_t */
+ uarg[3] = p->id2; /* uint32_t */
uarg[4] = (intptr_t) p->setid; /* cpusetid_t * */
*n_args = 5;
break;
@@ -2678,8 +2751,8 @@
struct freebsd32_cpuset_getaffinity_args *p = params;
iarg[0] = p->level; /* cpulevel_t */
iarg[1] = p->which; /* cpuwhich_t */
- uarg[2] = p->id1; /* u_int32_t */
- uarg[3] = p->id2; /* u_int32_t */
+ uarg[2] = p->id1; /* uint32_t */
+ uarg[3] = p->id2; /* uint32_t */
uarg[4] = p->cpusetsize; /* size_t */
uarg[5] = (intptr_t) p->mask; /* cpuset_t * */
*n_args = 6;
@@ -2690,8 +2763,8 @@
struct freebsd32_cpuset_setaffinity_args *p = params;
iarg[0] = p->level; /* cpulevel_t */
iarg[1] = p->which; /* cpuwhich_t */
- uarg[2] = p->id1; /* u_int32_t */
- uarg[3] = p->id2; /* u_int32_t */
+ uarg[2] = p->id1; /* uint32_t */
+ uarg[3] = p->id2; /* uint32_t */
uarg[4] = p->cpusetsize; /* size_t */
uarg[5] = (intptr_t) p->mask; /* const cpuset_t * */
*n_args = 6;
@@ -2732,8 +2805,8 @@
case 492: {
struct freebsd32_fexecve_args *p = params;
iarg[0] = p->fd; /* int */
- uarg[1] = (intptr_t) p->argv; /* u_int32_t * */
- uarg[2] = (intptr_t) p->envv; /* u_int32_t * */
+ uarg[1] = (intptr_t) p->argv; /* uint32_t * */
+ uarg[2] = (intptr_t) p->envv; /* uint32_t * */
*n_args = 3;
break;
}
@@ -2918,23 +2991,16 @@
*n_args = 2;
break;
}
- /* cap_new */
- case 514: {
- struct cap_new_args *p = params;
- iarg[0] = p->fd; /* int */
- uarg[1] = p->rights; /* u_int64_t */
- *n_args = 2;
- break;
- }
- /* cap_getrights */
+ /* __cap_rights_get */
case 515: {
- struct cap_getrights_args *p = params;
- iarg[0] = p->fd; /* int */
- uarg[1] = (intptr_t) p->rightsp; /* u_int64_t * */
- *n_args = 2;
+ struct __cap_rights_get_args *p = params;
+ iarg[0] = p->version; /* int */
+ iarg[1] = p->fd; /* int */
+ uarg[2] = (intptr_t) p->rightsp; /* cap_rights_t * */
+ *n_args = 3;
break;
}
- /* cap_enter */
+ /* freebsd32_cap_enter */
case 516: {
*n_args = 0;
break;
@@ -2946,6 +3012,30 @@
*n_args = 1;
break;
}
+ /* pdfork */
+ case 518: {
+ struct pdfork_args *p = params;
+ uarg[0] = (intptr_t) p->fdp; /* int * */
+ iarg[1] = p->flags; /* int */
+ *n_args = 2;
+ break;
+ }
+ /* pdkill */
+ case 519: {
+ struct pdkill_args *p = params;
+ iarg[0] = p->fd; /* int */
+ iarg[1] = p->signum; /* int */
+ *n_args = 2;
+ break;
+ }
+ /* pdgetpid */
+ case 520: {
+ struct pdgetpid_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->pidp; /* pid_t * */
+ *n_args = 2;
+ break;
+ }
/* freebsd32_pselect */
case 522: {
struct freebsd32_pselect_args *p = params;
@@ -3101,6 +3191,157 @@
break;
}
#endif
+ /* cap_rights_limit */
+ case 533: {
+ struct cap_rights_limit_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->rightsp; /* cap_rights_t * */
+ *n_args = 2;
+ break;
+ }
+ /* freebsd32_cap_ioctls_limit */
+ case 534: {
+ struct freebsd32_cap_ioctls_limit_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->cmds; /* const uint32_t * */
+ uarg[2] = p->ncmds; /* size_t */
+ *n_args = 3;
+ break;
+ }
+ /* freebsd32_cap_ioctls_get */
+ case 535: {
+ struct freebsd32_cap_ioctls_get_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->cmds; /* uint32_t * */
+ uarg[2] = p->maxcmds; /* size_t */
+ *n_args = 3;
+ break;
+ }
+ /* cap_fcntls_limit */
+ case 536: {
+ struct cap_fcntls_limit_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = p->fcntlrights; /* uint32_t */
+ *n_args = 2;
+ break;
+ }
+ /* cap_fcntls_get */
+ case 537: {
+ struct cap_fcntls_get_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->fcntlrightsp; /* uint32_t * */
+ *n_args = 2;
+ break;
+ }
+ /* bindat */
+ case 538: {
+ struct bindat_args *p = params;
+ iarg[0] = p->fd; /* int */
+ iarg[1] = p->s; /* int */
+ uarg[2] = (intptr_t) p->name; /* caddr_t */
+ iarg[3] = p->namelen; /* int */
+ *n_args = 4;
+ break;
+ }
+ /* connectat */
+ case 539: {
+ struct connectat_args *p = params;
+ iarg[0] = p->fd; /* int */
+ iarg[1] = p->s; /* int */
+ uarg[2] = (intptr_t) p->name; /* caddr_t */
+ iarg[3] = p->namelen; /* int */
+ *n_args = 4;
+ break;
+ }
+ /* chflagsat */
+ case 540: {
+ struct chflagsat_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->path; /* const char * */
+ uarg[2] = p->flags; /* u_long */
+ iarg[3] = p->atflag; /* int */
+ *n_args = 4;
+ break;
+ }
+ /* accept4 */
+ case 541: {
+ struct accept4_args *p = params;
+ iarg[0] = p->s; /* int */
+ uarg[1] = (intptr_t) p->name; /* struct sockaddr * */
+ uarg[2] = (intptr_t) p->anamelen; /* __socklen_t * */
+ iarg[3] = p->flags; /* int */
+ *n_args = 4;
+ break;
+ }
+ /* pipe2 */
+ case 542: {
+ struct pipe2_args *p = params;
+ uarg[0] = (intptr_t) p->fildes; /* int * */
+ iarg[1] = p->flags; /* int */
+ *n_args = 2;
+ break;
+ }
+ /* freebsd32_aio_mlock */
+ case 543: {
+ struct freebsd32_aio_mlock_args *p = params;
+ uarg[0] = (intptr_t) p->aiocbp; /* struct aiocb32 * */
+ *n_args = 1;
+ break;
+ }
+#ifdef PAD64_REQUIRED
+ /* freebsd32_procctl */
+ case 544: {
+ struct freebsd32_procctl_args *p = params;
+ iarg[0] = p->idtype; /* int */
+ iarg[1] = p->pad; /* int */
+ uarg[2] = p->id1; /* uint32_t */
+ uarg[3] = p->id2; /* uint32_t */
+ iarg[4] = p->com; /* int */
+ uarg[5] = (intptr_t) p->data; /* void * */
+ *n_args = 6;
+ break;
+ }
+#else
+ /* freebsd32_procctl */
+ case 544: {
+ struct freebsd32_procctl_args *p = params;
+ iarg[0] = p->idtype; /* int */
+ uarg[1] = p->id1; /* uint32_t */
+ uarg[2] = p->id2; /* uint32_t */
+ iarg[3] = p->com; /* int */
+ uarg[4] = (intptr_t) p->data; /* void * */
+ *n_args = 5;
+ break;
+ }
+#endif
+ /* freebsd32_ppoll */
+ case 545: {
+ struct freebsd32_ppoll_args *p = params;
+ uarg[0] = (intptr_t) p->fds; /* struct pollfd * */
+ uarg[1] = p->nfds; /* u_int */
+ uarg[2] = (intptr_t) p->ts; /* const struct timespec32 * */
+ uarg[3] = (intptr_t) p->set; /* const sigset_t * */
+ *n_args = 4;
+ break;
+ }
+ /* freebsd32_futimens */
+ case 546: {
+ struct freebsd32_futimens_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->times; /* struct timespec * */
+ *n_args = 2;
+ break;
+ }
+ /* freebsd32_utimensat */
+ case 547: {
+ struct freebsd32_utimensat_args *p = params;
+ iarg[0] = p->fd; /* int */
+ uarg[1] = (intptr_t) p->path; /* char * */
+ uarg[2] = (intptr_t) p->times; /* struct timespec * */
+ iarg[3] = p->flag; /* int */
+ *n_args = 4;
+ break;
+ }
default:
*n_args = 0;
break;
@@ -3107,11 +3348,11 @@
};
}
static void
-systrace_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
{
const char *p = NULL;
switch (sysnum) {
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
/* nosys */
@@ -3414,19 +3655,19 @@
p = "int";
break;
case 1:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
p = "int";
break;
case 4:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 5:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -3497,10 +3738,10 @@
case 34:
switch(ndx) {
case 0:
- p = "char *";
+ p = "const char *";
break;
case 1:
- p = "int";
+ p = "u_long";
break;
default:
break;
@@ -3513,7 +3754,7 @@
p = "int";
break;
case 1:
- p = "int";
+ p = "u_long";
break;
default:
break;
@@ -3713,10 +3954,10 @@
p = "char *";
break;
case 1:
- p = "u_int32_t *";
+ p = "uint32_t *";
break;
case 2:
- p = "u_int32_t *";
+ p = "uint32_t *";
break;
default:
break;
@@ -3949,7 +4190,7 @@
break;
};
break;
- /* fcntl */
+ /* freebsd32_fcntl */
case 92:
switch(ndx) {
case 0:
@@ -3959,7 +4200,7 @@
p = "int";
break;
case 2:
- p = "long";
+ p = "int";
break;
default:
break;
@@ -4698,13 +4939,13 @@
p = "void *";
break;
case 3:
- p = "u_int32_t *";
+ p = "uint32_t *";
break;
case 4:
p = "void *";
break;
case 5:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -4982,6 +5223,74 @@
break;
};
break;
+ /* freebsd32_ktimer_create */
+ case 235:
+ switch(ndx) {
+ case 0:
+ p = "clockid_t";
+ break;
+ case 1:
+ p = "struct sigevent32 *";
+ break;
+ case 2:
+ p = "int *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* ktimer_delete */
+ case 236:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* freebsd32_ktimer_settime */
+ case 237:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "int";
+ break;
+ case 2:
+ p = "const struct itimerspec32 *";
+ break;
+ case 3:
+ p = "struct itimerspec32 *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* freebsd32_ktimer_gettime */
+ case 238:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "struct itimerspec32 *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* ktimer_getoverrun */
+ case 239:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
/* freebsd32_nanosleep */
case 240:
switch(ndx) {
@@ -4995,6 +5304,55 @@
break;
};
break;
+ /* ffclock_getcounter */
+ case 241:
+ switch(ndx) {
+ case 0:
+ p = "ffcounter *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* ffclock_setestimate */
+ case 242:
+ switch(ndx) {
+ case 0:
+ p = "struct ffclock_estimate *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* ffclock_getestimate */
+ case 243:
+ switch(ndx) {
+ case 0:
+ p = "struct ffclock_estimate *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* freebsd32_clock_getcpuclockid2 */
+ case 247:
+ switch(ndx) {
+ case 0:
+ p = "uint32_t";
+ break;
+ case 1:
+ p = "uint32_t";
+ break;
+ case 2:
+ p = "int";
+ break;
+ case 3:
+ p = "clockid_t *";
+ break;
+ default:
+ break;
+ };
+ break;
/* minherit */
case 250:
switch(ndx) {
@@ -5089,7 +5447,7 @@
p = "int";
break;
case 3:
- p = "struct sigevent *";
+ p = "struct sigevent32 *";
break;
default:
break;
@@ -5221,10 +5579,10 @@
p = "u_int";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 4:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -5243,10 +5601,10 @@
p = "u_int";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 4:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -5534,7 +5892,7 @@
case 326:
switch(ndx) {
case 0:
- p = "u_char *";
+ p = "char *";
break;
case 1:
p = "u_int";
@@ -6137,7 +6495,7 @@
p = "const char *";
break;
case 1:
- p = "int";
+ p = "u_long";
break;
default:
break;
@@ -6166,10 +6524,10 @@
p = "int";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 4:
p = "size_t";
@@ -6849,7 +7207,7 @@
break;
};
break;
- /* sigqueue */
+ /* freebsd32_sigqueue */
case 456:
switch(ndx) {
case 0:
@@ -6859,7 +7217,7 @@
p = "int";
break;
case 2:
- p = "void *";
+ p = "int";
break;
default:
break;
@@ -6944,7 +7302,7 @@
break;
};
break;
- /* kmq_notify */
+ /* freebsd32_kmq_notify */
case 461:
switch(ndx) {
case 0:
@@ -6951,7 +7309,7 @@
p = "int";
break;
case 1:
- p = "const struct sigevent *";
+ p = "const struct sigevent32 *";
break;
default:
break;
@@ -7139,10 +7497,10 @@
p = "int";
break;
case 4:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 5:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -7164,10 +7522,10 @@
p = "int";
break;
case 4:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 5:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -7195,10 +7553,10 @@
p = "int";
break;
case 6:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 7:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -7214,10 +7572,10 @@
p = "int";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 4:
p = "int";
@@ -7236,10 +7594,10 @@
p = "int";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -7255,10 +7613,10 @@
p = "int";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -7278,10 +7636,10 @@
p = "size_t";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 4:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -7300,10 +7658,10 @@
p = "size_t";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 4:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -7328,10 +7686,10 @@
p = "int";
break;
case 5:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 6:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -7344,10 +7702,10 @@
p = "int";
break;
case 1:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
p = "int";
@@ -7363,10 +7721,10 @@
p = "char *";
break;
case 1:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -7379,10 +7737,10 @@
p = "int";
break;
case 1:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
default:
break;
@@ -7452,10 +7810,10 @@
p = "int";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 4:
p = "cpusetid_t";
@@ -7472,10 +7830,10 @@
p = "cpuwhich_t";
break;
case 1:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
p = "cpusetid_t";
@@ -7495,10 +7853,10 @@
p = "cpuwhich_t";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 4:
p = "cpusetid_t *";
@@ -7517,10 +7875,10 @@
p = "cpuwhich_t";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 4:
p = "size_t";
@@ -7542,10 +7900,10 @@
p = "cpuwhich_t";
break;
case 2:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 3:
- p = "u_int32_t";
+ p = "uint32_t";
break;
case 4:
p = "size_t";
@@ -7624,10 +7982,10 @@
p = "int";
break;
case 1:
- p = "u_int32_t *";
+ p = "uint32_t *";
break;
case 2:
- p = "u_int32_t *";
+ p = "uint32_t *";
break;
default:
break;
@@ -7956,41 +8314,70 @@
break;
};
break;
- /* cap_new */
- case 514:
+ /* __cap_rights_get */
+ case 515:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
- p = "u_int64_t";
+ p = "int";
break;
+ case 2:
+ p = "cap_rights_t *";
+ break;
default:
break;
};
break;
- /* cap_getrights */
- case 515:
+ /* freebsd32_cap_enter */
+ case 516:
+ break;
+ /* cap_getmode */
+ case 517:
switch(ndx) {
case 0:
+ p = "u_int *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* pdfork */
+ case 518:
+ switch(ndx) {
+ case 0:
+ p = "int *";
+ break;
+ case 1:
p = "int";
break;
+ default:
+ break;
+ };
+ break;
+ /* pdkill */
+ case 519:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
case 1:
- p = "u_int64_t *";
+ p = "int";
break;
default:
break;
};
break;
- /* cap_enter */
- case 516:
- break;
- /* cap_getmode */
- case 517:
+ /* pdgetpid */
+ case 520:
switch(ndx) {
case 0:
- p = "u_int *";
+ p = "int";
break;
+ case 1:
+ p = "pid_t *";
+ break;
default:
break;
};
@@ -8300,6 +8687,277 @@
};
break;
#endif
+ /* cap_rights_limit */
+ case 533:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "cap_rights_t *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* freebsd32_cap_ioctls_limit */
+ case 534:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "const uint32_t *";
+ break;
+ case 2:
+ p = "size_t";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* freebsd32_cap_ioctls_get */
+ case 535:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "uint32_t *";
+ break;
+ case 2:
+ p = "size_t";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* cap_fcntls_limit */
+ case 536:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "uint32_t";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* cap_fcntls_get */
+ case 537:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "uint32_t *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* bindat */
+ case 538:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "int";
+ break;
+ case 2:
+ p = "caddr_t";
+ break;
+ case 3:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* connectat */
+ case 539:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "int";
+ break;
+ case 2:
+ p = "caddr_t";
+ break;
+ case 3:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* chflagsat */
+ case 540:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "const char *";
+ break;
+ case 2:
+ p = "u_long";
+ break;
+ case 3:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* accept4 */
+ case 541:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "struct sockaddr *";
+ break;
+ case 2:
+ p = "__socklen_t *";
+ break;
+ case 3:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* pipe2 */
+ case 542:
+ switch(ndx) {
+ case 0:
+ p = "int *";
+ break;
+ case 1:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* freebsd32_aio_mlock */
+ case 543:
+ switch(ndx) {
+ case 0:
+ p = "struct aiocb32 *";
+ break;
+ default:
+ break;
+ };
+ break;
+#ifdef PAD64_REQUIRED
+ /* freebsd32_procctl */
+ case 544:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "int";
+ break;
+ case 2:
+ p = "uint32_t";
+ break;
+ case 3:
+ p = "uint32_t";
+ break;
+ case 4:
+ p = "int";
+ break;
+ case 5:
+ p = "void *";
+ break;
+ default:
+ break;
+ };
+ break;
+#else
+ /* freebsd32_procctl */
+ case 544:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "uint32_t";
+ break;
+ case 2:
+ p = "uint32_t";
+ break;
+ case 3:
+ p = "int";
+ break;
+ case 4:
+ p = "void *";
+ break;
+ default:
+ break;
+ };
+ break;
+#endif
+ /* freebsd32_ppoll */
+ case 545:
+ switch(ndx) {
+ case 0:
+ p = "struct pollfd *";
+ break;
+ case 1:
+ p = "u_int";
+ break;
+ case 2:
+ p = "const struct timespec32 *";
+ break;
+ case 3:
+ p = "const sigset_t *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* freebsd32_futimens */
+ case 546:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "struct timespec *";
+ break;
+ default:
+ break;
+ };
+ break;
+ /* freebsd32_utimensat */
+ case 547:
+ switch(ndx) {
+ case 0:
+ p = "int";
+ break;
+ case 1:
+ p = "char *";
+ break;
+ case 2:
+ p = "struct timespec *";
+ break;
+ case 3:
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ break;
default:
break;
};
@@ -8306,3 +8964,1901 @@
if (p != NULL)
strlcpy(desc, p, descsz);
}
+static void
+systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
+{
+ const char *p = NULL;
+ switch (sysnum) {
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
+#define PAD64_REQUIRED
+#endif
+ /* nosys */
+ case 0:
+ /* sys_exit */
+ case 1:
+ if (ndx == 0 || ndx == 1)
+ p = "void";
+ break;
+ /* fork */
+ case 2:
+ /* read */
+ case 3:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* write */
+ case 4:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* open */
+ case 5:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* close */
+ case 6:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_wait4 */
+ case 7:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* link */
+ case 9:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* unlink */
+ case 10:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* chdir */
+ case 12:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fchdir */
+ case 13:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* mknod */
+ case 14:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* chmod */
+ case 15:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* chown */
+ case 16:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* obreak */
+ case 17:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getpid */
+ case 20:
+ /* mount */
+ case 21:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* unmount */
+ case 22:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setuid */
+ case 23:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getuid */
+ case 24:
+ /* geteuid */
+ case 25:
+ /* ptrace */
+ case 26:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_recvmsg */
+ case 27:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_sendmsg */
+ case 28:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_recvfrom */
+ case 29:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* accept */
+ case 30:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getpeername */
+ case 31:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getsockname */
+ case 32:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* access */
+ case 33:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* chflags */
+ case 34:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fchflags */
+ case 35:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sync */
+ case 36:
+ /* kill */
+ case 37:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getppid */
+ case 39:
+ /* dup */
+ case 41:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* pipe */
+ case 42:
+ /* getegid */
+ case 43:
+ /* profil */
+ case 44:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ktrace */
+ case 45:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getgid */
+ case 47:
+ /* getlogin */
+ case 49:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setlogin */
+ case 50:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* acct */
+ case 51:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_sigaltstack */
+ case 53:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_ioctl */
+ case 54:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* reboot */
+ case 55:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* revoke */
+ case 56:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* symlink */
+ case 57:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* readlink */
+ case 58:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* freebsd32_execve */
+ case 59:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* umask */
+ case 60:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* chroot */
+ case 61:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* msync */
+ case 65:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* vfork */
+ case 66:
+ /* sbrk */
+ case 69:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sstk */
+ case 70:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ovadvise */
+ case 72:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* munmap */
+ case 73:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_mprotect */
+ case 74:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* madvise */
+ case 75:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* mincore */
+ case 78:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getgroups */
+ case 79:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setgroups */
+ case 80:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getpgrp */
+ case 81:
+ /* setpgid */
+ case 82:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_setitimer */
+ case 83:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* swapon */
+ case 85:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_getitimer */
+ case 86:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getdtablesize */
+ case 89:
+ /* dup2 */
+ case 90:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_fcntl */
+ case 92:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_select */
+ case 93:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fsync */
+ case 95:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setpriority */
+ case 96:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* socket */
+ case 97:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* connect */
+ case 98:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getpriority */
+ case 100:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* bind */
+ case 104:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setsockopt */
+ case 105:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* listen */
+ case 106:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_gettimeofday */
+ case 116:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_getrusage */
+ case 117:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getsockopt */
+ case 118:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_readv */
+ case 120:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_writev */
+ case 121:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_settimeofday */
+ case 122:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fchown */
+ case 123:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fchmod */
+ case 124:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setreuid */
+ case 126:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setregid */
+ case 127:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* rename */
+ case 128:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* flock */
+ case 131:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* mkfifo */
+ case 132:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sendto */
+ case 133:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* shutdown */
+ case 134:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* socketpair */
+ case 135:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* mkdir */
+ case 136:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* rmdir */
+ case 137:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_utimes */
+ case 138:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_adjtime */
+ case 140:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setsid */
+ case 147:
+ /* quotactl */
+ case 148:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getfh */
+ case 161:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_sysarch */
+ case 165:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* rtprio */
+ case 166:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_semsys */
+ case 169:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_msgsys */
+ case 170:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_shmsys */
+ case 171:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ntp_adjtime */
+ case 176:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setgid */
+ case 181:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setegid */
+ case 182:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* seteuid */
+ case 183:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_stat */
+ case 188:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_fstat */
+ case 189:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_lstat */
+ case 190:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* pathconf */
+ case 191:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fpathconf */
+ case 192:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getrlimit */
+ case 194:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setrlimit */
+ case 195:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_getdirentries */
+ case 196:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* nosys */
+ case 198:
+ /* freebsd32_sysctl */
+ case 202:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* mlock */
+ case 203:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* munlock */
+ case 204:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* undelete */
+ case 205:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_futimes */
+ case 206:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getpgid */
+ case 207:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* poll */
+ case 209:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* lkmnosys */
+ case 210:
+ /* lkmnosys */
+ case 211:
+ /* lkmnosys */
+ case 212:
+ /* lkmnosys */
+ case 213:
+ /* lkmnosys */
+ case 214:
+ /* lkmnosys */
+ case 215:
+ /* lkmnosys */
+ case 216:
+ /* lkmnosys */
+ case 217:
+ /* lkmnosys */
+ case 218:
+ /* lkmnosys */
+ case 219:
+ /* semget */
+ case 221:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* semop */
+ case 222:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* msgget */
+ case 225:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_msgsnd */
+ case 226:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_msgrcv */
+ case 227:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* shmat */
+ case 228:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* shmdt */
+ case 230:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* shmget */
+ case 231:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_clock_gettime */
+ case 232:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_clock_settime */
+ case 233:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_clock_getres */
+ case 234:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_ktimer_create */
+ case 235:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ktimer_delete */
+ case 236:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_ktimer_settime */
+ case 237:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_ktimer_gettime */
+ case 238:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ktimer_getoverrun */
+ case 239:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_nanosleep */
+ case 240:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ffclock_getcounter */
+ case 241:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ffclock_setestimate */
+ case 242:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ffclock_getestimate */
+ case 243:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_clock_getcpuclockid2 */
+ case 247:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* minherit */
+ case 250:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* rfork */
+ case 251:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* openbsd_poll */
+ case 252:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* issetugid */
+ case 253:
+ /* lchown */
+ case 254:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_aio_read */
+ case 255:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_aio_write */
+ case 256:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_lio_listio */
+ case 257:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getdents */
+ case 272:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* lchmod */
+ case 274:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* lchown */
+ case 275:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_lutimes */
+ case 276:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* msync */
+ case 277:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* nstat */
+ case 278:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* nfstat */
+ case 279:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* nlstat */
+ case 280:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_preadv */
+ case 289:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* freebsd32_pwritev */
+ case 290:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* fhopen */
+ case 298:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fhstat */
+ case 299:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* modnext */
+ case 300:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_modstat */
+ case 301:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* modfnext */
+ case 302:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* modfind */
+ case 303:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* kldload */
+ case 304:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* kldunload */
+ case 305:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* kldfind */
+ case 306:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* kldnext */
+ case 307:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_kldstat */
+ case 308:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* kldfirstmod */
+ case 309:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getsid */
+ case 310:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setresuid */
+ case 311:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setresgid */
+ case 312:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_aio_return */
+ case 314:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_aio_suspend */
+ case 315:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_aio_cancel */
+ case 316:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_aio_error */
+ case 317:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_oaio_read */
+ case 318:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_oaio_write */
+ case 319:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_olio_listio */
+ case 320:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* yield */
+ case 321:
+ /* mlockall */
+ case 324:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* munlockall */
+ case 325:
+ /* __getcwd */
+ case 326:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sched_setparam */
+ case 327:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sched_getparam */
+ case 328:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sched_setscheduler */
+ case 329:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sched_getscheduler */
+ case 330:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sched_yield */
+ case 331:
+ /* sched_get_priority_max */
+ case 332:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sched_get_priority_min */
+ case 333:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sched_rr_get_interval */
+ case 334:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* utrace */
+ case 335:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* kldsym */
+ case 337:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_jail */
+ case 338:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sigprocmask */
+ case 340:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sigsuspend */
+ case 341:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sigpending */
+ case 343:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_sigtimedwait */
+ case 345:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_sigwaitinfo */
+ case 346:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_get_file */
+ case 347:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_set_file */
+ case 348:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_get_fd */
+ case 349:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_set_fd */
+ case 350:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_delete_file */
+ case 351:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_delete_fd */
+ case 352:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_aclcheck_file */
+ case 353:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_aclcheck_fd */
+ case 354:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* extattrctl */
+ case 355:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* extattr_set_file */
+ case 356:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* extattr_get_file */
+ case 357:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* extattr_delete_file */
+ case 358:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_aio_waitcomplete */
+ case 359:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getresuid */
+ case 360:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getresgid */
+ case 361:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* kqueue */
+ case 362:
+ /* freebsd32_kevent */
+ case 363:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* extattr_set_fd */
+ case 371:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* extattr_get_fd */
+ case 372:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* extattr_delete_fd */
+ case 373:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __setugid */
+ case 374:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* eaccess */
+ case 376:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_nmount */
+ case 378:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* kenv */
+ case 390:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* lchflags */
+ case 391:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* uuidgen */
+ case 392:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_sendfile */
+ case 393:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getfsstat */
+ case 395:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* statfs */
+ case 396:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fstatfs */
+ case 397:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fhstatfs */
+ case 398:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ksem_close */
+ case 400:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ksem_post */
+ case 401:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ksem_wait */
+ case 402:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ksem_trywait */
+ case 403:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_ksem_init */
+ case 404:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_ksem_open */
+ case 405:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ksem_unlink */
+ case 406:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ksem_getvalue */
+ case 407:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* ksem_destroy */
+ case 408:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* extattr_set_link */
+ case 412:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* extattr_get_link */
+ case 413:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* extattr_delete_link */
+ case 414:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_sigaction */
+ case 416:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_sigreturn */
+ case 417:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_getcontext */
+ case 421:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_setcontext */
+ case 422:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_swapcontext */
+ case 423:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_get_link */
+ case 425:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_set_link */
+ case 426:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_delete_link */
+ case 427:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __acl_aclcheck_link */
+ case 428:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sigwait */
+ case 429:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* thr_exit */
+ case 431:
+ if (ndx == 0 || ndx == 1)
+ p = "void";
+ break;
+ /* thr_self */
+ case 432:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* thr_kill */
+ case 433:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_umtx_lock */
+ case 434:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_umtx_unlock */
+ case 435:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* jail_attach */
+ case 436:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* extattr_list_fd */
+ case 437:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* extattr_list_file */
+ case 438:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* extattr_list_link */
+ case 439:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* freebsd32_ksem_timedwait */
+ case 441:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_thr_suspend */
+ case 442:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* thr_wake */
+ case 443:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* kldunloadf */
+ case 444:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* audit */
+ case 445:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* auditon */
+ case 446:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getauid */
+ case 447:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setauid */
+ case 448:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getaudit */
+ case 449:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setaudit */
+ case 450:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getaudit_addr */
+ case 451:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setaudit_addr */
+ case 452:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* auditctl */
+ case 453:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_umtx_op */
+ case 454:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_thr_new */
+ case 455:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_sigqueue */
+ case 456:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_kmq_open */
+ case 457:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_kmq_setattr */
+ case 458:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_kmq_timedreceive */
+ case 459:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_kmq_timedsend */
+ case 460:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_kmq_notify */
+ case 461:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* kmq_unlink */
+ case 462:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* abort2 */
+ case 463:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* thr_set_name */
+ case 464:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_aio_fsync */
+ case 465:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* rtprio_thread */
+ case 466:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sctp_peeloff */
+ case 471:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sctp_generic_sendmsg */
+ case 472:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sctp_generic_sendmsg_iov */
+ case 473:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* sctp_generic_recvmsg */
+ case 474:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#ifdef PAD64_REQUIRED
+ /* freebsd32_pread */
+ case 475:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* freebsd32_pwrite */
+ case 476:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* freebsd32_mmap */
+ case 477:
+ if (ndx == 0 || ndx == 1)
+ p = "caddr_t";
+ break;
+ /* freebsd32_lseek */
+ case 478:
+ if (ndx == 0 || ndx == 1)
+ p = "off_t";
+ break;
+ /* freebsd32_truncate */
+ case 479:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_ftruncate */
+ case 480:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#else
+ /* freebsd32_pread */
+ case 475:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* freebsd32_pwrite */
+ case 476:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* freebsd32_mmap */
+ case 477:
+ if (ndx == 0 || ndx == 1)
+ p = "caddr_t";
+ break;
+ /* freebsd32_lseek */
+ case 478:
+ if (ndx == 0 || ndx == 1)
+ p = "off_t";
+ break;
+ /* freebsd32_truncate */
+ case 479:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_ftruncate */
+ case 480:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#endif
+ /* thr_kill2 */
+ case 481:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* shm_open */
+ case 482:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* shm_unlink */
+ case 483:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* cpuset */
+ case 484:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#ifdef PAD64_REQUIRED
+ /* freebsd32_cpuset_setid */
+ case 485:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#else
+ /* freebsd32_cpuset_setid */
+ case 485:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#endif
+ /* freebsd32_cpuset_getid */
+ case 486:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_cpuset_getaffinity */
+ case 487:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_cpuset_setaffinity */
+ case 488:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* faccessat */
+ case 489:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fchmodat */
+ case 490:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* fchownat */
+ case 491:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_fexecve */
+ case 492:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_fstatat */
+ case 493:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_futimesat */
+ case 494:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* linkat */
+ case 495:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* mkdirat */
+ case 496:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* mkfifoat */
+ case 497:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* mknodat */
+ case 498:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* openat */
+ case 499:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* readlinkat */
+ case 500:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* renameat */
+ case 501:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* symlinkat */
+ case 502:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* unlinkat */
+ case 503:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* posix_openpt */
+ case 504:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_jail_get */
+ case 506:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_jail_set */
+ case 507:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* jail_remove */
+ case 508:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* closefrom */
+ case 509:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_semctl */
+ case 510:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_msgctl */
+ case 511:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_shmctl */
+ case 512:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* lpathconf */
+ case 513:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* __cap_rights_get */
+ case 515:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_cap_enter */
+ case 516:
+ /* cap_getmode */
+ case 517:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* pdfork */
+ case 518:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* pdkill */
+ case 519:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* pdgetpid */
+ case 520:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_pselect */
+ case 522:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* getloginclass */
+ case 523:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* setloginclass */
+ case 524:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* rctl_get_racct */
+ case 525:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* rctl_get_rules */
+ case 526:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* rctl_get_limits */
+ case 527:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* rctl_add_rule */
+ case 528:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* rctl_remove_rule */
+ case 529:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#ifdef PAD64_REQUIRED
+ /* freebsd32_posix_fallocate */
+ case 530:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_posix_fadvise */
+ case 531:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_wait6 */
+ case 532:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#else
+ /* freebsd32_posix_fallocate */
+ case 530:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_posix_fadvise */
+ case 531:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_wait6 */
+ case 532:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#endif
+ /* cap_rights_limit */
+ case 533:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_cap_ioctls_limit */
+ case 534:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_cap_ioctls_get */
+ case 535:
+ if (ndx == 0 || ndx == 1)
+ p = "ssize_t";
+ break;
+ /* cap_fcntls_limit */
+ case 536:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* cap_fcntls_get */
+ case 537:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* bindat */
+ case 538:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* connectat */
+ case 539:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* chflagsat */
+ case 540:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* accept4 */
+ case 541:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* pipe2 */
+ case 542:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_aio_mlock */
+ case 543:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#ifdef PAD64_REQUIRED
+ /* freebsd32_procctl */
+ case 544:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#else
+ /* freebsd32_procctl */
+ case 544:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+#endif
+ /* freebsd32_ppoll */
+ case 545:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_futimens */
+ case 546:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ /* freebsd32_utimensat */
+ case 547:
+ if (ndx == 0 || ndx == 1)
+ p = "int";
+ break;
+ default:
+ break;
+ };
+ if (p != NULL)
+ strlcpy(desc, p, descsz);
+}
Modified: trunk/sys/compat/freebsd32/freebsd32_util.h
===================================================================
--- trunk/sys/compat/freebsd32/freebsd32_util.h 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/freebsd32_util.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,4 +1,4 @@
-/* $MidnightBSD: src/sys/compat/freebsd32/freebsd32_util.h,v 1.3 2012/02/19 16:59:08 laffer1 Exp $ */
+/* $MidnightBSD$ */
/*-
* Copyright (c) 1998-1999 Andrew Gallatin
* All rights reserved.
@@ -26,7 +26,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_util.h,v 1.10 2005/06/29 15:16:20 jhb Exp $
+ * $FreeBSD: stable/10/sys/compat/freebsd32/freebsd32_util.h 225617 2011-09-16 13:58:51Z kmacy $
*/
#ifndef _COMPAT_FREEBSD32_FREEBSD32_UTIL_H_
Modified: trunk/sys/compat/freebsd32/syscalls.conf
===================================================================
--- trunk/sys/compat/freebsd32/syscalls.conf 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/syscalls.conf 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,5 +1,4 @@
-# $MidnightBSD: src/sys/compat/freebsd32/syscalls.conf,v 1.2 2008/09/16 01:34:18 laffer1 Exp $
-# $FreeBSD: src/sys/compat/freebsd32/syscalls.conf,v 1.5 2006/08/15 17:25:54 jhb Exp $
+# $MidnightBSD$
sysnames="freebsd32_syscalls.c"
sysproto="freebsd32_proto.h"
sysproto_h=_FREEBSD32_SYSPROTO_H_
Property changes on: trunk/sys/compat/freebsd32/syscalls.conf
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Modified: trunk/sys/compat/freebsd32/syscalls.master
===================================================================
--- trunk/sys/compat/freebsd32/syscalls.master 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/freebsd32/syscalls.master 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,4 +1,4 @@
-; $MidnightBSD: src/sys/compat/freebsd32/syscalls.master,v 1.6 2012/01/04 02:14:06 laffer1 Exp $
+ $MidnightBSD$
; from: @(#)syscalls.master 8.2 (Berkeley) 1/13/94
; from: src/sys/kern/syscalls.master 1.107
;
@@ -52,7 +52,7 @@
#include <compat/freebsd32/freebsd32.h>
#include <compat/freebsd32/freebsd32_proto.h>
-#if !defined(PAD64_REQUIRED) && defined(__powerpc__)
+#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
@@ -104,9 +104,9 @@
int flags); }
28 AUE_SENDMSG STD { int freebsd32_sendmsg(int s, struct msghdr32 *msg, \
int flags); }
-29 AUE_RECVFROM STD { int freebsd32_recvfrom(int s, u_int32_t buf, \
- u_int32_t len, int flags, u_int32_t from, \
- u_int32_t fromlenaddr); }
+29 AUE_RECVFROM STD { int freebsd32_recvfrom(int s, uint32_t buf, \
+ uint32_t len, int flags, uint32_t from, \
+ uint32_t fromlenaddr); }
30 AUE_ACCEPT NOPROTO { int accept(int s, caddr_t name, \
int *anamelen); }
31 AUE_GETPEERNAME NOPROTO { int getpeername(int fdes, caddr_t asa, \
@@ -114,8 +114,8 @@
32 AUE_GETSOCKNAME NOPROTO { int getsockname(int fdes, caddr_t asa, \
int *alen); }
33 AUE_ACCESS NOPROTO { int access(char *path, int amode); }
-34 AUE_CHFLAGS NOPROTO { int chflags(char *path, int flags); }
-35 AUE_FCHFLAGS NOPROTO { int fchflags(int fd, int flags); }
+34 AUE_CHFLAGS NOPROTO { int chflags(const char *path, u_long flags); }
+35 AUE_FCHFLAGS NOPROTO { int fchflags(int fd, u_long flags); }
36 AUE_SYNC NOPROTO { int sync(void); }
37 AUE_KILL NOPROTO { int kill(int pid, int signum); }
38 AUE_STAT COMPAT { int freebsd32_stat(char *path, \
@@ -152,7 +152,7 @@
58 AUE_READLINK NOPROTO { ssize_t readlink(char *path, char *buf, \
size_t count); }
59 AUE_EXECVE STD { int freebsd32_execve(char *fname, \
- u_int32_t *argv, u_int32_t *envv); }
+ uint32_t *argv, uint32_t *envv); }
60 AUE_UMASK NOPROTO { int umask(int newmask); } umask \
umask_args int
61 AUE_CHROOT NOPROTO { int chroot(char *path); }
@@ -200,7 +200,8 @@
89 AUE_GETDTABLESIZE NOPROTO { int getdtablesize(void); }
90 AUE_DUP2 NOPROTO { int dup2(u_int from, u_int to); }
91 AUE_NULL UNIMPL getdopt
-92 AUE_FCNTL NOPROTO { int fcntl(int fd, int cmd, long arg); }
+92 AUE_FCNTL STD { int freebsd32_fcntl(int fd, int cmd, \
+ int arg); }
93 AUE_SELECT STD { int freebsd32_select(int nd, fd_set *in, \
fd_set *ou, fd_set *ex, \
struct timeval32 *tv); }
@@ -327,10 +328,10 @@
172 AUE_NULL UNIMPL nosys
173 AUE_PREAD COMPAT6 { ssize_t freebsd32_pread(int fd, void *buf, \
size_t nbyte, int pad, \
- u_int32_t offset1, u_int32_t offset2); }
+ uint32_t offset1, uint32_t offset2); }
174 AUE_PWRITE COMPAT6 { ssize_t freebsd32_pwrite(int fd, \
const void *buf, size_t nbyte, int pad, \
- u_int32_t offset1, u_int32_t offset2); }
+ uint32_t offset1, uint32_t offset2); }
175 AUE_NULL UNIMPL nosys
176 AUE_NTP_ADJTIME NOPROTO { int ntp_adjtime(struct timex *tp); }
177 AUE_NULL UNIMPL sfork (BSD/OS 2.x)
@@ -365,21 +366,21 @@
char *buf, u_int count, int32_t *basep); }
197 AUE_MMAP COMPAT6 { caddr_t freebsd32_mmap(caddr_t addr, \
size_t len, int prot, int flags, int fd, \
- int pad, u_int32_t pos1, u_int32_t pos2); }
+ int pad, uint32_t pos1, uint32_t pos2); }
198 AUE_NULL NOPROTO { int nosys(void); } __syscall \
__syscall_args int
199 AUE_LSEEK COMPAT6 { off_t freebsd32_lseek(int fd, int pad, \
- u_int32_t offset1, u_int32_t offset2, \
+ uint32_t offset1, uint32_t offset2, \
int whence); }
200 AUE_TRUNCATE COMPAT6 { int freebsd32_truncate(char *path, \
- int pad, u_int32_t length1, \
- u_int32_t length2); }
+ int pad, uint32_t length1, \
+ uint32_t length2); }
201 AUE_FTRUNCATE COMPAT6 { int freebsd32_ftruncate(int fd, int pad, \
- u_int32_t length1, u_int32_t length2); }
+ uint32_t length1, uint32_t length2); }
202 AUE_SYSCTL STD { int freebsd32_sysctl(int *name, \
u_int namelen, void *old, \
- u_int32_t *oldlenp, void *new, \
- u_int32_t newlen); }
+ uint32_t *oldlenp, void *new, \
+ uint32_t newlen); }
203 AUE_MLOCK NOPROTO { int mlock(const void *addr, \
size_t len); }
204 AUE_MUNLOCK NOPROTO { int munlock(const void *addr, \
@@ -441,21 +442,31 @@
const struct timespec32 *tp); }
234 AUE_NULL STD { int freebsd32_clock_getres(clockid_t clock_id, \
struct timespec32 *tp); }
-235 AUE_NULL UNIMPL timer_create
-236 AUE_NULL UNIMPL timer_delete
-237 AUE_NULL UNIMPL timer_settime
-238 AUE_NULL UNIMPL timer_gettime
-239 AUE_NULL UNIMPL timer_getoverrun
+235 AUE_NULL STD { int freebsd32_ktimer_create(\
+ clockid_t clock_id, \
+ struct sigevent32 *evp, int *timerid); }
+236 AUE_NULL NOPROTO { int ktimer_delete(int timerid); }
+237 AUE_NULL STD { int freebsd32_ktimer_settime(int timerid,\
+ int flags, \
+ const struct itimerspec32 *value, \
+ struct itimerspec32 *ovalue); }
+238 AUE_NULL STD { int freebsd32_ktimer_gettime(int timerid,\
+ struct itimerspec32 *value); }
+239 AUE_NULL NOPROTO { int ktimer_getoverrun(int timerid); }
240 AUE_NULL STD { int freebsd32_nanosleep( \
const struct timespec32 *rqtp, \
struct timespec32 *rmtp); }
-241 AUE_NULL UNIMPL nosys
-242 AUE_NULL UNIMPL nosys
-243 AUE_NULL UNIMPL nosys
+241 AUE_NULL NOPROTO { int ffclock_getcounter(ffcounter *ffcount); }
+242 AUE_NULL NOPROTO { int ffclock_setestimate( \
+ struct ffclock_estimate *cest); }
+243 AUE_NULL NOPROTO { int ffclock_getestimate( \
+ struct ffclock_estimate *cest); }
244 AUE_NULL UNIMPL nosys
245 AUE_NULL UNIMPL nosys
246 AUE_NULL UNIMPL nosys
-247 AUE_NULL UNIMPL nosys
+247 AUE_NULL STD { int freebsd32_clock_getcpuclockid2(\
+ uint32_t id1, uint32_t id2,\
+ int which, clockid_t *clock_id); }
248 AUE_NULL UNIMPL ntp_gettime
249 AUE_NULL UNIMPL nosys
; syscall numbers initially used in OpenBSD
@@ -472,7 +483,7 @@
struct aiocb32 *aiocbp); }
257 AUE_NULL NOSTD { int freebsd32_lio_listio(int mode, \
struct aiocb32 * const *acb_list, \
- int nent, struct sigevent *sig); }
+ int nent, struct sigevent32 *sig); }
258 AUE_NULL UNIMPL nosys
259 AUE_NULL UNIMPL nosys
260 AUE_NULL UNIMPL nosys
@@ -513,11 +524,11 @@
289 AUE_PREADV STD { ssize_t freebsd32_preadv(int fd, \
struct iovec32 *iovp, \
u_int iovcnt, \
- u_int32_t offset1, u_int32_t offset2); }
+ uint32_t offset1, uint32_t offset2); }
290 AUE_PWRITEV STD { ssize_t freebsd32_pwritev(int fd, \
struct iovec32 *iovp, \
u_int iovcnt, \
- u_int32_t offset1, u_int32_t offset2); }
+ uint32_t offset1, uint32_t offset2); }
291 AUE_NULL UNIMPL nosys
292 AUE_NULL UNIMPL nosys
293 AUE_NULL UNIMPL nosys
@@ -572,7 +583,7 @@
323 AUE_NULL OBSOL thr_wakeup
324 AUE_MLOCKALL NOPROTO { int mlockall(int how); }
325 AUE_MUNLOCKALL NOPROTO { int munlockall(void); }
-326 AUE_GETCWD NOPROTO { int __getcwd(u_char *buf, u_int buflen); }
+326 AUE_GETCWD NOPROTO { int __getcwd(char *buf, u_int buflen); }
327 AUE_NULL NOPROTO { int sched_setparam (pid_t pid, \
const struct sched_param *param); }
@@ -591,7 +602,7 @@
struct timespec *interval); }
335 AUE_NULL NOPROTO { int utrace(const void *addr, size_t len); }
336 AUE_SENDFILE COMPAT4 { int freebsd32_sendfile(int fd, int s, \
- u_int32_t offset1, u_int32_t offset2, \
+ uint32_t offset1, uint32_t offset2, \
size_t nbytes, struct sf_hdtr32 *hdtr, \
off_t *sbytes, int flags); }
337 AUE_NULL NOPROTO { int kldsym(int fileid, int cmd, \
@@ -631,7 +642,7 @@
355 AUE_EXTATTRCTL NOPROTO { int extattrctl(const char *path, int cmd, \
const char *filename, int attrnamespace, \
const char *attrname); }
-356 AUE_EXTATTR_SET_FILE NOPROTO { int extattr_set_file( \
+356 AUE_EXTATTR_SET_FILE NOPROTO { ssize_t extattr_set_file( \
const char *path, int attrnamespace, \
const char *attrname, void *data, \
size_t nbytes); }
@@ -662,7 +673,7 @@
368 AUE_NULL UNIMPL __cap_set_fd
369 AUE_NULL UNIMPL __cap_set_file
370 AUE_NULL UNIMPL nosys
-371 AUE_EXTATTR_SET_FD NOPROTO { int extattr_set_fd(int fd, \
+371 AUE_EXTATTR_SET_FD NOPROTO { ssize_t extattr_set_fd(int fd, \
int attrnamespace, const char *attrname, \
void *data, size_t nbytes); }
372 AUE_EXTATTR_GET_FD NOPROTO { ssize_t extattr_get_fd(int fd, \
@@ -690,11 +701,12 @@
389 AUE_NULL UNIMPL __mac_set_file
390 AUE_NULL NOPROTO { int kenv(int what, const char *name, \
char *value, int len); }
-391 AUE_LCHFLAGS NOPROTO { int lchflags(const char *path, int flags); }
+391 AUE_LCHFLAGS NOPROTO { int lchflags(const char *path, \
+ u_long flags); }
392 AUE_NULL NOPROTO { int uuidgen(struct uuid *store, \
int count); }
393 AUE_SENDFILE STD { int freebsd32_sendfile(int fd, int s, \
- u_int32_t offset1, u_int32_t offset2, \
+ uint32_t offset1, uint32_t offset2, \
size_t nbytes, struct sf_hdtr32 *hdtr, \
off_t *sbytes, int flags); }
394 AUE_NULL UNIMPL mac_syscall
@@ -722,7 +734,7 @@
409 AUE_NULL UNIMPL __mac_get_pid
410 AUE_NULL UNIMPL __mac_get_link
411 AUE_NULL UNIMPL __mac_set_link
-412 AUE_EXTATTR_SET_LINK NOPROTO { int extattr_set_link( \
+412 AUE_EXTATTR_SET_LINK NOPROTO { ssize_t extattr_set_link( \
const char *path, int attrnamespace, \
const char *attrname, void *data, \
size_t nbytes); }
@@ -804,8 +816,8 @@
455 AUE_NULL STD { int freebsd32_thr_new( \
struct thr_param32 *param, \
int param_size); }
-456 AUE_NULL NOPROTO { int sigqueue(pid_t pid, int signum, \
- void *value); }
+456 AUE_NULL STD { int freebsd32_sigqueue(pid_t pid, \
+ int signum, int value); }
457 AUE_NULL NOSTD { int freebsd32_kmq_open( \
const char *path, int flags, mode_t mode, \
const struct mq_attr32 *attr); }
@@ -820,8 +832,8 @@
const char *msg_ptr, size_t msg_len,\
unsigned msg_prio, \
const struct timespec32 *abs_timeout);}
-461 AUE_NULL NOPROTO|NOSTD { int kmq_notify(int mqd, \
- const struct sigevent *sigev); }
+461 AUE_NULL NOSTD { int freebsd32_kmq_notify(int mqd, \
+ const struct sigevent32 *sigev); }
462 AUE_NULL NOPROTO|NOSTD { int kmq_unlink(const char *path); }
463 AUE_NULL NOPROTO { int abort2(const char *why, int nargs, void **args); }
464 AUE_NULL NOPROTO { int thr_set_name(long id, const char *name); }
@@ -833,14 +845,14 @@
468 AUE_NULL UNIMPL nosys
469 AUE_NULL UNIMPL __getpath_fromfd
470 AUE_NULL UNIMPL __getpath_fromaddr
-471 AUE_NULL NOPROTO { int sctp_peeloff(int sd, uint32_t name); }
-472 AUE_NULL NOPROTO { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \
+471 AUE_NULL NOPROTO|NOSTD { int sctp_peeloff(int sd, uint32_t name); }
+472 AUE_NULL NOPROTO|NOSTD { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, \
caddr_t to, __socklen_t tolen, \
struct sctp_sndrcvinfo *sinfo, int flags); }
-473 AUE_NULL NOPROTO { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \
+473 AUE_NULL NOPROTO|NOSTD { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, \
caddr_t to, __socklen_t tolen, \
struct sctp_sndrcvinfo *sinfo, int flags); }
-474 AUE_NULL NOPROTO { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \
+474 AUE_NULL NOPROTO|NOSTD { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, \
struct sockaddr * from, __socklen_t *fromlenaddr, \
struct sctp_sndrcvinfo *sinfo, int *msg_flags); }
#ifdef PAD64_REQUIRED
@@ -847,42 +859,42 @@
475 AUE_PREAD STD { ssize_t freebsd32_pread(int fd, \
void *buf,size_t nbyte, \
int pad, \
- u_int32_t offset1, u_int32_t offset2); }
+ uint32_t offset1, uint32_t offset2); }
476 AUE_PWRITE STD { ssize_t freebsd32_pwrite(int fd, \
const void *buf, size_t nbyte, \
int pad, \
- u_int32_t offset1, u_int32_t offset2); }
+ uint32_t offset1, uint32_t offset2); }
477 AUE_MMAP STD { caddr_t freebsd32_mmap(caddr_t addr, \
size_t len, int prot, int flags, int fd, \
int pad, \
- u_int32_t pos1, u_int32_t pos2); }
+ uint32_t pos1, uint32_t pos2); }
478 AUE_LSEEK STD { off_t freebsd32_lseek(int fd, \
int pad, \
- u_int32_t offset1, u_int32_t offset2, \
+ uint32_t offset1, uint32_t offset2, \
int whence); }
479 AUE_TRUNCATE STD { int freebsd32_truncate(char *path, \
int pad, \
- u_int32_t length1, u_int32_t length2); }
+ uint32_t length1, uint32_t length2); }
480 AUE_FTRUNCATE STD { int freebsd32_ftruncate(int fd, \
int pad, \
- u_int32_t length1, u_int32_t length2); }
+ uint32_t length1, uint32_t length2); }
#else
475 AUE_PREAD STD { ssize_t freebsd32_pread(int fd, \
void *buf,size_t nbyte, \
- u_int32_t offset1, u_int32_t offset2); }
+ uint32_t offset1, uint32_t offset2); }
476 AUE_PWRITE STD { ssize_t freebsd32_pwrite(int fd, \
const void *buf, size_t nbyte, \
- u_int32_t offset1, u_int32_t offset2); }
+ uint32_t offset1, uint32_t offset2); }
477 AUE_MMAP STD { caddr_t freebsd32_mmap(caddr_t addr, \
size_t len, int prot, int flags, int fd, \
- u_int32_t pos1, u_int32_t pos2); }
+ uint32_t pos1, uint32_t pos2); }
478 AUE_LSEEK STD { off_t freebsd32_lseek(int fd, \
- u_int32_t offset1, u_int32_t offset2, \
+ uint32_t offset1, uint32_t offset2, \
int whence); }
479 AUE_TRUNCATE STD { int freebsd32_truncate(char *path, \
- u_int32_t length1, u_int32_t length2); }
+ uint32_t length1, uint32_t length2); }
480 AUE_FTRUNCATE STD { int freebsd32_ftruncate(int fd, \
- u_int32_t length1, u_int32_t length2); }
+ uint32_t length1, uint32_t length2); }
#endif
481 AUE_KILL NOPROTO { int thr_kill2(pid_t pid, long id, int sig); }
482 AUE_SHMOPEN NOPROTO { int shm_open(const char *path, int flags, \
@@ -892,25 +904,25 @@
#ifdef PAD64_REQUIRED
485 AUE_NULL STD { int freebsd32_cpuset_setid(cpuwhich_t which, \
int pad, \
- u_int32_t id1, u_int32_t id2, \
+ uint32_t id1, uint32_t id2, \
cpusetid_t setid); }
#else
485 AUE_NULL STD { int freebsd32_cpuset_setid(cpuwhich_t which, \
- u_int32_t id1, u_int32_t id2, \
+ uint32_t id1, uint32_t id2, \
cpusetid_t setid); }
#endif
486 AUE_NULL STD { int freebsd32_cpuset_getid(cpulevel_t level, \
cpuwhich_t which, \
- u_int32_t id1, u_int32_t id2, \
+ uint32_t id1, uint32_t id2, \
cpusetid_t *setid); }
487 AUE_NULL STD { int freebsd32_cpuset_getaffinity( \
cpulevel_t level, cpuwhich_t which, \
- u_int32_t id1, u_int32_t id2, \
+ uint32_t id1, uint32_t id2, \
size_t cpusetsize, \
cpuset_t *mask); }
488 AUE_NULL STD { int freebsd32_cpuset_setaffinity( \
cpulevel_t level, cpuwhich_t which, \
- u_int32_t id1, u_int32_t id2, \
+ uint32_t id1, uint32_t id2, \
size_t cpusetsize, \
const cpuset_t *mask); }
489 AUE_FACCESSAT NOPROTO { int faccessat(int fd, char *path, int amode, \
@@ -920,7 +932,7 @@
491 AUE_FCHOWNAT NOPROTO { int fchownat(int fd, char *path, uid_t uid, \
gid_t gid, int flag); }
492 AUE_FEXECVE STD { int freebsd32_fexecve(int fd, \
- u_int32_t *argv, u_int32_t *envv); }
+ uint32_t *argv, uint32_t *envv); }
493 AUE_FSTATAT STD { int freebsd32_fstatat(int fd, char *path, \
struct stat *buf, int flag); }
494 AUE_FUTIMESAT STD { int freebsd32_futimesat(int fd, char *path, \
@@ -959,15 +971,15 @@
512 AUE_SHMCTL NOSTD { int freebsd32_shmctl(int shmid, int cmd, \
struct shmid_ds32 *buf); }
513 AUE_LPATHCONF NOPROTO { int lpathconf(char *path, int name); }
-514 AUE_CAP_NEW NOPROTO { int cap_new(int fd, u_int64_t rights); }
-515 AUE_CAP_GETRIGHTS NOPROTO { int cap_getrights(int fd, \
- u_int64_t *rightsp); }
-516 AUE_CAP_ENTER NOPROTO { int cap_enter(void); }
+514 AUE_NULL OBSOL cap_new
+515 AUE_CAP_RIGHTS_GET NOPROTO { int __cap_rights_get(int version, \
+ int fd, cap_rights_t *rightsp); }
+516 AUE_CAP_ENTER STD { int freebsd32_cap_enter(void); }
517 AUE_CAP_GETMODE NOPROTO { int cap_getmode(u_int *modep); }
-518 AUE_PDFORK UNIMPL pdfork
-519 AUE_PDKILL UNIMPL pdkill
-520 AUE_PDGETPID UNIMPL pdgetpid
-521 AUE_PDWAIT UNIMPL pdwait
+518 AUE_PDFORK NOPROTO { int pdfork(int *fdp, int flags); }
+519 AUE_PDKILL NOPROTO { int pdkill(int fd, int signum); }
+520 AUE_PDGETPID NOPROTO { int pdgetpid(int fd, pid_t *pidp); }
+521 AUE_PDWAIT UNIMPL pdwait4
522 AUE_SELECT STD { int freebsd32_pselect(int nd, fd_set *in, \
fd_set *ou, fd_set *ex, \
const struct timespec32 *ts, \
@@ -1019,3 +1031,46 @@
struct wrusage32 *wrusage, \
siginfo_t *info); }
#endif
+533 AUE_CAP_RIGHTS_LIMIT NOPROTO { \
+ int cap_rights_limit(int fd, \
+ cap_rights_t *rightsp); }
+534 AUE_CAP_IOCTLS_LIMIT STD { \
+ int freebsd32_cap_ioctls_limit(int fd, \
+ const uint32_t *cmds, size_t ncmds); }
+535 AUE_CAP_IOCTLS_GET STD { \
+ ssize_t freebsd32_cap_ioctls_get(int fd, \
+ uint32_t *cmds, size_t maxcmds); }
+536 AUE_CAP_FCNTLS_LIMIT NOPROTO { int cap_fcntls_limit(int fd, \
+ uint32_t fcntlrights); }
+537 AUE_CAP_FCNTLS_GET NOPROTO { int cap_fcntls_get(int fd, \
+ uint32_t *fcntlrightsp); }
+538 AUE_BINDAT NOPROTO { int bindat(int fd, int s, caddr_t name, \
+ int namelen); }
+539 AUE_CONNECTAT NOPROTO { int connectat(int fd, int s, caddr_t name, \
+ int namelen); }
+540 AUE_CHFLAGSAT NOPROTO { int chflagsat(int fd, const char *path, \
+ u_long flags, int atflag); }
+541 AUE_ACCEPT NOPROTO { int accept4(int s, \
+ struct sockaddr * __restrict name, \
+ __socklen_t * __restrict anamelen, \
+ int flags); }
+542 AUE_PIPE NOPROTO { int pipe2(int *fildes, int flags); }
+543 AUE_NULL NOSTD { int freebsd32_aio_mlock( \
+ struct aiocb32 *aiocbp); }
+#ifdef PAD64_REQUIRED
+544 AUE_NULL STD { int freebsd32_procctl(int idtype, int pad, \
+ uint32_t id1, uint32_t id2, int com, \
+ void *data); }
+#else
+544 AUE_NULL STD { int freebsd32_procctl(int idtype, \
+ uint32_t id1, uint32_t id2, int com, \
+ void *data); }
+#endif
+545 AUE_POLL STD { int freebsd32_ppoll(struct pollfd *fds, \
+ u_int nfds, const struct timespec32 *ts, \
+ const sigset_t *set); }
+546 AUE_FUTIMES STD { int freebsd32_futimens(int fd, \
+ struct timespec *times); }
+547 AUE_FUTIMESAT STD { int freebsd32_utimensat(int fd, \
+ char *path, \
+ struct timespec *times, int flag); }
Property changes on: trunk/sys/compat/freebsd32/syscalls.master
___________________________________________________________________
Added: svn:keywords
## -0,0 +1 ##
+MidnightBSD=%H
\ No newline at end of property
Modified: trunk/sys/compat/ia32/ia32_genassym.c
===================================================================
--- trunk/sys/compat/ia32/ia32_genassym.c 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/ia32/ia32_genassym.c 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,5 +1,6 @@
+/* $MidnightBSD$ */
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: stable/10/sys/compat/ia32/ia32_genassym.c 220238 2011-04-01 11:16:29Z kib $");
#include "opt_compat.h"
Modified: trunk/sys/compat/ia32/ia32_reg.h
===================================================================
--- trunk/sys/compat/ia32/ia32_reg.h 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/ia32/ia32_reg.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
* All rights reserved.
Modified: trunk/sys/compat/ia32/ia32_signal.h
===================================================================
--- trunk/sys/compat/ia32/ia32_signal.h 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/ia32/ia32_signal.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 1999 Marcel Moolenaar
* Copyright (c) 2003 Peter Wemm
@@ -26,7 +27,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD$
+ * $FreeBSD: stable/10/sys/compat/ia32/ia32_signal.h 230426 2012-01-21 17:45:27Z kib $
*/
#ifndef _COMPAT_IA32_IA32_SIGNAL_H
Modified: trunk/sys/compat/ia32/ia32_sysvec.c
===================================================================
--- trunk/sys/compat/ia32/ia32_sysvec.c 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/ia32/ia32_sysvec.c 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2002 Doug Rabson
* Copyright (c) 2003 Peter Wemm
@@ -26,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: stable/10/sys/compat/ia32/ia32_sysvec.c 294136 2016-01-16 07:56:49Z dchagin $");
#include "opt_compat.h"
@@ -69,15 +70,6 @@
#include <compat/freebsd32/freebsd32_proto.h>
#include <compat/freebsd32/freebsd32_syscall.h>
#include <compat/ia32/ia32_signal.h>
-#ifdef __amd64__
-#include <machine/psl.h>
-#include <machine/segments.h>
-#include <machine/specialreg.h>
-#else
-#include <i386/include/psl.h>
-#include <i386/include/segments.h>
-#include <i386/include/specialreg.h>
-#endif
#include <machine/frame.h>
#include <machine/md_var.h>
#include <machine/pcb.h>
@@ -148,6 +140,8 @@
.sv_shared_page_base = FREEBSD32_SHAREDPAGE,
.sv_shared_page_len = PAGE_SIZE,
.sv_schedtail = NULL,
+ .sv_thread_detach = NULL,
+ .sv_trap = NULL,
};
INIT_SYSENTVEC(elf_ia32_sysvec, &ia32_freebsd_sysvec);
@@ -183,10 +177,43 @@
(sysinit_cfunc_t) elf32_insert_brand_entry,
&ia32_brand_oinfo);
+static Elf32_Brandinfo kia32_brand_info = {
+ .brand = ELFOSABI_FREEBSD,
+ .machine = EM_386,
+ .compat_3_brand = "FreeBSD",
+ .emul_path = NULL,
+ .interp_path = "/lib/ld.so.1",
+ .sysvec = &ia32_freebsd_sysvec,
+ .brand_note = &elf32_kfreebsd_brandnote,
+ .flags = BI_CAN_EXEC_DYN | BI_BRAND_NOTE_MANDATORY
+};
+
+SYSINIT(kia32, SI_SUB_EXEC, SI_ORDER_ANY,
+ (sysinit_cfunc_t) elf32_insert_brand_entry,
+ &kia32_brand_info);
+
void
-elf32_dump_thread(struct thread *td __unused, void *dst __unused,
- size_t *off __unused)
+elf32_dump_thread(struct thread *td, void *dst, size_t *off)
{
+#ifdef __amd64__
+ void *buf;
+ size_t len;
+
+ len = 0;
+ if (use_xsave) {
+ if (dst != NULL) {
+ fpugetregs(td);
+ len += elf32_populate_note(NT_X86_XSTATE,
+ get_pcb_user_save_td(td), dst,
+ cpu_max_ext_state_size, &buf);
+ *(uint64_t *)((char *)buf + X86_XSTATE_XCR0_OFFSET) =
+ xsave_mask;
+ } else
+ len += elf32_populate_note(NT_X86_XSTATE, NULL, NULL,
+ cpu_max_ext_state_size, NULL);
+ }
+ *off = len;
+#endif
}
void
Modified: trunk/sys/compat/ia32/ia32_util.h
===================================================================
--- trunk/sys/compat/ia32/ia32_util.h 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/ia32/ia32_util.h 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 1998-1999 Andrew Gallatin
* All rights reserved.
@@ -25,7 +26,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $FreeBSD$
+ * $FreeBSD: stable/10/sys/compat/ia32/ia32_util.h 238687 2012-07-22 13:41:45Z kib $
*/
#ifndef _COMPAT_IA32_IA32_UTIL_H
Modified: trunk/sys/compat/linprocfs/linprocfs.c
===================================================================
--- trunk/sys/compat/linprocfs/linprocfs.c 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/linprocfs/linprocfs.c 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,3 +1,4 @@
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2000 Dag-Erling Coïdan Smørgrav
* Copyright (c) 1999 Pierre Beyssac
@@ -39,13 +40,12 @@
* @(#)procfs_status.c 8.4 (Berkeley) 6/15/94
*/
-#include "opt_compat.h"
-
#include <sys/cdefs.h>
-__MBSDID("$MidnightBSD$");
+__FBSDID("$FreeBSD: stable/10/sys/compat/linprocfs/linprocfs.c 299221 2016-05-07 19:05:39Z dchagin $");
#include <sys/param.h>
#include <sys/queue.h>
+#include <sys/systm.h>
#include <sys/blist.h>
#include <sys/conf.h>
#include <sys/exec.h>
@@ -53,6 +53,7 @@
#include <sys/filedesc.h>
#include <sys/jail.h>
#include <sys/kernel.h>
+#include <sys/limits.h>
#include <sys/linker.h>
#include <sys/lock.h>
#include <sys/malloc.h>
@@ -63,11 +64,13 @@
#include <sys/proc.h>
#include <sys/ptrace.h>
#include <sys/resourcevar.h>
+#include <sys/resource.h>
#include <sys/sbuf.h>
#include <sys/sem.h>
#include <sys/smp.h>
#include <sys/socket.h>
#include <sys/sysctl.h>
+#include <sys/sysent.h>
#include <sys/systm.h>
#include <sys/time.h>
#include <sys/tty.h>
@@ -78,7 +81,7 @@
#include <sys/bus.h>
#include <net/if.h>
-#include <net/vnet.h>
+#include <net/if_types.h>
#include <vm/vm.h>
#include <vm/vm_extern.h>
@@ -98,17 +101,9 @@
#include <machine/md_var.h>
#endif /* __i386__ || __amd64__ */
-#ifdef COMPAT_FREEBSD32
-#include <compat/freebsd32/freebsd32_util.h>
-#endif
-
-#ifdef COMPAT_LINUX32 /* XXX */
-#include <machine/../linux32/linux.h>
-#else
-#include <machine/../linux/linux.h>
-#endif
-#include <compat/linux/linux_ioctl.h>
+#include <compat/linux/linux.h>
#include <compat/linux/linux_mib.h>
+#include <compat/linux/linux_misc.h>
#include <compat/linux/linux_util.h>
#include <fs/pseudofs/pseudofs.h>
#include <fs/procfs/procfs.h>
@@ -336,7 +331,7 @@
int error;
/* resolve symlinks etc. in the emulation tree prefix */
- NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, linux_emul_path, td);
+ NDINIT(&nd, LOOKUP, FOLLOW, UIO_SYSSPACE, linux_emul_path, td);
flep = NULL;
error = namei(&nd);
lep = linux_emul_path;
@@ -344,7 +339,6 @@
if (vn_fullpath(td, nd.ni_vp, &dlep, &flep) == 0)
lep = dlep;
vrele(nd.ni_vp);
- VFS_UNLOCK_GIANT(NDHASGIANT(&nd));
}
lep_len = strlen(lep);
@@ -392,14 +386,12 @@
sbuf_printf(sb, " 0 0\n");
}
mtx_unlock(&mountlist_mtx);
- if (flep != NULL)
- free(flep, M_TEMP);
+ free(flep, M_TEMP);
return (error);
}
/*
* Filler function for proc/partitions
- *
*/
static int
linprocfs_dopartitions(PFS_FILL_ARGS)
@@ -407,28 +399,9 @@
struct g_class *cp;
struct g_geom *gp;
struct g_provider *pp;
- struct nameidata nd;
- const char *lep;
- char *dlep, *flep;
- size_t lep_len;
- int error;
int major, minor;
- /* resolve symlinks etc. in the emulation tree prefix */
- NDINIT(&nd, LOOKUP, FOLLOW | MPSAFE, UIO_SYSSPACE, linux_emul_path, td);
- flep = NULL;
- error = namei(&nd);
- lep = linux_emul_path;
- if (error == 0) {
- if (vn_fullpath(td, nd.ni_vp, &dlep, &flep) == 0)
- lep = dlep;
- vrele(nd.ni_vp);
- VFS_UNLOCK_GIANT(NDHASGIANT(&nd));
- }
- lep_len = strlen(lep);
-
g_topology_lock();
- error = 0;
sbuf_printf(sb, "major minor #blocks name rio rmerge rsect "
"ruse wio wmerge wsect wuse running use aveq\n");
@@ -454,9 +427,7 @@
}
g_topology_unlock();
- if (flep != NULL)
- free(flep, M_TEMP);
- return (error);
+ return (0);
}
@@ -762,6 +733,7 @@
segsz_t lsize;
struct thread *td2;
struct sigacts *ps;
+ l_sigset_t siglist, sigignore, sigcatch;
int i;
PROC_LOCK(p);
@@ -850,30 +822,26 @@
/*
* Signal masks
- *
- * We support up to 128 signals, while Linux supports 32,
- * but we only define 32 (the same 32 as Linux, to boot), so
- * just show the lower 32 bits of each mask. XXX hack.
- *
- * NB: on certain platforms (Sparc at least) Linux actually
- * supports 64 signals, but this code is a long way from
- * running on anything but i386, so ignore that for now.
*/
PROC_LOCK(p);
- sbuf_printf(sb, "SigPnd:\t%08x\n", p->p_siglist.__bits[0]);
- /*
- * I can't seem to find out where the signal mask is in
- * relation to struct proc, so SigBlk is left unimplemented.
- */
- sbuf_printf(sb, "SigBlk:\t%08x\n", 0); /* XXX */
+ bsd_to_linux_sigset(&p->p_siglist, &siglist);
ps = p->p_sigacts;
mtx_lock(&ps->ps_mtx);
- sbuf_printf(sb, "SigIgn:\t%08x\n", ps->ps_sigignore.__bits[0]);
- sbuf_printf(sb, "SigCgt:\t%08x\n", ps->ps_sigcatch.__bits[0]);
+ bsd_to_linux_sigset(&ps->ps_sigignore, &sigignore);
+ bsd_to_linux_sigset(&ps->ps_sigcatch, &sigcatch);
mtx_unlock(&ps->ps_mtx);
PROC_UNLOCK(p);
+ sbuf_printf(sb, "SigPnd:\t%016jx\n", siglist.__mask);
/*
+ * XXX. SigBlk - target thread's signal mask, td_sigmask.
+ * To implement SigBlk pseudofs should support proc/tid dir entries.
+ */
+ sbuf_printf(sb, "SigBlk:\t%016x\n", 0);
+ sbuf_printf(sb, "SigIgn:\t%016jx\n", sigignore.__mask);
+ sbuf_printf(sb, "SigCgt:\t%016jx\n", sigcatch.__mask);
+
+ /*
* Linux also prints the capability masks, but we don't have
* capabilities yet, and when we do get them they're likely to
* be meaningless to Linux programs, so we lie. XXX
@@ -892,10 +860,20 @@
static int
linprocfs_doproccwd(PFS_FILL_ARGS)
{
+ struct filedesc *fdp;
+ struct vnode *vp;
char *fullpath = "unknown";
char *freepath = NULL;
- vn_fullpath(td, p->p_fd->fd_cdir, &fullpath, &freepath);
+ fdp = p->p_fd;
+ FILEDESC_SLOCK(fdp);
+ vp = fdp->fd_cdir;
+ if (vp != NULL)
+ VREF(vp);
+ FILEDESC_SUNLOCK(fdp);
+ vn_fullpath(td, vp, &fullpath, &freepath);
+ if (vp != NULL)
+ vrele(vp);
sbuf_printf(sb, "%s", fullpath);
if (freepath)
free(freepath, M_TEMP);
@@ -908,12 +886,20 @@
static int
linprocfs_doprocroot(PFS_FILL_ARGS)
{
- struct vnode *rvp;
+ struct filedesc *fdp;
+ struct vnode *vp;
char *fullpath = "unknown";
char *freepath = NULL;
- rvp = jailed(p->p_ucred) ? p->p_fd->fd_jdir : p->p_fd->fd_rdir;
- vn_fullpath(td, rvp, &fullpath, &freepath);
+ fdp = p->p_fd;
+ FILEDESC_SLOCK(fdp);
+ vp = jailed(p->p_ucred) ? fdp->fd_jdir : fdp->fd_rdir;
+ if (vp != NULL)
+ VREF(vp);
+ FILEDESC_SUNLOCK(fdp);
+ vn_fullpath(td, vp, &fullpath, &freepath);
+ if (vp != NULL)
+ vrele(vp);
sbuf_printf(sb, "%s", fullpath);
if (freepath)
free(freepath, M_TEMP);
@@ -965,34 +951,22 @@
static int
linprocfs_doprocenviron(PFS_FILL_ARGS)
{
- int ret;
- PROC_LOCK(p);
- if ((ret = p_candebug(td, p)) != 0) {
- PROC_UNLOCK(p);
- return (ret);
- }
-
/*
* Mimic linux behavior and pass only processes with usermode
* address space as valid. Return zero silently otherwize.
*/
- if (p->p_vmspace == &vmspace0) {
- PROC_UNLOCK(p);
+ if (p->p_vmspace == &vmspace0)
return (0);
- }
- if ((p->p_flag & P_SYSTEM) != 0) {
- PROC_UNLOCK(p);
- return (0);
- }
+ return (proc_getenvv(td, p, sb));
+}
- PROC_UNLOCK(p);
+static char l32_map_str[] = "%08lx-%08lx %s%s%s%s %08lx %02x:%02x %lu%s%s\n";
+static char l64_map_str[] = "%016lx-%016lx %s%s%s%s %08lx %02x:%02x %lu%s%s\n";
+static char vdso_str[] = " [vdso]";
+static char stack_str[] = " [stack]";
- ret = proc_getenvv(td, p, sb);
- return (ret);
-}
-
/*
* Filler function for proc/pid/maps
*/
@@ -1008,12 +982,12 @@
vm_prot_t e_prot;
unsigned int last_timestamp;
char *name = "", *freename = NULL;
+ const char *l_map_str;
ino_t ino;
int ref_count, shadow_count, flags;
int error;
struct vnode *vp;
struct vattr vat;
- int locked;
PROC_LOCK(p);
error = p_candebug(td, p);
@@ -1028,6 +1002,11 @@
vm = vmspace_acquire_ref(p);
if (vm == NULL)
return (ESRCH);
+
+ if (SV_CURPROC_FLAG(SV_LP64))
+ l_map_str = l64_map_str;
+ else
+ l_map_str = l32_map_str;
map = &vm->vm_map;
vm_map_lock_read(map);
for (entry = map->header.next; entry != &map->header;
@@ -1041,9 +1020,9 @@
e_end = entry->end;
obj = entry->object.vm_object;
for (lobj = tobj = obj; tobj; tobj = tobj->backing_object) {
- VM_OBJECT_LOCK(tobj);
+ VM_OBJECT_RLOCK(tobj);
if (lobj != obj)
- VM_OBJECT_UNLOCK(lobj);
+ VM_OBJECT_RUNLOCK(lobj);
lobj = tobj;
}
last_timestamp = map->timestamp;
@@ -1051,27 +1030,26 @@
ino = 0;
if (lobj) {
off = IDX_TO_OFF(lobj->size);
- if (lobj->type == OBJT_VNODE) {
- vp = lobj->handle;
- if (vp)
- vref(vp);
- }
- else
- vp = NULL;
+ vp = vm_object_vnode(lobj);
+ if (vp != NULL)
+ vref(vp);
if (lobj != obj)
- VM_OBJECT_UNLOCK(lobj);
+ VM_OBJECT_RUNLOCK(lobj);
flags = obj->flags;
ref_count = obj->ref_count;
shadow_count = obj->shadow_count;
- VM_OBJECT_UNLOCK(obj);
- if (vp) {
+ VM_OBJECT_RUNLOCK(obj);
+ if (vp != NULL) {
vn_fullpath(td, vp, &name, &freename);
- locked = VFS_LOCK_GIANT(vp->v_mount);
vn_lock(vp, LK_SHARED | LK_RETRY);
VOP_GETATTR(vp, &vat, td->td_ucred);
ino = vat.va_fileid;
vput(vp);
- VFS_UNLOCK_GIANT(locked);
+ } else if (SV_PROC_ABI(p) == SV_ABI_LINUX) {
+ if (e_start == p->p_sysent->sv_shared_page_base)
+ name = vdso_str;
+ if (e_end == p->p_sysent->sv_usrstack)
+ name = stack_str;
}
} else {
flags = 0;
@@ -1083,8 +1061,7 @@
* format:
* start, end, access, offset, major, minor, inode, name.
*/
- error = sbuf_printf(sb,
- "%08lx-%08lx %s%s%s%s %08lx %02x:%02x %lu%s%s\n",
+ error = sbuf_printf(sb, l_map_str,
(u_long)e_start, (u_long)e_end,
(e_prot & VM_PROT_READ)?"r":"-",
(e_prot & VM_PROT_WRITE)?"w":"-",
@@ -1121,6 +1098,35 @@
}
/*
+ * Criteria for interface name translation
+ */
+#define IFP_IS_ETH(ifp) (ifp->if_type == IFT_ETHER)
+
+static int
+linux_ifname(struct ifnet *ifp, char *buffer, size_t buflen)
+{
+ struct ifnet *ifscan;
+ int ethno;
+
+ IFNET_RLOCK_ASSERT();
+
+ /* Short-circuit non ethernet interfaces */
+ if (!IFP_IS_ETH(ifp))
+ return (strlcpy(buffer, ifp->if_xname, buflen));
+
+ /* Determine the (relative) unit number for ethernet interfaces */
+ ethno = 0;
+ TAILQ_FOREACH(ifscan, &V_ifnet, if_link) {
+ if (ifscan == ifp)
+ return (snprintf(buffer, buflen, "eth%d", ethno));
+ if (IFP_IS_ETH(ifscan))
+ ethno++;
+ }
+
+ return (0);
+}
+
+/*
* Filler function for proc/net/dev
*/
static int
@@ -1267,8 +1273,6 @@
return (0);
}
-extern struct cdevsw *cdevsw[];
-
/*
* Filler function for proc/devices
*/
@@ -1348,7 +1352,98 @@
return (0);
}
+/*
+ * Filler function for proc/pid/limits
+ */
+static const struct linux_rlimit_ident {
+ const char *desc;
+ const char *unit;
+ unsigned int rlim_id;
+} linux_rlimits_ident[] = {
+ { "Max cpu time", "seconds", RLIMIT_CPU },
+ { "Max file size", "bytes", RLIMIT_FSIZE },
+ { "Max data size", "bytes", RLIMIT_DATA },
+ { "Max stack size", "bytes", RLIMIT_STACK },
+ { "Max core file size", "bytes", RLIMIT_CORE },
+ { "Max resident set", "bytes", RLIMIT_RSS },
+ { "Max processes", "processes", RLIMIT_NPROC },
+ { "Max open files", "files", RLIMIT_NOFILE },
+ { "Max locked memory", "bytes", RLIMIT_MEMLOCK },
+ { "Max address space", "bytes", RLIMIT_AS },
+ { "Max file locks", "locks", LINUX_RLIMIT_LOCKS },
+ { "Max pending signals", "signals", LINUX_RLIMIT_SIGPENDING },
+ { "Max msgqueue size", "bytes", LINUX_RLIMIT_MSGQUEUE },
+ { "Max nice priority", "", LINUX_RLIMIT_NICE },
+ { "Max realtime priority", "", LINUX_RLIMIT_RTPRIO },
+ { "Max realtime timeout", "us", LINUX_RLIMIT_RTTIME },
+ { 0, 0, 0 }
+};
+static int
+linprocfs_doproclimits(PFS_FILL_ARGS)
+{
+ const struct linux_rlimit_ident *li;
+ struct plimit *limp;
+ struct rlimit rl;
+ ssize_t size;
+ int res, error;
+
+ error = 0;
+
+ PROC_LOCK(p);
+ limp = lim_hold(p->p_limit);
+ PROC_UNLOCK(p);
+ size = sizeof(res);
+ sbuf_printf(sb, "%-26s%-21s%-21s%-21s\n", "Limit", "Soft Limit",
+ "Hard Limit", "Units");
+ for (li = linux_rlimits_ident; li->desc != NULL; ++li) {
+ switch (li->rlim_id)
+ {
+ case LINUX_RLIMIT_LOCKS:
+ /* FALLTHROUGH */
+ case LINUX_RLIMIT_RTTIME:
+ rl.rlim_cur = RLIM_INFINITY;
+ break;
+ case LINUX_RLIMIT_SIGPENDING:
+ error = kernel_sysctlbyname(td,
+ "kern.sigqueue.max_pending_per_proc",
+ &res, &size, 0, 0, 0, 0);
+ if (error != 0)
+ goto out;
+ rl.rlim_cur = res;
+ rl.rlim_max = res;
+ break;
+ case LINUX_RLIMIT_MSGQUEUE:
+ error = kernel_sysctlbyname(td,
+ "kern.ipc.msgmnb", &res, &size, 0, 0, 0, 0);
+ if (error != 0)
+ goto out;
+ rl.rlim_cur = res;
+ rl.rlim_max = res;
+ break;
+ case LINUX_RLIMIT_NICE:
+ /* FALLTHROUGH */
+ case LINUX_RLIMIT_RTPRIO:
+ rl.rlim_cur = 0;
+ rl.rlim_max = 0;
+ break;
+ default:
+ rl = limp->pl_rlimit[li->rlim_id];
+ break;
+ }
+ if (rl.rlim_cur == RLIM_INFINITY)
+ sbuf_printf(sb, "%-26s%-21s%-21s%-10s\n",
+ li->desc, "unlimited", "unlimited", li->unit);
+ else
+ sbuf_printf(sb, "%-26s%-21llu%-21llu%-10s\n",
+ li->desc, (unsigned long long)rl.rlim_cur,
+ (unsigned long long)rl.rlim_max, li->unit);
+ }
+out:
+ lim_free(limp);
+ return (error);
+}
+
/*
* Filler function for proc/sys/kernel/random/uuid
*/
@@ -1363,7 +1458,53 @@
return(0);
}
+/*
+ * Filler function for proc/pid/auxv
+ */
+static int
+linprocfs_doauxv(PFS_FILL_ARGS)
+{
+ struct sbuf *asb;
+ off_t buflen, resid;
+ int error;
+ /*
+ * Mimic linux behavior and pass only processes with usermode
+ * address space as valid. Return zero silently otherwise.
+ */
+ if (p->p_vmspace == &vmspace0)
+ return (0);
+
+ if (uio->uio_resid == 0)
+ return (0);
+ if (uio->uio_offset < 0 || uio->uio_resid < 0)
+ return (EINVAL);
+
+ asb = sbuf_new_auto();
+ if (asb == NULL)
+ return (ENOMEM);
+ error = proc_getauxv(td, p, asb);
+ if (error == 0)
+ error = sbuf_finish(asb);
+
+ resid = sbuf_len(asb) - uio->uio_offset;
+ if (resid > uio->uio_resid)
+ buflen = uio->uio_resid;
+ else
+ buflen = resid;
+ if (buflen > IOSIZE_MAX)
+ return (EINVAL);
+ if (buflen > MAXPHYS)
+ buflen = MAXPHYS;
+ if (resid <= 0)
+ return (0);
+
+ if (error == 0)
+ error = uiomove(sbuf_data(asb) + uio->uio_offset, buflen, uio);
+ sbuf_delete(asb);
+ return (error);
+}
+
/*
* Constructor
*/
@@ -1421,7 +1562,7 @@
pfs_create_link(dir, "cwd", &linprocfs_doproccwd,
NULL, NULL, NULL, 0);
pfs_create_file(dir, "environ", &linprocfs_doprocenviron,
- NULL, NULL, NULL, PFS_RD);
+ NULL, &procfs_candebug, NULL, PFS_RD);
pfs_create_link(dir, "exe", &procfs_doprocfile,
NULL, &procfs_notsystem, NULL, 0);
pfs_create_file(dir, "maps", &linprocfs_doprocmaps,
@@ -1438,6 +1579,10 @@
NULL, NULL, NULL, PFS_RD);
pfs_create_link(dir, "fd", &linprocfs_dofdescfs,
NULL, NULL, NULL, 0);
+ pfs_create_file(dir, "auxv", &linprocfs_doauxv,
+ NULL, &procfs_candebug, NULL, PFS_RD|PFS_RAWRD);
+ pfs_create_file(dir, "limits", &linprocfs_doproclimits,
+ NULL, NULL, NULL, PFS_RD);
/* /proc/scsi/... */
dir = pfs_create_dir(root, "scsi", NULL, NULL, NULL, 0);
@@ -1482,8 +1627,12 @@
return (0);
}
-PSEUDOFS(linprocfs, 1, 0);
+PSEUDOFS(linprocfs, 1, PR_ALLOW_MOUNT_LINPROCFS);
+#if defined(__amd64__)
+MODULE_DEPEND(linprocfs, linux_common, 1, 1, 1);
+#else
MODULE_DEPEND(linprocfs, linux, 1, 1, 1);
+#endif
MODULE_DEPEND(linprocfs, procfs, 1, 1, 1);
MODULE_DEPEND(linprocfs, sysvmsg, 1, 1, 1);
MODULE_DEPEND(linprocfs, sysvsem, 1, 1, 1);
Modified: trunk/sys/compat/linsysfs/linsysfs.c
===================================================================
--- trunk/sys/compat/linsysfs/linsysfs.c 2018-05-30 20:41:36 UTC (rev 10147)
+++ trunk/sys/compat/linsysfs/linsysfs.c 2018-05-30 20:43:30 UTC (rev 10148)
@@ -1,4 +1,4 @@
-/* $MidnightBSD: src/sys/compat/linsysfs/linsysfs.c,v 1.2 2008/12/03 00:24:37 laffer1 Exp $ */
+/* $MidnightBSD$ */
/*-
* Copyright (c) 2006 IronPort Systems
* All rights reserved.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD$");
+__FBSDID("$FreeBSD: stable/10/sys/compat/linsysfs/linsysfs.c 295951 2016-02-24 02:34:11Z araujo $");
#include <sys/param.h>
#include <sys/queue.h>
@@ -62,12 +62,6 @@
#include <machine/bus.h>
-#include "opt_compat.h"
-#ifdef COMPAT_LINUX32 /* XXX */
-#include <machine/../linux32/linux.h>
-#else
-#include <machine/../linux/linux.h>
-#endif
#include <compat/linux/linux_ioctl.h>
#include <compat/linux/linux_mib.h>
#include <compat/linux/linux_util.h>
@@ -281,5 +275,9 @@
return (0);
}
-PSEUDOFS(linsysfs, 1, 0);
+PSEUDOFS(linsysfs, 1, PR_ALLOW_MOUNT_LINSYSFS);
+#if defined(__amd64__)
+MODULE_DEPEND(linsysfs, linux_common, 1, 1, 1);
+#else
MODULE_DEPEND(linsysfs, linux, 1, 1, 1);
+#endif
More information about the Midnightbsd-cvs
mailing list