+/* 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 <minilib.h>
#include <output.h>
+
/* 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.
*/
-inline void _memcpy(void *dest, const void *src, int bytes)
+void _memcpy(void *dest, const void *src, int bytes)
{
/* I hate everyone */
/* Since we otherwise compile with -O0, we might as well manually speed this up a bit. */
*(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;
}
}
+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];