Merge ^/head r340235 through r340367.
This commit is contained in:
commit
0838f433ff
9
Makefile
9
Makefile
@ -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 \
|
||||
|
@ -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
|
||||
#
|
||||
|
@ -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
|
||||
|
10
UPDATING
10
UPDATING
@ -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
|
||||
|
51
bin/rm/rm.1
51
bin/rm/rm.1
@ -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.
|
||||
|
101
bin/rm/rm.c
101
bin/rm/rm.c
@ -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),
|
||||
|
@ -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:
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
||||
/*
|
||||
|
@ -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)
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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,
|
||||
"^]",
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
@ -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));
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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)
|
||||
|
@ -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 ,
|
||||
|
@ -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 ,
|
||||
|
@ -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 ,
|
||||
|
@ -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 ,
|
||||
|
@ -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 ,
|
||||
|
@ -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 ,
|
||||
|
@ -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 ,
|
||||
|
@ -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 ,
|
||||
|
@ -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 ,
|
||||
|
@ -6,7 +6,7 @@ SHLIBDIR?= /lib/casper
|
||||
|
||||
PACKAGE=libcasper
|
||||
|
||||
SHLIB_MAJOR= 1
|
||||
SHLIB_MAJOR= 2
|
||||
INCSDIR?= ${INCLUDEDIR}/casper
|
||||
|
||||
.if ${MK_CASPER} != "no"
|
||||
|
@ -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
|
||||
|
@ -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))
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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}
|
||||
|
@ -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 ".."
|
||||
|
@ -294,6 +294,7 @@ enum tokens {
|
||||
TOK_INTPREFIX,
|
||||
TOK_EXTPREFIX,
|
||||
TOK_PREFIXLEN,
|
||||
TOK_EXTIF,
|
||||
|
||||
TOK_TCPSETMSS,
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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).
|
||||
|
@ -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
|
||||
|
@ -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):
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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.
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
|
@ -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)
|
||||
|
@ -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 \
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
@ -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 */
|
||||
|
@ -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)
|
||||
|
@ -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, \
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
@ -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:
|
||||
|
@ -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),
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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},
|
||||
|
@ -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},
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -396,7 +396,7 @@
|
||||
compatible = "ti,wl1835";
|
||||
reg = <2>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts = <7 IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -778,7 +778,7 @@
|
||||
compatible = "ti,wl1835";
|
||||
reg = <2>;
|
||||
interrupt-parent = <&gpio3>;
|
||||
interrupts = <17 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupts = <17 IRQ_TYPE_EDGE_RISING>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -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>;
|
||||
};
|
||||
};
|
||||
|
457
sys/gnu/dts/arm/am335x-osd3358-sm-red.dts
Normal file
457
sys/gnu/dts/arm/am335x-osd3358-sm-red.dts
Normal 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";
|
||||
};
|
136
sys/gnu/dts/arm/am335x-sancloud-bbe.dts
Normal file
136
sys/gnu/dts/arm/am335x-sancloud-bbe.dts
Normal 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 */
|
||||
};
|
||||
};
|
@ -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 = <ðphy0>;
|
||||
};
|
||||
|
||||
&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>;
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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
Loading…
Reference in New Issue
Block a user