/** * @file di/drv/hl854x/tcp.h * @{ */ #ifndef DI_DRV_HL854X_TCP_H_ #define DI_DRV_HL854X_TCP_H_ #ifdef __cplusplus extern "C" { #endif /** TCP state */ enum di_drv_hl854x_tcp_state { HL854X_TCP_STATE_ERROR = -1, HL854X_TCP_STATE_UNKNOWN = 0, HL854X_TCP_STATE_NOT_DEFINED = 1, HL854X_TCP_STATE_NOT_USED = 2, HL854X_TCP_STATE_CONNECTING = 3, HL854X_TCP_STATE_CONNECTED = 4, HL854X_TCP_STATE_DISCONNECTING = 5, HL854X_TCP_STATE_DISCONNECTED = 6, HL854X_TCP_STATE_CLOSED = 7, HL854X_TCP_STATE_RECV = 8 }; /** KTCP_NOTIF error codes */ enum di_drv_hl854x_ktcp_notif { DI_DRV_HL854X_KTCP_NOTIF_UNKNOWN = -1, DI_DRV_HL854X_KTCP_NOTIF_NETWORK_ERROR = 0, DI_DRV_HL854X_KTCP_NOTIF_NO_SOCK_AVAIL = 1, DI_DRV_HL854X_KTCP_NOTIF_MEMORY_ERROR = 2, DI_DRV_HL854X_KTCP_NOTIF_DNS_ERROR = 3, DI_DRV_HL854X_KTCP_NOTIF_DISCONNECTED = 4, DI_DRV_HL854X_KTCP_NOTIF_CON_ERROR = 5, DI_DRV_HL854X_KTCP_NOTIF_GENERIC_ERROR = 6, DI_DRV_HL854X_KTCP_NOTIF_ACCEPT_FAILED = 7, DI_DRV_HL854X_KTCP_NOTIF_KTCPSND_MORELESS_DATA = 8, DI_DRV_HL854X_KTCP_NOTIF_BAD_SESSION_ID = 9, DI_DRV_HL854X_KTCP_NOTIF_SESSION_ALREADY_RUNNING = 10, DI_DRV_HL854X_KTCP_NOTIF_ALL_SESSIONS_USED = 11, DI_DRV_HL854X_KTCP_NOTIF_SOCK_CON_TIMEOUT = 12, DI_DRV_HL854X_KTCP_NOTIF_CONTROL_SOCK_CON_TIMEOUT = 13 }; void di_drv_hl854x_tcp_stat(struct di_drv_hl854x_ctx *ctx); void di_drv_hl854x_tcp_del(struct di_drv_hl854x_ctx *ctx); void di_drv_hl854x_tcp_open(struct di_drv_hl854x_ctx *ctx); void di_drv_hl854x_tcp_close(struct di_drv_hl854x_ctx *ctx); di_errno_t di_drv_hl854x_tcp_send(struct di_drv_hl854x_ctx *ctx, const void *buf, size_t size); di_errno_t di_drv_hl854x_tcp_send_buf(struct di_drv_hl854x_ctx *ctx, const struct di_buffer *buf); size_t di_drv_hl854x_tcp_recv(struct di_drv_hl854x_ctx *ctx, void *buf, size_t size); void di_drv_hl854x_tcp_recv_buf(struct di_drv_hl854x_ctx *ctx, struct di_buffer *buf); /** * Wait for data available on TCP session 1 * @param timeout_ms Timeout in milliseconds (or HL854X_TIMEOUT_INFINITE) */ di_errno_t di_drv_hl854x_tcp_recv_wait_data_available(struct di_drv_hl854x_ctx *ctx, uint32_t timeout_ms); #ifdef __cplusplus } #endif /** @} */ #endif /* DI_DRV_HL854X_TCP_H_ */