summaryrefslogtreecommitdiff
path: root/static/openbsd/man9/KASSERT.9
diff options
context:
space:
mode:
authorJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 14:02:27 -0400
committerJacob McDonnell <jacob@jacobmcdonnell.com>2026-04-25 14:02:27 -0400
commit6d8bdc65446a704d0750217efd05532fc641ea7d (patch)
tree8ae6d698b3c9801750a8b117b3842fb369872a3a /static/openbsd/man9/KASSERT.9
parent2f467bd7ff8f8db0dafa40426166491d7f57f368 (diff)
docs: OpenBSD Man Pages Added
Diffstat (limited to 'static/openbsd/man9/KASSERT.9')
-rw-r--r--static/openbsd/man9/KASSERT.9105
1 files changed, 105 insertions, 0 deletions
diff --git a/static/openbsd/man9/KASSERT.9 b/static/openbsd/man9/KASSERT.9
new file mode 100644
index 00000000..9f88a687
--- /dev/null
+++ b/static/openbsd/man9/KASSERT.9
@@ -0,0 +1,105 @@
+.\" $OpenBSD: KASSERT.9,v 1.3 2025/06/13 18:34:00 schwarze Exp $
+.\"
+.\" Copyright (c) 2002, 2003 CubeSoft Communications, Inc.
+.\" <http://www.csoft.org>
+.\"
+.\" 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: June 13 2025 $
+.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 sys/systm.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 .