mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
mini-os: build fixes for lwip 1.3.2
Various fixes to mini-os needed to build lwip 1.3.2: - Don't build the tests. - Add BSD-style endianness macros to endian.h. - free() is called via a function pointer so it needs to be a real function. Do the same for malloc() and realloc(). Signed-off-by: David Vrabel <david.vrabel@citrix.com> Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Committed-by: Keir Fraser <keir@xen.org>
This commit is contained in:
1 parent
6cf13d0d52
commit
122b798641
5 files changed
+22
-8
No files matched your search
@@ -136,7 +136,7 @@ arch_lib:
|
||||
|
||||
ifeq ($(CONFIG_LWIP),y)
|
||||
# lwIP library
|
||||
LWC := $(shell find $(LWIPDIR)/ -type f -name '*.c')
|
||||
LWC := $(shell find $(LWIPDIR)/src -type f -name '*.c')
|
||||
LWC := $(filter-out %6.c %ip6_addr.c %ethernetif.c, $(LWC))
|
||||
LWO := $(patsubst %.c,%.o,$(LWC))
|
||||
LWO += $(OBJ_DIR)/lwip-arch.o
|
||||
|
||||
@@ -19,7 +19,7 @@ This includes:
|
||||
|
||||
- to build it just type make.
|
||||
|
||||
- to build it with TCP/IP support, download LWIP 1.3 source code and type
|
||||
- to build it with TCP/IP support, download LWIP 1.3.2 source code and type
|
||||
|
||||
make LWIPDIR=/path/to/lwip/source
|
||||
|
||||
|
||||
@@ -12,4 +12,8 @@
|
||||
|
||||
#include <arch_wordsize.h>
|
||||
|
||||
#define BYTE_ORDER __BYTE_ORDER
|
||||
#define BIG_ENDIAN __BIG_ENDIAN
|
||||
#define LITTLE_ENDIAN __LITTLE_ENDIAN
|
||||
|
||||
#endif /* endian.h */
|
||||
@@ -14,16 +14,16 @@
|
||||
#include <limits.h>
|
||||
|
||||
#define DEFAULT_ALIGN (sizeof(unsigned long))
|
||||
#define malloc(size) _xmalloc(size, DEFAULT_ALIGN)
|
||||
#define free(ptr) xfree(ptr)
|
||||
#define realloc(ptr, size) _realloc(ptr, size)
|
||||
|
||||
/* Free any of the above. */
|
||||
extern void *malloc(size_t size);
|
||||
extern void *realloc(void *ptr, size_t size);
|
||||
extern void free(void *ptr);
|
||||
|
||||
/* Free memory from any xmalloc*() call. */
|
||||
extern void xfree(const void *);
|
||||
|
||||
/* Underlying functions */
|
||||
extern void *_xmalloc(size_t size, size_t align);
|
||||
extern void *_realloc(void *ptr, size_t size);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -267,7 +267,12 @@ void xfree(const void *p)
|
||||
/* spin_unlock_irqrestore(&freelist_lock, flags); */
|
||||
}
|
||||
|
||||
void *_realloc(void *ptr, size_t size)
|
||||
void *malloc(size_t size)
|
||||
{
|
||||
return _xmalloc(size, DEFAULT_ALIGN);
|
||||
}
|
||||
|
||||
void *realloc(void *ptr, size_t size)
|
||||
{
|
||||
void *new;
|
||||
struct xmalloc_hdr *hdr;
|
||||
@@ -296,6 +301,11 @@ void *_realloc(void *ptr, size_t size)
|
||||
|
||||
return new;
|
||||
}
|
||||
|
||||
void free(void *ptr)
|
||||
{
|
||||
xfree(ptr);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
||||