Слияние кода завершено, страница обновится автоматически
/**
* @file wm_netif2.1.3.h
*
* @brief netif213 module
*
* @author WinnerMicro
*
* Copyright (c) 2014 Winner Microelectronics Co., Ltd.
*/
#ifndef WM_NETIF2_0_3_H
#define WM_NETIF2_0_3_H
#include "wm_config.h"
#include "wm_type_def.h"
#include "wm_sockets.h"
#include "wm_wifi.h"
#include "wm_params.h"
/** MACRO for callback EVENT to join AP or create soft-AP successfully */
#define NETIF_WIFI_JOIN_SUCCESS 0x1
/** MACRO for callback EVENT to fail to join AP */
#define NETIF_WIFI_JOIN_FAILED 0x2
/** MACRO for callback EVENT to disconnect from AP or destroy soft-AP */
#define NETIF_WIFI_DISCONNECTED 0x3
/** MACRO for callbck EVENT to get IP address */
#define NETIF_IP_NET_UP 0x4
/** MACRO for callback EVNET to create AP successfully */
#define NETIF_WIFI_SOFTAP_SUCCESS 0x5
/** MACRO for callback EVNET to create soft-AP failed */
#define NETIF_WIFI_SOFTAP_FAILED 0x6
/** MACRO for callback EVNET to close soft-AP */
#define NETIF_WIFI_SOFTAP_CLOSED 0x7
/** MACRO for callback EVNET to inform soft ap's net */
#define NETIF_IP_NET2_UP 0x8
#define NETIF_IPV6_NET_UP 0x9
/** These are the values for ip_addr_t.type */
#define IPADDR_TYPE_V4 0U
#define IPADDR_TYPE_V6 6U
#define IPADDR_TYPE_ANY 46U
#define IPV6_ADDR_MAX_NUM 3
#if 0
struct ip_addr {
u32_t addr;
};
typedef struct ip_addr ip_addr_t;
#endif
#if 0
struct ip4_addr {
u32_t addr;
};
typedef struct ip4_addr ip4_addr_t;
struct ip6_addr {
u32_t addr[4];
};
typedef struct ip6_addr ip6_addr_t;
#if (TLS_CONFIG_IPV4 && TLS_CONFIG_IPV6)
typedef struct _ip_addr {
union {
ip6_addr_t ip6;
ip4_addr_t ip4;
} u_addr;
u8_t type;
} ip_addr_t;
#else
#if TLS_CONFIG_IPV4
typedef ip4_addr_t ip_addr_t;
#else
typedef ip6_addr_t ip_addr_t;
#endif
#endif
#endif
struct tls_ethif {
ip_addr_t ip_addr;
ip_addr_t netmask;
ip_addr_t gw;
#if TLS_CONFIG_IPV6
ip_addr_t ip6_addr[IPV6_ADDR_MAX_NUM];
#endif
ip_addr_t dns1;
ip_addr_t dns2;
u8 status; //0:net down; 1:net up
#if TLS_CONFIG_IPV6
u8 ipv6_status[IPV6_ADDR_MAX_NUM]; //0:net down; 1:net up
#endif
};
//type defination of netif status changed callback.
typedef void (*tls_netif_status_event_fn)(u8 status);
/**
* @defgroup APP_APIs APP APIs
* @brief APP APIs
*/
/**
* @addtogroup APP_APIs
* @{
*/
/**
* @defgroup NETIF_APIs NETIF APIs
* @brief network interface APIs
*/
/**
* @addtogroup NETIF_APIs
* @{
*/
/**
* @brief This function is used to initialize TCP/IP Stack
*
* @param[in] None
*
* @retval 0 success
* @retval other failed
*
* @note None
*/
int tls_ethernet_init(void);
/**
* @brief This function is used to get IP information stored in
tls_ethif struct
*
* @param[in] None
*
* @retval tls_ethif * Pointer to struct tls_ethif
*
* @note None
*/
struct tls_ethif * tls_netif_get_ethif(void);
/**
* @brief This function is used to set tls_ethif status
*
* @param[in] status net status, 0-up, 1-down
*
* @return None
*
* @note None
*/
void tls_netif_set_status(u8 status);
/**
* @brief This function is used to start DHCP Client
*
* @param[in] None
*
* @retval 0 success
* @retval Minus failed
*
* @note None
*/
err_t tls_dhcp_start(void);
/**
* @brief This function is used to stop DHCP client
*
* @param[in] None
*
* @retval 0 success
* @retval Minus failed
*
* @note None
*/
err_t tls_dhcp_stop(void);
/**
* @brief This function is used to change IP information
*
* @param[in] *ipaddr IP address
* @param[in] *netmask netmask
* @param[in] *gw default gateway
*
* @retval 0 success
* @retval Minus failed
*
* @note None
*/
err_t tls_netif_set_addr(ip_addr_t *ipaddr,
ip_addr_t *netmask,
ip_addr_t *gw);
/**
* @brief This function is used to set dns servers
*
* @param[in] numdns index of the DNS server to set
must be < DNS_MAX_SERVERS
* @param[in] *dnsserver IP address of the DNS server to set
*
* @return None
*
* @note None
*/
void tls_netif_dns_setserver(u8 numdns, ip_addr_t *dnsserver);
/**
* @brief This function is used to bring up an interface,available
for processing traffic
*
* @param[in] None
*
* @retval 0 success
* @retval Minus failed
*
* @note None
*/
err_t tls_netif_set_up(void);
/**
* @brief This function is used to bring down an interface,disabling
any traffic processing
*
* @param[in] None
*
* @retval 0 success
* @retval Minus failed
*
* @note None
*/
err_t tls_netif_set_down(void);
/**
* @brief This function is used to add netif status changed callback
to event list,if exists, do nothing
*
* @param[in] event_fn pointer to tls_netif_status_event_fn
*
* @retval 0 success
* @retval Minus failed
*
* @note None
*/
err_t tls_netif_add_status_event(tls_netif_status_event_fn event_fn);
/**
* @brief This function is used to remove netif status changed
callback function from event list,if not exists, do nothing
*
* @param[in] event_fn pointer to tls_netif_status_event_fn
*
* @retval 0 success
* @retval Minus failed
*
* @note None
*/
err_t tls_netif_remove_status_event(tls_netif_status_event_fn event_fn);
/**
* @brief This function is used to get pointer of netif
*
* @param[in] None
*
* @retval pointer of netif
*
* @note None
*/
struct netif *tls_get_netif(void);
#if TLS_CONFIG_AP
/**
* @brief Start DHCP Server for a network interface
* *
* @retval DHCPS_ERR_SUCCESS - No error
* @retval DHCPS_ERR_MEM - Out of memory
* @retval DHCPS_ERR_LINKDOWN - The NI is inactive
*
* @note None
*/
INT8S tls_dhcps_start(void);
/**
* @brief This function is used to stop DHCP Server
*
* @param[in] None
*
* @retval None
*
* @note None
*/
void tls_dhcps_stop(void);
/**
* @brief Start the dns server's service
* *
* @retval DHCPS_ERR_SUCCESS - No error
* @retval DHCPS_ERR_MEM - Out of memory
* @retval DHCPS_ERR_LINKDOWN - The NI is inactive
* @retval DNSS_ERR_PARAM - Input parameter error
*
* @note None
*/
INT8S tls_dnss_start(INT8U * DnsName);
/**
* @brief Stop the dns server's service
*
* @param[in] None
*
* @retval None
*
* @note None
*/
void tls_dnss_stop(void);
/**
* @brief Get station's ip address by mac address
*
* @param[in] mac station's mac address
*
* @retval ip_addr station's ip address
*
* @note None
*/
ip_addr_t *tls_dhcps_getip(const u8_t *mac);
/**
* @brief Get station's mac address by ip address
*
* @param[in] ip station's ip address
*
* @retval u8* station's mac address
*
* @note None
*/
u8 *tls_dhcps_getmac(const ip_addr_t *ip);
#endif //TLS_CONFIG_AP
#if TLS_CONFIG_RMMS
/**
* @brief Start remote manager server.
* *
* @retval DHCPS_ERR_SUCCESS - No error
* @retval DHCPS_ERR_MEM - Out of memory
* @retval DHCPS_ERR_LINKDOWN - The NIF is inactive
*
* @note None
*/
INT8S tls_rmms_start(void);
/**
* @brief Disable remote manager server
*
* @param[in] None
*
* @retval None
*
* @note None
*/
void tls_rmms_stop(void);
#endif
#if TLS_CONFIG_AP
/**
* @brief This is used to bring up an interface for APSTA,available
for processing traffic
*
* @param[in] None
*
* @retval 0 success
* @retval Minus failed
*
* @note Can only be used at APSTA mode
*/
err_t tls_netif2_set_up(void);
/**
* @brief This function is used to bring down an interface for APSTA, disabling
any traffic processing
*
* @param[in] None
*
* @retval 0 success
* @retval Minus failed
*
* @note Can only be used at APSTA mode
*/
err_t tls_netif2_set_down(void);
/**
* @brief This function is used to change IP information for
a network interface for APSTA
*
* @param[in] *ipaddr IP address
* @param[in] *netmask netmask
* @param[in] *gw default gateway
*
* @retval 0 success
* @retval Minus failed
*
* @note Can only be used at APSTA mode
*/
err_t tls_netif2_set_addr(ip_addr_t *ipaddr,
ip_addr_t *netmask,
ip_addr_t *gw);
/***************************************************************************
* Function: tls_dhcps_setdns
* Description: Set dhcp server's dns address.
*
* Input: numdns: the index of the DNS server to set must be less than DNS_MAX_SERVERS
*
* Output: None
*
* Return: None
*
* Date : 2015-3-10
****************************************************************************/
/**
* @brief Set dhcp server's dns address
*
* @param[in] numdns the index of the DNS server to set must be less than DNS_MAX_SERVERS
*
* @retval None
*
* @note Can only be used at APSTA mode
*/
void tls_dhcps_setdns(u8_t numdns);
#endif
/**
* @}
*/
/**
* @}
*/
#endif //WM_NETIF_H
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )