src.dualinventive.com/jjacobs/dinetrpcll-sniffer/libdi/include/di/drv/hl854x/tcp.h

68 lines
2.3 KiB
C

/**
* @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_ */