Merge ^/head r340235 through r340367.

This commit is contained in:
Dimitry Andric 2018-11-12 16:41:41 +00:00
commit 9b5cb2f639
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/projects/clang700-import/; revision=340368
711 changed files with 27059 additions and 8570 deletions

View File

@ -33,6 +33,7 @@
# targets - Print a list of supported TARGET/TARGET_ARCH pairs
# for world and kernel targets.
# toolchains - Build a toolchain for all world and kernel targets.
# sysent - (Re)build syscall entries from syscalls.master.
# xdev - xdev-build + xdev-install for the architecture
# specified with TARGET and TARGET_ARCH.
# xdev-build - Build cross-development tools.
@ -61,9 +62,10 @@
# Most of the user-driven targets (as listed above) are implemented in
# Makefile.inc1. The exceptions are universe, tinderbox and targets.
#
# If you want to build your system from source be sure that /usr/obj has
# at least 6GB of diskspace available. A complete 'universe' build requires
# about 100GB of space.
# If you want to build your system from source, be sure that /usr/obj has
# at least 6 GB of disk space available. A complete 'universe' build of
# r340283 (2018-11) required 167 GB of space. ZFS lz4 compression
# achieved a 2.18x ratio, reducing actual space to 81 GB.
#
# For individuals wanting to build from the sources currently on their
# system, the simple instructions are:
@ -135,6 +137,7 @@ TGTS= all all-man buildenv buildenvvars buildkernel buildworld \
reinstallkernel reinstallkernel.debug \
installworld kernel-toolchain libraries maninstall \
obj objlink showconfig tags toolchain update \
sysent \
_worldtmp _legacy _bootstrap-tools _cleanobj _obj \
_build-tools _build-metadata _cross-tools _includes _libraries \
build32 distribute32 install32 buildsoft distributesoft installsoft \

View File

@ -1434,6 +1434,18 @@ packageworld: .PHONY
. endif
.endfor
_sysent_dirs= sys/kern
_sysent_dirs+= sys/compat/freebsd32
_sysent_dirs+= sys/i386/ibcs2
_sysent_dirs+= sys/amd64/linux \
sys/amd64/linux32 \
sys/arm64/linux \
sys/i386/linux
sysent: .PHONY
.for _dir in ${_sysent_dirs}
${_+_}${MAKE} -C ${.CURDIR}/${_dir} sysent
.endfor
#
# reinstall
#

View File

@ -174,6 +174,9 @@ OLD_FILES+=usr/lib/clang/6.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_
OLD_DIRS+=usr/lib/clang/6.0.1/lib/freebsd
OLD_DIRS+=usr/lib/clang/6.0.1/lib
OLD_DIRS+=usr/lib/clang/6.0.1
# 20181112: Cleanup old libcap_dns.
OLD_LIBS+=lib/casper/libcap_dns.so.1
OLD_LIBS+=usr/lib32/libcap_dns.so.1
# 20181030: malloc_domain(9) KPI change
OLD_FILES+=share/man/man9/malloc_domain.9.gz
# 20181026: joy(4) removal

View File

@ -31,6 +31,16 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 13.x IS SLOW:
disable the most expensive debugging functionality run
"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
20181110:
The default newsyslog.conf(5) file has been changed to only include
files in /etc/newsyslog.conf.d/ and /usr/local/etc/newsyslog.conf.d/ if
the filenames end in '.conf' and do not begin with a '.'.
You should check the configuration files in these two directories match
this naming convention. You can verify which configuration files are
being included using the command:
$ newsyslog -Nrv
20181015:
Ports for the DRM modules have been simplified. Now, amd64 users should
just install the drm-kmod port. All others should install

View File

@ -32,7 +32,7 @@
.\" @(#)rm.1 8.5 (Berkeley) 12/5/94
.\" $FreeBSD$
.\"
.Dd September 12, 2018
.Dd November 10, 2018
.Dt RM 1
.Os
.Sh NAME
@ -42,7 +42,7 @@
.Sh SYNOPSIS
.Nm
.Op Fl f | i
.Op Fl dIPRrvWx
.Op Fl dIRrvWx
.Ar
.Nm unlink
.Op Fl -
@ -86,26 +86,9 @@ This is a far less intrusive option than
.Fl i
yet provides almost the same level of protection against mistakes.
.It Fl P
Overwrite regular files before deleting them.
Files are overwritten three times, first with the byte pattern 0xff,
then 0x00, and then 0xff again, before they are deleted.
Files with multiple links will not be overwritten nor deleted
and a warning will be issued.
If the
.Fl f
option is specified, files with multiple links will also be overwritten
and deleted.
No warning will be issued.
.Pp
Specifying this flag for a read only file will cause
.Nm
to generate an error message and exit.
The file will not be removed or overwritten.
.Pp
N.B.: The
.Fl P
flag is not considered a security feature
.Pq see Sx BUGS .
This flag has no effect.
It is kept only for backwards compatibility with
.Bx 4.4 Lite2 .
.It Fl R
Attempt to remove the file hierarchy rooted in each
.Ar file
@ -192,12 +175,6 @@ For example:
.Pp
.Dl "rm /home/user/-filename"
.Dl "rm ./-filename"
.Pp
When
.Fl P
is specified with
.Fl f
the file will be overwritten and removed even if it has hard links.
.Sh EXAMPLES
Recursively remove all files contained within the
.Pa foobar
@ -227,6 +204,12 @@ Also, historical
.Bx
implementations prompted on the standard output,
not the standard error output.
.Pp
The
.Fl P
option does not have any effect as of
.Fx 13
and may be removed in the future.
.Sh SEE ALSO
.Xr chflags 1 ,
.Xr rmdir 1 ,
@ -250,15 +233,3 @@ A
.Nm
command appeared in
.At v1 .
.Sh BUGS
The
.Fl P
option assumes that the underlying storage overwrites file blocks
when data is written to an existing offset.
Several factors including the file system and its backing store could defeat
this assumption.
This includes, but is not limited to file systems that use a
Copy-On-Write strategy (e.g. ZFS or UFS when snapshots are being used), Flash
media that are using a wear leveling algorithm, or when the backing datastore
does journaling, etc.
In addition, only regular files are overwritten, other types of files are not.

View File

@ -61,7 +61,7 @@ __FBSDID("$FreeBSD$");
#include <sysexits.h>
#include <unistd.h>
static int dflag, eval, fflag, iflag, Pflag, vflag, Wflag, stdin_ok;
static int dflag, eval, fflag, iflag, vflag, Wflag, stdin_ok;
static int rflag, Iflag, xflag;
static uid_t uid;
static volatile sig_atomic_t info;
@ -71,7 +71,6 @@ static int check2(char **);
static void checkdot(char **);
static void checkslash(char **);
static void rm_file(char **);
static int rm_overwrite(const char *, struct stat *);
static void rm_tree(char **);
static void siginfo(int __unused);
static void usage(void);
@ -110,7 +109,7 @@ main(int argc, char *argv[])
exit(eval);
}
Pflag = rflag = xflag = 0;
rflag = xflag = 0;
while ((ch = getopt(argc, argv, "dfiIPRrvWx")) != -1)
switch(ch) {
case 'd':
@ -128,7 +127,7 @@ main(int argc, char *argv[])
Iflag = 1;
break;
case 'P':
Pflag = 1;
/* Compatibility no-op. */
break;
case 'R':
case 'r': /* Compatibility. */
@ -313,12 +312,6 @@ rm_tree(char **argv)
case FTS_F:
case FTS_NSOK:
if (Pflag)
if (!rm_overwrite(p->fts_accpath, p->fts_info ==
FTS_NSOK ? NULL : p->fts_statp))
continue;
/* FALLTHROUGH */
default:
rval = unlink(p->fts_accpath);
if (rval == 0 || (fflag && errno == ENOENT)) {
@ -389,12 +382,8 @@ rm_file(char **argv)
rval = undelete(f);
else if (S_ISDIR(sb.st_mode))
rval = rmdir(f);
else {
if (Pflag)
if (!rm_overwrite(f, &sb))
continue;
else
rval = unlink(f);
}
}
if (rval && (!fflag || errno != ENOENT)) {
warn("%s", f);
@ -409,84 +398,6 @@ rm_file(char **argv)
}
}
/*
* rm_overwrite --
* Overwrite the file 3 times with varying bit patterns.
*
* XXX
* This is a cheap way to *really* delete files. Note that only regular
* files are deleted, directories (and therefore names) will remain.
* Also, this assumes a fixed-block file system (like FFS, or a V7 or a
* System V file system). In a logging or COW file system, you'll have to
* have kernel support.
*/
static int
rm_overwrite(const char *file, struct stat *sbp)
{
struct stat sb, sb2;
struct statfs fsb;
off_t len;
int bsize, fd, wlen;
char *buf = NULL;
fd = -1;
if (sbp == NULL) {
if (lstat(file, &sb))
goto err;
sbp = &sb;
}
if (!S_ISREG(sbp->st_mode))
return (1);
if (sbp->st_nlink > 1 && !fflag) {
warnx("%s (inode %ju): not overwritten due to multiple links",
file, (uintmax_t)sbp->st_ino);
return (0);
}
if ((fd = open(file, O_WRONLY|O_NONBLOCK|O_NOFOLLOW, 0)) == -1)
goto err;
if (fstat(fd, &sb2))
goto err;
if (sb2.st_dev != sbp->st_dev || sb2.st_ino != sbp->st_ino ||
!S_ISREG(sb2.st_mode)) {
errno = EPERM;
goto err;
}
if (fstatfs(fd, &fsb) == -1)
goto err;
bsize = MAX(fsb.f_iosize, 1024);
if ((buf = malloc(bsize)) == NULL)
err(1, "%s: malloc", file);
#define PASS(byte) { \
memset(buf, byte, bsize); \
for (len = sbp->st_size; len > 0; len -= wlen) { \
wlen = len < bsize ? len : bsize; \
if (write(fd, buf, wlen) != wlen) \
goto err; \
} \
}
PASS(0xff);
if (fsync(fd) || lseek(fd, (off_t)0, SEEK_SET))
goto err;
PASS(0x00);
if (fsync(fd) || lseek(fd, (off_t)0, SEEK_SET))
goto err;
PASS(0xff);
if (!fsync(fd) && !close(fd)) {
free(buf);
return (1);
}
err: eval = 1;
if (buf)
free(buf);
if (fd != -1)
close(fd);
warn("%s", file);
return (0);
}
static int
check(const char *path, const char *name, struct stat *sp)
{
@ -511,10 +422,6 @@ check(const char *path, const char *name, struct stat *sp)
strmode(sp->st_mode, modep);
if ((flagsp = fflagstostr(sp->st_flags)) == NULL)
err(1, "fflagstostr");
if (Pflag)
errx(1,
"%s: -P was specified, but file is not writable",
path);
(void)fprintf(stderr, "override %s%s%s/%s %s%sfor %s? ",
modep + 1, modep[10] == ' ' ? "" : " ",
user_from_uid(sp->st_uid, 0),

View File

@ -35,7 +35,7 @@ EXCEPTIONS: Code for dealing with exceptions appears in
exceptions.c. The C language doesn't include exception handling,
so I implement it using setjmp and longjmp. The global variable
exception contains the type of exception. EXERROR is raised by
calling error. EXINT is an interrupt.
calling error or errorwithstatus. EXINT is an interrupt.
INTERRUPTS: In an interactive shell, an interrupt will cause an
EXINT exception to return to the main command loop. (Exception:

View File

@ -67,7 +67,7 @@ volatile sig_atomic_t suppressint;
volatile sig_atomic_t intpending;
static void exverror(int, const char *, va_list) __printf0like(2, 0) __dead2;
static void verrorwithstatus(int, const char *, va_list) __printf0like(2, 0) __dead2;
/*
* Called to raise an exception. Since C doesn't include exceptions, we
@ -154,7 +154,7 @@ warning(const char *msg, ...)
* formatting. It then raises the error exception.
*/
static void
exverror(int cond, const char *msg, va_list ap)
verrorwithstatus(int status, const char *msg, va_list ap)
{
/*
* An interrupt trumps an error. Certain places catch error
@ -168,14 +168,17 @@ exverror(int cond, const char *msg, va_list ap)
#ifdef DEBUG
if (msg)
TRACE(("exverror(%d, \"%s\") pid=%d\n", cond, msg, getpid()));
TRACE(("verrorwithstatus(%d, \"%s\") pid=%d\n",
status, msg, getpid()));
else
TRACE(("exverror(%d, NULL) pid=%d\n", cond, getpid()));
TRACE(("verrorwithstatus(%d, NULL) pid=%d\n",
status, getpid()));
#endif
if (msg)
vwarning(msg, ap);
flushall();
exraise(cond);
exitstatus = status;
exraise(EXERROR);
}
@ -184,16 +187,16 @@ error(const char *msg, ...)
{
va_list ap;
va_start(ap, msg);
exverror(EXERROR, msg, ap);
verrorwithstatus(2, msg, ap);
va_end(ap);
}
void
exerror(int cond, const char *msg, ...)
errorwithstatus(int status, const char *msg, ...)
{
va_list ap;
va_start(ap, msg);
exverror(cond, msg, ap);
verrorwithstatus(status, msg, ap);
va_end(ap);
}

View File

@ -55,9 +55,8 @@ extern volatile sig_atomic_t exception;
/* exceptions */
#define EXINT 0 /* SIGINT received */
#define EXERROR 1 /* a generic error */
#define EXEXEC 2 /* command execution failed */
#define EXEXIT 3 /* call exitshell(exitstatus) */
#define EXERROR 1 /* a generic error with exitstatus */
#define EXEXIT 2 /* call exitshell(exitstatus) */
/*
@ -83,7 +82,7 @@ void exraise(int) __dead2;
void onint(void) __dead2;
void warning(const char *, ...) __printflike(1, 2);
void error(const char *, ...) __printf0like(1, 2) __dead2;
void exerror(int, const char *, ...) __printf0like(2, 3) __dead2;
void errorwithstatus(int, const char *, ...) __printf0like(2, 3) __dead2;
/*

View File

@ -466,13 +466,9 @@ evalredir(union node *n, int flags)
handler = savehandler;
e = exception;
popredir();
if (e == EXERROR || e == EXEXEC) {
if (in_redirect) {
if (e == EXERROR)
exitstatus = 2;
FORCEINTON;
return;
}
if (e == EXERROR && in_redirect) {
FORCEINTON;
return;
}
longjmp(handler->loc, 1);
} else {
@ -506,7 +502,7 @@ exphere(union node *redir, struct arglist *fn)
forcelocal++;
savehandler = handler;
if (setjmp(jmploc.loc))
need_longjmp = exception != EXERROR && exception != EXEXEC;
need_longjmp = exception != EXERROR;
else {
handler = &jmploc;
expandarg(redir->nhere.doc, fn, 0);
@ -671,8 +667,6 @@ evalbackcmd(union node *n, struct backcmd *result)
savehandler = handler;
if (setjmp(jmploc.loc)) {
if (exception == EXERROR)
exitstatus = 2;
else if (exception == EXEXEC)
/* nothing */;
else if (exception != 0) {
handler = savehandler;
@ -1092,8 +1086,6 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd)
e = exception;
if (e == EXINT)
exitstatus = SIGINT+128;
else if (e != EXEXEC && e != EXEXIT)
exitstatus = 2;
goto cmddone;
}
handler = &jmploc;
@ -1142,8 +1134,7 @@ evalcommand(union node *cmd, int flags, struct backcmd *backcmd)
if (cmdentry.u.index != EXECCMD)
popredir();
if (e != -1) {
if ((e != EXERROR && e != EXEXEC)
|| cmdentry.special)
if (e != EXERROR || cmdentry.special)
exraise(e);
popfilesupto(savetopfile);
if (flags != EV_BACKCMD)

View File

@ -133,13 +133,10 @@ shellexec(char **argv, char **envp, const char *path, int idx)
}
/* Map to POSIX errors */
if (e == ENOENT || e == ENOTDIR) {
exitstatus = 127;
exerror(EXEXEC, "%s: not found", argv[0]);
} else {
exitstatus = 126;
exerror(EXEXEC, "%s: %s", argv[0], strerror(e));
}
if (e == ENOENT || e == ENOTDIR)
errorwithstatus(127, "%s: not found", argv[0]);
else
errorwithstatus(126, "%s: %s", argv[0], strerror(e));
}

View File

@ -1006,7 +1006,7 @@ vforkexecshell(struct job *jp, char **argv, char **envp, const char *path, int i
if (pid == 0) {
TRACE(("Child shell %d\n", (int)getpid()));
if (setjmp(jmploc.loc))
_exit(exception == EXEXEC ? exitstatus : 2);
_exit(exitstatus);
if (pip != NULL) {
close(pip[0]);
if (pip[1] != 1) {

View File

@ -105,15 +105,6 @@ main(int argc, char *argv[])
initcharset();
state = 0;
if (setjmp(main_handler.loc)) {
switch (exception) {
case EXERROR:
exitstatus = 2;
break;
default:
break;
}
if (state == 0 || iflag == 0 || ! rootshell ||
exception == EXEXIT)
exitshell(exitstatus);

View File

@ -243,9 +243,6 @@ ATF_TC_BODY(mbrtowc_internal, tc)
{
struct test *t;
#ifdef __FreeBSD__
atf_tc_expect_fail("ja_* locale fails");
#endif
for (t = &tests[0]; t->data != NULL; ++t)
h_ctype2(t, false);
}

View File

@ -130,7 +130,7 @@ VIKEYS const vikeys [MAXVIKEY + 1] = {
/* 034 ^\ */
{v_exmode, 0,
"^\\",
" ^\\ switch to ex mode"},
"^\\ switch to ex mode"},
/* 035 ^] */
{v_tagpush, V_ABS|V_KEYW|VM_RCM_SET,
"^]",

View File

@ -741,7 +741,7 @@ capdns_setup(void)
if (capdnsloc == NULL)
error("unable to open system.dns service");
/* Limit system.dns to reverse DNS lookups. */
types[0] = "ADDR";
types[0] = "ADDR2NAME";
if (cap_dns_type_limit(capdnsloc, types, 1) < 0)
error("unable to limit access to system.dns service");
families[0] = AF_INET;

View File

@ -523,7 +523,7 @@ main(int argc, char **argv)
int sump = 0;
int sockerrno;
#ifdef WITH_CASPER
const char *types[] = { "NAME", "ADDR" };
const char *types[] = { "NAME2ADDR", "ADDR2NAME" };
int families[1];
cap_channel_t *casper;
#endif

View File

@ -710,7 +710,7 @@ SRCS_MIN+= ProfileData/InstrProfWriter.cpp
SRCS_MIN+= ProfileData/ProfileSummaryBuilder.cpp
SRCS_MIN+= ProfileData/SampleProf.cpp
SRCS_MIN+= ProfileData/SampleProfReader.cpp
SRCS_EXT+= ProfileData/SampleProfWriter.cpp
SRCS_MIN+= ProfileData/SampleProfWriter.cpp
SRCS_MIN+= Support/APFloat.cpp
SRCS_MIN+= Support/APInt.cpp
SRCS_MIN+= Support/APSInt.cpp

View File

@ -922,6 +922,21 @@ be_set_nextboot(libbe_handle_t *lbh, nvlist_t *config, uint64_t pool_guid,
return (0);
}
/*
* Deactivate old BE dataset; currently just sets canmount=noauto
*/
static int
be_deactivate(libbe_handle_t *lbh, const char *ds)
{
zfs_handle_t *zfs;
if ((zfs = zfs_open(lbh->lzh, ds, ZFS_TYPE_DATASET)) == NULL)
return (1);
if (zfs_prop_set(zfs, "canmount", "noauto") != 0)
return (1);
zfs_close(zfs);
return (0);
}
int
be_activate(libbe_handle_t *lbh, const char *bootenv, bool temporary)
@ -961,6 +976,9 @@ be_activate(libbe_handle_t *lbh, const char *bootenv, bool temporary)
return (be_set_nextboot(lbh, vdevs, pool_guid, buf));
} else {
if (be_deactivate(lbh, lbh->bootfs) != 0)
return (-1);
/* Obtain bootenv zpool */
err = zpool_set_prop(lbh->active_phandle, "bootfs", be_path);
if (err)

View File

@ -39,7 +39,7 @@ __FBSDID("$FreeBSD$");
#include "../iconv/citrus_hash.h"
#include "../iconv/citrus_module.h"
#include "../iconv/citrus_iconv.h"
#include "xlocale_private.h"
#include "mblocal.h"
typedef struct {
bool initialized;
@ -65,7 +65,7 @@ cXXrtomb_l(char * __restrict s, charXX_t c, mbstate_t * __restrict ps,
FIX_LOCALE(locale);
if (ps == NULL)
ps = &locale->cXXrtomb;
ps = &(XLOCALE_CTYPE(locale)->cXXrtomb);
cs = (_ConversionState *)ps;
handle = &cs->iconv;

View File

@ -47,10 +47,11 @@ mblen_l(const char *s, size_t n, locale_t locale)
if (s == NULL) {
/* No support for state dependent encodings. */
locale->mblen = initial;
XLOCALE_CTYPE(locale)->mblen = initial;
return (0);
}
rval = XLOCALE_CTYPE(locale)->__mbrtowc(NULL, s, n, &locale->mblen);
rval = XLOCALE_CTYPE(locale)->__mbrtowc(NULL, s, n,
&(XLOCALE_CTYPE(locale)->mblen));
if (rval == (size_t)-1 || rval == (size_t)-2)
return (-1);
return ((int)rval);

View File

@ -60,6 +60,34 @@ struct xlocale_ctype {
size_t, size_t, mbstate_t * __restrict);
int __mb_cur_max;
int __mb_sb_limit;
/** Persistent state used by mblen() calls. */
__mbstate_t mblen;
/** Persistent state used by mbrlen() calls. */
__mbstate_t mbrlen;
/** Persistent state used by mbrtoc16() calls. */
__mbstate_t mbrtoc16;
/** Persistent state used by mbrtoc32() calls. */
__mbstate_t mbrtoc32;
/** Persistent state used by mbrtowc() calls. */
__mbstate_t mbrtowc;
/** Persistent state used by mbsnrtowcs() calls. */
__mbstate_t mbsnrtowcs;
/** Persistent state used by mbsrtowcs() calls. */
__mbstate_t mbsrtowcs;
/** Persistent state used by mbtowc() calls. */
__mbstate_t mbtowc;
/** Persistent state used by c16rtomb() calls. */
__mbstate_t c16rtomb;
/** Persistent state used by c32rtomb() calls. */
__mbstate_t c32rtomb;
/** Persistent state used by wcrtomb() calls. */
__mbstate_t wcrtomb;
/** Persistent state used by wcsnrtombs() calls. */
__mbstate_t wcsnrtombs;
/** Persistent state used by wcsrtombs() calls. */
__mbstate_t wcsrtombs;
/** Persistent state used by wctomb() calls. */
__mbstate_t wctomb;
};
#define XLOCALE_CTYPE(x) ((struct xlocale_ctype*)(x)->components[XLC_CTYPE])
extern struct xlocale_ctype __xlocale_global_ctype;

View File

@ -42,7 +42,7 @@ mbrlen_l(const char * __restrict s, size_t n, mbstate_t * __restrict ps, locale_
{
FIX_LOCALE(locale);
if (ps == NULL)
ps = &locale->mbrlen;
ps = &(XLOCALE_CTYPE(locale)->mbrlen);
return (XLOCALE_CTYPE(locale)->__mbrtowc(NULL, s, n, ps));
}

View File

@ -41,7 +41,7 @@ __FBSDID("$FreeBSD$");
#include "../iconv/citrus_hash.h"
#include "../iconv/citrus_module.h"
#include "../iconv/citrus_iconv.h"
#include "xlocale_private.h"
#include "mblocal.h"
typedef struct {
bool initialized;
@ -68,7 +68,7 @@ mbrtocXX_l(charXX_t * __restrict pc, const char * __restrict s, size_t n,
FIX_LOCALE(locale);
if (ps == NULL)
ps = &locale->mbrtocXX;
ps = &(XLOCALE_CTYPE(locale)->mbrtocXX);
cs = (_ConversionState *)ps;
handle = &cs->iconv;

View File

@ -43,7 +43,7 @@ mbrtowc_l(wchar_t * __restrict pwc, const char * __restrict s,
{
FIX_LOCALE(locale);
if (ps == NULL)
ps = &locale->mbrtowc;
ps = &(XLOCALE_CTYPE(locale)->mbrtowc);
return (XLOCALE_CTYPE(locale)->__mbrtowc(pwc, s, n, ps));
}

View File

@ -48,7 +48,7 @@ mbsnrtowcs_l(wchar_t * __restrict dst, const char ** __restrict src,
{
FIX_LOCALE(locale);
if (ps == NULL)
ps = &locale->mbsnrtowcs;
ps = &(XLOCALE_CTYPE(locale)->mbsnrtowcs);
return (XLOCALE_CTYPE(locale)->__mbsnrtowcs(dst, src, nms, len, ps));
}
size_t

View File

@ -46,7 +46,7 @@ mbsrtowcs_l(wchar_t * __restrict dst, const char ** __restrict src, size_t len,
{
FIX_LOCALE(locale);
if (ps == NULL)
ps = &locale->mbsrtowcs;
ps = &(XLOCALE_CTYPE(locale)->mbsrtowcs);
return (XLOCALE_CTYPE(locale)->__mbsnrtowcs(dst, src, SIZE_T_MAX, len, ps));
}
size_t

View File

@ -48,10 +48,11 @@ mbtowc_l(wchar_t * __restrict pwc, const char * __restrict s, size_t n, locale_t
if (s == NULL) {
/* No support for state dependent encodings. */
locale->mbtowc = initial;
XLOCALE_CTYPE(locale)->mbtowc = initial;
return (0);
}
rval = XLOCALE_CTYPE(locale)->__mbrtowc(pwc, s, n, &locale->mbtowc);
rval = XLOCALE_CTYPE(locale)->__mbrtowc(pwc, s, n,
&(XLOCALE_CTYPE(locale)->mbtowc));
switch (rval) {
case (size_t)-2:
errno = EILSEQ;

View File

@ -160,6 +160,21 @@ __setrunelocale(struct xlocale_ctype *l, const char *encoding)
if (ret == 0) {
/* Free the old runes if it exists. */
free_runes(saved.runes);
/* Reset the mbstates */
memset(&l->c16rtomb, 0, sizeof(l->c16rtomb));
memset(&l->c32rtomb, 0, sizeof(l->c32rtomb));
memset(&l->mblen, 0, sizeof(l->mblen));
memset(&l->mbrlen, 0, sizeof(l->mbrlen));
memset(&l->mbrtoc16, 0, sizeof(l->mbrtoc16));
memset(&l->mbrtoc32, 0, sizeof(l->mbrtoc32));
memset(&l->mbrtowc, 0, sizeof(l->mbrtowc));
memset(&l->mbsnrtowcs, 0, sizeof(l->mbsnrtowcs));
memset(&l->mbsrtowcs, 0, sizeof(l->mbsrtowcs));
memset(&l->mbtowc, 0, sizeof(l->mbtowc));
memset(&l->wcrtomb, 0, sizeof(l->wcrtomb));
memset(&l->wcsnrtombs, 0, sizeof(l->wcsnrtombs));
memset(&l->wcsrtombs, 0, sizeof(l->wcsrtombs));
memset(&l->wctomb, 0, sizeof(l->wctomb));
} else {
/* Restore the saved version if this failed. */
memcpy(l, &saved, sizeof(struct xlocale_ctype));

View File

@ -43,7 +43,7 @@ wcrtomb_l(char * __restrict s, wchar_t wc, mbstate_t * __restrict ps,
{
FIX_LOCALE(locale);
if (ps == NULL)
ps = &locale->wcrtomb;
ps = &(XLOCALE_CTYPE(locale)->wcrtomb);
return (XLOCALE_CTYPE(locale)->__wcrtomb(s, wc, ps));
}

View File

@ -48,7 +48,7 @@ wcsnrtombs_l(char * __restrict dst, const wchar_t ** __restrict src, size_t nwc,
{
FIX_LOCALE(locale);
if (ps == NULL)
ps = &locale->wcsnrtombs;
ps = &(XLOCALE_CTYPE(locale)->wcsnrtombs);
return (XLOCALE_CTYPE(locale)->__wcsnrtombs(dst, src, nwc, len, ps));
}
size_t

View File

@ -46,7 +46,7 @@ wcsrtombs_l(char * __restrict dst, const wchar_t ** __restrict src, size_t len,
{
FIX_LOCALE(locale);
if (ps == NULL)
ps = &locale->wcsrtombs;
ps = &(XLOCALE_CTYPE(locale)->wcsrtombs);
return (XLOCALE_CTYPE(locale)->__wcsnrtombs(dst, src, SIZE_T_MAX, len, ps));
}

View File

@ -47,10 +47,11 @@ wctomb_l(char *s, wchar_t wchar, locale_t locale)
if (s == NULL) {
/* No support for state dependent encodings. */
locale->wctomb = initial;
XLOCALE_CTYPE(locale)->wctomb = initial;
return (0);
}
if ((rval = XLOCALE_CTYPE(locale)->__wcrtomb(s, wchar, &locale->wctomb)) == (size_t)-1)
if ((rval = XLOCALE_CTYPE(locale)->__wcrtomb(s, wchar,
&(XLOCALE_CTYPE(locale)->wctomb))) == (size_t)-1)
return (-1);
return ((int)rval);
}

View File

@ -128,34 +128,6 @@ struct _xlocale {
int using_messages_locale;
/** The structure to be returned from localeconv_l() for this locale. */
struct lconv lconv;
/** Persistent state used by mblen() calls. */
__mbstate_t mblen;
/** Persistent state used by mbrlen() calls. */
__mbstate_t mbrlen;
/** Persistent state used by mbrtoc16() calls. */
__mbstate_t mbrtoc16;
/** Persistent state used by mbrtoc32() calls. */
__mbstate_t mbrtoc32;
/** Persistent state used by mbrtowc() calls. */
__mbstate_t mbrtowc;
/** Persistent state used by mbsnrtowcs() calls. */
__mbstate_t mbsnrtowcs;
/** Persistent state used by mbsrtowcs() calls. */
__mbstate_t mbsrtowcs;
/** Persistent state used by mbtowc() calls. */
__mbstate_t mbtowc;
/** Persistent state used by c16rtomb() calls. */
__mbstate_t c16rtomb;
/** Persistent state used by c32rtomb() calls. */
__mbstate_t c32rtomb;
/** Persistent state used by wcrtomb() calls. */
__mbstate_t wcrtomb;
/** Persistent state used by wcsnrtombs() calls. */
__mbstate_t wcsnrtombs;
/** Persistent state used by wcsrtombs() calls. */
__mbstate_t wcsrtombs;
/** Persistent state used by wctomb() calls. */
__mbstate_t wctomb;
/** Buffer used by nl_langinfo_l() */
char *csym;
};

View File

@ -335,6 +335,7 @@ static int
nss_configure(void)
{
static time_t confmod;
static int already_initialized = 0;
struct stat statbuf;
int result, isthreaded;
const char *path;
@ -352,6 +353,16 @@ nss_configure(void)
if (path == NULL)
#endif
path = _PATH_NS_CONF;
#ifndef NS_REREAD_CONF
/*
* Define NS_REREAD_CONF to have nsswitch notice changes
* to nsswitch.conf(5) during runtime. This involves calling
* stat(2) every time, which can result in performance hit.
*/
if (already_initialized)
return (0);
already_initialized = 1;
#endif /* NS_REREAD_CONF */
if (stat(path, &statbuf) != 0)
return (0);
if (statbuf.st_mtime <= confmod)

View File

@ -28,7 +28,7 @@
.\" @(#)access.2 8.2 (Berkeley) 4/1/94
.\" $FreeBSD$
.\"
.Dd October 20, 2018
.Dd November 11, 2018
.Dt ACCESS 2
.Os
.Sh NAME
@ -121,7 +121,12 @@ The checks for accessibility are performed using the effective user and group
IDs instead of the real user and group ID as required in a call to
.Fn access .
.It Dv AT_BENEATH
Only operate on files and directories below the starting directory.
Only operate on files and directories below the topping directory.
See the description of the
.Dv O_BENEATH
flag in the
.Xr open 2
manual page.
.El
.Pp
Even if a process's real or effective user has appropriate privileges
@ -198,14 +203,23 @@ is neither
.Dv AT_FDCWD
nor a file descriptor associated with a directory.
.It Bq Er ENOTCAPABLE
.Fa path
is an absolute path,
or contained a ".." component leading to a
directory outside of the directory hierarchy specified by
.Fa fd ,
and the process is in capability mode.
.It Bq Er ENOTCAPABLE
The
.Dv AT_BENEATH
flag was specified but
flag was provided to
.Fn faccessat ,
and the absolute
.Fa path
is not strictly relative to the starting directory.
For example,
does not have its tail fully contained under the topping directory,
or the relative
.Fa path
is absolute or includes a ".." component that escapes the starting directory.
escapes it.
.El
.Sh SEE ALSO
.Xr chmod 2 ,

View File

@ -28,7 +28,7 @@
.\" @(#)chflags.2 8.3 (Berkeley) 5/2/95
.\" $FreeBSD$
.\"
.Dd October 20, 2018
.Dd November 11, 2018
.Dt CHFLAGS 2
.Os
.Sh NAME
@ -96,7 +96,12 @@ If
names a symbolic link, then the flags of the symbolic link are changed.
.It Dv AT_BENEATH
Only allow to change flags for a file which is beneath of
the starting directory.
the topping directory.
See the description of the
.Dv O_BENEATH
flag in the
.Xr open 2
manual page.
.El
.Pp
If
@ -306,14 +311,23 @@ The underlying file system does not support file flags, or
does not support all of the flags set in
.Fa flags .
.It Bq Er ENOTCAPABLE
.Fa path
is an absolute path,
or contained a ".." component leading to a
directory outside of the directory hierarchy specified by
.Fa fd ,
and the process is in capability mode.
.It Bq Er ENOTCAPABLE
The
.Dv AT_BENEATH
flag was specified but
flag was provided to
.Fn chflagsat ,
and the absolute
.Fa path
is not strictly relative to the starting directory.
For example,
does not have its tail fully contained under the topping directory,
or the relative
.Fa path
is absolute or includes a ".." component that escapes the starting directory.
escapes it.
.El
.Sh SEE ALSO
.Xr chflags 1 ,

View File

@ -28,7 +28,7 @@
.\" @(#)chmod.2 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd October 20, 2018
.Dd November 11, 2018
.Dt CHMOD 2
.Os
.Sh NAME
@ -103,7 +103,12 @@ If
names a symbolic link, then the mode of the symbolic link is changed.
.It Dv AT_BENEATH
Only allow to change permissions of a file which is beneath of
the starting directory.
the topping directory.
See the description of the
.Dv O_BENEATH
flag in the
.Xr open 2
manual page.
.El
.Pp
If
@ -289,14 +294,23 @@ is neither
.Dv AT_FDCWD
nor a file descriptor associated with a directory.
.It Bq Er ENOTCAPABLE
.Fa path
is an absolute path,
or contained a ".." component leading to a
directory outside of the directory hierarchy specified by
.Fa fd ,
and the process is in capability mode.
.It Bq Er ENOTCAPABLE
The
.Dv AT_BENEATH
flag was specified but
flag was provided to
.Fn fchmodat ,
and the absolute
.Fa path
is not strictly relative to the starting directory.
For example,
does not have its tail fully contained under the topping directory,
or the relative
.Fa path
is absolute or includes a ".." component that escapes the starting directory.
escapes it.
.El
.Sh SEE ALSO
.Xr chmod 1 ,

View File

@ -28,7 +28,7 @@
.\" @(#)chown.2 8.4 (Berkeley) 4/19/94
.\" $FreeBSD$
.\"
.Dd Octover 20, 2018
.Dd November 11, 2018
.Dt CHOWN 2
.Os
.Sh NAME
@ -120,7 +120,12 @@ If
names a symbolic link, ownership of the symbolic link is changed.
.It Dv AT_BENEATH
Only allow to change ownership of a file which is beneath of
the starting directory.
the topping directory.
See the description of the
.Dv O_BENEATH
flag in the
.Xr open 2
manual page.
.El
.Pp
If
@ -231,14 +236,23 @@ is neither
.Dv AT_FDCWD
nor a file descriptor associated with a directory.
.It Bq Er ENOTCAPABLE
.Fa path
is an absolute path,
or contained a ".." component leading to a
directory outside of the directory hierarchy specified by
.Fa fd ,
and the process is in capability mode.
.It Bq Er ENOTCAPABLE
The
.Dv AT_BENEATH
flag was specified but
flag was provided to
.Fn fchownat ,
and the absolute
.Fa path
is not strictly relative to the starting directory.
For example,
does not have its tail fully contained under the topping directory,
or the relative
.Fa path
is absolute or includes a ".." component that escapes the starting directory.
escapes it.
.El
.Sh SEE ALSO
.Xr chgrp 1 ,

View File

@ -28,7 +28,7 @@
.\" @(#)link.2 8.3 (Berkeley) 1/12/94
.\" $FreeBSD$
.\"
.Dd October 20, 2018
.Dd November 11, 2018
.Dt LINK 2
.Os
.Sh NAME
@ -116,7 +116,12 @@ If
names a symbolic link, a new link for the target of the symbolic link is
created.
.It Dv AT_BENEATH
Only allow to link to a file which is beneath of the starting directory.
Only allow to link to a file which is beneath of the topping directory.
See the description of the
.Dv O_BENEATH
flag in the
.Xr open 2
manual page.
.El
.Pp
If
@ -260,16 +265,25 @@ respectively, is neither
.Dv AT_FDCWD
nor a file descriptor associated with a directory.
.It Bq Er ENOTCAPABLE
The
.Dv AT_BENEATH
flag was specified but
.Fa name1
is not strictly relative to the starting directory.
For example,
.Fa name1
is absolute or includes a ".." component that escapes the starting directory.
is absolute or includes a ".." component that escapes
the directory hierarchy specified by
.Fa fd ,
and the process is in capability mode.
.It Bq Er ENOTCAPABLE
The
.Dv AT_BENEATH
flag was specified.
flag was provided to
.Fa linkat
and the absolute path
.Fa name1
does not have its tail fully contained under the topping directory,
or the relative path
.Fa name1
escapes it.
.El
.Sh SEE ALSO
.Xr chflags 2 ,

View File

@ -28,7 +28,7 @@
.\" @(#)open.2 8.2 (Berkeley) 11/16/93
.\" $FreeBSD$
.\"
.Dd October 20, 2018
.Dd November 11, 2018
.Dt OPEN 2
.Os
.Sh NAME
@ -75,8 +75,14 @@ function is equivalent to the
.Fn open
function except in the case where the
.Fa path
specifies a relative path.
In this case the file to be opened is determined relative to the directory
specifies a relative path, or the
.Dv O_BENEATH
flag is provided.
For
.Fn openat
and relative
.Fa path ,
the file to be opened is determined relative to the directory
associated with the file descriptor
.Fa fd
instead of the current working directory.
@ -95,6 +101,26 @@ parameter, the current working directory is used
and the behavior is identical to a call to
.Fn open .
.Pp
When
.Fn openat
is called with an absolute
.Fa path
without the
.Dv O_BENEATH
flag, it ignores the
.Fa fd
argument.
When
.Dv O_BENEATH
is specified with an absolute
.Fa path ,
a directory passed by the
.Fa fd
argument is used as the topping point for the resolution.
See the definition of the
.Dv O_BENEATH
flag below.
.Pp
In
.Xr capsicum 4
capability mode,
@ -109,14 +135,28 @@ must be strictly relative to a file descriptor
as defined in
.Pa sys/kern/vfs_lookup.c .
.Fa path
must not be an absolute path and must not contain ".." components.
must not be an absolute path and must not contain ".." components
which cause the path resolution to escape the directory hierarchy
starting at
.Fa fd .
Additionally, no symbolic link in
.Fa path
may contain ".." components either.
may target absolute path or contain escaping ".." components.
.Fa fd
must not be
.Dv AT_FDCWD .
.Pp
If the
.Dv vfs.lookup_cap_dotdot
.Xr sysctl 3
MIB is set to zero, ".." components in the paths,
used in capability mode, or with the
.Dv O_BENEATH
flag, are completely disabled.
If the
.Dv vfs.lookup_cap_dotdot_nonlocal
MIB is set to zero, ".." is not allowed if found on non-local filesystem.
.Pp
The flags specified are formed by
.Em or Ns 'ing
the following values
@ -142,7 +182,7 @@ O_TTY_INIT ignored
O_DIRECTORY error if file is not a directory
O_CLOEXEC set FD_CLOEXEC upon open
O_VERIFY verify the contents of the file
O_BENEATH require path to be strictly relative to starting directory
O_BENEATH require path to be strictly relative to topping directory
.Ed
.Pp
Opening a file with
@ -273,19 +313,21 @@ been verified before operating on them.
.Dv O_BENEATH
returns
.Er ENOTCAPABLE
if the specified path, after resolving all symlinks and ".." references
in it, does not reside in the directory hierarchy of children beneath
the starting directory, or is an absolute path.
Starting directory is the process current directory if relative
if the specified relative path, after resolving all symlinks and ".."
references, does not reside in the directory hierarchy of
children beneath the topping directory.
Topping directory is the process current directory if relative
.Fa path
is used for
.Fn open ,
and the directory referenced by the
.Fa fd
argument when specifying relative
.Fa path
for
argument when using
.Fn openat .
If the specified path is absolute,
.Dv O_BENEATH
allows arbitrary prefix that ends up at the topping directory,
after which all further resolved components must be under it.
.Pp
If successful,
.Fn open
@ -509,9 +551,16 @@ is an absolute path,
or contained a ".." component leading to a
directory outside of the directory hierarchy specified by
.Fa fd ,
and the process is in capability mode or the
and the process is in capability mode.
.It Bq Er ENOTCAPABLE
The
.Dv O_BENEATH
flag was provided.
flag was provided, and the absolute
.Fa path
does not have its tail fully contained under the topping directory,
or the relative
.Fa path
escapes it.
.El
.Sh SEE ALSO
.Xr chmod 2 ,

View File

@ -28,7 +28,7 @@
.\" @(#)stat.2 8.4 (Berkeley) 5/1/95
.\" $FreeBSD$
.\"
.Dd October 20, 2018
.Dd November 11, 2018
.Dt STAT 2
.Os
.Sh NAME
@ -84,11 +84,24 @@ and
.Fn lstat
except when the
.Fa path
specifies a relative path.
In this case the status is retrieved from a file relative to
specifies a relative path, or the
.Dv AT_BENEATH
flag is provided.
For
.Fn fstatat
and relative
.Fa path ,
the status is retrieved from a file relative to
the directory associated with the file descriptor
.Fa fd
instead of the current working directory.
For
.Dv AT_BENEATH
and absolute
.Fa path ,
the status is retrieved from a file specified by the
.Fa path ,
but additional permission checks are performed, see below.
.Pp
The values for the
.Fa flag
@ -101,7 +114,7 @@ If
.Fa path
names a symbolic link, the status of the symbolic link is returned.
.It Dv AT_BENEATH
Only stat files and directories below the starting directory.
Only stat files and directories below the topping directory.
See the description of the
.Dv O_BENEATH
flag in the
@ -125,6 +138,23 @@ respectively, depending on whether or not the
bit is set in
.Fa flag .
.Pp
When
.Fn fstatat
is called with an absolute
.Fa path
without the
.Dv AT_BENEATH
flag, it ignores the
.Fa fd
argument.
When
.Dv AT_BENEATH
is specified with an absolute
.Fa path ,
a directory passed by the
.Fa fd
argument is used as the topping point for the resolution.
.Pp
The
.Fa sb
argument is a pointer to a
@ -405,14 +435,23 @@ is neither
.Dv AT_FDCWD
nor a file descriptor associated with a directory.
.It Bq Er ENOTCAPABLE
.Fa path
is an absolute path,
or contained a ".." component leading to a
directory outside of the directory hierarchy specified by
.Fa fd ,
and the process is in capability mode.
.It Bq Er ENOTCAPABLE
The
.Dv AT_BENEATH
flag was specified but
flag was provided to
.Fn fstatat ,
and the absolute
.Fa path
is not strictly relative to the starting directory.
For example,
does not have its tail fully contained under the topping directory,
or the relative
.Fa path
is absolute or includes a ".." component that escapes the starting directory.
escapes it.
.El
.Sh SEE ALSO
.Xr access 2 ,

View File

@ -28,7 +28,7 @@
.\" @(#)unlink.2 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd October 20, 2018
.Dd November 11, 2018
.Dt UNLINK 2
.Os
.Sh NAME
@ -90,8 +90,13 @@ and
.Fa path
as a directory, not a normal file.
.It Dv AT_BENEATH
Only unlink files and directories which are beneath of the starting
Only unlink files and directories which are beneath of the topping
directory.
See the description of the
.Dv O_BENEATH
flag in the
.Xr open 2
manual page.
.El
.Pp
If
@ -204,14 +209,23 @@ is neither
.Dv AT_FDCWD
nor a file descriptor associated with a directory.
.It Bq Er ENOTCAPABLE
.Fa path
is an absolute path,
or contained a ".." component leading to a
directory outside of the directory hierarchy specified by
.Fa fd ,
and the process is in capability mode.
.It Bq Er ENOTCAPABLE
The
.Dv AT_BENEATH
flag was specified but
flag was provided to
.Fn unlinkat ,
and the absolute
.Fa path
is not strictly relative to the starting directory.
For example,
does not have its tail fully contained under the topping directory,
or the relative
.Fa path
is absolute or includes a ".." component that escapes the starting directory.
escapes it.
.El
.Sh SEE ALSO
.Xr chflags 2 ,

View File

@ -31,7 +31,7 @@
.\" @(#)utimes.2 8.1 (Berkeley) 6/4/93
.\" $FreeBSD$
.\"
.Dd October 20, 2018
.Dd November 11, 2018
.Dt UTIMENSAT 2
.Os
.Sh NAME
@ -148,7 +148,12 @@ By default,
changes the times of the file referenced by the symbolic link.
.It Dv AT_BENEATH
Only allow to change the times of a file which is beneath of
the starting directory.
the topping directory.
See the description of the
.Dv O_BENEATH
flag in the
.Xr open 2
manual page.
.El
.Sh RETURN VALUES
.Rv -std
@ -271,14 +276,23 @@ is neither
.Dv AT_FDCWD
nor a file descriptor associated with a directory.
.It Bq Er ENOTCAPABLE
.Fa path
is an absolute path,
or contained a ".." component leading to a
directory outside of the directory hierarchy specified by
.Fa fd ,
and the process is in capability mode.
.It Bq Er ENOTCAPABLE
The
.Dv AT_BENEATH
flag was specified but
flag was provided to
.Fn utimensat ,
and the absolute
.Fa path
is not strictly relative to the starting directory.
For example,
does not have its tail fully contained under the topping directory,
or the relative
.Fa path
is absolute or includes a ".." component that escapes the starting directory.
escapes it.
.El
.Sh SEE ALSO
.Xr chflags 2 ,

View File

@ -6,7 +6,7 @@ SHLIBDIR?= /lib/casper
PACKAGE=libcasper
SHLIB_MAJOR= 1
SHLIB_MAJOR= 2
INCSDIR?= ${INCLUDEDIR}/casper
.if ${MK_CASPER} != "no"

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd November 4, 2018
.Dd November 12, 2018
.Dt CAP_DNS 3
.Os
.Sh NAME
@ -92,9 +92,9 @@ function limits the functions allowed in the service.
The
.Fa types
variable can be set to
.Dv ADDR
.Dv ADDR2NAME
or
.Dv NAME .
.Dv NAME2ADDR .
See the
.Sx LIMITS
section for more details.
@ -129,9 +129,9 @@ for that function can contain the following values and types:
The
.Va type
can have two values:
.Dv ADDR
.Dv ADDR2NAME
or
.Dv NAME .
.Dv NAME2ADDR .
The
.Dv ADDR
means that reverse DNS lookups are allowed with

View File

@ -474,7 +474,7 @@ dns_gethostbyname(const nvlist_t *limits, const nvlist_t *nvlin,
struct hostent *hp;
int family;
if (!dns_allowed_type(limits, "NAME"))
if (!dns_allowed_type(limits, "NAME2ADDR"))
return (NO_RECOVERY);
family = (int)nvlist_get_number(nvlin, "family");
@ -498,7 +498,7 @@ dns_gethostbyaddr(const nvlist_t *limits, const nvlist_t *nvlin,
size_t addrsize;
int family;
if (!dns_allowed_type(limits, "ADDR"))
if (!dns_allowed_type(limits, "ADDR2NAME"))
return (NO_RECOVERY);
family = (int)nvlist_get_number(nvlin, "family");
@ -524,7 +524,7 @@ dns_getnameinfo(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
socklen_t salen;
int error, flags;
if (!dns_allowed_type(limits, "ADDR"))
if (!dns_allowed_type(limits, "ADDR2NAME"))
return (NO_RECOVERY);
error = 0;
@ -617,7 +617,7 @@ dns_getaddrinfo(const nvlist_t *limits, const nvlist_t *nvlin, nvlist_t *nvlout)
unsigned int ii;
int error, family, n;
if (!dns_allowed_type(limits, "NAME"))
if (!dns_allowed_type(limits, "NAME2ADDR"))
return (NO_RECOVERY);
hostname = dnvlist_get_string(nvlin, "hostname", NULL);
@ -702,8 +702,8 @@ dns_limit(const nvlist_t *oldlimits, const nvlist_t *newlimits)
if (strncmp(name, "type", sizeof("type") - 1) != 0)
return (EINVAL);
type = nvlist_get_string(newlimits, name);
if (strcmp(type, "ADDR") != 0 &&
strcmp(type, "NAME") != 0) {
if (strcmp(type, "ADDR2NAME") != 0 &&
strcmp(type, "NAME2ADDR") != 0) {
return (EINVAL);
}
if (!dns_allowed_type(oldlimits, type))

View File

@ -357,8 +357,8 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "NAME";
types[1] = "ADDR";
types[0] = "NAME2ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == 0);
families[0] = AF_INET;
families[1] = AF_INET6;
@ -380,12 +380,12 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "NAME";
types[0] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 1) == 0);
types[1] = "ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == -1 &&
errno == ENOTCAPABLE);
types[0] = "ADDR";
types[0] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 1) == -1 &&
errno == ENOTCAPABLE);
families[0] = AF_INET;
@ -407,12 +407,12 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "ADDR";
types[0] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 1) == 0);
types[1] = "NAME";
types[1] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 2) == -1 &&
errno == ENOTCAPABLE);
types[0] = "NAME";
types[0] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 1) == -1 &&
errno == ENOTCAPABLE);
families[0] = AF_INET;
@ -432,8 +432,8 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "NAME";
types[1] = "ADDR";
types[0] = "NAME2ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == 0);
families[0] = AF_INET;
CHECK(cap_dns_family_limit(capdns, families, 1) == 0);
@ -459,8 +459,8 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "NAME";
types[1] = "ADDR";
types[0] = "NAME2ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == 0);
families[0] = AF_INET6;
CHECK(cap_dns_family_limit(capdns, families, 1) == 0);
@ -488,18 +488,18 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "NAME";
types[1] = "ADDR";
types[0] = "NAME2ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == 0);
families[0] = AF_INET;
families[1] = AF_INET6;
CHECK(cap_dns_family_limit(capdns, families, 2) == 0);
types[0] = "NAME";
types[0] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 1) == 0);
types[1] = "ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == -1 &&
errno == ENOTCAPABLE);
types[0] = "ADDR";
types[0] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 1) == -1 &&
errno == ENOTCAPABLE);
families[0] = AF_INET;
@ -525,18 +525,18 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "NAME";
types[1] = "ADDR";
types[0] = "NAME2ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == 0);
families[0] = AF_INET;
families[1] = AF_INET6;
CHECK(cap_dns_family_limit(capdns, families, 2) == 0);
types[0] = "NAME";
types[0] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 1) == 0);
types[1] = "ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == -1 &&
errno == ENOTCAPABLE);
types[0] = "ADDR";
types[0] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 1) == -1 &&
errno == ENOTCAPABLE);
families[0] = AF_INET6;
@ -562,18 +562,18 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "NAME";
types[1] = "ADDR";
types[0] = "NAME2ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == 0);
families[0] = AF_INET;
families[1] = AF_INET6;
CHECK(cap_dns_family_limit(capdns, families, 2) == 0);
types[0] = "ADDR";
types[0] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 1) == 0);
types[1] = "NAME";
types[1] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 2) == -1 &&
errno == ENOTCAPABLE);
types[0] = "NAME";
types[0] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 1) == -1 &&
errno == ENOTCAPABLE);
families[0] = AF_INET;
@ -598,18 +598,18 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "NAME";
types[1] = "ADDR";
types[0] = "NAME2ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == 0);
families[0] = AF_INET;
families[1] = AF_INET6;
CHECK(cap_dns_family_limit(capdns, families, 2) == 0);
types[0] = "ADDR";
types[0] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 1) == 0);
types[1] = "NAME";
types[1] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 2) == -1 &&
errno == ENOTCAPABLE);
types[0] = "NAME";
types[0] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 1) == -1 &&
errno == ENOTCAPABLE);
families[0] = AF_INET6;
@ -630,13 +630,13 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "NAME";
types[0] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 1) == 0);
families[0] = AF_INET;
CHECK(cap_dns_family_limit(capdns, families, 1) == 0);
types[0] = "NAME";
types[1] = "ADDR";
types[0] = "NAME2ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == -1 &&
errno == ENOTCAPABLE);
families[0] = AF_INET;
@ -644,7 +644,7 @@ main(void)
CHECK(cap_dns_family_limit(capdns, families, 2) == -1 &&
errno == ENOTCAPABLE);
types[0] = "ADDR";
types[0] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 1) == -1 &&
errno == ENOTCAPABLE);
families[0] = AF_INET6;
@ -665,13 +665,13 @@ main(void)
capdns = cap_clone(origcapdns);
CHECK(capdns != NULL);
types[0] = "ADDR";
types[0] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 1) == 0);
families[0] = AF_INET6;
CHECK(cap_dns_family_limit(capdns, families, 1) == 0);
types[0] = "NAME";
types[1] = "ADDR";
types[0] = "NAME2ADDR";
types[1] = "ADDR2NAME";
CHECK(cap_dns_type_limit(capdns, types, 2) == -1 &&
errno == ENOTCAPABLE);
families[0] = AF_INET;
@ -679,7 +679,7 @@ main(void)
CHECK(cap_dns_family_limit(capdns, families, 2) == -1 &&
errno == ENOTCAPABLE);
types[0] = "NAME";
types[0] = "NAME2ADDR";
CHECK(cap_dns_type_limit(capdns, types, 1) == -1 &&
errno == ENOTCAPABLE);
families[0] = AF_INET;

View File

@ -1050,10 +1050,18 @@ kldload_param(const char *name)
kl = kldload(name);
else if (strncmp(name, "allow.mount.", 12) == 0) {
/* Load the matching filesystem */
kl = kldload(name + 12);
const char *modname;
if (strcmp("fusefs", name + 12) == 0 ||
strcmp("nofusefs", name + 12) == 0) {
modname = "fuse";
} else {
modname = name + 12;
}
kl = kldload(modname);
if (kl < 0 && errno == ENOENT &&
strncmp(name + 12, "no", 2) == 0)
kl = kldload(name + 14);
strncmp(modname, "no", 2) == 0)
kl = kldload(modname + 2);
} else {
errno = ENOENT;
return (-1);

View File

@ -703,6 +703,7 @@ iovctl_files="" # Config files for iovctl(8)
### Jail Configuration (see rc.conf(5) manual page) ##########
##############################################################
jail_enable="NO" # Set to NO to disable starting of any jails
jail_conf="/etc/jail.conf" # Configuration file for jail(8)
jail_confwarn="YES" # Prevent warning about obsolete per-jail configuration
jail_parallel_start="NO" # Start jails in the background
jail_list="" # Space separated list of names of jails

View File

@ -21,7 +21,6 @@ config_cmd="jail_config"
console_cmd="jail_console"
status_cmd="jail_status"
extra_commands="config console status"
: ${jail_conf:=/etc/jail.conf}
: ${jail_program:=/usr/sbin/jail}
: ${jail_consolecmd:=/usr/bin/login -f root}
: ${jail_jexec:=/usr/sbin/jexec}

View File

@ -1,7 +1,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd October 21, 2018
.Dd November 12, 2018
.Dt IPFW 8
.Os
.Sh NAME
@ -3495,6 +3495,15 @@ NPTv6 module translates source address when it matches this prefix.
.It Cm ext_prefix Ar ipv6_prefix
IPv6 prefix used in external network.
NPTv6 module translates destination address when it matches this prefix.
.It Cm ext_if Ar nic
The NPTv6 module will use first global IPv6 address from interface
.Ar nic
as external prefix.
It can be useful when IPv6 prefix of external network is dynamically obtained.
.Cm ext_prefix
and
.Cm ext_if
options are mutually exclusive.
.It Cm prefixlen Ar length
The length of specified IPv6 prefixes. It must be in range from 8 to 64.
.El
@ -4285,7 +4294,7 @@ In the following example per-interface firewall is created:
.Pp
The following example illustrate usage of flow tables:
.Pp
.Dl "ipfw table fl create type flow:flow:src-ip,proto,dst-ip,dst-port"
.Dl "ipfw table fl create type flow:src-ip,proto,dst-ip,dst-port"
.Dl "ipfw table fl add 2a02:6b8:77::88,tcp,2a02:6b8:77::99,80 11"
.Dl "ipfw table fl add 10.0.0.1,udp,10.0.0.2,53 12"
.Dl ".."

View File

@ -294,6 +294,7 @@ enum tokens {
TOK_INTPREFIX,
TOK_EXTPREFIX,
TOK_PREFIXLEN,
TOK_EXTIF,
TOK_TCPSETMSS,

View File

@ -152,6 +152,7 @@ static struct _s_x nptv6newcmds[] = {
{ "int_prefix", TOK_INTPREFIX },
{ "ext_prefix", TOK_EXTPREFIX },
{ "prefixlen", TOK_PREFIXLEN },
{ "ext_if", TOK_EXTIF },
{ NULL, 0 }
};
@ -214,6 +215,9 @@ nptv6_create(const char *name, uint8_t set, int ac, char *av[])
ac--; av++;
break;
case TOK_EXTPREFIX:
if (flags & NPTV6_HAS_EXTPREFIX)
errx(EX_USAGE,
"Only one ext_prefix or ext_if allowed");
NEED1("IPv6 prefix required");
nptv6_parse_prefix(*av, &cfg->external, &plen);
flags |= NPTV6_HAS_EXTPREFIX;
@ -221,6 +225,18 @@ nptv6_create(const char *name, uint8_t set, int ac, char *av[])
goto check_prefix;
ac--; av++;
break;
case TOK_EXTIF:
if (flags & NPTV6_HAS_EXTPREFIX)
errx(EX_USAGE,
"Only one ext_prefix or ext_if allowed");
NEED1("Interface name required");
if (strlen(*av) >= sizeof(cfg->if_name))
errx(EX_USAGE, "Invalid interface name");
flags |= NPTV6_HAS_EXTPREFIX;
cfg->flags |= NPTV6_DYNAMIC_PREFIX;
strncpy(cfg->if_name, *av, sizeof(cfg->if_name));
ac--; av++;
break;
case TOK_PREFIXLEN:
NEED1("IPv6 prefix length required");
plen = strtol(*av, &p, 10);
@ -245,13 +261,14 @@ nptv6_create(const char *name, uint8_t set, int ac, char *av[])
if ((flags & NPTV6_HAS_INTPREFIX) != NPTV6_HAS_INTPREFIX)
errx(EX_USAGE, "int_prefix required");
if ((flags & NPTV6_HAS_EXTPREFIX) != NPTV6_HAS_EXTPREFIX)
errx(EX_USAGE, "ext_prefix required");
errx(EX_USAGE, "ext_prefix or ext_if required");
if ((flags & NPTV6_HAS_PREFIXLEN) != NPTV6_HAS_PREFIXLEN)
errx(EX_USAGE, "prefixlen required");
n2mask(&mask, cfg->plen);
APPLY_MASK(&cfg->internal, &mask);
APPLY_MASK(&cfg->external, &mask);
if ((cfg->flags & NPTV6_DYNAMIC_PREFIX) == 0)
APPLY_MASK(&cfg->external, &mask);
olh->count = 1;
olh->objsize = sizeof(*cfg);
@ -350,8 +367,13 @@ nptv6_show_cb(ipfw_nptv6_cfg *cfg, const char *name, uint8_t set)
printf("set %u ", cfg->set);
inet_ntop(AF_INET6, &cfg->internal, abuf, sizeof(abuf));
printf("nptv6 %s int_prefix %s ", cfg->name, abuf);
inet_ntop(AF_INET6, &cfg->external, abuf, sizeof(abuf));
printf("ext_prefix %s prefixlen %u\n", abuf, cfg->plen);
if (cfg->flags & NPTV6_DYNAMIC_PREFIX)
printf("ext_if %s ", cfg->if_name);
else {
inet_ntop(AF_INET6, &cfg->external, abuf, sizeof(abuf));
printf("ext_prefix %s ", abuf);
}
printf("prefixlen %u\n", cfg->plen);
return (0);
}

View File

@ -1403,6 +1403,7 @@ ifa_lookup(const char *ifa_name, int flags)
set_ipmask(n, 128);
}
n->ifindex = p->ifindex;
n->ifname = strdup(p->ifname);
n->next = NULL;
n->tail = n;

View File

@ -242,7 +242,8 @@ main(int argc, char *const *argv)
#endif
struct sockaddr_in *to;
double t;
u_long alarmtimeout, ultmp;
u_long alarmtimeout;
long ltmp;
int almost_done, ch, df, hold, i, icmp_len, mib[4], preload;
int ssend_errno, srecv_errno, tos, ttl;
char ctrl[CMSG_SPACE(sizeof(struct timeval))];
@ -311,12 +312,12 @@ main(int argc, char *const *argv)
options |= F_AUDIBLE;
break;
case 'c':
ultmp = strtoul(optarg, &ep, 0);
if (*ep || ep == optarg || ultmp > LONG_MAX || !ultmp)
ltmp = strtol(optarg, &ep, 0);
if (*ep || ep == optarg || ltmp > LONG_MAX || ltmp <=0)
errx(EX_USAGE,
"invalid count of packets to transmit: `%s'",
optarg);
npackets = ultmp;
npackets = ltmp;
break;
case 'D':
options |= F_HDRINCL;
@ -334,46 +335,46 @@ main(int argc, char *const *argv)
setbuf(stdout, (char *)NULL);
break;
case 'G': /* Maximum packet size for ping sweep */
ultmp = strtoul(optarg, &ep, 0);
if (*ep || ep == optarg)
ltmp = strtol(optarg, &ep, 0);
if (*ep || ep == optarg || ltmp <= 0)
errx(EX_USAGE, "invalid packet size: `%s'",
optarg);
if (uid != 0 && ultmp > DEFDATALEN) {
if (uid != 0 && ltmp > DEFDATALEN) {
errno = EPERM;
err(EX_NOPERM,
"packet size too large: %lu > %u",
ultmp, DEFDATALEN);
"packet size too large: %ld > %u",
ltmp, DEFDATALEN);
}
options |= F_SWEEP;
sweepmax = ultmp;
sweepmax = ltmp;
break;
case 'g': /* Minimum packet size for ping sweep */
ultmp = strtoul(optarg, &ep, 0);
if (*ep || ep == optarg)
ltmp = strtol(optarg, &ep, 0);
if (*ep || ep == optarg || ltmp <= 0)
errx(EX_USAGE, "invalid packet size: `%s'",
optarg);
if (uid != 0 && ultmp > DEFDATALEN) {
if (uid != 0 && ltmp > DEFDATALEN) {
errno = EPERM;
err(EX_NOPERM,
"packet size too large: %lu > %u",
ultmp, DEFDATALEN);
"packet size too large: %ld > %u",
ltmp, DEFDATALEN);
}
options |= F_SWEEP;
sweepmin = ultmp;
sweepmin = ltmp;
break;
case 'h': /* Packet size increment for ping sweep */
ultmp = strtoul(optarg, &ep, 0);
if (*ep || ep == optarg || ultmp < 1)
ltmp = strtol(optarg, &ep, 0);
if (*ep || ep == optarg || ltmp < 1)
errx(EX_USAGE, "invalid increment size: `%s'",
optarg);
if (uid != 0 && ultmp > DEFDATALEN) {
if (uid != 0 && ltmp > DEFDATALEN) {
errno = EPERM;
err(EX_NOPERM,
"packet size too large: %lu > %u",
ultmp, DEFDATALEN);
"packet size too large: %ld > %u",
ltmp, DEFDATALEN);
}
options |= F_SWEEP;
sweepincr = ultmp;
sweepincr = ltmp;
break;
case 'I': /* multicast interface */
if (inet_aton(optarg, &ifaddr) == 0)
@ -399,15 +400,15 @@ main(int argc, char *const *argv)
loop = 0;
break;
case 'l':
ultmp = strtoul(optarg, &ep, 0);
if (*ep || ep == optarg || ultmp > INT_MAX)
ltmp = strtol(optarg, &ep, 0);
if (*ep || ep == optarg || ltmp > INT_MAX || ltmp < 0)
errx(EX_USAGE,
"invalid preload value: `%s'", optarg);
if (uid) {
errno = EPERM;
err(EX_NOPERM, "-l flag");
}
preload = ultmp;
preload = ltmp;
break;
case 'M':
switch(optarg[0]) {
@ -425,10 +426,10 @@ main(int argc, char *const *argv)
}
break;
case 'm': /* TTL */
ultmp = strtoul(optarg, &ep, 0);
if (*ep || ep == optarg || ultmp > MAXTTL)
ltmp = strtol(optarg, &ep, 0);
if (*ep || ep == optarg || ltmp > MAXTTL || ltmp < 0)
errx(EX_USAGE, "invalid TTL: `%s'", optarg);
ttl = ultmp;
ttl = ltmp;
options |= F_TTL;
break;
case 'n':
@ -470,24 +471,24 @@ main(int argc, char *const *argv)
source = optarg;
break;
case 's': /* size of packet to send */
ultmp = strtoul(optarg, &ep, 0);
if (*ep || ep == optarg)
ltmp = strtol(optarg, &ep, 0);
if (*ep || ep == optarg || ltmp < 0)
errx(EX_USAGE, "invalid packet size: `%s'",
optarg);
if (uid != 0 && ultmp > DEFDATALEN) {
if (uid != 0 && ltmp > DEFDATALEN) {
errno = EPERM;
err(EX_NOPERM,
"packet size too large: %lu > %u",
ultmp, DEFDATALEN);
"packet size too large: %ld > %u",
ltmp, DEFDATALEN);
}
datalen = ultmp;
datalen = ltmp;
break;
case 'T': /* multicast TTL */
ultmp = strtoul(optarg, &ep, 0);
if (*ep || ep == optarg || ultmp > MAXTTL)
ltmp = strtol(optarg, &ep, 0);
if (*ep || ep == optarg || ltmp > MAXTTL || ltmp < 0)
errx(EX_USAGE, "invalid multicast TTL: `%s'",
optarg);
mttl = ultmp;
mttl = ltmp;
options |= F_MTTL;
break;
case 't':
@ -513,10 +514,10 @@ main(int argc, char *const *argv)
break;
case 'z':
options |= F_HDRINCL;
ultmp = strtoul(optarg, &ep, 0);
if (*ep || ep == optarg || ultmp > MAXTOS)
ltmp = strtol(optarg, &ep, 0);
if (*ep || ep == optarg || ltmp > MAXTOS || ltmp < 0)
errx(EX_USAGE, "invalid TOS: `%s'", optarg);
tos = ultmp;
tos = ltmp;
break;
default:
usage();
@ -611,7 +612,7 @@ main(int argc, char *const *argv)
if (capdns != NULL) {
const char *types[1];
types[0] = "ADDR";
types[0] = "ADDR2NAME";
if (cap_dns_type_limit(capdns, types, 1) < 0)
err(1, "unable to limit access to system.dns service");
}
@ -1780,8 +1781,8 @@ capdns_setup(void)
cap_close(capcas);
if (capdnsloc == NULL)
err(1, "unable to open system.dns service");
types[0] = "NAME";
types[1] = "ADDR";
types[0] = "NAME2ADDR";
types[1] = "ADDR2NAME";
if (cap_dns_type_limit(capdnsloc, types, 2) < 0)
err(1, "unable to limit access to system.dns service");
families[0] = AF_INET;

View File

@ -60,7 +60,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd September 21, 2018
.Dd November 10, 2018
.Dt DDB 4
.Os
.Sh NAME
@ -108,7 +108,9 @@ If linked into the running kernel,
it can be invoked locally with the
.Ql debug
.Xr keymap 5
action.
action, or by setting setting the
.Dv debug.kdb.enter
sysctl to 1.
The debugger is also invoked on kernel
.Xr panic 9
if the
@ -261,9 +263,9 @@ Non-printing characters are displayed as octal escapes.
display in unsigned hex with character dump at the end of each line.
The location is also displayed in hex at the beginning of each line.
.It Cm i
display as an instruction
display as a disassembled instruction
.It Cm I
display as an instruction with possible alternate formats depending on the
display as an disassembled instruction with possible alternate formats depending on the
machine.
On i386, this selects the alternate format for the instruction decoding
(16 bits in a 32-bit code segment and vice versa).

View File

@ -27,7 +27,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd October 23, 2018
.Dd October 28, 2018
.Dt NETMAP 4
.Os
.Sh NAME
@ -1073,8 +1073,11 @@ Other
clients attached to the same switch can now communicate
with the network card or the host.
.Sh SEE ALSO
.Xr pkt-gen 8 ,
.Xr bridge 8
.Xr vale 4 ,
.Xr vale-ctl 4 ,
.Xr bridge 8 ,
.Xr lb 8 ,
.Xr pkt-gen 8
.Pp
.Pa http://info.iet.unipi.it/~luigi/netmap/
.Pp

View File

@ -16,7 +16,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd June 9, 2016
.Dd November 8, 2018
.Dt RUM 4
.Os
.Sh NAME
@ -123,7 +123,7 @@ including:
.It "Sitecom WL-113 ver 2" Ta USB
.It "Sitecom WL-172" Ta USB
.It "Sweex LW053" Ta USB
.It "TP-LINK TL-WN321G" Ta USB
.It "TP-LINK TL-WN321G v1/v2/v3" Ta USB
.El
.Sh EXAMPLES
Join an existing BSS network (i.e., connect to an access point):

View File

@ -16,7 +16,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd July 10, 2018
.Dd November 8, 2018
.Dt RUN 4
.Os
.Sh NAME
@ -176,6 +176,7 @@ driver supports the following wireless adapters:
.It Sweex LW303
.It Sweex LW313
.It TP-LINK TL-WDN3200
.It TP-LINK TL-WN321G v4
.It TP-LINK TL-WN727N v3
.It Unex DNUR-81
.It Unex DNUR-82

View File

@ -33,7 +33,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd June 6, 2016
.Dd November 10, 2018
.Dt NSSWITCH.CONF 5
.Os
.Sh NAME
@ -62,7 +62,7 @@ the current source.
Each criterion consists of one or more status codes, and actions to
take if that status code occurs.
.Ss Sources
The following sources are implemented:
The following sources are implemented as part of the base system:
.Pp
.Bl -tag -width Source -compact
.It Sy Source
@ -100,6 +100,8 @@ makes use of the
.Xr nscd 8
daemon.
.El
.Pp
Additional sources might be provided by third party software.
.Ss Databases
The following databases are used by the following C library functions:
.Pp
@ -340,6 +342,12 @@ sets a policy of "if the user is notfound in nis, do not try files."
This treats nis as the authoritative source of information, except
when the server is down.
.Sh NOTES
The
.Nm
file is parsed by each program only once.
Subsequent changes will not be applied until the program
is restarted.
.Pp
If system got compiled with
.Va WITHOUT_NIS
you have to remove

View File

@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
.Dd August 16, 2018
.Dd November 10, 2018
.Dt BUILD 7
.Os
.Sh NAME
@ -168,16 +168,16 @@ are:
.Bl -tag -width ".Cm distributeworld"
.It Cm buildenv
Spawn an interactive shell with environment variables set up for
cross-building the system.
The target architecture needs to be specified with
building the system or individual components.
For cross-building the target architecture needs to be specified with
.Xr make 1
variables
.Va TARGET_ARCH
and
.Va TARGET .
.Pp
This target is only useful after a complete cross-toolchain including
the compiler, linker, assembler, headers and libraries has been
This target is only useful after a complete toolchain (including
the compiler, linker, assembler, headers and libraries) has been
built; see the
.Cm toolchain
target below.

View File

@ -1,7 +1,3 @@
# Warning: Do not edit. This file is automatically generated from the
# tools in /usr/src/tools/tools/locale. The data is obtained from the
# CLDR project, obtained from http://cldr.unicode.org/
# -----------------------------------------------------------------------------
#
# Short month names
Jän.
@ -59,8 +55,8 @@ Samstag
%a %e %b %X %Y
#
# AM/PM
vorm.
nachm.
#
# date_fmt
%a %e %b %Y %X %Z
@ -83,5 +79,5 @@ Dezember
dm
#
# ampm_fmt
%I:%M:%S %p
# EOF

View File

@ -1,7 +1,3 @@
# Warning: Do not edit. This file is automatically generated from the
# tools in /usr/src/tools/tools/locale. The data is obtained from the
# CLDR project, obtained from http://cldr.unicode.org/
# -----------------------------------------------------------------------------
#
# Short month names
Jän.
@ -59,8 +55,8 @@ Samstag
%a %e %b %X %Y
#
# AM/PM
vorm.
nachm.
#
# date_fmt
%a %e %b %Y %X %Z
@ -83,5 +79,5 @@ Dezember
dm
#
# ampm_fmt
%I:%M:%S %p
# EOF

View File

@ -1,7 +1,3 @@
# Warning: Do not edit. This file is automatically generated from the
# tools in /usr/src/tools/tools/locale. The data is obtained from the
# CLDR project, obtained from http://cldr.unicode.org/
# -----------------------------------------------------------------------------
#
# Short month names
Jan.
@ -59,8 +55,8 @@ Samstag
%a %e %b %X %Y
#
# AM/PM
vorm.
nachm.
#
# date_fmt
%a %e %b %Y %X %Z
@ -83,5 +79,5 @@ Dezember
dm
#
# ampm_fmt
%I:%M:%S %p
# EOF

View File

@ -1,7 +1,3 @@
# Warning: Do not edit. This file is automatically generated from the
# tools in /usr/src/tools/tools/locale. The data is obtained from the
# CLDR project, obtained from http://cldr.unicode.org/
# -----------------------------------------------------------------------------
#
# Short month names
Jan.
@ -59,8 +55,8 @@ Samstag
%a %e %b %X %Y
#
# AM/PM
vorm.
nachm.
#
# date_fmt
%a %e %b %Y %X %Z
@ -83,5 +79,5 @@ Dezember
dm
#
# ampm_fmt
%I:%M:%S %p
# EOF

View File

@ -675,10 +675,12 @@ ptable_open(void *dev, uint64_t sectors, uint16_t sectorsize,
table->type = PTABLE_NONE;
STAILQ_INIT(&table->entries);
if (ptable_iso9660read(table, dev, dread) != NULL) {
if (table->type == PTABLE_ISO9660)
goto out;
}
if (ptable_iso9660read(table, dev, dread) == NULL) {
/* Read error. */
table = NULL;
goto out;
} else if (table->type == PTABLE_ISO9660)
goto out;
#ifdef LOADER_VTOC8_SUPPORT
if (be16dec(buf + offsetof(struct vtoc8, magic)) == VTOC_MAGIC) {

View File

@ -515,24 +515,38 @@ END(memcpy_erms)
1256:
movq %rdi,%r9
movq %r10,%rax
testl $15,%edi
jnz 3f
1:
.if \erms == 1
rep
stosb
movq %r9,%rax
.else
movq %rcx,%rdx
shrq $3,%rcx
rep
stosq
movq %r9,%rax
andl $7,%edx
jnz 1f
jnz 2f
POP_FRAME_POINTER
ret
1:
2:
movq %r10,-8(%rdi,%rdx)
.endif
POP_FRAME_POINTER
ret
ALIGN_TEXT
3:
movq %r10,(%rdi)
movq %r10,8(%rdi)
movq %rdi,%r8
andq $15,%r8
leaq -16(%rcx,%r8),%rcx
neg %r8
leaq 16(%rdi,%r8),%rdi
jmp 1b
.endm
ENTRY(memset_std)

View File

@ -64,7 +64,7 @@ sdma_fw.c optional sdma_fw \
clean "sdma_fw.c"
sdma-imx6q-to1.fwo optional sdma_fw \
dependency "sdma-imx6q-to1.bin" \
compile-with "${LD} -b binary -d -warn-common -r -d -o ${.TARGET} sdma-imx6q-to1.bin" \
compile-with "${LD} -m ${LD_EMULATION} -b binary -d -warn-common -r -d -o ${.TARGET} sdma-imx6q-to1.bin" \
no-implicit-rule \
clean "sdma-imx6q-to1.fwo"
sdma-imx6q-to1.bin optional sdma_fw \

View File

@ -4565,7 +4565,7 @@ arc_flush(spa_t *spa, boolean_t retry)
(void) arc_flush_state(arc_mfu_ghost, guid, ARC_BUFC_METADATA, retry);
}
void
uint64_t
arc_shrink(int64_t to_free)
{
uint64_t asize = aggsum_value(&arc_size);
@ -4593,8 +4593,9 @@ arc_shrink(int64_t to_free)
if (asize > arc_c) {
DTRACE_PROBE2(arc__shrink_adjust, uint64_t, asize,
uint64_t, arc_c);
(void) arc_adjust();
return (arc_adjust());
}
return (0);
}
typedef enum free_memory_reason_t {
@ -4917,7 +4918,7 @@ arc_reclaim_thread(void *unused __unused)
to_free = MAX(to_free, ptob(needfree));
#endif
#endif
arc_shrink(to_free);
evicted += arc_shrink(to_free);
}
} else if (free_memory < arc_c >> arc_no_grow_shift) {
arc_no_grow = B_TRUE;

View File

@ -47,14 +47,14 @@ __mac_get_fd
__mac_get_proc
__mac_set_fd
__mac_set_proc
freebsd32_sysctl
freebsd32_umtx_op
freebsd32___sysctl
freebsd32__umtx_op
abort2
accept
accept4
aio_cancel
freebsd32_aio_error
aio_fsync
freebsd32_aio_fsync
freebsd32_aio_read
freebsd32_aio_return
freebsd32_aio_suspend
@ -94,16 +94,17 @@ freebsd32_fexecve
flock
fork
fpathconf
freebsd11_freebsd32_fstat
freebsd11_freebsd32_fstatat
freebsd11_freebsd32_getdirentries
freebsd11_freebsd32_fstatfs
freebsd11_freebsd32_mknodat
freebsd6_freebsd32_ftruncate
freebsd6_freebsd32_lseek
freebsd6_freebsd32_mmap
freebsd6_freebsd32_pread
freebsd6_freebsd32_pwrite
freebsd32_fstat
freebsd32_fstatat
freebsd32_getdirentries
freebsd32_fstatfs
freebsd32_mknodat
freebsd32_ftruncate
freebsd32_lseek
freebsd32_mmap
mmap
freebsd32_pread
freebsd32_pwrite
freebsd32_fstat
fstatfs
fsync
@ -115,7 +116,7 @@ getaudit
getaudit_addr
getauid
freebsd32_getcontext
getdents
freebsd32_getdents
freebsd32_getdirentries
getdirentries
getdomainname
@ -178,7 +179,7 @@ freebsd32_nanosleep
ntp_gettime
freebsd6_freebsd32_aio_read
freebsd6_freebsd32_aio_write
obreak
break
freebsd6_freebsd32_lio_listio
chflagsat
faccessat
@ -223,7 +224,7 @@ sched_get_priority_max
sched_get_priority_min
sched_getparam
sched_getscheduler
sched_rr_get_interval
freebsd32_sched_rr_get_interval
sched_setparam
sched_setscheduler
sched_yield
@ -260,11 +261,15 @@ freebsd32_sigaction
freebsd32_sigaltstack
freebsd32_sigblock
freebsd32_sigpending
sigpending
freebsd32_sigprocmask
sigprocmask
freebsd32_sigqueue
sigqueue
freebsd32_sigreturn
freebsd32_sigsetmask
ofreebsd32_sigstack
freebsd32_sigstack
freebsd32_sigsuspend
sigsuspend
freebsd32_sigtimedwait
freebsd32_sigvec

View File

@ -463,25 +463,14 @@ freebsd32_fexecve(struct thread *td, struct freebsd32_fexecve_args *uap)
return (error);
}
#if defined(COMPAT_FREEBSD11)
int
freebsd11_freebsd32_mknod(struct thread *td,
struct freebsd11_freebsd32_mknod_args *uap)
{
return (kern_mknodat(td, AT_FDCWD, uap->path, UIO_USERSPACE, uap->mode,
uap->dev));
}
int
freebsd11_freebsd32_mknodat(struct thread *td,
struct freebsd11_freebsd32_mknodat_args *uap)
freebsd32_mknodat(struct thread *td, struct freebsd32_mknodat_args *uap)
{
return (kern_mknodat(td, uap->fd, uap->path, UIO_USERSPACE, uap->mode,
uap->dev));
return (kern_mknodat(td, uap->fd, uap->path, UIO_USERSPACE,
uap->mode, PAIR32TO64(dev_t, uap->dev)));
}
#endif /* COMPAT_FREEBSD11 */
int
freebsd32_mprotect(struct thread *td, struct freebsd32_mprotect_args *uap)
@ -2260,7 +2249,7 @@ freebsd11_freebsd32_fhstat(struct thread *td,
#endif
int
freebsd32_sysctl(struct thread *td, struct freebsd32_sysctl_args *uap)
freebsd32___sysctl(struct thread *td, struct freebsd32___sysctl_args *uap)
{
int error, name[CTL_MAXNAME];
size_t j, oldlen;

View File

@ -162,7 +162,7 @@ struct freebsd32_shmsys_args {
char a3_l_[PADL_(uint32_t)]; uint32_t a3; char a3_r_[PADR_(uint32_t)];
char a4_l_[PADL_(uint32_t)]; uint32_t a4; char a4_r_[PADR_(uint32_t)];
};
struct freebsd32_sysctl_args {
struct freebsd32___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)];
char old_l_[PADL_(void *)]; void * old; char old_r_[PADR_(void *)];
@ -350,7 +350,7 @@ struct freebsd32_ksem_timedwait_args {
struct freebsd32_thr_suspend_args {
char timeout_l_[PADL_(const struct timespec32 *)]; const struct timespec32 * timeout; char timeout_r_[PADR_(const struct timespec32 *)];
};
struct freebsd32_umtx_op_args {
struct freebsd32__umtx_op_args {
char obj_l_[PADL_(void *)]; void * obj; char obj_r_[PADR_(void *)];
char op_l_[PADL_(int)]; int op; char op_r_[PADR_(int)];
char val_l_[PADL_(u_long)]; u_long val; char val_r_[PADR_(u_long)];
@ -684,6 +684,24 @@ struct freebsd32_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 stat32 *)]; struct stat32 * sb; char sb_r_[PADR_(struct stat32 *)];
};
#ifdef PAD64_REQUIRED
struct freebsd32_mknodat_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)];
char mode_l_[PADL_(mode_t)]; mode_t mode; char mode_r_[PADR_(mode_t)];
char pad_l_[PADL_(int)]; int pad; char pad_r_[PADR_(int)];
char dev1_l_[PADL_(uint32_t)]; uint32_t dev1; char dev1_r_[PADR_(uint32_t)];
char dev2_l_[PADL_(uint32_t)]; uint32_t dev2; char dev2_r_[PADR_(uint32_t)];
};
#else
struct freebsd32_mknodat_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)];
char mode_l_[PADL_(mode_t)]; mode_t mode; char mode_r_[PADR_(mode_t)];
char dev1_l_[PADL_(uint32_t)]; uint32_t dev1; char dev1_r_[PADR_(uint32_t)];
char dev2_l_[PADL_(uint32_t)]; uint32_t dev2; char dev2_r_[PADR_(uint32_t)];
};
#endif
struct freebsd32_kevent_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char changelist_l_[PADL_(const struct kevent32 *)]; const struct kevent32 * changelist; char changelist_r_[PADR_(const struct kevent32 *)];
@ -736,7 +754,7 @@ int freebsd32_sysarch(struct thread *, struct freebsd32_sysarch_args *);
int freebsd32_semsys(struct thread *, struct freebsd32_semsys_args *);
int freebsd32_msgsys(struct thread *, struct freebsd32_msgsys_args *);
int freebsd32_shmsys(struct thread *, struct freebsd32_shmsys_args *);
int freebsd32_sysctl(struct thread *, struct freebsd32_sysctl_args *);
int freebsd32___sysctl(struct thread *, struct freebsd32___sysctl_args *);
int freebsd32_futimes(struct thread *, struct freebsd32_futimes_args *);
int freebsd32_msgsnd(struct thread *, struct freebsd32_msgsnd_args *);
int freebsd32_msgrcv(struct thread *, struct freebsd32_msgrcv_args *);
@ -776,7 +794,7 @@ int freebsd32_setcontext(struct thread *, struct freebsd32_setcontext_args *);
int freebsd32_swapcontext(struct thread *, struct freebsd32_swapcontext_args *);
int freebsd32_ksem_timedwait(struct thread *, struct freebsd32_ksem_timedwait_args *);
int freebsd32_thr_suspend(struct thread *, struct freebsd32_thr_suspend_args *);
int freebsd32_umtx_op(struct thread *, struct freebsd32_umtx_op_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 *);
@ -839,6 +857,11 @@ int freebsd32_utimensat(struct thread *, struct freebsd32_utimensat_args *);
int freebsd32_fstat(struct thread *, struct freebsd32_fstat_args *);
int freebsd32_fstatat(struct thread *, struct freebsd32_fstatat_args *);
int freebsd32_fhstat(struct thread *, struct freebsd32_fhstat_args *);
#ifdef PAD64_REQUIRED
int freebsd32_mknodat(struct thread *, struct freebsd32_mknodat_args *);
#else
int freebsd32_mknodat(struct thread *, struct freebsd32_mknodat_args *);
#endif
int freebsd32_kevent(struct thread *, struct freebsd32_kevent_args *);
int freebsd32_cpuset_getdomain(struct thread *, struct freebsd32_cpuset_getdomain_args *);
int freebsd32_cpuset_setdomain(struct thread *, struct freebsd32_cpuset_setdomain_args *);
@ -916,6 +939,9 @@ struct ofreebsd32_getdirentries_args {
#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 *);
@ -987,6 +1013,9 @@ struct freebsd4_freebsd32_sigreturn_args {
#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 *);
@ -1072,6 +1101,9 @@ struct freebsd6_freebsd32_lio_listio_args {
#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 *);
@ -1118,6 +1150,9 @@ struct freebsd7_freebsd32_shmctl_args {
#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 *);
@ -1142,6 +1177,9 @@ int freebsd7_freebsd32_shmctl(struct thread *, struct freebsd7_freebsd32_shmctl_
#ifdef PAD64_REQUIRED
#else
#endif
#ifdef PAD64_REQUIRED
#else
#endif
int freebsd10_freebsd32_pipe(struct thread *, struct freebsd10_freebsd32_pipe_args *);
#endif /* COMPAT_FREEBSD10 */
@ -1152,11 +1190,6 @@ int freebsd10_freebsd32_pipe(struct thread *, struct freebsd10_freebsd32_pipe_ar
#if !defined(PAD64_REQUIRED) && (defined(__powerpc__) || defined(__mips__))
#define PAD64_REQUIRED
#endif
struct freebsd11_freebsd32_mknod_args {
char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const 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_freebsd32_stat_args {
char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const char *)];
char ub_l_[PADL_(struct freebsd11_stat32 *)]; struct freebsd11_stat32 * ub; char ub_r_[PADR_(struct freebsd11_stat32 *)];
@ -1204,19 +1237,15 @@ struct freebsd11_freebsd32_fstatat_args {
char buf_l_[PADL_(struct freebsd11_stat32 *)]; struct freebsd11_stat32 * buf; char buf_r_[PADR_(struct freebsd11_stat32 *)];
char flag_l_[PADL_(int)]; int flag; char flag_r_[PADR_(int)];
};
struct freebsd11_freebsd32_mknodat_args {
char fd_l_[PADL_(int)]; int fd; char fd_r_[PADR_(int)];
char path_l_[PADL_(const char *)]; const char * path; char path_r_[PADR_(const 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)];
};
#ifdef PAD64_REQUIRED
#else
#endif
#ifdef PAD64_REQUIRED
#else
#endif
int freebsd11_freebsd32_mknod(struct thread *, struct freebsd11_freebsd32_mknod_args *);
#ifdef PAD64_REQUIRED
#else
#endif
int freebsd11_freebsd32_stat(struct thread *, struct freebsd11_freebsd32_stat_args *);
int freebsd11_freebsd32_fstat(struct thread *, struct freebsd11_freebsd32_fstat_args *);
int freebsd11_freebsd32_lstat(struct thread *, struct freebsd11_freebsd32_lstat_args *);
@ -1225,12 +1254,10 @@ int freebsd11_freebsd32_getdents(struct thread *, struct freebsd11_freebsd32_get
int freebsd11_freebsd32_fhstat(struct thread *, struct freebsd11_freebsd32_fhstat_args *);
int freebsd11_freebsd32_kevent(struct thread *, struct freebsd11_freebsd32_kevent_args *);
int freebsd11_freebsd32_fstatat(struct thread *, struct freebsd11_freebsd32_fstatat_args *);
int freebsd11_freebsd32_mknodat(struct thread *, struct freebsd11_freebsd32_mknodat_args *);
#endif /* COMPAT_FREEBSD11 */
#define FREEBSD32_SYS_AUE_freebsd32_wait4 AUE_WAIT4
#define FREEBSD32_SYS_AUE_freebsd11_freebsd32_mknod AUE_MKNOD
#define FREEBSD32_SYS_AUE_freebsd4_freebsd32_getfsstat AUE_GETFSSTAT
#define FREEBSD32_SYS_AUE_ofreebsd32_lseek AUE_LSEEK
#define FREEBSD32_SYS_AUE_freebsd32_recvmsg AUE_RECVMSG
@ -1282,7 +1309,7 @@ int freebsd11_freebsd32_mknodat(struct thread *, struct freebsd11_freebsd32_mkno
#define FREEBSD32_SYS_AUE_freebsd6_freebsd32_lseek AUE_LSEEK
#define FREEBSD32_SYS_AUE_freebsd6_freebsd32_truncate AUE_TRUNCATE
#define FREEBSD32_SYS_AUE_freebsd6_freebsd32_ftruncate AUE_FTRUNCATE
#define FREEBSD32_SYS_AUE_freebsd32_sysctl AUE_SYSCTL
#define FREEBSD32_SYS_AUE_freebsd32___sysctl AUE_SYSCTL
#define FREEBSD32_SYS_AUE_freebsd32_futimes AUE_FUTIMES
#define FREEBSD32_SYS_AUE_freebsd7_freebsd32_semctl AUE_SEMCTL
#define FREEBSD32_SYS_AUE_freebsd7_freebsd32_msgctl AUE_MSGCTL
@ -1335,7 +1362,7 @@ int freebsd11_freebsd32_mknodat(struct thread *, struct freebsd11_freebsd32_mkno
#define FREEBSD32_SYS_AUE_freebsd32_swapcontext AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_ksem_timedwait AUE_SEMWAIT
#define FREEBSD32_SYS_AUE_freebsd32_thr_suspend AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_umtx_op AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32__umtx_op AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_thr_new AUE_THR_NEW
#define FREEBSD32_SYS_AUE_freebsd32_sigqueue AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_kmq_open AUE_MQ_OPEN
@ -1364,7 +1391,6 @@ int freebsd11_freebsd32_mknodat(struct thread *, struct freebsd11_freebsd32_mkno
#define FREEBSD32_SYS_AUE_freebsd32_fexecve AUE_FEXECVE
#define FREEBSD32_SYS_AUE_freebsd11_freebsd32_fstatat AUE_FSTATAT
#define FREEBSD32_SYS_AUE_freebsd32_futimesat AUE_FUTIMESAT
#define FREEBSD32_SYS_AUE_freebsd11_freebsd32_mknodat AUE_MKNODAT
#define FREEBSD32_SYS_AUE_freebsd32_jail_get AUE_JAIL_GET
#define FREEBSD32_SYS_AUE_freebsd32_jail_set AUE_JAIL_SET
#define FREEBSD32_SYS_AUE_freebsd32_semctl AUE_SEMCTL
@ -1388,6 +1414,8 @@ int freebsd11_freebsd32_mknodat(struct thread *, struct freebsd11_freebsd32_mkno
#define FREEBSD32_SYS_AUE_freebsd32_fstat AUE_FSTAT
#define FREEBSD32_SYS_AUE_freebsd32_fstatat AUE_FSTATAT
#define FREEBSD32_SYS_AUE_freebsd32_fhstat AUE_FHSTAT
#define FREEBSD32_SYS_AUE_freebsd32_mknodat AUE_MKNODAT
#define FREEBSD32_SYS_AUE_freebsd32_mknodat AUE_MKNODAT
#define FREEBSD32_SYS_AUE_freebsd32_kevent AUE_KEVENT
#define FREEBSD32_SYS_AUE_freebsd32_cpuset_getdomain AUE_NULL
#define FREEBSD32_SYS_AUE_freebsd32_cpuset_setdomain AUE_NULL

View File

@ -19,7 +19,7 @@
/* 11 is obsolete execv */
#define FREEBSD32_SYS_chdir 12
#define FREEBSD32_SYS_fchdir 13
#define FREEBSD32_SYS_freebsd11_freebsd32_mknod 14
#define FREEBSD32_SYS_freebsd11_mknod 14
#define FREEBSD32_SYS_chmod 15
#define FREEBSD32_SYS_chown 16
#define FREEBSD32_SYS_break 17
@ -188,7 +188,7 @@
/* 199 is freebsd6 freebsd32_lseek */
/* 200 is freebsd6 freebsd32_truncate */
/* 201 is freebsd6 freebsd32_ftruncate */
#define FREEBSD32_SYS_freebsd32_sysctl 202
#define FREEBSD32_SYS_freebsd32___sysctl 202
#define FREEBSD32_SYS_mlock 203
#define FREEBSD32_SYS_munlock 204
#define FREEBSD32_SYS_undelete 205
@ -374,7 +374,7 @@
#define FREEBSD32_SYS_getaudit_addr 451
#define FREEBSD32_SYS_setaudit_addr 452
#define FREEBSD32_SYS_auditctl 453
#define FREEBSD32_SYS_freebsd32_umtx_op 454
#define FREEBSD32_SYS_freebsd32__umtx_op 454
#define FREEBSD32_SYS_freebsd32_thr_new 455
#define FREEBSD32_SYS_freebsd32_sigqueue 456
#define FREEBSD32_SYS_freebsd32_kmq_open 457
@ -421,7 +421,7 @@
#define FREEBSD32_SYS_linkat 495
#define FREEBSD32_SYS_mkdirat 496
#define FREEBSD32_SYS_mkfifoat 497
#define FREEBSD32_SYS_freebsd11_freebsd32_mknodat 498
#define FREEBSD32_SYS_freebsd11_mknodat 498
#define FREEBSD32_SYS_openat 499
#define FREEBSD32_SYS_readlinkat 500
#define FREEBSD32_SYS_renameat 501
@ -484,7 +484,8 @@
#define FREEBSD32_SYS_fstatfs 556
#define FREEBSD32_SYS_getfsstat 557
#define FREEBSD32_SYS_fhstatfs 558
#define FREEBSD32_SYS_mknodat 559
#define FREEBSD32_SYS_freebsd32_mknodat 559
#define FREEBSD32_SYS_freebsd32_mknodat 559
#define FREEBSD32_SYS_freebsd32_kevent 560
#define FREEBSD32_SYS_freebsd32_cpuset_getdomain 561
#define FREEBSD32_SYS_freebsd32_cpuset_setdomain 562

View File

@ -23,7 +23,7 @@ const char *freebsd32_syscallnames[] = {
"obs_execv", /* 11 = obsolete execv */
"chdir", /* 12 = chdir */
"fchdir", /* 13 = fchdir */
"compat11.freebsd32_mknod", /* 14 = freebsd11 freebsd32_mknod */
"compat11.mknod", /* 14 = freebsd11 mknod */
"chmod", /* 15 = chmod */
"chown", /* 16 = chown */
"break", /* 17 = break */
@ -211,7 +211,7 @@ const char *freebsd32_syscallnames[] = {
"compat6.freebsd32_lseek", /* 199 = freebsd6 freebsd32_lseek */
"compat6.freebsd32_truncate", /* 200 = freebsd6 freebsd32_truncate */
"compat6.freebsd32_ftruncate", /* 201 = freebsd6 freebsd32_ftruncate */
"freebsd32_sysctl", /* 202 = freebsd32_sysctl */
"freebsd32___sysctl", /* 202 = freebsd32___sysctl */
"mlock", /* 203 = mlock */
"munlock", /* 204 = munlock */
"undelete", /* 205 = undelete */
@ -463,7 +463,7 @@ const char *freebsd32_syscallnames[] = {
"getaudit_addr", /* 451 = getaudit_addr */
"setaudit_addr", /* 452 = setaudit_addr */
"auditctl", /* 453 = auditctl */
"freebsd32_umtx_op", /* 454 = freebsd32_umtx_op */
"freebsd32__umtx_op", /* 454 = freebsd32__umtx_op */
"freebsd32_thr_new", /* 455 = freebsd32_thr_new */
"freebsd32_sigqueue", /* 456 = freebsd32_sigqueue */
"freebsd32_kmq_open", /* 457 = freebsd32_kmq_open */
@ -520,7 +520,7 @@ const char *freebsd32_syscallnames[] = {
"linkat", /* 495 = linkat */
"mkdirat", /* 496 = mkdirat */
"mkfifoat", /* 497 = mkfifoat */
"compat11.freebsd32_mknodat", /* 498 = freebsd11 freebsd32_mknodat */
"compat11.mknodat", /* 498 = freebsd11 mknodat */
"openat", /* 499 = openat */
"readlinkat", /* 500 = readlinkat */
"renameat", /* 501 = renameat */
@ -591,7 +591,11 @@ const char *freebsd32_syscallnames[] = {
"fstatfs", /* 556 = fstatfs */
"getfsstat", /* 557 = getfsstat */
"fhstatfs", /* 558 = fhstatfs */
"mknodat", /* 559 = mknodat */
#ifdef PAD64_REQUIRED
"freebsd32_mknodat", /* 559 = freebsd32_mknodat */
#else
"freebsd32_mknodat", /* 559 = freebsd32_mknodat */
#endif
"freebsd32_kevent", /* 560 = freebsd32_kevent */
"freebsd32_cpuset_getdomain", /* 561 = freebsd32_cpuset_getdomain */
"freebsd32_cpuset_setdomain", /* 562 = freebsd32_cpuset_setdomain */

View File

@ -70,10 +70,10 @@ struct sysent freebsd32_sysent[] = {
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 11 = obsolete execv */
{ AS(chdir_args), (sy_call_t *)sys_chdir, AUE_CHDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 12 = chdir */
{ AS(fchdir_args), (sy_call_t *)sys_fchdir, AUE_FCHDIR, NULL, 0, 0, 0, SY_THR_STATIC }, /* 13 = fchdir */
{ compat11(AS(freebsd11_freebsd32_mknod_args),freebsd32_mknod), AUE_MKNOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 14 = freebsd11 freebsd32_mknod */
{ compat11(AS(freebsd11_mknod_args),mknod), AUE_MKNOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 14 = freebsd11 mknod */
{ AS(chmod_args), (sy_call_t *)sys_chmod, AUE_CHMOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 15 = chmod */
{ AS(chown_args), (sy_call_t *)sys_chown, AUE_CHOWN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 16 = chown */
{ AS(break_args), (sy_call_t *)sys_break, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 17 = break */
{ AS(break_args), (sy_call_t *)sys_break, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 17 = break */
{ compat4(AS(freebsd4_freebsd32_getfsstat_args),freebsd32_getfsstat), AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 18 = freebsd4 freebsd32_getfsstat */
{ compat(AS(ofreebsd32_lseek_args),freebsd32_lseek), AUE_LSEEK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 19 = old freebsd32_lseek */
{ 0, (sy_call_t *)sys_getpid, AUE_GETPID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 20 = getpid */
@ -104,7 +104,7 @@ struct sysent freebsd32_sysent[] = {
{ AS(ktrace_args), (sy_call_t *)sys_ktrace, AUE_KTRACE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 45 = ktrace */
{ compat(AS(ofreebsd32_sigaction_args),freebsd32_sigaction), AUE_SIGACTION, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 46 = old freebsd32_sigaction */
{ 0, (sy_call_t *)sys_getgid, AUE_GETGID, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 47 = getgid */
{ compat(AS(ofreebsd32_sigprocmask_args),freebsd32_sigprocmask), AUE_SIGPROCMASK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 48 = old freebsd32_sigprocmask */
{ compat(AS(ofreebsd32_sigprocmask_args),freebsd32_sigprocmask), AUE_SIGPROCMASK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 48 = old freebsd32_sigprocmask */
{ AS(getlogin_args), (sy_call_t *)sys_getlogin, AUE_GETLOGIN, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 49 = getlogin */
{ AS(setlogin_args), (sy_call_t *)sys_setlogin, AUE_SETLOGIN, NULL, 0, 0, 0, SY_THR_STATIC }, /* 50 = setlogin */
{ AS(acct_args), (sy_call_t *)sys_acct, AUE_ACCT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 51 = acct */
@ -127,7 +127,7 @@ struct sysent freebsd32_sysent[] = {
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 68 = obsolete vwrite */
{ AS(sbrk_args), (sy_call_t *)sys_sbrk, AUE_SBRK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 69 = sbrk */
{ AS(sstk_args), (sy_call_t *)sys_sstk, AUE_SSTK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 70 = sstk */
{ compat(AS(ommap_args),mmap), AUE_MMAP, NULL, 0, 0, 0, SY_THR_STATIC }, /* 71 = old mmap */
{ compat(AS(ommap_args),mmap), AUE_MMAP, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 71 = old mmap */
{ compat11(AS(freebsd11_vadvise_args),vadvise), AUE_O_VADVISE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 72 = freebsd11 vadvise */
{ AS(munmap_args), (sy_call_t *)sys_munmap, AUE_MUNMAP, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 73 = munmap */
{ AS(freebsd32_mprotect_args), (sy_call_t *)freebsd32_mprotect, AUE_MPROTECT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 74 = freebsd32_mprotect */
@ -167,8 +167,8 @@ struct sysent freebsd32_sysent[] = {
{ compat(AS(ofreebsd32_sigvec_args),freebsd32_sigvec), AUE_O_SIGVEC, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 108 = old freebsd32_sigvec */
{ compat(AS(ofreebsd32_sigblock_args),freebsd32_sigblock), AUE_O_SIGBLOCK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 109 = old freebsd32_sigblock */
{ compat(AS(ofreebsd32_sigsetmask_args),freebsd32_sigsetmask), AUE_O_SIGSETMASK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 110 = old freebsd32_sigsetmask */
{ compat(AS(ofreebsd32_sigsuspend_args),freebsd32_sigsuspend), AUE_SIGSUSPEND, NULL, 0, 0, 0, SY_THR_STATIC }, /* 111 = old freebsd32_sigsuspend */
{ compat(AS(ofreebsd32_sigstack_args),freebsd32_sigstack), AUE_O_SIGSTACK, NULL, 0, 0, 0, SY_THR_STATIC }, /* 112 = old freebsd32_sigstack */
{ compat(AS(ofreebsd32_sigsuspend_args),freebsd32_sigsuspend), AUE_SIGSUSPEND, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 111 = old freebsd32_sigsuspend */
{ compat(AS(ofreebsd32_sigstack_args),freebsd32_sigstack), AUE_O_SIGSTACK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 112 = old freebsd32_sigstack */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 113 = obsolete orecvmsg */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 114 = obsolete osendmsg */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 115 = obsolete vtrace */
@ -214,7 +214,7 @@ struct sysent freebsd32_sysent[] = {
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 155 = nfssvc */
{ compat(AS(ofreebsd32_getdirentries_args),freebsd32_getdirentries), AUE_GETDIRENTRIES, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 156 = old freebsd32_getdirentries */
{ compat4(AS(freebsd4_freebsd32_statfs_args),freebsd32_statfs), AUE_STATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 157 = freebsd4 freebsd32_statfs */
{ compat4(AS(freebsd4_freebsd32_fstatfs_args),freebsd32_fstatfs), AUE_FSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 158 = freebsd4 freebsd32_fstatfs */
{ compat4(AS(freebsd4_freebsd32_fstatfs_args),freebsd32_fstatfs), AUE_FSTATFS, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 158 = freebsd4 freebsd32_fstatfs */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 159 = nosys */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 160 = lgetfh */
{ AS(getfh_args), (sy_call_t *)sys_getfh, AUE_NFS_GETFH, NULL, 0, 0, 0, SY_THR_STATIC }, /* 161 = getfh */
@ -258,7 +258,7 @@ struct sysent freebsd32_sysent[] = {
{ compat6(AS(freebsd6_freebsd32_lseek_args),freebsd32_lseek), AUE_LSEEK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 199 = freebsd6 freebsd32_lseek */
{ compat6(AS(freebsd6_freebsd32_truncate_args),freebsd32_truncate), AUE_TRUNCATE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 200 = freebsd6 freebsd32_truncate */
{ compat6(AS(freebsd6_freebsd32_ftruncate_args),freebsd32_ftruncate), AUE_FTRUNCATE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 201 = freebsd6 freebsd32_ftruncate */
{ AS(freebsd32_sysctl_args), (sy_call_t *)freebsd32_sysctl, AUE_SYSCTL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 202 = freebsd32_sysctl */
{ AS(freebsd32___sysctl_args), (sy_call_t *)freebsd32___sysctl, AUE_SYSCTL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 202 = freebsd32___sysctl */
{ AS(mlock_args), (sy_call_t *)sys_mlock, AUE_MLOCK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 203 = mlock */
{ AS(munlock_args), (sy_call_t *)sys_munlock, AUE_MUNLOCK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 204 = munlock */
{ AS(undelete_args), (sy_call_t *)sys_undelete, AUE_UNDELETE, NULL, 0, 0, 0, SY_THR_STATIC }, /* 205 = undelete */
@ -328,7 +328,7 @@ struct sysent freebsd32_sysent[] = {
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 269 = nosys */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 270 = nosys */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 271 = nosys */
{ compat11(AS(freebsd11_freebsd32_getdents_args),freebsd32_getdents), AUE_O_GETDENTS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 272 = freebsd11 freebsd32_getdents */
{ compat11(AS(freebsd11_freebsd32_getdents_args),freebsd32_getdents), AUE_O_GETDENTS, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 272 = freebsd11 freebsd32_getdents */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 273 = nosys */
{ AS(lchmod_args), (sy_call_t *)sys_lchmod, AUE_LCHMOD, NULL, 0, 0, 0, SY_THR_STATIC }, /* 274 = lchmod */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 275 = obsolete netbsd_lchown */
@ -390,7 +390,7 @@ struct sysent freebsd32_sysent[] = {
{ 0, (sy_call_t *)sys_sched_yield, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 331 = sched_yield */
{ AS(sched_get_priority_max_args), (sy_call_t *)sys_sched_get_priority_max, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 332 = sched_get_priority_max */
{ AS(sched_get_priority_min_args), (sy_call_t *)sys_sched_get_priority_min, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 333 = sched_get_priority_min */
{ AS(freebsd32_sched_rr_get_interval_args), (sy_call_t *)freebsd32_sched_rr_get_interval, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 334 = freebsd32_sched_rr_get_interval */
{ AS(freebsd32_sched_rr_get_interval_args), (sy_call_t *)freebsd32_sched_rr_get_interval, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 334 = freebsd32_sched_rr_get_interval */
{ AS(utrace_args), (sy_call_t *)sys_utrace, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 335 = utrace */
{ compat4(AS(freebsd4_freebsd32_sendfile_args),freebsd32_sendfile), AUE_SENDFILE, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 336 = freebsd4 freebsd32_sendfile */
{ AS(kldsym_args), (sy_call_t *)sys_kldsym, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 337 = kldsym */
@ -399,7 +399,7 @@ struct sysent freebsd32_sysent[] = {
{ AS(sigprocmask_args), (sy_call_t *)sys_sigprocmask, AUE_SIGPROCMASK, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 340 = sigprocmask */
{ AS(sigsuspend_args), (sy_call_t *)sys_sigsuspend, AUE_SIGSUSPEND, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 341 = sigsuspend */
{ compat4(AS(freebsd4_freebsd32_sigaction_args),freebsd32_sigaction), AUE_SIGACTION, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 342 = freebsd4 freebsd32_sigaction */
{ AS(sigpending_args), (sy_call_t *)sys_sigpending, AUE_SIGPENDING, NULL, 0, 0, 0, SY_THR_STATIC }, /* 343 = sigpending */
{ AS(sigpending_args), (sy_call_t *)sys_sigpending, AUE_SIGPENDING, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 343 = sigpending */
{ compat4(AS(freebsd4_freebsd32_sigreturn_args),freebsd32_sigreturn), AUE_SIGRETURN, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 344 = freebsd4 freebsd32_sigreturn */
{ AS(freebsd32_sigtimedwait_args), (sy_call_t *)freebsd32_sigtimedwait, AUE_SIGWAIT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 345 = freebsd32_sigtimedwait */
{ AS(freebsd32_sigwaitinfo_args), (sy_call_t *)freebsd32_sigwaitinfo, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 346 = freebsd32_sigwaitinfo */
@ -510,9 +510,9 @@ struct sysent freebsd32_sysent[] = {
{ AS(getaudit_addr_args), (sy_call_t *)sys_getaudit_addr, AUE_GETAUDIT_ADDR, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 451 = getaudit_addr */
{ AS(setaudit_addr_args), (sy_call_t *)sys_setaudit_addr, AUE_SETAUDIT_ADDR, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 452 = setaudit_addr */
{ 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, SYF_CAPENABLED, SY_THR_STATIC }, /* 454 = freebsd32_umtx_op */
{ AS(freebsd32__umtx_op_args), (sy_call_t *)freebsd32__umtx_op, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 454 = freebsd32__umtx_op */
{ AS(freebsd32_thr_new_args), (sy_call_t *)freebsd32_thr_new, AUE_THR_NEW, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 455 = freebsd32_thr_new */
{ AS(freebsd32_sigqueue_args), (sy_call_t *)freebsd32_sigqueue, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 456 = freebsd32_sigqueue */
{ AS(freebsd32_sigqueue_args), (sy_call_t *)freebsd32_sigqueue, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, 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, SYF_CAPENABLED, SY_THR_ABSENT }, /* 458 = freebsd32_kmq_setattr */
{ AS(freebsd32_kmq_timedreceive_args), (sy_call_t *)lkmressys, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_ABSENT }, /* 459 = freebsd32_kmq_timedreceive */
@ -521,7 +521,7 @@ struct sysent freebsd32_sysent[] = {
{ 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, SYF_CAPENABLED, SY_THR_STATIC }, /* 463 = abort2 */
{ AS(thr_set_name_args), (sy_call_t *)sys_thr_set_name, AUE_NULL, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 464 = thr_set_name */
{ AS(freebsd32_aio_fsync_args), (sy_call_t *)freebsd32_aio_fsync, AUE_AIO_FSYNC, NULL, 0, 0, 0, SY_THR_STATIC }, /* 465 = freebsd32_aio_fsync */
{ AS(freebsd32_aio_fsync_args), (sy_call_t *)freebsd32_aio_fsync, AUE_AIO_FSYNC, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 465 = freebsd32_aio_fsync */
{ AS(rtprio_thread_args), (sy_call_t *)sys_rtprio_thread, AUE_RTPRIO, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 466 = rtprio_thread */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 467 = nosys */
{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT }, /* 468 = nosys */
@ -567,7 +567,7 @@ struct sysent freebsd32_sysent[] = {
{ AS(linkat_args), (sy_call_t *)sys_linkat, AUE_LINKAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 495 = linkat */
{ AS(mkdirat_args), (sy_call_t *)sys_mkdirat, AUE_MKDIRAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 496 = mkdirat */
{ AS(mkfifoat_args), (sy_call_t *)sys_mkfifoat, AUE_MKFIFOAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 497 = mkfifoat */
{ compat11(AS(freebsd11_freebsd32_mknodat_args),freebsd32_mknodat), AUE_MKNODAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 498 = freebsd11 freebsd32_mknodat */
{ compat11(AS(freebsd11_mknodat_args),mknodat), AUE_MKNODAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 498 = freebsd11 mknodat */
{ AS(openat_args), (sy_call_t *)sys_openat, AUE_OPENAT_RWTC, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 499 = openat */
{ AS(readlinkat_args), (sy_call_t *)sys_readlinkat, AUE_READLINKAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 500 = readlinkat */
{ AS(renameat_args), (sy_call_t *)sys_renameat, AUE_RENAMEAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 501 = renameat */
@ -638,7 +638,11 @@ struct sysent freebsd32_sysent[] = {
{ AS(fstatfs_args), (sy_call_t *)sys_fstatfs, AUE_FSTATFS, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 556 = fstatfs */
{ AS(getfsstat_args), (sy_call_t *)sys_getfsstat, AUE_GETFSSTAT, NULL, 0, 0, 0, SY_THR_STATIC }, /* 557 = getfsstat */
{ AS(fhstatfs_args), (sy_call_t *)sys_fhstatfs, AUE_FHSTATFS, NULL, 0, 0, 0, SY_THR_STATIC }, /* 558 = fhstatfs */
{ AS(mknodat_args), (sy_call_t *)sys_mknodat, AUE_MKNODAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 559 = mknodat */
#ifdef PAD64_REQUIRED
{ AS(freebsd32_mknodat_args), (sy_call_t *)freebsd32_mknodat, AUE_MKNODAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 559 = freebsd32_mknodat */
#else
{ AS(freebsd32_mknodat_args), (sy_call_t *)freebsd32_mknodat, AUE_MKNODAT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 559 = freebsd32_mknodat */
#endif
{ AS(freebsd32_kevent_args), (sy_call_t *)freebsd32_kevent, AUE_KEVENT, NULL, 0, 0, SYF_CAPENABLED, SY_THR_STATIC }, /* 560 = freebsd32_kevent */
{ AS(freebsd32_cpuset_getdomain_args), (sy_call_t *)freebsd32_cpuset_getdomain, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 561 = freebsd32_cpuset_getdomain */
{ AS(freebsd32_cpuset_setdomain_args), (sy_call_t *)freebsd32_cpuset_setdomain, AUE_NULL, NULL, 0, 0, 0, SY_THR_STATIC }, /* 562 = freebsd32_cpuset_setdomain */

View File

@ -935,9 +935,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 0;
break;
}
/* freebsd32_sysctl */
/* freebsd32___sysctl */
case 202: {
struct freebsd32_sysctl_args *p = params;
struct freebsd32___sysctl_args *p = params;
uarg[0] = (intptr_t) p->name; /* int * */
uarg[1] = p->namelen; /* u_int */
uarg[2] = (intptr_t) p->old; /* void * */
@ -2182,9 +2182,9 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 1;
break;
}
/* freebsd32_umtx_op */
/* freebsd32__umtx_op */
case 454: {
struct freebsd32_umtx_op_args *p = params;
struct freebsd32__umtx_op_args *p = params;
uarg[0] = (intptr_t) p->obj; /* void * */
iarg[1] = p->op; /* int */
uarg[2] = p->val; /* u_long */
@ -3201,16 +3201,32 @@ systrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)
*n_args = 2;
break;
}
/* mknodat */
#ifdef PAD64_REQUIRED
/* freebsd32_mknodat */
case 559: {
struct mknodat_args *p = params;
struct freebsd32_mknodat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
iarg[2] = p->mode; /* mode_t */
iarg[3] = p->dev; /* dev_t */
*n_args = 4;
iarg[3] = p->pad; /* int */
uarg[4] = p->dev1; /* uint32_t */
uarg[5] = p->dev2; /* uint32_t */
*n_args = 6;
break;
}
#else
/* freebsd32_mknodat */
case 559: {
struct freebsd32_mknodat_args *p = params;
iarg[0] = p->fd; /* int */
uarg[1] = (intptr_t) p->path; /* const char * */
iarg[2] = p->mode; /* mode_t */
uarg[3] = p->dev1; /* uint32_t */
uarg[4] = p->dev2; /* uint32_t */
*n_args = 5;
break;
}
#endif
/* freebsd32_kevent */
case 560: {
struct freebsd32_kevent_args *p = params;
@ -4755,7 +4771,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
/* nosys */
case 198:
break;
/* freebsd32_sysctl */
/* freebsd32___sysctl */
case 202:
switch(ndx) {
case 0:
@ -6765,7 +6781,7 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
/* freebsd32_umtx_op */
/* freebsd32__umtx_op */
case 454:
switch(ndx) {
case 0:
@ -8642,7 +8658,8 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
};
break;
/* mknodat */
#ifdef PAD64_REQUIRED
/* freebsd32_mknodat */
case 559:
switch(ndx) {
case 0:
@ -8655,12 +8672,42 @@ systrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
p = "mode_t";
break;
case 3:
p = "dev_t";
p = "int";
break;
case 4:
p = "uint32_t";
break;
case 5:
p = "uint32_t";
break;
default:
break;
};
break;
#else
/* freebsd32_mknodat */
case 559:
switch(ndx) {
case 0:
p = "int";
break;
case 1:
p = "userland const char *";
break;
case 2:
p = "mode_t";
break;
case 3:
p = "uint32_t";
break;
case 4:
p = "uint32_t";
break;
default:
break;
};
break;
#endif
/* freebsd32_kevent */
case 560:
switch(ndx) {
@ -9305,7 +9352,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
break;
/* nosys */
case 198:
/* freebsd32_sysctl */
/* freebsd32___sysctl */
case 202:
if (ndx == 0 || ndx == 1)
p = "int";
@ -10040,7 +10087,7 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* freebsd32_umtx_op */
/* freebsd32__umtx_op */
case 454:
if (ndx == 0 || ndx == 1)
p = "int";
@ -10574,11 +10621,19 @@ systrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)
if (ndx == 0 || ndx == 1)
p = "int";
break;
/* mknodat */
#ifdef PAD64_REQUIRED
/* freebsd32_mknodat */
case 559:
if (ndx == 0 || ndx == 1)
p = "int";
break;
#else
/* freebsd32_mknodat */
case 559:
if (ndx == 0 || ndx == 1)
p = "int";
break;
#endif
/* freebsd32_kevent */
case 560:
if (ndx == 0 || ndx == 1)

View File

@ -84,8 +84,8 @@
11 AUE_NULL OBSOL execv
12 AUE_CHDIR NOPROTO { int chdir(const char *path); }
13 AUE_FCHDIR NOPROTO { int fchdir(int fd); }
14 AUE_MKNOD COMPAT11 { int freebsd32_mknod(const char *path, \
int mode, int dev); }
14 AUE_MKNOD COMPAT11|NOPROTO { int mknod(const char *path, \
int mode, uint32_t dev); }
15 AUE_CHMOD NOPROTO { int chmod(const char *path, mode_t mode); }
16 AUE_CHOWN NOPROTO { int chown(const char *path, int uid, int gid); }
17 AUE_NULL NOPROTO { void *break(char *nsize); }
@ -386,7 +386,7 @@
uint32_t length2); }
201 AUE_FTRUNCATE COMPAT6 { int freebsd32_ftruncate(int fd, int pad, \
uint32_t length1, uint32_t length2); }
202 AUE_SYSCTL STD { int freebsd32_sysctl(int *name, \
202 AUE_SYSCTL STD { int freebsd32___sysctl(int *name, \
u_int namelen, void *old, \
uint32_t *oldlenp, void *new, \
uint32_t newlen); }
@ -821,7 +821,7 @@
struct auditinfo_addr *auditinfo_addr, \
u_int length); }
453 AUE_AUDITCTL NOPROTO { int auditctl(const char *path); }
454 AUE_NULL STD { int freebsd32_umtx_op(void *obj, int op,\
454 AUE_NULL STD { int freebsd32__umtx_op(void *obj, int op,\
u_long val, void *uaddr, \
void *uaddr2); }
455 AUE_THR_NEW STD { int freebsd32_thr_new( \
@ -958,7 +958,7 @@
mode_t mode); }
497 AUE_MKFIFOAT NOPROTO { int mkfifoat(int fd, const char *path, \
mode_t mode); }
498 AUE_MKNODAT COMPAT11 { int freebsd32_mknodat(int fd, \
498 AUE_MKNODAT COMPAT11|NOPROTO { int mknodat(int fd, \
const char *path, mode_t mode, \
uint32_t dev); }
499 AUE_OPENAT_RWTC NOPROTO { int openat(int fd, const char *path, \
@ -1113,8 +1113,15 @@
long bufsize, int mode); }
558 AUE_FHSTATFS NOPROTO { int fhstatfs(const struct fhandle *u_fhp, \
struct statfs32 *buf); }
559 AUE_MKNODAT NOPROTO { int mknodat(int fd, const char *path, \
mode_t mode, dev_t dev); }
#ifdef PAD64_REQUIRED
559 AUE_MKNODAT STD { int freebsd32_mknodat(int fd, \
const char *path, mode_t mode, \
int pad, uint32_t dev1, uint32_t dev2); }
#else
559 AUE_MKNODAT STD { int freebsd32_mknodat(int fd, \
const char *path, mode_t mode, \
uint32_t dev1, uint32_t dev2); }
#endif
560 AUE_KEVENT STD { int freebsd32_kevent(int fd, \
const struct kevent32 *changelist, \
int nchanges, \

View File

@ -58,8 +58,8 @@ all: ${DTB} ${DTBO}
.export DTC
.for _dts in ${DTS}
${_dts:R:S/$/.dtb/}: ${_dts} ${OP_META}
@echo Generating ${.TARGET} from ${_dts}
@${SYSDIR}/tools/fdt/make_dtb.sh ${SYSDIR} ${_dts} ${.OBJDIR}
@${ECHO} Generating ${.TARGET} from ${_dts}
@env ECHO=${ECHO} ${SYSDIR}/tools/fdt/make_dtb.sh ${SYSDIR} ${_dts} ${.OBJDIR}
CLEANFILES+=${_dts:R:S/$/.dtb/}
.endfor
.endif
@ -68,8 +68,8 @@ CLEANFILES+=${_dts:R:S/$/.dtb/}
.export DTC
.for _dtso in ${DTSO}
${_dtso:R:S/$/.dtbo/}: ${_dtso} ${OP_META}
@echo Generating ${.TARGET} from ${_dtso}
@${SYSDIR}/tools/fdt/make_dtbo.sh ${SYSDIR} overlays/${_dtso} ${.OBJDIR}
@${ECHO} Generating ${.TARGET} from ${_dtso}
@env ECHO=${ECHO} ${SYSDIR}/tools/fdt/make_dtbo.sh ${SYSDIR} overlays/${_dtso} ${.OBJDIR}
CLEANFILES+=${_dtso:R:S/$/.dtbo/}
.endfor
.endif

View File

@ -6,7 +6,7 @@ SEARCH_DIR("/usr/lib");
SECTIONS
{
/* Read-only sections, merged into text segment: */
kernphys = 0x200000;
kernphys = 0x200000; /* 2MB superpage size */
. = kernbase + kernphys + SIZEOF_HEADERS;
/*
* Use the AT keyword in order to set the right LMA that contains

View File

@ -83,18 +83,17 @@ git_tree_modified()
# git's internal state. The latter case is indicated by an all-zero
# destination file hash.
local fifo vcstop_abs
local fifo
fifo=$(mktemp -u)
mkfifo -m 600 $fifo
vcstop_abs=$(realpath $VCSTOP)
$git_cmd --work-tree=${VCSTOP} diff-index HEAD > $fifo &
while read smode dmode ssha dsha status file; do
if ! expr $dsha : '^00*$' >/dev/null; then
rm $fifo
return 0
fi
if ! $git_cmd diff --quiet -- "${vcstop_abs}/${file}"; then
if ! $git_cmd --work-tree=${VCSTOP} diff --quiet -- "${file}"; then
rm $fifo
return 0
fi
@ -328,7 +327,7 @@ else
VERSTR="${VERINFO}\\n ${u}@${h}:${d}\\n"
fi
cat << EOF > vers.c
vers_content_new=$(cat << EOF
$COPYRIGHT
#define SCCSSTR "@(#)${VERINFO}"
#define VERSTR "${VERSTR}"
@ -342,5 +341,10 @@ char osrelease[sizeof(RELSTR) > 32 ? sizeof(RELSTR) : 32] = RELSTR;
int osreldate = ${RELDATE};
char kern_ident[] = "${i}";
EOF
)
vers_content_old=$(cat vers.c 2>/dev/null || true)
if [ "$vers_content_new" != "$vers_content_old" ]; then
echo "$vers_content_new" > vers.c
fi
echo $((v + 1)) > version

View File

@ -684,6 +684,7 @@ static inline int cvmx_pip_get_bsel_table_index(cvmx_wqe_t *work)
bsel_cfg.u64 = cvmx_read_csr(CVMX_PIP_BSEL_EXT_CFGX(bit));
bsel_pos.u64 = cvmx_read_csr(CVMX_PIP_BSEL_EXT_POSX(bit));
index = 0;
for (y = 0; y < 8; y++)
{
char *ptr = (char *)cvmx_phys_to_ptr(work->packet_ptr.s.addr);

View File

@ -396,7 +396,7 @@ make_established(struct toepcb *toep, uint32_t snd_isn, uint32_t rcv_isn,
CTR6(KTR_CXGBE, "%s: tid %d, so %p, inp %p, tp %p, toep %p",
__func__, toep->tid, so, inp, tp, toep);
tp->t_state = TCPS_ESTABLISHED;
tcp_state_change(tp, TCPS_ESTABLISHED);
tp->t_starttime = ticks;
TCPSTAT_INC(tcps_connects);
@ -1303,11 +1303,11 @@ do_peer_close(struct sge_iq *iq, const struct rss_header *rss, struct mbuf *m)
/* FALLTHROUGH */
case TCPS_ESTABLISHED:
tp->t_state = TCPS_CLOSE_WAIT;
tcp_state_change(tp, TCPS_CLOSE_WAIT);
break;
case TCPS_FIN_WAIT_1:
tp->t_state = TCPS_CLOSING;
tcp_state_change(tp, TCPS_CLOSING);
break;
case TCPS_FIN_WAIT_2:
@ -1389,7 +1389,7 @@ do_close_con_rpl(struct sge_iq *iq, const struct rss_header *rss,
case TCPS_FIN_WAIT_1:
if (so->so_rcv.sb_state & SBS_CANTRCVMORE)
soisdisconnected(so);
tp->t_state = TCPS_FIN_WAIT_2;
tcp_state_change(tp, TCPS_FIN_WAIT_2);
break;
default:

View File

@ -458,7 +458,13 @@ em_isc_txd_credits_update(void *arg, uint16_t txqid, bool clear)
ntxd = scctx->isc_ntxd[0];
do {
delta = (int32_t)cur - (int32_t)prev;
/*
* XXX This appears to be a hack for first-packet.
* A correct fix would prevent prev == cur in the first place.
*/
MPASS(prev == 0 || delta != 0);
if (prev == 0 && cur == 0)
delta += 1;
if (delta < 0)
delta += ntxd;
DPRINTF(iflib_get_dev(adapter->ctx),

View File

@ -333,7 +333,13 @@ igb_isc_txd_credits_update(void *arg, uint16_t txqid, bool clear)
ntxd = scctx->isc_ntxd[0];
do {
delta = (int32_t)cur - (int32_t)prev;
/*
* XXX This appears to be a hack for first-packet.
* A correct fix would prevent prev == cur in the first place.
*/
MPASS(prev == 0 || delta != 0);
if (prev == 0 && cur == 0)
delta += 1;
if (delta < 0)
delta += ntxd;

View File

@ -260,7 +260,7 @@ static struct if_shared_ctx iavf_sctx_init = {
.isc_vendor_info = iavf_vendor_info_array,
.isc_driver_version = IAVF_DRIVER_VERSION_STRING,
.isc_driver = &iavf_if_driver,
.isc_flags = IFLIB_NEED_SCRATCH | IFLIB_NEED_ZERO_CSUM | IFLIB_IS_VF,
.isc_flags = IFLIB_NEED_SCRATCH | IFLIB_NEED_ZERO_CSUM | IFLIB_TSO_INIT_IP | IFLIB_IS_VF,
.isc_nrxd_min = {IXL_MIN_RING},
.isc_ntxd_min = {IXL_MIN_RING},

View File

@ -323,7 +323,7 @@ static struct if_shared_ctx ixl_sctx_init = {
.isc_vendor_info = ixl_vendor_info_array,
.isc_driver_version = IXL_DRIVER_VERSION_STRING,
.isc_driver = &ixl_if_driver,
.isc_flags = IFLIB_NEED_SCRATCH | IFLIB_NEED_ZERO_CSUM | IFLIB_ADMIN_ALWAYS_RUN,
.isc_flags = IFLIB_NEED_SCRATCH | IFLIB_NEED_ZERO_CSUM | IFLIB_TSO_INIT_IP | IFLIB_ADMIN_ALWAYS_RUN,
.isc_nrxd_min = {IXL_MIN_RING},
.isc_ntxd_min = {IXL_MIN_RING},

View File

@ -258,6 +258,8 @@
(CSUM_IP_UDP|CSUM_IP6_UDP)
#define IXL_CSUM_SCTP \
(CSUM_IP_SCTP|CSUM_IP6_SCTP)
#define IXL_CSUM_IPV4 \
(CSUM_IP|CSUM_IP_TSO)
/* Pre-11 counter(9) compatibility */
#if __FreeBSD_version >= 1100036

View File

@ -225,7 +225,7 @@ ixl_tx_setup_offload(struct ixl_tx_queue *que,
switch (pi->ipi_etype) {
#ifdef INET
case ETHERTYPE_IP:
if (pi->ipi_csum_flags & CSUM_IP)
if (pi->ipi_csum_flags & IXL_CSUM_IPV4)
*cmd |= I40E_TX_DESC_CMD_IIPT_IPV4_CSUM;
else
*cmd |= I40E_TX_DESC_CMD_IIPT_IPV4;

View File

@ -100,7 +100,7 @@ static int uaudio_default_channels = 0; /* use default */
static int uaudio_buffer_ms = 8;
#ifdef USB_DEBUG
static int uaudio_debug = 0;
static int uaudio_debug;
static SYSCTL_NODE(_hw_usb, OID_AUTO, uaudio, CTLFLAG_RW, 0, "USB uaudio");
@ -136,6 +136,8 @@ uaudio_buffer_ms_sysctl(SYSCTL_HANDLER_ARGS)
SYSCTL_PROC(_hw_usb_uaudio, OID_AUTO, buffer_ms, CTLTYPE_INT | CTLFLAG_RWTUN,
0, sizeof(int), uaudio_buffer_ms_sysctl, "I",
"uaudio buffering delay from 2ms to 8ms");
#else
#define uaudio_debug 0
#endif
#define UAUDIO_NFRAMES 64 /* must be factor of 8 due HS-USB */
@ -2161,6 +2163,14 @@ uaudio_chan_play_sync_callback(struct usb_xfer *xfer, usb_error_t error)
break;
case USB_ST_SETUP:
/*
* Check if the recording stream can be used as a
* source of jitter information to save some
* isochronous bandwidth:
*/
if (ch->priv_sc->sc_rec_chan.num_alt != 0 &&
uaudio_debug == 0)
break;
usbd_xfer_set_frames(xfer, 1);
usbd_xfer_set_frame_len(xfer, 0, usbd_xfer_max_framelen(xfer));
usbd_transfer_submit(xfer);

View File

@ -675,6 +675,8 @@ uhid_probe(device_t dev)
{
struct usb_attach_arg *uaa = device_get_ivars(dev);
int error;
void *buf;
uint16_t len;
DPRINTFN(11, "\n");
@ -701,6 +703,25 @@ uhid_probe(device_t dev)
!usb_test_quirk(uaa, UQ_UMS_IGNORE))))
return (ENXIO);
/* Check for mandatory multitouch usages to give wmt(4) a chance */
if (!usb_test_quirk(uaa, UQ_WMT_IGNORE)) {
error = usbd_req_get_hid_desc(uaa->device, NULL,
&buf, &len, M_USBDEV, uaa->info.bIfaceIndex);
/* Let HID decscriptor-less devices to be handled at attach */
if (!error) {
if (hid_locate(buf, len,
HID_USAGE2(HUP_DIGITIZERS, HUD_CONTACT_MAX),
hid_feature, 0, NULL, NULL, NULL) &&
hid_locate(buf, len,
HID_USAGE2(HUP_DIGITIZERS, HUD_CONTACTID),
hid_input, 0, NULL, NULL, NULL)) {
free(buf, M_USBDEV);
return (ENXIO);
}
free(buf, M_USBDEV);
}
}
return (BUS_PROBE_GENERIC);
}

View File

@ -856,6 +856,12 @@ wmt_cont_max_parse(struct wmt_softc *sc, const void *r_ptr, uint16_t r_len)
}
}
static const STRUCT_USB_HOST_ID wmt_devs[] = {
/* generic HID class w/o boot interface */
{USB_IFACE_CLASS(UICLASS_HID),
USB_IFACE_SUBCLASS(0),},
};
static devclass_t wmt_devclass;
static device_method_t wmt_methods[] = {
@ -876,3 +882,4 @@ DRIVER_MODULE(wmt, uhub, wmt_driver, wmt_devclass, NULL, 0);
MODULE_DEPEND(wmt, usb, 1, 1, 1);
MODULE_DEPEND(wmt, evdev, 1, 1, 1);
MODULE_VERSION(wmt, 1);
USB_PNP_HOST_INFO(wmt_devs);

View File

@ -396,7 +396,7 @@
compatible = "ti,wl1835";
reg = <2>;
interrupt-parent = <&gpio3>;
interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <7 IRQ_TYPE_EDGE_RISING>;
};
};

View File

@ -778,7 +778,7 @@
compatible = "ti,wl1835";
reg = <2>;
interrupt-parent = <&gpio3>;
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
interrupts = <17 IRQ_TYPE_EDGE_RISING>;
};
};

View File

@ -690,7 +690,7 @@
compatible = "ti,wl1271";
reg = <2>;
interrupt-parent = <&gpio0>;
interrupts = <31 IRQ_TYPE_LEVEL_HIGH>; /* gpio 31 */
interrupts = <31 IRQ_TYPE_EDGE_RISING>; /* gpio 31 */
ref-clock-frequency = <38400000>;
};
};

View File

@ -0,0 +1,457 @@
//SPDX-License-Identifier: GPL-2.0
/* Copyright (C) 2018 Octavo Systems LLC - http://www.octavosystems.com/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;
#include "am33xx.dtsi"
#include "am335x-osd335x-common.dtsi"
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/display/tda998x.h>
/ {
model = "Octavo Systems OSD3358-SM-RED";
compatible = "oct,osd3358-sm-refdesign", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
};
&ldo3_reg {
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
regulator-always-on;
};
&mmc1 {
vmmc-supply = <&vmmcsd_fixed>;
};
&mmc2 {
vmmc-supply = <&vmmcsd_fixed>;
pinctrl-names = "default";
pinctrl-0 = <&emmc_pins>;
bus-width = <8>;
status = "okay";
};
&am33xx_pinmux {
nxp_hdmi_bonelt_pins: nxp-hdmi-bonelt-pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr0 */
AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
AM33XX_IOPAD(0x8e0, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_vsync.lcd_vsync */
AM33XX_IOPAD(0x8e4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_hsync.lcd_hsync */
AM33XX_IOPAD(0x8e8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_pclk.lcd_pclk */
AM33XX_IOPAD(0x8ec, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
>;
};
nxp_hdmi_bonelt_off_pins: nxp-hdmi-bonelt-off-pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9b0, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr0 */
>;
};
mcasp0_pins: mcasp0-pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLUP | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2*/
AM33XX_IOPAD(0x994, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
AM33XX_IOPAD(0x990, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
AM33XX_IOPAD(0x86c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.GPIO1_27 */
>;
};
flash_enable: flash-enable {
pinctrl-single,pins = <
AM33XX_IOPAD(0x944, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* rmii1_ref_clk.gpio0_29 */
>;
};
imu_interrupt: imu-interrupt {
pinctrl-single,pins = <
AM33XX_IOPAD(0x910, PIN_INPUT_PULLDOWN | MUX_MODE7) /* mii1_rx_er.gpio3_2 */
>;
};
ethernet_interrupt: ethernet-interrupt{
pinctrl-single,pins = <
AM33XX_IOPAD(0x908, PIN_INPUT_PULLDOWN | MUX_MODE7) /* mii1_col.gpio3_0 */
>;
};
};
&lcdc {
status = "okay";
/* If you want to get 24 bit RGB and 16 BGR mode instead of
* current 16 bit RGB and 24 BGR modes, set the propety
* below to "crossed" and uncomment the video-ports -property
* in tda19988 node.
* AM335x errata for wiring:
* http://www.ti.com/lit/er/sprz360i/sprz360i.pdf
*/
blue-and-red-wiring = "straight";
port {
lcdc_0: endpoint {
remote-endpoint = <&hdmi_0>;
};
};
};
&i2c0 {
tda19988: hdmi-encoder@70 {
compatible = "nxp,tda998x";
reg = <0x70>;
pinctrl-names = "default", "off";
pinctrl-0 = <&nxp_hdmi_bonelt_pins>;
pinctrl-1 = <&nxp_hdmi_bonelt_off_pins>;
/* Convert 24bit BGR to RGB, e.g. cross red and blue wiring */
/* video-ports = <0x234501>; */
#sound-dai-cells = <0>;
audio-ports = < TDA998x_I2S 0x03>;
port {
hdmi_0: endpoint {
remote-endpoint = <&lcdc_0>;
};
};
};
mpu9250: imu@68 {
compatible = "invensense,mpu6050";
reg = <0x68>;
interrupt-parent = <&gpio3>;
interrupts = <21 IRQ_TYPE_EDGE_RISING>;
i2c-gate {
#address-cells = <1>;
#size-cells = <0>;
ax8975@c {
compatible = "ak,ak8975";
reg = <0x0c>;
};
};
/*invensense,int_config = <0x10>;
invensense,level_shifter = <0>;
invensense,orientation = [01 00 00 00 01 00 00 00 01];
invensense,sec_slave_type = <0>;
invensense,key = [4e cc 7e eb f6 1e 35 22 00 34 0d 65 32 e9 94 89];*/
};
bmp280: pressure@78 {
compatible = "bosch,bmp280";
reg = <0x76>;
};
};
&rtc {
system-power-controller;
};
&mcasp0 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&mcasp0_pins>;
status = "okay";
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
0 0 1 0
>;
tx-num-evt = <32>;
rx-num-evt = <32>;
};
/ {
clk_mcasp0_fixed: clk-mcasp0-fixed {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <24576000>;
};
clk_mcasp0: clk-mcasp0 {
#clock-cells = <0>;
compatible = "gpio-gate-clock";
clocks = <&clk_mcasp0_fixed>;
enable-gpios = <&gpio1 27 0>; /* BeagleBone Black Clk enable on GPIO1_27 */
};
sound {
compatible = "simple-audio-card";
simple-audio-card,name = "TI BeagleBone Black";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&dailink0_master>;
simple-audio-card,frame-master = <&dailink0_master>;
dailink0_master: simple-audio-card,cpu {
sound-dai = <&mcasp0>;
clocks = <&clk_mcasp0>;
};
simple-audio-card,codec {
sound-dai = <&tda19988>;
};
};
chosen {
stdout-path = &uart0;
};
leds {
pinctrl-names = "default";
pinctrl-0 = <&user_leds_s0>;
compatible = "gpio-leds";
led2 {
label = "beaglebone:green:usr0";
gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "heartbeat";
default-state = "off";
};
led3 {
label = "beaglebone:green:usr1";
gpios = <&gpio1 22 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "mmc0";
default-state = "off";
};
led4 {
label = "beaglebone:green:usr2";
gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "cpu0";
default-state = "off";
};
led5 {
label = "beaglebone:green:usr3";
gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "mmc1";
default-state = "off";
};
};
vmmcsd_fixed: fixedregulator0 {
compatible = "regulator-fixed";
regulator-name = "vmmcsd_fixed";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
&am33xx_pinmux {
pinctrl-names = "default";
pinctrl-0 = <&clkout2_pin>;
user_leds_s0: user-leds-s0 {
pinctrl-single,pins = <
AM33XX_IOPAD(0x854, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a5.gpio1_21 */
AM33XX_IOPAD(0x858, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a6.gpio1_22 */
AM33XX_IOPAD(0x85c, PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* gpmc_a7.gpio1_23 */
AM33XX_IOPAD(0x860, PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_a8.gpio1_24 */
>;
};
i2c2_pins: pinmux-i2c2-pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x978, PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_ctsn.i2c2_sda */
AM33XX_IOPAD(0x97c, PIN_INPUT_PULLUP | MUX_MODE3) /* uart1_rtsn.i2c2_scl */
>;
};
uart0_pins: pinmux-uart0-pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x970, PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
AM33XX_IOPAD(0x974, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
>;
};
clkout2_pin: pinmux-clkout2-pin {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9b4, PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* xdma_event_intr1.clkout2 */
>;
};
cpsw_default: cpsw-default {
pinctrl-single,pins = <
/* Slave 1 */
AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_txd3 */
AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_txd2 */
AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_txd1 */
AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_txd0 */
AM33XX_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_txclk */
AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rxclk */
AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rxd3 */
AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rxd2 */
AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rxd1 */
AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rxd0 */
>;
};
cpsw_sleep: cpsw-sleep {
pinctrl-single,pins = <
/* Slave 1 reset value */
AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};
davinci_mdio_default: davinci-mdio-default {
pinctrl-single,pins = <
/* MDIO */
AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
>;
};
davinci_mdio_sleep: davinci-mdio-sleep {
pinctrl-single,pins = <
/* MDIO reset value */
AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};
mmc1_pins: pinmux-mmc1-pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x960, PIN_INPUT | MUX_MODE7) /* (C15) spi0_cs1.gpio0[6] */
AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* (G16) mmc0_dat0.mmc0_dat0 */
AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* (G15) mmc0_dat1.mmc0_dat1 */
AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* (F18) mmc0_dat2.mmc0_dat2 */
AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* (F17) mmc0_dat3.mmc0_dat3 */
AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* (G18) mmc0_cmd.mmc0_cmd */
AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* (G17) mmc0_clk.mmc0_clk */
>;
};
emmc_pins: pinmux-emmc-pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x880, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn1.mmc1_clk */
AM33XX_IOPAD(0x884, PIN_INPUT_PULLUP | MUX_MODE2) /* gpmc_csn2.mmc1_cmd */
AM33XX_IOPAD(0x800, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad0.mmc1_dat0 */
AM33XX_IOPAD(0x804, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad1.mmc1_dat1 */
AM33XX_IOPAD(0x808, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad2.mmc1_dat2 */
AM33XX_IOPAD(0x80c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad3.mmc1_dat3 */
AM33XX_IOPAD(0x810, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad4.mmc1_dat4 */
AM33XX_IOPAD(0x814, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad5.mmc1_dat5 */
AM33XX_IOPAD(0x818, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad6.mmc1_dat6 */
AM33XX_IOPAD(0x81c, PIN_INPUT_PULLUP | MUX_MODE1) /* gpmc_ad7.mmc1_dat7 */
>;
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins>;
status = "okay";
};
&usb {
status = "okay";
};
&usb_ctrl_mod {
status = "okay";
};
&usb0_phy {
status = "okay";
};
&usb1_phy {
status = "okay";
};
&usb0 {
status = "okay";
dr_mode = "peripheral";
interrupts-extended = <&intc 18 &tps 0>;
interrupt-names = "mc", "vbus";
};
&usb1 {
status = "okay";
dr_mode = "host";
};
&cppi41dma {
status = "okay";
};
&i2c2 {
pinctrl-names = "default";
pinctrl-0 = <&i2c2_pins>;
status = "okay";
clock-frequency = <100000>;
};
&cpsw_emac0 {
phy_id = <&davinci_mdio>, <4>;
phy-mode = "rgmii-txid";
};
&mac {
slaves = <1>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&cpsw_default>;
pinctrl-1 = <&cpsw_sleep>;
status = "okay";
};
&davinci_mdio {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&davinci_mdio_default>;
pinctrl-1 = <&davinci_mdio_sleep>;
status = "okay";
};
&mmc1 {
status = "okay";
bus-width = <0x4>;
pinctrl-names = "default";
pinctrl-0 = <&mmc1_pins>;
cd-gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
};
&rtc {
clocks = <&clk_32768_ck>, <&l4_per_clkctrl AM3_CLKDIV32K_CLKCTRL 0>;
clock-names = "ext-clk", "int-clk";
};

View File

@ -0,0 +1,136 @@
/*
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;
#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"
#include "am335x-boneblack-common.dtsi"
#include <dt-bindings/interrupt-controller/irq.h>
/ {
model = "SanCloud BeagleBone Enhanced";
compatible = "sancloud,am335x-boneenhanced", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
};
&am33xx_pinmux {
pinctrl-names = "default";
cpsw_default: cpsw_default {
pinctrl-single,pins = <
/* Slave 1 */
AM33XX_IOPAD(0x914, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txen.rgmii1_tctl */
AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxdv.rgmii1_rctl */
AM33XX_IOPAD(0x91c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd3.rgmii1_td3 */
AM33XX_IOPAD(0x920, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd2.rgmii1_td2 */
AM33XX_IOPAD(0x924, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd1.rgmii1_td1 */
AM33XX_IOPAD(0x928, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txd0.rgmii1_td0 */
AM33XX_IOPAD(0x92c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mii1_txclk.rgmii1_tclk */
AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxclk.rgmii1_rclk */
AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd3.rgmii1_rd3 */
AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd2.rgmii1_rd2 */
AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd1.rgmii1_rd1 */
AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE2) /* mii1_rxd0.rgmii1_rd0 */
>;
};
cpsw_sleep: cpsw_sleep {
pinctrl-single,pins = <
/* Slave 1 reset value */
AM33XX_IOPAD(0x914, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x918, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x91c, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x920, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x924, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x928, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x92c, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x930, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x934, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x938, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x93c, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x940, PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};
davinci_mdio_default: davinci_mdio_default {
pinctrl-single,pins = <
/* MDIO */
AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
>;
};
davinci_mdio_sleep: davinci_mdio_sleep {
pinctrl-single,pins = <
/* MDIO reset value */
AM33XX_IOPAD(0x948, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x94c, PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};
usb_hub_ctrl: usb_hub_ctrl {
pinctrl-single,pins = <
AM33XX_IOPAD(0x944, PIN_OUTPUT_PULLUP | MUX_MODE7) /* rmii1_refclk.gpio0_29 */
>;
};
mpu6050_pins: pinmux_mpu6050_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x968, PIN_INPUT | MUX_MODE7) /* uart0_ctsn.gpio1_8 */
>;
};
lps3331ap_pins: pinmux_lps3331ap_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x868, PIN_INPUT | MUX_MODE7) /* gpmc_a10.gpio1_26 */
>;
};
};
&mac {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&cpsw_default>;
pinctrl-1 = <&cpsw_sleep>;
status = "okay";
};
&davinci_mdio {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&davinci_mdio_default>;
pinctrl-1 = <&davinci_mdio_sleep>;
status = "okay";
};
&cpsw_emac0 {
phy_id = <&davinci_mdio>, <0>;
phy-mode = "rgmii-txid";
};
&i2c0 {
lps331ap: barometer@5c {
compatible = "st,lps331ap-press";
st,drdy-int-pin = <1>;
reg = <0x5c>;
interrupt-parent = <&gpio1>;
interrupts = <26 IRQ_TYPE_EDGE_RISING>;
};
mpu6050: accelerometer@68 {
compatible = "invensense,mpu6050";
reg = <0x68>;
interrupt-parent = <&gpio0>;
interrupts = <2 IRQ_TYPE_EDGE_RISING>;
orientation = <0xff 0 0 0 1 0 0 0 0xff>;
};
usb2512b: usb-hub@2c {
compatible = "microchip,usb2512b";
reg = <0x2c>;
reset-gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
/* wifi on port 4 */
};
};

View File

@ -8,6 +8,8 @@
/dts-v1/;
#include "am33xx.dtsi"
#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/interrupt-controller/irq.h>
/ {
model = "Toby Churchill SL50 Series";
@ -34,25 +36,25 @@
pinctrl-0 = <&led_pins>;
led0 {
label = "sl50:green:usr0";
label = "sl50:red:usr0";
gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led1 {
label = "sl50:red:usr1";
label = "sl50:green:usr1";
gpios = <&gpio1 22 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led2 {
label = "sl50:green:usr2";
label = "sl50:red:usr2";
gpios = <&gpio1 23 GPIO_ACTIVE_LOW>;
default-state = "off";
};
led3 {
label = "sl50:red:usr3";
label = "sl50:green:usr3";
gpios = <&gpio1 24 GPIO_ACTIVE_LOW>;
default-state = "off";
};
@ -60,16 +62,44 @@
backlight0: disp0 {
compatible = "pwm-backlight";
pwms = <&ehrpwm1 0 500000 0>;
brightness-levels = <0 10 20 30 40 50 60 70 80 90 99>;
default-brightness-level = <6>;
pinctrl-names = "default";
pinctrl-0 = <&backlight0_pins>;
pwms = <&ehrpwm1 0 500000 PWM_POLARITY_INVERTED>;
brightness-levels = < 0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
100>;
default-brightness-level = <50>;
enable-gpios = <&gpio2 4 GPIO_ACTIVE_HIGH>;
power-supply = <&vdd_sys_reg>;
};
backlight1: disp1 {
compatible = "pwm-backlight";
pwms = <&ehrpwm1 1 500000 0>;
brightness-levels = <0 10 20 30 40 50 60 70 80 90 99>;
default-brightness-level = <6>;
pinctrl-names = "default";
pinctrl-0 = <&backlight1_pins>;
pwms = <&ehrpwm1 1 500000 PWM_POLARITY_INVERTED>;
brightness-levels = < 0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
100>;
default-brightness-level = <50>;
enable-gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
power-supply = <&vdd_sys_reg>;
};
clocks {
@ -78,27 +108,85 @@
#size-cells = <0>;
/* audio external oscillator */
tlv320aic3x_mclk: oscillator@0 {
audio_mclk_fixed: oscillator@0 {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24576000>; /* 24.576MHz */
};
audio_mclk: audio_mclk_gate@0 {
compatible = "gpio-gate-clock";
#clock-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&audio_mclk_pins>;
clocks = <&audio_mclk_fixed>;
enable-gpios = <&gpio1 27 0>;
};
};
panel: lcd_panel {
compatible = "ti,tilcdc,panel";
pinctrl-names = "default";
pinctrl-0 = <&lcd_pins>;
panel-info {
ac-bias = <255>;
ac-bias-intrpt = <0>;
dma-burst-sz = <16>;
bpp = <16>;
fdd = <0x80>;
tft-alt-mode = <0>;
mono-8bit-mode = <0>;
sync-edge = <0>;
sync-ctrl = <1>;
raster-order = <0>;
fifo-th = <0>;
};
display-timings {
native-mode = <&timing0>;
timing0: 960x128 {
clock-frequency = <18000000>;
hactive = <960>;
vactive = <272>;
hback-porch = <40>;
hfront-porch = <16>;
hsync-len = <24>;
hsync-active = <0>;
vback-porch = <3>;
vfront-porch = <8>;
vsync-len = <4>;
vsync-active = <0>;
};
};
};
sound {
compatible = "ti,da830-evm-audio";
ti,model = "AM335x-SL50";
ti,audio-codec = <&audio_codec>;
ti,mcasp-controller = <&mcasp0>;
compatible = "audio-graph-card";
label = "sound-card";
pinctrl-names = "default";
pinctrl-0 = <&audio_pa_pins>;
clocks = <&tlv320aic3x_mclk>;
clock-names = "mclk";
widgets = "Headphone", "Headphone Jack",
"Speaker", "Speaker External",
"Line", "Line In",
"Microphone", "Microphone Jack";
ti,audio-routing =
"Headphone Jack", "HPLOUT",
"Headphone Jack", "HPROUT",
"LINE1R", "Line In",
"LINE1L", "Line In";
routing = "Headphone Jack", "HPLOUT",
"Headphone Jack", "HPROUT",
"Amplifier", "MONO_LOUT",
"Speaker External", "Amplifier",
"LINE1R", "Line In",
"LINE1L", "Line In",
"MIC3L", "Microphone Jack",
"MIC3R", "Microphone Jack",
"Microphone Jack", "Mic Bias";
dais = <&cpu_port>;
pa-gpios = <&gpio3 18 GPIO_ACTIVE_HIGH>;
};
emmc_pwrseq: pwrseq@0 {
@ -108,6 +196,14 @@
reset-gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
};
vdd_sys_reg: regulator@0 {
compatible = "regulator-fixed";
regulator-name = "vdd_sys_reg";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
};
vmmcsd_fixed: fixedregulator0 {
compatible = "regulator-fixed";
regulator-name = "vmmcsd_fixed";
@ -120,6 +216,65 @@
pinctrl-names = "default";
pinctrl-0 = <&lwb_pins>;
audio_pins: pinmux_audio_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
AM33XX_IOPAD(0x994, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
AM33XX_IOPAD(0x990, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
AM33XX_IOPAD(0x998, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr0.mcasp0_axr0 */
AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2 */
>;
};
audio_pa_pins: pinmux_audio_pa_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9a0, PIN_INPUT_PULLDOWN | MUX_MODE7) /* SoundPA_en - mcasp0_aclkr.gpio3_18 */
>;
};
audio_mclk_pins: pinmux_audio_mclk_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x86c, PIN_INPUT_PULLDOWN | MUX_MODE7) /* gpmc_a11.gpio1_27 */
>;
};
backlight0_pins: pinmux_backlight0_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x898, PIN_OUTPUT | MUX_MODE7) /* gpmc_wen.gpio2_4 */
>;
};
backlight1_pins: pinmux_backlight1_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE7) /* gpmc_ad10.gpio0_26 */
>;
};
lcd_pins: pinmux_lcd_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x8a0, PIN_OUTPUT | MUX_MODE0) /* lcd_data0.lcd_data0 */
AM33XX_IOPAD(0x8a4, PIN_OUTPUT | MUX_MODE0) /* lcd_data1.lcd_data1 */
AM33XX_IOPAD(0x8a8, PIN_OUTPUT | MUX_MODE0) /* lcd_data2.lcd_data2 */
AM33XX_IOPAD(0x8ac, PIN_OUTPUT | MUX_MODE0) /* lcd_data3.lcd_data3 */
AM33XX_IOPAD(0x8b0, PIN_OUTPUT | MUX_MODE0) /* lcd_data4.lcd_data4 */
AM33XX_IOPAD(0x8b4, PIN_OUTPUT | MUX_MODE0) /* lcd_data5.lcd_data5 */
AM33XX_IOPAD(0x8b8, PIN_OUTPUT | MUX_MODE0) /* lcd_data6.lcd_data6 */
AM33XX_IOPAD(0x8bc, PIN_OUTPUT | MUX_MODE0) /* lcd_data7.lcd_data7 */
AM33XX_IOPAD(0x8c0, PIN_OUTPUT | MUX_MODE0) /* lcd_data8.lcd_data8 */
AM33XX_IOPAD(0x8c4, PIN_OUTPUT | MUX_MODE0) /* lcd_data9.lcd_data9 */
AM33XX_IOPAD(0x8c8, PIN_OUTPUT | MUX_MODE0) /* lcd_data10.lcd_data10 */
AM33XX_IOPAD(0x8cc, PIN_OUTPUT | MUX_MODE0) /* lcd_data11.lcd_data11 */
AM33XX_IOPAD(0x8d0, PIN_OUTPUT | MUX_MODE0) /* lcd_data12.lcd_data12 */
AM33XX_IOPAD(0x8d4, PIN_OUTPUT | MUX_MODE0) /* lcd_data13.lcd_data13 */
AM33XX_IOPAD(0x8d8, PIN_OUTPUT | MUX_MODE0) /* lcd_data14.lcd_data14 */
AM33XX_IOPAD(0x8dc, PIN_OUTPUT | MUX_MODE0) /* lcd_data15.lcd_data15 */
AM33XX_IOPAD(0x8e0, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_vsync.lcd_vsync */
AM33XX_IOPAD(0x8e4, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_hsync.lcd_hsync */
AM33XX_IOPAD(0x8e8, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_pclk.lcd_pclk */
AM33XX_IOPAD(0x8ec, PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* lcd_ac_bias_en.lcd_ac_bias_en */
>;
};
led_pins: pinmux_led_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x854, PIN_OUTPUT | MUX_MODE7) /* gpmc_a5.gpio1_21 */
@ -207,6 +362,8 @@
/* MDIO */
AM33XX_IOPAD(0x948, PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
AM33XX_IOPAD(0x94c, PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
/* Ethernet */
AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE7) /* Ethernet_nRST - gpmc_ad14.gpio1_14 */
>;
};
@ -245,16 +402,6 @@
>;
};
audio_pins: pinmux_audio_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9ac, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_ahcklx.mcasp0_ahclkx */
AM33XX_IOPAD(0x994, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_fsx.mcasp0_fsx */
AM33XX_IOPAD(0x990, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_aclkx.mcasp0_aclkx */
AM33XX_IOPAD(0x998, PIN_INPUT_PULLDOWN | MUX_MODE0) /* mcasp0_axr0.mcasp0_axr0 */
AM33XX_IOPAD(0x99c, PIN_OUTPUT_PULLDOWN | MUX_MODE2) /* mcasp0_ahclkr.mcasp0_axr2 */
>;
};
ehrpwm1_pins: pinmux_ehrpwm1a_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x848, PIN_OUTPUT | MUX_MODE6) /* gpmc_a2.ehrpwm1a */
@ -262,6 +409,12 @@
>;
};
rtc0_irq_pins: pinmux_rtc0_irq_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x824, PIN_INPUT_PULLUP | MUX_MODE7) /* gpmc_ad9.gpio0_23 */
>;
};
spi0_pins: pinmux_spi0_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x954, PIN_INPUT_PULLUP | MUX_MODE0) /* SPI0_MOSI - spi0_d0.spi0_d0 */
@ -274,15 +427,18 @@
lwb_pins: pinmux_lwb_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x9a4, PIN_OUTPUT | MUX_MODE7) /* SoundPA_en - mcasp0_fsr.gpio3_19 */
AM33XX_IOPAD(0x828, PIN_OUTPUT | MUX_MODE7) /* nKbdOnC - gpmc_ad10.gpio0_26 */
AM33XX_IOPAD(0x830, PIN_INPUT_PULLUP | MUX_MODE7) /* nKbdInt - gpmc_ad12.gpio1_12 */
AM33XX_IOPAD(0x834, PIN_INPUT_PULLUP | MUX_MODE7) /* nKbdReset - gpmc_ad13.gpio1_13 */
AM33XX_IOPAD(0x838, PIN_INPUT_PULLUP | MUX_MODE7) /* nDispReset - gpmc_ad14.gpio1_14 */
AM33XX_IOPAD(0x844, PIN_INPUT_PULLUP | MUX_MODE7) /* USB1_enPower - gpmc_a1.gpio1_17 */
/* PDI Bus - Battery system */
AM33XX_IOPAD(0x840, PIN_INPUT_PULLUP | MUX_MODE7) /* nBattReset gpmc_a0.gpio1_16 */
AM33XX_IOPAD(0x83c, PIN_INPUT_PULLUP | MUX_MODE7) /* BattPDIData gpmc_ad15.gpio1_15 */
/* FPGA */
AM33XX_IOPAD(0x820, PIN_INPUT_PULLUP | MUX_MODE7) /* FPGA_DONE - gpmc_ad8.gpio0_22 */
AM33XX_IOPAD(0x840, PIN_INPUT_PULLUP | MUX_MODE7) /* FPGA_NRST - gpmc_a0.gpio1_16 */
AM33XX_IOPAD(0x844, PIN_INPUT_PULLDOWN | MUX_MODE7) /* FPGA_RUN - gpmc_a1.gpio1_17 */
AM33XX_IOPAD(0x864, PIN_INPUT_PULLUP | MUX_MODE7) /* ENFPGA - gpmc_a9.gpio1_25 */
AM33XX_IOPAD(0x868, PIN_INPUT_PULLDOWN | MUX_MODE7) /* FPGA_PROGRAM - gpmc_a10.gpio1_26 */
>;
};
};
@ -298,9 +454,14 @@
reg = <0x24>;
};
bq32000: rtc@68 {
compatible = "ti,bq32000";
trickle-resistor-ohms = <1120>;
rtc0: rtc@68 {
compatible = "dallas,ds1339";
pinctrl-names = "default";
pinctrl-0 = <&rtc0_irq_pins>;
interrupt-parent = <&gpio0>;
interrupts = <23 IRQ_TYPE_EDGE_FALLING>; /* gpio 23 */
wakeup-source;
trickle-resistor-ohms = <2000>;
reg = <0x68>;
};
@ -326,12 +487,21 @@
audio_codec: tlv320aic3106@1b {
status = "okay";
compatible = "ti,tlv320aic3106";
#sound-dai-cells = <0>;
reg = <0x1b>;
ai3x-micbias-vg = <2>; /* 2.5V */
AVDD-supply = <&ldo4_reg>;
IOVDD-supply = <&ldo4_reg>;
DRVDD-supply = <&ldo4_reg>;
DVDD-supply = <&ldo3_reg>;
codec_port: port {
codec_endpoint: endpoint {
remote-endpoint = <&cpu_endpoint>;
clocks = <&audio_mclk>;
};
};
};
/* Ambient Light Sensor */
@ -363,7 +533,7 @@
&usb0 {
status = "okay";
dr_mode = "peripheral";
dr_mode = "otg";
};
&usb1 {
@ -397,17 +567,27 @@
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&audio_pins>;
#sound-dai-cells = <0>;
op-mode = <0>; /* MCASP_ISS_MODE */
tdm-slots = <2>;
serial-dir = <
2 0 1 0
0 0 0 0
0 0 0 0
0 0 0 0
/* 4 serializers */
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
0 0 1 2
>;
tx-num-evt = <1>;
rx-num-evt = <1>;
tx-num-evt = <32>;
rx-num-evt = <32>;
cpu_port: port {
cpu_endpoint: endpoint {
remote-endpoint = <&codec_endpoint>;
dai-format = "dsp_b";
bitclock-master = <&codec_port>;
frame-master = <&codec_port>;
bitclock-inversion;
clocks = <&audio_mclk>;
};
};
};
&uart0 {
@ -507,13 +687,8 @@
};
&cpsw_emac0 {
phy_id = <&davinci_mdio>, <0>;
phy-mode = "mii";
};
&cpsw_emac1 {
phy_id = <&davinci_mdio>, <1>;
phy-mode = "mii";
phy-handle = <&ethphy0>;
};
&mac {
@ -528,6 +703,12 @@
pinctrl-names = "default", "sleep";
pinctrl-0 = <&davinci_mdio_default>;
pinctrl-1 = <&davinci_mdio_sleep>;
reset-gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
reset-delay-us = <100>; /* PHY datasheet states 100us min */
ethphy0: ethernet-phy@0 {
reg = <0>;
};
};
&sham {
@ -547,3 +728,15 @@
pinctrl-names = "default";
pinctrl-0 = <&ehrpwm1_pins>;
};
&lcdc {
status = "okay";
};
&tscadc {
status = "okay";
};
&am335x_adc {
ti,adc-channels = <0 1 2 3 4 5 6 7>;
};

View File

@ -29,8 +29,8 @@
serial3 = &uart3;
serial4 = &uart4;
serial5 = &uart5;
d_can0 = &dcan0;
d_can1 = &dcan1;
d-can0 = &dcan0;
d-can1 = &dcan1;
usb0 = &usb0;
usb1 = &usb1;
phy0 = &usb0_phy;

View File

@ -127,6 +127,7 @@
status = "okay";
pinctrl-names = "default";
enable-gpios = <&gpio6 16 GPIO_ACTIVE_HIGH>; /* gpio176, lcd INI */
vcc-supply = <&vdd_io_reg>;
port {
lcd_in: endpoint {
@ -154,6 +155,7 @@
bl: backlight {
compatible = "pwm-backlight";
pinctrl-names = "default";
power-supply = <&vdd_io_reg>;
pinctrl-0 = <&backlight_pins>;
pwms = <&pwm11 0 5000000 0>;
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
@ -168,6 +170,13 @@
ti,timers = <&timer11>;
#pwm-cells = <3>;
};
/* HS USB Host PHY on PORT 1 */
hsusb1_phy: hsusb1_phy {
compatible = "usb-nop-xceiv";
reset-gpios = <&gpio2 25 GPIO_ACTIVE_LOW>; /* gpio_57 */
#phy-cells = <0>;
};
};
&davinci_emac {
@ -203,6 +212,7 @@
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
vcc-supply = <&vdd_io_reg>;
};
};
@ -220,15 +230,21 @@
cd-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio_127 */
};
&mmc2 {
status = "disabled";
};
&mmc3 {
status = "disabled";
};
&usbhshost {
port1-mode = "ehci-phy";
};
&usbhsehci {
phys = <&hsusb1_phy>;
};
&omap3_pmx_core {
pinctrl-names = "default";
pinctrl-0 = <&hsusb1_rst_pins>;
leds_pins: pinmux_leds_pins {
pinctrl-single,pins = <
@ -287,4 +303,32 @@
OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0) /* dss_data15.dss_data15 */
>;
};
hsusb1_rst_pins: pinmux_hsusb1_rst_pins {
pinctrl-single,pins = <
OMAP3_CORE1_IOPAD(0x20ba, PIN_OUTPUT | MUX_MODE4) /* gpmc_ncs6.gpio_57 */
>;
};
};
&omap3_pmx_core2 {
pinctrl-names = "default";
pinctrl-0 = <&hsusb1_pins>;
hsusb1_pins: pinmux_hsusb1_pins {
pinctrl-single,pins = <
OMAP3430_CORE2_IOPAD(0x25d8, PIN_OUTPUT | MUX_MODE3) /* etk_clk.hsusb1_stp */
OMAP3430_CORE2_IOPAD(0x25da, PIN_OUTPUT | MUX_MODE3) /* etk_ctl.hsusb1_clk */
OMAP3430_CORE2_IOPAD(0x25ec, PIN_INPUT | MUX_MODE3) /* etk_d8.hsusb1_dir */
OMAP3430_CORE2_IOPAD(0x25ee, PIN_INPUT | MUX_MODE3) /* etk_d9.hsusb1_nxt */
OMAP3430_CORE2_IOPAD(0x25dc, PIN_INPUT | MUX_MODE3) /* etk_d0.hsusb1_data0 */
OMAP3430_CORE2_IOPAD(0x25de, PIN_INPUT | MUX_MODE3) /* etk_d1.hsusb1_data1 */
OMAP3430_CORE2_IOPAD(0x25e0, PIN_INPUT | MUX_MODE3) /* etk_d2.hsusb1_data2 */
OMAP3430_CORE2_IOPAD(0x25ea, PIN_INPUT | MUX_MODE3) /* etk_d7.hsusb1_data3 */
OMAP3430_CORE2_IOPAD(0x25e4, PIN_INPUT | MUX_MODE3) /* etk_d4.hsusb1_data4 */
OMAP3430_CORE2_IOPAD(0x25e6, PIN_INPUT | MUX_MODE3) /* etk_d5.hsusb1_data5 */
OMAP3430_CORE2_IOPAD(0x25e8, PIN_INPUT | MUX_MODE3) /* etk_d6.hsusb1_data6 */
OMAP3430_CORE2_IOPAD(0x25e2, PIN_INPUT | MUX_MODE3) /* etk_d3.hsusb1_data7 */
>;
};
};

Some files were not shown because too many files have changed in this diff Show More