XenevaOS
Loading...
Searching...
No Matches
XenevaOS
BaseHdr
Net
tcp.h
Go to the documentation of this file.
1
30
#ifndef __TCP_H__
31
#define __TCP_H__
32
33
#include <list.h>
34
#include <
Net/socket.h
>
35
#include <
Net/ipv4.h
>
36
#include <
Fs/vfs.h
>
37
38
#define TCP_FLAGS_FIN (1<<0)
39
#define TCP_FLAGS_SYN (1<<1)
40
#define TCP_FLAGS_RST (1<<2)
41
#define TCP_FLAGS_PSH (1<<3)
42
#define TCP_FLAGS_ACK (1<<4)
43
#define TCP_FLAGS_URG (1<<5)
44
#define TCP_FLAGS_ECE (1<<6)
45
#define TCP_FLAGS_CWR (1<<7)
46
#define TCP_FLAGS_NS (1<<8)
47
#define TCP_DATA_OFFSET_5 (0x5 << 12)
48
49
#define TCP_DEFAULT_WIN_SZ 65535
50
51
#ifdef ARCH_X64
52
#pragma pack(push,1)
53
#endif
54
__declspec
(align(2))
55
typedef struct _tcphead_ {
56
unsigned
short
srcPort;
57
unsigned
short
destPort;
58
unsigned
sequenceNum;
59
unsigned
ackNum;
60
unsigned
short
dataOffsetFlags;
61
unsigned
short
window;
62
unsigned
short
checksum;
63
unsigned
short
urgentPointer;
64
}
TCPHeader
;
65
#ifdef ARCH_X64
66
#pragma pack(pop)
67
#endif
68
69
/*
70
* CreateTCPSocket -- creates a new TCP Socket
71
*/
72
extern
int
CreateTCPSocket
();
73
74
/*
75
* TCPGetSocketList -- return the current socket
76
* list of TCP
77
*/
78
extern
list_t
*
TCPGetSocketList
();
79
80
/*
81
* AuTCPAcknowledge -- send ack packets
82
* @param nic -- Pointer to NIC device
83
* @param sock -- Pointer to session socket
84
* @param ippack -- Pointer to IPv4 packet
85
* @param payloadLen -- length of the payload
86
*/
87
extern
int
AuTCPAcknowledge
(
AuVFSNode
*
nic
,
AuSocket
* sock,
IPv4Header
* ippack,
size_t
payloadLen);
88
89
/*
90
* TCPProtocolInstall -- initialize the TCP protocol
91
*/
92
extern
void
TCPProtocolInstall
();
93
94
#endif
socket.h
nic
AuVFSNode * nic
Definition
e1000.cpp:67
ipv4.h
IPv4Header
IPv4Header
Definition
ipv4.h:49
__VFS_NODE__
Definition
vfs.h:95
_list_
Definition
list.h:46
_socket_
Definition
socket.h:101
CreateTCPSocket
int CreateTCPSocket()
Definition
tcp.cpp:345
__declspec
__declspec(align(2)) typedef struct _tcphead_
Definition
tcp.h:54
TCPGetSocketList
list_t * TCPGetSocketList()
Definition
tcp.cpp:379
TCPProtocolInstall
void TCPProtocolInstall()
Definition
tcp.cpp:386
TCPHeader
TCPHeader
Definition
tcp.h:64
AuTCPAcknowledge
int AuTCPAcknowledge(AuVFSNode *nic, AuSocket *sock, IPv4Header *ippack, size_t payloadLen)
Definition
tcp.cpp:161
vfs.h
Generated by
1.9.8