#ifndef _NET_TCP_H #define _NET_TCP_H #include #define TCP_STATE_CLOSED 0 #define TCP_STATE_LISTEN 1 #define TCP_STATE_SYN_SENT 2 #define TCP_STATE_SYN_RCVD 3 #define TCP_STATE_ESTABLISHED 4 #define TCP_STATE_FIN_WAIT1 5 #define TCP_STATE_FIN_WAIT2 6 #define TCP_STATE_CLOSE_WAIT 7 #define TCP_STATE_CLOSING 8 #define TCP_STATE_LAST_ACK 9 #define TCP_STATE_TIME_WAIT 10 typedef struct { uint16_t src_port; uint16_t dst_port; uint32_t seq_num; uint32_t ack_num; uint8_t data_offset_reserved; uint8_t flags; uint16_t window_size; uint16_t checksum; uint16_t urgent_pointer; } __attribute__((packed)) tcp_header_t; void tcp_init(void); void tcp_receive(const uint8_t* packet, uint16_t length, uint32_t src_ip); #endif // _NET_TCP_H