X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/d24901e6cc51d80d30e074eba9fdb3b64d938dc2..bbfab4335b270484136e210ca96d24fb92d2c9ce:/lib/minilib.c?ds=inline diff --git a/lib/minilib.c b/lib/minilib.c index 595341e..664a0b4 100644 --- a/lib/minilib.c +++ b/lib/minilib.c @@ -1,14 +1,21 @@ #include "console.h" #include -void memcpy(void *dest, void *src, int bytes) +void memcpy(void *dest, const void *src, int bytes) { - char * cdest = dest; - char * csrc = src; + char *cdest = dest; + const char *csrc = src; while (bytes--) *(cdest++) = *(csrc++); } +void memset(void *dest, int data, int bytes) +{ + unsigned char *cdest = dest; + while (bytes--) + *(cdest++) = (unsigned char)data; +} + void memmove(void *dest, void *src, int bytes) { char * cdest = dest; @@ -43,7 +50,17 @@ int strcmp (const char *a2, const char *a1) { } } -int strlen(char *c) +int strncmp (const char *a2, const char *a1, int n) { + while (n--) { + if (*a2 != *a1) return 1; + if (*a2 == 0) return 0; + a1++; + a2++; + } + return 0; +} + +int strlen(const char *c) { int l = 0; while (*(c++)) @@ -58,7 +75,16 @@ void strcpy(char *a2, const char *a1) } while (*(a1++)); } -void puts(char *c) +void strcat(char *dest, char *src) +{ + while (*dest) + dest++; + while (*src) + *(dest++) = *(src++); + *(dest++) = *(src++); +} + +void puts(const char *c) { putbytes(c, strlen(c)); } @@ -81,3 +107,16 @@ void puthex(unsigned long l) tohex(d, l); puts(d); } + +unsigned short htons(unsigned short in) +{ + return (in >> 8) | (in << 8); +} + +unsigned int htonl(unsigned int in) +{ + return ((in & 0xff) << 24) | + ((in & 0xff00) << 8) | + ((in & 0xff0000UL) >> 8) | + ((in & 0xff000000UL) >> 24); +}