freebsd kernel with SKQ
Go to file
Warner Losh 730b1b4d1c busdma: Annotate bus_dmamap_sync() with fence
Add an explicit thread fence release before returning from
bus_dmamap_sync. This should be a no-op in practice, but makes
explicit that all ordinary stores will be completed before subsequent
reads/writes to ordinary device memory. On x86, normal memory ordering
is strong enough to generally guarantee this. The fence keeps the
optimizer (likely LTO) from reordering other calls around this.
The other architectures already have calls, as appropriate, that
are equivalent.

Note: On x86, there is one exception to this rule. If you've mapped
memory as write combining, then you will need to add a sfence or
similar. Normally, though, busdma doesn't operate on such memory, and
drivers that do already cope appropriately.

Reviewed by: kib@, gallatin@, chuck@, mav@
Differential Revision: https://reviews.freebsd.org/D27448
2020-12-04 21:34:04 +00:00
.github/workflows Update vendor/libarchive/dist to git 833821f55b1807cac22a63a58b759a7802df2fb7 2020-12-01 10:36:46 +00:00
bin bin/setfacl: Little refactoring, no functional change. 2020-11-23 17:00:06 +00:00
cddl dtrace: honor LC_NUMERIC for %'d and alike, and LC_TIME for %T 2020-12-03 11:59:40 +00:00
contrib Merge commit d989ffd10 from llvm git (by Dimitry Andric): 2020-12-03 19:29:18 +00:00
crypto Replace literal uses of /usr/local in C sources with _PATH_LOCALBASE 2020-10-27 11:29:11 +00:00
etc Merge ping6 to ping 2020-11-26 04:29:30 +00:00
gnu gnu: don't build libgnuregex for WITH_GNU_GREP_COMPAT 2020-12-04 15:21:12 +00:00
include Import version 3.2.0 2020-11-26 17:27:07 +00:00
kerberos5 Fix more -Wundef warnings during bootstrap 2020-10-14 12:28:54 +00:00
lib Always use 64-bit physical addresses for dump_avail[] in minidumps 2020-12-03 17:12:31 +00:00
libexec Revert r366857. 2020-12-04 19:31:16 +00:00
release release: Merge the RPI2 and BEAGLEBONE image with the GENERICSD one 2020-11-24 17:53:13 +00:00
rescue ping: add a ping6 hard link for backwards compatibility 2020-11-26 18:33:04 +00:00
sbin ping(8): Fix a few mandoc related issues 2020-12-04 20:47:56 +00:00
secure Replace literal uses of /usr/local in C sources with _PATH_LOCALBASE 2020-10-27 11:29:11 +00:00
share ossl: port to arm64 2020-12-04 21:12:17 +00:00
stand Fix mis-spelled macro in the kernel shim. 2020-12-04 16:51:59 +00:00
sys busdma: Annotate bus_dmamap_sync() with fence 2020-12-04 21:34:04 +00:00
targets Add WITH_CLANG_FORMAT option 2020-06-24 17:03:42 +00:00
tests ossl: port to arm64 2020-12-04 21:12:17 +00:00
tools make.py: Also pass STRIPBIN 2020-12-04 15:53:44 +00:00
usr.bin MFV r368207: 2020-12-01 15:53:12 +00:00
usr.sbin crunchgen: fix NULL-deref bug introduced in r364647 2020-12-04 15:53:37 +00:00
.arcconfig arcconfig: add callsign again 2020-11-23 04:39:29 +00:00
.arclint arc lint: ignore /tests/ in chmod 2017-12-19 03:38:06 +00:00
.cirrus.yml Update vendor/libarchive/dist to git 833821f55b1807cac22a63a58b759a7802df2fb7 2020-12-01 10:36:46 +00:00
.clang-format clang-format: Avoid breaking after the opening paren of function definitions 2020-10-28 11:54:00 +00:00
.gitattributes Add a basic clang-format configuration file 2019-06-07 15:23:52 +00:00
.gitignore Import version 3.2.0 2020-11-26 17:27:07 +00:00
COPYRIGHT Happy New Year 2020! 2019-12-31 16:01:36 +00:00
LOCKS LOCKS: update current locks 2018-06-09 03:08:04 +00:00
MAINTAINERS Add a pointer to csprng@ for the CSPRNG driver. This is enforced anyway by 2020-09-01 08:02:12 +00:00
Makefile Import bmake-20201117 2020-11-20 03:54:37 +00:00
Makefile.inc1 crunchgen: fix NULL-deref bug introduced in r364647 2020-12-04 15:53:37 +00:00
Makefile.libcompat Race in 32-bit fixed 2020-10-08 17:30:05 +00:00
Makefile.sys.inc AUTO_OBJ: For all top-level targets enforce using an OBJDIR. 2017-12-05 21:29:47 +00:00
ObsoleteFiles.inc Add a few missed entries to ObsoleteFiles.inc: 2020-11-30 19:18:50 +00:00
README README: add generic notes about GENERIC and NOTES 2018-06-17 19:44:24 +00:00
README.md Import version 3.2.0 2020-11-26 17:27:07 +00:00
RELNOTES Add a entry for r367660. 2020-11-14 01:55:02 +00:00
UPDATING Merge ping6 to ping 2020-11-26 04:29:30 +00:00

FreeBSD Source:

This is the top level of the FreeBSD source directory. This file was last revised on: FreeBSD

FreeBSD is an operating system used to power modern servers, desktops, and embedded platforms. A large community has continually developed it for more than thirty years. Its advanced networking, security, and storage features have made FreeBSD the platform of choice for many of the busiest web sites and most pervasive embedded networking and storage devices.

For copyright information, please see the file COPYRIGHT in this directory. Additional copyright information also exists for some sources in this tree - please see the specific source directories for more information.

The Makefile in this directory supports a number of targets for building components (or all) of the FreeBSD source tree. See build(7), config(8), https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html, and https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information, including setting make(1) variables.

Source Roadmap:

bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

stand		Boot loader sources.

sys		Kernel sources.

sys/<arch>/conf Kernel configuration files. GENERIC is the configuration
		used in release builds. NOTES contains documentation of
		all possible entries.

tests		Regression tests which can be run by Kyua.  See tests/README
		for additional information.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.

For information on synchronizing your source tree with one or more of the FreeBSD Project's development branches, please see:

https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/current-stable.html