From c5395b92eb5cd3a01d6dc403465a9a3c0bd0d7d3 Mon Sep 17 00:00:00 2001 From: "Jonathan M. Bresler" Date: Sun, 16 Jan 2000 02:08:37 +0000 Subject: [PATCH] Add SPLASSERT.9 man page. SPLASSERT() commit to follow immediately. Approved by: jkh --- share/man/man9/SPLASSERT.9 | 86 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 share/man/man9/SPLASSERT.9 diff --git a/share/man/man9/SPLASSERT.9 b/share/man/man9/SPLASSERT.9 new file mode 100644 index 000000000000..bbffde51aea5 --- /dev/null +++ b/share/man/man9/SPLASSERT.9 @@ -0,0 +1,86 @@ +.\" -*- nroff -*- +.\" +.\" Copyright (c) 1996 Joanthan M Bresler +.\" +.\" All rights reserved. +.\" +.\" This program is free software. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $FreeBSD$ +.\" +.Dd January 14, 2000 +.Os +.Dt SPLASSERT 9 +.Sh NAME +.Nm SPLASSERT +.Nd kernel spl level verification macro +.Sh SYNOPSIS +.Fd options INVARIANTS +.Fd options INVARIANT_SUPPORT +.Fn SPLASSERT "char *level, char *msg" +.Sh DESCRIPTION +In a kernel compiled with both "options INVARIANTS" +and "options INVARIANT_SUPPORT", +the +.Fn SPLASSERT +macro compares the current spl level of the kernel with the spl +.Ar level +specified in the macro +.Fn SPLASSERT +If the specified +.Ar level +is not active +.Fn SPLASSERT +calls the +.Fn KASSERT +macro with the +.Ar msg, +terminating the running system. +.Pp +In a kernel that does not have both "options INVARIANTS" +and "options INVARIANT_SUPPORT", +the +.Fn SPLASSERT +macro is defined to be no-op. +.Sh EXAMPLE +The kernel function +.Fn rtredirect +must be called at +.Fn splnet +.Bd -literal -offset indent +void +rtalloc(ro) + register struct route *ro; +{ + SPLASSERT(net, "rtalloc()"); + rtalloc_ign(ro, 0UL); +} +.Ed +.Pp +.Sh SEE ALSO +.Xr config 8 , +.Xr KASSERT 9 , +.Xr panic 9 +.Sh AUTHORS +This man page was written by +.An Jonathan M Bresler .