summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/sys
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-08-07 12:12:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-09-21 10:29:36 +0200
commitde261e0404e1fe54544275fc57d5b982df4f42b4 (patch)
tree856cbdf23d6809b99c4d642d066bc45cd67c26e6 /freebsd/sys/sys
parentlibbsd.txt: Use rtems_bsd_ifconfig_lo0() (diff)
downloadrtems-libbsd-de261e0404e1fe54544275fc57d5b982df4f42b4.tar.bz2
Update to FreeBSD head 2017-06-01
Git mirror commit dfb26efac4ce9101dda240e94d9ab53f80a9e131. Update #3472.
Diffstat (limited to 'freebsd/sys/sys')
-rw-r--r--freebsd/sys/sys/ata.h2
-rw-r--r--freebsd/sys/sys/conf.h1
-rw-r--r--freebsd/sys/sys/interrupt.h6
-rw-r--r--freebsd/sys/sys/kobj.h6
-rw-r--r--freebsd/sys/sys/libkern.h8
-rw-r--r--freebsd/sys/sys/mbuf.h4
-rw-r--r--freebsd/sys/sys/mount.h35
-rw-r--r--freebsd/sys/sys/pcpu.h5
-rw-r--r--freebsd/sys/sys/proc.h9
-rw-r--r--freebsd/sys/sys/random.h6
-rw-r--r--freebsd/sys/sys/smp.h2
-rw-r--r--freebsd/sys/sys/sysproto.h279
-rw-r--r--freebsd/sys/sys/tty.h2
-rw-r--r--freebsd/sys/sys/user.h79
-rw-r--r--freebsd/sys/sys/vmmeter.h142
-rw-r--r--freebsd/sys/sys/vnode.h12
16 files changed, 372 insertions, 226 deletions
diff --git a/freebsd/sys/sys/ata.h b/freebsd/sys/sys/ata.h
index 9737487d..0ed78ec8 100644
--- a/freebsd/sys/sys/ata.h
+++ b/freebsd/sys/sys/ata.h
@@ -263,7 +263,7 @@ struct ata_params {
u_int16_t reserved170[6];
/*176*/ u_int8_t media_serial[60];
/*206*/ u_int16_t sct;
- u_int16_t reserved206[2];
+ u_int16_t reserved207[2];
/*209*/ u_int16_t lsalign;
/*210*/ u_int16_t wrv_sectors_m3_1;
u_int16_t wrv_sectors_m3_2;
diff --git a/freebsd/sys/sys/conf.h b/freebsd/sys/sys/conf.h
index d5ced5c0..a49b6d60 100644
--- a/freebsd/sys/sys/conf.h
+++ b/freebsd/sys/sys/conf.h
@@ -343,6 +343,7 @@ void devfs_free_cdp_inode(ino_t ino);
#define GID_GAMES 13
#define GID_VIDEO 44
#define GID_DIALER 68
+#define GID_NOGROUP 65533
#define GID_NOBODY 65534
typedef void (*dev_clone_fn)(void *arg, struct ucred *cred, char *name,
diff --git a/freebsd/sys/sys/interrupt.h b/freebsd/sys/sys/interrupt.h
index c320e5fc..44b769f2 100644
--- a/freebsd/sys/sys/interrupt.h
+++ b/freebsd/sys/sys/interrupt.h
@@ -162,6 +162,8 @@ int intr_event_add_handler(struct intr_event *ie, const char *name,
driver_filter_t filter, driver_intr_t handler, void *arg,
u_char pri, enum intr_type flags, void **cookiep);
int intr_event_bind(struct intr_event *ie, int cpu);
+int intr_event_bind_irqonly(struct intr_event *ie, int cpu);
+int intr_event_bind_ithread(struct intr_event *ie, int cpu);
int intr_event_create(struct intr_event **event, void *source,
int flags, int irq, void (*pre_ithread)(void *),
void (*post_ithread)(void *), void (*post_filter)(void *),
@@ -173,9 +175,9 @@ int intr_event_destroy(struct intr_event *ie);
void intr_event_execute_handlers(struct proc *p, struct intr_event *ie);
int intr_event_handle(struct intr_event *ie, struct trapframe *frame);
int intr_event_remove_handler(void *cookie);
-int intr_getaffinity(int irq, void *mask);
+int intr_getaffinity(int irq, int mode, void *mask);
void *intr_handler_source(void *cookie);
-int intr_setaffinity(int irq, void *mask);
+int intr_setaffinity(int irq, int mode, void *mask);
void _intr_drain(int irq); /* Linux compat only. */
int swi_add(struct intr_event **eventp, const char *name,
driver_intr_t handler, void *arg, int pri, enum intr_type flags,
diff --git a/freebsd/sys/sys/kobj.h b/freebsd/sys/sys/kobj.h
index 36d8d2a7..862e79f0 100644
--- a/freebsd/sys/sys/kobj.h
+++ b/freebsd/sys/sys/kobj.h
@@ -226,10 +226,12 @@ extern u_int kobj_lookup_misses;
kobj_method_t **_cep = \
&OPS->cache[_desc->id & (KOBJ_CACHE_SIZE-1)]; \
kobj_method_t *_ce = *_cep; \
- kobj_lookup_hits++; /* assume hit */ \
- if (_ce->desc != _desc) \
+ if (_ce->desc != _desc) { \
_ce = kobj_lookup_method(OPS->cls, \
_cep, _desc); \
+ kobj_lookup_misses++; \
+ } else \
+ kobj_lookup_hits++; \
_m = _ce->func; \
} while(0)
#else
diff --git a/freebsd/sys/sys/libkern.h b/freebsd/sys/sys/libkern.h
index b7c1d5de..ab47eeaa 100644
--- a/freebsd/sys/sys/libkern.h
+++ b/freebsd/sys/sys/libkern.h
@@ -123,11 +123,10 @@ extern int arc4rand_iniseed_state;
/* Prototypes for non-quad routines. */
struct malloc_type;
uint32_t arc4random(void);
+void arc4random_buf(void *, size_t);
#ifndef __rtems__
-void arc4rand(void *ptr, u_int len, int reseed);
+void arc4rand(void *, u_int, int);
#else /* __rtems__ */
-void arc4random_buf(void *, size_t);
-
static inline void
arc4rand(void *ptr, u_int len, int reseed)
{
@@ -277,6 +276,9 @@ calculate_crc32c(uint32_t crc32c, const unsigned char *buffer,
#if defined(__amd64__) || defined(__i386__)
uint32_t sse42_crc32c(uint32_t, const unsigned char *, unsigned);
#endif
+#if defined(__aarch64__)
+uint32_t armv8_crc32c(uint32_t, const unsigned char *, unsigned int);
+#endif
#endif
diff --git a/freebsd/sys/sys/mbuf.h b/freebsd/sys/sys/mbuf.h
index bd62c1cf..60670697 100644
--- a/freebsd/sys/sys/mbuf.h
+++ b/freebsd/sys/sys/mbuf.h
@@ -488,7 +488,7 @@ void sf_ext_free_nocache(void *, void *);
#define CSUM_L4_VALID 0x08000000 /* checksum is correct */
#define CSUM_L5_CALC 0x10000000 /* calculated layer 5 csum */
#define CSUM_L5_VALID 0x20000000 /* checksum is correct */
-#define CSUM_COALESED 0x40000000 /* contains merged segments */
+#define CSUM_COALESCED 0x40000000 /* contains merged segments */
/*
* CSUM flag description for use with printf(9) %b identifier.
@@ -499,7 +499,7 @@ void sf_ext_free_nocache(void *, void *);
"\12CSUM_IP6_UDP\13CSUM_IP6_TCP\14CSUM_IP6_SCTP\15CSUM_IP6_TSO" \
"\16CSUM_IP6_ISCSI" \
"\31CSUM_L3_CALC\32CSUM_L3_VALID\33CSUM_L4_CALC\34CSUM_L4_VALID" \
- "\35CSUM_L5_CALC\36CSUM_L5_VALID\37CSUM_COALESED"
+ "\35CSUM_L5_CALC\36CSUM_L5_VALID\37CSUM_COALESCED"
/* CSUM flags compatibility mappings. */
#define CSUM_IP_CHECKED CSUM_L3_CALC
diff --git a/freebsd/sys/sys/mount.h b/freebsd/sys/sys/mount.h
index 9800d97d..152b2586 100644
--- a/freebsd/sys/sys/mount.h
+++ b/freebsd/sys/sys/mount.h
@@ -65,8 +65,8 @@ struct fid {
* filesystem statistics
*/
#define MFSNAMELEN 16 /* length of type name including null */
-#define MNAMELEN 88 /* size of on/from name bufs */
-#define STATFS_VERSION 0x20030518 /* current version number */
+#define MNAMELEN 1024 /* size of on/from name bufs */
+#define STATFS_VERSION 0x20140518 /* current version number */
struct statfs {
uint32_t f_version; /* structure version number */
uint32_t f_type; /* type of filesystem */
@@ -92,6 +92,34 @@ struct statfs {
char f_mntonname[MNAMELEN]; /* directory on which mounted */
};
+#if defined(_WANT_FREEBSD11_STATFS) || defined(_KERNEL)
+#define FREEBSD11_STATFS_VERSION 0x20030518 /* current version number */
+struct freebsd11_statfs {
+ uint32_t f_version; /* structure version number */
+ uint32_t f_type; /* type of filesystem */
+ uint64_t f_flags; /* copy of mount exported flags */
+ uint64_t f_bsize; /* filesystem fragment size */
+ uint64_t f_iosize; /* optimal transfer block size */
+ uint64_t f_blocks; /* total data blocks in filesystem */
+ uint64_t f_bfree; /* free blocks in filesystem */
+ int64_t f_bavail; /* free blocks avail to non-superuser */
+ uint64_t f_files; /* total file nodes in filesystem */
+ int64_t f_ffree; /* free nodes avail to non-superuser */
+ uint64_t f_syncwrites; /* count of sync writes since mount */
+ uint64_t f_asyncwrites; /* count of async writes since mount */
+ uint64_t f_syncreads; /* count of sync reads since mount */
+ uint64_t f_asyncreads; /* count of async reads since mount */
+ uint64_t f_spare[10]; /* unused spare */
+ uint32_t f_namemax; /* maximum filename length */
+ uid_t f_owner; /* user that mounted the filesystem */
+ fsid_t f_fsid; /* filesystem id */
+ char f_charspare[80]; /* spare string space */
+ char f_fstypename[16]; /* filesystem type name */
+ char f_mntfromname[88]; /* mounted filesystem */
+ char f_mntonname[88]; /* directory on which mounted */
+};
+#endif /* _WANT_FREEBSD11_STATFS || _KERNEL */
+
#ifdef _KERNEL
#define OMFSNAMELEN 16 /* length of fs type name, including null */
#define OMNAMELEN (88 - 2 * sizeof(long)) /* size of on/from name bufs */
@@ -286,6 +314,7 @@ void __mnt_vnode_markerfree_active(struct vnode **mvp, struct mount *);
#define MNT_ROOTFS 0x0000000000004000ULL /* identifies the root fs */
#define MNT_USER 0x0000000000008000ULL /* mounted by a user */
#define MNT_IGNORE 0x0000000000800000ULL /* do not show entry in df */
+#define MNT_VERIFIED 0x0000000400000000ULL /* filesystem is verified */
/*
* Mask of flags that are visible to statfs().
@@ -301,7 +330,7 @@ void __mnt_vnode_markerfree_active(struct vnode **mvp, struct mount *);
MNT_NOCLUSTERW | MNT_SUIDDIR | MNT_SOFTDEP | \
MNT_IGNORE | MNT_EXPUBLIC | MNT_NOSYMFOLLOW | \
MNT_GJOURNAL | MNT_MULTILABEL | MNT_ACLS | \
- MNT_NFS4ACLS | MNT_AUTOMOUNTED)
+ MNT_NFS4ACLS | MNT_AUTOMOUNTED | MNT_VERIFIED)
/* Mask of flags that can be updated. */
#define MNT_UPDATEMASK (MNT_NOSUID | MNT_NOEXEC | \
diff --git a/freebsd/sys/sys/pcpu.h b/freebsd/sys/sys/pcpu.h
index 8e246004..4430cc87 100644
--- a/freebsd/sys/sys/pcpu.h
+++ b/freebsd/sys/sys/pcpu.h
@@ -43,7 +43,6 @@
#include <sys/_sx.h>
#include <sys/queue.h>
#include <sys/_rmlock.h>
-#include <sys/vmmeter.h>
#include <rtems/bsd/sys/resource.h>
#include <machine/pcpu.h>
@@ -163,9 +162,6 @@ struct pcpu {
u_int pc_cpuid; /* This cpu number */
STAILQ_ENTRY(pcpu) pc_allcpu;
struct lock_list_entry *pc_spinlocks;
-#ifndef __rtems__
- struct vmmeter pc_cnt; /* VM stats counters */
-#endif
long pc_cp_time[CPUSTATES]; /* statclock ticks */
struct device *pc_device;
void *pc_netisr; /* netisr SWI cookie */
@@ -173,6 +169,7 @@ struct pcpu {
int pc_domain; /* Memory domain. */
struct rm_queue pc_rm_queue; /* rmlock list of trackers */
uintptr_t pc_dynamic; /* Dynamic per-cpu data area */
+ uint64_t pc_early_dummy_counter; /* Startup time counter(9) */
/*
* Keep MD fields last, so that CPU-specific variations on a
diff --git a/freebsd/sys/sys/proc.h b/freebsd/sys/sys/proc.h
index ea2a8abf..0644d68b 100644
--- a/freebsd/sys/sys/proc.h
+++ b/freebsd/sys/sys/proc.h
@@ -669,13 +669,13 @@ struct proc {
pid_t p_reapsubtree; /* (e) Pid of the direct child of the
reaper which spawned
our subtree. */
- u_int p_xexit; /* (c) Exit code. */
- u_int p_xsig; /* (c) Stop/kill sig. */
uint16_t p_elf_machine; /* (x) ELF machine type */
uint64_t p_elf_flags; /* (x) ELF flags */
-
/* End area that is copied on creation. */
-#define p_endcopy p_elf_flags
+#define p_endcopy p_xexit
+
+ u_int p_xexit; /* (c) Exit code. */
+ u_int p_xsig; /* (c) Stop/kill sig. */
struct pgrp *p_pgrp; /* (c + e) Pointer to process group. */
struct knlist *p_klist; /* (c) Knotes attached to this proc. */
int p_numthreads; /* (c) Number of threads. */
@@ -1044,6 +1044,7 @@ int cr_canseesocket(struct ucred *cred, struct socket *so);
#endif /* __rtems__ */
int cr_canseeothergids(struct ucred *u1, struct ucred *u2);
int cr_canseeotheruids(struct ucred *u1, struct ucred *u2);
+int cr_canseejailproc(struct ucred *u1, struct ucred *u2);
int cr_cansignal(struct ucred *cred, struct proc *proc, int signum);
int enterpgrp(struct proc *p, pid_t pgid, struct pgrp *pgrp,
struct session *sess);
diff --git a/freebsd/sys/sys/random.h b/freebsd/sys/sys/random.h
index 996ca5c1..770a2f76 100644
--- a/freebsd/sys/sys/random.h
+++ b/freebsd/sys/sys/random.h
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2000-2015 Mark R. V. Murray
+ * Copyright (c) 2000-2015, 2017 Mark R. V. Murray
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -106,6 +106,10 @@ enum random_entropy_source {
#define RANDOM_HARVEST_EVERYTHING_MASK ((1 << (RANDOM_ENVIRONMENTAL_END + 1)) - 1)
+#define RANDOM_LEGACY_BOOT_ENTROPY_MODULE "/boot/entropy"
+#define RANDOM_CACHED_BOOT_ENTROPY_MODULE "boot_entropy_cache"
+#define RANDOM_CACHED_SKIP_START 256
+
#if defined(DEV_RANDOM)
void random_harvest_queue(const void *, u_int, u_int, enum random_entropy_source);
void random_harvest_fast(const void *, u_int, u_int, enum random_entropy_source);
diff --git a/freebsd/sys/sys/smp.h b/freebsd/sys/sys/smp.h
index d98b7ecf..9101bd76 100644
--- a/freebsd/sys/sys/smp.h
+++ b/freebsd/sys/sys/smp.h
@@ -251,7 +251,7 @@ extern struct mtx smp_ipi_mtx;
int quiesce_all_cpus(const char *, int);
int quiesce_cpus(cpuset_t, const char *, int);
-void smp_no_rendevous_barrier(void *);
+void smp_no_rendezvous_barrier(void *);
void smp_rendezvous(void (*)(void *),
void (*)(void *),
void (*)(void *),
diff --git a/freebsd/sys/sys/sysproto.h b/freebsd/sys/sys/sysproto.h
index e73e37dd..151b380b 100644
--- a/freebsd/sys/sys/sysproto.h
+++ b/freebsd/sys/sys/sysproto.h
@@ -80,11 +80,6 @@ struct chdir_args {
struct fchdir_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
};
-struct mknod_args {
- char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
- char mode_l_[PADL_(int)]; int mode; char mode_r_[PADR_(int)];
- char dev_l_[PADL_(int)]; int dev; char dev_r_[PADR_(int)];
-};
struct chmod_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char mode_l_[PADL_(int)]; int mode; char mode_r_[PADR_(int)];
@@ -583,18 +578,6 @@ struct setegid_args {
struct seteuid_args {
char euid_l_[PADL_(uid_t)]; uid_t euid; char euid_r_[PADR_(uid_t)];
};
-struct stat_args {
- char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
- char ub_l_[PADL_(struct stat *)]; struct stat * ub; char ub_r_[PADR_(struct stat *)];
-};
-struct fstat_args {
- char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char sb_l_[PADL_(struct stat *)]; struct stat * sb; char sb_r_[PADR_(struct stat *)];
-};
-struct lstat_args {
- char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
- char ub_l_[PADL_(struct stat *)]; struct stat * ub; char ub_r_[PADR_(struct stat *)];
-};
struct pathconf_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char name_l_[PADL_(int)]; int name; char name_r_[PADR_(int)];
@@ -611,12 +594,6 @@ struct __setrlimit_args {
char which_l_[PADL_(u_int)]; u_int which; char which_r_[PADR_(u_int)];
char rlp_l_[PADL_(struct rlimit *)]; struct rlimit * rlp; char rlp_r_[PADR_(struct rlimit *)];
};
-struct getdirentries_args {
- char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
- char count_l_[PADL_(u_int)]; u_int count; char count_r_[PADR_(u_int)];
- char basep_l_[PADL_(long *)]; long * basep; char basep_r_[PADR_(long *)];
-};
struct sysctl_args {
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)];
@@ -778,11 +755,6 @@ struct lio_listio_args {
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 *)];
};
-struct getdents_args {
- char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
- char count_l_[PADL_(size_t)]; size_t count; char count_r_[PADR_(size_t)];
-};
struct lchmod_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char mode_l_[PADL_(mode_t)]; mode_t mode; char mode_r_[PADR_(mode_t)];
@@ -791,18 +763,6 @@ struct lutimes_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char tptr_l_[PADL_(struct timeval *)]; struct timeval * tptr; char tptr_r_[PADR_(struct timeval *)];
};
-struct nstat_args {
- char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
- char ub_l_[PADL_(struct nstat *)]; struct nstat * ub; char ub_r_[PADR_(struct nstat *)];
-};
-struct nfstat_args {
- char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char sb_l_[PADL_(struct nstat *)]; struct nstat * sb; char sb_r_[PADR_(struct nstat *)];
-};
-struct nlstat_args {
- char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
- char ub_l_[PADL_(struct nstat *)]; struct nstat * ub; char ub_r_[PADR_(struct nstat *)];
-};
struct preadv_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char iovp_l_[PADL_(struct iovec *)]; struct iovec * iovp; char iovp_r_[PADR_(struct iovec *)];
@@ -819,10 +779,6 @@ struct fhopen_args {
char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
char flags_l_[PADL_(int)]; int flags; char flags_r_[PADR_(int)];
};
-struct fhstat_args {
- char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
- char sb_l_[PADL_(struct stat *)]; struct stat * sb; char sb_r_[PADR_(struct stat *)];
-};
struct modnext_args {
char modid_l_[PADL_(int)]; int modid; char modid_r_[PADR_(int)];
};
@@ -894,7 +850,7 @@ struct munlockall_args {
};
struct __getcwd_args {
char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
- char buflen_l_[PADL_(u_int)]; u_int buflen; char buflen_r_[PADR_(u_int)];
+ char buflen_l_[PADL_(size_t)]; size_t buflen; char buflen_r_[PADR_(size_t)];
};
struct sched_setparam_args {
char pid_l_[PADL_(pid_t)]; pid_t pid; char pid_r_[PADR_(pid_t)];
@@ -1149,23 +1105,6 @@ struct mac_syscall_args {
char call_l_[PADL_(int)]; int call; char call_r_[PADR_(int)];
char arg_l_[PADL_(void *)]; void * arg; char arg_r_[PADR_(void *)];
};
-struct getfsstat_args {
- char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)];
- char bufsize_l_[PADL_(long)]; long bufsize; char bufsize_r_[PADR_(long)];
- char mode_l_[PADL_(int)]; int mode; char mode_r_[PADR_(int)];
-};
-struct statfs_args {
- char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
- char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)];
-};
-struct fstatfs_args {
- char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
- char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)];
-};
-struct fhstatfs_args {
- char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
- char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)];
-};
struct ksem_close_args {
char id_l_[PADL_(semid_t)]; semid_t id; char id_r_[PADR_(semid_t)];
};
@@ -1557,12 +1496,6 @@ struct fexecve_args {
char argv_l_[PADL_(char **)]; char ** argv; char argv_r_[PADR_(char **)];
char envv_l_[PADL_(char **)]; char ** envv; char envv_r_[PADR_(char **)];
};
-struct fstatat_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 buf_l_[PADL_(struct stat *)]; struct stat * buf; char buf_r_[PADR_(struct stat *)];
- char flag_l_[PADL_(int)]; int flag; char flag_r_[PADR_(int)];
-};
struct futimesat_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 *)];
@@ -1585,12 +1518,6 @@ struct mkfifoat_args {
char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
char mode_l_[PADL_(mode_t)]; mode_t mode; char mode_r_[PADR_(mode_t)];
};
-struct mknodat_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 mode_l_[PADL_(mode_t)]; mode_t mode; char mode_r_[PADR_(mode_t)];
- char dev_l_[PADL_(dev_t)]; dev_t dev; char dev_r_[PADR_(dev_t)];
-};
struct openat_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 *)];
@@ -1836,6 +1763,49 @@ struct numa_setaffinity_args {
struct fdatasync_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
};
+struct fstat_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char sb_l_[PADL_(struct stat *)]; struct stat * sb; char sb_r_[PADR_(struct stat *)];
+};
+struct fstatat_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 buf_l_[PADL_(struct stat *)]; struct stat * buf; char buf_r_[PADR_(struct stat *)];
+ char flag_l_[PADL_(int)]; int flag; char flag_r_[PADR_(int)];
+};
+struct fhstat_args {
+ char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
+ char sb_l_[PADL_(struct stat *)]; struct stat * sb; char sb_r_[PADR_(struct stat *)];
+};
+struct getdirentries_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
+ char count_l_[PADL_(size_t)]; size_t count; char count_r_[PADR_(size_t)];
+ char basep_l_[PADL_(off_t *)]; off_t * basep; char basep_r_[PADR_(off_t *)];
+};
+struct statfs_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)];
+};
+struct fstatfs_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)];
+};
+struct getfsstat_args {
+ char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)];
+ char bufsize_l_[PADL_(long)]; long bufsize; char bufsize_r_[PADR_(long)];
+ char mode_l_[PADL_(int)]; int mode; char mode_r_[PADR_(int)];
+};
+struct fhstatfs_args {
+ char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
+ char buf_l_[PADL_(struct statfs *)]; struct statfs * buf; char buf_r_[PADR_(struct statfs *)];
+};
+struct mknodat_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 mode_l_[PADL_(mode_t)]; mode_t mode; char mode_r_[PADR_(mode_t)];
+ char dev_l_[PADL_(dev_t)]; dev_t dev; char dev_r_[PADR_(dev_t)];
+};
int nosys(struct thread *, struct nosys_args *);
void sys_sys_exit(struct thread *, struct sys_exit_args *);
int sys_fork(struct thread *, struct fork_args *);
@@ -1848,7 +1818,6 @@ int sys_link(struct thread *, struct link_args *);
int sys_unlink(struct thread *, struct unlink_args *);
int sys_chdir(struct thread *, struct chdir_args *);
int sys_fchdir(struct thread *, struct fchdir_args *);
-int sys_mknod(struct thread *, struct mknod_args *);
int sys_chmod(struct thread *, struct chmod_args *);
int sys_chown(struct thread *, struct chown_args *);
int sys_obreak(struct thread *, struct obreak_args *);
@@ -1952,14 +1921,10 @@ int sys_ntp_adjtime(struct thread *, struct ntp_adjtime_args *);
int sys_setgid(struct thread *, struct setgid_args *);
int sys_setegid(struct thread *, struct setegid_args *);
int sys_seteuid(struct thread *, struct seteuid_args *);
-int sys_stat(struct thread *, struct stat_args *);
-int sys_fstat(struct thread *, struct fstat_args *);
-int sys_lstat(struct thread *, struct lstat_args *);
int sys_pathconf(struct thread *, struct pathconf_args *);
int sys_fpathconf(struct thread *, struct fpathconf_args *);
int sys_getrlimit(struct thread *, struct __getrlimit_args *);
int sys_setrlimit(struct thread *, struct __setrlimit_args *);
-int sys_getdirentries(struct thread *, struct getdirentries_args *);
int sys___sysctl(struct thread *, struct sysctl_args *);
int sys_mlock(struct thread *, struct mlock_args *);
int sys_munlock(struct thread *, struct munlock_args *);
@@ -1997,16 +1962,11 @@ int sys_lchown(struct thread *, struct lchown_args *);
int sys_aio_read(struct thread *, struct aio_read_args *);
int sys_aio_write(struct thread *, struct aio_write_args *);
int sys_lio_listio(struct thread *, struct lio_listio_args *);
-int sys_getdents(struct thread *, struct getdents_args *);
int sys_lchmod(struct thread *, struct lchmod_args *);
int sys_lutimes(struct thread *, struct lutimes_args *);
-int sys_nstat(struct thread *, struct nstat_args *);
-int sys_nfstat(struct thread *, struct nfstat_args *);
-int sys_nlstat(struct thread *, struct nlstat_args *);
int sys_preadv(struct thread *, struct preadv_args *);
int sys_pwritev(struct thread *, struct pwritev_args *);
int sys_fhopen(struct thread *, struct fhopen_args *);
-int sys_fhstat(struct thread *, struct fhstat_args *);
int sys_modnext(struct thread *, struct modnext_args *);
int sys_modstat(struct thread *, struct modstat_args *);
int sys_modfnext(struct thread *, struct modfnext_args *);
@@ -2080,10 +2040,6 @@ int sys_lchflags(struct thread *, struct lchflags_args *);
int sys_uuidgen(struct thread *, struct uuidgen_args *);
int sys_sendfile(struct thread *, struct sendfile_args *);
int sys_mac_syscall(struct thread *, struct mac_syscall_args *);
-int sys_getfsstat(struct thread *, struct getfsstat_args *);
-int sys_statfs(struct thread *, struct statfs_args *);
-int sys_fstatfs(struct thread *, struct fstatfs_args *);
-int sys_fhstatfs(struct thread *, struct fhstatfs_args *);
int sys_ksem_close(struct thread *, struct ksem_close_args *);
int sys_ksem_post(struct thread *, struct ksem_post_args *);
int sys_ksem_wait(struct thread *, struct ksem_wait_args *);
@@ -2167,12 +2123,10 @@ int sys_faccessat(struct thread *, struct faccessat_args *);
int sys_fchmodat(struct thread *, struct fchmodat_args *);
int sys_fchownat(struct thread *, struct fchownat_args *);
int sys_fexecve(struct thread *, struct fexecve_args *);
-int sys_fstatat(struct thread *, struct fstatat_args *);
int sys_futimesat(struct thread *, struct futimesat_args *);
int sys_linkat(struct thread *, struct linkat_args *);
int sys_mkdirat(struct thread *, struct mkdirat_args *);
int sys_mkfifoat(struct thread *, struct mkfifoat_args *);
-int sys_mknodat(struct thread *, struct mknodat_args *);
int sys_openat(struct thread *, struct openat_args *);
int sys_readlinkat(struct thread *, struct readlinkat_args *);
int sys_renameat(struct thread *, struct renameat_args *);
@@ -2223,6 +2177,15 @@ int sys_utimensat(struct thread *, struct utimensat_args *);
int sys_numa_getaffinity(struct thread *, struct numa_getaffinity_args *);
int sys_numa_setaffinity(struct thread *, struct numa_setaffinity_args *);
int sys_fdatasync(struct thread *, struct fdatasync_args *);
+int sys_fstat(struct thread *, struct fstat_args *);
+int sys_fstatat(struct thread *, struct fstatat_args *);
+int sys_fhstat(struct thread *, struct fhstat_args *);
+int sys_getdirentries(struct thread *, struct getdirentries_args *);
+int sys_statfs(struct thread *, struct statfs_args *);
+int sys_fstatfs(struct thread *, struct fstatfs_args *);
+int sys_getfsstat(struct thread *, struct getfsstat_args *);
+int sys_fhstatfs(struct thread *, struct fhstatfs_args *);
+int sys_mknodat(struct thread *, struct mknodat_args *);
#ifdef COMPAT_43
@@ -2554,6 +2517,101 @@ int freebsd10_pipe(struct thread *, struct freebsd10_pipe_args *);
#endif /* COMPAT_FREEBSD10 */
+
+#ifdef COMPAT_FREEBSD11
+
+struct freebsd11_mknod_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char mode_l_[PADL_(int)]; int mode; char mode_r_[PADR_(int)];
+ char dev_l_[PADL_(int)]; int dev; char dev_r_[PADR_(int)];
+};
+struct freebsd11_stat_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char ub_l_[PADL_(struct freebsd11_stat *)]; struct freebsd11_stat * ub; char ub_r_[PADR_(struct freebsd11_stat *)];
+};
+struct freebsd11_fstat_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char sb_l_[PADL_(struct freebsd11_stat *)]; struct freebsd11_stat * sb; char sb_r_[PADR_(struct freebsd11_stat *)];
+};
+struct freebsd11_lstat_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char ub_l_[PADL_(struct freebsd11_stat *)]; struct freebsd11_stat * ub; char ub_r_[PADR_(struct freebsd11_stat *)];
+};
+struct freebsd11_getdirentries_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
+ char count_l_[PADL_(u_int)]; u_int count; char count_r_[PADR_(u_int)];
+ char basep_l_[PADL_(long *)]; long * basep; char basep_r_[PADR_(long *)];
+};
+struct freebsd11_getdents_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
+ char count_l_[PADL_(size_t)]; size_t count; char count_r_[PADR_(size_t)];
+};
+struct freebsd11_nstat_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char ub_l_[PADL_(struct nstat *)]; struct nstat * ub; char ub_r_[PADR_(struct nstat *)];
+};
+struct freebsd11_nfstat_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char sb_l_[PADL_(struct nstat *)]; struct nstat * sb; char sb_r_[PADR_(struct nstat *)];
+};
+struct freebsd11_nlstat_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char ub_l_[PADL_(struct nstat *)]; struct nstat * ub; char ub_r_[PADR_(struct nstat *)];
+};
+struct freebsd11_fhstat_args {
+ char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
+ char sb_l_[PADL_(struct freebsd11_stat *)]; struct freebsd11_stat * sb; char sb_r_[PADR_(struct freebsd11_stat *)];
+};
+struct freebsd11_getfsstat_args {
+ char buf_l_[PADL_(struct freebsd11_statfs *)]; struct freebsd11_statfs * buf; char buf_r_[PADR_(struct freebsd11_statfs *)];
+ char bufsize_l_[PADL_(long)]; long bufsize; char bufsize_r_[PADR_(long)];
+ char mode_l_[PADL_(int)]; int mode; char mode_r_[PADR_(int)];
+};
+struct freebsd11_statfs_args {
+ char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
+ char buf_l_[PADL_(struct freebsd11_statfs *)]; struct freebsd11_statfs * buf; char buf_r_[PADR_(struct freebsd11_statfs *)];
+};
+struct freebsd11_fstatfs_args {
+ char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
+ char buf_l_[PADL_(struct freebsd11_statfs *)]; struct freebsd11_statfs * buf; char buf_r_[PADR_(struct freebsd11_statfs *)];
+};
+struct freebsd11_fhstatfs_args {
+ char u_fhp_l_[PADL_(const struct fhandle *)]; const struct fhandle * u_fhp; char u_fhp_r_[PADR_(const struct fhandle *)];
+ char buf_l_[PADL_(struct freebsd11_statfs *)]; struct freebsd11_statfs * buf; char buf_r_[PADR_(struct freebsd11_statfs *)];
+};
+struct freebsd11_fstatat_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 buf_l_[PADL_(struct freebsd11_stat *)]; struct freebsd11_stat * buf; char buf_r_[PADR_(struct freebsd11_stat *)];
+ char flag_l_[PADL_(int)]; int flag; char flag_r_[PADR_(int)];
+};
+struct freebsd11_mknodat_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 mode_l_[PADL_(mode_t)]; mode_t mode; char mode_r_[PADR_(mode_t)];
+ char dev_l_[PADL_(uint32_t)]; uint32_t dev; char dev_r_[PADR_(uint32_t)];
+};
+int freebsd11_mknod(struct thread *, struct freebsd11_mknod_args *);
+int freebsd11_stat(struct thread *, struct freebsd11_stat_args *);
+int freebsd11_fstat(struct thread *, struct freebsd11_fstat_args *);
+int freebsd11_lstat(struct thread *, struct freebsd11_lstat_args *);
+int freebsd11_getdirentries(struct thread *, struct freebsd11_getdirentries_args *);
+int freebsd11_getdents(struct thread *, struct freebsd11_getdents_args *);
+int freebsd11_nstat(struct thread *, struct freebsd11_nstat_args *);
+int freebsd11_nfstat(struct thread *, struct freebsd11_nfstat_args *);
+int freebsd11_nlstat(struct thread *, struct freebsd11_nlstat_args *);
+int freebsd11_fhstat(struct thread *, struct freebsd11_fhstat_args *);
+int freebsd11_getfsstat(struct thread *, struct freebsd11_getfsstat_args *);
+int freebsd11_statfs(struct thread *, struct freebsd11_statfs_args *);
+int freebsd11_fstatfs(struct thread *, struct freebsd11_fstatfs_args *);
+int freebsd11_fhstatfs(struct thread *, struct freebsd11_fhstatfs_args *);
+int freebsd11_fstatat(struct thread *, struct freebsd11_fstatat_args *);
+int freebsd11_mknodat(struct thread *, struct freebsd11_mknodat_args *);
+
+#endif /* COMPAT_FREEBSD11 */
+
#define SYS_AUE_syscall AUE_NULL
#define SYS_AUE_exit AUE_EXIT
#define SYS_AUE_fork AUE_FORK
@@ -2567,7 +2625,7 @@ int freebsd10_pipe(struct thread *, struct freebsd10_pipe_args *);
#define SYS_AUE_unlink AUE_UNLINK
#define SYS_AUE_chdir AUE_CHDIR
#define SYS_AUE_fchdir AUE_FCHDIR
-#define SYS_AUE_mknod AUE_MKNOD
+#define SYS_AUE_freebsd11_mknod AUE_MKNOD
#define SYS_AUE_chmod AUE_CHMOD
#define SYS_AUE_chown AUE_CHOWN
#define SYS_AUE_break AUE_NULL
@@ -2716,14 +2774,14 @@ int freebsd10_pipe(struct thread *, struct freebsd10_pipe_args *);
#define SYS_AUE_setgid AUE_SETGID
#define SYS_AUE_setegid AUE_SETEGID
#define SYS_AUE_seteuid AUE_SETEUID
-#define SYS_AUE_stat AUE_STAT
-#define SYS_AUE_fstat AUE_FSTAT
-#define SYS_AUE_lstat AUE_LSTAT
+#define SYS_AUE_freebsd11_stat AUE_STAT
+#define SYS_AUE_freebsd11_fstat AUE_FSTAT
+#define SYS_AUE_freebsd11_lstat AUE_LSTAT
#define SYS_AUE_pathconf AUE_PATHCONF
#define SYS_AUE_fpathconf AUE_FPATHCONF
#define SYS_AUE_getrlimit AUE_GETRLIMIT
#define SYS_AUE_setrlimit AUE_SETRLIMIT
-#define SYS_AUE_getdirentries AUE_GETDIRENTRIES
+#define SYS_AUE_freebsd11_getdirentries AUE_GETDIRENTRIES
#define SYS_AUE_freebsd6_mmap AUE_MMAP
#define SYS_AUE_freebsd6_lseek AUE_LSEEK
#define SYS_AUE_freebsd6_truncate AUE_TRUNCATE
@@ -2768,17 +2826,17 @@ int freebsd10_pipe(struct thread *, struct freebsd10_pipe_args *);
#define SYS_AUE_aio_read AUE_AIO_READ
#define SYS_AUE_aio_write AUE_AIO_WRITE
#define SYS_AUE_lio_listio AUE_LIO_LISTIO
-#define SYS_AUE_getdents AUE_O_GETDENTS
+#define SYS_AUE_freebsd11_getdents AUE_O_GETDENTS
#define SYS_AUE_lchmod AUE_LCHMOD
#define SYS_AUE_lutimes AUE_LUTIMES
-#define SYS_AUE_nstat AUE_STAT
-#define SYS_AUE_nfstat AUE_FSTAT
-#define SYS_AUE_nlstat AUE_LSTAT
+#define SYS_AUE_freebsd11_nstat AUE_STAT
+#define SYS_AUE_freebsd11_nfstat AUE_FSTAT
+#define SYS_AUE_freebsd11_nlstat AUE_LSTAT
#define SYS_AUE_preadv AUE_PREADV
#define SYS_AUE_pwritev AUE_PWRITEV
#define SYS_AUE_freebsd4_fhstatfs AUE_FHSTATFS
#define SYS_AUE_fhopen AUE_FHOPEN
-#define SYS_AUE_fhstat AUE_FHSTAT
+#define SYS_AUE_freebsd11_fhstat AUE_FHSTAT
#define SYS_AUE_modnext AUE_NULL
#define SYS_AUE_modstat AUE_NULL
#define SYS_AUE_modfnext AUE_NULL
@@ -2858,10 +2916,10 @@ int freebsd10_pipe(struct thread *, struct freebsd10_pipe_args *);
#define SYS_AUE_uuidgen AUE_NULL
#define SYS_AUE_sendfile AUE_SENDFILE
#define SYS_AUE_mac_syscall AUE_NULL
-#define SYS_AUE_getfsstat AUE_GETFSSTAT
-#define SYS_AUE_statfs AUE_STATFS
-#define SYS_AUE_fstatfs AUE_FSTATFS
-#define SYS_AUE_fhstatfs AUE_FHSTATFS
+#define SYS_AUE_freebsd11_getfsstat AUE_GETFSSTAT
+#define SYS_AUE_freebsd11_statfs AUE_STATFS
+#define SYS_AUE_freebsd11_fstatfs AUE_FSTATFS
+#define SYS_AUE_freebsd11_fhstatfs AUE_FHSTATFS
#define SYS_AUE_ksem_close AUE_SEMCLOSE
#define SYS_AUE_ksem_post AUE_SEMPOST
#define SYS_AUE_ksem_wait AUE_SEMWAIT
@@ -2945,12 +3003,12 @@ int freebsd10_pipe(struct thread *, struct freebsd10_pipe_args *);
#define SYS_AUE_fchmodat AUE_FCHMODAT
#define SYS_AUE_fchownat AUE_FCHOWNAT
#define SYS_AUE_fexecve AUE_FEXECVE
-#define SYS_AUE_fstatat AUE_FSTATAT
+#define SYS_AUE_freebsd11_fstatat AUE_FSTATAT
#define SYS_AUE_futimesat AUE_FUTIMESAT
#define SYS_AUE_linkat AUE_LINKAT
#define SYS_AUE_mkdirat AUE_MKDIRAT
#define SYS_AUE_mkfifoat AUE_MKFIFOAT
-#define SYS_AUE_mknodat AUE_MKNODAT
+#define SYS_AUE_freebsd11_mknodat AUE_MKNODAT
#define SYS_AUE_openat AUE_OPENAT_RWTC
#define SYS_AUE_readlinkat AUE_READLINKAT
#define SYS_AUE_renameat AUE_RENAMEAT
@@ -3001,6 +3059,15 @@ int freebsd10_pipe(struct thread *, struct freebsd10_pipe_args *);
#define SYS_AUE_numa_getaffinity AUE_NULL
#define SYS_AUE_numa_setaffinity AUE_NULL
#define SYS_AUE_fdatasync AUE_FSYNC
+#define SYS_AUE_fstat AUE_FSTAT
+#define SYS_AUE_fstatat AUE_FSTATAT
+#define SYS_AUE_fhstat AUE_FHSTAT
+#define SYS_AUE_getdirentries AUE_GETDIRENTRIES
+#define SYS_AUE_statfs AUE_STATFS
+#define SYS_AUE_fstatfs AUE_FSTATFS
+#define SYS_AUE_getfsstat AUE_GETFSSTAT
+#define SYS_AUE_fhstatfs AUE_FHSTATFS
+#define SYS_AUE_mknodat AUE_MKNODAT
#endif /* __rtems__ */
#undef PAD_
diff --git a/freebsd/sys/sys/tty.h b/freebsd/sys/sys/tty.h
index 09e04195..c37d0bf3 100644
--- a/freebsd/sys/sys/tty.h
+++ b/freebsd/sys/sys/tty.h
@@ -148,7 +148,7 @@ struct xtty {
pid_t xt_pgid; /* Foreground process group. */
pid_t xt_sid; /* Session. */
unsigned int xt_flags; /* Terminal option flags. */
- dev_t xt_dev; /* Userland device. */
+ uint32_t xt_dev; /* Userland device. XXXKIB truncated */
};
#ifdef _KERNEL
diff --git a/freebsd/sys/sys/user.h b/freebsd/sys/sys/user.h
index 077baf46..9fdb9dd6 100644
--- a/freebsd/sys/sys/user.h
+++ b/freebsd/sys/sys/user.h
@@ -84,7 +84,7 @@
* it in two places: function fill_kinfo_proc in sys/kern/kern_proc.c and
* function kvm_proclist in lib/libkvm/kvm_proc.c .
*/
-#define KI_NSPARE_INT 4
+#define KI_NSPARE_INT 2
#define KI_NSPARE_LONG 12
#define KI_NSPARE_PTR 6
@@ -135,7 +135,7 @@ struct kinfo_proc {
pid_t ki_tsid; /* Terminal session ID */
short ki_jobc; /* job control counter */
short ki_spare_short1; /* unused (just here for alignment) */
- dev_t ki_tdev; /* controlling tty dev */
+ uint32_t ki_tdev_freebsd11; /* controlling tty dev */
sigset_t ki_siglist; /* Signals arrived but not delivered */
sigset_t ki_sigmask; /* Current signal mask */
sigset_t ki_sigignore; /* Signals being ignored */
@@ -188,6 +188,7 @@ struct kinfo_proc {
*/
char ki_sparestrings[46]; /* spare string space */
int ki_spareints[KI_NSPARE_INT]; /* spare room for growth */
+ uint64_t ki_tdev; /* controlling tty dev */
int ki_oncpu; /* Which cpu we are on */
int ki_lastcpu; /* Last cpu we were on */
int ki_tracer; /* Pid of tracing process */
@@ -344,14 +345,20 @@ struct kinfo_file {
int kf_flags; /* Flags. */
int kf_pad0; /* Round to 64 bit alignment. */
int64_t kf_offset; /* Seek location. */
- int kf_vnode_type; /* Vnode type. */
- int kf_sock_domain; /* Socket domain. */
- int kf_sock_type; /* Socket type. */
- int kf_sock_protocol; /* Socket protocol. */
- struct sockaddr_storage kf_sa_local; /* Socket address. */
- struct sockaddr_storage kf_sa_peer; /* Peer address. */
union {
struct {
+ /* Sendq size */
+ uint32_t kf_sock_sendq;
+ /* Socket domain. */
+ int kf_sock_domain0;
+ /* Socket type. */
+ int kf_sock_type0;
+ /* Socket protocol. */
+ int kf_sock_protocol0;
+ /* Socket address. */
+ struct sockaddr_storage kf_sa_local;
+ /* Peer address. */
+ struct sockaddr_storage kf_sa_peer;
/* Address of so_pcb. */
uint64_t kf_sock_pcb;
/* Address of inp_ppcb. */
@@ -362,18 +369,27 @@ struct kinfo_file {
uint16_t kf_sock_snd_sb_state;
/* Receive buffer state. */
uint16_t kf_sock_rcv_sb_state;
- /* Round to 64 bit alignment. */
- uint32_t kf_sock_pad0;
+ /* Recvq size. */
+ uint32_t kf_sock_recvq;
} kf_sock;
struct {
+ /* Vnode type. */
+ int kf_file_type;
+ /* Space for future use */
+ int kf_spareint[3];
+ uint64_t kf_spareint64[30];
+ /* Vnode filesystem id. */
+ uint64_t kf_file_fsid;
+ /* File device. */
+ uint64_t kf_file_rdev;
/* Global file id. */
uint64_t kf_file_fileid;
/* File size. */
uint64_t kf_file_size;
- /* Vnode filesystem id. */
- uint32_t kf_file_fsid;
- /* File device. */
- uint32_t kf_file_rdev;
+ /* Vnode filesystem id, FreeBSD 11 compat. */
+ uint32_t kf_file_fsid_freebsd11;
+ /* File device, FreeBSD 11 compat. */
+ uint32_t kf_file_rdev_freebsd11;
/* File mode. */
uint16_t kf_file_mode;
/* Round to 64 bit alignment. */
@@ -381,10 +397,14 @@ struct kinfo_file {
uint32_t kf_file_pad1;
} kf_file;
struct {
+ uint32_t kf_spareint[4];
+ uint64_t kf_spareint64[32];
uint32_t kf_sem_value;
uint16_t kf_sem_mode;
} kf_sem;
struct {
+ uint32_t kf_spareint[4];
+ uint64_t kf_spareint64[32];
uint64_t kf_pipe_addr;
uint64_t kf_pipe_peer;
uint32_t kf_pipe_buffer_cnt;
@@ -392,11 +412,17 @@ struct kinfo_file {
uint32_t kf_pipe_pad0[3];
} kf_pipe;
struct {
- uint32_t kf_pts_dev;
+ uint32_t kf_spareint[4];
+ uint64_t kf_spareint64[32];
+ uint32_t kf_pts_dev_freebsd11;
+ uint32_t kf_pts_pad0;
+ uint64_t kf_pts_dev;
/* Round to 64 bit alignment. */
- uint32_t kf_pts_pad0[7];
+ uint32_t kf_pts_pad1[4];
} kf_pts;
struct {
+ uint32_t kf_spareint[4];
+ uint64_t kf_spareint64[32];
pid_t kf_pid;
} kf_proc;
} kf_un;
@@ -411,6 +437,12 @@ struct kinfo_file {
int kf_dummy;
#endif /* __rtems__ */
};
+#ifndef _KERNEL
+#define kf_vnode_type kf_un.kf_file.kf_file_type
+#define kf_sock_domain kf_un.kf_sock.kf_sock_domain0
+#define kf_sock_type kf_un.kf_sock.kf_sock_type0
+#define kf_sock_protocol kf_un.kf_sock.kf_sock_protocol0
+#endif
/*
* The KERN_PROC_VMMAP sysctl allows a process to dump the VM layout of
@@ -460,7 +492,7 @@ struct kinfo_ovmentry {
void *_kve_pspare[8]; /* Space for more stuff. */
off_t kve_offset; /* Mapping offset in object */
uint64_t kve_fileid; /* inode number if vnode */
- dev_t kve_fsid; /* dev_t of vnode location */
+ uint32_t kve_fsid; /* dev_t of vnode location */
int _kve_ispare[3]; /* Space for more stuff. */
};
@@ -475,7 +507,7 @@ struct kinfo_vmentry {
uint64_t kve_end; /* Finishing address. */
uint64_t kve_offset; /* Mapping offset in object */
uint64_t kve_vn_fileid; /* inode number if vnode */
- uint32_t kve_vn_fsid; /* dev_t of vnode location */
+ uint32_t kve_vn_fsid_freebsd11; /* dev_t of vnode location */
int kve_flags; /* Flags on map entry. */
int kve_resident; /* Number of resident pages. */
int kve_private_resident; /* Number of private pages. */
@@ -484,10 +516,12 @@ struct kinfo_vmentry {
int kve_shadow_count; /* VM obj shadow count. */
int kve_vn_type; /* Vnode type. */
uint64_t kve_vn_size; /* File size. */
- uint32_t kve_vn_rdev; /* Device id if device. */
+ uint32_t kve_vn_rdev_freebsd11; /* Device id if device. */
uint16_t kve_vn_mode; /* File mode. */
uint16_t kve_status; /* Status flags. */
- int _kve_ispare[12]; /* Space for more stuff. */
+ uint64_t kve_vn_fsid; /* dev_t of vnode location */
+ uint64_t kve_vn_rdev; /* Device id if device. */
+ int _kve_ispare[8]; /* Space for more stuff. */
/* Truncated before copyout in sysctl */
char kve_path[PATH_MAX]; /* Path to VM obj, if any. */
};
@@ -501,14 +535,15 @@ struct kinfo_vmobject {
int kvo_type; /* Object type: KVME_TYPE_*. */
uint64_t kvo_size; /* Object size in pages. */
uint64_t kvo_vn_fileid; /* inode number if vnode. */
- uint32_t kvo_vn_fsid; /* dev_t of vnode location. */
+ uint32_t kvo_vn_fsid_freebsd11; /* dev_t of vnode location. */
int kvo_ref_count; /* Reference count. */
int kvo_shadow_count; /* Shadow count. */
int kvo_memattr; /* Memory attribute. */
uint64_t kvo_resident; /* Number of resident pages. */
uint64_t kvo_active; /* Number of active pages. */
uint64_t kvo_inactive; /* Number of inactive pages. */
- uint64_t _kvo_qspare[8];
+ uint64_t kvo_vn_fsid;
+ uint64_t _kvo_qspare[7];
uint32_t _kvo_ispare[8];
char kvo_path[PATH_MAX]; /* Pathname, if any. */
};
diff --git a/freebsd/sys/sys/vmmeter.h b/freebsd/sys/sys/vmmeter.h
index b5d0ef14..d7692583 100644
--- a/freebsd/sys/sys/vmmeter.h
+++ b/freebsd/sys/sys/vmmeter.h
@@ -39,50 +39,84 @@
*/
#define MAXSLP 20
+/* Systemwide totals computed every five seconds. */
+struct vmtotal {
+ int16_t t_rq; /* length of the run queue */
+ int16_t t_dw; /* jobs in ``disk wait'' (neg priority) */
+ int16_t t_pw; /* jobs in page wait */
+ int16_t t_sl; /* jobs sleeping in core */
+ int16_t t_sw; /* swapped out runnable/short block jobs */
+ int32_t t_vm; /* total virtual memory */
+ int32_t t_avm; /* active virtual memory */
+ int32_t t_rm; /* total real memory in use */
+ int32_t t_arm; /* active real memory */
+ int32_t t_vmshr; /* shared virtual memory */
+ int32_t t_avmshr; /* active shared virtual memory */
+ int32_t t_rmshr; /* shared real memory */
+ int32_t t_armshr; /* active shared real memory */
+ int32_t t_free; /* free memory pages */
+};
+
+#if defined(_KERNEL) || defined(_WANT_VMMETER)
+#include <sys/counter.h>
+
/*
* System wide statistics counters.
* Locking:
* a - locked by atomic operations
* c - constant after initialization
* f - locked by vm_page_queue_free_mtx
- * p - locked by being in the PCPU and atomicity respect to interrupts
+ * p - uses counter(9)
* q - changes are synchronized by the corresponding vm_pagequeue lock
*/
struct vmmeter {
/*
* General system activity.
*/
- u_int v_swtch; /* (p) context switches */
- u_int v_trap; /* (p) calls to trap */
- u_int v_syscall; /* (p) calls to syscall() */
- u_int v_intr; /* (p) device interrupts */
- u_int v_soft; /* (p) software interrupts */
+ counter_u64_t v_swtch; /* (p) context switches */
+ counter_u64_t v_trap; /* (p) calls to trap */
+ counter_u64_t v_syscall; /* (p) calls to syscall() */
+ counter_u64_t v_intr; /* (p) device interrupts */
+ counter_u64_t v_soft; /* (p) software interrupts */
/*
* Virtual memory activity.
*/
- u_int v_vm_faults; /* (p) address memory faults */
- u_int v_io_faults; /* (p) page faults requiring I/O */
- u_int v_cow_faults; /* (p) copy-on-writes faults */
- u_int v_cow_optim; /* (p) optimized copy-on-writes faults */
- u_int v_zfod; /* (p) pages zero filled on demand */
- u_int v_ozfod; /* (p) optimized zero fill pages */
- u_int v_swapin; /* (p) swap pager pageins */
- u_int v_swapout; /* (p) swap pager pageouts */
- u_int v_swappgsin; /* (p) swap pager pages paged in */
- u_int v_swappgsout; /* (p) swap pager pages paged out */
- u_int v_vnodein; /* (p) vnode pager pageins */
- u_int v_vnodeout; /* (p) vnode pager pageouts */
- u_int v_vnodepgsin; /* (p) vnode_pager pages paged in */
- u_int v_vnodepgsout; /* (p) vnode pager pages paged out */
- u_int v_intrans; /* (p) intransit blocking page faults */
- u_int v_reactivated; /* (p) pages reactivated by the pagedaemon */
- u_int v_pdwakeups; /* (p) times daemon has awaken from sleep */
- u_int v_pdpages; /* (p) pages analyzed by daemon */
- u_int v_pdshortfalls; /* (p) page reclamation shortfalls */
-
- u_int v_dfree; /* (p) pages freed by daemon */
- u_int v_pfree; /* (p) pages freed by exiting processes */
- u_int v_tfree; /* (p) total pages freed */
+ counter_u64_t v_vm_faults; /* (p) address memory faults */
+ counter_u64_t v_io_faults; /* (p) page faults requiring I/O */
+ counter_u64_t v_cow_faults; /* (p) copy-on-writes faults */
+ counter_u64_t v_cow_optim; /* (p) optimized COW faults */
+ counter_u64_t v_zfod; /* (p) pages zero filled on demand */
+ counter_u64_t v_ozfod; /* (p) optimized zero fill pages */
+ counter_u64_t v_swapin; /* (p) swap pager pageins */
+ counter_u64_t v_swapout; /* (p) swap pager pageouts */
+ counter_u64_t v_swappgsin; /* (p) swap pager pages paged in */
+ counter_u64_t v_swappgsout; /* (p) swap pager pages paged out */
+ counter_u64_t v_vnodein; /* (p) vnode pager pageins */
+ counter_u64_t v_vnodeout; /* (p) vnode pager pageouts */
+ counter_u64_t v_vnodepgsin; /* (p) vnode_pager pages paged in */
+ counter_u64_t v_vnodepgsout; /* (p) vnode pager pages paged out */
+ counter_u64_t v_intrans; /* (p) intransit blocking page faults */
+ counter_u64_t v_reactivated; /* (p) reactivated by the pagedaemon */
+ counter_u64_t v_pdwakeups; /* (p) times daemon has awaken */
+ counter_u64_t v_pdpages; /* (p) pages analyzed by daemon */
+ counter_u64_t v_pdshortfalls; /* (p) page reclamation shortfalls */
+
+ counter_u64_t v_dfree; /* (p) pages freed by daemon */
+ counter_u64_t v_pfree; /* (p) pages freed by processes */
+ counter_u64_t v_tfree; /* (p) total pages freed */
+ /*
+ * Fork/vfork/rfork activity.
+ */
+ counter_u64_t v_forks; /* (p) fork() calls */
+ counter_u64_t v_vforks; /* (p) vfork() calls */
+ counter_u64_t v_rforks; /* (p) rfork() calls */
+ counter_u64_t v_kthreads; /* (p) fork() calls by kernel */
+ counter_u64_t v_forkpages; /* (p) pages affected by fork() */
+ counter_u64_t v_vforkpages; /* (p) pages affected by vfork() */
+ counter_u64_t v_rforkpages; /* (p) pages affected by rfork() */
+ counter_u64_t v_kthreadpages; /* (p) ... and by kernel fork() */
+#define VM_METER_NCOUNTERS \
+ (offsetof(struct vmmeter, v_page_size) / sizeof(counter_u64_t))
/*
* Distribution of page usages.
*/
@@ -100,24 +134,18 @@ struct vmmeter {
u_int v_pageout_free_min; /* (c) min pages reserved for kernel */
u_int v_interrupt_free_min; /* (c) reserved pages for int code */
u_int v_free_severe; /* (c) severe page depletion point */
- /*
- * Fork/vfork/rfork activity.
- */
- u_int v_forks; /* (p) fork() calls */
- u_int v_vforks; /* (p) vfork() calls */
- u_int v_rforks; /* (p) rfork() calls */
- u_int v_kthreads; /* (p) fork() calls by kernel */
- u_int v_forkpages; /* (p) VM pages affected by fork() */
- u_int v_vforkpages; /* (p) VM pages affected by vfork() */
- u_int v_rforkpages; /* (p) VM pages affected by rfork() */
- u_int v_kthreadpages; /* (p) VM pages affected by fork() by kernel */
};
+#endif /* _KERNEL || _WANT_VMMETER */
+
#ifdef _KERNEL
extern struct vmmeter vm_cnt;
-
extern u_int vm_pageout_wakeup_thresh;
+#define VM_CNT_ADD(var, x) counter_u64_add(vm_cnt.var, x)
+#define VM_CNT_INC(var) VM_CNT_ADD(var, 1)
+#define VM_CNT_FETCH(var) counter_u64_fetch(vm_cnt.var)
+
/*
* Return TRUE if we are under our severe low-free-pages threshold
*
@@ -189,33 +217,5 @@ vm_laundry_target(void)
return (vm_paging_target());
}
-
-/*
- * Obtain the value of a per-CPU counter.
- */
-#define VM_METER_PCPU_CNT(member) \
- vm_meter_cnt(__offsetof(struct vmmeter, member))
-
-u_int vm_meter_cnt(size_t);
-
-#endif
-
-/* systemwide totals computed every five seconds */
-struct vmtotal {
- int16_t t_rq; /* length of the run queue */
- int16_t t_dw; /* jobs in ``disk wait'' (neg priority) */
- int16_t t_pw; /* jobs in page wait */
- int16_t t_sl; /* jobs sleeping in core */
- int16_t t_sw; /* swapped out runnable/short block jobs */
- int32_t t_vm; /* total virtual memory */
- int32_t t_avm; /* active virtual memory */
- int32_t t_rm; /* total real memory in use */
- int32_t t_arm; /* active real memory */
- int32_t t_vmshr; /* shared virtual memory */
- int32_t t_avmshr; /* active shared virtual memory */
- int32_t t_rmshr; /* shared real memory */
- int32_t t_armshr; /* active shared real memory */
- int32_t t_free; /* free memory pages */
-};
-
-#endif
+#endif /* _KERNEL */
+#endif /* _SYS_VMMETER_H_ */
diff --git a/freebsd/sys/sys/vnode.h b/freebsd/sys/sys/vnode.h
index 535016ed..8f123d5e 100644
--- a/freebsd/sys/sys/vnode.h
+++ b/freebsd/sys/sys/vnode.h
@@ -267,11 +267,12 @@ struct xvnode {
struct vattr {
enum vtype va_type; /* vnode type (for create) */
u_short va_mode; /* files access mode and type */
- short va_nlink; /* number of references to file */
+ u_short va_padding0;
uid_t va_uid; /* owner user id */
gid_t va_gid; /* owner group id */
+ nlink_t va_nlink; /* number of references to file */
dev_t va_fsid; /* filesystem id */
- long va_fileid; /* file id */
+ ino_t va_fileid; /* file id */
u_quad_t va_size; /* file size in bytes */
long va_blocksize; /* blocksize preferred for i/o */
struct timespec va_atime; /* time of last access */
@@ -403,6 +404,7 @@ extern int vttoif_tab[];
#define V_ALT 0x0002 /* vinvalbuf: invalidate only alternate bufs */
#define V_NORMAL 0x0004 /* vinvalbuf: invalidate only regular bufs */
#define V_CLEANONLY 0x0008 /* vinvalbuf: invalidate only clean bufs */
+#define V_VMIO 0x0010 /* vinvalbuf: called during pageout */
#define REVOKEALL 0x0001 /* vop_revoke: revoke all aliases */
#define V_WAIT 0x0001 /* vn_start_write: sleep for suspend */
#define V_NOWAIT 0x0002 /* vn_start_write: don't sleep for suspend */
@@ -585,6 +587,7 @@ struct file;
struct mount;
struct nameidata;
struct ostat;
+struct freebsd11_stat;
struct thread;
struct proc;
struct stat;
@@ -613,7 +616,8 @@ void cache_purge_negative(struct vnode *vp);
void cache_purgevfs(struct mount *mp, bool force);
int change_dir(struct vnode *vp, struct thread *td);
void cvtstat(struct stat *st, struct ostat *ost);
-void cvtnstat(struct stat *sb, struct nstat *nsb);
+void freebsd11_cvtnstat(struct stat *sb, struct nstat *nsb);
+void freebsd11_cvtstat(struct stat *st, struct freebsd11_stat *ost);
int getnewvnode(const char *tag, struct mount *mp, struct vop_vector *vops,
struct vnode **vpp);
void getnewvnode_reserve(u_int count);
@@ -882,6 +886,8 @@ int vn_chmod(struct file *fp, mode_t mode, struct ucred *active_cred,
int vn_chown(struct file *fp, uid_t uid, gid_t gid, struct ucred *active_cred,
struct thread *td);
+void vn_fsid(struct vnode *vp, struct vattr *va);
+
#endif /* _KERNEL */
#endif /* __rtems__ */