mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-08-23 06:35:57 +00:00
Add API macros for netif client data handling and update documentation accordingly
This commit is contained in:
parent
537bd836c9
commit
0d510dd66d
|
@ -2096,6 +2096,7 @@ PREDEFINED = __DOXYGEN__=1 \
|
||||||
LWIP_NETIF_STATUS_CALLBACK=1 \
|
LWIP_NETIF_STATUS_CALLBACK=1 \
|
||||||
LWIP_NETIF_REMOVE_CALLBACK=1 \
|
LWIP_NETIF_REMOVE_CALLBACK=1 \
|
||||||
LWIP_NETIF_LINK_CALLBACK=1 \
|
LWIP_NETIF_LINK_CALLBACK=1 \
|
||||||
|
LWIP_NUM_NETIF_CLIENT_DATA=1 \
|
||||||
ENABLE_LOOPBACK=1 \
|
ENABLE_LOOPBACK=1 \
|
||||||
LWIP_AUTOIP=1 \
|
LWIP_AUTOIP=1 \
|
||||||
ARP_QUEUEING=1 \
|
ARP_QUEUEING=1 \
|
||||||
|
|
|
@ -95,7 +95,7 @@
|
||||||
static err_t autoip_arp_announce(struct netif *netif);
|
static err_t autoip_arp_announce(struct netif *netif);
|
||||||
static void autoip_start_probing(struct netif *netif);
|
static void autoip_start_probing(struct netif *netif);
|
||||||
|
|
||||||
#define netif_autoip_data(netif) ((struct autoip*)netif->client_data[LWIP_NETIF_CLIENT_DATA_INDEX_AUTOIP])
|
#define netif_autoip_data(netif) ((struct autoip*)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_AUTOIP))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ingroup autoip
|
* @ingroup autoip
|
||||||
|
@ -116,7 +116,7 @@ autoip_set_struct(struct netif *netif, struct autoip *autoip)
|
||||||
/* clear data structure */
|
/* clear data structure */
|
||||||
memset(autoip, 0, sizeof(struct autoip));
|
memset(autoip, 0, sizeof(struct autoip));
|
||||||
/* autoip->state = AUTOIP_STATE_OFF; */
|
/* autoip->state = AUTOIP_STATE_OFF; */
|
||||||
netif->client_data[LWIP_NETIF_CLIENT_DATA_INDEX_AUTOIP] = autoip;
|
netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_AUTOIP, autoip);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Restart AutoIP client and check the next address (conflict detected)
|
/** Restart AutoIP client and check the next address (conflict detected)
|
||||||
|
@ -281,7 +281,7 @@ autoip_start(struct netif *netif)
|
||||||
}
|
}
|
||||||
memset(autoip, 0, sizeof(struct autoip));
|
memset(autoip, 0, sizeof(struct autoip));
|
||||||
/* store this AutoIP client in the netif */
|
/* store this AutoIP client in the netif */
|
||||||
netif->client_data[LWIP_NETIF_CLIENT_DATA_INDEX_AUTOIP] = autoip;
|
netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_AUTOIP, autoip);
|
||||||
LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_start(): allocated autoip"));
|
LWIP_DEBUGF(AUTOIP_DEBUG | LWIP_DBG_TRACE, ("autoip_start(): allocated autoip"));
|
||||||
} else {
|
} else {
|
||||||
autoip->state = AUTOIP_STATE_OFF;
|
autoip->state = AUTOIP_STATE_OFF;
|
||||||
|
|
|
@ -193,7 +193,7 @@ static void dhcp_option_hostname(struct dhcp *dhcp, struct netif *netif);
|
||||||
/* always add the DHCP options trailer to end and pad */
|
/* always add the DHCP options trailer to end and pad */
|
||||||
static void dhcp_option_trailer(struct dhcp *dhcp);
|
static void dhcp_option_trailer(struct dhcp *dhcp);
|
||||||
|
|
||||||
#define netif_dhcp_data(netif) ((struct dhcp*)netif->client_data[LWIP_NETIF_CLIENT_DATA_INDEX_DHCP])
|
#define netif_dhcp_data(netif) ((struct dhcp*)netif_get_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP))
|
||||||
|
|
||||||
/** Ensure DHCP PCB is allocated and bound */
|
/** Ensure DHCP PCB is allocated and bound */
|
||||||
static err_t
|
static err_t
|
||||||
|
@ -668,7 +668,7 @@ dhcp_set_struct(struct netif *netif, struct dhcp *dhcp)
|
||||||
/* clear data structure */
|
/* clear data structure */
|
||||||
memset(dhcp, 0, sizeof(struct dhcp));
|
memset(dhcp, 0, sizeof(struct dhcp));
|
||||||
/* dhcp_set_state(&dhcp, DHCP_STATE_OFF); */
|
/* dhcp_set_state(&dhcp, DHCP_STATE_OFF); */
|
||||||
netif->client_data[LWIP_NETIF_CLIENT_DATA_INDEX_DHCP] = dhcp;
|
netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP, dhcp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -686,7 +686,7 @@ void dhcp_cleanup(struct netif *netif)
|
||||||
|
|
||||||
if (netif_dhcp_data(netif) != NULL) {
|
if (netif_dhcp_data(netif) != NULL) {
|
||||||
mem_free(netif_dhcp_data(netif));
|
mem_free(netif_dhcp_data(netif));
|
||||||
netif->client_data[LWIP_NETIF_CLIENT_DATA_INDEX_DHCP] = NULL;
|
netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -730,7 +730,7 @@ dhcp_start(struct netif *netif)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* store this dhcp client in the netif */
|
/* store this dhcp client in the netif */
|
||||||
netif->client_data[LWIP_NETIF_CLIENT_DATA_INDEX_DHCP] = dhcp;
|
netif_set_client_data(netif, LWIP_NETIF_CLIENT_DATA_INDEX_DHCP, dhcp);
|
||||||
LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): allocated dhcp"));
|
LWIP_DEBUGF(DHCP_DEBUG | LWIP_DBG_TRACE, ("dhcp_start(): allocated dhcp"));
|
||||||
/* already has DHCP client attached */
|
/* already has DHCP client attached */
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -10,6 +10,11 @@
|
||||||
*
|
*
|
||||||
* @defgroup netif_ip6 IPv6 address handling
|
* @defgroup netif_ip6 IPv6 address handling
|
||||||
* @ingroup netif
|
* @ingroup netif
|
||||||
|
*
|
||||||
|
* @defgroup netif_cd Client data handling
|
||||||
|
* Store data (void*) on a netif for application usage.
|
||||||
|
* @see @ref LWIP_NUM_NETIF_CLIENT_DATA
|
||||||
|
* @ingroup netif
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -967,7 +972,7 @@ netif_poll_all(void)
|
||||||
|
|
||||||
#if LWIP_NUM_NETIF_CLIENT_DATA > 0
|
#if LWIP_NUM_NETIF_CLIENT_DATA > 0
|
||||||
/**
|
/**
|
||||||
* @ingroup netif
|
* @ingroup netif_cd
|
||||||
* Allocate an index to store data in client_data member of struct netif.
|
* Allocate an index to store data in client_data member of struct netif.
|
||||||
* Returned value is an index in mentioned array.
|
* Returned value is an index in mentioned array.
|
||||||
* @see LWIP_NUM_NETIF_CLIENT_DATA
|
* @see LWIP_NUM_NETIF_CLIENT_DATA
|
||||||
|
|
|
@ -426,6 +426,14 @@ err_t netif_input(struct pbuf *p, struct netif *inp);
|
||||||
|
|
||||||
#if LWIP_NUM_NETIF_CLIENT_DATA > 0
|
#if LWIP_NUM_NETIF_CLIENT_DATA > 0
|
||||||
u8_t netif_alloc_client_data_id(void);
|
u8_t netif_alloc_client_data_id(void);
|
||||||
|
/** @ingroup netif_cd
|
||||||
|
* Set client data. Obtain ID from netif_alloc_client_data_id().
|
||||||
|
*/
|
||||||
|
#define netif_set_client_data(netif, id, data) netif_get_client_data(netif, id) = (data)
|
||||||
|
/** @ingroup netif_cd
|
||||||
|
* Get client data. Obtain ID from netif_alloc_client_data_id().
|
||||||
|
*/
|
||||||
|
#define netif_get_client_data(netif, id) (netif)->client_data[(id)]
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if LWIP_IPV6
|
#if LWIP_IPV6
|
||||||
|
|
|
@ -2495,7 +2495,8 @@
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LWIP_HOOK_VLAN_SET:
|
* LWIP_HOOK_VLAN_SET:
|
||||||
* Hook can be used to set prio_vid field of vlan_hdr.
|
* Hook can be used to set prio_vid field of vlan_hdr. If you need to store data
|
||||||
|
* on per-netif basis to implement this callback, see @ref netif_cd.
|
||||||
* Called from ethernet_output() if VLAN support (@ref ETHARP_SUPPORT_VLAN) is enabled.\n
|
* Called from ethernet_output() if VLAN support (@ref ETHARP_SUPPORT_VLAN) is enabled.\n
|
||||||
* Signature: s32_t my_hook_vlan_set(struct netif* netif, struct pbuf* pbuf, const struct eth_addr* src, const struct eth_addr* dst, u16_t eth_type);\n
|
* Signature: s32_t my_hook_vlan_set(struct netif* netif, struct pbuf* pbuf, const struct eth_addr* src, const struct eth_addr* dst, u16_t eth_type);\n
|
||||||
* Arguments:
|
* Arguments:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user