xref: /aosp_15_r20/external/musl/android/include/bits/tcphdr.h (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #pragma once
2*c9945492SAndroid Build Coastguard Worker 
3*c9945492SAndroid Build Coastguard Worker #include <features.h>
4*c9945492SAndroid Build Coastguard Worker #include <stdint.h>
5*c9945492SAndroid Build Coastguard Worker #include <sys/types.h>
6*c9945492SAndroid Build Coastguard Worker 
7*c9945492SAndroid Build Coastguard Worker #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
8*c9945492SAndroid Build Coastguard Worker 
9*c9945492SAndroid Build Coastguard Worker struct tcphdr {
10*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE
11*c9945492SAndroid Build Coastguard Worker #ifdef __GNUC__
12*c9945492SAndroid Build Coastguard Worker 	__extension__
13*c9945492SAndroid Build Coastguard Worker #endif
14*c9945492SAndroid Build Coastguard Worker 	union { struct {
15*c9945492SAndroid Build Coastguard Worker 
16*c9945492SAndroid Build Coastguard Worker 	uint16_t source;
17*c9945492SAndroid Build Coastguard Worker 	uint16_t dest;
18*c9945492SAndroid Build Coastguard Worker 	uint32_t seq;
19*c9945492SAndroid Build Coastguard Worker 	uint32_t ack_seq;
20*c9945492SAndroid Build Coastguard Worker #if __BYTE_ORDER == __LITTLE_ENDIAN
21*c9945492SAndroid Build Coastguard Worker 	uint16_t res1:4;
22*c9945492SAndroid Build Coastguard Worker 	uint16_t doff:4;
23*c9945492SAndroid Build Coastguard Worker 	uint16_t fin:1;
24*c9945492SAndroid Build Coastguard Worker 	uint16_t syn:1;
25*c9945492SAndroid Build Coastguard Worker 	uint16_t rst:1;
26*c9945492SAndroid Build Coastguard Worker 	uint16_t psh:1;
27*c9945492SAndroid Build Coastguard Worker 	uint16_t ack:1;
28*c9945492SAndroid Build Coastguard Worker 	uint16_t urg:1;
29*c9945492SAndroid Build Coastguard Worker 	uint16_t res2:2;
30*c9945492SAndroid Build Coastguard Worker #else
31*c9945492SAndroid Build Coastguard Worker 	uint16_t doff:4;
32*c9945492SAndroid Build Coastguard Worker 	uint16_t res1:4;
33*c9945492SAndroid Build Coastguard Worker 	uint16_t res2:2;
34*c9945492SAndroid Build Coastguard Worker 	uint16_t urg:1;
35*c9945492SAndroid Build Coastguard Worker 	uint16_t ack:1;
36*c9945492SAndroid Build Coastguard Worker 	uint16_t psh:1;
37*c9945492SAndroid Build Coastguard Worker 	uint16_t rst:1;
38*c9945492SAndroid Build Coastguard Worker 	uint16_t syn:1;
39*c9945492SAndroid Build Coastguard Worker 	uint16_t fin:1;
40*c9945492SAndroid Build Coastguard Worker #endif
41*c9945492SAndroid Build Coastguard Worker 	uint16_t window;
42*c9945492SAndroid Build Coastguard Worker 	uint16_t check;
43*c9945492SAndroid Build Coastguard Worker 	uint16_t urg_ptr;
44*c9945492SAndroid Build Coastguard Worker 
45*c9945492SAndroid Build Coastguard Worker 	}; struct {
46*c9945492SAndroid Build Coastguard Worker #endif
47*c9945492SAndroid Build Coastguard Worker 
48*c9945492SAndroid Build Coastguard Worker 	uint16_t th_sport;
49*c9945492SAndroid Build Coastguard Worker 	uint16_t th_dport;
50*c9945492SAndroid Build Coastguard Worker 	uint32_t th_seq;
51*c9945492SAndroid Build Coastguard Worker 	uint32_t th_ack;
52*c9945492SAndroid Build Coastguard Worker #if __BYTE_ORDER == __LITTLE_ENDIAN
53*c9945492SAndroid Build Coastguard Worker 	uint8_t th_x2:4;
54*c9945492SAndroid Build Coastguard Worker 	uint8_t th_off:4;
55*c9945492SAndroid Build Coastguard Worker #else
56*c9945492SAndroid Build Coastguard Worker 	uint8_t th_off:4;
57*c9945492SAndroid Build Coastguard Worker 	uint8_t th_x2:4;
58*c9945492SAndroid Build Coastguard Worker #endif
59*c9945492SAndroid Build Coastguard Worker 	uint8_t th_flags;
60*c9945492SAndroid Build Coastguard Worker 	uint16_t th_win;
61*c9945492SAndroid Build Coastguard Worker 	uint16_t th_sum;
62*c9945492SAndroid Build Coastguard Worker 	uint16_t th_urp;
63*c9945492SAndroid Build Coastguard Worker 
64*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE
65*c9945492SAndroid Build Coastguard Worker 	}; };
66*c9945492SAndroid Build Coastguard Worker #endif
67*c9945492SAndroid Build Coastguard Worker };
68*c9945492SAndroid Build Coastguard Worker 
69*c9945492SAndroid Build Coastguard Worker #endif
70