KERN(9) BSD Kernel Manual KERN(9)
kern - kernel library routines
#include <lib/libkern.h>
The kern library implements a set of useful functions and macros inside
the kernel.
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 in-
teger 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.
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.
int
locc(int mask, u_int size, char *cp);
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);
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 locc() function locates an integer of value mask inside the string
cp. The skpc() function locates an unsigned character of value mask in-
side the string cp.
The scanc() function expects a string of indexes into the table table.
Each table element is bitwise ANDed against mask.
locc(), skpc() and scanc() expect the string to be of size size, and re-
turn the index relative to the end of the string where the match oc-
curred, or zero if mask is not present in the string.
The remaining functions have the same semantics as their libc counter-
parts, bcmp(3), memchr(3), memcmp(3) and ffs(3).
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).
u_long
random(void);
void
srandom(u_long seed);
The random() function returns a random number. The srandom() function in-
itializes the random seed. random() will by default produce a sequence of
numbers that can be duplicated by calling srandom() with `1' as the seed.
The random() function is discouraged in favor of arc4random(9).
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.
assert(3), bcmp(3), ffs(3), memchr(3), memcmp(3), string(3),
arc4random(9)
The abs(), memchr(), memcmp(), strlen(), strncpy(), strcmp(), strncmp()
and strcasecmp() functions conform to ANSI X3.159-1989 ("ANSI C").
The locc(), skpc() and scanc() functions are based on vax instructions of
the same name.
MirOS BSD #10-current August 9, 2002 2
Generated on 2012-02-20 02:47:02 by $MirOS: src/scripts/roff2htm,v 1.70 2011/12/03 18:21:12 tg Exp $
These manual pages and other documentation are copyrighted by their respective writers;
their source is available at our CVSweb,
AnonCVS, and other mirrors. The rest is Copyright © 2002‒2011 The MirOS Project, Germany.
This product includes material
provided by Thorsten Glaser.
This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.