326 Commits

Author SHA1 Message Date
attilio
588d2ab6cc Update manpage with lockmgr_assert() description. 2008-02-13 21:54:16 +00:00
brueffer
cafbfde84b Remove dublicate MLINK.
Submitted by:	David Naylor <blackdragon@highveldmail.co.za>
2008-02-13 09:50:37 +00:00
attilio
a0619f9b6e Add manpages for BUF_RECURSED(9) and BUF_ISLOCKED(9) and connect them to
the build.

Reviewed by: brueffer
2008-01-22 21:26:35 +00:00
attilio
32e7c5ef2f Add the newly added function lockmgr_recursed() to the manpages. 2008-01-22 20:16:09 +00:00
attilio
0aea123e54 BUF_REFCNT(9) function no more exists, so just axe out the manpage. 2008-01-22 20:02:24 +00:00
attilio
6fb7e0c2bd Fix lock.9 manpage in order to recall lockmgr_disown() with 'man' command. 2008-01-22 19:58:30 +00:00
rwatson
090235e567 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.
2007-12-01 22:04:16 +00:00
rwatson
e1786b6798 Add description of stack_print() and MLINK. 2007-11-29 17:16:55 +00:00
rwatson
c103c92c27 Add a man page for stack(9).
MFC after:	1 week
2007-11-27 11:02:41 +00:00
gabor
076ec4e674 - Add callout_init_rw.9 to MLINKS of timeout.9
Forgotten by:	gabor
Reminded by:	ru
2007-11-20 14:13:49 +00:00
ru
0e0d2af7e9 Sort. 2007-11-13 20:26:27 +00:00
rwatson
c2672b9211 Hook up rmlock(9) and its links to the build. 2007-11-10 16:47:38 +00:00
julian
00b0426d31 Doc police fixes
thanks to: ru@
2007-10-26 16:50:21 +00:00
ru
095e8fb6e4 Sort MLINKS. 2007-10-26 11:01:17 +00:00
netchild
21c6e78ea7 Backout sensors framework.
Requested by:	phk
Discussed on:	cvs-all
2007-10-15 20:00:24 +00:00
netchild
4af9918bc0 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)
2007-10-14 10:45:31 +00:00
marius
869d9fdd01 Add an MLINKS for pci_find_dbsf.9.
Submitted by:	ru
Approved by:	re (gnn)
2007-10-05 22:50:44 +00:00
rwatson
ef86a72db6 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
2007-09-05 19:46:23 +00:00
jhb
1b6732031f Document sx_xholder(). 2007-05-19 20:24:32 +00:00
thompsa
9904d9b5ec Link the defunct MUTEX_PROFILING option to LOCK_PROFILING. 2007-05-13 22:56:58 +00:00
maxim
a9ed2a9332 o Document vdropl(9) [1].
o Add an MLINK for vdropl().

Reviewed by:	des [1]
Obtained from:	wording from vgone(9)
2007-04-01 09:48:59 +00:00
jhb
b0b93a3c55 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
2007-03-31 23:23:42 +00:00
julian
6f50156041 Connect the locking man page to the build.
Next step is to add it as a "See Also" to related man pages.
2007-03-30 17:56:19 +00:00
maxim
95fe219a6a o Trim unneeded backslash. 2007-03-28 04:43:55 +00:00
maxim
4ac0fc62a4 o Actually add MLINKs for priv(9) functions. 2007-03-28 04:41:50 +00:00
brueffer
a0403e7fbe Add MLINKs for priv(9) functions. 2007-03-27 21:20:57 +00:00
jhb
f5e3969340 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.
2007-03-09 22:41:01 +00:00
jhb
0090f87663 - 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.
2007-03-09 16:59:27 +00:00
jhb
83009be85d - 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.
2007-03-09 16:52:26 +00:00
jhb
24c3d87828 - Sort rwlock functions similar to the order in mutex(9).
- Add a missing MLINK.
2007-03-09 16:44:58 +00:00
davidc
39752f2e3b Add vfs_getopt.9 to the build, and add links for related functions. 2007-03-02 17:03:56 +00:00
rwatson
34647636ba Add rw_wowned(9) symlink. 2007-02-26 19:09:36 +00:00
ru
1652cacd15 Remove the traces of vm_page_unmanage(). 2007-02-25 06:51:11 +00:00
jhb
401f7aaf8a 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
2007-02-23 16:22:09 +00:00
pjd
ed1bce702f VFS_VPTOFH(9) was replaced with VOP_VPTOFH(9).
VFS_VPTOFH.9 was repo-copied to VOP_VPTOFH.9.

Repo-copy done by:	joe
2007-02-16 14:27:59 +00:00
jhb
1563757ce2 MLINK for bus_dmamap_load_mbuf_sg(9) 2007-02-12 17:53:21 +00:00
rwatson
8fe23ac3fe Add MLINKS for sf_buf.9. 2007-01-29 11:27:44 +00:00
rwatson
8cd0ff6fa5 Add a rudimentary man page for sf_bufs, based on my rudimentary
understanding of sf_bufs.
2007-01-28 16:07:50 +00:00
rrs
af870dbd2e 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);
2007-01-15 15:06:28 +00:00
rwatson
1d3d170d84 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
2006-12-15 23:35:15 +00:00
imp
ea66727862 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...
2006-11-25 22:36:09 +00:00
ceri
2dc11e5d84 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
2006-11-19 13:35:03 +00:00
ru
a84e74c205 Fix build (forgotten MUTEX_PROFILING.9 -> LOCK_PROFILING.9). 2006-11-11 08:59:34 +00:00
rwatson
7288104e20 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>
2006-11-06 13:37:19 +00:00
ru
7a91122c51 Sort MAN and MLINKS lists. 2006-10-05 12:40:44 +00:00
jmg
84361990fc sort MLINKS properly
Pointed out by:	ru
2006-10-05 08:55:35 +00:00
jmg
d5ba3e12e8 add man page talking about how to interface w/ the kqueue system so others
can write additional filters...

mdoc police please!
2006-10-04 20:16:23 +00:00
andre
8686e7b38a Connect hash(9) to the build and add MLINKS for all functions.
Pointed out by:	ru
2006-10-02 11:51:25 +00:00
imp
5d28f75c8d Document config_intrhook.
MFC After: 250 millifortnights
2006-09-25 20:12:13 +00:00
maxim
dd90b41682 o Sort sx(9) MLINKS. 2006-07-12 19:12:16 +00:00