Link Kit C-SDK  5.0.0
aiot_sysdep_api.h
浏览该文件的文档.
1 
10 #ifndef _AIOT_SYSDEP_API_H_
11 #define _AIOT_SYSDEP_API_H_
12 
13 #if defined(__cplusplus)
14 extern "C" {
15 #endif
16 
17 #include <stdint.h>
18 
19 typedef enum {
25 
26 typedef struct {
27  aiot_sysdep_network_cred_option_t option; /* 安全策略 */
28  uint32_t max_tls_fragment;
29  uint8_t sni_enabled;
30  const char *x509_server_cert; /* 必须位于静态存储区, SDK内部不做拷贝 */
32  const char *x509_client_cert; /* 必须位于静态存储区, SDK内部不做拷贝 */
34  const char *x509_client_privkey; /* 必须位于静态存储区, SDK内部不做拷贝 */
38 
39 typedef enum {
45 
46 typedef struct {
47  char *psk_id;
48  char *psk;
50 
51 typedef enum {
52  CORE_SYSDEP_NETWORK_SOCKET_TYPE, /* 需要建立的socket类型 数据类型: (core_sysdep_socket_type_t *) */
53  CORE_SYSDEP_NETWORK_HOST, /* 用于建立网络连接的域名地址或ip地址, 内存与上层模块共用 数据类型: (char *) */
54  CORE_SYSDEP_NETWORK_BACKUP_IP, /* 当建联DNS解析失败时, 使用此备用ip重试 */
55  CORE_SYSDEP_NETWORK_PORT, /* 用于建立网络连接的端口号 数据类型: (uint16_t *) */
56  CORE_SYSDEP_NETWORK_CONNECT_TIMEOUT_MS, /* 建立网络连接的超时时间 数据类型: (uint32_t *) */
57  CORE_SYSDEP_NETWORK_CRED, /* 用于设置网络层安全参数 数据类型: (aiot_sysdep_network_cred_t *) */
58  CORE_SYSDEP_NETWORK_PSK, /* 用于配合PSK模式下的psk-id和psk 数据类型: (core_sysdep_psk_t *) */
61 
62 typedef struct {
63  char addr[16]; /* ipv4地址点分十进制字符串, 最大长度15字节. */
64  uint16_t port; /* 端口号 */
66 
67 /* 这不是一个面向用户的编译配置开关, 多数情况下, 不必用户关心 */
68 
72 typedef struct {
76  void *(*core_sysdep_malloc)(uint32_t size, char *name);
80  void (*core_sysdep_free)(void *ptr);
84  uint64_t (*core_sysdep_time)(void);
88  void (*core_sysdep_sleep)(uint64_t time_ms);
92  void *(*core_sysdep_network_init)(void);
93 
97  int32_t (*core_sysdep_network_setopt)(void *handle, core_sysdep_network_option_t option, void *data);
101  int32_t (*core_sysdep_network_establish)(void *handle);
105  int32_t (*core_sysdep_network_recv)(void *handle, uint8_t *buffer, uint32_t len, uint32_t timeout_ms,
106  core_sysdep_addr_t *addr);
110  int32_t (*core_sysdep_network_send)(void *handle, uint8_t *buffer, uint32_t len, uint32_t timeout_ms,
111  core_sysdep_addr_t *addr);
115  int32_t (*core_sysdep_network_deinit)(void **handle);
119  void (*core_sysdep_rand)(uint8_t *output, uint32_t output_len);
123  void *(*core_sysdep_mutex_init)(void);
127  void (*core_sysdep_mutex_lock)(void *mutex);
131  void (*core_sysdep_mutex_unlock)(void *mutex);
135  void (*core_sysdep_mutex_deinit)(void **mutex);
139  void *(*core_sysdep_thread_init)(char *task_name, void *(*work)(void *), void *argv);
143  void (*core_sysdep_thread_join)(void **thread_ptr);
147  void (*core_sysdep_thread_deinit)(void **thread_ptr);
148 
150 
153 
154 #if defined(__cplusplus)
155 }
156 #endif
157 
158 #endif
159 
Definition: aiot_sysdep_api.h:52
Definition: aiot_sysdep_api.h:46
Definition: aiot_sysdep_api.h:55
char * psk
Definition: aiot_sysdep_api.h:48
uint32_t x509_server_cert_len
Definition: aiot_sysdep_api.h:31
Definition: aiot_sysdep_api.h:53
uint16_t port
Definition: aiot_sysdep_api.h:64
Definition: aiot_sysdep_api.h:59
aiot_sysdep_network_cred_option_t option
Definition: aiot_sysdep_api.h:27
Definition: aiot_sysdep_api.h:56
Definition: aiot_sysdep_api.h:57
Definition: aiot_sysdep_api.h:41
aiot_sysdep_portfile_t * aiot_sysdep_get_portfile(void)
aiot_sysdep_network_cred_option_t
Definition: aiot_sysdep_api.h:19
uint32_t max_tls_fragment
Definition: aiot_sysdep_api.h:28
Definition: aiot_sysdep_api.h:20
用以向SDK描述其运行硬件平台的资源如何使用的方法结构体
Definition: aiot_sysdep_api.h:72
Definition: aiot_sysdep_api.h:54
core_sysdep_socket_type_t
Definition: aiot_sysdep_api.h:39
Definition: aiot_sysdep_api.h:43
core_sysdep_network_option_t
Definition: aiot_sysdep_api.h:51
Definition: aiot_sysdep_api.h:40
char * tls_extend_info
Definition: aiot_sysdep_api.h:36
const char * x509_client_cert
Definition: aiot_sysdep_api.h:32
const char * x509_client_privkey
Definition: aiot_sysdep_api.h:34
Definition: aiot_sysdep_api.h:42
const char * x509_server_cert
Definition: aiot_sysdep_api.h:30
Definition: aiot_sysdep_api.h:22
uint32_t x509_client_cert_len
Definition: aiot_sysdep_api.h:33
char * psk_id
Definition: aiot_sysdep_api.h:47
uint32_t x509_client_privkey_len
Definition: aiot_sysdep_api.h:35
uint8_t sni_enabled
Definition: aiot_sysdep_api.h:29
void aiot_sysdep_set_portfile(aiot_sysdep_portfile_t *portfile)
Definition: aiot_sysdep_api.h:58
Definition: aiot_sysdep_api.h:26
Definition: aiot_sysdep_api.h:21
Definition: aiot_sysdep_api.h:62
Definition: aiot_sysdep_api.h:23