40#ifndef LWIP_HDR_ALTCP_H
41#define LWIP_HDR_ALTCP_H
57struct altcp_functions;
59typedef err_t (*altcp_accept_fn)(
void *arg,
struct altcp_pcb *new_conn, err_t err);
60typedef err_t (*altcp_connected_fn)(
void *arg,
struct altcp_pcb *conn, err_t err);
61typedef err_t (*altcp_recv_fn)(
void *arg,
struct altcp_pcb *conn,
struct pbuf *p, err_t err);
62typedef err_t (*altcp_sent_fn)(
void *arg,
struct altcp_pcb *conn, u16_t len);
63typedef err_t (*altcp_poll_fn)(
void *arg,
struct altcp_pcb *conn);
64typedef void (*altcp_err_fn)(
void *arg, err_t err);
66typedef struct altcp_pcb* (*altcp_new_fn)(
void *arg, u8_t ip_type);
69 const struct altcp_functions *fns;
70 struct altcp_pcb *inner_conn;
74 altcp_accept_fn accept;
75 altcp_connected_fn connected;
85typedef struct altcp_allocator_s {
92struct altcp_pcb *altcp_new(altcp_allocator_t *allocator);
93struct altcp_pcb *altcp_new_ip6(altcp_allocator_t *allocator);
94struct altcp_pcb *altcp_new_ip_type(altcp_allocator_t *allocator, u8_t ip_type);
96void altcp_arg(
struct altcp_pcb *conn,
void *arg);
97void altcp_accept(
struct altcp_pcb *conn, altcp_accept_fn accept);
98void altcp_recv(
struct altcp_pcb *conn, altcp_recv_fn recv);
99void altcp_sent(
struct altcp_pcb *conn, altcp_sent_fn sent);
100void altcp_poll(
struct altcp_pcb *conn, altcp_poll_fn poll, u8_t interval);
101void altcp_err(
struct altcp_pcb *conn, altcp_err_fn err);
103void altcp_recved(
struct altcp_pcb *conn, u16_t len);
104err_t altcp_bind(
struct altcp_pcb *conn,
const ip_addr_t *ipaddr, u16_t port);
105err_t altcp_connect(
struct altcp_pcb *conn,
const ip_addr_t *ipaddr, u16_t port, altcp_connected_fn connected);
108struct altcp_pcb *altcp_listen_with_backlog_and_err(
struct altcp_pcb *conn, u8_t backlog, err_t *err);
109#define altcp_listen_with_backlog(conn, backlog) altcp_listen_with_backlog_and_err(conn, backlog, NULL)
111#define altcp_listen(conn) altcp_listen_with_backlog_and_err(conn, TCP_DEFAULT_LISTEN_BACKLOG, NULL)
113void altcp_abort(
struct altcp_pcb *conn);
114err_t altcp_close(
struct altcp_pcb *conn);
115err_t altcp_shutdown(
struct altcp_pcb *conn,
int shut_rx,
int shut_tx);
117err_t altcp_write(
struct altcp_pcb *conn,
const void *dataptr, u16_t len, u8_t apiflags);
118err_t altcp_output(
struct altcp_pcb *conn);
120u16_t altcp_mss(
struct altcp_pcb *conn);
121u16_t altcp_sndbuf(
struct altcp_pcb *conn);
122u16_t altcp_sndqueuelen(
struct altcp_pcb *conn);
123void altcp_nagle_disable(
struct altcp_pcb *conn);
124void altcp_nagle_enable(
struct altcp_pcb *conn);
125int altcp_nagle_disabled(
struct altcp_pcb *conn);
127void altcp_setprio(
struct altcp_pcb *conn, u8_t prio);
129err_t altcp_get_tcp_addrinfo(
struct altcp_pcb *conn,
int local, ip_addr_t *addr, u16_t *port);
130ip_addr_t *altcp_get_ip(
struct altcp_pcb *conn,
int local);
131u16_t altcp_get_port(
struct altcp_pcb *conn,
int local);
133#if LWIP_TCP_KEEPALIVE
134void altcp_keepalive_disable(
struct altcp_pcb *conn);
135void altcp_keepalive_enable(
struct altcp_pcb *conn, u32_t idle, u32_t intvl, u32_t
count);
139enum tcp_state altcp_dbg_get_tcp_state(
struct altcp_pcb *conn);
152#define altcp_accept_fn tcp_accept_fn
153#define altcp_connected_fn tcp_connected_fn
154#define altcp_recv_fn tcp_recv_fn
155#define altcp_sent_fn tcp_sent_fn
156#define altcp_poll_fn tcp_poll_fn
157#define altcp_err_fn tcp_err_fn
159#define altcp_pcb tcp_pcb
160#define altcp_tcp_new_ip_type tcp_new_ip_type
161#define altcp_tcp_new tcp_new
162#define altcp_tcp_new_ip6 tcp_new_ip6
164#define altcp_new(allocator) tcp_new()
165#define altcp_new_ip6(allocator) tcp_new_ip6()
166#define altcp_new_ip_type(allocator, ip_type) tcp_new_ip_type(ip_type)
168#define altcp_arg tcp_arg
169#define altcp_accept tcp_accept
170#define altcp_recv tcp_recv
171#define altcp_sent tcp_sent
172#define altcp_poll tcp_poll
173#define altcp_err tcp_err
175#define altcp_recved tcp_recved
176#define altcp_bind tcp_bind
177#define altcp_connect tcp_connect
179#define altcp_listen_with_backlog_and_err tcp_listen_with_backlog_and_err
180#define altcp_listen_with_backlog tcp_listen_with_backlog
181#define altcp_listen tcp_listen
183#define altcp_abort tcp_abort
184#define altcp_close tcp_close
185#define altcp_shutdown tcp_shutdown
187#define altcp_write tcp_write
188#define altcp_output tcp_output
190#define altcp_mss tcp_mss
191#define altcp_sndbuf tcp_sndbuf
192#define altcp_sndqueuelen tcp_sndqueuelen
193#define altcp_nagle_disable tcp_nagle_disable
194#define altcp_nagle_enable tcp_nagle_enable
195#define altcp_nagle_disabled tcp_nagle_disabled
196#define altcp_setprio tcp_setprio
198#define altcp_get_tcp_addrinfo tcp_get_tcp_addrinfo
199#define altcp_get_ip(pcb, local) ((local) ? (&(pcb)->local_ip) : (&(pcb)->remote_ip))
202#define altcp_dbg_get_tcp_state tcp_dbg_get_tcp_state
u32 count
start sector of fragmented bd/file