freebsd kernel with SKQ
Go to file
Scott Long 5d01277f59 Add infrastructure to the ATA and SCSI transports that supports
using a driver-supplied sbuf for printing device discovery
announcements. This helps ensure that messages to the console
will be properly serialized (through sbuf_putbuf) and not be
truncated and interleaved with other messages. The
infrastructure mirrors the existing xpt_announce_periph()
entry point and is opt-in for now. No content or formatting
changes are visible to the operator other than the new coherency.

While here, eliminate the stack usage of the temporary
announcement buffer in some of the drivers. It's moved to the
softc for now, but future work will eliminate it entirely by
making the code flow more linear. Future work will also address
locking so that the sbufs can be dynamically sized.

The scsi_da, scs_cd, scsi_ses, and ata_da drivers are converted
at this point, other drivers can be converted at a later date.
A tunable+sysctl, kern.cam.announce_nosbuf, exists for testing
purposes but will be removed later.

TODO:
Eliminate all of the code duplication and temporary buffers.  The
old printf-based methods will be retired, and xpt_announce_periph()
will just be a wrapper that uses a dynamically sized sbuf.  This
requires that the register and deregister paths be made malloc-safe,
which they aren't currently.

Sponsored by:	Netflix
2017-04-19 15:04:52 +00:00
bin sh: Fix use after free when resetting an in-use alias. 2017-04-16 22:10:02 +00:00
cddl MFV 316855 2017-04-14 16:30:37 +00:00
contrib readelf: dump MIPS abiflags section 2017-04-19 14:43:51 +00:00
crypto Fix linking with lld by marking OPENSSL_armcap_P as hidden. 2017-04-07 12:41:57 +00:00
etc Add 32-bit caching to ldconfig script for powerpc64 2017-04-18 03:40:36 +00:00
gnu Temporary readd GNU diff 2017-03-19 17:19:59 +00:00
include Implement the memset_s(3) function as specified by the C11 ISO/IEC 2017-03-30 04:57:26 +00:00
kerberos5 kerberos5: normalize paths using SRCTOP-relative paths or :H when possible 2017-03-04 11:34:36 +00:00
lib Document kevent EVFILT_EMPTY. 2017-04-18 15:36:13 +00:00
libexec - Remove 'struct vmmeter' from 'struct pcpu', leaving only global vmmeter 2017-04-17 17:34:47 +00:00
release - Increase the image size for RPI2 and IMX6-based boards from 1G 2017-04-07 16:55:13 +00:00
rescue Fix linking /rescue/rescue to multiple programs in usr.bin after r315113 2017-03-20 22:33:22 +00:00
sbin Fix userland tools that don't check the format of routing socket 2017-04-16 19:17:10 +00:00
secure Upgrade to OpenSSH 7.4p1. 2017-03-06 01:37:05 +00:00
share If MAKEOBJDIRPREFIX is a prefix match for .CURDIR, then __objdir is .CURDIR 2017-04-18 23:59:15 +00:00
sys Add infrastructure to the ATA and SCSI transports that supports 2017-04-19 15:04:52 +00:00
targets META_MODE: add additional reachover relative paths to DIRDEPS_BUILD 2017-04-07 07:46:21 +00:00
tests Remove the unportable -msse4 here too after fixing crc32_sse42.c to not 2017-04-02 09:24:58 +00:00
tools A test was moved but without the definition of $d. 2017-04-19 12:39:45 +00:00
usr.bin - Remove 'struct vmmeter' from 'struct pcpu', leaving only global vmmeter 2017-04-17 17:34:47 +00:00
usr.sbin Fix userland tools that don't check the format of routing socket 2017-04-16 19:17:10 +00:00
.arcconfig callsign isn't required anymore 2016-09-29 06:19:45 +00:00
.arclint
COPYRIGHT Bump copyright year. 2016-12-31 12:41:42 +00:00
LOCKS
MAINTAINERS Due to time constraints remove myself as a vmm(4) maintainer. 2017-04-15 22:42:23 +00:00
Makefile Cache compiler metadata and reuse it at installworld time. 2017-04-13 22:07:34 +00:00
Makefile.inc1 Use relative symlink for 'latest' to allow repo to work after being 2017-04-18 19:44:34 +00:00
Makefile.libcompat META_MODE: Fix build-tools still sometimes rebuilding during target build. 2017-04-06 18:21:59 +00:00
ObsoleteFiles.inc Fix typos to stop removing new files. 2017-04-01 19:08:22 +00:00
README README: remove nonexistent 'games' directory. 2016-05-18 10:43:13 +00:00
README.md Remove hard line breaks from README.md 2017-03-01 15:39:58 +00:00
UPDATING Correct minor grammos; minor white-space fixes. 2017-04-14 12:54:39 +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