MirOS Manual: abs(9), assert(9), bcmp(9), ffs(9), getsn(9), imax(9), imin(9), KASSERT(9), KDASSERT(9), kern(9), lmax(9), lmin(9), locc(9), max(9), memchr(9), memcmp(9), min(9), scanc(9), skpc(9), srandom(9), strcmp(9), strlcat(9), strlcpy(9), strlen(9), strncasecmp(9), strncmp(9), strncpy(9), ulmax(9), ulmin(9)

KERN(9)                       BSD Kernel Manual                        KERN(9)

NAME

     kern - kernel library routines

SYNOPSIS

     #include <lib/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 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.

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
     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).

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).

RANDOM NUMBER GENERATION

     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).

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 ALSO

     assert(3), bcmp(3), ffs(3), memchr(3), memcmp(3), string(3),
     arc4random(9)

STANDARDS

     The abs(), memchr(), memcmp(), strlen(), strncpy(), strcmp(), strncmp()
     and strcasecmp() functions conform to ANSI X3.159-1989 ("ANSI C").

HISTORY

     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 2014-04-02 20:57:59 by $MirOS: src/scripts/roff2htm,v 1.79 2014/02/10 00:36:11 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‒2014 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.