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