svn commit: r265921 - in projects/random_number_generator: gnu/lib/libstdc++ gnu/lib/libsupc++ include share/man/man4 sys/arm/arm sys/conf sys/dev/ofw sys/dev/usb/controller sys/kern sys/modules/us...
Mark Murray
markm at FreeBSD.org
Mon May 12 17:44:30 UTC 2014
Author: markm
Date: Mon May 12 17:44:23 2014
New Revision: 265921
URL: http://svnweb.freebsd.org/changeset/base/265921
Log:
MFC - tracking commit.
Merging r265873 through r265920.
Added:
projects/random_number_generator/sys/dev/usb/controller/saf1761_dci.c
- copied unchanged from r265920, head/sys/dev/usb/controller/saf1761_dci.c
projects/random_number_generator/sys/dev/usb/controller/saf1761_dci.h
- copied unchanged from r265920, head/sys/dev/usb/controller/saf1761_dci.h
projects/random_number_generator/sys/dev/usb/controller/saf1761_dci_fdt.c
- copied unchanged from r265920, head/sys/dev/usb/controller/saf1761_dci_fdt.c
projects/random_number_generator/sys/dev/usb/controller/saf1761_dci_reg.h
- copied unchanged from r265920, head/sys/dev/usb/controller/saf1761_dci_reg.h
projects/random_number_generator/sys/modules/usb/saf1761/
- copied from r265920, head/sys/modules/usb/saf1761/
Modified:
projects/random_number_generator/gnu/lib/libstdc++/Makefile
projects/random_number_generator/gnu/lib/libsupc++/Makefile
projects/random_number_generator/include/dirent.h
projects/random_number_generator/include/grp.h
projects/random_number_generator/include/setjmp.h
projects/random_number_generator/include/signal.h
projects/random_number_generator/include/stdio.h
projects/random_number_generator/include/string.h
projects/random_number_generator/include/termios.h
projects/random_number_generator/include/unistd.h
projects/random_number_generator/include/wchar.h
projects/random_number_generator/share/man/man4/lm75.4
projects/random_number_generator/sys/arm/arm/machdep.c
projects/random_number_generator/sys/conf/kern.opts.mk
projects/random_number_generator/sys/dev/ofw/ofwbus.c
projects/random_number_generator/sys/kern/kern_cpu.c
projects/random_number_generator/sys/kern/uipc_syscalls.c
projects/random_number_generator/sys/netinet/udp_usrreq.c
projects/random_number_generator/sys/powerpc/powerpc/intr_machdep.c
projects/random_number_generator/sys/powerpc/powerpc/mp_machdep.c
projects/random_number_generator/sys/powerpc/ps3/ps3bus.c
projects/random_number_generator/sys/powerpc/ps3/ps3pic.c
projects/random_number_generator/sys/sys/stat.h
projects/random_number_generator/sys/vm/vm_fault.c
projects/random_number_generator/sys/vm/vm_map.c
projects/random_number_generator/usr.bin/printf/printf.c
projects/random_number_generator/usr.bin/stat/stat.1
projects/random_number_generator/usr.bin/stat/stat.c
projects/random_number_generator/usr.bin/units/units.c
Directory Properties:
projects/random_number_generator/ (props changed)
projects/random_number_generator/gnu/lib/ (props changed)
projects/random_number_generator/include/ (props changed)
projects/random_number_generator/share/man/man4/ (props changed)
projects/random_number_generator/sys/ (props changed)
projects/random_number_generator/sys/conf/ (props changed)
Modified: projects/random_number_generator/gnu/lib/libstdc++/Makefile
==============================================================================
--- projects/random_number_generator/gnu/lib/libstdc++/Makefile Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/gnu/lib/libstdc++/Makefile Mon May 12 17:44:23 2014 (r265921)
@@ -632,9 +632,9 @@ ${VERSION_MAP}: ${SRCDIR}/config/abi/pre
CLEANFILES+= ${VERSION_MAP}
+CXXFLAGS.clang+= -stdlib=libstdc++
+
.include <bsd.lib.mk>
# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
CXXFLAGS:= ${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
-
-CXXFLAGS.clang+= -stdlib=libstdc++
Modified: projects/random_number_generator/gnu/lib/libsupc++/Makefile
==============================================================================
--- projects/random_number_generator/gnu/lib/libsupc++/Makefile Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/gnu/lib/libsupc++/Makefile Mon May 12 17:44:23 2014 (r265921)
@@ -51,10 +51,9 @@ CLEANFILES+= unwind.h
VERSION_MAP= ${.CURDIR}/Version.map
+CXXFLAGS.clang+= -stdlib=libstdc++
.include <bsd.lib.mk>
# Filter out libc++-specific flags, and -std= flags above c++98 or gnu++98.
CXXFLAGS:= ${CXXFLAGS:N-stdlib=libc++:N-std=c++[01][13x]:N-std=gnu++[01][13x]}
-
-CXXFLAGS.clang+= -stdlib=libstdc++
Modified: projects/random_number_generator/include/dirent.h
==============================================================================
--- projects/random_number_generator/include/dirent.h Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/include/dirent.h Mon May 12 17:44:23 2014 (r265921)
@@ -40,7 +40,7 @@
#include <sys/cdefs.h>
#include <sys/dirent.h>
-#if __BSD_VISIBLE || __XSI_VISIBLE
+#if __XSI_VISIBLE
/*
* XXX this is probably illegal in the __XSI_VISIBLE case, but brings us closer
* to the specification.
Modified: projects/random_number_generator/include/grp.h
==============================================================================
--- projects/random_number_generator/include/grp.h Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/include/grp.h Mon May 12 17:44:23 2014 (r265921)
@@ -61,7 +61,7 @@ struct group {
};
__BEGIN_DECLS
-#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
+#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
void endgrent(void);
struct group *getgrent(void);
#endif
@@ -74,11 +74,11 @@ int pwcache_groupdb(int (*)(int), void
struct group * (*)(const char *),
struct group * (*)(gid_t));
#endif
-#if __BSD_VISIBLE || __XSI_VISIBLE
+#if __XSI_VISIBLE
/* XXX IEEE Std 1003.1, 2003 specifies `void setgrent(void)' */
int setgrent(void);
#endif
-#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
+#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
int getgrgid_r(gid_t, struct group *, char *, size_t,
struct group **);
int getgrnam_r(const char *, struct group *, char *, size_t,
Modified: projects/random_number_generator/include/setjmp.h
==============================================================================
--- projects/random_number_generator/include/setjmp.h Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/include/setjmp.h Mon May 12 17:44:23 2014 (r265921)
@@ -44,7 +44,7 @@
#include <machine/setjmp.h>
__BEGIN_DECLS
-#if __BSD_VISIBLE || __XSI_VISIBLE >= 600
+#if __XSI_VISIBLE >= 600
void _longjmp(jmp_buf, int) __dead2;
int _setjmp(jmp_buf) __returns_twice;
#endif
@@ -53,7 +53,7 @@ void longjmp(jmp_buf, int) __dead2;
void longjmperror(void);
#endif
int setjmp(jmp_buf) __returns_twice;
-#if __BSD_VISIBLE || __POSIX_VISIBLE || __XSI_VISIBLE
+#if __POSIX_VISIBLE || __XSI_VISIBLE
void siglongjmp(sigjmp_buf, int) __dead2;
int sigsetjmp(sigjmp_buf, int) __returns_twice;
#endif
Modified: projects/random_number_generator/include/signal.h
==============================================================================
--- projects/random_number_generator/include/signal.h Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/include/signal.h Mon May 12 17:44:23 2014 (r265921)
@@ -108,7 +108,7 @@ int xsi_sigpause(int);
int siginterrupt(int, int);
#endif
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
+#if __POSIX_VISIBLE >= 200809
void psignal(unsigned int, const char *);
#endif
Modified: projects/random_number_generator/include/stdio.h
==============================================================================
--- projects/random_number_generator/include/stdio.h Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/include/stdio.h Mon May 12 17:44:23 2014 (r265921)
@@ -47,7 +47,7 @@ typedef __size_t size_t;
#define _SIZE_T_DECLARED
#endif
-#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
+#if __POSIX_VISIBLE >= 200809
#ifndef _OFF_T_DECLARED
#define _OFF_T_DECLARED
typedef __off_t off_t;
@@ -58,7 +58,7 @@ typedef __ssize_t ssize_t;
#endif
#endif
-#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
+#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
#ifndef _VA_LIST_DECLARED
typedef __va_list va_list;
#define _VA_LIST_DECLARED
@@ -290,7 +290,7 @@ int vsscanf(const char * __restrict, co
/*
* Functions defined in all versions of POSIX 1003.1.
*/
-#if __BSD_VISIBLE || __POSIX_VISIBLE <= 199506
+#if __BSD_VISIBLE || (__POSIX_VISIBLE && __POSIX_VISIBLE <= 199506)
#define L_cuserid 17 /* size for cuserid(3); MAXLOGNAME, legacy */
#endif
@@ -342,7 +342,7 @@ int putw(int, FILE *);
char *tempnam(const char *, const char *);
#endif
-#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
+#if __POSIX_VISIBLE >= 200809
FILE *fmemopen(void * __restrict, size_t, const char * __restrict);
ssize_t getdelim(char ** __restrict, size_t * __restrict, int,
FILE * __restrict);
@@ -387,7 +387,7 @@ ssize_t getline(char ** __restrict, siz
int (dprintf)(int, const char * __restrict, ...);
#endif
-#endif /* __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 */
+#endif /* __POSIX_VISIBLE >= 200809 */
/*
* Routines that are purely local.
Modified: projects/random_number_generator/include/string.h
==============================================================================
--- projects/random_number_generator/include/string.h Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/include/string.h Mon May 12 17:44:23 2014 (r265921)
@@ -65,7 +65,7 @@ void *memmem(const void *, size_t, const
#endif
void *memmove(void *, const void *, size_t);
void *memset(void *, int, size_t);
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
+#if __POSIX_VISIBLE >= 200809
char *stpcpy(char * __restrict, const char * __restrict);
char *stpncpy(char * __restrict, const char * __restrict, size_t);
#endif
@@ -99,7 +99,7 @@ void strmode(int, char *);
char *strncat(char * __restrict, const char * __restrict, size_t);
int strncmp(const char *, const char *, size_t) __pure;
char *strncpy(char * __restrict, const char * __restrict, size_t);
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
+#if __POSIX_VISIBLE >= 200809
char *strndup(const char *, size_t) __malloc_like;
size_t strnlen(const char *, size_t) __pure;
#endif
@@ -111,7 +111,7 @@ char *strrchr(const char *, int) __pure;
#if __BSD_VISIBLE
char *strsep(char **, const char *);
#endif
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
+#if __POSIX_VISIBLE >= 200809
char *strsignal(int);
#endif
size_t strspn(const char *, const char *) __pure;
Modified: projects/random_number_generator/include/termios.h
==============================================================================
--- projects/random_number_generator/include/termios.h Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/include/termios.h Mon May 12 17:44:23 2014 (r265921)
@@ -81,7 +81,7 @@ int tcflow(int, int);
int tcflush(int, int);
int tcsendbreak(int, int);
-#if __POSIX_VISIBLE >= 200112 || __BSD_VISIBLE
+#if __POSIX_VISIBLE >= 200112
pid_t tcgetsid(int);
#endif
#if __BSD_VISIBLE
Modified: projects/random_number_generator/include/unistd.h
==============================================================================
--- projects/random_number_generator/include/unistd.h Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/include/unistd.h Mon May 12 17:44:23 2014 (r265921)
@@ -426,7 +426,7 @@ int truncate(const char *, off_t);
#endif
#endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
+#if __POSIX_VISIBLE >= 200809
int faccessat(int, const char *, int, int);
int fchownat(int, const char *, uid_t, gid_t, int);
int fexecve(int, char *const [], char *const []);
@@ -434,14 +434,14 @@ int linkat(int, const char *, int, const
ssize_t readlinkat(int, const char * __restrict, char * __restrict, size_t);
int symlinkat(const char *, int, const char *);
int unlinkat(int, const char *, int);
-#endif /* __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE */
+#endif /* __POSIX_VISIBLE >= 200809 */
/*
* symlink() was originally in POSIX.1a, which was withdrawn after
* being overtaken by events (1003.1-2001). It was in XPG4.2, and of
* course has been in BSD since 4.2.
*/
-#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 402 || __BSD_VISIBLE
+#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 402
int symlink(const char * __restrict, const char * __restrict);
#endif
Modified: projects/random_number_generator/include/wchar.h
==============================================================================
--- projects/random_number_generator/include/wchar.h Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/include/wchar.h Mon May 12 17:44:23 2014 (r265921)
@@ -204,7 +204,7 @@ int wcwidth(wchar_t);
#define wcwidth(_c) __wcwidth(_c)
#endif
-#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE
+#if __POSIX_VISIBLE >= 200809
size_t mbsnrtowcs(wchar_t * __restrict, const char ** __restrict, size_t,
size_t, mbstate_t * __restrict);
FILE *open_wmemstream(wchar_t **, size_t *);
Modified: projects/random_number_generator/share/man/man4/lm75.4
==============================================================================
--- projects/random_number_generator/share/man/man4/lm75.4 Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/share/man/man4/lm75.4 Mon May 12 17:44:23 2014 (r265921)
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 7, 2014
+.Dd May 11, 2014
.Dt LM75 4
.Os
.Sh NAME
@@ -69,28 +69,28 @@ dev.lm75.0.shutdown: 0
Is the read-only value of the current temperature read by the sensor.
.It Va dev.lm75.%d.thyst
Sets the hysteresis temperature.
-Once the temperature get over the overtemperature shutdown value (tos)
-it need to drop bellow the hysteresis temperature to disable the output
+Once the temperature gets over the overtemperature shutdown value (tos)
+it needs to drop below the hysteresis temperature to disable the output
(interrupt) pin again.
.It Va dev.lm75.%d.tos
Sets the overtemperature shutdown value.
-Once the temperature get over this value the output pin will be enabled.
+Once the temperature gets over this value the output pin will be enabled.
The way the output (interrupt) pin works, depends on the mode configuration.
.It Va dev.lm75.%d.faults
Is the number of faults that must occur consecutively to activate the
interrupt (output) pin.
It can be set to 1, 2, 4, and 6.
.It Va dev.lm75.%d.mode
-Set the operation mode for the sensor interrupt pin.
+Sets the operation mode for the sensor interrupt pin.
It can be set to 'comparator' (default) or 'interrupt'.
.It Va dev.lm75.%d.polarity
-Set the polarity of the sensor interrupt pin.
+Sets the polarity of the sensor interrupt pin.
It can be set to 'active-low' (default) or 'active-high'.
Please note that the output pin is an open-drain output and it needs a
proper pull-up resistor to work.
.It Va dev.lm75.%d.shutdown
-When set to '1' it shutdown the sensor.
-The temperature convertion stops but the sensor remains with its i2c bus
+When set to '1' it shuts down the sensor.
+The temperature conversion stops but the sensor remains with its i2c bus
active, i.e., it can be woken up by setting this option to '0' again.
.El
.Pp
@@ -124,7 +124,7 @@ On a
.Xr device.hints 5
based system, like
.Li MIPS ,
-these values are configurable for the
+these values are configurable for
.Nm :
.Bl -tag -width ".Va hint.lm75.%d.addr"
.It Va hint.lm75.%d.at
@@ -168,7 +168,7 @@ property indicates which i2c address the
.Nm
is wired at.
.Nm
-temperature sensors can be wired to 8 different address, allowing up to 8
+temperature sensors can be wired to 8 different addresses, allowing up to 8
sensors on the same
.Xr iicbus 4 .
.El
@@ -187,5 +187,5 @@ driver first appeared in
.An -nosplit
The
.Nm
-driver and this manual page was written by
-.An Luiz Otavio O Souza Aq loos at FreeBSD.org
+driver and this manual page were written by
+.An Luiz Otavio O Souza Aq loos at FreeBSD.org .
Modified: projects/random_number_generator/sys/arm/arm/machdep.c
==============================================================================
--- projects/random_number_generator/sys/arm/arm/machdep.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/arm/arm/machdep.c Mon May 12 17:44:23 2014 (r265921)
@@ -424,24 +424,20 @@ void
cpu_idle(int busy)
{
- CTR2(KTR_SPARE2, "cpu_idle(%d) at %d",
- busy, curcpu);
+ CTR2(KTR_SPARE2, "cpu_idle(%d) at %d", busy, curcpu);
+ spinlock_enter();
#ifndef NO_EVENTTIMERS
- if (!busy) {
- critical_enter();
+ if (!busy)
cpu_idleclock();
- }
#endif
if (!sched_runnable())
cpu_sleep(0);
#ifndef NO_EVENTTIMERS
- if (!busy) {
+ if (!busy)
cpu_activeclock();
- critical_exit();
- }
#endif
- CTR2(KTR_SPARE2, "cpu_idle(%d) at %d done",
- busy, curcpu);
+ spinlock_exit();
+ CTR2(KTR_SPARE2, "cpu_idle(%d) at %d done", busy, curcpu);
}
int
Modified: projects/random_number_generator/sys/conf/kern.opts.mk
==============================================================================
--- projects/random_number_generator/sys/conf/kern.opts.mk Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/conf/kern.opts.mk Mon May 12 17:44:23 2014 (r265921)
@@ -21,4 +21,15 @@ __DEFAULT_YES_OPTIONS = \
__DEFAULT_NO_OPTIONS = \
+# Kludge to allow a less painful transition. If MAKESYSPATH isn't defined,
+# assume we have a standard FreeBSD src tree layout and reach over and grab
+# bsd.mkopt.mk from there. If it is defined, trust it to point someplace sane
+# and include bsd.mkopt.mk from there. We need the !defined case to keep ports
+# kernel modules working (though arguably they should define MAKESYSPATH). We
+# need the latter case to keep the Jenkins testing harness working where they
+# specifically use a non-standard layout, but do define MAKESYSPATH correctly.
+.if !defined(MAKESYSPATH)
.include "../../share/mk/bsd.mkopt.mk"
+.else
+.include <bsd.mkopt.mk>
+.endif
Modified: projects/random_number_generator/sys/dev/ofw/ofwbus.c
==============================================================================
--- projects/random_number_generator/sys/dev/ofw/ofwbus.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/dev/ofw/ofwbus.c Mon May 12 17:44:23 2014 (r265921)
@@ -187,7 +187,7 @@ ofwbus_identify(driver_t *driver, device
{
/* Check if Open Firmware has been instantiated */
- if (OF_peer(0) == -1)
+ if (OF_peer(0) == 0)
return;
if (device_find_child(parent, "ofwbus", -1) == NULL)
Copied: projects/random_number_generator/sys/dev/usb/controller/saf1761_dci.c (from r265920, head/sys/dev/usb/controller/saf1761_dci.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/random_number_generator/sys/dev/usb/controller/saf1761_dci.c Mon May 12 17:44:23 2014 (r265921, copy of r265920, head/sys/dev/usb/controller/saf1761_dci.c)
@@ -0,0 +1,33 @@
+/* $FreeBSD$ */
+/*-
+ * Copyright (c) 2014 Hans Petter Selasky
+ * All rights reserved.
+ *
+ * This software was developed by SRI International and the University of
+ * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
+ * ("CTSRD"), as part of the DARPA CRASH research programme.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <dev/usb/controller/saf1761_dci.h>
+#include <dev/usb/controller/saf1761_dci_reg.h>
Copied: projects/random_number_generator/sys/dev/usb/controller/saf1761_dci.h (from r265920, head/sys/dev/usb/controller/saf1761_dci.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/random_number_generator/sys/dev/usb/controller/saf1761_dci.h Mon May 12 17:44:23 2014 (r265921, copy of r265920, head/sys/dev/usb/controller/saf1761_dci.h)
@@ -0,0 +1,36 @@
+/* $FreeBSD$ */
+/*-
+ * Copyright (c) 2014 Hans Petter Selasky
+ * All rights reserved.
+ *
+ * This software was developed by SRI International and the University of
+ * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
+ * ("CTSRD"), as part of the DARPA CRASH research programme.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _SAF1761_DCI_H_
+#define _SAF1761_DCI_H_
+
+
+#endif /* _SAF1761_DCI_H_ */
Copied: projects/random_number_generator/sys/dev/usb/controller/saf1761_dci_fdt.c (from r265920, head/sys/dev/usb/controller/saf1761_dci_fdt.c)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/random_number_generator/sys/dev/usb/controller/saf1761_dci_fdt.c Mon May 12 17:44:23 2014 (r265921, copy of r265920, head/sys/dev/usb/controller/saf1761_dci_fdt.c)
@@ -0,0 +1,34 @@
+/* $FreeBSD$ */
+/*-
+ * Copyright (c) 2014 Hans Petter Selasky
+ * All rights reserved.
+ *
+ * This software was developed by SRI International and the University of
+ * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
+ * ("CTSRD"), as part of the DARPA CRASH research programme.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <dev/usb/controller/saf1761_dci.h>
+#include <dev/usb/controller/saf1761_dci_reg.h>
+
Copied: projects/random_number_generator/sys/dev/usb/controller/saf1761_dci_reg.h (from r265920, head/sys/dev/usb/controller/saf1761_dci_reg.h)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/random_number_generator/sys/dev/usb/controller/saf1761_dci_reg.h Mon May 12 17:44:23 2014 (r265921, copy of r265920, head/sys/dev/usb/controller/saf1761_dci_reg.h)
@@ -0,0 +1,156 @@
+/* $FreeBSD$ */
+/*-
+ * Copyright (c) 2014 Hans Petter Selasky
+ * All rights reserved.
+ *
+ * This software was developed by SRI International and the University of
+ * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237)
+ * ("CTSRD"), as part of the DARPA CRASH research programme.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _SAF1761_DCI_REG_H_
+#define _SAF1761_DCI_REG_H_
+
+/* Global registers */
+
+#define SOTG_VEND_ID 0x370
+#define SOTG_PROD_ID 0x372
+#define SOTG_CTRL_SET 0x374
+#define SOTG_CTRL_CLR 0x376
+#define SOTG_CTRL_OTG_DISABLE (1 << 10)
+#define SOTG_CTRL_OTG_SE0_EN (1 << 9)
+#define SOTG_CTRL_BDIS_ACON_EN (1 << 8)
+#define SOTG_CTRL_SW_SEL_HC_DC (1 << 7)
+#define SOTG_CTRL_VBUS_CHRG (1 << 6)
+#define SOTG_CTRL_VBUS_DISCHRG (1 << 5)
+#define SOTG_CTRL_VBUS_DRV (1 << 4)
+#define SOTG_CTRL_SEL_CP_EXT (1 << 3)
+#define SOTG_CTRL_DM_PULL_DOWN (1 << 2)
+#define SOTG_CTRL_DP_PULL_DOWN (1 << 1)
+#define SOTG_CTRL_DP_PULL_UP (1 << 0)
+#define SOTG_STATUS 0x378
+#define SOTG_STATUS_B_SE0_SRP (1 << 8)
+#define SOTG_STATUS_B_SESS_END (1 << 7)
+#define SOTG_STATUS_RMT_CONN (1 << 4)
+#define SOTG_STATUS_ID (1 << 3)
+#define SOTG_STATUS_DP_SRP (1 << 2)
+#define SOTG_STATUS_A_B_SESS_VLD (1 << 1)
+#define SOTG_STATUS_VBUS_VLD (1 << 0)
+#define SOTG_IRQ_LATCH_SET 0x37C
+#define SOTG_IRQ_LATCH_CLR 0x37E
+#define SOTG_IRQ_ENABLE_SET 0x380
+#define SOTG_IRQ_ENABLE_CLR 0x382
+#define SOTG_IRQ_RISE_SET 0x384
+#define SOTG_IRQ_RISE_CLR 0x386
+#define SOTG_IRQ_OTG_TMR_TIMEOUT (1 << 9)
+#define SOTG_IRQ_B_SE0_SRP (1 << 8)
+#define SOTG_IRQ_B_SESS_END (1 << 7)
+#define SOTG_IRQ_BDIS_ACON (1 << 6)
+#define SOTG_IRQ_OTG_RESUME (1 << 5)
+#define SOTG_IRQ_RMT_CONN (1 << 4)
+#define SOTG_IRQ_ID (1 << 3)
+#define SOTG_IRQ_DP_SRP (1 << 2)
+#define SOTG_IRQ_A_B_SESS_VLD (1 << 1)
+#define SOTG_IRQ_VBUS_VLD (1 << 0)
+#define SOTG_TIMER_LOW_SET 0x388
+#define SOTG_TIMER_LOW_CLR 0x38A
+#define SOTG_TIMER_HIGH_SET 0x38C
+#define SOTG_TIMER_HIGH_CLR 0x38E
+#define SOTG_TIMER_START_TMR (1U << 15)
+
+/* Peripheral controller specific registers */
+
+#define SOTG_ADDRESS 0x200
+#define SOTG_ADDRESS_ENABLE (1 << 7)
+#define SOTG_MODE 0x20C
+#define SOTG_MODE_DMACLK_ON (1 << 9)
+#define SOTG_MODE_VBUSSTAT (1 << 8)
+#define SOTG_MODE_CLKAON (1 << 7)
+#define SOTG_MODE_SNDRSU (1 << 6)
+#define SOTG_MODE_GOSUSP (1 << 5)
+#define SOTG_MODE_SFRESET (1 << 4)
+#define SOTG_MODE_GLINTENA (1 << 3)
+#define SOTG_MODE_WKUPCS (1 << 2)
+#define SOTG_INTERRUPT_CFG 0x210
+#define SOTG_INTERRUPT_CFG_CDBGMOD (3 << 6)
+#define SOTG_INTERRUPT_CFG_DDBGMODIN (3 << 4)
+#define SOTG_INTERRUPT_CFG_DDBGMODOUT (3 << 2)
+#define SOTG_INTERRUPT_CFG_INTLVL (1 << 1)
+#define SOTG_INTERRUPT_CFG_INTPOL (1 << 0)
+#define SOTG_DEBUG 0x212
+#define SOTG_DEBUG_SET (1 << 0)
+#define SOTG_DCINTERRUPT_EN 0x214
+#define SOTG_HW_MODE_CTRL 0x300
+#define SOTG_OTG_CTRL 0x374
+#define SOTG_EP_INDEX 0x22c
+#define SOTG_EP_INDEX_EP0SETUP (1 << 5)
+#define SOTG_EP_INDEX_ENDP_INDEX (15 << 1)
+#define SOTG_EP_INDEX_DIR_IN (1 << 0)
+#define SOTG_CTRL_FUNC 0x228
+#define SOTG_CTRL_FUNC_CLBUF (1 << 4)
+#define SOTG_CTRL_FUNC_VENDP (1 << 3)
+#define SOTG_CTRL_FUNC_DSEN (1 << 2)
+#define SOTG_CTRL_FUNC_STATUS (1 << 1)
+#define SOTG_CTRL_FUNC_STALL (1 << 0)
+#define SOTG_DATA_PORT 0x220
+#define SOTG_BUF_LENGTH 0x21C
+#define SOTG_DCBUFFERSTATUS 0x21E
+#define SOTG_EP_MAXPACKET 0x204
+#define SOTG_EP_TYPE 0x208
+#define SOTG_EP_TYPE_NOEMPPKT (1 << 4)
+#define SOTG_EP_TYPE_ENABLE (1 << 3)
+#define SOTG_EP_TYPE_DBLBUF (1 << 2)
+#define SOTG_EP_TYPE_EP_TYPE (3 << 0)
+#define SOTG_DMA_CMD 0x230
+#define SOTG_DMA_XFER_COUNT 0x234
+#define SOTG_DCDMA_CFG 0x238
+#define SOTG_DMA_HW 0x23C
+#define SOTG_DMA_IRQ_REASON 0x250
+#define SOTG_DMA_IRQ_ENABLE 0x254
+#define SOTG_DMA_EP 0x258
+#define SOTG_BURST_COUNTER 0x264
+#define SOTG_DCINTERRUPT 0x218
+#define SOTG_DCINTERRUPT_IEPRX(n) (1 << (10 + (2*(n))))
+#define SOTG_DCINTERRUPT_IEPTX(n) (1 << (11 + (2*(n))))
+#define SOTG_DCINTERRUPT_IEP0SETUP (1 << 8)
+#define SOTG_DCINTERRUPT_IEVBUS (1 << 7)
+#define SOTG_DCINTERRUPT_IEDMA (1 << 6)
+#define SOTG_DCINTERRUPT_IEHS_STA (1 << 5)
+#define SOTG_DCINTERRUPT_IERESM (1 << 4)
+#define SOTG_DCINTERRUPT_IESUSP (1 << 3)
+#define SOTG_DCINTERRUPT_IEPSOF (1 << 2)
+#define SOTG_DCINTERRUPT_IESOF (1 << 1)
+#define SOTG_DCINTERRUPT_IEBRST (1 << 0)
+#define SOTG_DCCHIP_ID 0x270
+#define SOTG_FRAME_NUM 0x274
+#define SOTG_FRAME_NUM_MICROSOFR 0x3800
+#define SOTG_FRAME_NUM_MICROSOFR_SHIFT 11
+#define SOTG_FRAME_NUM_SOFR 0x7FF
+#define SOTG_DCSCRATCH 0x278
+#define SOTG_UNLOCK_DEVICE 0x27C
+#define SOTG_UNLOCK_DEVICE_CODE 0xAA37
+#define SOTG_IRQ_PULSE_WIDTH 0x280
+#define SOTG_TEST_MODE 0x284
+
+#endif /* _SAF1761_DCI_REG_H_ */
Modified: projects/random_number_generator/sys/kern/kern_cpu.c
==============================================================================
--- projects/random_number_generator/sys/kern/kern_cpu.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/kern/kern_cpu.c Mon May 12 17:44:23 2014 (r265921)
@@ -418,7 +418,7 @@ cf_get_method(device_t dev, struct cf_le
struct cf_setting *curr_set, set;
struct pcpu *pc;
device_t *devs;
- int count, error, i, n, numdevs;
+ int bdiff, count, diff, error, i, n, numdevs;
uint64_t rate;
sc = device_get_softc(dev);
@@ -494,14 +494,15 @@ cf_get_method(device_t dev, struct cf_le
}
cpu_est_clockrate(pc->pc_cpuid, &rate);
rate /= 1000000;
+ bdiff = 1 << 30;
for (i = 0; i < count; i++) {
- if (CPUFREQ_CMP(rate, levels[i].total_set.freq)) {
+ diff = abs(levels[i].total_set.freq - rate);
+ if (diff < bdiff) {
+ bdiff = diff;
sc->curr_level = levels[i];
- CF_DEBUG("get estimated freq %d\n", curr_set->freq);
- goto out;
}
}
- error = ENXIO;
+ CF_DEBUG("get estimated freq %d\n", curr_set->freq);
out:
if (error == 0)
Modified: projects/random_number_generator/sys/kern/uipc_syscalls.c
==============================================================================
--- projects/random_number_generator/sys/kern/uipc_syscalls.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/kern/uipc_syscalls.c Mon May 12 17:44:23 2014 (r265921)
@@ -414,14 +414,8 @@ accept1(td, s, uname, anamelen, flags)
error = kern_accept4(td, s, &name, &namelen, flags, &fp);
- /*
- * return a namelen of zero for older code which might
- * ignore the return value from accept.
- */
- if (error != 0) {
- (void) copyout(&namelen, anamelen, sizeof(*anamelen));
+ if (error != 0)
return (error);
- }
if (error == 0 && uname != NULL) {
#ifdef COMPAT_OLDSOCK
@@ -555,15 +549,8 @@ kern_accept4(struct thread *td, int s, s
(void) fo_ioctl(nfp, FIOASYNC, &tmp, td->td_ucred, td);
sa = 0;
error = soaccept(so, &sa);
- if (error != 0) {
- /*
- * return a namelen of zero for older code which might
- * ignore the return value from accept.
- */
- if (name)
- *namelen = 0;
+ if (error != 0)
goto noconnection;
- }
if (sa == NULL) {
if (name)
*namelen = 0;
Modified: projects/random_number_generator/sys/netinet/udp_usrreq.c
==============================================================================
--- projects/random_number_generator/sys/netinet/udp_usrreq.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/netinet/udp_usrreq.c Mon May 12 17:44:23 2014 (r265921)
@@ -1370,13 +1370,17 @@ udp_output(struct inpcb *inp, struct mbu
* Set up checksum and output datagram.
*/
ui->ui_sum = 0;
- if (cscov_partial) {
+ if (pr == IPPROTO_UDPLITE) {
if (inp->inp_flags & INP_ONESBCAST)
faddr.s_addr = INADDR_BROADCAST;
- if ((ui->ui_sum = in_cksum(m, sizeof(struct ip) + cscov)) == 0)
- ui->ui_sum = 0xffff;
- } else if (V_udp_cksum || pr == IPPROTO_UDPLITE) {
- /* for UDP-Lite full checksum coverage is requested */
+ if (cscov_partial) {
+ if ((ui->ui_sum = in_cksum(m, sizeof(struct ip) + cscov)) == 0)
+ ui->ui_sum = 0xffff;
+ } else {
+ if ((ui->ui_sum = in_cksum(m, sizeof(struct udpiphdr) + len)) == 0)
+ ui->ui_sum = 0xffff;
+ }
+ } else if (V_udp_cksum) {
if (inp->inp_flags & INP_ONESBCAST)
faddr.s_addr = INADDR_BROADCAST;
ui->ui_sum = in_pseudo(ui->ui_src.s_addr, faddr.s_addr,
Modified: projects/random_number_generator/sys/powerpc/powerpc/intr_machdep.c
==============================================================================
--- projects/random_number_generator/sys/powerpc/powerpc/intr_machdep.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/powerpc/powerpc/intr_machdep.c Mon May 12 17:44:23 2014 (r265921)
@@ -103,6 +103,7 @@ struct powerpc_intr {
enum intr_trigger trig;
enum intr_polarity pol;
int fwcode;
+ int ipi;
};
struct pic {
@@ -203,6 +204,8 @@ intr_lookup(u_int irq)
i->irq = irq;
i->pic = NULL;
i->vector = -1;
+ i->fwcode = 0;
+ i->ipi = 0;
#ifdef SMP
i->cpu = all_cpus;
@@ -415,6 +418,15 @@ powerpc_enable_intr(void)
printf("unable to setup IPI handler\n");
return (error);
}
+
+ /*
+ * Some subterfuge: disable late EOI and mark this
+ * as an IPI to the dispatch layer.
+ */
+ i = intr_lookup(MAP_IRQ(piclist[n].node,
+ piclist[n].irqs));
+ i->event->ie_post_filter = NULL;
+ i->ipi = 1;
}
}
#endif
@@ -568,6 +580,13 @@ powerpc_dispatch_intr(u_int vector, stru
ie = i->event;
KASSERT(ie != NULL, ("%s: interrupt without an event", __func__));
+ /*
+ * IPIs are magical and need to be EOI'ed before filtering.
+ * This prevents races in IPI handling.
+ */
+ if (i->ipi)
+ PIC_EOI(i->pic, i->intline);
+
if (intr_event_handle(ie, tf) != 0) {
goto stray;
}
Modified: projects/random_number_generator/sys/powerpc/powerpc/mp_machdep.c
==============================================================================
--- projects/random_number_generator/sys/powerpc/powerpc/mp_machdep.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/powerpc/powerpc/mp_machdep.c Mon May 12 17:44:23 2014 (r265921)
@@ -336,6 +336,7 @@ ipi_send(struct pcpu *pc, int ipi)
pc, pc->pc_cpuid, ipi);
atomic_set_32(&pc->pc_ipimask, (1 << ipi));
+ powerpc_sync();
PIC_IPI(root_pic, pc->pc_cpuid);
CTR1(KTR_SMP, "%s: sent", __func__);
Modified: projects/random_number_generator/sys/powerpc/ps3/ps3bus.c
==============================================================================
--- projects/random_number_generator/sys/powerpc/ps3/ps3bus.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/powerpc/ps3/ps3bus.c Mon May 12 17:44:23 2014 (r265921)
@@ -127,6 +127,7 @@ static device_method_t ps3bus_methods[]
struct ps3bus_softc {
struct rman sc_mem_rman;
+ struct rman sc_intr_rman;
struct mem_region *regions;
int rcount;
};
@@ -328,7 +329,11 @@ ps3bus_attach(device_t self)
sc = device_get_softc(self);
sc->sc_mem_rman.rm_type = RMAN_ARRAY;
sc->sc_mem_rman.rm_descr = "PS3Bus Memory Mapped I/O";
+ sc->sc_intr_rman.rm_type = RMAN_ARRAY;
+ sc->sc_intr_rman.rm_descr = "PS3Bus Interrupts";
rman_init(&sc->sc_mem_rman);
+ rman_init(&sc->sc_intr_rman);
+ rman_manage_region(&sc->sc_intr_rman, 0, ~0);
/* Get memory regions for DMA */
mem_regions(&sc->regions, &sc->rcount, &sc->regions, &sc->rcount);
@@ -562,8 +567,13 @@ ps3bus_alloc_resource(device_t bus, devi
rm = &sc->sc_mem_rman;
break;
case SYS_RES_IRQ:
- return (resource_list_alloc(&dinfo->resources, bus, child,
- type, rid, start, end, count, flags));
+ rle = resource_list_find(&dinfo->resources, SYS_RES_IRQ,
+ *rid);
+ rm = &sc->sc_intr_rman;
+ adjstart = rle->start;
+ adjcount = ulmax(count, rle->count);
+ adjend = ulmax(rle->end, rle->start + adjcount - 1);
+ break;
default:
device_printf(bus, "unknown resource request from %s\n",
device_get_nameunit(child));
Modified: projects/random_number_generator/sys/powerpc/ps3/ps3pic.c
==============================================================================
--- projects/random_number_generator/sys/powerpc/ps3/ps3pic.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/powerpc/ps3/ps3pic.c Mon May 12 17:44:23 2014 (r265921)
@@ -166,12 +166,13 @@ ps3pic_dispatch(device_t dev, struct tra
sc = device_get_softc(dev);
if (PCPU_GET(cpuid) == 0) {
- bitmap = sc->bitmap_thread0[0];
+ bitmap = atomic_readandclear_64(&sc->bitmap_thread0[0]);
mask = sc->mask_thread0[0];
} else {
- bitmap = sc->bitmap_thread1[0];
+ bitmap = atomic_readandclear_64(&sc->bitmap_thread1[0]);
mask = sc->mask_thread1[0];
}
+ powerpc_sync();
while ((irq = ffsl(bitmap & mask) - 1) != -1) {
bitmap &= ~(1UL << irq);
Modified: projects/random_number_generator/sys/sys/stat.h
==============================================================================
--- projects/random_number_generator/sys/sys/stat.h Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/sys/stat.h Mon May 12 17:44:23 2014 (r265921)
@@ -339,12 +339,12 @@ int mknod(const char *, mode_t, dev_t);
#endif
int stat(const char * __restrict, struct stat * __restrict);
mode_t umask(mode_t);
-#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
+#if __POSIX_VISIBLE >= 200809
int fstatat(int, const char *, struct stat *, int);
int mkdirat(int, const char *, mode_t);
int mkfifoat(int, const char *, mode_t);
#endif
-#if __BSD_VISIBLE || __XSI_VISIBLE >= 700
+#if __XSI_VISIBLE >= 700
int mknodat(int, const char *, mode_t, dev_t);
#endif
__END_DECLS
Modified: projects/random_number_generator/sys/vm/vm_fault.c
==============================================================================
--- projects/random_number_generator/sys/vm/vm_fault.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/vm/vm_fault.c Mon May 12 17:44:23 2014 (r265921)
@@ -1359,6 +1359,7 @@ again:
VM_OBJECT_WUNLOCK(dst_object);
VM_OBJECT_RUNLOCK(object);
VM_WAIT;
+ VM_OBJECT_WLOCK(dst_object);
goto again;
}
} while (dst_m == NULL);
Modified: projects/random_number_generator/sys/vm/vm_map.c
==============================================================================
--- projects/random_number_generator/sys/vm/vm_map.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/sys/vm/vm_map.c Mon May 12 17:44:23 2014 (r265921)
@@ -1978,10 +1978,17 @@ vm_map_protect(vm_map_t map, vm_offset_t
else
current->protection = new_prot;
- if ((current->eflags & (MAP_ENTRY_COW | MAP_ENTRY_USER_WIRED))
- == (MAP_ENTRY_COW | MAP_ENTRY_USER_WIRED) &&
+ /*
+ * For user wired map entries, the normal lazy evaluation of
+ * write access upgrades through soft page faults is
+ * undesirable. Instead, immediately copy any pages that are
+ * copy-on-write and enable write access in the physical map.
+ */
+ if ((current->eflags & MAP_ENTRY_USER_WIRED) != 0 &&
(current->protection & VM_PROT_WRITE) != 0 &&
(old_prot & VM_PROT_WRITE) == 0) {
+ KASSERT(old_prot != VM_PROT_NONE,
+ ("vm_map_protect: inaccessible wired map entry"));
vm_fault_copy_entry(map, map, current, current, NULL);
}
Modified: projects/random_number_generator/usr.bin/printf/printf.c
==============================================================================
--- projects/random_number_generator/usr.bin/printf/printf.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/usr.bin/printf/printf.c Mon May 12 17:44:23 2014 (r265921)
@@ -101,6 +101,8 @@ static void usage(void);
static const char digits[] = "0123456789";
+static char end_fmt[1];
+
static int myargc;
static char **myargv;
static char **gargv;
@@ -171,11 +173,11 @@ main(int argc, char *argv[])
fmt += 2;
} else {
fmt = printf_doformat(fmt, &rval);
- if (fmt == NULL) {
+ if (fmt == NULL || fmt == end_fmt) {
#ifdef SHELL
INTON;
#endif
- return (1);
+ return (fmt == NULL ? 1 : rval);
}
end = 0;
}
@@ -372,7 +374,7 @@ printf_doformat(char *fmt, int *rval)
fputs(p, stdout);
free(p);
if (getout)
- exit(*rval);
+ return (end_fmt);
break;
}
case 'c': {
Modified: projects/random_number_generator/usr.bin/stat/stat.1
==============================================================================
--- projects/random_number_generator/usr.bin/stat/stat.1 Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/usr.bin/stat/stat.1 Mon May 12 17:44:23 2014 (r265921)
@@ -130,6 +130,7 @@ and use
.Xr fhstat 2
instead of
.Xr lstat 2 .
+This requires root privileges.
.It Fl L
Use
.Xr stat 2
Modified: projects/random_number_generator/usr.bin/stat/stat.c
==============================================================================
--- projects/random_number_generator/usr.bin/stat/stat.c Mon May 12 16:10:14 2014 (r265920)
+++ projects/random_number_generator/usr.bin/stat/stat.c Mon May 12 17:44:23 2014 (r265921)
@@ -186,6 +186,7 @@ int format1(const struct stat *, /* stat
char *, size_t, /* a place to put the output */
int, int, int, int, /* the parsed format */
int, int);
+int hex2byte(const char [2]);
#if HAVE_STRUCT_STAT_ST_FLAGS
char *xfflagstostr(unsigned long);
#endif
@@ -214,7 +215,7 @@ main(int argc, char *argv[])
lsF = 0;
fmtchar = '\0';
usestat = 0;
- nfs_handle = 0;
+ nfs_handle = 0;
nonl = 0;
quiet = 0;
linkfail = 0;
@@ -327,32 +328,27 @@ main(int argc, char *argv[])
rc = fstat(STDIN_FILENO, &st);
} else {
int j;
- char *inval;
file = argv[0];
if (nfs_handle) {
rc = 0;
- bzero (&fhnd, sizeof fhnd);
- j = MIN(2 * sizeof fhnd, strlen(file));
- if (j & 1) {
+ bzero(&fhnd, sizeof(fhnd));
+ j = MIN(2 * sizeof(fhnd), strlen(file));
+ if ((j & 1) != 0) {
rc = -1;
} else {
while (j) {
- ((char*) &fhnd)[j / 2 - 1] =
- strtol(&file[j - 2],
- &inval, 16);
- if (inval != NULL) {
- rc = -1;
+ rc = hex2byte(&file[j - 2]);
+ if (rc == -1)
break;
- }
- argv[0][j - 2] = '\0';
+ ((char*) &fhnd)[j / 2 - 1] = rc;
j -= 2;
}
- if (!rc)
- rc = fhstat(&fhnd, &st);
- else
- errno = EINVAL;
}
+ if (rc == -1)
+ errno = EINVAL;
+ else
+ rc = fhstat(&fhnd, &st);
} else if (usestat) {
/*
@@ -1091,3 +1087,12 @@ format1(const struct stat *st,
return (snprintf(buf, blen, lfmt, data));
}
+
+
+#define hex2nibble(c) (c <= '9' ? c - '0' : toupper(c) - 'A' + 10)
+int
+hex2byte(const char c[2]) {
+ if (!(ishexnumber(c[0]) && ishexnumber(c[1])))
+ return -1;
+ return (hex2nibble(c[0]) << 4) + hex2nibble(c[1]);
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list