freebsd kernel with SKQ
Go to file
ian 1eb0f3d2f0 Add support for tracking nested calls to iicbus_request/release_bus().
Usually it is sufficient to use iicbus_transfer_excl(), or one of the
higher-level convenience functions that use it, to reserve the bus for the
duration of each register access.  Occasionally it is important that a
series of accesses or read-modify-write operations must be done without any
other intervening access to the device, to prevent corrupting state.

Without support for nested request/release, slave device drivers would have
to stop using high-level convenience functions and resort to working with
arrays of iic_msg structs just for a few operations (often involving
one-time device setup or infrequent configuration changes).

The changes here appear large from a glance at the diff, but in fact they're
nearly trivial, and the large diff is because of changes in indentation and
the re-wrapping of comments caused by that.  One notable change is that
iicbus_release_bus() now ignores the IICBUS_CALLBACK(IIC_RELEASE_BUS) return
value.  The old error handling left the bus in a kind of limbo state where
it was still owned at the iicbus layer, but drivers rarely check the return
of the release call, and it's unclear what they would do to recover from an
error return anyway.  No existing low-level drivers return any kind of error
from IIC_RELEASE_BUS except one EINVAL for "you don't own the bus", to which
the right response is probably to carry on with the process of releasing the
reference to the bus anyway.
2017-07-26 21:06:26 +00:00
bin Use the "tree" word in ps(1) -d option description, to make it easier 2017-07-22 10:38:44 +00:00
cddl Add an auxiliary subroutine to generate some events for testing 2017-07-26 12:07:46 +00:00
contrib bsdgrep(1): Don't exit before processing every file 2017-07-25 01:50:37 +00:00
crypto MFV r320905: Import upstream fix for CVE-2017-11103. 2017-07-12 07:19:06 +00:00
etc Unconditionally install etc/mtree/BSD.debug.dist again 2017-07-25 00:28:23 +00:00
gnu Add deprecation notices for gdb and kgdb. 2017-07-05 15:23:30 +00:00
include An MMC/SD/SDIO stack using CAM 2017-07-09 16:57:24 +00:00
kerberos5 Remove trailing slash (/) for consistency. 2017-07-26 02:05:09 +00:00
lib Re-add #endif accidentally deleted in r321484 2017-07-25 16:57:25 +00:00
libexec Language improvements. 2017-07-14 15:42:12 +00:00
release Allow passing NOPKG= to make(1) to prevent the pkg-stage target 2017-07-06 17:54:03 +00:00
rescue DIRDEPS_BUILD: Update dependencies. 2017-05-09 01:48:23 +00:00
sbin Fix style and wrap lines to 80 columns in savecore.c. 2017-07-24 21:51:41 +00:00
secure Merge OpenSSL 1.0.2l. 2017-05-25 20:52:16 +00:00
share Allow -DNO_SKIP_DEPEND to override the _SKIP_DEPEND logic. 2017-07-25 16:46:12 +00:00
sys Add support for tracking nested calls to iicbus_request/release_bus(). 2017-07-26 21:06:26 +00:00
targets Update targets/pseudo/tests/Makefile.depend after recent additions/subtractions 2017-07-19 16:45:57 +00:00
tests Implement SIGEV_THREAD notifications for lio_listio(2) 2017-07-21 15:09:24 +00:00
tools Merge ^/head r320573 through r320970. 2017-07-13 22:01:38 +00:00
usr.bin Upgrade to the latest sources generated from the CloudABI specification. 2017-07-26 06:57:15 +00:00
usr.sbin Remove stack guard option from hardening menu. 2017-07-21 08:50:22 +00:00
.arcconfig
.arclint
COPYRIGHT
LOCKS Explicitly require Security Officer's approval for kernel PRNG bits. 2013-09-17 14:19:05 +00:00
MAINTAINERS Add asomers as a pjdfstest co-maintainer per the project status change 2017-06-28 09:25:15 +00:00
Makefile Add some .ORDER for distrib-dirs, distribute, distribution and distributeworld. 2017-07-24 18:54:56 +00:00
Makefile.inc1 NO_CLEAN: Hide delete-old output. 2017-07-25 20:51:06 +00:00
Makefile.libcompat buildworld: Define SYSROOT to WORLDTMP. 2017-06-19 18:08:20 +00:00
ObsoleteFiles.inc Set tentative merge dates, bump __FreeBSD_version. 2017-07-21 18:53:43 +00:00
README Correct the URL to instructions for updated system sources. 2017-05-15 15:18:36 +00:00
README.md
UPDATING Set tentative merge dates, bump __FreeBSD_version. 2017-07-21 18:53:43 +00:00

FreeBSD Source:

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

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) and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html for more information, including setting make(1) variables.

The buildkernel and installkernel targets build and install the kernel and the modules (see below). Please see the top of the Makefile in this directory for more information on the standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process. See build(7), config(8), and http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html for more information.

Note: If you want to build and install the kernel with the buildkernel and installkernel targets, you might need to build world before. More information is available in the handbook.

The kernel configuration files reside in the sys/<arch>/conf sub-directory. GENERIC is the default configuration used in release builds. NOTES contains entries and documentation for all possible devices, not just those commonly used.

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.

sys				Kernel sources.

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:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html