mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-05-23 01:58:24 +08:00
62 lines
2.1 KiB
C
62 lines
2.1 KiB
C
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#ifndef _TCPIP_ADAPTER_H_
|
|
#define _TCPIP_ADAPTER_H_
|
|
|
|
#include "sdkconfig.h"
|
|
/**
|
|
* @brief TCPIP adapter library
|
|
*
|
|
* The aim of this adapter is to provide an abstract layer upon TCPIP stack.
|
|
* With this layer, switch to other TCPIP stack is possible and easy in ESP8266_RTOS_SDK.
|
|
*
|
|
* If users want to use other TCPIP stack, all those functions should be implemented
|
|
* by using the specific APIs of that stack.
|
|
*
|
|
* tcpip_adapter_init should be called in the start of app_main for only once.
|
|
*
|
|
* Currently most adapter APIs are called in event_default_handlers.c.
|
|
*
|
|
* We recommend users only use set/get IP APIs, DHCP server/client APIs,
|
|
* get free station list APIs in application side. Other APIs are used in ESP8266_RTOS_SDK internal,
|
|
* otherwise the state maybe wrong.
|
|
*
|
|
*/
|
|
|
|
typedef enum {
|
|
TCPIP_ADAPTER_IF_STA = 0, /**< ESP8266 station interface */
|
|
TCPIP_ADAPTER_IF_AP, /**< ESP8266 soft-AP interface */
|
|
TCPIP_ADAPTER_IF_MAX
|
|
} tcpip_adapter_if_t;
|
|
|
|
struct netif *esp_netif[TCPIP_ADAPTER_IF_MAX];
|
|
char* hostname;
|
|
bool default_hostname;
|
|
|
|
#define TCPIP_ADAPTER_IF_VALID(fd) ((fd < TCPIP_ADAPTER_IF_MAX) ? 1 : 0)
|
|
|
|
/* Define those to better describe your network interface. */
|
|
#define IFNAME0 'e'
|
|
#define IFNAME1 'n'
|
|
|
|
#ifdef CONFIG_TCPIP_ADAPER_DEBUG
|
|
#define TAG "TCPIP_ADAPTER"
|
|
#define TCPIP_ATAPTER_LOG(str, ...) printf(TAG " line: %d " str, __LINE__, ##__VA_ARGS__)
|
|
#else
|
|
#define TCPIP_ATAPTER_LOG(str, ...)
|
|
#endif
|
|
|
|
|
|
#endif /* _TCPIP_ADAPTER_H_ */ |