Changeset View
Changeset View
Standalone View
Standalone View
sys/sys/libkern.h
Show First 20 Lines • Show All 156 Lines • ▼ Show 20 Lines | |||||
int fnmatch(const char *, const char *, int); | int fnmatch(const char *, const char *, int); | ||||
int locc(int, char *, u_int); | int locc(int, char *, u_int); | ||||
void *memchr(const void *s, int c, size_t n); | void *memchr(const void *s, int c, size_t n); | ||||
void *memcchr(const void *s, int c, size_t n); | void *memcchr(const void *s, int c, size_t n); | ||||
void *memmem(const void *l, size_t l_len, const void *s, size_t s_len); | void *memmem(const void *l, size_t l_len, const void *s, size_t s_len); | ||||
void qsort(void *base, size_t nmemb, size_t size, | void qsort(void *base, size_t nmemb, size_t size, | ||||
int (*compar)(const void *, const void *)); | int (*compar)(const void *, const void *)); | ||||
void qsort_r(void *base, size_t nmemb, size_t size, void *thunk, | void qsort_r(void *base, size_t nmemb, size_t size, | ||||
int (*compar)(void *, const void *, const void *)); | int (*compar)(const void *, const void *, void *), void *thunk); | ||||
u_long random(void); | u_long random(void); | ||||
int scanc(u_int, const u_char *, const u_char *, int); | int scanc(u_int, const u_char *, const u_char *, int); | ||||
void srandom(u_long); | void srandom(u_long); | ||||
int strcasecmp(const char *, const char *); | int strcasecmp(const char *, const char *); | ||||
char *strcat(char * __restrict, const char * __restrict); | char *strcat(char * __restrict, const char * __restrict); | ||||
char *strchr(const char *, int); | char *strchr(const char *, int); | ||||
int strcmp(const char *, const char *); | int strcmp(const char *, const char *); | ||||
char *strcpy(char * __restrict, const char * __restrict); | char *strcpy(char * __restrict, const char * __restrict); | ||||
Show All 20 Lines | |||||
crc32_raw(const void *buf, size_t size, uint32_t crc) | crc32_raw(const void *buf, size_t size, uint32_t crc) | ||||
{ | { | ||||
const uint8_t *p = (const uint8_t *)buf; | const uint8_t *p = (const uint8_t *)buf; | ||||
while (size--) | while (size--) | ||||
crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8); | crc = crc32_tab[(crc ^ *p++) & 0xFF] ^ (crc >> 8); | ||||
return (crc); | return (crc); | ||||
} | } | ||||
kib: I am not sure why do we need this in libkern at all. | |||||
static __inline uint32_t | static __inline uint32_t | ||||
crc32(const void *buf, size_t size) | crc32(const void *buf, size_t size) | ||||
{ | { | ||||
uint32_t crc; | uint32_t crc; | ||||
crc = crc32_raw(buf, size, ~0U); | crc = crc32_raw(buf, size, ~0U); | ||||
return (crc ^ ~0U); | return (crc ^ ~0U); | ||||
} | } | ||||
Show All 40 Lines |
I am not sure why do we need this in libkern at all.