Index: KASSERT.9 =================================================================== RCS file: KASSERT.9 diff -N KASSERT.9 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ KASSERT.9 19 Apr 2018 00:14:50 -0000 @@ -0,0 +1,105 @@ +.\" $OpenBSD: kern.9,v 1.23 2015/12/20 08:10:36 sf Exp $ +.\" +.\" Copyright (c) 2002, 2003 CubeSoft Communications, Inc. +.\" +.\" +.\" 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 AUTHOR ``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 AUTHOR 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. +.\" +.Dd $Mdocdate: December 20 2015 $ +.Dt KASSERT 9 +.Os +.Sh NAME +.Nm assert , +.Nm KASSERT , +.Nm KDASSERT , +.Nm KASSERTMSG , +.Nm KDASSERTMSG , +.Nm CTASSERT +.Nd kernel assert library routines +.Sh SYNOPSIS +.In lib/libkern/libkern.h +.Ft "void" +.Fn assert "CONDITION" +.Ft "void" +.Fn KASSERT "CONDITION" +.Ft "void" +.Fn KDASSERT "CONDITION" +.Ft "void" +.Fn KASSERTMSG "CONDITION" "fmt" "..." +.Ft "void" +.Fn KDASSERTMSG "CONDITION" "fmt" "..." +.Ft "void" +.Fn CTASSERT "CONDITION" +.Sh DESCRIPTION +The +kernel +library implements a set of useful functions and macros implementing +expression verification. +.Pp +These macros cause kernel +.Xr panic 9 +if the given condition evaluates to false. +.Fn assert +tests are always compiled in. +.Fn KASSERT +and +.Fn KASSERTMSG +tests are only included if the kernel has +.Dv DIAGNOSTIC +enabled. +.Fn KDASSERT +and +.Fn KDASSERTMSG +tests are only included if the kernel has +.Dv DEBUG +enabled. +The +.Fn KASSERTMSG +and +.Fn KDASSERTMSG +macros append +to the +.Xr panic 9 +format string the message specified by +.Fa format +and its subsequent arguments, similar to +.Xr printf 9 +functions. +.Pp +.Fn CTASSERT +causes a compile time error if the given condition evaluates to +false. +Its main purpose is to verify assertions about type and struct sizes that +would otherwise make the code fail at run time. +.Fn CTASSERT +can be used in global scope or at the start of blocks, where variable +declarations are allowed. +.Sh SEE ALSO +.Xr assert 3 , +.Xr panic 9 +.Sh HISTORY +The +.Fn KASSERTMSG +and +.Fn KDASSERTMSG +macros are taken from +.Nx . Index: Makefile =================================================================== RCS file: /cvs/src/share/man/man9/Makefile,v retrieving revision 1.288 diff -u -p -r1.288 Makefile --- Makefile 14 Dec 2017 00:41:58 -0000 1.288 +++ Makefile 19 Apr 2018 00:14:50 -0000 @@ -20,7 +20,7 @@ MAN= aml_evalnode.9 atomic_add_int.9 ato ieee80211_node.9 ieee80211_output.9 ieee80211_proto.9 \ ieee80211_radiotap.9 if_get.9 if_rxr_init.9 ifq_enqueue.9 \ ifq_deq_begin.9 iic.9 intro.9 inittodr.9 intr_barrier.9 \ - kern.9 km_alloc.9 knote.9 kthread.9 ktrace.9 \ + KASSERT.9 kern.9 km_alloc.9 knote.9 kthread.9 ktrace.9 \ loadfirmware.9 log.9 \ malloc.9 membar_sync.9 mbuf.9 mbuf_tags.9 md5.9 mi_switch.9 \ microtime.9 ml_init.9 mq_init.9 mutex.9 \ Index: kern.9 =================================================================== RCS file: /cvs/src/share/man/man9/kern.9,v retrieving revision 1.23 diff -u -p -r1.23 kern.9 --- kern.9 20 Dec 2015 08:10:36 -0000 1.23 +++ kern.9 19 Apr 2018 00:14:50 -0000 @@ -25,7 +25,7 @@ .\" POSSIBILITY OF SUCH DAMAGE. .\" .Dd $Mdocdate: December 20 2015 $ -.Dt KASSERT 9 +.Dt imax 9 .Os .Sh NAME .Nm imax , @@ -37,12 +37,6 @@ .Nm ulmax , .Nm ulmin , .Nm abs , -.Nm assert , -.Nm KASSERT , -.Nm KDASSERT , -.Nm KASSERTMSG , -.Nm KDASSERTMSG , -.Nm CTASSERT , .Nm skpc , .Nm scanc , .Nm bcmp , @@ -117,62 +111,6 @@ The .Fn abs function computes the absolute value of integer .Fa j . -.Sh ASSERTIONS -.nr nS 1 -.Ft "void" -.Fn assert "CONDITION" -.Ft "void" -.Fn KASSERT "CONDITION" -.Ft "void" -.Fn KDASSERT "CONDITION" -.Ft "void" -.Fn KASSERTMSG "CONDITION" "fmt" "..." -.Ft "void" -.Fn KDASSERTMSG "CONDITION" "fmt" "..." -.nr nS 0 -.Pp -These macros cause kernel -.Xr panic 9 -if the given condition evaluates to false. -.Fn assert -tests are always compiled in. -.Fn KASSERT -and -.Fn KASSERTMSG -tests are only included if the kernel has -.Dv DIAGNOSTIC -enabled. -.Fn KDASSERT -and -.Fn KDASSERTMSG -tests are only included if the kernel has -.Dv DEBUG -enabled. -The -.Fn KASSERTMSG -and -.Fn KDASSERTMSG -macros append -to the -.Xr panic 9 -format string the message specified by -.Fa format -and its subsequent arguments, similar to -.Xr printf 9 -functions. -.Pp -.nr nS 1 -.Ft "void" -.Fn CTASSERT "CONDITION" -.nr nS 0 -.Pp -This macro causes a compile time error if the given condition evaluates to -false. -Its main purpose is to verify assertions about type and struct sizes that -would otherwise make the code fail at run time. -.Fn CTASSERT -can be used in global scope or at the start of blocks, where variable -declarations are allowed. .Sh BYTE STRINGS .nr nS 1 .Ft int @@ -279,7 +217,6 @@ which is assumed to be .Fa size bytes long. .Sh SEE ALSO -.Xr assert 3 , .Xr bcmp 3 , .Xr ffs 3 , .Xr memchr 3 , @@ -303,9 +240,3 @@ The and .Fn scanc functions are based on vax instructions of the same name. -The -.Fn KASSERTMSG -and -.Fn KDASSERTMSG -macros are taken from -.Nx .