Forráskód Böngészése

suppress cast-align warnings for net device driver

hathach 5 éve
szülő
commit
81b1f97ef7

+ 0 - 3
examples/device/net_lwip_webserver/Makefile

@@ -6,9 +6,6 @@ CFLAGS += \
   -DTCP_WND=2*TCP_MSS \
   -DTCP_WND=2*TCP_MSS \
   -DHTTPD_USE_CUSTOM_FSDATA=0
   -DHTTPD_USE_CUSTOM_FSDATA=0
 
 
-# TODO rndis_reports.c and net_device cause cast algin warnings
-CFLAGS += -Wno-error=cast-align
-
 INC += \
 INC += \
   src \
   src \
   $(TOP)/hw \
   $(TOP)/hw \

+ 5 - 5
lib/networking/rndis_reports.c

@@ -74,7 +74,7 @@ static const uint32_t OIDSupportedList[] =
 #define OID_LIST_LENGTH TU_ARRAY_SIZE(OIDSupportedList)
 #define OID_LIST_LENGTH TU_ARRAY_SIZE(OIDSupportedList)
 #define ENC_BUF_SIZE    (OID_LIST_LENGTH * 4 + 32)
 #define ENC_BUF_SIZE    (OID_LIST_LENGTH * 4 + 32)
 
 
-static uint8_t *encapsulated_buffer;
+static void *encapsulated_buffer;
 
 
 static void rndis_report(void)
 static void rndis_report(void)
 {
 {
@@ -152,7 +152,7 @@ static void rndis_query(void)
   }
   }
 }
 }
 
 
-#define INFBUF ((uint32_t *)((uint8_t *)&(m->RequestId) + m->InformationBufferOffset))
+#define INFBUF  ((uint8_t *)&(m->RequestId) + m->InformationBufferOffset)
 
 
 static void rndis_handle_config_parm(const char *data, int keyoffset, int valoffset, int keylen, int vallen)
 static void rndis_handle_config_parm(const char *data, int keyoffset, int valoffset, int keylen, int vallen)
 {
 {
@@ -191,14 +191,14 @@ static void rndis_handle_set_msg(void)
         char *ptr = (char *)m;
         char *ptr = (char *)m;
         ptr += sizeof(rndis_generic_msg_t);
         ptr += sizeof(rndis_generic_msg_t);
         ptr += m->InformationBufferOffset;
         ptr += m->InformationBufferOffset;
-        p = (rndis_config_parameter_t *)ptr;
+        p = (rndis_config_parameter_t *) ((void*) ptr);
         rndis_handle_config_parm(ptr, p->ParameterNameOffset, p->ParameterValueOffset, p->ParameterNameLength, p->ParameterValueLength);
         rndis_handle_config_parm(ptr, p->ParameterNameOffset, p->ParameterValueOffset, p->ParameterNameLength, p->ParameterValueLength);
       }
       }
       break;
       break;
 
 
     /* Mandatory general OIDs */
     /* Mandatory general OIDs */
     case OID_GEN_CURRENT_PACKET_FILTER:
     case OID_GEN_CURRENT_PACKET_FILTER:
-      oid_packet_filter = *INFBUF;
+      memcpy(&oid_packet_filter, INFBUF, 4);
       if (oid_packet_filter)
       if (oid_packet_filter)
       {
       {
         rndis_packetFilter(oid_packet_filter);
         rndis_packetFilter(oid_packet_filter);
@@ -239,7 +239,7 @@ void rndis_class_set_handler(uint8_t *data, int size)
   encapsulated_buffer = data;
   encapsulated_buffer = data;
   (void)size;
   (void)size;
 
 
-  switch (((rndis_generic_msg_t *)data)->MessageType)
+  switch (((rndis_generic_msg_t *)encapsulated_buffer)->MessageType)
   {
   {
     case REMOTE_NDIS_INITIALIZE_MSG:
     case REMOTE_NDIS_INITIALIZE_MSG:
       {
       {

+ 3 - 3
src/class/net/net_device.c

@@ -326,7 +326,7 @@ bool netd_control_request(uint8_t rhport, tusb_control_request_t const * request
       {
       {
         if (request->bmRequestType_bit.direction == TUSB_DIR_IN)
         if (request->bmRequestType_bit.direction == TUSB_DIR_IN)
         {
         {
-          rndis_generic_msg_t *rndis_msg = (rndis_generic_msg_t *)notify.rndis_buf;
+          rndis_generic_msg_t *rndis_msg = (rndis_generic_msg_t *) ((void*) notify.rndis_buf);
           uint32_t msglen = tu_le32toh(rndis_msg->MessageLength);
           uint32_t msglen = tu_le32toh(rndis_msg->MessageLength);
           TU_ASSERT(msglen <= sizeof(notify.rndis_buf));
           TU_ASSERT(msglen <= sizeof(notify.rndis_buf));
           tud_control_xfer(rhport, request, notify.rndis_buf, msglen);
           tud_control_xfer(rhport, request, notify.rndis_buf, msglen);
@@ -356,7 +356,7 @@ static void handle_incoming_packet(uint32_t len)
   }
   }
   else
   else
   {
   {
-    rndis_data_packet_t *r = (rndis_data_packet_t *)pnt;
+    rndis_data_packet_t *r = (rndis_data_packet_t *) ((void*) pnt);
     if (len >= sizeof(rndis_data_packet_t))
     if (len >= sizeof(rndis_data_packet_t))
       if ( (r->MessageType == REMOTE_NDIS_PACKET_MSG) && (r->MessageLength <= len))
       if ( (r->MessageType == REMOTE_NDIS_PACKET_MSG) && (r->MessageLength <= len))
         if ( (r->DataOffset + offsetof(rndis_data_packet_t, DataOffset) + r->DataLength) <= len)
         if ( (r->DataOffset + offsetof(rndis_data_packet_t, DataOffset) + r->DataLength) <= len)
@@ -450,7 +450,7 @@ void tud_network_xmit(struct pbuf *p)
 
 
   if (!_netd_itf.ecm_mode)
   if (!_netd_itf.ecm_mode)
   {
   {
-    rndis_data_packet_t *hdr = (rndis_data_packet_t *)transmitted;
+    rndis_data_packet_t *hdr = (rndis_data_packet_t *) ((void*) transmitted);
     memset(hdr, 0, sizeof(rndis_data_packet_t));
     memset(hdr, 0, sizeof(rndis_data_packet_t));
     hdr->MessageType = REMOTE_NDIS_PACKET_MSG;
     hdr->MessageType = REMOTE_NDIS_PACKET_MSG;
     hdr->MessageLength = len;
     hdr->MessageLength = len;