Xilinx / embeddedsw

Xilinx Embedded Software (embeddedsw) Development
Other
929 stars 1.06k forks source link

Compiler warnings lwip / xemacpsif.c #283

Open blofeld80 opened 8 months ago

blofeld80 commented 8 months ago

There are a couple of warnings coming from xemacpsif.c

  1. Cast from ip_addr_t to ip4/6_addr_t missing
  2. Callback functions do not match the signatures defined by lwip
../../embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xemacpsif.c: In function 'xemacpsif_output':
../../embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xemacpsif.c:242:40: warning: passing argument 3 of 'etharp_output' from incompatible pointer type [-Wincompatible-pointer-types]
  242 |         return etharp_output(netif, p, ipaddr);
      |                                        ^~~~~~
      |                                        |
      |                                        const ip_addr_t * {aka const struct ip_addr *}
In file included from ../../lwip/src/include/netif/etharp.h:2,
                 from ../../embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xemacpsif.c:45:
../../lwip/src/include/lwip/etharp.h:81:76: note: expected 'const ip4_addr_t *' {aka 'const struct ip4_addr *'} but argument is of type 'const ip_addr_t *' {aka 'const struct ip_addr *'}
   81 | err_t etharp_output(struct netif *netif, struct pbuf *q, const ip4_addr_t *ipaddr);
      |                                                          ~~~~~~~~~~~~~~~~~~^~~~~~
../../embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xemacpsif.c: In function 'low_level_init':
../../embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xemacpsif.c:377:24: warning: assignment to 'netif_mld_mac_filter_fn' {aka 'signed char (*)(struct netif *, const struct ip6_addr *, enum netif_mac_filter_action)'} from incompatible pointer type 'err_t (*)(struct netif *, ip_addr_t *, u8_t)' {aka 'signed char (*)(struct netif *, struct ip_addr *, unsigned char)'} [-Wincompatible-pointer-types]
  377 |  netif->mld_mac_filter = xemacpsif_mld6_mac_filter_update;
      |                        ^
../../embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xemacpsif.c: In function 'xemacpsif_init':
../../embeddedsw/ThirdParty/sw_services/lwip211/src/contrib/ports/xilinx/netif/xemacpsif.c:768:23: warning: assignment to 'netif_output_fn' {aka 'signed char (*)(struct netif *, struct pbuf *, const struct ip4_addr *)'} from incompatible pointer type 'err_t (*)(struct netif *, struct pbuf *, const ip_addr_t *)' {aka 'signed char (*)(struct netif *, struct pbuf *, const struct ip_addr *)'} [-Wincompatible-pointer-types]
  768 |         netif->output = xemacpsif_output;
      |                 

Should become something like:

static err_t xemacpsif_mac_filter_update (struct netif *netif,
                            const ip4_addr_t *group,
                            enum netif_mac_filter_action action);
static err_t xemacpsif_mld6_mac_filter_update (struct netif *netif,
                            const ip6_addr_t *group,
                            enum netif_mac_filter_action action);
static err_t xemacpsif_output(struct netif *netif, struct pbuf *p,
        const ip4_addr_t *ipaddr)
{
    /* resolve hardware address, then send (or queue) packet */
    return etharp_output(netif, p, (const ip4_addr_t*) ipaddr);
}
static err_t xemacpsif_mld6_mac_filter_update (struct netif *netif,
                            const ip6_addr_t *group,
                            enum netif_mac_filter_action action)
{
    u8_t temp_mask;
    unsigned int i;
    u8_t * ip_addr = (u8_t *) group;

    if(!(xemacpsif_ip6_addr_ismulticast((ip6_addr_t*) group ))) {
static void xemacpsif_mac_hash_update (struct netif *netif, u8_t *ip4_addr_t,
        enum netif_mac_filter_action action)