History log of /freebsd-current/share/man/man9/Makefile
Revision Date Author Comments
# cd4bd975 27-Apr-2024 Jake Freeland <jfree@FreeBSD.org>

bitset: Add ORNOT macros

Macros to ANDNOT a bitset currently exist, but there are no ORNOT
equivalents. Introduce ORNOT macros for bitset(9), cpuset(9), and
domainset(9).

Approved by: markj (mentor)
Reviewed by: markj
MFC after: 1 week
Sponsored by: NIKSUN, Inc.
Differential Revision: https://reviews.freebsd.org/D44976


# c68eed82 24-Apr-2024 Gleb Smirnoff <glebius@FreeBSD.org>

accf_tls: accept filter that waits for TLS handshake header


# fde40746 02-Apr-2024 David E. O'Brien <obrien@FreeBSD.org>

Add SYSCTL_ADD_CONST_STRING(9)

Catch up with 10a1e981d (2019-03-19) so that one can do
'man SYSCTL_ADD_CONST_STRING' and not get
"No manual entry for SYSCTL_ADD_CONST_STRING".

Reviewed by: sjg


# a200093c 23-Mar-2024 Antoine Brodin <antoine@FreeBSD.org>

share/man/man9/Makefile: fix buildworld


# 88f2c58d 23-Mar-2024 Konstantin Belousov <kib@FreeBSD.org>

cdevpriv(9): document devfs_foreach_cdevpriv()

Sponsored by: The FreeBSD Foundation
MFC after: 1 week


# a77605a8 22-Mar-2024 Gleb Smirnoff <glebius@FreeBSD.org>

man9: mlink for counter_ratecheck(9)


# b30a80b6 13-Mar-2024 John Baldwin <jhb@FreeBSD.org>

rman: Add rman_get/set_type

This permits associating a resource type (e.g. SYS_RES_MEMORY) with a
struct resource.

I considered adding a new field to struct rman to store the type and
only providing rman_get_type as an accessor. However, changing
'struct rman' is an ABI breakage. I might revisit this in main, but
the current approach is MFC'able.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D44122


# 5fc3104a 24-Jan-2024 Gleb Smirnoff <glebius@FreeBSD.org>

callout: retire callout_async_drain()

This function was used only in TCP before 446ccdd08e2a. It was born in
pain in 2016 to plug different complex panics in TCP timers. It wasn't
warmly accepted in phabricator by all of the reviewers and my recollection
of overall agreement was that "if you need this KPI, then you'd better fix
your code to not need it". However, the function served its duty well all
the way to FreeBSD 14. But now that TCP doesn't need it anymore, let's
retire it to reduce complexity of callout code and also to avoid its
further use.

Reviewed by: jhb, markj, kib, rrs
Differential Revision: https://reviews.freebsd.org/D43546


# 6b6914c1 16-Jan-2024 Christos Margiolis <christos@FreeBSD.org>

subr_bus: introduce device_set_descf() and modify allocation logic

device_set_descf() is a printf-like version of device_set_desc().

Allocation code has been transferred from device_set_desc_internal() to
device_set_desc_copy() and device_set_descf() to avoid complicating
device_set_desc_internal(). The "copy" argument in
device_set_desc_internal() has been replaced with a flag which is set
when the description string has been allocated with M_BUS.

Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Reviewed by: imp, markj
Differential Revision: https://reviews.freebsd.org/D43370


# c8328f1a 12-Jan-2024 Robert Wing <rew@FreeBSD.org>

pmap_init(9): drop MLINKS reference

fix the build


# bc1eea0c 08-Jan-2024 Robert Wing <rew@FreeBSD.org>

pmap_init(9): sweep references to pmap_init2()

gone since 2005


# 55e2a7d3 08-Jan-2024 Robert Wing <rew@FreeBSD.org>

pmap_pinit(9): sweep references to pmap_pinit2()

gone since 2004


# 854e1fd6 28-Dec-2023 John Baldwin <jhb@FreeBSD.org>

mbuf.9: Document mtodo

mtodo() accepts an mbuf and offset and returns a void * pointer to the
requested offset into the mbuf's associated data. Similar to mtod(),
no bounds checking is performed.

Reviewed by: imp, markj
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D43215


# be5464ae 06-Dec-2023 Mark Johnston <markj@FreeBSD.org>

kmsan: Add kmsan_check_uio()

This was handy for some ad-hoc debugging and fits in with other
kmsan_check_*() routines which operate on some kind of data container.

MFC after: 1 week
Sponsored by: The FreeBSD Foundation


# 74e4a8d2 22-Aug-2023 Mina Galić <freebsd@igalic.co>

pmap: add pmap_kextract(9) man page

Add a man page for pmap_kextract(9), with alias to vtophys(9). This man
page is based on pmap_extract(9).

Add it as cross reference in pmap(9), and add comments above the
function implementations.

Co-authored-by: Graham Perrin <grahamperrin@gmail.com>
Co-authored-by: mhorne
Sponsored by: The FreeBSD Foundation
Pull Request: https://github.com/freebsd/freebsd-src/pull/827


# 1137943b 02-Oct-2023 Bjoern A. Zeeb <bz@FreeBSD.org>

net80211: remove ieee80211_unref_node()

ieee80211_unref_node() was only used in two error cases in
ieee80211_send_nulldata(). There we do not need to guard against
ni pointer reuse after decrementing the refcount of the ni as we
only update the stats and return.

Update the man page and remove the link for the now gone function.

Sponsored by: The FreeBSD Foundation
X-MFC: never
Reviewed by: adrian, emaste
Differential Revision: https://reviews.freebsd.org/D42035


# 5d9f3840 17-Aug-2023 Olivier Certner <olce.freebsd@certner.fr>

realgroupmember(9): Link to groupmember(9), document the function

Reviewed by: bcr (older version), mhorne
MFC after: 2 weeks
Sponsored by: Kumacom SAS
Differential Revision: https://reviews.freebsd.org/D40643


# 0d6bf73c 17-Aug-2023 Olivier Certner <olce.freebsd@certner.fr>

cr_bsd_visible(9): New man page

Reviewed by: bcr, pauamma_gundo.com
MFC after: 2 weeks
Sponsored by: Kumacom SAS
Differential Revision: https://reviews.freebsd.org/D40632


# 29d863bb 17-Aug-2023 Olivier Certner <olce.freebsd@certner.fr>

cr_canseejailproc(9): New man page

Reviewed by: pauamma_gundo.com, mhorne
MFC after: 2 weeks
Sponsored by: Kumacom SAS
Differential Revision: https://reviews.freebsd.org/D40631


# c59ab75c 17-Aug-2023 Olivier Certner <olce.freebsd@certner.fr>

cr_canseeotheruids(), cr_canseeothergids(): Man pages: Impacts of rename

When these functions were renamed 7 years ago, their man pages were not.
Rename the latter in accordance and fix the names inside them. Fix
references to them as well. Add the old man pages to the list of
obsolete files.

Reviewed by: mhorne
MFC after: 2 weeks
Sponsored by: Kumacom SAS
Differential Revision: https://reviews.freebsd.org/D40630


# b3a71465 26-Aug-2023 Robert Wing <rew@FreeBSD.org>

kqueue(9): sweep references to knlist_remove_inevent()

knlist_remove_inevent() gone in 9e590ff04b687e910579a5851d95cedf9eb10bfd


# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# d441ec1c 03-Aug-2023 Mitchell Horne <mhorne@FreeBSD.org>

g_bio(9): add link to bio(9)

This page documents 'struct bio', so this can be helpful with finding or
referencing it.

Reviewed by: imp, markj
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D41252


# c3f58005 13-Jul-2023 Dmitry Chagin <dchagin@FreeBSD.org>

signal: Remove gsignal references from manuals

Reported by: Mina Galić, mhorne
Reviewed by: Mina Galić, mhorne
Differential Revision: https://reviews.freebsd.org/D41020
MFC after: 1 week


# 884eaacd 05-Jul-2023 John Baldwin <jhb@FreeBSD.org>

ddb: Rework macros to make it easier to add new command tables.

- Add new DB_DEFINE_TABLE and DB_DECLARE_TABLE macros to define new
command tables. DB_DECLARE_TABLE is intended for use in headers
similar to MALLOC_DECLARE and SYSCTL_DECL.

DB_DEFINE_TABLE takes three arguments, the name of the parent table,
the command name, and the name of the table itself, e.g.
DB_DEFINE_TABLE(show, foo, show_foo) defines a new "show foo" table.

- DB_TABLE_COMMAND, DB_TABLE_COMMAND_FLAGS, DB_TABLE_ALIAS, and
DB_ALIAS_FLAGS allow new commands and aliases to be defined. These
are similar to the existing DB_COMMAND, etc. except that they take
an initial argument giving the name of the parent table, e.g.:

DB_TABLE_COMMAND(show_foo, bar, db_show_foo_bar)

defines a new "show foo bar" command.

This provides a cleaner interface than the ad-hoc use of internal
macros like _DB_SET that was required previously (e.g. in cxgbe(4)).

This retires DB_FUNC macro as well as the internal _DB_FUNC macro.

Reviewed by: melifaro, kib, markj
Differential Revision: https://reviews.freebsd.org/D40819


# c2eae5c3 02-May-2023 Joseph Koshy <jkoshy@FreeBSD.org>

man9: Add a manual page for kstack_contains(9).

Approved by: gnn (mentor)
Reviewed by: mhorne
Differential Revision: https://reviews.freebsd.org/D39933


# 84a44625 12-Feb-2023 Mitchell Horne <mhorne@FreeBSD.org>

printf(9): add MLINKS for vlog(9) and vprintf(9)

MFC after: 3 days
Sponsored by: The FreeBSD Foundation


# b7caa912 20-Mar-2023 Mitchell Horne <mhorne@FreeBSD.org>

kern_reboot(9): document shutdown_nice()

Reviewed by: markj, Pau Amma <pauamma@gundo.com>
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39134


# d55c1877 20-Mar-2023 Mitchell Horne <mhorne@FreeBSD.org>

kern_reboot(9): some updates

- This function no longer disables interrupts
- MLINK to reboot.9
- The mentions of autoconfiguration is more about shutdown_nice(),
coming in the next commit.
- Describe the RB_* flags relevant to this function
- Describe behaviour when shutdown hooks fail the reset
- Describe expected execution contexts
- Add FF copyright
- xref panic(9)
- xref this page in reboot(2)

Reviewed by: markj
Discussed with: rpokala, Pau Amma <pauamma@gundo.com>
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39133


# d5e105bf 20-Mar-2023 Mitchell Horne <mhorne@FreeBSD.org>

panic(9): some updates

- Better description of what the panic() function does
- Document KERNEL_PANICKED()
- Add a section describing panic execution context
- Add SEE ALSO

Reviewed by: kib, markj, rpokala
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39132


# 87132d1d 20-Mar-2023 Mitchell Horne <mhorne@FreeBSD.org>

KASSERT(9): some updates

- Add a little bit of introductory text
- Improve the existing example: ANSI C, use a better assertion than a
NULL check (which is discouraged)
- Document the widely used MPASS macro in this page
- Drop the cross-reference to config(8)

Reviewed by: kib, markj, rpokala, Pau Amma <pauamma@gundo.com>
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39131


# 43db15b1 20-Mar-2023 Mitchell Horne <mhorne@FreeBSD.org>

critical(9): small updates

- Document CRITICAL_ASSERT() in this man page.
- Clarify that a thread may also handle interrupts in a critical
section, not only faults/exceptions.
- Note the negative effects of critical section abuse
- Some other minor clarifications
- Add short SEE ALSO

Reviewed by: kib, markj, rpokala, Pau Amma <pauamma@gundo.com>
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39130


# b54391a1 20-Mar-2023 Mitchell Horne <mhorne@FreeBSD.org>

vcount.9: remove obsolete man page

These functions, vcount() and count_dev(), no longer exist in the source
tree.

Reviewed by: rpokala
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D39128


# 0de03c30 20-Feb-2023 Mark Johnston <markj@FreeBSD.org>

man9: Add an smr(9) manual page

Also update the UMA manual page to mention its SMR-enabled
functionality, and update locking.9 to mention both epoch and SMR.
Details of its usage are provided in the SMR manual page.

Reviewed by: Olivier Certner, mhorne, kib
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D38108


# 30cd6fd7 09-Feb-2023 Mitchell Horne <mhorne@FreeBSD.org>

man9: Add man page for kern_yield() and friends

The page is fairly simple and will be referenced by mi_switch(9).
Provide some usage notes so that the broader implications of how/when to
use these functions are understood.

Reviewed by: kib, markj
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D38182


# 52f9a282 27-Jan-2023 Mitchell Horne <mhorne@FreeBSD.org>

rtalloc.9: remove obsolete man page

This KPI was removed in d22337254564. Note that there are a handful of
references remaining in the src tree to these rtalloc functions that
could be cleaned up by someone with more domain knowledge.

Reviewed by: pauamma (manpages), glebius, melifaro
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D38188


# d1c7405e 27-Jan-2023 Mitchell Horne <mhorne@FreeBSD.org>

PCBGROUP.9: remove obsolete man page

The PCBGROUP option and KPI were removed entirely in 93c67567e015.

Reviewed by: pauamma (manpages), glebius, melifaro
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D38187


# b1ef176e 08-Dec-2022 Mark Johnston <markj@FreeBSD.org>

man9: Add MLINKS for dpcpu macros

MFC after: 1 week


# b8121324 17-Nov-2022 Ed Maste <emaste@FreeBSD.org>

man9: add vm_map_unwire link

Reported by: markj (in D37416)
Sponsored by: The FreeBSD Foundation


# 005609ad 16-Nov-2022 Ed Maste <emaste@FreeBSD.org>

man9: correct vm_page_wire.9 links

PR: 244596
Reviewed by: markj
Fixes: fee2a2fa3983 ("Change synchonization rules for ...")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D37416


# 42af87b8 16-Nov-2022 Ed Maste <emaste@FreeBSD.org>

man9: remove duplicate superio_find_dev link

PR: 244596
Fixes: c812bea351021 ("add superio.4 and superio.9 ...")
Sponsored by: The FreeBSD Foundation


# 334fc46f 30-Oct-2022 Mitchell Horne <mhorne@FreeBSD.org>

intr_event(9): document intr_event_handle()

Reviewed by: pauamma
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D36934


# 3cdbaee3 15-Oct-2022 Mitchell Horne <mhorne@FreeBSD.org>

ithread(9): update functions to current day

The public KPI is now intr_event_**,
- Convert existing documented functions to their equivalents.
- Fix up the function arguments
- Fix up the possible error return values for each
- Remove ithread_schedule() completely
- Rename man page to intr_event(9)
- Update cross-references

Future changes will update the descriptive text for these functions.

PR: 100803
Based on work by: trhodes
Reviewed by: jhb
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D33475


# 30c6a668 12-Oct-2022 Mitchell Horne <mhorne@FreeBSD.org>

malloc(9): update names and hardlinks

Give all documented functions a .Nm entry in the man page, following the
order they are listed in the synopsis. Create MLINKs for each of the
functions as well.

While here, add a missing include directive to the synopsis, and appease
mandoc by wrapping a long line.

Reviewed by: markj, imp (previous version), jhb (previous version)
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D36940


# d88131e1 11-Oct-2022 Mitchell Horne <mhorne@FreeBSD.org>

ofw_graph(9): hook it up to the Makefile

Otherwise, the man page is not installed. Add appropriate MLINKS.

Reviewed by: manu
MFC after: 3 days
Fixes: 9a4eed0be20c ("ofw_graph: Add functions for graph bindings")
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D36932


# b3ab58bd 26-Sep-2022 Mark Johnston <markj@FreeBSD.org>

man9: Add MLINKs for bus_space_{peek,poke}

MFC after: 1 week


# 145a50dc 14-Sep-2022 Mateusz Guzik <mjg@FreeBSD.org>

Unbreak the build after b3ee318b79d54a59190d35b8c76a63a8fb81b903


# b3ee318b 14-Sep-2022 Gleb Smirnoff <glebius@FreeBSD.org>

domains: rewrite documentation to describe present state

Reviewed by: debdrup, pauamma
Differential revision: https://reviews.freebsd.org/D36513


# c2e1544f 23-Aug-2022 Brooks Davis <brooks@FreeBSD.org>

m_get3: add an MLINK for the manpage

Reviewed by: kp
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D36319


# 3454a7ca 20-Aug-2022 Robert Wing <rew@FreeBSD.org>

kqueue: retire knlist_init_rw_reader()

Last usage was removed in afa85850e79c1839ec33efa1138206687b952cfa.

Reviewed by: pauamma, melifaro, kib
Differential Revision: https://reviews.freebsd.org/D36205


# b83d53cb 05-Jul-2022 Mitchell Horne <mhorne@FreeBSD.org>

DB_COMMAND(9): update to mention additional macros

Document the existing alias definitions, and augment the example with
one of these. Also, describe the purpose of the newly added _FLAGS
variations of these command definitions.

Make some small style improvements to appease mandoc -Tlint.

Reviewed by: markj
MFC after: 3 days
Sponsored by: Juniper Networks, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D35664


# 74d3f1b6 04-Jan-2022 John Baldwin <jhb@FreeBSD.org>

OCF: Add crypto_clonereq().

This function clones an existing crypto request, but associates the
new request with a specified session. The intended use case is for
drivers to be able to fall back to software by cloning a request and
dispatch it to an internally allocated software session.

Reviewed by: markj
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D33607


# 8981a100 20-Nov-2021 Robert Wing <rew@FreeBSD.org>

mount: retire kernel_vmount()

The last usage of this function was removed in e3b1c847a4237ad9.

There are no in-tree consumers of kernel_vmount().

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D32607


# a2665158 15-Nov-2021 Mark Johnston <markj@FreeBSD.org>

vm_page: Remove vm_page_sbusy() and vm_page_xbusy()

They are unused today and cannot be safely used in the face of unlocked
lookup, in which pages may be busied without the object lock held.

Obtained from: jeff (object_concurrency patches)
Reviewed by: kib
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D32948


# 87b64663 15-Nov-2021 Mark Johnston <markj@FreeBSD.org>

vm_page: Consolidate page busy sleep mechanisms

- Modify vm_page_busy_sleep() and vm_page_busy_sleep_unlocked() to take
a VM_ALLOC_* flag indicating whether to sleep on shared-busy, and fix
up callers.
- Modify vm_page_busy_sleep() to return a status indicating whether the
object lock was dropped, and fix up callers.
- Convert callers of vm_page_sleep_if_busy() to use vm_page_busy_sleep()
instead.
- Remove vm_page_sleep_if_(x)busy().

No functional change intended.

Obtained from: jeff (object_concurrency patches)
Reviewed by: kib
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D32947


# 6d3c78d9 19-Oct-2021 Mark Johnston <markj@FreeBSD.org>

Rewrite the vm_page_alloc manual page

Document the new allocator variants and flesh out the description of
some details of the page allocator interface.

Reviewed by: kib, alc
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D32035


# 800e7495 28-Sep-2021 Mitchell Horne <mhorne@FreeBSD.org>

boot(9): update to match reality

This function was renamed to kern_reboot() in 2010, but the man page has
failed to keep in sync. Bring it up to date on the rename, add the
shutdown hooks to the synopsis, and document the (obvious) fact that
kern_reboot() does not return.

Fix an outdated reference to the old name in kern_reboot(), and leave a
reference to the man page so future readers might find it before any
large changes.

Reviewed by: imp, markj
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D32085


# dfd3bde5 21-Sep-2021 Mark Johnston <markj@FreeBSD.org>

bitset(9): Introduce BIT_FOREACH_ISSET and BIT_FOREACH_ISCLR

These allow one to non-destructively iterate over the set or clear bits
in a bitset. The motivation is that we have several code fragments
which iterate over a CPU set like this:

while ((cpu = CPU_FFS(&cpus)) != 0) {
cpu--;
CPU_CLR(cpu, &cpus);
<do something>;
}

This is slow since CPU_FFS begins the search at the beginning of the
bitset each time. On amd64 and arm64, CPU sets have size 256, so there
are four limbs in the bitset and we do a lot of unnecessary scanning.

A second problem is that this is destructive, so code which needs to
preserve the original set has to make a copy. In particular, we have
quite a few functions which take a cpuset_t parameter by value, meaning
that each call has to copy the 32 byte cpuset_t.

The new macros address both problems.

Reviewed by: cem, kib
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D32028


# 3f9a00e3 30-Jul-2021 Bartlomiej Grzesik <bag@semihalf.com>

device: add device_get_property and device_has_property

Generialize bus specific property accessors. Those functions allow driver code
to access device specific information.

Currently there is only support for FDT and ACPI buses.

Reviewed by: manu, mw
Sponsored by: Semihalf
Differential revision: https://reviews.freebsd.org/D31597


# 483e3cda 02-Sep-2021 Ka Ho Ng <khng@FreeBSD.org>

man: A trailing space cleanup in man9's Makefile

Sponsored by: The FreeBSD Foundation


# d8aeab4b 09-Jun-2021 Ed Maste <emaste@FreeBSD.org>

Add gone_in(9) man page

Reviewed by: imp
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D30703


# 239aebee 25-Jun-2020 Kyle Evans <kevans@FreeBSD.org>

domain: give domains a chance to probe for availability

This gives any given domain a chance to indicate that it's not actually
supported on the current system. If dom_probe isn't supplied, we assume
the domain is universally applicable as most of them are. Keeping
fully-initialized and registered domains around that physically can't
work on a large majority of FreeBSD deployments is sub-optimal and leads
to errors that aren't consistent with the reality of why the socket
can't be created (e.g. ESOCKTNOSUPPORT) because such scenario has to be
caught upon pru_attach, at which point kicking back the more-appropriate
EAFNOSUPPORT would seem weird.

The initial consumer of this will be hvsock, which is only available on
HyperV guests.

Reviewed by: cem (earlier version), bcr (manpages)
Differential Revision: https://reviews.freebsd.org/D25062


# ce260994 10-Aug-2021 Mark Johnston <markj@FreeBSD.org>

kmsan: Add a manual page

Sponsored by: The FreeBSD Foundation


# e6379a2c 06-Aug-2021 Fernando Apesteguía <fernape@FreeBSD.org>

man: Install more man pages unconditionally

Add more manual pages which were not spotted previously in 0a0f7486413c

Ideally to be MFH'ed with:

8539518055d0 - Remove manpages from OLD_FILES
8b487b8292e4 - Fix bsd.subdir.mk-related issues after 0a0f7486413c
f6043a672135 - ObsoleteFiles.inc: Remove manpages from OLD_FILES
0a0f7486413c - man: Build manpages for all architectures

There is at least one pending issue when building with -DNO_ROOT.

Reported by: ceri@
MFH: 4 weeks
Discussed with: wosch
Differential Revision: https://reviews.freebsd.org/D31018


# 0dc332bf 05-Aug-2021 Ka Ho Ng <khng@FreeBSD.org>

Add fspacectl(2), vn_deallocate(9) and VOP_DEALLOCATE(9).

fspacectl(2) is a system call to provide space management support to
userspace applications. VOP_DEALLOCATE(9) is a VOP call to perform the
deallocation. vn_deallocate(9) is a public KPI for kmods' use.

The purpose of proposing a new system call, a KPI and a VOP call is to
allow bhyve or other hypervisor monitors to emulate the behavior of SCSI
UNMAP/NVMe DEALLOCATE on a plain file.

fspacectl(2) comprises of cmd and flags parameters to specify the
space management operation to be performed. Currently cmd has to be
SPACECTL_DEALLOC, and flags has to be 0.

fo_fspacectl is added to fileops.
VOP_DEALLOCATE(9) is added as a new VOP call. A trivial implementation
of VOP_DEALLOCATE(9) is provided.

Sponsored by: The FreeBSD Foundation
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D28347


# de2e1529 04-Aug-2021 Ka Ho Ng <khng@FreeBSD.org>

Add vnode_pager_purge_range(9) KPI

This KPI is created in addition to the existing vnode_pager_setsize(9)
KPI. The KPI is intended for file systems that are able to turn a range
of file into sparse range, also known as hole-punching.

Sponsored by: The FreeBSD Foundation
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D27194


# 5d40fb67 15-Jul-2021 Mark Johnston <markj@FreeBSD.org>

Add some missing osd.9 MLINKs

MFC after: 1 week
Sponsored by: The FreeBSD Foundation


# db6eac68 02-Jul-2021 Ceri Davies <ceri@FreeBSD.org>

nvmem(9): install the manpage

This is being installed on all architectures in line with the OF_*
pages.

Discussed with: fernape, manu


# ddfc9c4c 22-Jun-2021 Warner Losh <imp@FreeBSD.org>

newbus: Move from bus_child_{pnpinfo,location}_src to bus_child_{pnpinfo,location} with sbuf

Now that the upper layers all go through a layer to tie into these
information functions that translates an sbuf into char * and len. The
current interface suffers issues of what to do in cases of truncation,
etc. Instead, migrate all these functions to using struct sbuf and these
issues go away. The caller is also in charge of any memory allocation
and/or expansion that's needed during this process.

Create a bus_generic_child_{pnpinfo,location} and make it default. It
just returns success. This is for those busses that have no information
for these items. Migrate the now-empty routines to using this as
appropriate.

Document these new interfaces with man pages, and oversight from before.

Reviewed by: jhb, bcr
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D29937


# 395d907e6 14-Jun-2021 Emmanuel Vadot <manu@FreeBSD.org>

regulator: Add manpage for this framework

Reviewed by: imp, mmel
Differential Revision: https://reviews.freebsd.org/D30762
Sponsored by: Diablotin Systems


# 4c0bc591 18-Jun-2021 Warner Losh <imp@FreeBSD.org>

man9: add hz(9) and hardclock(9)

Document aspects of system time keeping. Hz is the nominal rate that we
interrupt the system and is known and the 'tick' period of 1 / hz.
hardclock is the routine that does various bits of timekeeping. stathz
and profhz are documented as historical relics that are deprecated
and replaced by hwpmc.4 and others.

Reviewed by: phk@, mav@ and gnn@ (previous version)
Obtained from: hardclock.9 from NetBSD (with FreeBSD adjustments)
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D30802


# a19bd307 17-Jun-2021 Warner Losh <imp@FreeBSD.org>

man9: Sort unr in Makefile MLINKS

Sort unr entries in alphabetical order, like everything else in the
MLINKS section.

Sponsored by: Netflix


# 8fa5c577 16-Jun-2021 John Baldwin <jhb@FreeBSD.org>

crypto: Remove now-unused crypto_cursor_seg{base,len}.

Callers should use crypto_cursor_segment() instead.

Reviewed by: markj
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D30448


# e58a65cc 15-Apr-2021 Kyle Evans <kevans@FreeBSD.org>

man: document ether_gen_addr(9)

This KPI is used to assign a MAC address to an interface that doesn't
already have one assigned.

Reviewed by: bcr, gnn, imp, kbowling, kp
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D29787


# beb817ed 25-May-2021 John Baldwin <jhb@FreeBSD.org>

crypto: Add crypto_cursor_segment() to fetch both base and length.

This function combines crypto_cursor_segbase() and
crypto_cursor_seglen() into a single function. This is mostly
beneficial in the unmapped mbuf case where back to back calls of these
two functions have to iterate over the sub-components of unmapped
mbufs twice.

Bump __FreeBSD_version for crypto drivers in ports.

Suggested by: markj
Reviewed by: markj
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D30445


# 6663f8a2 25-May-2021 John Baldwin <jhb@FreeBSD.org>

sglist: Add sglist_append_single_mbuf().

This function appends the contents of a single mbuf to an sglist
rather than an entire mbuf chain.

Reviewed by: gallatin, markj
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D30135


# 38da497a 13-Apr-2021 Mark Johnston <markj@FreeBSD.org>

Add the KASAN runtime

KASAN enables the use of LLVM's AddressSanitizer in the kernel. This
feature makes use of compiler instrumentation to validate memory
accesses in the kernel and detect several types of bugs, including
use-after-frees and out-of-bounds accesses. It is particularly
effective when combined with test suites or syzkaller. KASAN has high
CPU and memory usage overhead and so is not suited for production
environments.

The runtime and pmap maintain a shadow of the kernel map to store
information about the validity of memory mapped at a given kernel
address.

The runtime implements a number of functions defined by the compiler
ABI. These are prefixed by __asan. The compiler emits calls to
__asan_load*() and __asan_store*() around memory accesses, and the
runtime consults the shadow map to determine whether a given access is
valid.

kasan_mark() is called by various kernel allocators to update state in
the shadow map. Updates to those allocators will come in subsequent
commits.

The runtime also defines various interceptors. Some low-level routines
are implemented in assembly and are thus not amenable to compiler
instrumentation. To handle this, the runtime implements these routines
on behalf of the rest of the kernel. The sanitizer implementation
validates memory accesses manually before handing off to the real
implementation.

The sanitizer in a KASAN-configured kernel can be disabled by setting
the loader tunable debug.kasan.disable=1.

Obtained from: NetBSD
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D29416


# 86887853 13-Apr-2021 Dmitry Chagin <dchagin@FreeBSD.org>

Remove reference to the pfctlinput2() from domain(9) after 237c1f932b.

Reviewed by: glebius
MFC After: 1 week
Differential Revision: https://reviews.freebsd.org/D29751


# 76681661 12-Apr-2021 John Baldwin <jhb@FreeBSD.org>

OCF: Remove support for asymmetric cryptographic operations.

There haven't been any non-obscure drivers that supported this
functionality and it has been impossible to test to ensure that it
still works. The only known consumer of this interface was the engine
in OpenSSL < 1.1. Modern OpenSSL versions do not include support for
this interface as it was not well-documented.

Reviewed by: cem
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D29736


# 86a52e26 07-Apr-2021 Ka Ho Ng <khng@FreeBSD.org>

Document vnode_pager_setsize(9)

MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Reviewed by: bcr
Approved by: philip (mentor)
Differential Revision: https://reviews.freebsd.org/D29408


# e5236836 11-Mar-2021 Warner Losh <imp@FreeBSD.org>

config_intrhook: provide config_intrhook_drain

config_intrhook_drain will remove the hook from the list as
config_intrhook_disestablish does if the hook hasn't been called. If it has,
config_intrhook_drain will wait for the hook to be disestablished in the normal
course (or expedited, it's up to the driver to decide how and when
to call config_intrhook_disestablish).

This is intended for removable devices that use config_intrhook and might be
attached early in boot, but that may be removed before the kernel can call the
config_intrhook or before it ends. To prevent all races, the detach routine will
need to call config_intrhook_train.

Sponsored by: Netflix, Inc
Reviewed by: jhb, mav, gde (in D29006 for man page)
Differential Revision: https://reviews.freebsd.org/D29005


# c743a6bd 06-Mar-2021 Hans Petter Selasky <hselasky@FreeBSD.org>

Implement mallocarray_domainset(9) variant of mallocarray(9).

Reviewed by: kib @
MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking


# 43afeee2 02-Mar-2021 Ka Ho Ng <khng300@gmail.com>

share/man/man9: document zero_region(9)

The zero_region() kernel interface was previously undocumented.
Add a new zero_region(9) manual page to document it.

Submitted by: Ka Ho Ng <khng@freebsdfoundation.org>
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D28914


# 55eb51ab 27-Feb-2021 Konstantin Belousov <kib@FreeBSD.org>

Add VOP_READ_PGCACHE(9)

PR: 253894
Reviewed by: gbe, rwatson
Sponsored by: The FreeBSD Foundation
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D28980


# 1c55eab1 03-Jan-2021 Ryan Libby <rlibby@FreeBSD.org>

bitset.9: add missing MLINKS

Add MLINKS for new bitset(9) APIs in r364796 /
f8782001804f674dc3aff53053af5ebc3c199f02 and
ae4a8e52072a87bfd49d553b9b14450c626269f8.

Reported by: trasz
Reviewed by: cem
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D27944


# c97e33e1 07-Dec-2020 Mark Johnston <markj@FreeBSD.org>

Add missing refcount.9 MLINKS


# eb3b7cec 23-Oct-2020 Mark Johnston <markj@FreeBSD.org>

Add some missing nv(9) MLINKS

MFC after: 1 week


# 675aae73 02-Oct-2020 Emmanuel Vadot <manu@FreeBSD.org>

Add backlight subsystem

This is a simple subsystem that allow drivers to register as a backlight.
Each backlight creates a device node under /dev/backlight/backlightX and
an alias based on the name provided.

Relnotes: yes
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D26250


# 2be2e7e5 22-Sep-2020 Konstantin Belousov <kib@FreeBSD.org>

Remove stray line


# 6b1d2116 22-Sep-2020 Warner Losh <imp@FreeBSD.org>

Add devctl_notify(9) man page

Document the calls to send messages to userland via devctl.
devctl_notify will create a message for the specified system,
subsystem and type, optionally adding additional information.

Reviewed by: bcr
Differential Revision: https://reviews.freebsd.org/D26520


# c6d67028 22-Sep-2020 Warner Losh <imp@FreeBSD.org>

Document devctl_safe_quote_sb

This routine centralizes the knowledge needed for properly quoting
'value' in all key="value" items that appear in devctl messages.

Reviewed by: bcr
Differential Revision: https://reviews.freebsd.org/D26520


# a329c23e 22-Sep-2020 Warner Losh <imp@FreeBSD.org>

Add a devctl_process_running man page.

Reviewed by: bcr
Differential Revision: https://reviews.freebsd.org/D26520


# cba446e2 21-Sep-2020 Mitchell Horne <mhorne@FreeBSD.org>

Add getenv(9) boolean parsing functions

This adds the getenv_bool() function, to parse a boolean value from a
kernel environment variable or tunable. This works for traditional
boolean values like "0" and "1", and also "true" and "false"
(case-insensitive). These semantics do not yet apply to sysctls declared
using SYSCTL_BOOL with CTLFLAG_TUN (they still only parse 1 and 0).

Also added are two wrapper functions, getenv_is_true() and
getenv_is_false(). These are slightly simpler for callers wishing to
perform a single check of a configuration variable.

Reviewed by: jhb (slightly earlier version)
Sponsored by: NetApp, Inc.
Sponsored by: Klara, Inc.
Differential Revision: https://reviews.freebsd.org/D26270


# 95407a79 10-Sep-2020 Li-Wen Hsu <lwhsu@FreeBSD.org>

Remove vm_map_create(9) KPI's manpage according to r364302

Submitted by: Ka Ho Ng <khng300@gmail.com>
Reviewed by: markj
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D26372


# 8a0edc91 13-Aug-2020 Conrad Meyer <cem@FreeBSD.org>

Add prng(9) API

Add prng(9) as a replacement for random(9) in the kernel.

There are two major differences from random(9) and random(3):

- General prng(9) APIs (prng32(9), etc) do not guarantee an
implementation or particular sequence; they should not be used for
repeatable simulations.

- However, specific named API families are also exposed (for now: PCG),
and those are expected to be repeatable (when so-guaranteed by the named
algorithm).

Some minor differences from random(3) and earlier random(9):

- PRNG state for the general prng(9) APIs is per-CPU; this eliminates
contention on PRNG state in SMP workloads. Each PCPU generator in an
SMP system produces a unique sequence.

- Better statistical properties than the Park-Miller ("minstd") PRNG
(longer period, uniform distribution in all bits, passes
BigCrush/PractRand analysis).

- Faster than Park-Miller ("minstd") PRNG -- no division is required to
step PCG-family PRNGs.

For now, random(9) becomes a thin shim around prng32(). Eventually I
would like to mechanically switch consumers over to the explicit API.

Reviewed by: kib, markj (previous version both)
Discussed with: markm
Differential Revision: https://reviews.freebsd.org/D25916


# 51ea7bea 07-Aug-2020 Mateusz Guzik <mjg@FreeBSD.org>

vfs: add VOP_STAT

The current scheme of calling VOP_GETATTR adds avoidable overhead.

An example with tmpfs doing fstat (ops/s):
before: 7488958
after: 7913833

Reviewed by: kib (previous version)
Differential Revision: https://reviews.freebsd.org/D25910


# 96ad26ee 04-Aug-2020 Mark Johnston <markj@FreeBSD.org>

Remove free_domain() and uma_zfree_domain().

These functions were introduced before UMA started ensuring that freed
memory gets placed in domain-local caches. They no longer serve any
purpose since UMA now provides their functionality by default. Remove
them to simplyify the kernel memory allocator interfaces a bit.

Reviewed by: cem, kib
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D25937


# 55ec696d 18-Jul-2020 Edward Tomasz Napierala <trasz@FreeBSD.org>

Add missing bitset(9) MLINKS.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D25713


# d8fd37e1 17-Jul-2020 Gordon Bergling <gbe@FreeBSD.org>

devstat(9): Update the man page to reflect the current implementation

- Rename devstat_add_entry to devstat_new_entry
- Update the description of devstat_trans_flags
- Add manpage aliases for devstat_start_transaction_bio and devstat_end_transaction_bio

PR: 157316
Submitted by: novel
Reviewed by: cem, bcr (mentor)
Approved by: bcr (mentor)
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D25677


# 946b8f6f 16-Jul-2020 John Baldwin <jhb@FreeBSD.org>

Add crypto_initreq() and crypto_destroyreq().

These routines are similar to crypto_getreq() and crypto_freereq() but
operate on caller-supplied storage instead of allocating crypto
requests from a UMA zone.

Reviewed by: markj
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D25691


# 91ddfec2 06-Jul-2020 Gleb Smirnoff <glebius@FreeBSD.org>

Fixup for r360574: install new mlinks for sglist(9) and remove old ones.


# 23230d52 25-May-2020 John Baldwin <jhb@FreeBSD.org>

Remove an extraneous line continuation from r361481.


# 9c0e3d3a 25-May-2020 John Baldwin <jhb@FreeBSD.org>

Add support for optional separate output buffers to in-kernel crypto.

Some crypto consumers such as GELI and KTLS for file-backed sendfile
need to store their output in a separate buffer from the input.
Currently these consumers copy the contents of the input buffer into
the output buffer and queue an in-place crypto operation on the output
buffer. Using a separate output buffer avoids this copy.

- Create a new 'struct crypto_buffer' describing a crypto buffer
containing a type and type-specific fields. crp_ilen is gone,
instead buffers that use a flat kernel buffer have a cb_buf_len
field for their length. The length of other buffer types is
inferred from the backing store (e.g. uio_resid for a uio).
Requests now have two such structures: crp_buf for the input buffer,
and crp_obuf for the output buffer.

- Consumers now use helper functions (crypto_use_*,
e.g. crypto_use_mbuf()) to configure the input buffer. If an output
buffer is not configured, the request still modifies the input
buffer in-place. A consumer uses a second set of helper functions
(crypto_use_output_*) to configure an output buffer.

- Consumers must request support for separate output buffers when
creating a crypto session via the CSP_F_SEPARATE_OUTPUT flag and are
only permitted to queue a request with a separate output buffer on
sessions with this flag set. Existing drivers already reject
sessions with unknown flags, so this permits drivers to be modified
to support this extension without requiring all drivers to change.

- Several data-related functions now have matching versions that
operate on an explicit buffer (e.g. crypto_apply_buf,
crypto_contiguous_subsegment_buf, bus_dma_load_crp_buf).

- Most of the existing data-related functions operate on the input
buffer. However crypto_copyback always writes to the output buffer
if a request uses a separate output buffer.

- For the regions in input/output buffers, the following conventions
are followed:
- AAD and IV are always present in input only and their
fields are offsets into the input buffer.
- payload is always present in both buffers. If a request uses a
separate output buffer, it must set a new crp_payload_start_output
field to the offset of the payload in the output buffer.
- digest is in the input buffer for verify operations, and in the
output buffer for compute operations. crp_digest_start is relative
to the appropriate buffer.

- Add a crypto buffer cursor abstraction. This is a more general form
of some bits in the cryptosoft driver that tried to always use uio's.
However, compared to the original code, this avoids rewalking the uio
iovec array for requests with multiple vectors. It also avoids
allocate an iovec array for mbufs and populating it by instead walking
the mbuf chain directly.

- Update the cryptosoft(4) driver to support separate output buffers
making use of the cursor abstraction.

Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D24545


# 29fe41dd 20-Apr-2020 John Baldwin <jhb@FreeBSD.org>

Retire the CRYPTO_F_IV_GENERATE flag.

The sole in-tree user of this flag has been retired, so remove this
complexity from all drivers. While here, add a helper routine drivers
can use to read the current request's IV into a local buffer. Use
this routine to replace duplicated code in nearly all drivers.

Reviewed by: cem
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D24450


# c0341432 27-Mar-2020 John Baldwin <jhb@FreeBSD.org>

Refactor driver and consumer interfaces for OCF (in-kernel crypto).

- The linked list of cryptoini structures used in session
initialization is replaced with a new flat structure: struct
crypto_session_params. This session includes a new mode to define
how the other fields should be interpreted. Available modes
include:

- COMPRESS (for compression/decompression)
- CIPHER (for simply encryption/decryption)
- DIGEST (computing and verifying digests)
- AEAD (combined auth and encryption such as AES-GCM and AES-CCM)
- ETA (combined auth and encryption using encrypt-then-authenticate)

Additional modes could be added in the future (e.g. if we wanted to
support TLS MtE for AES-CBC in the kernel we could add a new mode
for that. TLS modes might also affect how AAD is interpreted, etc.)

The flat structure also includes the key lengths and algorithms as
before. However, code doesn't have to walk the linked list and
switch on the algorithm to determine which key is the auth key vs
encryption key. The 'csp_auth_*' fields are always used for auth
keys and settings and 'csp_cipher_*' for cipher. (Compression
algorithms are stored in csp_cipher_alg.)

- Drivers no longer register a list of supported algorithms. This
doesn't quite work when you factor in modes (e.g. a driver might
support both AES-CBC and SHA2-256-HMAC separately but not combined
for ETA). Instead, a new 'crypto_probesession' method has been
added to the kobj interface for symmteric crypto drivers. This
method returns a negative value on success (similar to how
device_probe works) and the crypto framework uses this value to pick
the "best" driver. There are three constants for hardware
(e.g. ccr), accelerated software (e.g. aesni), and plain software
(cryptosoft) that give preference in that order. One effect of this
is that if you request only hardware when creating a new session,
you will no longer get a session using accelerated software.
Another effect is that the default setting to disallow software
crypto via /dev/crypto now disables accelerated software.

Once a driver is chosen, 'crypto_newsession' is invoked as before.

- Crypto operations are now solely described by the flat 'cryptop'
structure. The linked list of descriptors has been removed.

A separate enum has been added to describe the type of data buffer
in use instead of using CRYPTO_F_* flags to make it easier to add
more types in the future if needed (e.g. wired userspace buffers for
zero-copy). It will also make it easier to re-introduce separate
input and output buffers (in-kernel TLS would benefit from this).

Try to make the flags related to IV handling less insane:

- CRYPTO_F_IV_SEPARATE means that the IV is stored in the 'crp_iv'
member of the operation structure. If this flag is not set, the
IV is stored in the data buffer at the 'crp_iv_start' offset.

- CRYPTO_F_IV_GENERATE means that a random IV should be generated
and stored into the data buffer. This cannot be used with
CRYPTO_F_IV_SEPARATE.

If a consumer wants to deal with explicit vs implicit IVs, etc. it
can always generate the IV however it needs and store partial IVs in
the buffer and the full IV/nonce in crp_iv and set
CRYPTO_F_IV_SEPARATE.

The layout of the buffer is now described via fields in cryptop.
crp_aad_start and crp_aad_length define the boundaries of any AAD.
Previously with GCM and CCM you defined an auth crd with this range,
but for ETA your auth crd had to span both the AAD and plaintext
(and they had to be adjacent).

crp_payload_start and crp_payload_length define the boundaries of
the plaintext/ciphertext. Modes that only do a single operation
(COMPRESS, CIPHER, DIGEST) should only use this region and leave the
AAD region empty.

If a digest is present (or should be generated), it's starting
location is marked by crp_digest_start.

Instead of using the CRD_F_ENCRYPT flag to determine the direction
of the operation, cryptop now includes an 'op' field defining the
operation to perform. For digests I've added a new VERIFY digest
mode which assumes a digest is present in the input and fails the
request with EBADMSG if it doesn't match the internally-computed
digest. GCM and CCM already assumed this, and the new AEAD mode
requires this for decryption. The new ETA mode now also requires
this for decryption, so IPsec and GELI no longer do their own
authentication verification. Simple DIGEST operations can also do
this, though there are no in-tree consumers.

To eventually support some refcounting to close races, the session
cookie is now passed to crypto_getop() and clients should no longer
set crp_sesssion directly.

- Assymteric crypto operation structures should be allocated via
crypto_getkreq() and freed via crypto_freekreq(). This permits the
crypto layer to track open asym requests and close races with a
driver trying to unregister while asym requests are in flight.

- crypto_copyback, crypto_copydata, crypto_apply, and
crypto_contiguous_subsegment now accept the 'crp' object as the
first parameter instead of individual members. This makes it easier
to deal with different buffer types in the future as well as
separate input and output buffers. It's also simpler for driver
writers to use.

- bus_dmamap_load_crp() loads a DMA mapping for a crypto buffer.
This understands the various types of buffers so that drivers that
use DMA do not have to be aware of different buffer types.

- Helper routines now exist to build an auth context for HMAC IPAD
and OPAD. This reduces some duplicated work among drivers.

- Key buffers are now treated as const throughout the framework and in
device drivers. However, session key buffers provided when a session
is created are expected to remain alive for the duration of the
session.

- GCM and CCM sessions now only specify a cipher algorithm and a cipher
key. The redundant auth information is not needed or used.

- For cryptosoft, split up the code a bit such that the 'process'
callback now invokes a function pointer in the session. This
function pointer is set based on the mode (in effect) though it
simplifies a few edge cases that would otherwise be in the switch in
'process'.

It does split up GCM vs CCM which I think is more readable even if there
is some duplication.

- I changed /dev/crypto to support GMAC requests using CRYPTO_AES_NIST_GMAC
as an auth algorithm and updated cryptocheck to work with it.

- Combined cipher and auth sessions via /dev/crypto now always use ETA
mode. The COP_F_CIPHER_FIRST flag is now a no-op that is ignored.
This was actually documented as being true in crypto(4) before, but
the code had not implemented this before I added the CIPHER_FIRST
flag.

- I have not yet updated /dev/crypto to be aware of explicit modes for
sessions. I will probably do that at some point in the future as well
as teach it about IV/nonce and tag lengths for AEAD so we can support
all of the NIST KAT tests for GCM and CCM.

- I've split up the exising crypto.9 manpage into several pages
of which many are written from scratch.

- I have converted all drivers and consumers in the tree and verified
that they compile, but I have not tested all of them. I have tested
the following drivers:

- cryptosoft
- aesni (AES only)
- blake2
- ccr

and the following consumers:

- cryptodev
- IPsec
- ktls_ocf
- GELI (lightly)

I have not tested the following:

- ccp
- aesni with sha
- hifn
- kgssapi_krb5
- ubsec
- padlock
- safe
- armv8_crypto (aarch64)
- glxsb (i386)
- sec (ppc)
- cesa (armv7)
- cryptocteon (mips64)
- nlmsec (mips64)

Discussed with: cem
Relnotes: yes
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D23677


# f04020ed 23-Mar-2020 Mateusz Piotrowski <0mp@FreeBSD.org>

Sort UMA macros and create MLINKS for them

This patch is a follow-up to r344518.

Reported by: ngie

Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D24165


# a7f12fce 21-Jan-2020 Gleb Smirnoff <glebius@FreeBSD.org>

Remove struct callout_handle. Should have gone with r355732.


# 4b28d96e 13-Dec-2019 John Baldwin <jhb@FreeBSD.org>

Remove the deprecated timeout(9) interface.

All in-tree consumers have been converted to callout(9).

Reviewed by: kib, markj
Differential Revision: https://reviews.freebsd.org/D22602


# b832a7e5 13-Dec-2019 Warner Losh <imp@FreeBSD.org>

Create new wrapper function: bus_delayed_attach_children()

Delay the attachment of children, when requested, until after interrutps are
running. This is often needed to allow children to run transactions on i2c or
spi busses. It's a common enough idiom that it will be useful to have its own
wrapper.

Reviewed by: ian
Differential Revision: https://reviews.freebsd.org/D21465


# 9825eadf 13-Dec-2019 Ryan Libby <rlibby@FreeBSD.org>

bitset: rename confusing macro NAND to ANDNOT

s/BIT_NAND/BIT_ANDNOT/, and for CPU and DOMAINSET too. The actual
implementation is "and not" (or "but not"), i.e. A but not B.
Fortunately this does appear to be what all existing callers want.

Don't supply a NAND (not (A and B)) operation at this time.

Discussed with: jeff
Reviewed by: cem
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D22791


# 337f6465 17-Oct-2019 Andriy Gapon <avg@FreeBSD.org>

document taskqueue_start_threads_in_proc

While here, fix taskqueue_start_threads_cpuset that was documented under
old name of taskqueue_start_threads_pinned.

MFC after: 4 weeks


# c812bea3 11-Oct-2019 Andriy Gapon <avg@FreeBSD.org>

add superio.4 and superio.9 manual pages

This adds basic documentation on what the superio driver is and how
other drivers can interact with it. I decided to also document
superio's ivar accessors.

Reviewed by: bcr, brueffer (both manual contents only)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D21958


# fee2a2fa 09-Sep-2019 Mark Johnston <markj@FreeBSD.org>

Change synchonization rules for vm_page reference counting.

There are several mechanisms by which a vm_page reference is held,
preventing the page from being freed back to the page allocator. In
particular, holding the page's object lock is sufficient to prevent the
page from being freed; holding the busy lock or a wiring is sufficent as
well. These references are protected by the page lock, which must
therefore be acquired for many per-page operations. This results in
false sharing since the page locks are external to the vm_page
structures themselves and each lock protects multiple structures.

Transition to using an atomically updated per-page reference counter.
The object's reference is counted using a flag bit in the counter. A
second flag bit is used to atomically block new references via
pmap_extract_and_hold() while removing managed mappings of a page.
Thus, the reference count of a page is guaranteed not to increase if the
page is unbusied, unmapped, and the object's write lock is held. As
a consequence of this, the page lock no longer protects a page's
identity; operations which move pages between objects are now
synchronized solely by the objects' locks.

The vm_page_wire() and vm_page_unwire() KPIs are changed. The former
requires that either the object lock or the busy lock is held. The
latter no longer has a return value and may free the page if it releases
the last reference to that page. vm_page_unwire_noq() behaves the same
as before; the caller is responsible for checking its return value and
freeing or enqueuing the page as appropriate. vm_page_wire_mapped() is
introduced for use in pmap_extract_and_hold(). It fails if the page is
concurrently being unmapped, typically triggering a fallback to the
fault handler. vm_page_wire() no longer requires the page lock and
vm_page_unwire() now internally acquires the page lock when releasing
the last wiring of a page (since the page lock still protects a page's
queue state). In particular, synchronization details are no longer
leaked into the caller.

The change excises the page lock from several frequently executed code
paths. In particular, vm_object_terminate() no longer bounces between
page locks as it releases an object's pages, and direct I/O and
sendfile(SF_NOCACHE) completions no longer require the page lock. In
these latter cases we now get linear scalability in the common scenario
where different threads are operating on different files.

__FreeBSD_version is bumped. The DRM ports have been updated to
accomodate the KPI changes.

Reviewed by: jeff (earlier version)
Tested by: gallatin (earlier version), pho
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D20486


# e46cfc25 03-Sep-2019 Mark Johnston <markj@FreeBSD.org>

Revert a portion of r351628 that I did not mean to commit.

Reported by: mjg
MFC with: r351628


# 08cfa56e 01-Sep-2019 Mark Johnston <markj@FreeBSD.org>

Extend uma_reclaim() to permit different reclamation targets.

The page daemon periodically invokes uma_reclaim() to reclaim cached
items from each zone when the system is under memory pressure. This
is important since the size of these caches is unbounded by default.
However it also results in bursts of high latency when allocating from
heavily used zones as threads miss in the per-CPU caches and must
access the keg in order to allocate new items.

With r340405 we maintain an estimate of each zone's usage of its
(per-NUMA domain) cache of full buckets. Start making use of this
estimate to avoid reclaiming the entire cache when under memory
pressure. In particular, introduce TRIM, DRAIN and DRAIN_CPU
verbs for uma_reclaim() and uma_zone_reclaim(). When trimming, only
items in excess of the estimate are reclaimed. Draining a zone
reclaims all of the cached full buckets (the previous behaviour of
uma_reclaim()), and may further drain the per-CPU caches in extreme
cases.

Now, when under memory pressure, the page daemon will trim zones
rather than draining them. As a result, heavily used zones do not incur
bursts of bucket cache misses following reclamation, but large, unused
caches will be reclaimed as before.

Reviewed by: jeff
Tested by: pho (an earlier version)
MFC after: 2 months
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D16667


# d794b3a3 30-Aug-2019 Mark Johnston <markj@FreeBSD.org>

Update and clean up the UMA man page.

- Fix warnings from igor and mandoc.
- Provide a brief description of the separation between zones and their
backend slab allocators.
- Document cache zones and secondary zones.
- Document the kernel config options added in r350659.
- Document the uma_zalloc_pcpu() and uma_zfree_pcpu() wrappers.
- Document uma_zone_reserve(), uma_zone_reserve_kva() and
uma_zone_prealloc().
- Document uma_zone_alloc() and uma_zone_freef().
- Add some missing MLINKs and Xrefs.

MFC after: 2 weeks


# 26a6feda 07-Aug-2019 Li-Wen Hsu <lwhsu@FreeBSD.org>

Follow r350693 to add a link for sbuf_nl_terminate(9)

Sponsored by: The FreeBSD Foundation


# ac03832e 07-Aug-2019 Conrad Meyer <cem@FreeBSD.org>

GEOM: Reduce unnecessary log interleaving with sbufs

Similar to what was done for device_printfs in r347229.

Convert g_print_bio() to a thin shim around g_format_bio(), which acts on an
sbuf; documented in g_bio.9.

Reviewed by: markj
Discussed with: rlibby
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D21165


# 72445076 29-Jul-2019 Mariusz Zaborski <oshogbo@FreeBSD.org>

seqc: add man page

Reviewed by: markj
Earlier version reviewed by: emaste, mjg, bcr, 0mp
Differential Revision: https://reviews.freebsd.org/D16744


# 4b5b98d2 25-Jul-2019 Rick Macklem <rmacklem@FreeBSD.org>

Create a man page for VOP_COPY_FILE_RANGE(9).

r350315 created a Linux compatible copy_file_range(2) syscall.
It uses a VOP method called VOP_COPY_FILE_RANGE so that file systems,
such as the NFSv4.2 client can do file system specific copying.
For NFSv4.2, this allows the copying to be done locally on the NFS server,
avoiding transferring the data across the wire twice.

This is a new man page (content changed).

Reviewed by: kib, asomers
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D20584


# 1d6d0a43 19-Jul-2019 Emmanuel Vadot <manu@FreeBSD.org>

pkgbase: move man pages from runtime-manual to runtime

We don't split the other man pages in their own package so do the same for runtime.

Reviewed by: bapt, gjb
Differential Revision: https://reviews.freebsd.org/D20962


# eeacb3b0 08-Jul-2019 Mark Johnston <markj@FreeBSD.org>

Merge the vm_page hold and wire mechanisms.

The hold_count and wire_count fields of struct vm_page are separate
reference counters with similar semantics. The remaining essential
differences are that holds are not counted as a reference with respect
to LRU, and holds have an implicit free-on-last unhold semantic whereas
vm_page_unwire() callers must explicitly determine whether to free the
page once the last reference to the page is released.

This change removes the KPIs which directly manipulate hold_count.
Functions such as vm_fault_quick_hold_pages() now return wired pages
instead. Since r328977 the overhead of maintaining LRU for wired pages
is lower, and in many cases vm_fault_quick_hold_pages() callers would
swap holds for wirings on the returned pages anyway, so with this change
we remove a number of page lock acquisitions.

No functional change is intended. __FreeBSD_version is bumped.

Reviewed by: alc, kib
Discussed with: jeff
Discussed with: jhb, np (cxgbe)
Tested by: pho (previous version)
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D19247


# 82334850 28-Jun-2019 John Baldwin <jhb@FreeBSD.org>

Add an external mbuf buffer type that holds multiple unmapped pages.

Unmapped mbufs allow sendfile to carry multiple pages of data in a
single mbuf, without mapping those pages. It is a requirement for
Netflix's in-kernel TLS, and provides a 5-10% CPU savings on heavy web
serving workloads when used by sendfile, due to effectively
compressing socket buffers by an order of magnitude, and hence
reducing cache misses.

For this new external mbuf buffer type (EXT_PGS), the ext_buf pointer
now points to a struct mbuf_ext_pgs structure instead of a data
buffer. This structure contains an array of physical addresses (this
reduces cache misses compared to an earlier version that stored an
array of vm_page_t pointers). It also stores additional fields needed
for in-kernel TLS such as the TLS header and trailer data that are
currently unused. To more easily detect these mbufs, the M_NOMAP flag
is set in m_flags in addition to M_EXT.

Various functions like m_copydata() have been updated to safely access
packet contents (using uiomove_fromphys()), to make things like BPF
safe.

NIC drivers advertise support for unmapped mbufs on transmit via a new
IFCAP_NOMAP capability. This capability can be toggled via the new
'nomap' and '-nomap' ifconfig(8) commands. For NIC drivers that only
transmit packet contents via DMA and use bus_dma, adding the
capability to if_capabilities and if_capenable should be all that is
required.

If a NIC does not support unmapped mbufs, they are converted to a
chain of mapped mbufs (using sf_bufs to provide the mapping) in
ip_output or ip6_output. If an unmapped mbuf requires software
checksums, it is also converted to a chain of mapped mbufs before
computing the checksum.

Submitted by: gallatin (earlier version)
Reviewed by: gallatin, hselasky, rrs
Discussed with: ae, kp (firewalls)
Relnotes: yes
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D20616


# 131b2b76 28-Jun-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Implement API for draining EPOCH(9) callbacks.

The epoch_drain_callbacks() function is used to drain all pending
callbacks which have been invoked by prior epoch_call() function calls
on the same epoch. This function is useful when there are shared
memory structure(s) referred to by the epoch callback(s) which are not
refcounted and are rarely freed. The typical place for calling this
function is right before freeing or invalidating the shared
resource(s) used by the epoch callback(s). This function can sleep and
is not optimized for performance.

Differential Revision: https://reviews.freebsd.org/D20109
MFC after: 1 week
Sponsored by: Mellanox Technologies


# 7202a380 21-Jun-2019 Ian Lepore <ian@FreeBSD.org>

Catch up with recent changes in pwmbus(9). The pwm(9) and pwmbus(9)
interfaces were unified into pwmbus(9), and the PWMBUS_CHANNEL_MAX method
was renamed PWMBUS_CHANNEL_COUNT. The pwmbus_attach_bus() function just
went away completely. Also, fix a few typos such as s/is/if/.


# d01752c7 20-Jun-2019 Alan Somers <asomers@FreeBSD.org>

Add a VOP_BMAP(9) man page

Reviewed by: mckusick
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D20704


# f91aa773 19-Jun-2019 Alexander Motin <mav@FreeBSD.org>

Add wakeup_any(), cheaper wakeup_one() for taskqueue(9).

wakeup_one() and underlying sleepq_signal() spend additional time trying
to be fair, waking thread with highest priority, sleeping longest time.
But in case of taskqueue there are many absolutely identical threads, and
any fairness between them is quite pointless. It makes even worse, since
round-robin wakeups not only make previous CPU affinity in scheduler quite
useless, but also hide from user chance to see CPU bottlenecks, when
sequential workload with one request at a time looks evenly distributed
between multiple threads.

This change adds new SLEEPQ_UNFAIR flag to sleepq_signal(), making it wakeup
thread that went to sleep last, but no longer in context switch (to avoid
immediate spinning on the thread lock). On top of that new wakeup_any()
function is added, equivalent to wakeup_one(), but setting the flag.
On top of that taskqueue(9) is switchied to wakeup_any() to wakeup its
threads.

As result, on 72-core Xeon v4 machine sequential ZFS write to 12 ZVOLs
with 16KB block size spend 34% less time in wakeup_any() and descendants
then it was spending in wakeup_one(), and total write throughput increased
by ~10% with the same as before CPU usage.

Reviewed by: markj, mmacy
MFC after: 2 weeks
Sponsored by: iXsystems, Inc.
Differential Revision: https://reviews.freebsd.org/D20669


# 0f702183 11-Jun-2019 John Baldwin <jhb@FreeBSD.org>

Make the warning intervals for deprecated crypto algorithms tunable.

New sysctl/tunables can now set the interval (in seconds) between
rate-limited crypto warnings. The new sysctls are:
- kern.cryptodev_warn_interval for /dev/crypto
- net.inet.ipsec.crypto_warn_interval for IPsec
- kern.kgssapi_warn_interval for KGSSAPI

Reviewed by: cem
MFC after: 1 month
Relnotes: yes
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D20555


# 574b98cb 11-Jun-2019 John Baldwin <jhb@FreeBSD.org>

Document sysctl nodes that translate their values.

This documents the behavior of sysctl_msec_to_ticks and
SYSCTL_{ADD,}_SBINTIME_[UM]SEC.

Reviewed by: cem
MFC after: 1 week
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D20596


# 9a0130cc 20-May-2019 Mark Johnston <markj@FreeBSD.org>

Hook DEFINE_IFUNC.9 up to the build.

Reported by: pluknet
MFC with: r348003


# 7d7db529 07-May-2019 Conrad Meyer <cem@FreeBSD.org>

device_printf: Use sbuf for more coherent prints on SMP

device_printf does multiple calls to printf allowing other console messages to
be inserted between the device name, and the rest of the message. This change
uses sbuf to compose to two into a single buffer, and prints it all at once.

It exposes an sbuf drain function (drain-to-printf) for common use.

Update documentation to match; some unit tests included.

Submitted by: jmg
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D16690


# 7687707d 22-Apr-2019 Andrew Gallatin <gallatin@FreeBSD.org>

Track device's NUMA domain in ifnet & alloc ifnet from NUMA local memory

This commit adds new if_alloc_domain() and if_alloc_dev() methods to
allocate ifnets. When called with a domain on a NUMA machine,
ifalloc_domain() will record the NUMA domain in the ifnet, and it will
allocate the ifnet struct from memory which is local to that NUMA
node. Similarly, if_alloc_dev() is a wrapper for if_alloc_domain
which uses a driver supplied device_t to call ifalloc_domain() with
the appropriate domain.

Note that the new if_numa_domain field fits in an alignment pad in
struct ifnet, and so does not alter the size of the structure.

Reviewed by: glebius, kib, markj
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D19930


# 6b97c2e3 19-Apr-2019 Conrad Meyer <cem@FreeBSD.org>

Revert r346410 and r346411

libkern in .PATH has too many filename conflicts with libc and my -DNO_CLEAN
tinderbox didn't catch that ahead of time. Mea culpa.


# 7deb4b19 19-Apr-2019 Conrad Meyer <cem@FreeBSD.org>

libkern: Bring in arc4random_uniform(9) from libc

It is a useful arc4random wrapper in the kernel for much the same reasons as
in userspace. Move the source to libkern (because kernel build is
restricted to sys/, but userspace can include any file it likes) and build
kernel and libc versions from the same source file.

Copy the documentation from arc4random_uniform(3) to the section 9 page.

While here, add missing arc4random_buf(9) symlink.

Sponsored by: Dell EMC Isilon


# f3d2512d 16-Apr-2019 Conrad Meyer <cem@FreeBSD.org>

random(4): Add is_random_seeded(9) KPI

The imagined use is for early boot consumers of random to be able to make
decisions based on whether random is available yet or not. One such
consumer seems to be __stack_chk_init(), which runs immediately after random
is initialized. A follow-up patch will attempt to address that.

Reported by: many
Reviewed by: delphij (except man page)
Approved by: secteam(delphij)
Differential Revision: https://reviews.freebsd.org/D19926


# f6a363a5 22-Mar-2019 Alan Somers <asomers@FreeBSD.org>

Add man page for VOP_FDATASYNC(9)

Reviewed by: kib
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D19678


# b252313f 31-Jan-2019 Gleb Smirnoff <glebius@FreeBSD.org>

New pfil(9) KPI together with newborn pfil API and control utility.

The KPI have been reviewed and cleansed of features that were planned
back 20 years ago and never implemented. The pfil(9) internals have
been made opaque to protocols with only returned types and function
declarations exposed. The KPI is made more strict, but at the same time
more extensible, as kernel uses same command structures that userland
ioctl uses.

In nutshell [KA]PI is about declaring filtering points, declaring
filters and linking and unlinking them together.

New [KA]PI makes it possible to reconfigure pfil(9) configuration:
change order of hooks, rehook filter from one filtering point to a
different one, disconnect a hook on output leaving it on input only,
prepend/append a filter to existing list of filters.

Now it possible for a single packet filter to provide multiple rulesets
that may be linked to different points. Think of per-interface ACLs in
Cisco or Juniper. None of existing packet filters yet support that,
however limited usage is already possible, e.g. default ruleset can
be moved to single interface, as soon as interface would pride their
filtering points.

Another future feature is possiblity to create pfil heads, that provide
not an mbuf pointer but just a memory pointer with length. That would
allow filtering at very early stages of a packet lifecycle, e.g. when
packet has just been received by a NIC and no mbuf was yet allocated.

Differential Revision: https://reviews.freebsd.org/D18951


# dab03110 23-Jan-2019 Brooks Davis <brooks@FreeBSD.org>

Remove documentation for the nonexistant cred_update_thread(9).

This was a tangential change submitted as part of D18930.

Submitted by: jack@gandi.net


# 25e6655a 14-Jan-2019 Gleb Smirnoff <glebius@FreeBSD.org>

Remove pbuf(9) manual page that is now nearly 100% outdated.


# fc6eed42 11-Jan-2019 Warner Losh <imp@FreeBSD.org>

Add man page for device_delete_children.

Submitted by: Jeroen Ruigrok van der Werven
Differential Revision: https://reviews.freebsd.org/D18452


# 9312900f 12-Dec-2018 Emmanuel Vadot <manu@FreeBSD.org>

Add a pwm subsystem so we can configure pwm controller from kernel and userland.

The pwm subsystem consist of API for PWM controllers, pwmbus to register them
and a pwm(8) utility to talk to them from userland.

Reviewed by: oshgobo (capsicum), bcr (manpage), 0mp (manpage)
Differential Revision: https://reviews.freebsd.org/D17938


# bb58b5d6 21-Nov-2018 Mark Johnston <markj@FreeBSD.org>

Add a taskqueue_quiesce(9) KPI.

This is similar to taskqueue_drain_all(9) but will wait for the queue
to become idle before returning instead of only waiting for
already-enqueued tasks to finish. This will be used in the opensolaris
compat layer.

PR: 227784
Reviewed by: cem
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D17975


# 9978bd99 30-Oct-2018 Mark Johnston <markj@FreeBSD.org>

Add malloc_domainset(9) and _domainset variants to other allocator KPIs.

Remove malloc_domain(9) and most other _domain KPIs added in r327900.
The new functions allow the caller to specify a general NUMA domain
selection policy, rather than specifically requesting an allocation from
a specific domain. The latter policy tends to interact poorly with
M_WAITOK, resulting in situations where a caller is blocked indefinitely
because the specified domain is depleted. Most existing consumers of
the _domain KPIs are converted to instead use a DOMAINSET_PREF() policy,
in which we fall back to other domains to satisfy the allocation
request.

This change also defines a set of DOMAINSET_FIXED() policies, which
only permit allocations from the specified domain.

Discussed with: gallatin, jeff
Reported and tested by: pho (previous version)
MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D17418


# 64aa915f 20-Oct-2018 Conrad Meyer <cem@FreeBSD.org>

Add a dev_refthread.9 document.

Reviewed by: kib
Sponsored by: Dell EMC Isilon
Differential: https://reviews.freebsd.org/D16897


# 99d528d4 17-Aug-2018 Dag-Erling Smørgrav <des@FreeBSD.org>

Add a man page for ratecheck(9) and ppsratecheck(9).


# 503478af 16-Aug-2018 Kyle Evans <kevans@FreeBSD.org>

Add efidev(4)/efirt(9)

Document efidev(4), provider of userland access to EFI Runtime Services. A link is created to efirtc(4), which handles the time-of-day clock side.

efirt(9) is the kernel side of this.

Reviewed by: imp, kib (earlier version)
Differential Revision: https://reviews.freebsd.org/D16696


# 5c0ce481 26-Jun-2018 Conrad Meyer <cem@FreeBSD.org>

atomic.9: Add missing MLINK for testandclear, thread_fence routines

Missed in r299912, r326982.

X-MFC-With: r299912, r326982
Sponsored by: Dell EMC Isilon


# 76e944b7 26-Jun-2018 Mark Johnston <markj@FreeBSD.org>

Add missing MLINK.

MFC after: 3 days


# 80cb7cd4 23-Jun-2018 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Document multi variants of *prop_alloc functions

Add documentation and symlinks for OF_getprop_alloc_multi
and OF_getencprop_alloc_multi functions.

Also while here fix copy-pasted .Dt value and add one more
failure condition for OF_getencprop_alloc.


# 1f725683 08-Jun-2018 Jonathan T. Looney <jtl@FreeBSD.org>

Create a symlink for sodtor_set(9) to the socket(9) man page.


# 33346ed6 13-May-2018 Matt Macy <mmacy@FreeBSD.org>

Add epoch(9) man page

Reviewed by: gallatin@
Approved by: sbruno@


# c5ff263d 03-May-2018 Benno Rice <benno@FreeBSD.org>

Add a stub manual page for iflib(9).

Currently 'man -k iflib' would find you the right pages for iflib
documentation, namely iflibdd(9) and iflibdi(9) but 'man iflib' would leave
you in the dark. This allows both approaches to find the relevant
documentation.

Reviewed by: kmacy, shurd
Sponsored by: iXsystems, Inc.
Differential Revision: https://reviews.freebsd.org/D15219


# 9c11d8d4 17-Apr-2018 Brooks Davis <brooks@FreeBSD.org>

Remove the unused fuwintr() and suiwintr() functions.

Half of implementations always failed (returned (-1)) and they were
previously used in only one place.

Reviewed by: kib, andrew
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D15102


# ac32b99c 09-Apr-2018 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

[man] Add documentation for OpenFirmware API

Add man pages for following OpenFirmware functions:

OF_child, OF_parent, OF_peer, OF_device_from_xref,
OF_device_register_xref, OF_xref_from_device, OF_getprop,
OF_getencprop, OF_getencprop_alloc, OF_getprop_alloc, OF_getproplen,
OF_hasprop, OF_nextprop, OF_prop_free, OF_searchencprop,
OF_searchprop, OF_setprop

Edited by: wblock
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D14511


# f510c340 08-Apr-2018 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Document ofw_bus_subr helpers "compatible" and "status" properties

Add documentation for following functions:

- ofw_bus_is_compatible
- ofw_bus_is_compatible_strict
- ofw_bus_node_is_compatible
- ofw_bus_search_compatible
- ofw_bus_get_status
- ofw_bus_status_okay
- ofw_bus_node_status_okay

MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D14724


# e5818a53 28-Mar-2018 Jeff Roberson <jeff@FreeBSD.org>

Implement several enhancements to NUMA policies.

Add a new "interleave" allocation policy which stripes pages across
domains with a stride or width keeping contiguity within a multi-page
region.

Move the kernel to the dedicated numbered cpuset #2 making it possible
to assign kernel threads and memory policy separately from user. This
also eliminates the need for the complicated interrupt binding code.

Add a sysctl API for viewing and manipulating domainsets. Refactor some
of the cpuset_t manipulation code using the generic bitset type so that
it can be used for both. This probably belongs in a dedicated subr file.

Attempt to improve the include situation.

Reviewed by: kib
Discussed with: jhb (cpuset parts)
Tested by: pho (before review feedback)
Sponsored by: Netflix, Dell/EMC Isilon
Differential Revision: https://reviews.freebsd.org/D14839


# 93f31533 24-Mar-2018 Jeff Roberson <jeff@FreeBSD.org>

Document new NUMA related syscalls and utility options.

Sponsored by: Netflix, Dell/EMC Isilon


# f0fb0d58 03-Mar-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Document pause_sig(9) and update prototypes for existing pause(9) and
pause_sbt(9) functions.

MFC after: 1 week
Suggested by: cem@
Sponsored by: Mellanox Technologies


# a1c11a0a 02-Mar-2018 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

[fdt_pinctrl] Add man pages for fdt_pinctrl driver

- Add fdt_pinctrl(4) with general information for the driver
- Add fdt_pinctrl(9) with fdt_pinctrl KPI description

Reviewed by: ian, manu, wblock
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D14235


# 037f68a9 18-Feb-2018 Kyle Evans <kevans@FreeBSD.org>

Create style.lua(9)

This covers the lua style guidelines we've generally agreed on so far. It
will be revised as work continues and we run into more scenarios that need
specified.

Discussed with: cem, jilles
Differential Revision: https://reviews.freebsd.org/D14423


# 341458a0 13-Feb-2018 Ed Maste <emaste@FreeBSD.org>

Add DECLARE_MODULE_TIED mlink missed in r329244

Reported by: imp


# 4777ab97 12-Feb-2018 Conrad Meyer <cem@FreeBSD.org>

Take a first stab at documenting use of MODULE_PNP_INFO

Sponsored by: Dell EMC Isilon


# 4b69e622 10-Feb-2018 Conrad Meyer <cem@FreeBSD.org>

Document syscall_helper_register(9), syscall_helper_unregister(9)


# aeb8ee17 11-Jan-2018 Mark Johnston <markj@FreeBSD.org>

Add mallocarray.9 to malloc.9's MLINKS.

X-MFC with: r327674


# 05ed3f90 27-Nov-2017 Landon J. Fuller <landonf@FreeBSD.org>

bhnd(4) update inline documentation comments and man pages.

This includes a number of copyedits for the inline code documentation
comments, updates to the existing bhnd(4), bhndb(4), bcma(4), and siba(4)
man pages, and new man pages for bhnd_chipc(4), bhnd_pmu(4), bhndb_pci(4),
bhnd(9), and bhnd_erom(9).

Approved by: adrian (mentor)
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D13021


# 755230eb 21-Nov-2017 Mark Johnston <markj@FreeBSD.org>

Clean up the SYSINIT_FLAGS definitions for rwlock(9) and rmlock(9).

Avoid duplication in their macro definitions, and document them. No
functional change intended.

MFC after: 1 week


# 1f66baa5 04-Nov-2017 Edward Tomasz Napierala <trasz@FreeBSD.org>

Add missing MLINKS for disk_add_alias(9).

MFC after: 2 weeks


# 39ed7f25 17-Oct-2017 Brooks Davis <brooks@FreeBSD.org>

Remove mbpool(9) now that it has no consumers.

mbpool existed to support NICs with memory interfaces and all remaining
comsumers were removed earlier this year with NATM.

Reviewed by: jhb
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D10513


# 333dcaa4 11-Oct-2017 Matt Joras <mjoras@FreeBSD.org>

Add clearing function for unr(9).

Previously before you could call unrhdr_delete you needed to
individually free every allocated unit. It is useful to be able to tear
down the unr without having to go through this process, as it is
significantly faster than freeing the individual units.

Reviewed by: cem, lidl
Approved by: rstone (mentor)
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12591


# 0da36218 26-Sep-2017 Mateusz Guzik <mjg@FreeBSD.org>

Remove manpage entries about crshared(9)

The function itself was removed years ago in r272546

Submitted by: Paulm <paulm tetrardus.net>
MFC after: 2 weeks


# c8ada192 16-Sep-2017 Mariusz Zaborski <oshogbo@FreeBSD.org>

Add missing links to the nv man page.

MFC after: 1 week


# 2db14f97 13-Aug-2017 Ian Lepore <ian@FreeBSD.org>

Add config_intrhook_oneshot(): schedule an intrhook function and unregister
it automatically after it runs.

The config_intrhook mechanism allows a driver to stall the boot process
until device(s) required for booting are available, by not allowing system
inits to proceed until all intrhook functions have been unregistered.
Virtually all existing code simply unregisters from within the hook function
when it gets called.

This new function makes that common usage more convenient. Instead of
allocating and filling in a struct, passing it to a function that might (in
theory) fail, and checking the return code, now a driver can simply call
this cannot-fail routine, passing just the intrhook function and its arg.

Differential Revision: https://reviews.freebsd.org/D11963


# dc6a41b9 08-Jun-2017 Jonathan T. Looney <jtl@FreeBSD.org>

Add the infrastructure to support loading multiple versions of TCP
stack modules.

It adds support for mangling symbols exported by a module by prepending
a string to them. (This avoids overlapping symbols in the kernel linker.)

It allows the use of a macro as the module name in the DECLARE_MACRO()
and MACRO_VERSION() macros.

It allows the code to register stack aliases (e.g. both a generic name
["default"] and version-specific name ["default_10_3p1"]).

With these changes, it is trivial to compile TCP stack modules with
the name defined in the Makefile and to load multiple versions of the
same stack simultaneously. This functionality can be used to enable
side-by-side testing of an old and new version of the same TCP stack.
It also could support upgrading the TCP stack without a reboot.

Reviewed by: gnn, sjg (makefiles only)
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D11086


# c8de781d 01-Jun-2017 Eric van Gyzen <vangyzen@FreeBSD.org>

getenv(9): rename to "kern_getenv", etc.

Update the documentation to catch up with r273174, which renamed
getenv -> kern_getenv
setenv -> kern_setenv
unsetenv -> kern_unsetenv

Leave the old links in place to support finger memory.

MFC after: 3 days
Sponsored by: Dell EMC


# 7e9a9bd4 23-May-2017 Kevin Lo <kevlo@FreeBSD.org>

Add missing MLINKS for functions decribed in iflibdd(9), iflibdi(9), and
iflibtxrx(9).


# 00f6cd3f 16-May-2017 John Baldwin <jhb@FreeBSD.org>

Add sglist_append_sglist().

This function permits a range of one scatter/gather list to be appended to
another sglist. This can be used to construct a scatter/gather list that
reorders or duplicates ranges from one or more existing scatter/gather
lists.

Sponsored by: Chelsio Communications


# 0607c830 27-Apr-2017 Brooks Davis <brooks@FreeBSD.org>

More ATM and NATM removal

Submitted by: ak
Reviewed by: ngie
Differential Revision: https://reviews.freebsd.org/D10511


# 9dc2c432 26-Apr-2017 Gleb Smirnoff <glebius@FreeBSD.org>

UMA_ZONE_REFCNT was removed.

PR: 209715
Submitted by: Fabian Keil <fk fabiankeil.de>
MFC after: 3 days


# 12866874 05-Apr-2017 Enji Cooper <ngie@FreeBSD.org>

sbuf(9): add MLINKS for sbuf_{clear,get,set}_flags(9)

These functions were added in r279992.

MFC after: 2 months
Sponsored by: Dell EMC Isilon


# b5111c46 27-Mar-2017 Edward Tomasz Napierala <trasz@FreeBSD.org>

Document EVENTHANDLER_DEFINE(9).

MFC after: 2 weeks
Sponsored by: DARPA, AFRL


# 8509f632 26-Mar-2017 Robert Watson <rwatson@FreeBSD.org>

Add a man page for the kernel's dynamic per-CPU memory allocator.

MFC after: 3 days


# 1ba0d51a 11-Mar-2017 Ian Lepore <ian@FreeBSD.org>

Document uiomove_frombuf(9).


# dac42e98 05-Mar-2017 John-Mark Gurney <jmg@FreeBSD.org>

add missing MLINKS for functions that this man page documents.

This page should be renamed to eliminate an unneeded inode.

Forgotten by: markm


# fa422501 02-Mar-2017 Enji Cooper <ngie@FreeBSD.org>

Correct MLINKS for sbuf_hexdump(9)

sbuf_hexdump(9) should be linked to sbuf(9), not hexdump(3). Another
review will be posted to deduplicate the sbuf_hexdump reference in
in hexdump(3) or at the very least make the information less duplicative.

MFC after: 1 week
X-MFC with: r313437
Sponsored by: Dell EMC Isilon


# 34bac11e 27-Jan-2017 Sean Bruno <sbruno@FreeBSD.org>

Add iflib man pages for developers.

Doc review is probably waranted here for editing.

Submitted by: Nicole Graziano


# 1e1f3941 13-Dec-2016 Ed Schouten <ed@FreeBSD.org>

Add support for attaching aggregation labels to sysctl objects.

I'm currently working on writing a metrics exporter for the Prometheus
monitoring system to provide access to sysctl metrics. Prometheus and
sysctl have some structural differences:

- sysctl is a tree of string component names.
- Prometheus uses a flat namespace for its metrics, but allows you to
attach labels with values to them, so that you can do aggregation.

An initial version of my exporter simply translated

hw.acpi.thermal.tz1.temperature

to

sysctl_hw_acpi_thermal_tz1_temperature_celcius

while we should ideally have

sysctl_hw_acpi_thermal_temperature_celcius{thermal_zone="tz1"}

allowing you to graph all thermal zones on a system in one go.

The change presented in this commit adds support for accomplishing this,
by providing the ability to attach labels to nodes. In the example I
gave above, the label "thermal_zone" would be attached to "tz1". As this
is a feature that will only be used very rarely, I decided to not change
the KPI too aggressively.

Discussed on: hackers@
Reviewed by: cem
Differential Revision: https://reviews.freebsd.org/D8775


# 590cb3c7 26-Nov-2016 Alan Cox <alc@FreeBSD.org>

The function vm_page_cache() no longer exists. Remove its man page.


# 1af4a585 10-Oct-2016 Andriy Voskoboinyk <avos@FreeBSD.org>

mbuf(9), mbuf_tags(9): fix function prototypes.

- Add m_getclr(9) symlink to ObsoleteFiles.inc (removed in r295481).
- Add const qualifiers in m_dup(), m_dup_pkthdr() and m_tag_copy_chain()
(r286450).
- Fix m_dup_pkthdr() definition (it's not the same as m_move_pkthdr()).

MFC after: 5 days


# 995192ed 06-Oct-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Add link for vrefl(9).

Sponsored by: Dell EMC Isilon
MFC after: 1 week


# 5ec81a23 05-Oct-2016 Mariusz Zaborski <oshogbo@FreeBSD.org>

Add man page for dnvlist.

Submitted by: Adam Starak <starak.adam@gmail.com>
Reviewed by: cem, wblock


# da0fc925 06-Sep-2016 John Baldwin <jhb@FreeBSD.org>

Reset PCI pass through devices via PCI-e FLR during VM start and end.

Add routines to trigger a function level reset (FLR) of a PCI-express
device via the PCI-express device control register. This also includes
support routines to wait for pending transactions to complete as well
as calculating the maximum completion timeout permitted by a device.

Change the ppt(4) driver to reset pass through devices before attaching
to a VM during startup and before detaching from a VM during shutdown.

Reviewed by: imp, wblock (earlier version)
MFC after: 1 month
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D7751


# dbbaf04f 03-Sep-2016 Mark Johnston <markj@FreeBSD.org>

Remove support for idle page zeroing.

Idle page zeroing has been disabled by default on all architectures since
r170816 and has some bugs that make it seemingly unusable. Specifically,
the idle-priority pagezero thread exacerbates contention for the free page
lock, and yields the CPU without releasing it in non-preemptive kernels. The
pagezero thread also does not behave correctly when superpage reservations
are enabled: its target is a function of v_free_count, which includes
reserved-but-free pages, but it is only able to zero pages belonging to the
physical memory allocator.

Reviewed by: alc, imp, kib
Differential Revision: https://reviews.freebsd.org/D7714


# 7dcd0f0e 27-Aug-2016 Mariusz Zaborski <oshogbo@FreeBSD.org>

Introduce cnv man page.

Submitted by: Adam Starak <starak.adam@gmail.com>
Reviewed by: cem@, wblock@
Differential Revision: https://reviews.freebsd.org/D7249


# 37e56c6e 05-Aug-2016 Edward Tomasz Napierala <trasz@FreeBSD.org>

Remove lockmgr_waiters(9) and BUF_LOCKWAITERS(9); they were not used
for anything.

Reviewed by: kib@
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D7420


# 0aee83cc 03-Aug-2016 John Baldwin <jhb@FreeBSD.org>

Permit the name of the /dev/iov entry to be set by the driver.

The PCI_IOV option creates character devices in /dev/iov for each PF
device driver that registers support for creating VFs. By default the
character device is named after the PF device (e.g. /dev/iov/foo0).
This change adds a variant of pci_iov_attach() called pci_iov_attach_name()
that allows the name of the /dev/iov entry to be specified by the
driver.

Reviewed by: rstone
MFC after: 1 month
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D7400


# a9e182e8 28-Jul-2016 Konstantin Belousov <kib@FreeBSD.org>

Extract the calculation of the callout fire time into the new function
callout_when(9). See the man page update for the description of the
intended use.

Tested by: pho
Reviewed by: jhb, bjk (man page updates)
Sponsored by: The FreeBSD Foundation
MFC after: 1 month
X-Differential revision: https://reviews.freebsd.org/D7137


# 90b581f2 22-Jul-2016 Konstantin Belousov <kib@FreeBSD.org>

Implement mtx_trylock_spin(9).

Discussed with: bde
Reviewed by: jhb
Sponsored by: The FreeBSD Foundation
MFC after: 1 week
Differential revision: https://reviews.freebsd.org/D7192


# cf3c688c 28-Jun-2016 Jonathan T. Looney <jtl@FreeBSD.org>

Document support for alternate TCP stacks.

Differential Revision: https://reviews.freebsd.org/D6940
Reviewed by: hiren
Approved by: re (gjb)
Sponsored by: Juniper Networks


# 20fee109 20-May-2016 John Baldwin <jhb@FreeBSD.org>

Add sglist functions for working with arrays of VM pages.

sglist_count_vmpages() determines the number of segments required for
a buffer described by an array of VM pages. sglist_append_vmpages()
adds the segments described by such a buffer to an sglist. The latter
function is largely pulled from sglist_append_bio(), and
sglist_append_bio() now uses sglist_append_vmpages().

Reviewed by: kib
Sponsored by: Chelsio Communications


# cc981af2 20-May-2016 John Baldwin <jhb@FreeBSD.org>

Add new bus methods for mapping resources.

Add a pair of bus methods that can be used to "map" resources for direct
CPU access using bus_space(9). bus_map_resource() creates a mapping and
bus_unmap_resource() releases a previously created mapping. Mappings are
described by 'struct resource_map' object. Pointers to these objects can
be passed as the first argument to the bus_space wrapper API used for bus
resources.

Drivers that wish to map all of a resource using default settings
(for example, using uncacheable memory attributes) do not need to change.
However, drivers that wish to use non-default settings can now do so
without jumping through hoops.

First, an RF_UNMAPPED flag is added to request that a resource is not
implicitly mapped with the default settings when it is activated. This
permits other activation steps (such as enabling I/O or memory decoding
in a device's PCI command register) to be taken without creating a
mapping. Right now the AGP drivers don't set RF_ACTIVE to avoid using
up a large amount of KVA to map the AGP aperture on 32-bit platforms.
Once RF_UNMAPPED is supported on all platforms that support AGP this
can be changed to using RF_UNMAPPED with RF_ACTIVE instead.

Second, bus_map_resource accepts an optional structure that defines
additional settings for a given mapping.

For example, a driver can now request to map only a subset of a resource
instead of the entire range. The AGP driver could also use this to only
map the first page of the aperture (IIRC, it calls pmap_mapdev() directly
to map the first page currently). I will also eventually change the
PCI-PCI bridge driver to request mappings of the subset of the I/O window
resource on its parent side to create mappings for child devices rather
than passing child resources directly up to nexus to be mapped. This
also permits bridges that do address translation to request suitable
mappings from a resource on the "upper" side of the bus when mapping
resources on the "lower" side of the bus.

Another attribute that can be specified is an alternate memory attribute
for memory-mapped resources. This can be used to request a
Write-Combining mapping of a PCI BAR in an MI fashion. (Currently the
drivers that do this call pmap_change_attr() directly for x86 only.)

Note that this commit only adds the MI framework. Each platform needs
to add support for handling RF_UNMAPPED and thew new
bus_map/unmap_resource methods. Generally speaking, any drivers that
are calling rman_set_bustag() and rman_set_bushandle() need to be
updated.

Discussed on: arch
Reviewed by: cem
Differential Revision: https://reviews.freebsd.org/D5237


# 886b793d 19-May-2016 John Baldwin <jhb@FreeBSD.org>

Remove dangling references to rman_await_resource().

This function was removed when RF_TIMESHARE was removed a couple of years
ago.

MFC after: 3 days


# c6755605 17-May-2016 Warner Losh <imp@FreeBSD.org>

Per Ravi Pokala's suggestion, rewrite the g_reset_bio description to
be clearer. It also describes it with more nuance. Add missing MLINKS
noticed by trasz@. Bump the date.


# d7be980d 16-May-2016 Andrew Turner <andrew@FreeBSD.org>

Re-commit r299467 having fixed the build:

Add a new get_id interface to pci and pcib. This will allow us to both
detect failures, and get different PCI IDs.

For the former the interface returns an int to signal an error. The ID is
returned at a uintptr_t * argument.

For the latter there is a type argument that allows selecting the ID type.
This only specifies a single type, however a MSI type will be added
to handle the need to find the ID the hardware passes to the ARM GICv3
interrupt controller.

A follow up commit will be made to remove pci_get_rid.

Reviewed by: jhb, rstone (previous version)
Obtained from: ABT Systems Ltd
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D6239


# f41be0f0 11-May-2016 Conrad Meyer <cem@FreeBSD.org>

Revert r299467 to fix the kernel build.

$ svn merge -c -299467 .

Approved by: build being broken for six hours


# 9a36a337 11-May-2016 Andrew Turner <andrew@FreeBSD.org>

Add a new get_id interface to pci and pcib. This will allow us to both
detect failures, and get different PCI IDs.

For the former the interface returns an int to signal an error. The ID is
returned at a uintptr_t * argument.

For the latter there is a type argument that allows selecting the ID type.
This only specifies a single type, however a MSI type will be added
to handle the need to find the ID the hardware passes to the ARM GICv3
interrupt controller.

A follow up commit will be made to remove pci_get_rid.

Reviewed by: jhb, rstone
Obtained from: ABT Systems Ltd
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D6239


# 8d791e5a 09-May-2016 John Baldwin <jhb@FreeBSD.org>

Add a new bus method to fetch device-specific CPU sets.

bus_get_cpus() returns a specified set of CPUs for a device. It accepts
an enum for the second parameter that indicates the type of cpuset to
request. Currently two valus are supported:

- LOCAL_CPUS (on x86 this returns all the CPUs in the package closest to
the device when DEVICE_NUMA is enabled)
- INTR_CPUS (like LOCAL_CPUS but only returns 1 SMT thread for each core)

For systems that do not support NUMA (or if it is not enabled in the kernel
config), LOCAL_CPUS fails with EINVAL. INTR_CPUS is mapped to 'all_cpus'
by default. The idea is that INTR_CPUS should always return a valid set.

Device drivers which want to use per-CPU interrupts should start using
INTR_CPUS instead of simply assigning interrupts to all available CPUs.
In the future we may wish to add tunables to control the policy of
INTR_CPUS (e.g. should it be local-only or global, should it ignore
SMT threads or not).

The x86 nexus driver exposes the internal set of interrupt CPUs from the
the x86 interrupt code via INTR_CPUS.

The ACPI bus driver and PCI bridge drivers use _PXM to return a suitable
LOCAL_CPUS set when _PXM exists and DEVICE_NUMA is enabled. They also and
the global INTR_CPUS set from the nexus driver with the per-domain set from
_PXM to generate a local INTR_CPUS set for child devices.

Compared to the r298933, this version uses 'struct _cpuset' in
<sys/bus.h> instead of 'cpuset_t' to avoid requiring <sys/param.h>
(<sys/_cpuset.h> still requires <sys/param.h> for MAXCPU even though
<sys/_bitset.h> does not after recent changes).


# 8a08b7d3 02-May-2016 John Baldwin <jhb@FreeBSD.org>

Revert bus_get_cpus() for now.

I really thought I had run this through the tinderbox before committing,
but many places need <sys/types.h> -> <sys/param.h> for <sys/bus.h> now.


# bc153c69 02-May-2016 John Baldwin <jhb@FreeBSD.org>

Add a new bus method to fetch device-specific CPU sets.

bus_get_cpus() returns a specified set of CPUs for a device. It accepts
an enum for the second parameter that indicates the type of cpuset to
request. Currently two valus are supported:

- LOCAL_CPUS (on x86 this returns all the CPUs in the package closest to
the device when DEVICE_NUMA is enabled)
- INTR_CPUS (like LOCAL_CPUS but only returns 1 SMT thread for each core)

For systems that do not support NUMA (or if it is not enabled in the kernel
config), LOCAL_CPUS fails with EINVAL. INTR_CPUS is mapped to 'all_cpus'
by default. The idea is that INTR_CPUS should always return a valid set.

Device drivers which want to use per-CPU interrupts should start using
INTR_CPUS instead of simply assigning interrupts to all available CPUs.
In the future we may wish to add tunables to control the policy of
INTR_CPUS (e.g. should it be local-only or global, should it ignore
SMT threads or not).

The x86 nexus driver exposes the internal set of interrupt CPUs from the
the x86 interrupt code via INTR_CPUS.

The ACPI bus driver and PCI bridge drivers use _PXM to return a suitable
LOCAL_CPUS set when _PXM exists and DEVICE_NUMA is enabled. They also and
the global INTR_CPUS set from the nexus driver with the per-domain set from
_PXM to generate a local INTR_CPUS set for child devices.

Reviewed by: wblock (manpage)
Differential Revision: https://reviews.freebsd.org/D5519


# a907c691 27-Apr-2016 John Baldwin <jhb@FreeBSD.org>

Add a new rescan method to the bus interface.

The BUS_RESCAN() method rescans a single bus device checking for devices
that have been added or removed from the bus. A new 'rescan' command is
added to devctl(8) to trigger a rescan.

Differential Revision: https://reviews.freebsd.org/D6016


# a435d46f 16-Mar-2016 Hans Petter Selasky <hselasky@FreeBSD.org>

Improve the implementation and documentation of the
SYSCTL_COUNTER_U64_ARRAY() macro.

- Add proper asserts to the SYSCTL_COUNTER_U64_ARRAY() macro that checks
the size of the first element of the array.
- Add an example to the counter(9) manual page how to use the
SYSCTL_COUNTER_U64_ARRAY() macro.
- Add some missing symbolic links for counter(9) while at it.


# a3f6b029 01-Mar-2016 Mark Johnston <markj@FreeBSD.org>

Document m_catpkt(), and remove misinformation about m_cat(9).

Since m_cat() may copy data from the second mbuf chain into the last mbuf
of the first chain, it may free the first mbuf of the second chain. Thus,
the second chain is not guaranteed to be valid after m_cat() returns.

Reviewed by: glebius
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D5497


# cbc4d2db 01-Mar-2016 John Baldwin <jhb@FreeBSD.org>

Remove taskqueue_enqueue_fast().

taskqueue_enqueue() was changed to support both fast and non-fast
taskqueues 10 years ago in r154167. It has been a compat shim ever
since. It's time for the compat shim to go.

Submitted by: Howard Su <howard0su@gmail.com>
Reviewed by: sephe
Differential Revision: https://reviews.freebsd.org/D5131


# bf2df150 21-Jan-2016 Glen Barber <gjb@FreeBSD.org>

Separate manual pages into their own package.

Sponsored by: The FreeBSD Foundation


# 48ce5d4c 07-Jan-2016 Konstantin Belousov <kib@FreeBSD.org>

Provide yet another KPI for cdev creation, make_dev_s(9).

Immediate problem fixed by the new KPI is the long-standing race
between device creation and assignments to cdev->si_drv1 and
cdev->si_drv2, which allows the window where cdevsw methods might be
called with si_drv1,2 fields not yet set. Devices typically checked
for NULL and returned spurious errors to usermode, and often left some
methods unchecked.

The new function interface is designed to be extensible, which should
allow to add more features to make_dev_s(9) without inventing yet
another name for function to create devices, while maintaining KPI and
even KBI backward-compatibility.

Reviewed by: hps, jhb
Sponsored by: The FreeBSD Foundation
MFC after: 3 weeks
Differential revision: https://reviews.freebsd.org/D4746


# ce204e1b 23-Dec-2015 John Baldwin <jhb@FreeBSD.org>

Add accessor methods to fetch the BAR holding the MSI-X table and PBA.

While here, explicitly note the requirement that the BAR(s) must be
allocated prior to calling pci_alloc_msix().

Reviewed by: andrew, emaste
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D4688


# 54503a13 19-Dec-2015 Jonathan T. Looney <jtl@FreeBSD.org>

Add a safety net to reclaim mbufs when one of the mbuf zones become
exhausted.

It is possible for a bug in the code (or, theoretically, even unusual
network conditions) to exhaust all possible mbufs or mbuf clusters.
When this occurs, things can grind to a halt fairly quickly. However,
we currently do not call mb_reclaim() unless the entire system is
experiencing a low-memory condition.

While it is best to try to prevent exhaustion of one of the mbuf zones,
it would also be useful to have a mechanism to attempt to recover from
these situations by freeing "expendable" mbufs.

This patch makes two changes:

a) The patch adds a generic API to the UMA zone allocator to set a
function that should be called when an allocation fails because the
zone limit has been reached. Because of the way this function can be
called, it really should do minimal work.

b) The patch uses this API to try to free mbufs when an allocation
fails from one of the mbuf zones because the zone limit has been
reached. The function schedules a callout to run mb_reclaim().

Differential Revision: https://reviews.freebsd.org/D3864
Reviewed by: gnn
Comments by: rrs, glebius
MFC after: 2 weeks
Sponsored by: Juniper Networks


# 711fbd17 07-Dec-2015 Mark Johnston <markj@FreeBSD.org>

Add helper functions proc_readmem() and proc_writemem().

These helper functions can be used to read in or write a buffer from or to
an arbitrary process' address space. Without them, this can only be done
using proc_rwmem(), which requires the caller to fill out a uio. This is
onerous and results in code duplication; the new functions provide a simpler
interface which is sufficient for most existing callers of proc_rwmem().

This change also adds a manual page for proc_rwmem() and the new functions.

Reviewed by: jhb, kib
Differential Revision: https://reviews.freebsd.org/D4245


# a8b75f75 07-Dec-2015 Christian Brueffer <brueffer@FreeBSD.org>

Add an MLINK for m_collapse.

PR: 204205
Submitted by: avos
MFC after: 1 week


# f5206d3f 12-Nov-2015 Randall Stewart <rrs@FreeBSD.org>

Some basic documentation (a man page) on kern_testfrwk


# 96eacdfd 11-Nov-2015 Randall Stewart <rrs@FreeBSD.org>

Add the MLINK for async_drain Thanks Edward for the pointer.

MFC after: 1 month


# 635458bc 07-Nov-2015 Mark Johnston <markj@FreeBSD.org>

Add a manual page for PHOLD() and friends.

MFC after: 1 week


# be87839e 06-Nov-2015 Conrad Meyer <cem@FreeBSD.org>

Round out SYSCTL macros to the full set of fixed-width types

Add S8, S16, S32, and U32 types; add SYSCTL*() macros for them, as well
as for the existing 64-bit types. (While SYSCTL*QUAD and UQUAD macros
already exist, they do not take the same sort of 'val' parameter that
the other macros do.)

Clean up the documented "types" in the sysctl.9 document. (These are
macros and thus not real types, but the manual page documents intent.)

The sysctl_add_oid(9) arg2 has been bumped from intptr_t to intmax_t to
accommodate 64-bit types on 32-bit pointer architectures.

This is just the kernel support piece; the userspace sysctl(1) support
will follow in a later patch.

Submitted by: Ravi Pokala <rpokala@panasas.com>
Reviewed by: cem
Relnotes: no
Sponsored by: Panasas
Differential Revision: https://reviews.freebsd.org/D4091


# 791b3571 05-Nov-2015 Adrian Chadd <adrian@FreeBSD.org>

remove \, it confuses things.


# 87dd2f95 05-Nov-2015 John Baldwin <jhb@FreeBSD.org>

Add a new helper function for PCI devices to locate the upstream
PCI-express root port of a given PCI device.

Reviewed by: kib, imp
MFC after: 1 week
Sponsored by: Chelsio
Differential Revision: https://reviews.freebsd.org/D4089


# ec603c72 05-Nov-2015 John Baldwin <jhb@FreeBSD.org>

Add helper routines for PCI device drivers to read, write, and modify
PCI-Express capability registers (that is, PCI config registers in the
standard PCI config space belonging to the PCI-Express capability
register set).

Note that all of the current PCI-e registers are either 16 or 32-bits,
so only widths of 2 or 4 bytes are supported.

Reviewed by: imp
MFC after: 1 week
Sponsored by: Chelsio
Differential Revision: https://reviews.freebsd.org/D4088


# fb61390c 23-Oct-2015 Conrad Meyer <cem@FreeBSD.org>

sysctl(9): Document U8/U16 types from r289773

Suggested by: ngie
Sponsored by: EMC / Isilon Storage Division


# 5546be25 20-Oct-2015 Conrad Meyer <cem@FreeBSD.org>

Document cpuset(9)

A follow-up to r289467.

Coerced by: jhb
Sponsored by: EMC / Isilon Storage Division


# 7ebf4122 17-Oct-2015 Conrad Meyer <cem@FreeBSD.org>

Document bitset(9)


# f2e34288 26-Sep-2015 Enji Cooper <ngie@FreeBSD.org>

Remove MLINKS to more non-existent mbuf(9) macros

X-MFC with: r288295
MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division


# c91afdd4 26-Sep-2015 Enji Cooper <ngie@FreeBSD.org>

Posthumously remove all references to MFREE(9)

The macro was removed in r90227

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division


# 0d27967e 26-Sep-2015 Conrad Meyer <cem@FreeBSD.org>

Document bus_get_resource(9).

Suggested by: Francois Tigeot
Obtained from: DragonFlyBSD 09301a2b29f3ae5edd39a858f909f8770372f71e
Sponsored by: EMC / Isilon Storage Division


# c55f4c94 22-Sep-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Revert r287780 until more developers have their say.

Differential Revision: https://reviews.freebsd.org/D3521
Requested by: gnn


# 9acc0eaf 14-Sep-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Implement callout_drain_async(), inspired by the projects/hps_head
branch.

This function is used to drain a callout via a callback instead of
blocking the caller until the drain is complete. Refer to the
callout_drain_async() manual page for a detailed description.

Limitation: If a lock is used with the callout, the callout can only
be drained asynchronously one time unless the callout_init_mtx()
function is called again. This limitation is not present in
projects/hps_head and will require more invasive changes to the
timeout code, which was not in the scope of this patch.

Differential Revision: https://reviews.freebsd.org/D3521
Reviewed by: wblock
MFC after: 1 month


# ae1f3df4 27-Aug-2015 Warner Losh <imp@FreeBSD.org>

New 1-Wire bus implementation. 1-Wire controller is abstracted, though
only gpiobus configured via FDT is supported. Bus enumeration is
supported. Devices are created for each device found. 1-Wire
temperature controllers are supported, but other drivers could be
written. Temperatures are polled and reported via a sysctl. Errors
are reported via sysctl counters. Mis-wired bus detection is included
for more trouble shooting. See ow(4), owc(4) and ow_temp(4) for
details of what's supported and known issues.

This has been tested on Raspberry Pi-B, Pi2 and Beagle Bone Black
with up to 7 devices.

Differential Revision: https://reviews.freebsd.org/D2956
Relnotes: yes
MFC after: 2 weeks
Reviewed by: loos@ (with many insightful comments)


# 7ec1b6b6 20-Aug-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Add link for rw_unlock(9) to rwlock(9).

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division


# cbaa6a0e 06-Aug-2015 Jason A. Harmening <jah@FreeBSD.org>

Create man page for pmap_quick_enter_page(9) and pmap_quick_remove_page(9)

Reviewed by: kib, brueffer, wblock
Approved by: kib (mentor)
Differential Revision: https://reviews.freebsd.org/D3312


# cdc34492 04-Aug-2015 Edward Tomasz Napierala <trasz@FreeBSD.org>

Revert r286236; vgonel() is a static function.

Sponsored by: The FreeBSD Foundation


# 6a968be5 03-Aug-2015 Edward Tomasz Napierala <trasz@FreeBSD.org>

Document vgonel(9).

MFC after: 1 month
Sponsored by: The FreeBSD Foundation


# 707d98fe 14-Jul-2015 Ed Schouten <ed@FreeBSD.org>

Implement the CloudABI random_get() system call.

The random_get() system call works similar to getentropy()/getrandom()
on OpenBSD/Linux. It fills a buffer with random data.

This change introduces a new function, read_random_uio(), that is used
to implement read() on the random devices. We can call into this
function from within the CloudABI compatibility layer.

Approved by: secteam
Reviewed by: jmg, markm, wblock
Obtained from: https://github.com/NuxiNL/freebsd
Differential Revision: https://reviews.freebsd.org/D3053


# 58c86148 04-Jul-2015 Mariusz Zaborski <oshogbo@FreeBSD.org>

Move nvlist documentation to the FreeBSD Kernel Developer's sections.

Approved by: pjd (mentor)


# f3bb9251 28-May-2015 John Baldwin <jhb@FreeBSD.org>

Create a separate kobj interface for leaf-driver PCI IOV methods.

Leaf drivers should not import the PCI bus interface to add IOV handling.
Instead, move the IOV client methods to a separate kobj interface.

Differential Revision: https://reviews.freebsd.org/D2584
Reviewed by: rstone


# 6b46b078 06-May-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Remove references to Giant in namei(9). This was removed in r241896.

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# da10a603 23-Apr-2015 Mark Johnston <markj@FreeBSD.org>

Make vpanic() externally visible so that it can be called as part of the
DTrace panic() action.

Differential Revision: https://reviews.freebsd.org/D2349
Reviewed by: avg
MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 1fe9f6f6 28-Feb-2015 Ryan Stone <rstone@FreeBSD.org>

Document the interface for defining a configuration schema

Differential Revision: https://reviews.freebsd.org/D89
Reviewed by: wblock, emaste, allanjude
MFC after: 1 month
Sponsored by: Sandvine Inc.


# e1de5723 28-Feb-2015 Ryan Stone <rstone@FreeBSD.org>

Add manpages for SR-IOV enable/disable driver interface

Differential Revision: https://reviews.freebsd.org/D75
Reviewed by: wblock
MFC after: 1 month
Sponsored by: Sandvine Inc.


# 7d971e36 28-Feb-2015 Ryan Stone <rstone@FreeBSD.org>

Document pci_iov_attach/detach in pci.9

Differential Revision: https://reviews.freebsd.org/D74
Reviewed by: bcr, wblock, emaste
MFC after: 1 month
Sponsored by: Sandvine Inc.


# 5a63bdd3 24-Jan-2015 Warner Losh <imp@FreeBSD.org>

spl man page hasn't been relevant for a while, retire it.


# a115fb62 22-Jan-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Revert for r277213:

FreeBSD developers need more time to review patches in the surrounding
areas like the TCP stack which are using MPSAFE callouts to restore
distribution of callouts on multiple CPUs.

Bump the __FreeBSD_version instead of reverting it.

Suggested by: kmacy, adrian, glebius and kib
Differential Revision: https://reviews.freebsd.org/D1438


# 1a26c3c0 15-Jan-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Major callout subsystem cleanup and rewrite:
- Close a migration race where callout_reset() failed to set the
CALLOUT_ACTIVE flag.
- Callout callback functions are now allowed to be protected by
spinlocks.
- Switching the callout CPU number cannot always be done on a
per-callout basis. See the updated timeout(9) manual page for more
information.
- The timeout(9) manual page has been updated to reflect how all the
functions inside the callout API are working. The manual page has
been made function oriented to make it easier to deduce how each of
the functions making up the callout API are working without having
to first read the whole manual page. Group all functions into a
handful of sections which should give a quick top-level overview
when the different functions should be used.
- The CALLOUT_SHAREDLOCK flag and its functionality has been removed
to reduce the complexity in the callout code and to avoid problems
about atomically stopping callouts via callout_stop(). If someone
needs it, it can be re-added. From my quick grep there are no
CALLOUT_SHAREDLOCK clients in the kernel.
- A new callout API function named "callout_drain_async()" has been
added. See the updated timeout(9) manual page for a complete
description.
- Update the callout clients in the "kern/" folder to use the callout
API properly, like cv_timedwait(). Previously there was some custom
sleepqueue code in the callout subsystem, which has been removed,
because we now allow callouts to be protected by spinlocks. This
allows us to tear down the callout like done with regular mutexes,
and a "td_slpmutex" has been added to "struct thread" to atomically
teardown the "td_slpcallout". Further the "TDF_TIMOFAIL" and
"SWT_SLEEPQTIMO" states can now be completely removed. Currently
they are marked as available and will be cleaned up in a follow up
commit.
- Bump the __FreeBSD_version to indicate kernel modules need
recompilation.
- There has been several reports that this patch "seems to squash a
serious bug leading to a callout timeout and panic".

Kernel build testing: all architectures were built
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D1438
Sponsored by: Mellanox Technologies
Reviewed by: jhb, adrian, sbruno and emaste


# 2433b5f1 25-Dec-2014 Kevin Lo <kevlo@FreeBSD.org>

Replace CC_VAR with CCV, since the CC_VAR macro doesn't exist.
While here, add MLINK for CCV.9 and DECLARE_CC_MODULE.9.


# 0341ccf2 26-Nov-2014 Enji Cooper <ngie@FreeBSD.org>

Clean up more usb related files when MK_USB == no when dealing with
manpages, libraries, and binaries


# 088b124b 25-Nov-2014 Andriy Gapon <avg@FreeBSD.org>

callout(9): add sbt flavors of callout_schedule

Differential Revision: https://reviews.freebsd.org/D1161 (partial)
Reviewed by: jhb, markj
MFC after: 1 week


# abf832a8 21-Nov-2014 Craig Rodrigues <rodrigc@FreeBSD.org>

Create a vimage.9 link to vnet.9

Requested by: glebius


# 9ca24f65 20-Nov-2014 Craig Rodrigues <rodrigc@FreeBSD.org>

MFp4: @179066

Add page which describes VNET network stack virtualization infrastructure.

Submitted by: bz
Sponsored by: The FreeBSD Foundation
Sponsored by: CK Software GmbH


# 1561b878 28-Oct-2014 Jung-uk Kim <jkim@FreeBSD.org>

Actually install casuword(9) to fix build.


# 4f3dc900 28-Oct-2014 Konstantin Belousov <kib@FreeBSD.org>

Add fueword(9) and casueword(9) functions. They are like fuword(9)
and casuword(9), but do not mix value read and indication of fault.

I know (or remember) enough assembly to handle x86 and powerpc. For
arm, mips and sparc64, implement fueword() and casueword() as wrappers
around fuword() and casuword(), which means that the functions cannot
distinguish between -1 and fault.

On architectures where fueword() and casueword() are native, implement
fuword() and casuword() using fueword() and casuword(), to reduce
assembly code duplication.

Sponsored by: The FreeBSD Foundation
Tested by: pho
MFC after: 2 weeks (ia64 needs treating)


# f0188618 21-Oct-2014 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix multiple incorrect SYSCTL arguments in the kernel:

- Wrong integer type was specified.

- Wrong or missing "access" specifier. The "access" specifier
sometimes included the SYSCTL type, which it should not, except for
procedural SYSCTL nodes.

- Logical OR where binary OR was expected.

- Properly assert the "access" argument passed to all SYSCTL macros,
using the CTASSERT macro. This applies to both static- and dynamically
created SYSCTLs.

- Properly assert the the data type for both static and dynamic
SYSCTLs. In the case of static SYSCTLs we only assert that the data
pointed to by the SYSCTL data pointer has the correct size, hence
there is no easy way to assert types in the C language outside a
C-function.

- Rewrote some code which doesn't pass a constant "access" specifier
when creating dynamic SYSCTL nodes, which is now a requirement.

- Updated "EXAMPLES" section in SYSCTL manual page.

MFC after: 3 days
Sponsored by: Mellanox Technologies


# e444e04b 22-Sep-2014 Li-Wen Hsu <lwhsu@FreeBSD.org>

Reflect the chanages in sleepqueue.h and subr_sleepqueue.c

- Priority argument is introduced to sleepq_*wait* in r177085
- sleepq_calc_signal_retval is removed from implementation
- sleepq_catch_signals is internal now

Differential Revision: https://reviews.freebsd.org/D794
Reviewed by: jhb
Approved by: jhb


# a5b1f2ab 22-Sep-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Add missing mlinks for section 9.

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# 40972ae5 18-Sep-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Add missing link to TIMEOUT_TASK_INIT(9).

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# 3fc12d24 18-Sep-2014 Edward Tomasz Napierala <trasz@FreeBSD.org>

Add missing links to taskqueue(9).

MFC after: 2 weeks
Sponsored by: The FreeBSD Foundation


# b5177e00 27-Aug-2014 Hans Petter Selasky <hselasky@FreeBSD.org>

Add description of "sysctl_remove_name()" function.


# a695d9b2 03-Aug-2014 Alan Cox <alc@FreeBSD.org>

Retire pmap_change_wiring(). We have never used it to wire virtual pages.
We continue to use pmap_enter() for that. For unwiring virtual pages, we
now use pmap_unwire(), which unwires a range of virtual addresses instead
of a single virtual page.

Sponsored by: EMC / Isilon Storage Division


# 5eb1caa8 31-Jul-2014 Hans Petter Selasky <hselasky@FreeBSD.org>

- Updated SYSCTL manual pages after recent changes to the kernel
SYSCTL code. Added description of new macros and functions.
- Merged dynamic and static SYSCTL related content into a single
manual page, hence parameters and functionality is very much the same.
- Uppercased all occurrences of "OID".
- Updated all SYSCTL examples.

PR: 192101


# 169b6a55 27-Jul-2014 Konstantin Belousov <kib@FreeBSD.org>

Remove man page for non-existent VOPs.

Sponsored by: The FreeBSD Foundation
MFC after: 3 days


# 814de630 22-Jul-2014 Sergey Kandaurov <pluknet@FreeBSD.org>

s/PCBGROUPS/PCBGROUP/ manpage to match "options PCBGROUP".


# 803b5af4 20-Jul-2014 Adrian Chadd <adrian@FreeBSD.org>

Add the PCBGROUPS manpage.

Thanks to wblock for helping me with this manpage.


# ea40a6a6 18-Jul-2014 Alan Cox <alc@FreeBSD.org>

Remove obsolete man pages. The corresponding code was removed in r255608.


# 311cacb4 18-Jul-2014 Alan Cox <alc@FreeBSD.org>

Remove an obsolete man page.


# ce5bed4b 17-Jul-2014 Alan Cox <alc@FreeBSD.org>

Add a man page for the new function pmap_unwire().


# 53cc33f6 17-Jul-2014 Alan Cox <alc@FreeBSD.org>

Remove the man page for a pmap function that no longer exists.


# cd81b88d 16-Jul-2014 Alan Cox <alc@FreeBSD.org>

Correct the name of the man page for pmap_ts_referenced().

Sponsored by: EMC / Isilon Storage Division


# 50dd6996 25-Jun-2014 Konstantin Belousov <kib@FreeBSD.org>

Add fpu_kern.9 man page to the install.

Sponsored by: The FreeBSD Foundation
MFC after: 1 week


# 0f402d00 25-Jun-2014 Kevin Lo <kevlo@FreeBSD.org>

Add m_pulldown and m_unshare to MLINKS.


# a353a594 01-Jun-2014 Benjamin Kaduk <bjk@FreeBSD.org>

Document some more socket features

Add some mention of the functions used by protocol implementations,
upcalls, and other general routines.

Not all functionality is documented; in particular:
o the *at() variants, which are useful only for implementing the
corresponding syscalls.
o soconnect2(), also only used to implement a syscall (socketpair()).
o sockargs(), which is essentually unused and only tangentially
socket-related.
o selsocket(), which is commented as being present solely for use by
netncp and netsmb.
o getsockaddr(), which is just a convenience shortcut for copyin().

Reviewed by: jhb (previous version)
Approved by: hrs (mentor)


# 17f494c0 03-May-2014 Sergey Kandaurov <pluknet@FreeBSD.org>

Documented the pget(9) system kernel interface.

Reviewed by: trociny, kib
MFC after: 1 week


# 18f169af 30-Apr-2014 Kevin Lo <kevlo@FreeBSD.org>

Document m_get2().

Reviewed by: glebius


# cb03508f 14-Feb-2014 Andriy Gapon <avg@FreeBSD.org>

update taskqueue(9) manual page

Many thanks to bjk, gjb and pluknet for improvements and suggestions.

MFC after: 5 days
Sponsored by: HybridCluster


# c671cca4 30-Jan-2014 John-Mark Gurney <jmg@FreeBSD.org>

add a few missing links...

Submitted by: J David
MFC after: 1 week


# 52b7bca6 28-Jan-2014 John-Mark Gurney <jmg@FreeBSD.org>

link mbuf to m_append so it can be found...

Pointed out by: J David
MFC after: 1 week


# fb6c2518 12-Jan-2014 Bryan Venteicher <bryanv@FreeBSD.org>

Add sglist_append_bio(9) to append a struct bio's data to a sglist

Reviewed by: jhb, kib (long ago)


# 5c35eb22 20-Dec-2013 John-Mark Gurney <jmg@FreeBSD.org>

document the m_getjcl function...


# 2d8b5d8d 22-Oct-2013 Eitan Adler <eadler@FreeBSD.org>

Add missing symlinks for the sbuf man page


# fa24b620 22-Oct-2013 John Baldwin <jhb@FreeBSD.org>

Add a manpage for the getenv() family of functions in the kernel.


# ea41f49f 07-Oct-2013 John Baldwin <jhb@FreeBSD.org>

Add manpages for VOP_ADVISE() and VOP_ALLOCATE().

Approved by: re (gjb)


# 60a77442 12-Sep-2013 John Baldwin <jhb@FreeBSD.org>

- Document the UQUAD sysctl variants.
- Clarify that exactly one of the "access" flags is required and
list the optional flags in a separate list. Prefer bundling
CTLFLAG_TUN into the access flag by not documenting it as an
optional flag to set.

Approved by: re (glebius)
MFC after: 1 week


# 7f3bdd08 04-Sep-2013 John-Mark Gurney <jmg@FreeBSD.org>

add links for the various vmem functions...


# 0c436740 26-Aug-2013 Antoine Brodin <antoine@FreeBSD.org>

Hook vm_page_busy.9 to the build


# c7aebda8 09-Aug-2013 Attilio Rao <attilio@FreeBSD.org>

The soft and hard busy mechanism rely on the vm object lock to work.
Unify the 2 concept into a real, minimal, sxlock where the shared
acquisition represent the soft busy and the exclusive acquisition
represent the hard busy.
The old VPO_WANTED mechanism becames the hard-path for this new lock
and it becomes per-page rather than per-object.
The vm_object lock becames an interlock for this functionality:
it can be held in both read or write mode.
However, if the vm_object lock is held in read mode while acquiring
or releasing the busy state, the thread owner cannot make any
assumption on the busy state unless it is also busying it.

Also:
- Add a new flag to directly shared busy pages while vm_page_alloc
and vm_page_grab are being executed. This will be very helpful
once these functions happen under a read object lock.
- Move the swapping sleep into its own per-object flag

The KPI is heavilly changed this is why the version is bumped.
It is very likely that some VM ports users will need to change
their own code.

Sponsored by: EMC / Isilon storage division
Discussed with: alc
Reviewed by: jeff, kib
Tested by: gavin, bapt (older version)
Tested by: pho, scottl


# f1bd6606 25-Jul-2013 Brooks Davis <brooks@FreeBSD.org>

Document the sbinuptime() and getsbinuptime() functions introduced in
r247452.

Sponsored by: DARPA, AFRL


# 1b746e62 12-Jul-2013 Gleb Smirnoff <glebius@FreeBSD.org>

Add manual page for vmem(9). Obtained from NetBSD, modified to match
our implementation.

Obtained from: NetBSD


# 98491bfa 06-Jul-2013 Mark Johnston <markj@FreeBSD.org>

Add a man page for the SDT_* macros, which can be used to define new static
DTrace probes and providers in kernel code.

MFC after: 1 week


# cd32bd7a 25-Jun-2013 John Baldwin <jhb@FreeBSD.org>

Several improvements to rmlock(9). Many of these are based on patches
provided by Isilon.
- Add an rm_assert() supporting various lock assertions similar to other
locking primitives. Because rmlocks track readers the assertions are
always fully accurate unlike rw_assert() and sx_assert().
- Flesh out the lock class methods for rmlocks to support sleeping via
condvars and rm_sleep() (but only while holding write locks), rmlock
details in 'show lock' in DDB, and the lc_owner method used by
dtrace.
- Add an internal destroyed cookie so that API functions can assert
that an rmlock is not destroyed.
- Make use of rm_assert() to add various assertions to the API (e.g.
to assert locks are held when an unlock routine is called).
- Give RM_SLEEPABLE locks their own lock class and always use the
rmlock's own lock_object with WITNESS.
- Use THREAD_NO_SLEEPING() / THREAD_SLEEPING_OK() to disallow sleeping
while holding a read lock on an rmlock.

Submitted by: andre
Obtained from: EMC/Isilon


# 40670f19 16-Jun-2013 Xin LI <delphij@FreeBSD.org>

Remove vfs_mount(9), it have been died since 2004.

Noticed by: git via alfred
MFC after: 2 weeks


# 4e76af6a 08-Apr-2013 Gleb Smirnoff <glebius@FreeBSD.org>

Merge from projects/counters: counter(9).

Introduce counter(9) API, that implements fast and raceless counters,
provided (but not limited to) for gathering of statistical data.

See http://lists.freebsd.org/pipermail/freebsd-arch/2013-April/014204.html
for more details.

In collaboration with: kib
Reviewed by: luigi
Tested by: ae, ray
Sponsored by: Nginx, Inc.


# bf1fc2c2 04-Mar-2013 Davide Italiano <davide@FreeBSD.org>

MFcalloutng:
Dcoument the new functions added to condvar(9), sleep(9), sleepqueue(9)
KPIs. Also document recent changes in timeout(9) and eventtimers(4).


# aef49b2b 06-Dec-2012 Kevin Lo <kevlo@FreeBSD.org>

Document pffinddomain().

Reviewed by: glebius


# 207c7ec8 30-Oct-2012 Edward Tomasz Napierala <trasz@FreeBSD.org>

Document disk_resize(9).


# 5050aa86 22-Oct-2012 Konstantin Belousov <kib@FreeBSD.org>

Remove the support for using non-mpsafe filesystem modules.

In particular, do not lock Giant conditionally when calling into the
filesystem module, remove the VFS_LOCK_GIANT() and related
macros. Stop handling buffers belonging to non-mpsafe filesystems.

The VFS_VERSION is bumped to indicate the interface change which does
not result in the interface signatures changes.

Conducted and reviewed by: attilio
Tested by: pho


# f2560cec 21-Aug-2012 John Baldwin <jhb@FreeBSD.org>

Add a manpage for BUS_CHILD_DETACHED().


# 6f7d0018 21-Aug-2012 John Baldwin <jhb@FreeBSD.org>

Add a BUS_CHILD_DELETED() method that a bus can hook to allow it to cleanup
any bus-specific state (such as ivars) when a child device is deleted.

Requested by: kan
MFC after: 1 month


# 988a1851 21-Aug-2012 John Baldwin <jhb@FreeBSD.org>

Document DRIVER_MODULE_ORDERED, EARLY_DRIVER_MODULE, and
EARLY_DRIVER_MODULE_ORDERED.


# eb55f31b 19-Apr-2012 Sergey Kandaurov <pluknet@FreeBSD.org>

Document swi_remove(9).

Reviewed by: jhb
MFC after: 1 week


# b25711e6 26-Mar-2012 Alexander V. Chernikov <melifaro@FreeBSD.org>

- Add knlist_init_rw_reader() function to kqueue(9).
Function acquired reader lock if needed.
Assert check for reader or writer lock (RA_LOCKED / RA_UNLOCKED)
- While here, add knlist_init_mtx.9 to MLINKS and fix some style(9) issues

Reviewed by: glebius
Approved by: ae(mentor)

MFC after: 2 weeks


# 68bf9717 04-Mar-2012 John Baldwin <jhb@FreeBSD.org>

Document pci_find_extcap() and pci_find_htcap().


# 855ed4c5 03-Mar-2012 John Baldwin <jhb@FreeBSD.org>

Expand and reorganize the pci(9) manpage a bit:
- Document the following routines: pci_alloc_msi(), pci_alloc_msix(),
pci_find_cap(), pci_get_max_read_req(), pci_get_vpd_ident(),
pci_get_vpd_readonly(), pci_msi_count(), pci_msix_count(),
pci_pending_msix(), pci_release_msi(), pci_remap_msix(), and
pci_set_max_read_req().
- Group the functions into five sub-sections: raw configuration access,
locating devices, device information, device configuration, and
message signaled interrupts.
- Discourage use of pci_disable_io() and pci_enable_io() in device drivers.
The PCI bus driver handles this automatically as resources are activated.

MFC after: 2 weeks


# 9415d1e0 01-Mar-2012 John Baldwin <jhb@FreeBSD.org>

Add pci_save_state() and pci_restore_state() wrappers around
pci_cfg_save() and pci_cfg_restore() for device drivers to use when
saving and restoring state (e.g. to handle device-specific resets).

Reviewed by: imp
MFC after: 2 weeks


# 6bdc1841 23-Feb-2012 Christian Brueffer <brueffer@FreeBSD.org>

Catch up with r195837 (2.5 years ago) which renamed net_add_domain() to domain_add().

PR: 165424
Submitted by: Lachlan Kang
MFC after: 1 week


# 35f8bc5f 30-Jan-2012 Christian Brueffer <brueffer@FreeBSD.org>

Manpages for the buf_ring and drbr interfaces.

Submitted by: kmacy (aeons ago)
MFC after: 1 week


# 194cef31 01-Jan-2012 Ed Schouten <ed@FreeBSD.org>

Fix sloppyness in memcchr() man page.

I was considering adding it to libc as well, but last minute I thought
it would be good enough to add it to libkern exclusively. I forgot to
rename the man page and hook it up.


# f42acd0f 20-Dec-2011 Alexander Motin <mav@FreeBSD.org>

Add eventtimers(9) man page, describing related KPIs.

Sponsored by: iXsystems, Inc.
MFC after: 1 month


# a7f5f794 19-Dec-2011 John Baldwin <jhb@FreeBSD.org>

Add a TASK_INITIALIZER() macro that can be used to statically
initialize a task structure.

Reviewed by: gj
MFC after: 2 weeks


# fb680e16 14-Dec-2011 John Baldwin <jhb@FreeBSD.org>

Add a helper API to allow in-kernel code to map portions of shared memory
objects created by shm_open(2) into the kernel's address space. This
provides a convenient way for creating shared memory buffers between
userland and the kernel without requiring custom character devices.


# c62cf1f7 14-Dec-2011 Gleb Smirnoff <glebius@FreeBSD.org>

More MLINKS for rtalloc.9


# d7ecd801 15-Nov-2011 Marius Strobl <marius@FreeBSD.org>

As it turns out, r186347 actually is insufficient to avoid the use of the
curthread-accessing part of mtx_{,un}lock(9) when using a r210623-style
curthread implementation on sparc64, crashing the kernel in its early
cycles as PCPU isn't set up, yet (and can't be set up as OFW is one of the
things we need for that, which leads to a chicken-and-egg problem). What
happens is that due to the fact that the idea of r210623 actually is to
allow the compiler to cache invocations of curthread, it factors out
obtaining curthread needed for both mtx_lock(9) and mtx_unlock(9) to
before the branch based on kobj_mutex_inited when compiling the kernel
without the debugging options. So change kobj_class_compile_static(9)
to just never acquire kobj_mtx, effectively restricting it to its
documented use, and add a kobj_init_static(9) for initializing objects
using a class compiled with the former and that also avoids using mutex(9)
(and malloc(9)). Also assert in both of these functions that they are
used in their intended way only.
While at it, inline kobj_register_method() and kobj_unregister_method()
as there wasn't much point for factoring them out in the first place
and so that a reader of the code has to figure out the locking for
fewer functions missing a KOBJ_ASSERT.
Tested on powerpc{,64} by andreast.

Reviewed by: nwhitehorn (earlier version), jhb
MFC after: 3 days


# 4c7ad483 07-Oct-2011 Dag-Erling Smørgrav <des@FreeBSD.org>

Mention tdsignal(9).

MFC after: 1 week


# f772f9fe 14-Sep-2011 Lawrence Stewart <lstewart@FreeBSD.org>

Rename the cc.4 and cc.9 modular congestion control related man pages to
mod_cc.4 and mod_cc.9 respectively to avoid any possible confusion with the cc.1
gcc man page. Update references to these man pages where required.

Requested by: Grenville Armitage
Approved by: re (kib)
MFC after: 3 days


# 43fae19e 06-Sep-2011 Konstantin Belousov <kib@FreeBSD.org>

Document vm_page_aflag_set(9), vm_page_aflag_clear(9) and vm_page_reference(9).
Retire vm_page_flag_set() and vm_page_flag_clear() functions.

Reviewed by: alc
Approved by: re (bz)


# 04114c5e 27-Aug-2011 Christian Brueffer <brueffer@FreeBSD.org>

Remove information and MLINK for MULTI_DRIVER_MODULE().
The macro was removed in r121129 almost 8 years ago.

PR: 150244
Submitted by: Gireesh Nagabhushana <dngireesh@avrita.com>
Approved by: re (kib)


# 1c93fd20 25-Aug-2011 Attilio Rao <attilio@FreeBSD.org>

Fix an error in the generation of the manpage after r225177.

Sponsored by: Sandvine Incorporated
Submitted by: jkim
Approved by: re (bz)
MFC after: 3 weeks
X-MFC: r225177


# 6aba400a 25-Aug-2011 Attilio Rao <attilio@FreeBSD.org>

Fix a deficiency in the selinfo interface:
If a selinfo object is recorded (via selrecord()) and then it is
quickly destroyed, with the waiters missing the opportunity to awake,
at the next iteration they will find the selinfo object destroyed,
causing a PF#.

That happens because the selinfo interface has no way to drain the
waiters before to destroy the registered selinfo object. Also this
race is quite rare to get in practice, because it would require a
selrecord(), a poll request by another thread and a quick destruction
of the selrecord()'ed selinfo object.

Fix this by adding the seldrain() routine which should be called
before to destroy the selinfo objects (in order to avoid such case),
and fix the present cases where it might have already been called.
Sometimes, the context is safe enough to prevent this type of race,
like it happens in device drivers which installs selinfo objects on
poll callbacks. There, the destruction of the selinfo object happens
at driver detach time, when all the filedescriptors should be already
closed, thus there cannot be a race.
For this case, mfi(4) device driver can be set as an example, as it
implements a full correct logic for preventing this from happening.

Sponsored by: Sandvine Incorporated
Reported by: rstone
Tested by: pluknet
Reviewed by: jhb, kib
Approved by: re (bz)
MFC after: 3 weeks


# 1794df1f 09-Jul-2011 Alan Cox <alc@FreeBSD.org>

vm_map_clean() was long ago renamed to vm_map_sync(). Also, it no longer
acquires Giant.

MFC after: 1 week


# fdbf90bc 09-Jul-2011 Alan Cox <alc@FreeBSD.org>

Remove manual pages for functions that no longer exist.

MFC after: 1 week


# 6847f7cf 09-Jul-2011 Konstantin Belousov <kib@FreeBSD.org>

Document copyin_nofault, copyout_nofault, uiomove_nofault.

Submitted by: alc


# 930c182a 18-Jun-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

Install symlinks for m_tag_* mbuf tag functions to the mbuf_tags.9 man page.

MFC after: 1 week


# 35bb0162 05-May-2011 Andrey V. Elsukov <ae@FreeBSD.org>

Add make_dev_alias_p to MLINKS.

Pointed out by: pjd
MFC after: 2 weeks


# 85ee63c9 29-Apr-2011 John Baldwin <jhb@FreeBSD.org>

Add a new bus method, BUS_ADJUST_RESOURCE() that is intended to be a
wrapper around rman_adjust_resource(). Include a generic implementation,
bus_generic_adjust_resource() which passes the request up to the parent
bus. There is currently no default implementation. A
bus_adjust_resource() wrapper is provided for use in drivers.


# bb82622c 29-Apr-2011 John Baldwin <jhb@FreeBSD.org>

Extend the rman(9) API to support altering an existing resource.
Specifically, these changes allow a resource to back a relocatable and
resizable resource such as the I/O window decoders in PCI-PCI bridges.
- rman_adjust_resource() can adjust the start and end address of an
existing resource. It only succeeds if the newly requested address
space is already free. It also supports shrinking a resource in
which case the freed space will be marked unallocated in the rman.
- rman_first_free_region() and rman_last_free_region() return the
start and end addresses for the first or last unallocated region in
an rman, respectively. This can be used to determine by how much
the resource backing an rman must be adjusted to accomodate an
allocation request that does not fit into the existing rman.

While here, document the rm_start and rm_end fields in struct rman,
rman_is_region_manager(), the bound argument to
rman_reserve_resource_bound(), and rman_init_from_resource().


# 5d80bf64 26-Apr-2011 Dag-Erling Smørgrav <des@FreeBSD.org>

Rename alloc_unr(9) to unr(9) and adjust the links accordingly.

MFC after: 3 weeks


# 29f269dc 21-Feb-2011 Lawrence Stewart <lstewart@FreeBSD.org>

Final commit to round out the "Five New TCP Congestion Control Algorithms for
FreeBSD" FreeBSD Foundation funded project.

- Add new man pages for the modular congestion control, Khelp and Hhook
frameworks (cc.4, cc.9, khelp.9 and hhook.9).

- Add new man pages for each available congestion control algorithm (cc_chd.4,
cc_cubic.4, cc_hd.4, cc_htcp.4, cc_newreno.4 and cc_vegas.4).

- Add a new man page for the Enhanced Round Trip Time (ERTT) Khelp module
(h_ertt.4).

- Update the TCP (tcp.4) man page to mention the TCP_CONGESTION socket option,
cross reference to cc.4 and remove references to the retired
"net.inet.tcp.newreno" sysctl MIB variable.

In collaboration with: David Hayes <dahayes at swin edu au> and
Grenville Armitage <garmitage at swin edu au>
Sponsored by: FreeBSD Foundation
MFC after: 3 months


# 7c2dd57b 25-Jan-2011 Matthew D Fleming <mdf@FreeBSD.org>

Document sbuf_new_for_sysctl(9).

Pointed out by: lstewart


# f8e4b4ef 19-Jan-2011 Matthew D Fleming <mdf@FreeBSD.org>

sysctl(8) should use the CTLTYPE to determine the type of data when
reading. (This was already done for writing to a sysctl). This
requires all SYSCTL setups to specify a type. Most of them are now
checked at compile-time.

Remove SYSCTL_*X* sysctl additions as the print being in hex should be
controlled by the -x flag to sysctl(8).

Succested by: bde


# 4a2b56eb 05-Jan-2011 Lawrence Stewart <lstewart@FreeBSD.org>

Add a man page for the Object Specific Data (OSD) KPI.

Although not directly related the FreeBSD Foundation funded "Five New TCP
Congestion Control Algorithms for FreeBSD" project, the understanding and
inspiration required to write this documentation was significantly bolstered
by the Foundation's support.

Reviewed by: pjd
MFC after: 1 week


# c529e287 06-Dec-2010 John Baldwin <jhb@FreeBSD.org>

Add a manpage for SYSINIT() and SYSUNINIT().

PR: docs/132884
Submitted by: pluknet, hmp


# 396a7f50 11-Nov-2010 Sergey Kandaurov <pluknet@FreeBSD.org>

Stop documenting vgonel() after its converting to the static function:
svn r147332 (by jeff): "Don't make vgonel() globally visible".
While here, specify the vnode locking scheme for vgone().

Discussed on: freebsd-hackers@
Approved by: kib (mentor)
MFC after: 10 days


# f46276a9 08-Nov-2010 Matthew D Fleming <mdf@FreeBSD.org>

Add a taskqueue_cancel(9) to cancel a pending task without waiting for
it to run as taskqueue_drain(9) does.

Requested by: hselasky
Original code: jeff
Reviewed by: jhb
MFC after: 2 weeks


# f36575b5 24-Oct-2010 Jaakko Heinonen <jh@FreeBSD.org>

Document make_dev_p(9).

Reviewed by: brueffer, kib


# 7f0ab7f0 20-Oct-2010 Andriy Gapon <avg@FreeBSD.org>

catch up manual pages with rename of vm_page_sleep_busy to vm_page_sleep_if_busy

Suggested by: alc
MFC after: 4 days


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# ad4f4b2b 17-Oct-2010 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Update links for taskqueue(9) functions.


# 251e7dbf 17-Oct-2010 Konstantin Belousov <kib@FreeBSD.org>

Document vunref(9), add some important notes for vrele(9) and vput(9).
Merge all three manpages to one, removing separate file for vput(9).

MFC after: 1 week


# 4d369413 10-Sep-2010 Matthew D Fleming <mdf@FreeBSD.org>

Replace sbuf_overflowed() with sbuf_error(), which returns any error
code associated with overflow or with the drain function. While this
function is not expected to be used often, it produces more information
in the form of an errno that sbuf_overflowed() did.


# 4351ba27 09-Sep-2010 Matthew D Fleming <mdf@FreeBSD.org>

Add drain functionality to sbufs. The drain is a function that is
called when the sbuf internal buffer is filled. For kernel sbufs with a
drain, the internal buffer will never be expanded. For userland sbufs
with a drain, the internal buffer may still be expanded by
sbuf_[v]printf(3).

Sbufs now have three basic uses:
1) static string manipulation. Overflow is marked.
2) dynamic string manipulation. Overflow triggers string growth.
3) drained string manipulation. Overflow triggers draining.

In all cases the manipulation is 'safe' in that overflow is detected and
managed.

Reviewed by: phk (the previous version)


# 36058c09 01-Sep-2010 Max Laier <mlaier@FreeBSD.org>

rmlock(9) two additions and one change/fix:
- add rm_try_rlock().
- add RM_SLEEPABLE to use sx(9) as the back-end lock in order to sleep while
holding the write lock.
- change rm_noreadtoken to a cpu bitmask to indicate which CPUs need to go
through the lock/unlock in order to synchronize. As a side effect, this
also avoids IPI to CPUs without any readers during rm_wlock.

Discussed with: ups@, rwatson@ on arch@
Sponsored by: Isilon Systems, Inc.


# cd1c27af 22-Aug-2010 Ed Schouten <ed@FreeBSD.org>

Add missing mlink for insmntque1().

MFC after: 1 week


# 6a8d8aa1 15-Aug-2010 Christian Brueffer <brueffer@FreeBSD.org>

Tie up some loose ends r88509 left behind:

- chooseproc() is long gone, MLINK choosethread instead
- Update NAME section for choosethread
- Mark chooseproc.9 for removal

PR: 149549
Submitted by: pluknet
MFC after: 1 week


# 6da339ce 06-Aug-2010 Stefan Farfeleder <stefanf@FreeBSD.org>

Add links for destroy_dev_drain, destroy_dev_sched, destroy_dev_sched_cb,
make_dev_cred and make_dev_credf.


# 13c02cbb 05-Jul-2010 Jaakko Heinonen <jh@FreeBSD.org>

Extend the kernel unit number allocator for allocating specific unit
numbers. This change adds a new function alloc_unr_specific() which
returns the requested unit number if it is free. If the number is
already allocated or out of the range, -1 is returned.

Update alloc_unr(9) manual page accordingly and add a MLINK for
alloc_unr_specific(9).

Discussed on: freebsd-hackers


# 90a7b167 27-Mar-2010 Edward Tomasz Napierala <trasz@FreeBSD.org>

MFC r197780:

Make fetch(9) and store(9) manual pages closer to reality.


# 90d59271 27-Mar-2010 Edward Tomasz Napierala <trasz@FreeBSD.org>

MFC r197405, missing part:

Add pieces of infrastructure required for NFSv4 ACL support in UFS.

Reviewed by: rwatson


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# 7b10638c 21-Jan-2010 John Baldwin <jhb@FreeBSD.org>

MFC 198134,198149,198170,198171,198391,200948:
Add a facility for associating optional descriptions with active interrupt
handlers. This is primarily intended as a way to allow devices that use
multiple interrupts (e.g. MSI) to meaningfully distinguish the various
interrupt handlers.
- Add a new BUS_DESCRIBE_INTR() method to the bus interface to associate
a description with an active interrupt handler setup by BUS_SETUP_INTR.
It has a default method (bus_generic_describe_intr()) which simply passes
the request up to the parent device.
- Add a bus_describe_intr() wrapper around BUS_DESCRIBE_INTR() that supports
printf(9) style formatting using var args.
- Reserve MAXCOMLEN bytes in the intr_handler structure to hold the name of
an interrupt handler and copy the name passed to intr_event_add_handler()
into that buffer instead of just saving the pointer to the name.
- Add a new intr_event_describe_handler() which appends a description string
to an interrupt handler's name.
- Implement support for interrupt descriptions on amd64, i386, and sparc64 by
having the nexus(4) driver supply a custom bus_describe_intr method that
invokes a new intr_describe() MD routine which in turn looks up the
associated interrupt event and invokes intr_event_describe_handler().


# 37c002fa 19-Jan-2010 John Baldwin <jhb@FreeBSD.org>

MFC 202284,202650:
- Update required headers for namei() to add <sys/fcntl.h> and remove
<sys/proc.h>.
- Add RETURN VALUES and ERROR sections for namei()'s error return values.
- Add a missing link to NDHASGIANT.9.


# 6849f8d7 19-Jan-2010 John Baldwin <jhb@FreeBSD.org>

Sort NDHASGIANT.9 link properly.


# 94fa222a 14-Jan-2010 John Baldwin <jhb@FreeBSD.org>

- Update required headers for namei() to add <sys/fcntl.h> and remove
<sys/proc.h>.
- Add RETURN VALUES and ERROR sections for namei()'s error return values.
- Add a missing link to NDHASGIANT.9.

PR: docs/142815, docs/142816
Submitted by: Lachlan Kang (1, 2)
MFC after: 3 days


# 7f3c22be 22-Dec-2009 Ruslan Ermilov <ru@FreeBSD.org>

Removed duplicate usbd_xfer_state(9) link.


# b4dfd2d9 22-Dec-2009 Ruslan Ermilov <ru@FreeBSD.org>

Sort mlinks.


# 66a48b98 05-Nov-2009 Ed Maste <emaste@FreeBSD.org>

MFC r198518:

Add link for callout_schedule(9).


# a74a662b 29-Oct-2009 John Baldwin <jhb@FreeBSD.org>

MFC 198085:
Add a manual page for BUS_BIND_INTR() and bus_bind_intr().


# e04cb6af 27-Oct-2009 Ed Maste <emaste@FreeBSD.org>

Add link for callout_schedule(9).


# 37b8ef16 15-Oct-2009 John Baldwin <jhb@FreeBSD.org>

Add a facility for associating optional descriptions with active interrupt
handlers. This is primarily intended as a way to allow devices that use
multiple interrupts (e.g. MSI) to meaningfully distinguish the various
interrupt handlers.
- Add a new BUS_DESCRIBE_INTR() method to the bus interface to associate
a description with an active interrupt handler setup by BUS_SETUP_INTR.
It has a default method (bus_generic_describe_intr()) which simply passes
the request up to the parent device.
- Add a bus_describe_intr() wrapper around BUS_DESCRIBE_INTR() that supports
printf(9) style formatting using var args.
- Reserve MAXCOMLEN bytes in the intr_handler structure to hold the name of
an interrupt handler and copy the name passed to intr_event_add_handler()
into that buffer instead of just saving the pointer to the name.
- Add a new intr_event_describe_handler() which appends a description string
to an interrupt handler's name.
- Implement support for interrupt descriptions on amd64 and i386 by having
the nexus(4) driver supply a custom bus_describe_intr method that invokes
a new intr_describe() MD routine which in turn looks up the associated
interrupt event and invokes intr_event_describe_handler().

Requested by: many
Reviewed by: scottl
MFC after: 2 weeks


# 27831515 14-Oct-2009 John Baldwin <jhb@FreeBSD.org>

Add a manual page for BUS_BIND_INTR() and bus_bind_intr().

MFC after: 1 week


# 55b95b33 05-Oct-2009 Edward Tomasz Napierala <trasz@FreeBSD.org>

Make fetch(9) and store(9) manual pages closer to reality.


# a9315dde 22-Sep-2009 Edward Tomasz Napierala <trasz@FreeBSD.org>

Add pieces of infrastructure required for NFSv4 ACL support in UFS.

Reviewed by: rwatson


# e181d489 04-Sep-2009 Julian Elischer <julian@FreeBSD.org>

MFC r196450

Add clarifications to the kproc and kthread manpages and link
the kthread_create(9) man page to the kproc(9) page as it has migrated and
people looking for it may need a hand to find its new name.

Approved by: re (kib)


# 58cf5c84 23-Aug-2009 Julian Elischer <julian@FreeBSD.org>

Add claraifications to the kproc and kthread manpages and link
the kthread_create(9) man page to the kproc(9) page as it had migrated and
people looking for it may need a hand to find its new name.

MFC after: 1 week


# 49b62b28 12-Aug-2009 Sam Leffler <sam@FreeBSD.org>

MFC 196155:
First (early) draft of net80211 documentation. Note this is
focused on driver writers (as opposed to folks adding to net80211).

Reviewed by: wkoszek
Approved by: re (rwatson)


# 692eebe0 12-Aug-2009 Sam Leffler <sam@FreeBSD.org>

First (early) draft of net80211 documentation. Note this is
focused on driver writers (as opposed to folks adding to net80211).

Reviewed by: wkoszek
Approved by: re (rwatson)


# 383334b3 11-Jul-2009 Colin Percival <cperciva@FreeBSD.org>

Fix typo: kproc_resume,.9 -> kproc_resume.9.

Approved by: re (kib)


# b35f050e 24-Jun-2009 Andrew Thompson <thompsa@FreeBSD.org>

Move programming info from usb(4) to usbdi(9) and update for the usb stack
changeover. Needs much more content still.


# 7adb51ac 09-Jun-2009 Warner Losh <imp@FreeBSD.org>

These are no longer public, so remove the man page.


# 4ef60d26 09-Jun-2009 John Baldwin <jhb@FreeBSD.org>

Add support for multiple passes of the device tree during the boot-time
probe. The current device order is unchanged. This commit just adds the
infrastructure and ABI changes so that it is easier to merge later changes
into 8.x.
- Driver attachments now have an associated pass level. Attachments are
not allowed to probe or attach to drivers until the system-wide pass level
is >= the attachment's pass level. By default driver attachments use the
"last" pass level (BUS_PASS_DEFAULT). Driver's that wish to probe during
an earlier pass use EARLY_DRIVER_MODULE() instead of DRIVER_MODULE() which
accepts the pass level as an additional parameter.
- A new method BUS_NEW_PASS has been added to the bus interface. This
method is invoked when the system-wide pass level is changed to kick off
a rescan of the device tree so that drivers that have just been made
"eligible" can probe and attach.
- The bus_generic_new_pass() function provides a default implementation of
BUS_NEW_PASS(). It first allows drivers that were just made eligible for
this pass to identify new child devices. Then it propogates the rescan to
child devices that already have an attached driver by invoking their
BUS_NEW_PASS() method. It also reprobes devices without a driver.
- BUS_PROBE_NOMATCH() is only invoked for devices that do not have
an attached driver after being scanned during the final pass.
- The bus_set_pass() function is used during boot to raise the pass level.
Currently it is only called once during root_bus_configure() to raise
the pass level to BUS_PASS_DEFAULT. This has the effect of probing all
devices in a single pass identical to previous behavior.

Reviewed by: imp
Approved by: re (kib)


# 3c9c33bb 07-Jun-2009 Robert Watson <rwatson@FreeBSD.org>

Add beginnings of a netisr(9) man page.


# b36cfff7 01-Jun-2009 John Baldwin <jhb@FreeBSD.org>

Add a simple API to manage scatter/gather lists of phyiscal addresses.
Each list describes a logical memory object that is backed by one or more
physical address ranges. To minimize locking, the sglist objects
themselves are immutable once they are shared.

These objects may be used in the future to facilitate I/O requests using
physically-addressed buffers. For the immediate future I plan to use them
to implement a new type of VM object and pager.

Reviewed by: jeff, scottl
MFC after: 1 month


# c97fcdba 30-May-2009 Edward Tomasz Napierala <trasz@FreeBSD.org>

Add VOP_ACCESSX, which can be used to query for newly added V*
permissions, such as VWRITE_ACL. For a filsystems that don't
implement it, there is a default implementation, which works
as a wrapper around VOP_ACCESS.

Reviewed by: rwatson@


# cfeb7489 27-May-2009 Zachary Loafman <zml@FreeBSD.org>

fail(9) support:

Add support for kernel fault injection using KFAIL_POINT_* macros and
fail_point_* infrastructure. Add example fail point in vfs_bio.c to
simulate VM buf pressure.

Approved by: dfr (mentor)


# cd5213b9 10-Apr-2009 Robert Watson <rwatson@FreeBSD.org>

Remove VOP_LEASE(9) man page, as we no longer have a VOP_LEASE() in the
kernel.


# 497435aa 30-Mar-2009 John Baldwin <jhb@FreeBSD.org>

Add a simple manage for the refcount(9) API.

Requested by: rwatson


# f86bce5e 02-Mar-2009 Jamie Gritton <jamie@FreeBSD.org>

Extend the "vfsopt" mount options for more general use. Make struct
vfsopt and the vfs_buildopts function public, and add some new fields
to struct vfsopt (pos and seen), and new functions vfs_getopt_pos and
vfs_opterror.

Further extend the interface to allow reading options from the kernel
in addition to sending them to the kernel, with vfs_setopt and related
functions.

While this allows the "name=value" option interface to be used for more
than just FS mounts (planned use is for jails), it retains the current
"vfsopt" name and <sys/mount.h> requirement.

Approved by: bz (mentor)


# cbc1fff1 22-Feb-2009 Edward Tomasz Napierala <trasz@FreeBSD.org>

Mention disk_gone() in disk(9).

Approved by: rwatson (mentor)


# 7d5336f0 11-Dec-2008 Joe Marcus Clarke <marcus@FreeBSD.org>

Add a man page for VOP_VPTOCNP.

Reviewed by: arch
Approved by: kib


# a4ede73a 23-Nov-2008 Hiroki Sato <hrs@FreeBSD.org>

Remove vfs_mountedon(9) manual page. The vfs_mountedon(9) has been
removed since 2004.


# 1ede983c 23-Oct-2008 Dag-Erling Smørgrav <des@FreeBSD.org>

Retire the MALLOC and FREE macros. They are an abomination unto style(9).

MFC after: 3 months


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 66c6ebfe 28-Sep-2008 Ed Schouten <ed@FreeBSD.org>

Several documentation fixups related to device minor/major numbers:

- Document the minor(3), major(3) and makedev(3) macro's. They also
apply to umajor() and uminor() in the kernel, but hopefully we'll sort
that out one day.

- Briefly dev2unit() inside the make_dev(9) manual page, since this is
now the preferred macro to obtain character device unit numbers inside
the kernel.

- Remove the device_ids(9) manual page. It contains highly inaccurate
information, such as a description of the nonexistent major().


# cecd8edb 17-Sep-2008 Attilio Rao <attilio@FreeBSD.org>

Remove the suser(9) interface from the kernel. It has been replaced from
years by the priv_check(9) interface and just very few places are left.
Note that compatibility stub with older FreeBSD version
(all above the 8 limit though) are left in order to reduce diffs against
old versions. It is responsibility of the maintainers for any module, if
they think it is the case, to axe out such cases.

This patch breaks KPI so __FreeBSD_version will be bumped into a later
commit.

This patch needs to be credited 50-50 with rwatson@ as he found time to
explain me how the priv_check() works in detail and to review patches.

Tested by: Giovanni Trematerra <giovanni dot trematerra at gmail dot com>
Reviewed by: rwatson


# 5a2637d2 15-Sep-2008 Sam Leffler <sam@FreeBSD.org>

decription of macros to add ddb commands

Submitted by: Guillaume Ballet <gballet@gmail.com>
MFC after: 1 month


# dcd8bc9a 15-Sep-2008 Konstantin Belousov <kib@FreeBSD.org>

Connect dev_clone.9 and devfs_set_cdevpriv.9 to the build.


# 9c8d21f9 28-Aug-2008 Jung-uk Kim <jkim@FreeBSD.org>

Add links to all bpf(9) functions.


# 167fcf05 18-Jul-2008 David Malone <dwmalone@FreeBSD.org>

Add a man page for the DNS accept filter.


# 72e70f4e 22-May-2008 Alan Cox <alc@FreeBSD.org>

The function pmap_addr_hint no longer exists. Remove its man page.


# 48a12f89 06-Apr-2008 Attilio Rao <attilio@FreeBSD.org>

Commit manpages for lockmgr_args_rw(9) and lockmgr_rw(9).


# c709e029 01-Apr-2008 Attilio Rao <attilio@FreeBSD.org>

Add manpages for rw_try_rlock() and rw_try_wlock() functions.


# b4b811fa 28-Mar-2008 Christian Brueffer <brueffer@FreeBSD.org>

Document lockmgr_waiters(9).

Reviewed by: attilio


# b9a98037 14-Mar-2008 Robert Watson <rwatson@FreeBSD.org>

Add stack_print_ddb() to the synposis of stack(9), add mlink for it; fix
stack_print(9) mlink.

Spotted by: attilio


# 8e6fdb9e 01-Mar-2008 Attilio Rao <attilio@FreeBSD.org>

Connect lockmgr_args(9) to the build.


# 6e8ded9f 26-Feb-2008 Chad David <davidc@FreeBSD.org>

Add vfs_mountedfrom.9 to the build.


# 60c6be61 26-Feb-2008 Chad David <davidc@FreeBSD.org>

Add insmntque.9 to the build.


# 1f5679e7 26-Feb-2008 Chad David <davidc@FreeBSD.org>

Link vholdl.9 to vhold.9


# 40f7fef0 26-Feb-2008 Chad David <davidc@FreeBSD.org>

Add vrefcnt.9 to the build.


# f0c5fe2d 13-Feb-2008 Attilio Rao <attilio@FreeBSD.org>

Update manpage with lockmgr_assert() description.


# a733fdfe 13-Feb-2008 Christian Brueffer <brueffer@FreeBSD.org>

Remove dublicate MLINK.

Submitted by: David Naylor <blackdragon@highveldmail.co.za>


# 7ad783ff 22-Jan-2008 Attilio Rao <attilio@FreeBSD.org>

Add manpages for BUF_RECURSED(9) and BUF_ISLOCKED(9) and connect them to
the build.

Reviewed by: brueffer


# fa885265 22-Jan-2008 Attilio Rao <attilio@FreeBSD.org>

Add the newly added function lockmgr_recursed() to the manpages.


# d3d35ac3 22-Jan-2008 Attilio Rao <attilio@FreeBSD.org>

BUF_REFCNT(9) function no more exists, so just axe out the manpage.


# cc24fccd 22-Jan-2008 Attilio Rao <attilio@FreeBSD.org>

Fix lock.9 manpage in order to recall lockmgr_disown() with 'man' command.


# 9ccca7d1 01-Dec-2007 Robert Watson <rwatson@FreeBSD.org>

Modify stack(9) stack_print() and stack_sbuf_print() routines to use new
linker interfaces for looking up function names and offsets from
instruction pointers. Create two variants of each call: one that is
"DDB-safe" and avoids locking in the linker, and one that is safe for
use in live kernels, by virtue of observing locking, and in particular
safe when kernel modules are being loaded and unloaded simultaneous to
their use. This will allow them to be used outside of debugging
contexts.

Modify two of three current stack(9) consumers to use the DDB-safe
interfaces, as they run in low-level debugging contexts, such as inside
lockmgr(9) and the kernel memory allocator.

Update man page.


# 7340f1a1 29-Nov-2007 Robert Watson <rwatson@FreeBSD.org>

Add description of stack_print() and MLINK.


# 12cef7aa 27-Nov-2007 Robert Watson <rwatson@FreeBSD.org>

Add a man page for stack(9).

MFC after: 1 week


# 521a1790 20-Nov-2007 Gabor Kovesdan <gabor@FreeBSD.org>

- Add callout_init_rw.9 to MLINKS of timeout.9

Forgotten by: gabor
Reminded by: ru


# bfbdccc1 13-Nov-2007 Ruslan Ermilov <ru@FreeBSD.org>

Sort.


# a1b36788 10-Nov-2007 Robert Watson <rwatson@FreeBSD.org>

Hook up rmlock(9) and its links to the build.


# 39b920eb 26-Oct-2007 Julian Elischer <julian@FreeBSD.org>

Doc police fixes

thanks to: ru@


# 5d40d4a5 26-Oct-2007 Ruslan Ermilov <ru@FreeBSD.org>

Sort MLINKS.


# 9f05d312 15-Oct-2007 Alexander Leidinger <netchild@FreeBSD.org>

Backout sensors framework.

Requested by: phk
Discussed on: cvs-all


# 99f6b270 14-Oct-2007 Alexander Leidinger <netchild@FreeBSD.org>

Import OpenBSD's sysctl hardware sensors framework.

This commit includes the following core components:

* sample configuration file for sensorsd
* rc(8) script and glue code for sensorsd(8)
* sysctl(3) doc fixes for CTL_HW tree
* sysctl(3) documentation for hardware sensors
* sysctl(8) documentation for hardware sensors
* support for the sensor structure for sysctl(8)
* rc.conf(5) documentation for starting sensorsd(8)
* sensor_attach(9) et al documentation
* /sys/kern/kern_sensors.c
o sensor_attach(9) API for drivers to register ksensors
o sensor_task_register(9) API for the update task
o sysctl(3) glue code
o hw.sensors shadow tree for sysctl(8) internal magic
* <sys/sensors.h>
* HW_SENSORS definition for <sys/sysctl.h>
* sensors display for systat(1), including documentation
* sensorsd(8) and all applicable documentation

The userland part of the framework is entirely source-code
compatible with OpenBSD 4.1, 4.2 and -current as of today.

All sensor readings can be viewed with `sysctl hw.sensors`,
monitored in semi-realtime with `systat -sensors` and also
logged with `sensorsd`.

Submitted by: Constantine A. Murenin <cnst@FreeBSD.org>
Sponsored by: Google Summer of Code 2007 (GSoC2007/cnst-sensors)
Mentored by: syrinx
Tested by: many
OKed by: kensmith
Obtained from: OpenBSD (parts)


# 2e018235 05-Oct-2007 Marius Strobl <marius@FreeBSD.org>

Add an MLINKS for pci_find_dbsf.9.

Submitted by: ru
Approved by: re (gnn)


# bdec1ad9 05-Sep-2007 Robert Watson <rwatson@FreeBSD.org>

Add MLINKS entries for various SYSCTL_*() macros documented in sysctl.9.

Approved by: re (bmah)
Submitted by: Constantine A. Murenin <cnst+freebsd@bugmail.mojo.ru>
Sponsored by: Google Summer of Code 2007


# 2b9573af 19-May-2007 John Baldwin <jhb@FreeBSD.org>

Document sx_xholder().


# b84a4e0c 13-May-2007 Andrew Thompson <thompsa@FreeBSD.org>

Link the defunct MUTEX_PROFILING option to LOCK_PROFILING.


# 8ad9c323 01-Apr-2007 Maxim Konovalov <maxim@FreeBSD.org>

o Document vdropl(9) [1].
o Add an MLINK for vdropl().

Reviewed by: des [1]
Obtained from: wording from vgone(9)


# 4e7f640d 31-Mar-2007 John Baldwin <jhb@FreeBSD.org>

Optimize sx locks to use simple atomic operations for the common cases of
obtaining and releasing shared and exclusive locks. The algorithms for
manipulating the lock cookie are very similar to that rwlocks. This patch
also adds support for exclusive locks using the same algorithm as mutexes.

A new sx_init_flags() function has been added so that optional flags can be
specified to alter a given locks behavior. The flags include SX_DUPOK,
SX_NOWITNESS, SX_NOPROFILE, and SX_QUITE which are all identical in nature
to the similar flags for mutexes.

Adaptive spinning on select locks may be enabled by enabling the
ADAPTIVE_SX kernel option. Only locks initialized with the SX_ADAPTIVESPIN
flag via sx_init_flags() will adaptively spin.

The common cases for sx_slock(), sx_sunlock(), sx_xlock(), and sx_xunlock()
are now performed inline in non-debug kernels. As a result, <sys/sx.h> now
requires <sys/lock.h> to be included prior to <sys/sx.h>.

The new kernel option SX_NOINLINE can be used to disable the aforementioned
inlining in non-debug kernels.

The size of struct sx has changed, so the kernel ABI is probably greatly
disturbed.

MFC after: 1 month
Submitted by: attilio
Tested by: kris, pjd


# 27c20cc4 30-Mar-2007 Julian Elischer <julian@FreeBSD.org>

Connect the locking man page to the build.
Next step is to add it as a "See Also" to related man pages.


# 1f430954 27-Mar-2007 Maxim Konovalov <maxim@FreeBSD.org>

o Trim unneeded backslash.


# dd3c9f51 27-Mar-2007 Maxim Konovalov <maxim@FreeBSD.org>

o Actually add MLINKs for priv(9) functions.


# 09dfbddb 27-Mar-2007 Christian Brueffer <brueffer@FreeBSD.org>

Add MLINKs for priv(9) functions.


# e7573e7a 09-Mar-2007 John Baldwin <jhb@FreeBSD.org>

Allow threads to atomically release rw and sx locks while waiting for an
event. Locking primitives that support this (mtx, rw, and sx) now each
include their own foo_sleep() routine.
- Rename msleep() to _sleep() and change it's 'struct mtx' object to a
'struct lock_object' pointer. _sleep() uses the recently added
lc_unlock() and lc_lock() function pointers for the lock class of the
specified lock to release the lock while the thread is suspended.
- Add wrappers around _sleep() for mutexes (mtx_sleep()), rw locks
(rw_sleep()), and sx locks (sx_sleep()). msleep() still exists and
is now identical to mtx_sleep(), but it is deprecated.
- Rename SLEEPQ_MSLEEP to SLEEPQ_SLEEP.
- Rewrite much of sleep.9 to not be msleep(9) centric.
- Flesh out the 'RETURN VALUES' section in sleep.9 and add an 'ERRORS'
section.
- Add __nonnull(1) to _sleep() and msleep_spin() so that the compiler will
warn if you try to pass a NULL wait channel. The functions already have
a KASSERT to that effect.


# e6b69890 09-Mar-2007 John Baldwin <jhb@FreeBSD.org>

- Document cv_wait_unlock(9).
- Don't claim that the mutex is atomically reacquired when a cv_wait
routine returns. There's nothing atomic or magical about the lock
reacquire. The only magic is that we atomically drop the lock by
placing the thread on the sleep queue before dropping the lock.


# cc61ffc3 09-Mar-2007 John Baldwin <jhb@FreeBSD.org>

- Sort functions in the order that rwlock(9) and mutex(9) use.
- Markup sx_unlock() as a function rather than saying it is a macro.
The macro part is an implementation detail, and all the other sx_*lock()
functions are actually macros, too.
- Use the same style as rwlock(9) and mutex(9) to markup sx_assert() and
SX_SYSINIT() with respect to headers and kernel options.
- Add a missing MLINK.


# 7d3052bb 09-Mar-2007 John Baldwin <jhb@FreeBSD.org>

- Sort rwlock functions similar to the order in mutex(9).
- Add a missing MLINK.


# 6c247812 02-Mar-2007 Chad David <davidc@FreeBSD.org>

Add vfs_getopt.9 to the build, and add links for related functions.


# 149b6b0b 26-Feb-2007 Robert Watson <rwatson@FreeBSD.org>

Add rw_wowned(9) symlink.


# 066eef7a 24-Feb-2007 Ruslan Ermilov <ru@FreeBSD.org>

Remove the traces of vm_page_unmanage().


# 37e80fca 23-Feb-2007 John Baldwin <jhb@FreeBSD.org>

Add a new kernel sleep function pause(9). pause(9) is for places that
want an equivalent of DELAY(9) that sleeps instead of spins. It accepts
a wmesg and a timeout and is not interrupted by signals. It uses a private
wait channel that should never be woken up by wakeup(9) or wakeup_one(9).

Glanced at by: phk


# eb62f845 16-Feb-2007 Pawel Jakub Dawidek <pjd@FreeBSD.org>

VFS_VPTOFH(9) was replaced with VOP_VPTOFH(9).
VFS_VPTOFH.9 was repo-copied to VOP_VPTOFH.9.

Repo-copy done by: joe


# f4ad756a 12-Feb-2007 John Baldwin <jhb@FreeBSD.org>

MLINK for bus_dmamap_load_mbuf_sg(9)


# 806c2dc9 29-Jan-2007 Robert Watson <rwatson@FreeBSD.org>

Add MLINKS for sf_buf.9.


# 5a05988c 28-Jan-2007 Robert Watson <rwatson@FreeBSD.org>

Add a rudimentary man page for sf_bufs, based on my rudimentary
understanding of sf_bufs.


# b939bb36 15-Jan-2007 Randall Stewart <rrs@FreeBSD.org>

Reviewed by: rwatson
Approved by: gnn

Add a new function hashinit_flags() which allows NOT-waiting
for memory (or waiting). The old hashinit() function now
calls hashinit_flags(..., HASH_WAITOK);


# 6a751174 15-Dec-2006 Robert Watson <rwatson@FreeBSD.org>

Add a basic man page for the socket(9) kernel programming interface used
by the NFS client and server, netsmb, netncp, etc.

Reviewed by: ru
Fixed by: ru


# f0bab878 25-Nov-2006 Warner Losh <imp@FreeBSD.org>

devsw() was removed by phk:

revision 1.199
date: 2004/09/24 08:30:57; author: phk; state: Exp; lines: +0 -1
Remove the cdevsw() function which is now unused.

(the log is wrong, it was really devsw that was removed).

# we really need to actually document the functions in sys/conf.h as well
# as things like d_open...


# 9bda7d94 19-Nov-2006 Ceri Davies <ceri@FreeBSD.org>

Add manuals for cr_cansee(9) and p_cansee(9).
Thanks to Ruslan for the time he spent reviewing these.

Reviewed by: ru
Approved by: ru


# cd852a29 11-Nov-2006 Ruslan Ermilov <ru@FreeBSD.org>

Fix build (forgotten MUTEX_PROFILING.9 -> LOCK_PROFILING.9).


# 800c9408 06-Nov-2006 Robert Watson <rwatson@FreeBSD.org>

Add a new priv(9) kernel interface for checking the availability of
privilege for threads and credentials. Unlike the existing suser(9)
interface, priv(9) exposes a named privilege identifier to the privilege
checking code, allowing more complex policies regarding the granting of
privilege to be expressed. Two interfaces are provided, replacing the
existing suser(9) interface:

suser(td) -> priv_check(td, priv)
suser_cred(cred, flags) -> priv_check_cred(cred, priv, flags)

A comprehensive list of currently available kernel privileges may be
found in priv.h. New privileges are easily added as required, but the
comments on adding privileges found in priv.h and priv(9) should be read
before doing so.

The new privilege interface exposed sufficient information to the
privilege checking routine that it will now be possible for jail to
determine whether a particular privilege is granted in the check routine,
rather than relying on hints from the calling context via the
SUSER_ALLOWJAIL flag. For now, the flag is maintained, but a new jail
check function, prison_priv_check(), is exposed from kern_jail.c and used
by the privilege check routine to determine if the privilege is permitted
in jail. As a result, a centralized list of privileges permitted in jail
is now present in kern_jail.c.

The MAC Framework is now also able to instrument privilege checks, both
to deny privileges otherwise granted (mac_priv_check()), and to grant
privileges otherwise denied (mac_priv_grant()), permitting MAC Policy
modules to implement privilege models, as well as control a much broader
range of system behavior in order to constrain processes running with
root privilege.

The suser() and suser_cred() functions remain implemented, now in terms
of priv_check() and the PRIV_ROOT privilege, for use during the transition
and possibly continuing use by third party kernel modules that have not
been updated. The PRIV_DRIVER privilege exists to allow device drivers to
check privilege without adopting a more specific privilege identifier.

This change does not modify the actual security policy, rather, it
modifies the interface for privilege checks so changes to the security
policy become more feasible.

Sponsored by: nCircle Network Security, Inc.
Obtained from: TrustedBSD Project
Discussed on: arch@
Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri,
Alex Lyashkov <umka at sevcity dot net>,
Skip Ford <skip dot ford at verizon dot net>,
Antoine Brodin <antoine dot brodin at laposte dot net>


# 72377e4c 04-Oct-2006 Ruslan Ermilov <ru@FreeBSD.org>

Sort MAN and MLINKS lists.


# 32d5d9ff 05-Oct-2006 John-Mark Gurney <jmg@FreeBSD.org>

sort MLINKS properly

Pointed out by: ru


# 90db62ac 04-Oct-2006 John-Mark Gurney <jmg@FreeBSD.org>

add man page talking about how to interface w/ the kqueue system so others
can write additional filters...

mdoc police please!


# b2c1b091 02-Oct-2006 Andre Oppermann <andre@FreeBSD.org>

Connect hash(9) to the build and add MLINKS for all functions.

Pointed out by: ru


# fa81ece8 25-Sep-2006 Warner Losh <imp@FreeBSD.org>

Document config_intrhook.

MFC After: 250 millifortnights


# 533baf57 12-Jul-2006 Maxim Konovalov <maxim@FreeBSD.org>

o Sort sx(9) MLINKS.


# d8e70581 12-Jul-2006 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Document sx_xlocked(9).

Submitted by: ssouhlal


# 9f14302d 23-May-2006 Warner Losh <imp@FreeBSD.org>

Add a stub man page for device_get_sysctl{_ctx,tree}. Needs some
work, but is better than nothing. Any help appreciated.


# dba9e9cc 28-Apr-2006 Robert Watson <rwatson@FreeBSD.org>

Add a basic man page for the sysctl(9) macro interfaces. Previously man
pages existed only for the dynamic sysctl interfaces. There's probably
more complete and accurate content, better advice, etc, that could be added
here.

Per scottl's suggest, add a small piece of moralizing text regarding the
fact that sysctl names quickly get embedded in system configuration files,
libraries, third party applications, and even books, so renaming and
removing names after they've been published is a tricky issue.

MFC after: 1 month


# af3b8681 21-Apr-2006 John-Mark Gurney <jmg@FreeBSD.org>

document the various bus_space_*_stream_? functions...


# c1ffaf8c 19-Apr-2006 John Baldwin <jhb@FreeBSD.org>

Add MLINKS for rwlock(9).


# 18f1afb9 04-Apr-2006 John-Mark Gurney <jmg@FreeBSD.org>

add links for the functions documented in bus_space.9...


# 3182fc7b 01-Feb-2006 Gleb Smirnoff <glebius@FreeBSD.org>

Document read/write locks.

Reviewed by: jhb, ru


# 847a2a17 31-Jan-2006 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Add buffer corruption protection (RedZone) for kernel's malloc(9).
It detects both: buffer underflows and buffer overflows bugs at runtime
(on free(9) and realloc(9)) and prints backtraces from where memory was
allocated and from where it was freed.

Tested by: kris


# 6aec1278 28-Jan-2006 Max Laier <mlaier@FreeBSD.org>

firmware(9) is a subsystem to load binary data into the kernel via a
specially crafted module. There are several handrolled sollutions to this
problem in the tree already which will be replaced with this. They include
iwi(4), ipw(4), ispfw(4) and digi(4).

No objection from: arch
MFC after: 2 weeks
X-MFC after: some drivers have been converted


# 61d963bc 03-Jan-2006 John Baldwin <jhb@FreeBSD.org>

- Don't list sleep() in the NAME section as we haven't had a sleep()
function in years.
- Change the 'ident' paramters to 'wchan' to match <sys/systm.h>.
- Use 'otherwise' in place of 'else' in one place so that this reads like
English rather than C.
- Document the new msleep_spin() function.
- Add history notes for msleep() and msleep_spin().


# 0a9a8c2e 30-Dec-2005 Ian Dowse <iedowse@FreeBSD.org>

Add basic documentation for many of the kernel USB functions that
USB device drivers use to talk to USB devices. This is probably
still a bit rough and it does not yet include the functions specific
to HID, ethernet, hubs, host controller drivers, task threads or
debugging.


# eefd941b 05-Oct-2005 John Baldwin <jhb@FreeBSD.org>

Update this manpage:
- Remove references to cpu_critical_*() as they no longer exist.
- Explain that any preemptions that occur during a critical section are
deferred until the current thread exits the section.
- Remove a bogus example usage of a critical section.
- Note that one can interlock critical sections with spin mutexes in
certain situations.

MFC after: 3 days


# bf5a89d1 28-Sep-2005 Ruslan Ermilov <ru@FreeBSD.org>

Sort MLINKS.


# 4ea211a4 27-Sep-2005 John Baldwin <jhb@FreeBSD.org>

- Document atomic_fetchadd(9) and add a MLINK.
- Add arm and ppc to the list of archs not supporting operations on 64-bit
integers.
- Update the sample code for acquiring a mutex to be more recent and to
take into account the recent atomic_foo_ptr() changes.

MFC after: 1 week


# 6b8a3687 21-Sep-2005 Robert Watson <rwatson@FreeBSD.org>

Add discussion of Giant, the MPSAFE flag, and NDHASGIANT() to namei(9).

Add a VFS_LOCK_GIANT(9)/VFS_UNLOCK_GIANT(9) man page.

Discussed with: jeff
MFC after: 3 days


# e91f1998 26-Jul-2005 Scott Long <scottl@FreeBSD.org>

Now that VFS_START.9 has been removed, don't try to reference it from the
Makefile.


# 751c3571 13-Jun-2005 Warner Losh <imp@FreeBSD.org>

Don a flack jacket and start to document the FreeBSD bus_space
implementation. I took the NetBSD man page, and hacked it to, I hope,
to reflect the preliminary version of the bus space that Justin Gibbs
committed as part of the CAM integration in FreeBSD 3.0.

This isn't perfect, but it is better than we have now (which is, ahem,
nothing). Please coordinate changes to the file through me through
the 6.0 release.

Approved by: re (blanket for this one file)


# 27c3fa33 10-Jun-2005 Hiten Pandya <hmp@FreeBSD.org>

Add manual page for newly added pmap_page_init(9) function, part of the
PMAP KPI.

Reviewed-by: alc


# f9e6931c 20-Apr-2005 Gleb Smirnoff <glebius@FreeBSD.org>

Manpage for unit allocator functions.

Reviewed by: phk


# ba9bc36a 15-Apr-2005 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Add missing links.

MFC after: 2 weeks


# c5e1d51b 09-Apr-2005 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Create links to crypto.9 for every crypto(9) function.

OK'ed by: sam
MFC after: 2 weeks


# f86f6ce6 07-Apr-2005 Nate Lawson <njl@FreeBSD.org>

Hook up new man page for devclass_get_drivers() to build

Reminded by: ru


# 64716bfb 22-Feb-2005 Christian Brueffer <brueffer@FreeBSD.org>

Connect memguard(9) to the build.


# 98c926b2 06-Feb-2005 Ian Dowse <iedowse@FreeBSD.org>

Add a mechanism for associating a mutex with a callout when the
callout is first initialised, using a new function callout_init_mtx().
The callout system will acquire this mutex before calling the callout
function and release it on return.

In addition, the callout system uses the mutex to avoid most of the
complications and race conditions inherent in asynchronous timer
facilities, so mutex-protected callouts have much simpler semantics.
As long as the mutex is held when invoking callout_stop() or
callout_reset(), then these functions will guarantee that the callout
will be stopped, even if softclock() had already begun to process
the callout.

Existing Giant-locked callouts will automatically pick up the new
race-free semantics. This should close a number of race conditions
in the USB code and probably other areas of the kernel too.

There should be no change in behaviour for "MP-safe" callouts; these
still need to use the techniques mentioned in timeout(9) to avoid
race conditions.


# 15575dc0 07-Jan-2005 Maxim Konovalov <maxim@FreeBSD.org>

Finish src part VFS_INIT.9 removal. Need to check www/.


# 93c22173 13-Dec-2004 Warner Losh <imp@FreeBSD.org>

The format of the MLINKS entries is pairwise, not MLINKS += wise. So
list kernel_mount.9 the required number of times to allow make
installworld to complete.


# fe10ebf1 13-Dec-2004 Tom Rhodes <trhodes@FreeBSD.org>

Add kernel_mount.9 and appropriate MLINKS to the build.


# 898bd99e 05-Dec-2004 Alan Cox <alc@FreeBSD.org>

This jumbo allocator has been removed from the kernel.


# 235b396a 03-Dec-2004 Joseph Koshy <jkoshy@FreeBSD.org>

Add a manual page for the kernel's EVENTHANDLER facility.

Reviewed by: ru


# 6f00fa13 24-Nov-2004 Robert Watson <rwatson@FreeBSD.org>

Link critical_enter.9 to critical.9 to make it easier to find.


# 0252ce17 19-Nov-2004 Joseph Koshy <jkoshy@FreeBSD.org>

Bring signal(9) in sync with -current.

Reviewed by: ru (mdoc changes)


# 9bd82b5c 11-Oct-2004 Joseph Koshy <jkoshy@FreeBSD.org>

Add a manual page for hashinit(9), hashdestroy(9) and phashinit(9).

Reviewed by: ru


# d7e6966d 08-Oct-2004 Gleb Smirnoff <glebius@FreeBSD.org>

Add more MLINKS for rtalloc.9

Approved by: ru


# af3db144 26-Sep-2004 Alan Cox <alc@FreeBSD.org>

Document the O(log n) algorithm for finding free space.

Submitted by: Mark W. Krentel


# 34676364 18-Sep-2004 Ruslan Ermilov <ru@FreeBSD.org>

Sort MAN and MLINKS in dictionary order ignoring case.


# 0283f35b 18-Sep-2004 John-Mark Gurney <jmg@FreeBSD.org>

add MLINKs for the mbuf.9 man page..

MFC after: 3 days


# 35779bdb 17-Sep-2004 Brooks Davis <brooks@FreeBSD.org>

Bring kernel time variable and access function docs up to date by
updating the list of variables and mentioning the bin(up)time functions.


# 0da40ab2 10-Aug-2004 Joerg Wunsch <joerg@FreeBSD.org>

Add documentation for log(9).

MFC after: 1 week


# 251b8d45 06-Aug-2004 Max Laier <mlaier@FreeBSD.org>

Add altq(9) explaining about the IFQ_* and IFQ_DRV_* macros in if_var.h and
how to convert drivers.

Obtained from: NetBSD (with changes)
Reviewed by: josef


# 899eeaa6 06-Aug-2004 Warner Losh <imp@FreeBSD.org>

It appears that cdevsw_add/remove were removed quite a while ago, so
remove them from here.


# cf92b474 09-Jul-2004 Alfred Perlstein <alfred@FreeBSD.org>

document vfs_suser.


# f0f26fe5 06-Jun-2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Add missing link.


# e85cc3f5 20-May-2004 Ruslan Ermilov <ru@FreeBSD.org>

Document mbuf tags based on the OpenBSD manpage.

Submitted by: Gleb Smirnoff


# 83676de9 19-May-2004 David Malone <dwmalone@FreeBSD.org>

Add a man page for the kernel part of bpf. I made some edits to the
man page after Orla, so the mistakes are probably mine. Leave a
note on the door welcoming the mdoc police.

Submitted by: Orla McGann <orly@cnri.dit.ie>


# 11053af5 17-May-2004 Hiten Pandya <hmp@FreeBSD.org>

Add rman_get_device(9) to SYNOPSIS, .Nm and MLINK it to
rman(9).


# aebc6093 13-May-2004 Warner Losh <imp@FreeBSD.org>

The DEVICE_IDENTIFY man page refers to this, create a dummy one
directing people to device_add_child.


# bdffb39f 17-Mar-2004 Nate Lawson <njl@FreeBSD.org>

Add bus_alloc_resource_any(9), which does bus_alloc_resource() with the
appropriate default values. Document it in the manpage.

Submitted by: Mark Santcroos <marks@ripe.net>
Reviewed by: imp, dfr, bde
Abstains: bde


# bf0e60bb 12-Mar-2004 John Baldwin <jhb@FreeBSD.org>

Rewrite sleepqueue manpage to catch up to the new sleep queue interface.


# 9e568174 11-Mar-2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Connect g_access(9) to the build.


# f5531a09 10-Mar-2004 John Baldwin <jhb@FreeBSD.org>

- Document cv_broadcastpri().
- Remove references to cv_waitq_*() as they no longer exist.


# 2cd7fe4d 07-Mar-2004 Josef El-Rayes <josef@FreeBSD.org>

Document kernel functions securelevel_gt and securelevel_ge.

Approved by: simon(mentor)
Submitted by: Christian S.J. Peron <maneo@bsdpro.com>
PR: docs/62331
mdoc(7) cleanup by: ru


# 9cfa00a6 06-Mar-2004 Joseph Koshy <jkoshy@FreeBSD.org>

Link in contigmalloc(9) to the build.


# 904fd6ba 04-Mar-2004 Bruce M Simpson <bms@FreeBSD.org>

Fix a typo.


# 54947b97 04-Mar-2004 Bruce M Simpson <bms@FreeBSD.org>

Hook ieee80211 manpages up to the build; fix 1 snafu which crept in.

Noticed by: Matthias Schuendehuette
Pointy hat to: bms


# 48fbb408 03-Mar-2004 Bruce M Simpson <bms@FreeBSD.org>

Add an MLINKS entry for radiotap(9).


# 3f3f4cdb 03-Mar-2004 Bruce M Simpson <bms@FreeBSD.org>

Initial import of documentation for net80211 interface code.
Of particular interest here is the ieee80211_radiotap(9) man page.

TODO: Flesh out ieee80211_node.9, ieee80211_proto.9.

Submitted by: bms (with help from Darron Broad)


# 06aed75c 28-Feb-2004 Lukas Ertl <le@FreeBSD.org>

Add MLINKs for MALLOC_DEFINE and MALLOC_DECLARE.

Approved by: grog (mentor)


# 2bedf807 28-Feb-2004 Poul-Henning Kamp <phk@FreeBSD.org>

Add contents to manualpage for generic watchdog facility.
Formatting likely to break several UN resolutions.


# c7ea226d 27-Feb-2004 Dag-Erling Smørgrav <des@FreeBSD.org>

Document sysctl_move_oid().


# 16710e88 11-Feb-2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Create symbolic link for g_print_bio(9) manual page.

Approved by: scottl (mentor)


# eb4f5d9d 11-Feb-2004 Pawel Jakub Dawidek <pjd@FreeBSD.org>

Added GEOM kernel API manuals to the build.

Reviewed by: scottl
Approved by: phk, scottl (mentor)


# 77c36c17 24-Jan-2004 Dag-Erling Smørgrav <des@FreeBSD.org>

Add a manual page for the mutex profiling code.


# b760de96 20-Jan-2004 Ruslan Ermilov <ru@FreeBSD.org>

Use a single style for share/man/ makefiles:

- Sort MAN and MLINKS in "dictionary" order ignoring case.

- For multi-value MAN and multi-pair MLINKS, put each value/pair
on its own line, for easier sorting and so that further diffs
are easier to see.


# 9b1faf0a 11-Jan-2004 Robert Watson <rwatson@FreeBSD.org>

Add a basic manpage for vn_fullpath().

Sponsored by: DARPA, McAfee Research


# d42944a1 09-Jan-2004 Simon L. B. Nielsen <simon@FreeBSD.org>

Add missing manual page links for rman(9) and sysctl_add_oid(9).

Submitted by: Lukas Ertl <l.ertl@univie.ac.at>
PR: docs/60088


# f096643b 11-Dec-2003 Joseph Koshy <jkoshy@FreeBSD.org>

Document a few kernel functions and the sysctl tunables that
affect their behaviour.


# 4fb638c3 07-Dec-2003 Scott Long <scottl@FreeBSD.org>

Add a manual page for the consolidated debugging commit.


# dab12c8e 10-Nov-2003 Hiten Pandya <hmp@FreeBSD.org>

Manual page for Asynchronous Logging Queues (ALQ) facility.

The manual page contains enough information to get someone started
with ALQ.

MLINKS have been added appropriately.

Approved by: jeff, des
Reviewed by: des, jeff, sam, brooks, rwatson, mtm


# 302662db 04-Nov-2003 Warner Losh <imp@FreeBSD.org>

resource_query_string is dead. Kill it.


# 1aba005a 05-Oct-2003 Bruce M Simpson <bms@FreeBSD.org>

Add pmap_wired_count() and pmap_resident_count() to the pmap documentation.

Discussed with: peter


# cdf9f377 03-Oct-2003 Bruce M Simpson <bms@FreeBSD.org>

Update the pmap(9) documentation to reflect the movement of pmap_prefault()
to the machine-independent VM layer, as per alc's recent commit.
Add a definition for the new pmap_is_prefaultable() helper function.


# c753166c 29-Sep-2003 Bruce M Simpson <bms@FreeBSD.org>

Add manual pages for the vm_map(9) part of the VM.

Reviewed by: juli
Approved by: jake (mentor)


# 7d216f0f 29-Sep-2003 Bruce M Simpson <bms@FreeBSD.org>

Add manual pages for the vm_map(9) part of the VM.

Reviewed by: juli
Approved by: jake (mentor)


# ef43d3b5 26-Sep-2003 Robert Watson <rwatson@FreeBSD.org>

Documentation of kernel disk_create() and disk_destroy() APIs. These
APIs permit disk device drivers to register and deregister storage devices
for use by storage device consumers. No doubt this API will change
more as time flies by, but this should be helpful to the creators of
new storage device drivers.

Reviewed by: phk


# 29511936 25-Sep-2003 Bruce M Simpson <bms@FreeBSD.org>

Fix MLINKS.

Noticed by: bde
Pointy hat to: bms


# 8019c643 25-Sep-2003 Bruce M Simpson <bms@FreeBSD.org>

Add manual page documentation for the machine-independent PMAP subsystem.
Include documentation of alc's new pmap_extract_and_hold() function.

Reviewed by: hmp
Approved by: jake (mentor)


# 09d0a77c 23-Sep-2003 Marcel Moolenaar <marcel@FreeBSD.org>

Hook up BUS_CONFIG_INTR.9


# d7bbb21a 21-Jul-2003 Hartmut Brandt <harti@FreeBSD.org>

Document uma_zone_set_max and its non-obvious behaviour.

Reviewed by: bmilekic


# 076c2f95 16-Jul-2003 Don Lewis <truckman@FreeBSD.org>

Document mutex pool API enhancements that allow creation and use of
multiple mutex pools.


# 7e9024cd 15-Jul-2003 Hartmut Brandt <harti@FreeBSD.org>

Add a facility for devices, specifically network interfaces, that require
large to huge amounts of small or medium sized receive buffers. The problem
with these situations is that they eat up the available DMA address space
very quickly when using mbufs or even mbuf clusters. Additionally this
facility provides a direct mapping between 32-bit integers and these buffers.
This is needed for devices originally designed for 32-bit systems. Ususally
the virtual address of the buffer is used as a handle to find the buffer as
soon as it is returned by the card. This does not work for 64-bit machines
and hence this mapping is needed.


# 32c4d090 17-Jun-2003 Hiten Pandya <hmp@FreeBSD.org>

Add MLINK for busdma(9) to bus_dma(9).
This resolves confusion for at least 10 people.

Suggested by: Bruce M. Simpson <bms@spc.org>
Approved by: des (mentor)


# 591f4054 12-Jun-2003 Hartmut Brandt <harti@FreeBSD.org>

This is a driver for the physical layer chips used in ATM interfaces.
It currently supports the PMC Sierra Lite, Ultra and 622 chips and
the IDT 77105. The driver handles media options and state in a consistent
manner for ATM drivers. The next commit to the midway driver will make
it use utopia.


# 33659d9a 09-Jun-2003 Hiten Pandya <hmp@FreeBSD.org>

Hook up pci(9) manual page to the build.

Approved by: des (mentor)


# 1792c88d 05-Jun-2003 Robert Watson <rwatson@FreeBSD.org>

Document VOP_LISTEXTATTR(9).

Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


# 24503465 30-May-2003 Hiten Pandya <hmp@FreeBSD.org>

Add the bus_dma(9) manual page to our section 9 collection. It
provides comprehensive documentation on FreeBSD's Bus DMA interface.

Approved by: gibbs, re@ (scottl)
Reviewed by: gibbs, scottl, des, sam, jake, tmm


# 02531bb0 21-May-2003 Ruslan Ermilov <ru@FreeBSD.org>

Link {be,le}{16,32,64}{enc,dec}.9 to byteorder.9.

Approved by: re (blanket)


# 5f616912 16-May-2003 Hiten Pandya <hmp@FreeBSD.org>

Document the ``resource management'' routines in rman(9).

Submitted by: Bruce M. Simpson <bms@spc.org>
Reviewed by: mdodd

Approved by: des (mentor), re (scottl)


# 0d740fd5 16-May-2003 Hiten Pandya <hmp@FreeBSD.org>

Add a manual page for the CTASSERT(9) macro.

Approved by: des (mentor), re (scottl)


# 03a0a09e 09-May-2003 Hiten Pandya <hmp@FreeBSD.org>

Add missing MLINK for arc4rand(9). It is documented in
random(9) and referenced by gbde(4).

PR: docs/51254
Submitted by: Simon L. Nielsen <simon@nitro.dk>
Approved and Reviewed by: des (mentor), re (bmah)


# bf2331ba 21-Apr-2003 Warner Losh <imp@FreeBSD.org>

Document device_set_driver(9)

# now all driver_* functions used outside of subr_bus.o in my kernel
# are documented.


# 6e684dce 21-Apr-2003 Warner Losh <imp@FreeBSD.org>

Document device_printf(9).


# c56c6bab 21-Apr-2003 Warner Losh <imp@FreeBSD.org>

Document device_set_ivars(9) as well.


# 44d993e3 21-Apr-2003 Warner Losh <imp@FreeBSD.org>

man page for device_get_parent.


# c82d43ff 21-Apr-2003 Warner Losh <imp@FreeBSD.org>

device_is_alive already was documented in device_get_state, so remove the
separate man page. Document new device_is_attached there and remove that
new man page too.

Connect device_get_name to build, and install a link for
device_get_nameunit.

strangely nobody noticed this yet...


# 41c44039 21-Apr-2003 Warner Losh <imp@FreeBSD.org>

Simple man page for new device_is_attached.


# dd7520c9 21-Apr-2003 Warner Losh <imp@FreeBSD.org>

Add a man page for device_is_alive.


# d082b089 29-Mar-2003 Warner Losh <imp@FreeBSD.org>

Document what bus_set_resource(9) does. It is used by bus drivers to
bind resources that client drivers later access.


# 6a897e3f 29-Mar-2003 Kris Kennaway <kris@FreeBSD.org>

Correct a typo in previous commit


# ec33f2d5 28-Mar-2003 Warner Losh <imp@FreeBSD.org>

Add a new man page for bus_activate_resource and
bus_deactivate_resource. It could use some improvement, and others
are welcomed to do so :-)


# 9b89e63c 28-Mar-2003 Warner Losh <imp@FreeBSD.org>

Create a man page for bus_child_present(9), a function to see if a
given device is considered accessible by its parent device bus driver
(or its parent, etc).


# 7313b3d8 25-Mar-2003 John Baldwin <jhb@FreeBSD.org>

Remove obsolete at_fork() and at_exit() manpages. Curiously, at_exec()
didn't have a manpage.

Reminded by: ru


# 3ebc28ef 04-Dec-2002 Chris Costello <chris@FreeBSD.org>

Document the following MAC policies:
o Biba: A data integrity policy
o BSD Extended: Support for the firewall-like access controls (ugidfw(8))
o MLS: Multi-level security, a confidentiality policy

(These files originally lived in src/share/man/man9)

Approved by: re (blanket)
Sponsored by: DARPA, Network Associates Labs
Obtained from: TrustedBSD Project


# 431dda01 01-Dec-2002 Chris Costello <chris@FreeBSD.org>

Document the MLS policy

Approved by: re
Sponsored by: DARPA, Network Associates Labs
Obtained from: TrustedBSD Project


# 2699228f 20-Nov-2002 Chris Costello <chris@FreeBSD.org>

Activate mac_biba.9

Approved by: re
Sponsored by: DARPA, Network Associates Labs


# 64027e4d 21-Oct-2002 Robert Watson <rwatson@FreeBSD.org>

Add mac(9), a man page providing a basic introduction to the concepts
associated with the TrustedBSD MAC Framework, as well as some credits
to developers and contributors.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, Network Associates Laboratories


# 6bc41f41 17-Oct-2002 Chris Costello <chris@FreeBSD.org>

Add a new man page describing the mac_bsdextended policy.

Obtained from: TrustedBSD Project
Sponsored by: DARPA, NAI Labs


# 31cfc49a 16-Oct-2002 Mike Barcroft <mike@FreeBSD.org>

Remove the posix4(9) manual. It no longer contains relevant
information.


# f4bf4335 04-Oct-2002 Sam Leffler <sam@FreeBSD.org>

manual pages for the new kernel crypto support (need work)

Obtained from: openbsd


# a4fd02ef 08-Jul-2002 Julian Elischer <julian@FreeBSD.org>

link in the man page for thread_exit
Also change some line breaks.


# 98cb733c 25-Jun-2002 Kenneth D. Merry <ken@FreeBSD.org>

At long last, commit the zero copy sockets code.

MAKEDEV: Add MAKEDEV glue for the ti(4) device nodes.

ti.4: Update the ti(4) man page to include information on the
TI_JUMBO_HDRSPLIT and TI_PRIVATE_JUMBOS kernel options,
and also include information about the new character
device interface and the associated ioctls.

man9/Makefile: Add jumbo.9 and zero_copy.9 man pages and associated
links.

jumbo.9: New man page describing the jumbo buffer allocator
interface and operation.

zero_copy.9: New man page describing the general characteristics of
the zero copy send and receive code, and what an
application author should do to take advantage of the
zero copy functionality.

NOTES: Add entries for ZERO_COPY_SOCKETS, TI_PRIVATE_JUMBOS,
TI_JUMBO_HDRSPLIT, MSIZE, and MCLSHIFT.

conf/files: Add uipc_jumbo.c and uipc_cow.c.

conf/options: Add the 5 options mentioned above.

kern_subr.c: Receive side zero copy implementation. This takes
"disposable" pages attached to an mbuf, gives them to
a user process, and then recycles the user's page.
This is only active when ZERO_COPY_SOCKETS is turned on
and the kern.ipc.zero_copy.receive sysctl variable is
set to 1.

uipc_cow.c: Send side zero copy functions. Takes a page written
by the user and maps it copy on write and assigns it
kernel virtual address space. Removes copy on write
mapping once the buffer has been freed by the network
stack.

uipc_jumbo.c: Jumbo disposable page allocator code. This allocates
(optionally) disposable pages for network drivers that
want to give the user the option of doing zero copy
receive.

uipc_socket.c: Add kern.ipc.zero_copy.{send,receive} sysctls that are
enabled if ZERO_COPY_SOCKETS is turned on.

Add zero copy send support to sosend() -- pages get
mapped into the kernel instead of getting copied if
they meet size and alignment restrictions.

uipc_syscalls.c:Un-staticize some of the sf* functions so that they
can be used elsewhere. (uipc_cow.c)

if_media.c: In the SIOCGIFMEDIA ioctl in ifmedia_ioctl(), avoid
calling malloc() with M_WAITOK. Return an error if
the M_NOWAIT malloc fails.

The ti(4) driver and the wi(4) driver, at least, call
this with a mutex held. This causes witness warnings
for 'ifconfig -a' with a wi(4) or ti(4) board in the
system. (I've only verified for ti(4)).

ip_output.c: Fragment large datagrams so that each segment contains
a multiple of PAGE_SIZE amount of data plus headers.
This allows the receiver to potentially do page
flipping on receives.

if_ti.c: Add zero copy receive support to the ti(4) driver. If
TI_PRIVATE_JUMBOS is not defined, it now uses the
jumbo(9) buffer allocator for jumbo receive buffers.

Add a new character device interface for the ti(4)
driver for the new debugging interface. This allows
(a patched version of) gdb to talk to the Tigon board
and debug the firmware. There are also a few additional
debugging ioctls available through this interface.

Add header splitting support to the ti(4) driver.

Tweak some of the default interrupt coalescing
parameters to more useful defaults.

Add hooks for supporting transmit flow control, but
leave it turned off with a comment describing why it
is turned off.

if_tireg.h: Change the firmware rev to 12.4.11, since we're really
at 12.4.11 plus fixes from 12.4.13.

Add defines needed for debugging.

Remove the ti_stats structure, it is now defined in
sys/tiio.h.

ti_fw.h: 12.4.11 firmware.

ti_fw2.h: 12.4.11 firmware, plus selected fixes from 12.4.13,
and my header splitting patches. Revision 12.4.13
doesn't handle 10/100 negotiation properly. (This
firmware is the same as what was in the tree previously,
with the addition of header splitting support.)

sys/jumbo.h: Jumbo buffer allocator interface.

sys/mbuf.h: Add a new external mbuf type, EXT_DISPOSABLE, to
indicate that the payload buffer can be thrown away /
flipped to a userland process.

socketvar.h: Add prototype for socow_setup.

tiio.h: ioctl interface to the character portion of the ti(4)
driver, plus associated structure/type definitions.

uio.h: Change prototype for uiomoveco() so that we'll know
whether the source page is disposable.

ufs_readwrite.c:Update for new prototype of uiomoveco().

vm_fault.c: In vm_fault(), check to see whether we need to do a page
based copy on write fault.

vm_object.c: Add a new function, vm_object_allocate_wait(). This
does the same thing that vm_object allocate does, except
that it gives the caller the opportunity to specify whether
it should wait on the uma_zalloc() of the object structre.

This allows vm objects to be allocated while holding a
mutex. (Without generating WITNESS warnings.)

vm_object_allocate() is implemented as a call to
vm_object_allocate_wait() with the malloc flag set to
M_WAITOK.

vm_object.h: Add prototype for vm_object_allocate_wait().

vm_page.c: Add page-based copy on write setup, clear and fault
routines.

vm_page.h: Add page based COW function prototypes and variable in
the vm_page structure.

Many thanks to Drew Gallatin, who wrote the zero copy send and receive
code, and to all the other folks who have tested and reviewed this code
over the years.


# 920a6f7e 09-Jun-2002 Chad David <davidc@FreeBSD.org>

Add signal.9 and friends.


# 382682b2 18-May-2002 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Add description for uma_zcreate().

Submitted by: arr


# 7c32182e 29-Apr-2002 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Prefix the remaining functions with uma_ as is now the case in UMA.


# 2f915276 29-Apr-2002 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

zinit() does not exist anymore.


# 9daecfc4 30-Apr-2002 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Add a MLINKS to uma.9 from zone.9.


# 268c1b9c 30-Apr-2002 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Remove MLINKS to zinitna, it does not exist anymore.


# c25d2ac8 30-Apr-2002 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Remove MLINKS to zbootinit. This has been gone for a while now.


# aabc5d3d 29-Apr-2002 Mike Barcroft <mike@FreeBSD.org>

Add links for bswap16.9, bswap32.9, and bswap64.9.


# 468f8a27 12-Apr-2002 Chad David <davidc@FreeBSD.org>

Add entries for selrecord.9.


# 80cc42da 02-Apr-2002 Andrew R. Reiter <arr@FreeBSD.org>

- Add notes about SX_SYSINIT and MTX_SYSINIT in order to document the
recent additions of these macros.
- Add in a MLINK to create SX_SYSINIT.9 and MTX_SYSINIT.9.


# cfa02828 02-Apr-2002 John Baldwin <jhb@FreeBSD.org>

- Update to new suser() API.
- Spell privilege properly.
- Grammar nits.


# aa43564a 27-Mar-2002 Dima Dorfman <dd@FreeBSD.org>

Add a manual page for the mtx_pool_* routines.

PR: 36350
Submitted by: Garrett Rooney <rooneg@electricjellyfish.net>
Reviewed by: dillon


# 44a8ff31 12-Mar-2002 Archie Cobbs <archie@FreeBSD.org>

Add realloc() and reallocf(), and make free(NULL, ...) acceptable.

Reviewed by: alfred


# 8a1791ed 05-Mar-2002 Mike Barcroft <mike@FreeBSD.org>

Create a manual to document the new kernel byte order conversion
functions.

Reviewed by: tmm


# 0db0f192 02-Mar-2002 Dima Dorfman <dd@FreeBSD.org>

Document cru2x().


# 44c63b64 10-Feb-2002 Dima Dorfman <dd@FreeBSD.org>

The routine is dev_depends(); consistently spell it that way.

PR: 34047
Submitted by: Maxime Henrion <mux@sneakerz.org>
Pointy hat to: dd


# be6b96ea 06-Feb-2002 Mark Murray <markm@FreeBSD.org>

Document entropy device bits.


# a15fa068 05-Feb-2002 Brian Feldman <green@FreeBSD.org>

Add a manpage for VOP_REVOKE(9).

Sponsored by: DARPA, NAI Labs


# 5385e8bf 25-Jan-2002 Chad David <davidc@FreeBSD.org>

Merged all of the lockmgr functions into a single file (lock.9); as well,
some content and layout changes were made.

lock.9 had existed before but was never added to Makefile, so it was
never installed. That is why the duplicate files were created in the
first place.

Reviewed by: ru, alfred


# 48ad3544 09-Jan-2002 Ruslan Ermilov <ru@FreeBSD.org>

get_cyclecounter.9 has been repo-copied to get_cyclecount.9.


# 371c0c84 06-Jan-2002 Kelly Yancey <kbyanc@FreeBSD.org>

Document sbuf_trim() and sbuf_vprintf(); add MLINKs.
Clarify that the contents of a caller-supplied buffer are undefined and
should not be examined directly.

Reviewed by: des


# e5b4afac 04-Jan-2002 John Baldwin <jhb@FreeBSD.org>

Fully catch up to the recent critical section API change. Update the
content of the manpage and document cpu_critical_enter/exit.


# f4af1f07 07-Dec-2001 Chad David <davidc@FreeBSD.org>

Add a man page describing the fuctions directly related to network domains.

Reviewed by: alfred


# ffc0b97f 02-Dec-2001 Alfred Perlstein <alfred@FreeBSD.org>

More kernel vfs docco.

Xref vfs_mount(9) from vfs_mount(9)

Submitted by: Chad David <davidc@acns.ab.ca>
PR: docs/32431


# 21642577 01-Dec-2001 Alfred Perlstein <alfred@FreeBSD.org>

Add manpages describing various vfs and vm APIs.

Submitted by: Chad David <davidc@acns.ab.ca>


# 57813e7f 26-Nov-2001 Ruslan Ermilov <ru@FreeBSD.org>

Bring the ucred(9) manpage in sync with the source.

Specifically, document the crshared() function and
fix the prototype and description of the crcopy()
function.

PR: docs/32275
Submitted by: Chad David <davidc@acns.ab.ca>
Reviewed by: jhb


# 7fe151be 23-Oct-2001 John Baldwin <jhb@FreeBSD.org>

Document sx_assert(9).


# 9bcf4808 04-Oct-2001 Bruce Evans <bde@FreeBSD.org>

Second round of spelling fixes for vm_page_io_finised. The function name
is actually vm_page_io_finish.


# f350e13c 04-Oct-2001 Bruce Evans <bde@FreeBSD.org>

Removed garbage:
- bus_generic_map_intr.9. This has been undead for more than 3 years
following the changes in rev.1.4 of sys/bus.h.
- CONDSPLASSERT.9, SPLASSERT.9. These have been undead since SMPng.
They were even less useful than most section 9 man pages -- the
interfaces described in them have never been used in the FreeBSD
source tree.


# 320adc96 30-Sep-2001 Dag-Erling Smørgrav <des@FreeBSD.org>

Token man page for pseudofs(9).


# c369ba59 27-Aug-2001 Robert Watson <rwatson@FreeBSD.org>

o Attach vaccess_acl_posix1e.9 to the build.
o Cross-reference vaccess_acl_posix1e.9 from vaccess.9.

Obtained from: TrustedBSD Project


# 3f61520e 27-Aug-2001 Robert Watson <rwatson@FreeBSD.org>

o Hook up vaccess.9 to the build.

Submitted by: ru


# b4e95913 23-Aug-2001 John Baldwin <jhb@FreeBSD.org>

Remove references to asleep/await.


# 088be0c6 21-Aug-2001 Alexander Langer <alex@FreeBSD.org>

Link MULTI_DRIVER_MODULE.9 to DRIVER_MODULE.9


# 54db32e9 14-Aug-2001 Jason Evans <jasone@FreeBSD.org>

Implement kernel semaphores.

Reviewed by: jhb


# d55229b7 13-Aug-2001 Jason Evans <jasone@FreeBSD.org>

Add sx_try_upgrade() and sx_downgrade().

Submitted by: Alexander Kabaev <ak03@gte.com>


# 033e89ed 10-Aug-2001 Ruslan Ermilov <ru@FreeBSD.org>

Add manpage for pgfind(9).

PR: docs/29552
Submitted by: Evan Sarmiento <kaworu@sektor7.ath.cx>


# 5ca0c84e 09-Aug-2001 Thomas Moestl <tmm@FreeBSD.org>

Document zdestroy().

Reviewed by: des


# 92d3777c 08-Aug-2001 Ruslan Ermilov <ru@FreeBSD.org>

s/vm_page_io_finised/vm_page_io_finished/

Submitted by: Chad David <davidc@colnta.acns.ab.ca>


# 920ae52d 06-Aug-2001 Jason Evans <jasone@FreeBSD.org>

Document sx_try_[sx]lock().


# 0a6ca2a7 30-Jul-2001 Alfred Perlstein <alfred@FreeBSD.org>

More updates from Chad.

Submitted by: Chad David <davidc@acns.ab.ca>
Reviewed by: sheldonh


# 2ec27ccd 26-Jul-2001 Chris Costello <chris@FreeBSD.org>

Add a short man page describing the vfs_unmountall() function.

MFC after: 1 week


# 609ad476 18-Jul-2001 Alfred Perlstein <alfred@FreeBSD.org>

Install and provide MLINKS for:
pbuf.9 vm_page_alloc.9 vm_page_copy.9 vm_page_flag.9 vm_page_hold.9
vm_page_insert.9 vm_page_io.9 vm_page_lookup.9 vm_page_protect.9
vm_page_sleep_busy.9 vm_page_wakeup.9 vm_page_wire.9
vm_page_zero_fill.9 vm_set_page_size.9


# 17a3206c 16-Jul-2001 Ruslan Ermilov <ru@FreeBSD.org>

Manpage for pfind() and zpfind().

Submitted by: Evan Sarmiento <kaworu@sektor7.ath.cx>


# c1f3e4bf 14-Jul-2001 Jens Schweikhardt <schweikh@FreeBSD.org>

Removed whitespace at end-of-line; no content changes. I simply did
cd src/share; find man[1-9] -type f|xargs perl -pi -e 's/[ \t]+$//'

BTW, what editors are the culprits? I'm using vim and it shows
me whitespace at EOL in troff files with a thick blue block...

Reviewed by: Silence from cvs diff -b
MFC after: 7 days


# 4772483c 13-Jul-2001 Ruslan Ermilov <ru@FreeBSD.org>

Add a few more manpages from Chad.
Fold major.9, minor.9, umajor.9, and uminor.9 into a single device_ids.9.


# d248afb3 10-Jul-2001 Alfred Perlstein <alfred@FreeBSD.org>

Sort MAN= section.


# 8adb2d7b 10-Jul-2001 Alfred Perlstein <alfred@FreeBSD.org>

Install:
cdevsw_add.9 cdevsw_remove.9 devsw.9
major.9 minor.9 umajor.9 uminor.9 vn_isdisk.9


# 5c5e4328 09-Jul-2001 Alfred Perlstein <alfred@FreeBSD.org>

Link in new manpages:
BUF_LOCK.9 BUF_LOCKFREE.9 BUF_LOCKINIT.9
BUF_REFCNT.9 BUF_TIMELOCK.9 BUF_UNLOCK.9
lockcount.9 lockdestroy.9 lockmgr.9 lockmgr_printinfo.9 lockstatus.9


# ffe734e3 09-Jul-2001 Alfred Perlstein <alfred@FreeBSD.org>

Link in manpages for vfs_busy, vfs_mount, vfs_unbusy, and vinvalbuf.


# a1382e7f 28-Jun-2001 John Baldwin <jhb@FreeBSD.org>

Add a new manpage to document the CTRx macros used when adding new KTR
tracepoints to kernel code.


# 8a6ecebc 28-May-2001 Dima Dorfman <dd@FreeBSD.org>

Link make_dev.9 to make_dev_alias.9 and depends_dev.9.


# a1977141 28-May-2001 Dima Dorfman <dd@FreeBSD.org>

Remove obsolete DEVFS manual pages. The routines they describe don't
exist in the new (phk's) DEVFS.

Approved by: phk


# 1f7eace1 04-May-2001 Dima Dorfman <dd@FreeBSD.org>

Add printf.9, and add links to tprintf.9 and uprintf.9.


# 50c39ea7 28-Apr-2001 Alexander Langer <alex@FreeBSD.org>

Add SYSCALL_MODULE.9, a manpage for the SYSCALL_MODULE wrapper macro
for syscall klds.

Some text of this manpage is based on the comments in the example
syscall module written by Assar Westerlund.

Reviewed by: ru


# 1c39cfb6 30-Mar-2001 John Baldwin <jhb@FreeBSD.org>

Correct the MLINKS for mutex.9 to reflect the API change and add a new
MLINK for mtx_initialized.

Reminded by: rwatson


# 5ecf4042 28-Mar-2001 John Baldwin <jhb@FreeBSD.org>

Add a manpage for the critical_enter/exit() functions.


# acaf79e1 27-Mar-2001 Ruslan Ermilov <ru@FreeBSD.org>

MAN[1-9] -> MAN.


# 74169a2c 11-Mar-2001 Alexander Langer <alex@FreeBSD.org>

Add a manpage for the DEV_MODULE kernel macro.


# ed488dd0 11-Mar-2001 Alexander Langer <alex@FreeBSD.org>

Add MODULE_DEPEND.9 and MODULE_VERSION.9


# 448be9f9 10-Mar-2001 Alexander Langer <alex@FreeBSD.org>

Add DEVICE_IDENTIFY.9


# a1a5ca55 09-Mar-2001 Boris Popov <bp@FreeBSD.org>

Add documentation for mchain API.

Reviewed by: asmodai, ru (mbchain.9)


# 85ac71e9 09-Mar-2001 Alexander Langer <alex@FreeBSD.org>

Add module.9 and DECLARE_MODULE.9


# ebadd4f5 08-Mar-2001 John Baldwin <jhb@FreeBSD.org>

Document the ithread_* API used to manage interrupt threads and their
list of handlers.


# 3d923860 05-Mar-2001 John Baldwin <jhb@FreeBSD.org>

Adjust swi.9 MLINKS to catch up to the new swi API.


# 6281b30a 05-Mar-2001 Jason Evans <jasone@FreeBSD.org>

Implement shared/exclusive locks.

Reviewed by: bmilekic, jake, jhb


# f4e8d446 03-Mar-2001 Mark Murray <markm@FreeBSD.org>

Extra MLINKS to reflect expansion of BUS_SETUP_INTR(9) manpage.


# 6e5801f1 01-Mar-2001 Warner Losh <imp@FreeBSD.org>

Add link for resource_query_unit, now documented in the
resource_query_string man page.


# 392651ed 01-Mar-2001 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Hook Warner's resource_* manpages to the build.
This includes appropriate MLINKS for the other functions contained
within them.


# c7adfa9c 06-Feb-2001 Boris Popov <bp@FreeBSD.org>

Add man page for VOP_GETVOBJECT, VOP_CREATEVOBJECT and VOP_DESTROYVOBJECT
operations.

Reviewed by: sheldonh


# bcf588d9 06-Feb-2001 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Add vcount.9 / count_dev.9.
Touched up a bit and added some consistency to the text by your's truly.

PR: 23745
Submitted by: Andrew Stevenson <andrew@ugh.net.au>


# 4d5a3a7a 01-Feb-2001 Bruce Evans <bde@FreeBSD.org>

Removed vestiges of vop_mmap.


# ea48868b 27-Jan-2001 Dag-Erling Smørgrav <des@FreeBSD.org>

Add MLINKS for sbuf_clear() and sbuf_overflowed().


# 0aa028ff 27-Jan-2001 Dag-Erling Smørgrav <des@FreeBSD.org>

Add a man page for the zone allocator.


# ef7b803d 23-Jan-2001 John Baldwin <jhb@FreeBSD.org>

- Activate runqueue.9, scheduler.9, and sleepqueue.9 along with appropriate
MLINKS.
- Update MLINKS for mi_switch.9.


# d1c1b841 21-Jan-2001 Jason Evans <jasone@FreeBSD.org>

Remove MUTEX_DECLARE() and MTX_COLD. Instead, postpone full mutex
initialization until after malloc() is safe to call, then iterate through
all mutexes and complete their initialization.

This change is necessary in order to avoid some circular bootstrapping
dependencies.


# 238510fc 15-Jan-2001 Jason Evans <jasone@FreeBSD.org>

Implement condition variables.


# aea5b8ff 15-Dec-2000 John Baldwin <jhb@FreeBSD.org>

Catch up to the changes to the kthread API.


# 863edaec 13-Dec-2000 Dag-Erling Smørgrav <des@FreeBSD.org>

Add sbuf(9) man page with links to API function names.

Reviewed by: ru


# a0ae47cd 21-Nov-2000 Alfred Perlstein <alfred@FreeBSD.org>

Install DELAY(9).


# a28724c2 21-Nov-2000 Mark Murray <markm@FreeBSD.org>

Add new man page to the mix.


# 6323c703 21-Nov-2000 Mark Murray <markm@FreeBSD.org>

Whitespace-only change. Tidy up, alphabetise and wrap.


# a984db45 15-Nov-2000 Alfred Perlstein <alfred@FreeBSD.org>

install/build accf_* manpages


# ab7e1991 13-Nov-2000 John Baldwin <jhb@FreeBSD.org>

Beef up the description of the kernel thread API.

Reviewed by: sheldonh, jasone


# dc4e9f1a 13-Nov-2000 John Baldwin <jhb@FreeBSD.org>

Describe the new software interrupt thread functionality.

Reviewed by: sheldonh, jasone


# eaca6183 13-Nov-2000 John Baldwin <jhb@FreeBSD.org>

Add a manpage to document the atomic operations including a quick treatment
of memory barriers and the newish atomic variants that include them.

Reviewed by: sheldonh


# dc5a4040 30-Oct-2000 Ruslan Ermilov <ru@FreeBSD.org>

Add pfil.9 manpage to build after a repository copy.


# 7dbdc1bf 26-Oct-2000 John Baldwin <jhb@FreeBSD.org>

Add in MLINKS for all of the various mutex functions to mutex.9


# de06f907 26-Oct-2000 Nik Clayton <nik@FreeBSD.org>

Add a prototype mbuf.9 man page. Probably needs work, but it's a good
start.

PR: docs/22053
Submitted by: Yar Tikhiy <yar@comp.chem.msu.su>


# 67297998 14-Oct-2000 Mark Murray <markm@FreeBSD.org>

Add a man page for part of the PRNG API.


# e6e73376 06-Oct-2000 Brian Somers <brian@FreeBSD.org>

Index: Makefile
===================================================================
RCS file: /home/ncvs/src/share/man/man9/Makefile,v
retrieving revision 1.75
diff -u -r1.75 Makefile
--- Makefile 2000/09/17 12:15:12 1.75
+++ Makefile 2000/10/06 23:24:26
@@ -69,6 +69,8 @@
MLINKS+=make_dev.9 destroy_dev.9
MLINKS+=malloc.9 FREE.9 malloc.9 MALLOC.9 malloc.9 free.9
MLINKS+=mi_switch.9 cpu_switch.9
+MLINKS+=namei.9 NDINIT.9
+MLINKS+=namei.9 NDFREE.9
MLINKS+=posix4.9 p1003_1b.9
MLINKS+=psignal.9 gsignal.9 psignal.9 pgsignal.9
MLINKS+=rtalloc.9 rtalloc1.9 rtalloc.9 rtalloc_ign.9


# 72f8c78b 16-Sep-2000 Alexander Langer <alex@FreeBSD.org>

Add DRIVER_MODULE.9, the manual page describing the kernel driver
declaration macro.
Thanks to Sheldon for a big patch with language/mdoc fixes.

Reviewed by: asmodai, sheldonh


# e66ccea4 10-Sep-2000 Jake Burkholder <jake@FreeBSD.org>

Add scant documentation for msleep.


# 0384fff8 06-Sep-2000 Jason Evans <jasone@FreeBSD.org>

Major update to the way synchronization is done in the kernel. Highlights
include:

* Mutual exclusion is used instead of spl*(). See mutex(9). (Note: The
alpha port is still in transition and currently uses both.)

* Per-CPU idle processes.

* Interrupts are run in their own separate kernel threads and can be
preempted (i386 only).

Partially contributed by: BSDi (BSD/OS)
Submissions by (at least): cp, dfr, dillon, grog, jake, jhb, sheldonh


# 21c58b8d 28-Aug-2000 Doug Rabson <dfr@FreeBSD.org>

Document kobj_class_compile_static().


# 58ea8275 16-Aug-2000 Mark Murray <markm@FreeBSD.org>

Mention more functions in the headers so whatis(1) can find them, and
create links to functions so added found.


# bd3cdc31 15-Jul-2000 Andrzej Bialecki <abial@FreeBSD.org>

These patches implement dynamic sysctls. It's possible now to add
and remove sysctl oids at will during runtime - they don't rely on
linker sets. Also, the node oids can be referenced by more than
one kernel user, which means that it's possible to create partially
overlapping trees.

Add sysctl contexts to help programmers manage multiple dynamic
oids in convenient way.

Please see the manpages for detailed discussion, and example module
for typical use.

This work is based on ideas and code snippets coming from many
people, among them: Arun Sharma, Jonathan Lemon, Doug Rabson,
Brian Feldman, Kelly Yancey, Poul-Henning Kamp and others. I'd like
to specially thank Brian Feldman for detailed review and style
fixes.

PR: kern/16928
Reviewed by: dfr, green, phk


# 7bca8b21 11-Jul-2000 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Install accept_filter.9

Forgotten by: alfred


# 9092a4bc 08-Jun-2000 Alexander Langer <alex@FreeBSD.org>

Add bus_alloc_resource.9 and bus_release_resource.9.
bus_release_resource.9 contains a paragraph obtained from a mail
by Warner Losh <imp@FreeBSD.org> to myself.

Reviewed by: asmodai, hoek; in parts by msmith, mdodd and imp


# 82323455 28-May-2000 Doug Rabson <dfr@FreeBSD.org>

Add documentation for taskqueue apis.


# c6850126 08-Apr-2000 Doug Rabson <dfr@FreeBSD.org>

Add manpage for kernel object system.


# 42a3fc35 01-Apr-2000 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Add and install BUS_SETUP_INTR.9.
This effectively replaces BUS_CREATE_INTR.9 and BUS_CONNECT_INTR.9.

Reviewed by: n_hibma


# 03be7170 02-Apr-2000 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Get rid of the manpages for BUS_CREATE_INTR() and BUS_CONNECT_INTR().
These got replaced by BUS_SETUP_INTR().

This once again illustrates an API change without informing -doc, so
that these sort post cleanup actions could've been avoided.

And then people wonder why the docs suck so much at times.

Reviewed by: peter


# 084f33c2 20-Mar-2000 Bruce Evans <bde@FreeBSD.org>

Actually install KASSERT.9.


# 2e6b4dc3 19-Mar-2000 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

Add the manpage for CONDSPLASSERT().
This was based upon the manpage written by jmb for SPLASSERT().


# 5eca43fa 18-Mar-2000 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>

After about two months I am the first to notice that SPLASERT.9 never
got installed.

Also, correct the copyright to a more realistic date (1996->2000).
Fix some wordings and omissions.


# ae5ccfad 06-Jan-2000 Alexey Zelkin <phantom@FreeBSD.org>

Add new manpages for:
microtime(9)
nanotime(9)
getmicrotime(9)
getnanotime(9)
microuptime(9)
nanouptime(9)
getmicrouptime(9)
getnanouptime(9)
tvtohz(9)

Based on PR: docs/15889
Submitted by: Kelly Yancey <kbyanc@posi.net>


# 32900e82 04-Jan-2000 Robert Watson <rwatson@FreeBSD.org>

Man pages for the VFS extended attribute and access control list vnops.

Reviewed by: eivind


# bd00dbfa 23-Dec-1999 Bruce Evans <bde@FreeBSD.org>

"Fixed" assorted bitrot. remove_dev() was renamed to destroy_dev().
VOP_ABORTOP() went away. at_shutdown() was replaced by undocumented
event handling. Rename remove_dev() here too, and remove the dead
and dead wrong man pages.


# fa930a73 02-Dec-1999 Nick Hibma <n_hibma@FreeBSD.org>

Add the device_get_children(9) man page.


# 94b1839d 25-Sep-1999 Chris Costello <chris@FreeBSD.org>

Document the make_dev(9) and remove_dev(9) facilities.
remove_dev(9) is created as a link to the existing make_dev(9) page.

Reviewed by: phk


# 2da64d5d 25-Sep-1999 Chris Costello <chris@FreeBSD.org>

Document the devtoname(9) kernel interface.


# 37af2883 24-Sep-1999 Matthew Dillon <dillon@FreeBSD.org>

More locking clarifications. Add skeleton manual page for VOP_LEASE


# 57129f42 12-Sep-1999 Doug Rabson <dfr@FreeBSD.org>

Add new manpage device_set_flags.9 and add links for
device_set_desc_copy.9 and device_get_flags.9.


# 7ad5ee37 11-Sep-1999 Chris Costello <chris@FreeBSD.org>

Add a link for uiomove.9 to uio.9


# fb6d83aa 10-Sep-1999 Alfred Perlstein <alfred@FreeBSD.org>

Document VFS changes:

VFS_CHECKEXP.9, now used to check export credentials
VFS_FHTOVP.9, only used for filehandle to vnode, no access checks are done.
VFS.9, inform people of the vfs_std* functions available to avoid
ugly casts to eopnotsup and making of dummy functions to return 0.


# 0d28dd1d 03-Sep-1999 Alexey Zelkin <phantom@FreeBSD.org>

Replace stale references to device_add_child_after(9) with
device_child_add_ordered(9)

PR: 13210
Submitted by: Alexey Zelkin <phantom@cris.net>
Reviewed by: mpp
Forgotten by: dfr


# 7f3dea24 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# 6dcd4819 22-Jun-1999 Nick Hibma <n_hibma@FreeBSD.org>

Add man page for device_quiet and friends


# 21128988 17-Mar-1999 Guy Helmer <ghelmer@FreeBSD.org>

Document the flags and p parameters to VOP_LOCK and VOP_UNLOCK. Also,
at Doug Rabson's suggestion, add vn_lock(9) as an alternative name for
this manpage and note its calling convention.

PR: docs/9338


# ec1b1086 06-Mar-1999 Bruce Evans <bde@FreeBSD.org>

Removed old scsi section 9 man pages. Only cd.9 has been converted to
cam. scsiconf.9, sd.9, and st.9 can now be found in the Attic.

Reviewed by: ken


# 2f02d393 06-Mar-1999 Bruce Evans <bde@FreeBSD.org>

Fixed bitrot in synopsis (devfs_link was renamed to devfs_makelink).
Didn't fix bitrot in this page's name; just install a link.


# 88ec80ed 30-Jan-1999 Nicolas Souchu <nsouch@FreeBSD.org>

ppbconf.9 removed


# bc6b8d12 08-Jan-1999 David E. O'Brien <obrien@FreeBSD.org>

Add MLINKS for devstat kernel interfaces.


# 88b85f74 22-Dec-1998 Matthew Dillon <dillon@FreeBSD.org>

Add manual page describing kernel buffer management system (i.e.
kern/vfs_bio.c).


# f44bc94d 21-Dec-1998 Matthew Dillon <dillon@FreeBSD.org>

Add manual page for experimental kernel asleep() and await() routines


# fa7bfeb7 27-Oct-1998 Nicolas Souchu <nsouch@FreeBSD.org>

microseq.9: general purpose parallel microcode for ppbus(4)
ppbconf.9: general info about ppbus(4) structures


# c78f3f0d 27-Sep-1998 Eivind Eklund <eivind@FreeBSD.org>

Add a manpage for namei().

Markup changes and review by: dfr


# fb43a2ea 15-Sep-1998 Justin T. Gibbs <gibbs@FreeBSD.org>

Add devstat.9.


# cefd51ec 03-Sep-1998 Doug Rabson <dfr@FreeBSD.org>

Add manpages for the new device framework.


# 8a6472b7 28-Mar-1998 Peter Dufault <dufault@FreeBSD.org>

Finish _POSIX_PRIORITY_SCHEDULING. Needs P1003_1B and
_KPOSIX_PRIORITY_SCHEDULING options to work. Changes:

Change all "posix4" to "p1003_1b". Misnamed files are left
as "posix4" until I'm told if I can simply delete them and add
new ones;

Add _POSIX_PRIORITY_SCHEDULING system calls for FreeBSD and Linux;

Add man pages for _POSIX_PRIORITY_SCHEDULING system calls;

Add options to LINT;

Minor fixes to P1003_1B code during testing.


# 917e476d 04-Mar-1998 Peter Dufault <dufault@FreeBSD.org>

Reviewed by: msmith, bde long ago
POSIX.4 headers and sysctl variables. Nothing should change
unless POSIX4 is defined or _POSIX_VERSION is set to 199309.


# 9d44ece5 16-Jan-1998 Bruce Evans <bde@FreeBSD.org>

Removed references to the man pages for the obsolete interfaces
VOP_BLKATOFF, VOP_SEEK, VOP_SELECT, VOP_TRUNCATE, VOP_UPDATE,
VOP_VALLOC and VOP_VFREE.


# fc372b54 01-Jan-1998 Bruce Evans <bde@FreeBSD.org>

Sorted lists. Use the same style as most Makefiles for `MLINKS+=' lines.


# 3cfd401c 01-Jan-1998 Bruce Evans <bde@FreeBSD.org>

Install devfs_remove_dev.9 and suser.9.


# 16e1a942 12-Aug-1997 Eivind Eklund <eivind@FreeBSD.org>

Activate the bios.9 manpage.

PR: 4215


# db0ed862 08-Apr-1997 Mike Pritchard <mpp@FreeBSD.org>

Document wakeup_one().


# 88cf6634 22-Mar-1997 Mike Pritchard <mpp@FreeBSD.org>

Add malloc(9) to document the kernel malloc() and free() routines.

Obtained from: NetBSD w/changes to reflect current FreeBSD headers
and diagnostic messages.


# c8ff0947 22-Mar-1997 Mike Pritchard <mpp@FreeBSD.org>

Add vslock(9) to document the vslock() and vsunlock() kernel functions.

Obtained from: NetBSD


# dad0f566 22-Mar-1997 Mike Pritchard <mpp@FreeBSD.org>

Add kernacc(9) that documents the kernacc() and useracc() kernel
functions.

Obtained from: NetBSD (renamed from access.9)


# 4b2502a3 22-Mar-1997 Mike Pritchard <mpp@FreeBSD.org>

Add physio(9).

Obtained from: NetBSD w/minor FreeBSD changes


# b6c4b190 22-Mar-1997 Mike Pritchard <mpp@FreeBSD.org>

Add mi_switch.9. It documents the kernel mi_switch() and cpu_switch()
context switching functions.

Obtained from: NetBSD (renamed from ctxsw.9)


# ec505e04 22-Mar-1997 Mike Pritchard <mpp@FreeBSD.org>

Add resettodr(9).

Obtained from: NetBSD


# 4035c910 22-Mar-1997 Mike Pritchard <mpp@FreeBSD.org>

Add inittodr(9) to document how the system clock is initialized.
Obtained from NetBSD and then modified to reflect how things work
in FreeBSD, along with some minor changes to make a few points
clearer.


# de1543a4 22-Mar-1997 Mike Pritchard <mpp@FreeBSD.org>

Add time(9) to document the kernel time variables. Obtained from
NetBSD and then modified by me to reflect some FreeBSD specific
things and to clarify some other pointed based on some old mail
from Bruce Evans about this man page.


# fab63cc4 03-Mar-1997 Doug Rabson <dfr@FreeBSD.org>

This is the current draft of my filesystem manpages. Some files are
incomplete and some are just placeholders but I wanted to try to get
something at least into 2.2 on the grounds that what I have is a lot
better than nothing. I also wanted to commit something which documents
the interfaces in 2.2 before I start updating the documentation for 3.0.

This is a definite 2.2 candidate and is also relavent to 2.1 if people
still care about that branch.


# e25aeca9 22-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Revert $FreeBSD$ back to $Id$


# 2f581b2b 14-Feb-1997 Mike Pritchard <mpp@FreeBSD.org>

Add boot(9) Obtained from NetBSD w/modifications by me.


# 88fc1887 13-Feb-1997 Mike Pritchard <mpp@FreeBSD.org>

Add MD5(9).

Obtained from: OpenBSD


# d654cd00 13-Feb-1997 Mike Pritchard <mpp@FreeBSD.org>

Add psignal(9).

Obtained from: NetBSD


# d46ebd58 13-Feb-1997 Mike Pritchard <mpp@FreeBSD.org>

Add panic(9).

Obtained from: NetBSD


# 3cf493c6 09-Feb-1997 Joerg Wunsch <joerg@FreeBSD.org>

Various man pages describing the internals of the SCSI subsystem.

Submitted by: John-Mark Gurney <gurney_j@resnet.uoregon.edu>


# c5ec806f 02-Feb-1997 Joerg Wunsch <joerg@FreeBSD.org>

Add a man page for the uio handling, after all the recent ramblings in
the hackers list.

Please correct me where i'm wrong.


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 3cb60f1a 17-Dec-1996 Garrett Wollman <wollman@FreeBSD.org>

Create a new manual page describing how network interfaces and
addresses are glued together with the generic networking code.


# 50853e53 08-Oct-1996 Garrett Wollman <wollman@FreeBSD.org>

Add an rtentry(9) page to describe the structure of a routing-table
entry and the metrics and flags which pertain thereto.


# ad31211d 08-Oct-1996 Garrett Wollman <wollman@FreeBSD.org>

Document what I believe to be the interface of rtalloc*.


# f89810cd 04-Oct-1996 Joerg Wunsch <joerg@FreeBSD.org>

Reviewed by:
Submitted by:
Obtained from:


# 3fcaebbf 18-Aug-1996 Julian Elischer <julian@FreeBSD.org>

Add man-pages for at_exit, at_fork and at_shutdown()
so that people can look and comment.
I'll add the at_fork and at_exit immediatly, but I'll
add teh at_shutdown later as it's more extensive
and I desire people's comments..

julian


# 5406291a 15-Apr-1996 Mike Pritchard <mpp@FreeBSD.org>

Add man pages for the copy*, fetch*, and store* families of
kernel functions.

Also added timeout(9) to the makefile.

Reviewed by: joerg
Obtained from: NetBSD


# 7b0d14f5 03-Apr-1996 Joerg Wunsch <joerg@FreeBSD.org>

Populate this. :)

Add a man page for tsleep()/wakeup().


# 7d120151 01-Apr-1996 Marc G. Fournier <scrappy@FreeBSD.org>

Makefile: added devfs_add_devswf.9, removed devfs_add_devsw.9

devfs_link.9: modified man page to reflect source code

devfs_add_devsw.9: replaced by devfs_add_devswf.9

devfs_add_devswf.9: proper function for adding devices to DEVFS


# 151eb452 01-Jan-1996 Bruce Evans <bde@FreeBSD.org>

Added new devfs manpages here too.


# e710b9f7 14-Dec-1995 Bruce Evans <bde@FreeBSD.org>

Fixed manual section number.


# b030a305 14-Dec-1995 Poul-Henning Kamp <phk@FreeBSD.org>

Add a slightly edited version of the style document.


# 0786f79c 14-Dec-1995 Poul-Henning Kamp <phk@FreeBSD.org>

Add a section 9 about the kernel to out man pages.

Please help fill this out !