Skip to main content
Sign in
Snippets Groups Projects
Commit fc8ae5dc authored by Vivek Dutta's avatar Vivek Dutta
Browse files

meshcomms: Remove depency on compile time ENDIAN flag

parent 69e58ff9
No related branches found
No related tags found
No related merge requests found
File deleted
...@@ -242,17 +242,12 @@ void *almeServerThread(void *p) ...@@ -242,17 +242,12 @@ void *almeServerThread(void *p)
{ {
// Connection closed, forward ALME message to the AL entity // Connection closed, forward ALME message to the AL entity
// //
INT16U message_len = total_size + 1; INT16U message_len = ntohs(total_size + 1);
INT8U message_len_msb; INT8U message_len_msb;
INT8U message_len_lsb; INT8U message_len_lsb;
#if _HOST_IS_LITTLE_ENDIAN_ == 1
message_len_msb = *(((INT8U *)&message_len)+1);
message_len_lsb = *(((INT8U *)&message_len)+0);
#else
message_len_msb = *(((INT8U *)&message_len)+0); message_len_msb = *(((INT8U *)&message_len)+0);
message_len_lsb = *(((INT8U *)&message_len)+1); message_len_lsb = *(((INT8U *)&message_len)+1);
#endif
queue_message[0] = PLATFORM_QUEUE_EVENT_NEW_ALME_MESSAGE; queue_message[0] = PLATFORM_QUEUE_EVENT_NEW_ALME_MESSAGE;
queue_message[1] = message_len_msb; queue_message[1] = message_len_msb;
... ...
......
...@@ -154,13 +154,9 @@ static void _pcapProcessPacket(u_char *arg, const struct pcap_pkthdr *pkthdr, co ...@@ -154,13 +154,9 @@ static void _pcapProcessPacket(u_char *arg, const struct pcap_pkthdr *pkthdr, co
// function 'PLATFORM_REGISTER_QUEUE_EVENT()' // function 'PLATFORM_REGISTER_QUEUE_EVENT()'
// //
message_len = (INT16U)pkthdr->len + 6; message_len = (INT16U)pkthdr->len + 6;
#if _HOST_IS_LITTLE_ENDIAN_ == 1 INT16U mlen = ntohs(message_len);
message_len_msb = *(((INT8U *)&message_len)+1); message_len_msb = *(((INT8U *)&mlen)+0);
message_len_lsb = *(((INT8U *)&message_len)+0); message_len_lsb = *(((INT8U *)&mlen)+1);
#else
message_len_msb = *(((INT8U *)&message_len)+0);
message_len_lsb = *(((INT8U *)&message_len)+1);
#endif
message[0] = PLATFORM_QUEUE_EVENT_NEW_1905_PACKET; message[0] = PLATFORM_QUEUE_EVENT_NEW_1905_PACKET;
message[1] = message_len_msb; message[1] = message_len_msb;
...@@ -372,23 +368,14 @@ static void _timerHandler(union sigval s) ...@@ -372,23 +368,14 @@ static void _timerHandler(union sigval s)
// //
packet_len = 4; packet_len = 4;
#if _HOST_IS_LITTLE_ENDIAN_ == 1 INT16U mlen = ntohs(packet_len);
packet_len_msb = *(((INT8U *)&packet_len)+1); packet_len_msb = *(((INT8U *)&mlen)+0);
packet_len_lsb = *(((INT8U *)&packet_len)+0); packet_len_lsb = *(((INT8U *)&mlen)+1);
INT32U token = ntohl(aux->token);
token_msb = *(((INT8U *)&aux->token)+3); token_msb = *(((INT8U *)&token)+0);
token_2nd_msb = *(((INT8U *)&aux->token)+2); token_2nd_msb = *(((INT8U *)&token)+1);
token_3rd_msb = *(((INT8U *)&aux->token)+1); token_3rd_msb = *(((INT8U *)&token)+2);
token_lsb = *(((INT8U *)&aux->token)+0); token_lsb = *(((INT8U *)&token)+3);
#else
packet_len_msb = *(((INT8U *)&packet_len)+0);
packet_len_lsb = *(((INT8U *)&packet_len)+1);
token_msb = *(((INT8U *)&aux->token)+0);
token_2nd_msb = *(((INT8U *)&aux->token)+1);
token_3rd_msb = *(((INT8U *)&aux->token)+2);
token_lsb = *(((INT8U *)&aux->token)+3);
#endif
message[0] = 1 == aux->periodic ? PLATFORM_QUEUE_EVENT_TIMEOUT_PERIODIC : PLATFORM_QUEUE_EVENT_TIMEOUT; message[0] = 1 == aux->periodic ? PLATFORM_QUEUE_EVENT_TIMEOUT_PERIODIC : PLATFORM_QUEUE_EVENT_TIMEOUT;
message[1] = packet_len_msb; message[1] = packet_len_msb;
... ...
......
...@@ -95,62 +95,36 @@ static inline void _I1B(INT8U *memory_pointer, INT8U **packet_ppointer) ...@@ -95,62 +95,36 @@ static inline void _I1B(INT8U *memory_pointer, INT8U **packet_ppointer)
// //
static inline void _E2B(INT8U **packet_ppointer, INT16U *memory_pointer) static inline void _E2B(INT8U **packet_ppointer, INT16U *memory_pointer)
{ {
#if _HOST_IS_BIG_ENDIAN_ == 1 INT16U mem=0;
*(((INT8U *)memory_pointer)+0) = **packet_ppointer; (*packet_ppointer)++; *(((INT8U *)&mem)+0) = **packet_ppointer; (*packet_ppointer)++;
*(((INT8U *)memory_pointer)+1) = **packet_ppointer; (*packet_ppointer)++; *(((INT8U *)&mem)+1) = **packet_ppointer; (*packet_ppointer)++;
#elif _HOST_IS_LITTLE_ENDIAN_ == 1 *memory_pointer = ntohs(mem);
*(((INT8U *)memory_pointer)+1) = **packet_ppointer; (*packet_ppointer)++;
*(((INT8U *)memory_pointer)+0) = **packet_ppointer; (*packet_ppointer)++;
#else
#error You must specify your architecture endianess
#endif
} }
static inline void _I2B(INT16U *memory_pointer, INT8U **packet_ppointer) static inline void _I2B(INT16U *memory_pointer, INT8U **packet_ppointer)
{ {
#if _HOST_IS_BIG_ENDIAN_ == 1 INT16U mem = htons(*memory_pointer);
**packet_ppointer = *(((INT8U *)memory_pointer)+0); (*packet_ppointer)++; **packet_ppointer = *(((INT8U *)&mem)+0); (*packet_ppointer)++;
**packet_ppointer = *(((INT8U *)memory_pointer)+1); (*packet_ppointer)++; **packet_ppointer = *(((INT8U *)&mem)+1); (*packet_ppointer)++;
#elif _HOST_IS_LITTLE_ENDIAN_ == 1
**packet_ppointer = *(((INT8U *)memory_pointer)+1); (*packet_ppointer)++;
**packet_ppointer = *(((INT8U *)memory_pointer)+0); (*packet_ppointer)++;
#else
#error You must specify your architecture endianess
#endif
} }
// Extract/insert 4 bytes // Extract/insert 4 bytes
// //
static inline void _E4B(INT8U **packet_ppointer, INT32U *memory_pointer) static inline void _E4B(INT8U **packet_ppointer, INT32U *memory_pointer)
{ {
#if _HOST_IS_BIG_ENDIAN_ == 1 INT32U mem = 0;
*(((INT8U *)memory_pointer)+0) = **packet_ppointer; (*packet_ppointer)++; *(((INT8U *)&mem)+0) = **packet_ppointer; (*packet_ppointer)++;
*(((INT8U *)memory_pointer)+1) = **packet_ppointer; (*packet_ppointer)++; *(((INT8U *)&mem)+1) = **packet_ppointer; (*packet_ppointer)++;
*(((INT8U *)memory_pointer)+2) = **packet_ppointer; (*packet_ppointer)++; *(((INT8U *)&mem)+2) = **packet_ppointer; (*packet_ppointer)++;
*(((INT8U *)memory_pointer)+3) = **packet_ppointer; (*packet_ppointer)++; *(((INT8U *)&mem)+3) = **packet_ppointer; (*packet_ppointer)++;
#elif _HOST_IS_LITTLE_ENDIAN_ == 1 *memory_pointer = ntohl(mem);
*(((INT8U *)memory_pointer)+3) = **packet_ppointer; (*packet_ppointer)++;
*(((INT8U *)memory_pointer)+2) = **packet_ppointer; (*packet_ppointer)++;
*(((INT8U *)memory_pointer)+1) = **packet_ppointer; (*packet_ppointer)++;
*(((INT8U *)memory_pointer)+0) = **packet_ppointer; (*packet_ppointer)++;
#else
#error You must specify your architecture endianess
#endif
} }
static inline void _I4B(INT32U *memory_pointer, INT8U **packet_ppointer) static inline void _I4B(INT32U *memory_pointer, INT8U **packet_ppointer)
{ {
#if _HOST_IS_BIG_ENDIAN_ == 1 INT32U mem = htonl(*memory_pointer);
**packet_ppointer = *(((INT8U *)memory_pointer)+0); (*packet_ppointer)++; **packet_ppointer = *(((INT8U *)&mem)+0); (*packet_ppointer)++;
**packet_ppointer = *(((INT8U *)memory_pointer)+1); (*packet_ppointer)++; **packet_ppointer = *(((INT8U *)&mem)+1); (*packet_ppointer)++;
**packet_ppointer = *(((INT8U *)memory_pointer)+2); (*packet_ppointer)++; **packet_ppointer = *(((INT8U *)&mem)+2); (*packet_ppointer)++;
**packet_ppointer = *(((INT8U *)memory_pointer)+3); (*packet_ppointer)++; **packet_ppointer = *(((INT8U *)&mem)+3); (*packet_ppointer)++;
#elif _HOST_IS_LITTLE_ENDIAN_ == 1
**packet_ppointer = *(((INT8U *)memory_pointer)+3); (*packet_ppointer)++;
**packet_ppointer = *(((INT8U *)memory_pointer)+2); (*packet_ppointer)++;
**packet_ppointer = *(((INT8U *)memory_pointer)+1); (*packet_ppointer)++;
**packet_ppointer = *(((INT8U *)memory_pointer)+0); (*packet_ppointer)++;
#else
#error You must specify your architecture endianess
#endif
} }
// Extract/insert N bytes (ignore endianess) // Extract/insert N bytes (ignore endianess)
... ...
......
...@@ -59,6 +59,7 @@ ...@@ -59,6 +59,7 @@
#define _PLATFORM_H_ #define _PLATFORM_H_
#include <stdarg.h> // va_list #include <stdarg.h> // va_list
#include <arpa/inet.h>
// NOTE: This is part of the C standard, thus *all* platforms should have it // NOTE: This is part of the C standard, thus *all* platforms should have it
// available... and that's why this include can exist in this "platform // available... and that's why this include can exist in this "platform
// independent" file // independent" file
...@@ -70,10 +71,6 @@ ...@@ -70,10 +71,6 @@
// The following preprocessor macros must be defined to a platform-dependent // The following preprocessor macros must be defined to a platform-dependent
// value: // value:
// //
// _HOST_IS_LITTLE_ENDIAN_ |--> Set one (and only one!) of these macros
// _HOST_IS_BIG_ENDIAN_ENDIAN_ | to "1" to indicate your CPU endianness
//
//
// MAX_NETWORK_SEGMENT_SIZE --------> This is the maximum packet size that // MAX_NETWORK_SEGMENT_SIZE --------> This is the maximum packet size that
// is allowed in your platform. It is // is allowed in your platform. It is
// used to 'fragment' CMDUs. Note that // used to 'fragment' CMDUs. Note that
...@@ -100,12 +97,6 @@ ...@@ -100,12 +97,6 @@
// are sent to the compiler using the "-D flag" (open the "root" Makefile and // are sent to the compiler using the "-D flag" (open the "root" Makefile and
// search for "CCFLAGS" to understand how to do this) // search for "CCFLAGS" to understand how to do this)
#if !defined(_HOST_IS_LITTLE_ENDIAN_) && !defined(_HOST_IS_BIG_ENDIAN_)
# error "You must define either '_HOST_IS_LITTLE_ENDIAN_' or '_HOST_IS_BIG_ENDIAN_'"
#elif defined(_HOST_IS_LITTLE_ENDIAN_) && defined(_HOST_IS_BIG_ENDIAN_)
# error "You cannot define both '_HOST_IS_LITTLE_ENDIAN_' and '_HOST_IS_BIG_ENDIAN_' at the same time"
#endif
#ifndef MAX_NETWORK_SEGMENT_SIZE #ifndef MAX_NETWORK_SEGMENT_SIZE
# error "You must define 'MAX_NETWORK_SEGMENT_SIZE' to some value (for example, '1500')" # error "You must define 'MAX_NETWORK_SEGMENT_SIZE' to some value (for example, '1500')"
#endif #endif
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment