Made it build, but certainly _NOT_ work on non-gcc platforms.
This commit is contained in:
parent
33eeb8ccbb
commit
195cf8cafb
|
@ -28,7 +28,7 @@
|
||||||
*
|
*
|
||||||
* This file is part of the Contiki operating system.
|
* This file is part of the Contiki operating system.
|
||||||
*
|
*
|
||||||
* $Id: uaodv.c,v 1.7 2007/04/05 12:30:17 bg- Exp $
|
* $Id: uaodv.c,v 1.8 2007/04/18 21:26:09 oliverschmidt Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -57,16 +57,25 @@ PROCESS(uaodv_process, "uAODV");
|
||||||
static struct uip_udp_conn *aodvconn, *unicastconn;
|
static struct uip_udp_conn *aodvconn, *unicastconn;
|
||||||
|
|
||||||
/* Compare sequence numbers. */
|
/* Compare sequence numbers. */
|
||||||
|
#ifdef __GNUC__
|
||||||
#define SCMP32(a, b) ((int32_t)((a) - (b)))
|
#define SCMP32(a, b) ((int32_t)((a) - (b)))
|
||||||
|
#else /* __GNUC__ */
|
||||||
|
/* SCMP32() seems to be called with arguments of type u32_t.
|
||||||
|
* These seem to be subtracted in an unsigned manner and then
|
||||||
|
* the result is afterwards(!) casted to a signed type. As I'm
|
||||||
|
* unable to detect the behaviour intended here I'm unable to
|
||||||
|
* port it cleanly to other compilers :-( - Oliver Schmidt */
|
||||||
|
#define SCMP32(a, b) exit(1)
|
||||||
|
#endif /* __GNUC__ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When possible, keep state across reboots.
|
* When possible, keep state across reboots.
|
||||||
*/
|
*/
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
#define NOINIT __attribute__((section(".noinit")))
|
#define NOINIT __attribute__((section(".noinit")))
|
||||||
#else
|
#else /* __GNUC__ */
|
||||||
#define NOINIT
|
#define NOINIT
|
||||||
#endif
|
#endif /* __GNUC__ */
|
||||||
NOINIT static u32_t rreq_id, rreq_seqno;
|
NOINIT static u32_t rreq_id, rreq_seqno;
|
||||||
|
|
||||||
#define NFWCACHE 16
|
#define NFWCACHE 16
|
||||||
|
@ -76,14 +85,14 @@ static struct {
|
||||||
u32_t id;
|
u32_t id;
|
||||||
} fwcache[NFWCACHE];
|
} fwcache[NFWCACHE];
|
||||||
|
|
||||||
static inline int
|
static CC_INLINE int
|
||||||
fwc_lookup(const uip_ipaddr_t *orig, const u32_t *id)
|
fwc_lookup(const uip_ipaddr_t *orig, const u32_t *id)
|
||||||
{
|
{
|
||||||
unsigned n = (orig->u8[2] + orig->u8[3]) % NFWCACHE;
|
unsigned n = (orig->u8[2] + orig->u8[3]) % NFWCACHE;
|
||||||
return fwcache[n].id == *id && uip_ipaddr_cmp(&fwcache[n].orig, orig);
|
return fwcache[n].id == *id && uip_ipaddr_cmp(&fwcache[n].orig, orig);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
static CC_INLINE void
|
||||||
fwc_add(const uip_ipaddr_t *orig, const u32_t *id)
|
fwc_add(const uip_ipaddr_t *orig, const u32_t *id)
|
||||||
{
|
{
|
||||||
unsigned n = orig->u8[3] % NFWCACHE;
|
unsigned n = orig->u8[3] % NFWCACHE;
|
||||||
|
@ -96,8 +105,10 @@ fwc_add(const uip_ipaddr_t *orig, const u32_t *id)
|
||||||
#define print_debug(...) do{}while(0)
|
#define print_debug(...) do{}while(0)
|
||||||
#else
|
#else
|
||||||
#define PRINTF(...) printf(__VA_ARGS__)
|
#define PRINTF(...) printf(__VA_ARGS__)
|
||||||
|
#ifdef __GNUC__
|
||||||
static void
|
static void
|
||||||
print_debug(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
|
print_debug(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
|
||||||
|
#endif /* __GNUC__ */
|
||||||
static void
|
static void
|
||||||
print_debug(const char *fmt, ...)
|
print_debug(const char *fmt, ...)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue