various arm fixes (mostly nowarn_align)
[olsrd.git] / lib / bmf / src / Packet.c
index cb302a6..8abbcbd 100644 (file)
@@ -37,6 +37,7 @@
  *
  * ------------------------------------------------------------------------- */
 
+#include "olsr.h"
 #include "Packet.h"
 
 /* System includes */
@@ -61,7 +62,7 @@ int IsIpFragment(unsigned char* ipPacket)
 
   assert(ipPacket != NULL);
 
-  iph = (struct ip*) ipPacket;
+  iph = (struct ip*) ARM_NOWARN_ALIGN(ipPacket);
   if ((ntohs(iph->ip_off) & IP_OFFMASK) != 0)
   {
     return 1;
@@ -84,7 +85,7 @@ u_int16_t GetIpTotalLength(unsigned char* ipPacket)
 
   assert(ipPacket != NULL);
 
-  iph = (struct iphdr*) ipPacket;
+  iph = (struct iphdr*) ARM_NOWARN_ALIGN(ipPacket);
   return ntohs(iph->tot_len);
 } /* GetIpTotalLength */
 
@@ -102,7 +103,7 @@ unsigned int GetIpHeaderLength(unsigned char* ipPacket)
 
   assert(ipPacket != NULL);
 
-  iph = (struct iphdr*) ipPacket;
+  iph = (struct iphdr*) ARM_NOWARN_ALIGN(ipPacket);
   return iph->ihl << 2;
 } /* GetIpHeaderLength */
 
@@ -121,7 +122,7 @@ u_int8_t GetTtl(unsigned char* ipPacket)
 
   assert(ipPacket != NULL);
 
-  iph = (struct iphdr*) ipPacket;
+  iph = (struct iphdr*) ARM_NOWARN_ALIGN(ipPacket);
   return iph->ttl;
 } /* GetTtl */
 
@@ -140,7 +141,7 @@ void SaveTtlAndChecksum(unsigned char* ipPacket, struct TSaveTtl* sttl)
 
   assert(ipPacket != NULL && sttl != NULL);
 
-  iph = (struct iphdr*) ipPacket;
+  iph = (struct iphdr*) ARM_NOWARN_ALIGN(ipPacket);
   sttl->ttl = iph->ttl;
   sttl->check = ntohs(iph->check);
 } /* SaveTtlAndChecksum */
@@ -161,7 +162,7 @@ void RestoreTtlAndChecksum(unsigned char* ipPacket, struct TSaveTtl* sttl)
 
   assert(ipPacket != NULL && sttl != NULL);
 
-  iph = (struct iphdr*) ipPacket;
+  iph = (struct iphdr*) ARM_NOWARN_ALIGN(ipPacket);
   iph->ttl = sttl->ttl;
   iph->check = htons(sttl->check);
 } /* RestoreTtlAndChecksum */
@@ -183,7 +184,7 @@ void DecreaseTtlAndUpdateHeaderChecksum(unsigned char* ipPacket)
 
   assert(ipPacket != NULL);
 
-  iph = (struct iphdr*) ipPacket;
+  iph = (struct iphdr*) ARM_NOWARN_ALIGN(ipPacket);
 
   iph->ttl--; /* decrement ttl */
   sum = ntohs(iph->check) + 0x100; /* increment checksum high byte */
@@ -200,7 +201,7 @@ void DecreaseTtlAndUpdateHeaderChecksum(unsigned char* ipPacket)
  * ------------------------------------------------------------------------- */
 struct ip* GetIpHeader(unsigned char* encapsulationUdpData)
 {
-  return (struct ip*)(encapsulationUdpData + ENCAP_HDR_LEN);
+  return (struct ip*) ARM_NOWARN_ALIGN((encapsulationUdpData + ENCAP_HDR_LEN));
 } /* GetIpHeader */
 
 /* -------------------------------------------------------------------------