quinn-os/tcp.h
2016-01-29 18:19:37 +10:00

39 lines
758 B
C

#ifndef __TCP_H
#define __TCP_H
struct tcp_header_t {
unsigned short source_port;
unsigned short dest_port;
unsigned int seq_number;
unsigned int ack_number;
unsigned short flags;
unsigned short window;
unsigned short checksum;
unsigned short urgent;
char payload[];
}__attribute__((packed));
struct tcp_socket_t {
unsigned int seq_number;
unsigned int ack_number;
};
struct tcp_data_t {
unsigned char *data;
unsigned int len;
unsigned short flags;
};
#define TCP_FLAGS_FIN (1 << 0)
#define TCP_FLAGS_SYN (1 << 1)
#define TCP_FLAGS_RES (1 << 2)
#define TCP_FLAGS_PSH (1 << 3)
#define TCP_FLAGS_ACK (1 << 4)
#define TCP_FLAGS_URG (1 << 5)
#define TCP_FLAGS_ECE (1 << 6)
#define TCP_FLAGS_CWR (1 << 7)
#define TCP_FLAGS_NS (1 << 8)
#endif