KERN(9) OpenBSD Kernel Manual KERN(9)NAME
kern - kernel library routines
SYNOPSIS
#include <lib/libkern/libkern.h>
DESCRIPTION
The kern library implements a set of useful functions and macros inside
the kernel.
MATH
int
imax(int a, int b);
int
imin(int a, int b);
long
lmax(long a, long b);
long
lmin(long a, long b);
u_int
max(u_int a, u_int b);
u_int
min(u_int a, u_int b);
u_long
ulmax(u_long a, u_long b);
u_long
ulmin(u_long a, u_long b);
int
abs(int j);
The min(), imin(), lmin() and ulmin() functions return the smallest
integer between a and b, inclusive. The max(), imax(), lmax() and
ulmax() functions return the largest integer between a and b, inclusive.
The abs() function computes the absolute value of integer j.
ASSERTIONS
void
assert(CONDITION);
void
KASSERT(CONDITION);
void
KDASSERT(CONDITION);
These macros cause kernel panic(9) if the given condition evaluates to
false. assert() tests are always compiled in. KASSERT() tests are only
included if the kernel has DIAGNOSTIC enabled. KDASSERT() tests are only
included if the kernel has DEBUG enabled.
BYTE STRINGS
int
skpc(int mask, size_t size, u_char *cp);
int
scanc(u_int size, const u_char *cp, const u_char *table, int mask);
int
bcmp(const void *b1, const void *b2, size_t len);
int
timingsafe_bcmp(const void *b1, const void *b2, size_t len);
void *
memchr(const void *b, int c, size_t len);
int
memcmp(const void *b1, const void *b2, size_t len);
int
ffs(int value);
The skpc() function locates the first unsigned character of value
different than mask inside the string cp.
The scanc() function expects a string of indexes into the table table.
Each table element is bitwise ANDed against mask.
skpc() and scanc() expect the string to be of size size, and return the
index relative to the end of the string where the match occurred, or zero
if mask is not present in the string.
The remaining functions have the same semantics as their libc
counterparts, bcmp(3), timingsafe_bcmp(3), memchr(3), memcmp(3) and
ffs(3).
CHARACTER STRINGS
size_t
strlen(const char *s);
char *
strncpy(char *dst, const char *src, size_t len);
size_t
strlcpy(char *dst, const char *src, size_t size);
size_t
strlcat(char *dst, const char *src, size_t size);
int
strcmp(const char *s1, const char *s2);
int
strncmp(const char *s1, const char *s2, size_t len);
int
strncasecmp(const char *s1, const char *s2, size_tlen);
Those functions have the same semantics as their libc counterparts,
strlen(3), strncpy(3), strlcpy(3), strlcat(3), strcmp(3), strncmp(3) and
strncasecmp(3).
MISCELLANEOUS
int
getsn(char *cp, int size);
The getsn() function reads user input from the console and returns on
newline. The result is written into cp, which is assumed to be size
bytes long.
SEE ALSOassert(3), bcmp(3), ffs(3), memchr(3), memcmp(3), string(3)STANDARDS
The abs(), memchr(), memcmp(), strlen(), strncpy(), strcmp(), strncmp()
and strcasecmp() functions conform to ANSI X3.159-1989 (``ANSI C'').
HISTORY
The skpc() and scanc() functions are based on vax instructions of the
same name.
OpenBSD 4.9 January 9, 2011 OpenBSD 4.9