summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2014-05-30 14:30:52 +0000
committerhselasky <hselasky@FreeBSD.org>2014-05-30 14:30:52 +0000
commit30105e96518e8d4585263b6028a1b645a5c0b28f (patch)
tree2d22ac25b78cc049cd1a51ae7a154351532c6bf3
parent3fdcf33605584af51db8bd4362cbb02a663c7023 (diff)
downloadFreeBSD-src-30105e96518e8d4585263b6028a1b645a5c0b28f.zip
FreeBSD-src-30105e96518e8d4585263b6028a1b645a5c0b28f.tar.gz
Resolve issue with resolving malloc() and free() functions at linking time.
Sponsored by: DARPA, AFRL
-rw-r--r--sys/boot/usb/bsd_kernel.h10
-rw-r--r--sys/boot/usb/bsd_usbloader_test.c13
2 files changed, 13 insertions, 10 deletions
diff --git a/sys/boot/usb/bsd_kernel.h b/sys/boot/usb/bsd_kernel.h
index 9acbdc3..fe1eb67 100644
--- a/sys/boot/usb/bsd_kernel.h
+++ b/sys/boot/usb/bsd_kernel.h
@@ -430,7 +430,6 @@ size_t strlen(const char *s);
/* MALLOC API */
-#ifndef HAVE_MALLOC
#undef malloc
#define malloc(s,x,f) usb_malloc(s)
void *usb_malloc(size_t);
@@ -438,15 +437,6 @@ void *usb_malloc(size_t);
#undef free
#define free(p,x) usb_free(p)
void usb_free(void *);
-#else
-#undef malloc
-void *malloc(size_t);
-#define malloc(s,x,f) malloc(s)
-
-#undef free
-void free(void *);
-#define free(p,x) free(p)
-#endif
#define strdup(p,x) usb_strdup(p)
char *usb_strdup(const char *str);
diff --git a/sys/boot/usb/bsd_usbloader_test.c b/sys/boot/usb/bsd_usbloader_test.c
index 929e2e9..9158a4f 100644
--- a/sys/boot/usb/bsd_usbloader_test.c
+++ b/sys/boot/usb/bsd_usbloader_test.c
@@ -26,6 +26,7 @@
#include <stdio.h>
#include <stdint.h>
+#include <stdlib.h>
#include <time.h>
extern int usleep(int);
@@ -36,6 +37,18 @@ extern void usb_uninit(void);
#define hz 1000
+void *
+usb_malloc(size_t size)
+{
+ return (malloc(size));
+}
+
+void
+usb_free(void *ptr)
+{
+ free(ptr);
+}
+
void
DELAY(unsigned int delay)
{
OpenPOWER on IntegriCloud