X-Git-Url: http://git.joshuawise.com/netwatch.git/blobdiff_plain/20d44251fa01c2f55f175fe9d1d3f284daa8dc60..399b932481303c09ebed1cfaaa88538ffa4746ba:/lib/minilib.c?ds=sidebyside diff --git a/lib/minilib.c b/lib/minilib.c index 30412db..935d0c4 100644 --- a/lib/minilib.c +++ b/lib/minilib.c @@ -1,7 +1,18 @@ +/* minilib.c + * General-purpose C library routines. + * NetWatch system management mode administration console + * + * Copyright (c) 2008 Jacob Potter and Joshua Wise. All rights reserved. + * This program is free software; you can redistribute and/or modify it under + * the terms found in the file LICENSE in the root of this source tree. + * + */ + #include "console.h" #include #include + /* We have both _memcpy and memcpy, because gcc might be able to do better in lwip. * For small things, gcc inlines its memcpy, but for large things, we call out * to this memcpy. @@ -63,6 +74,17 @@ void memset(void *dest, int data, int bytes) *(cdest++) = (unsigned char)data; } +void *memchr(const void *buf, char c, int maxlen) +{ + const char * cbuf = buf; + while (maxlen--) + { + if (*cbuf == c) return (void *)cbuf; + cbuf++; + } + return 0; +} + void memmove(void *dest, void *src, int bytes) { char * cdest = dest; @@ -146,6 +168,12 @@ void tohex(char *s, unsigned long l) } } +void btohex(char *s, unsigned char c) +{ + s[0] = hexarr[c >> 4]; + s[1] = hexarr[c & 0xF]; +} + void puthex(unsigned long l) { char d[9];