Files
CCU621M/Third_party/sdkEng/wrappers/wrappers_defs.h
T

231 lines
5.7 KiB
C

#ifndef _WRAPPERS_DEFS_H_
#define _WRAPPERS_DEFS_H_
#include <stdio.h>
#include "infra_types.h"
#include "infra_defs.h"
#define PLATFORM_WAIT_INFINITE (~0)
typedef struct {
void *(*malloc)(uint32_t size);
void (*free)(void *ptr);
} ssl_hooks_t;
typedef enum {
os_thread_priority_idle = -3, /* priority: idle (lowest) */
os_thread_priority_low = -2, /* priority: low */
os_thread_priority_belowNormal = -1, /* priority: below normal */
os_thread_priority_normal = 0, /* priority: normal (default) */
os_thread_priority_aboveNormal = 1, /* priority: above normal */
os_thread_priority_high = 2, /* priority: high */
os_thread_priority_realtime = 3, /* priority: realtime (highest) */
os_thread_priority_error = 0x84, /* system cannot determine priority or thread has illegal priority */
} hal_os_thread_priority_t;
typedef struct _hal_os_thread {
hal_os_thread_priority_t priority; /*initial thread priority */
void *stack_addr; /* thread stack address malloced by caller, use system stack by . */
int stack_size; /* stack size requirements in bytes; 0 is default stack size */
int detach_state; /* 0: not detached state; otherwise: detached state. */
char *name; /* thread name. */
} hal_os_thread_param_t;
#define DTLS_ERROR_BASE (1<<24)
#define DTLS_SUCCESS (0)
#define DTLS_INVALID_PARAM (DTLS_ERROR_BASE | 1)
#define DTLS_INVALID_CA_CERTIFICATE (DTLS_ERROR_BASE | 2)
#define DTLS_HANDSHAKE_IN_PROGRESS (DTLS_ERROR_BASE | 3)
#define DTLS_HANDSHAKE_FAILED (DTLS_ERROR_BASE | 4)
#define DTLS_FATAL_ALERT_MESSAGE (DTLS_ERROR_BASE | 5)
#define DTLS_PEER_CLOSE_NOTIFY (DTLS_ERROR_BASE | 6)
#define DTLS_SESSION_CREATE_FAILED (DTLS_ERROR_BASE | 7)
#define DTLS_READ_DATA_FAILED (DTLS_ERROR_BASE | 8)
typedef struct {
unsigned char *p_ca_cert_pem;
char *p_host;
unsigned short port;
} coap_dtls_options_t;
typedef enum {
HAL_SEEK_SET,
HAL_SEEK_CUR,
HAL_SEEK_END
} hal_fs_seek_type_t;
typedef void DTLSContext;
/* link type */
enum AWSS_LINK_TYPE {
/* rtos HAL choose this type */
AWSS_LINK_TYPE_NONE,
/* linux HAL may choose the following type */
AWSS_LINK_TYPE_PRISM,
AWSS_LINK_TYPE_80211_RADIO,
AWSS_LINK_TYPE_80211_RADIO_AVS,
AWSS_LINK_TYPE_HT40_CTRL /* for espressif HAL, see struct ht40_ctrl */
};
typedef int (*awss_recv_80211_frame_cb_t)(char *buf, int length,
enum AWSS_LINK_TYPE link_type, int with_fcs, signed char rssi);
typedef void (*awss_wifi_mgmt_frame_cb_t)(_IN_ uint8_t *buffer, _IN_ int len,
_IN_ signed char rssi_dbm, _IN_ int buffer_type);
struct HAL_Ht40_Ctrl {
uint16_t length;
uint8_t filter;
signed char rssi;
};
/* encryt type */
enum AWSS_ENC_TYPE {
AWSS_ENC_TYPE_NONE,
AWSS_ENC_TYPE_WEP,
AWSS_ENC_TYPE_TKIP,
AWSS_ENC_TYPE_AES,
AWSS_ENC_TYPE_TKIPAES,
AWSS_ENC_TYPE_MAX = AWSS_ENC_TYPE_TKIPAES,
AWSS_ENC_TYPE_INVALID = 0xff,
};
/* auth type */
enum AWSS_AUTH_TYPE {
AWSS_AUTH_TYPE_OPEN,
AWSS_AUTH_TYPE_SHARED,
AWSS_AUTH_TYPE_WPAPSK,
AWSS_AUTH_TYPE_WPA8021X,
AWSS_AUTH_TYPE_WPA2PSK,
AWSS_AUTH_TYPE_WPA28021X,
AWSS_AUTH_TYPE_WPAPSKWPA2PSK,
AWSS_AUTH_TYPE_MAX = AWSS_AUTH_TYPE_WPAPSKWPA2PSK,
AWSS_AUTH_TYPE_INVALID = 0xff,
};
/* 80211 frame type */
typedef enum HAL_Awss_Frame_Type {
FRAME_ACTION,
FRAME_BEACON,
FRAME_PROBE_REQ,
FRAME_PROBE_RESPONSE,
FRAME_DATA
} HAL_Awss_Frame_Type_t;
#if defined(AT_PARSER_ENABLED)
/*
* UART data width
*/
typedef enum {
DATA_WIDTH_5BIT,
DATA_WIDTH_6BIT,
DATA_WIDTH_7BIT,
DATA_WIDTH_8BIT,
DATA_WIDTH_9BIT
} hal_uart_data_width_t;
/*
* UART stop bits
*/
typedef enum {
STOP_BITS_1,
STOP_BITS_2
} hal_uart_stop_bits_t;
/*
* UART flow control
*/
typedef enum {
FLOW_CONTROL_DISABLED,
FLOW_CONTROL_CTS,
FLOW_CONTROL_RTS,
FLOW_CONTROL_CTS_RTS
} hal_uart_flow_control_t;
/*
* UART parity
*/
typedef enum {
NO_PARITY,
ODD_PARITY,
EVEN_PARITY
} hal_uart_parity_t;
/*
* UART mode
*/
typedef enum {
MODE_TX,
MODE_RX,
MODE_TX_RX
} hal_uart_mode_t;
/*
* UART configuration
*/
typedef struct {
uint32_t baud_rate;
hal_uart_data_width_t data_width;
hal_uart_parity_t parity;
hal_uart_stop_bits_t stop_bits;
hal_uart_flow_control_t flow_control;
hal_uart_mode_t mode;
} at_uart_config_t;
typedef struct {
uint8_t port; /* uart port */
at_uart_config_t config; /* uart config */
void *priv; /* priv data */
} uart_dev_t;
#endif
#if defined(AT_TCP_ENABLED)
typedef enum {
/* WiFi */
TCP_SERVER,
TCP_CLIENT,
SSL_CLIENT,
UDP_BROADCAST,
UDP_UNICAST,
/*WiFi end */
/* Add others hereafter */
} CONN_TYPE;
#if defined(AT_SSL_ENABLED)
typedef enum {
ROOT_CERT,
CLIENT_CERT,
/* add other type */
} CERT_TYPE;
typedef struct {
int cert_len;
const char *cert_data;
CERT_TYPE cert_type;
} cert_info_t;
#endif
/* Fill necessary fileds according to the socket type. */
typedef struct {
int fd; /* fd that are used in socket level */
CONN_TYPE type;
char *addr; /* remote ip or domain */
int32_t r_port; /* remote port (set to -1 if not used) */
int32_t l_port; /* local port (set to -1 if not used) */
uint32_t tcp_keep_alive; /* tcp keep alive value (set to 0 if not used) */
void *param;
} at_conn_t;
struct at_conn_input {
int fd;
void *data;
uint32_t datalen;
char *remote_ip;
uint16_t remote_port;
};
#endif
#endif