34 #ifndef _SYS_LIBKERN_H_ 35 #define _SYS_LIBKERN_H_ 37 #include <sys/cdefs.h> 38 #include <sys/types.h> 41 extern u_char
const bcd2bin_data[];
42 extern u_char
const bin2bcd_data[];
43 extern char const hex2ascii_data[];
45 #define bcd2bin(bcd) (bcd2bin_data[bcd]) 46 #define bin2bcd(bin) (bin2bcd_data[bin]) 47 #define hex2ascii(hex) (hex2ascii_data[hex]) 49 static __inline
int imax(
int a,
int b) {
return (a > b ? a : b); }
50 static __inline
int imin(
int a,
int b) {
return (a < b ? a : b); }
51 static __inline
long lmax(
long a,
long b) {
return (a > b ? a : b); }
52 static __inline
long lmin(
long a,
long b) {
return (a < b ? a : b); }
53 static __inline u_int max(u_int a, u_int b) {
return (a > b ? a : b); }
54 static __inline u_int min(u_int a, u_int b) {
return (a < b ? a : b); }
55 static __inline quad_t qmax(quad_t a, quad_t b) {
return (a > b ? a : b); }
56 static __inline quad_t qmin(quad_t a, quad_t b) {
return (a < b ? a : b); }
57 static __inline u_long ulmax(u_long a, u_long b) {
return (a > b ? a : b); }
58 static __inline u_long ulmin(u_long a, u_long b) {
return (a < b ? a : b); }
61 int bcmp(
const void *,
const void *,
size_t);
62 #ifndef HAVE_INLINE_FFS 65 #ifndef HAVE_INLINE_FLS 68 int locc(
int,
char *, u_int);
69 void qsort(
void *base,
size_t nmemb,
size_t size,
70 int (*compar)(
const void *,
const void *));
71 #if defined(__rtems__) 72 u_long rtems_bsdnet_random(
void);
73 #define random() rtems_bsdnet_random() 77 char *index(
const char *,
int);
78 char *rindex(
const char *,
int);
79 int scanc(u_int,
const u_char *,
const u_char *,
int);
80 int skpc(
int,
int,
char *);
82 char *strcat(
char * __restrict,
const char * __restrict);
83 int strcmp(
const char *,
const char *);
84 char *strdup(
const char *s);
85 char *strcpy(
char * __restrict,
const char * __restrict);
86 size_t strlen(
const char *);
87 int strncmp(
const char *,
const char *,
size_t);
88 char *strncpy(
char * __restrict,
const char * __restrict,
size_t);
89 char *strerror(
int errnum);