void tcp_init(void) { } typedef long long unsigned int __u64; typedef __u64 __addrpair; typedef unsigned int __u32; typedef __u32 __be32; typedef short unsigned int __u16; typedef __u32 __portpair; typedef __u16 __be16; struct hlist_node; struct hlist_node { struct hlist_node * next; /* 0 8 */ struct hlist_node * * pprev; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct proto; struct net; typedef struct { struct net * net; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ } possible_net_t; typedef unsigned char __u8; struct in6_addr { union { __u8 u6_addr8[16]; /* 0 16 */ __be16 u6_addr16[8]; /* 0 16 */ __be32 u6_addr32[4]; /* 0 16 */ } in6_u; /* 0 16 */ /* size: 16, cachelines: 1, members: 1 */ /* last cacheline: 16 bytes */ }; typedef struct { long int counter; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ } atomic64_t; struct sock; struct inet_timewait_death_row; struct hlist_nulls_node; struct hlist_nulls_node { struct hlist_nulls_node * next; /* 0 8 */ struct hlist_nulls_node * * pprev; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; typedef __u32 u32; typedef struct { int counter; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ } atomic_t; struct refcount_struct { atomic_t refs; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; typedef struct refcount_struct refcount_t; struct sock_common { union { __addrpair skc_addrpair; /* 0 8 */ struct { __be32 skc_daddr; /* 0 4 */ __be32 skc_rcv_saddr; /* 4 4 */ }; /* 0 8 */ }; /* 0 8 */ union { unsigned int skc_hash; /* 8 4 */ __u16 skc_u16hashes[2]; /* 8 4 */ }; /* 8 4 */ union { __portpair skc_portpair; /* 12 4 */ struct { __be16 skc_dport; /* 12 2 */ __u16 skc_num; /* 14 2 */ }; /* 12 4 */ }; /* 12 4 */ short unsigned int skc_family; /* 16 2 */ volatile unsigned char skc_state; /* 18 1 */ unsigned char skc_reuse:4; /* 19: 0 1 */ unsigned char skc_reuseport:1; /* 19: 4 1 */ unsigned char skc_ipv6only:1; /* 19: 5 1 */ unsigned char skc_net_refcnt:1; /* 19: 6 1 */ /* XXX 1 bit hole, try to pack */ int skc_bound_dev_if; /* 20 4 */ union { struct hlist_node skc_bind_node; /* 24 16 */ struct hlist_node skc_portaddr_node; /* 24 16 */ }; /* 24 16 */ struct proto * skc_prot; /* 40 8 */ possible_net_t skc_net; /* 48 8 */ struct in6_addr skc_v6_daddr; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ struct in6_addr skc_v6_rcv_saddr; /* 72 16 */ atomic64_t skc_cookie; /* 88 8 */ union { long unsigned int skc_flags; /* 96 8 */ struct sock * skc_listener; /* 96 8 */ struct inet_timewait_death_row * skc_tw_dr; /* 96 8 */ }; /* 96 8 */ int skc_dontcopy_begin[0]; /* 104 0 */ union { struct hlist_node skc_node; /* 104 16 */ struct hlist_nulls_node skc_nulls_node; /* 104 16 */ }; /* 104 16 */ short unsigned int skc_tx_queue_mapping; /* 120 2 */ short unsigned int skc_rx_queue_mapping; /* 122 2 */ union { int skc_incoming_cpu; /* 124 4 */ u32 skc_rcv_wnd; /* 124 4 */ u32 skc_tw_rcv_nxt; /* 124 4 */ }; /* 124 4 */ /* --- cacheline 2 boundary (128 bytes) --- */ refcount_t skc_refcnt; /* 128 4 */ int skc_dontcopy_end[0]; /* 132 0 */ union { u32 skc_rxhash; /* 132 4 */ u32 skc_window_clamp; /* 132 4 */ u32 skc_tw_snd_nxt; /* 132 4 */ }; /* 132 4 */ /* size: 136, cachelines: 3, members: 25 */ /* sum members: 135 */ /* sum bitfield members: 7 bits, bit holes: 1, sum bit holes: 1 bits */ /* last cacheline: 8 bytes */ }; typedef __u8 u8; typedef __u16 u16; struct qspinlock { union { atomic_t val; /* 0 4 */ struct { u8 locked; /* 0 1 */ u8 pending; /* 1 1 */ }; /* 0 2 */ struct { u16 locked_pending; /* 0 2 */ u16 tail; /* 2 2 */ }; /* 0 4 */ }; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; typedef struct qspinlock arch_spinlock_t; struct raw_spinlock { arch_spinlock_t raw_lock; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct spinlock { union { struct raw_spinlock rlock; /* 0 4 */ }; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; typedef struct spinlock spinlock_t; struct list_head; struct list_head { struct list_head * next; /* 0 8 */ struct list_head * prev; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct wait_queue_head { spinlock_t lock; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ struct list_head head; /* 8 16 */ /* size: 24, cachelines: 1, members: 2 */ /* sum members: 20, holes: 1, sum holes: 4 */ /* last cacheline: 24 bytes */ }; typedef struct wait_queue_head wait_queue_head_t; typedef struct { spinlock_t slock; /* 0 4 */ int owned; /* 4 4 */ wait_queue_head_t wq; /* 8 24 */ /* size: 32, cachelines: 1, members: 3 */ /* last cacheline: 32 bytes */ } socket_lock_t; struct sk_buff; struct sk_buff_head { struct sk_buff * next; /* 0 8 */ struct sk_buff * prev; /* 8 8 */ __u32 qlen; /* 16 4 */ spinlock_t lock; /* 20 4 */ /* size: 24, cachelines: 1, members: 4 */ /* last cacheline: 24 bytes */ }; struct sk_filter; struct socket_wq; struct xfrm_policy; struct dst_entry; struct rb_node; struct rb_root { struct rb_node * rb_node; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; typedef int __s32; struct timer_list; struct timer_list { struct hlist_node entry; /* 0 16 */ long unsigned int expires; /* 16 8 */ void (*function)(struct timer_list *); /* 24 8 */ u32 flags; /* 32 4 */ /* size: 40, cachelines: 1, members: 4 */ /* padding: 4 */ /* last cacheline: 40 bytes */ }; struct page; struct page_frag { struct page * page; /* 0 8 */ __u32 offset; /* 8 4 */ __u32 size; /* 12 4 */ /* size: 16, cachelines: 1, members: 3 */ /* last cacheline: 16 bytes */ }; typedef __u64 u64; typedef u64 netdev_features_t; typedef unsigned int gfp_t; struct qrwlock { union { atomic_t cnts; /* 0 4 */ struct { u8 wlocked; /* 0 1 */ u8 __lstate[3]; /* 1 3 */ }; /* 0 4 */ }; /* 0 4 */ arch_spinlock_t wait_lock; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; typedef struct qrwlock arch_rwlock_t; typedef struct { arch_rwlock_t raw_lock; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ } rwlock_t; typedef unsigned int __kernel_uid32_t; typedef __kernel_uid32_t uid_t; typedef struct { uid_t val; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ } kuid_t; struct pid; struct cred; typedef long long int __s64; typedef __s64 s64; typedef s64 ktime_t; struct socket; struct sock_cgroup_data { union { struct { u8 is_data; /* 0 1 */ u8 padding; /* 1 1 */ u16 prioidx; /* 2 2 */ u32 classid; /* 4 4 */ }; /* 0 8 */ u64 val; /* 0 8 */ }; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct mem_cgroup; struct sock_reuseport; struct callback_head; struct callback_head { struct callback_head * next; /* 0 8 */ void (*func)(struct callback_head *); /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct sock { struct sock_common __sk_common; /* 0 136 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ socket_lock_t sk_lock; /* 136 32 */ atomic_t sk_drops; /* 168 4 */ int sk_rcvlowat; /* 172 4 */ struct sk_buff_head sk_error_queue; /* 176 24 */ /* --- cacheline 3 boundary (192 bytes) was 8 bytes ago --- */ struct sk_buff_head sk_receive_queue; /* 200 24 */ struct { atomic_t rmem_alloc; /* 224 4 */ int len; /* 228 4 */ struct sk_buff * head; /* 232 8 */ struct sk_buff * tail; /* 240 8 */ } sk_backlog; /* 224 24 */ int sk_forward_alloc; /* 248 4 */ unsigned int sk_ll_usec; /* 252 4 */ /* --- cacheline 4 boundary (256 bytes) --- */ unsigned int sk_napi_id; /* 256 4 */ int sk_rcvbuf; /* 260 4 */ struct sk_filter * sk_filter; /* 264 8 */ union { struct socket_wq * sk_wq; /* 272 8 */ struct socket_wq * sk_wq_raw; /* 272 8 */ }; /* 272 8 */ struct xfrm_policy * sk_policy[2]; /* 280 16 */ struct dst_entry * sk_rx_dst; /* 296 8 */ struct dst_entry * sk_dst_cache; /* 304 8 */ atomic_t sk_omem_alloc; /* 312 4 */ int sk_sndbuf; /* 316 4 */ /* --- cacheline 5 boundary (320 bytes) --- */ int sk_wmem_queued; /* 320 4 */ refcount_t sk_wmem_alloc; /* 324 4 */ long unsigned int sk_tsq_flags; /* 328 8 */ union { struct sk_buff * sk_send_head; /* 336 8 */ struct rb_root tcp_rtx_queue; /* 336 8 */ }; /* 336 8 */ struct sk_buff_head sk_write_queue; /* 344 24 */ __s32 sk_peek_off; /* 368 4 */ int sk_write_pending; /* 372 4 */ __u32 sk_dst_pending_confirm; /* 376 4 */ u32 sk_pacing_status; /* 380 4 */ /* --- cacheline 6 boundary (384 bytes) --- */ long int sk_sndtimeo; /* 384 8 */ struct timer_list sk_timer; /* 392 40 */ /* XXX last struct has 4 bytes of padding */ __u32 sk_priority; /* 432 4 */ __u32 sk_mark; /* 436 4 */ long unsigned int sk_pacing_rate; /* 440 8 */ /* --- cacheline 7 boundary (448 bytes) --- */ long unsigned int sk_max_pacing_rate; /* 448 8 */ struct page_frag sk_frag; /* 456 16 */ netdev_features_t sk_route_caps; /* 472 8 */ netdev_features_t sk_route_nocaps; /* 480 8 */ netdev_features_t sk_route_forced_caps; /* 488 8 */ int sk_gso_type; /* 496 4 */ unsigned int sk_gso_max_size; /* 500 4 */ gfp_t sk_allocation; /* 504 4 */ __u32 sk_txhash; /* 508 4 */ /* --- cacheline 8 boundary (512 bytes) --- */ unsigned int __sk_flags_offset[0]; /* 512 0 */ unsigned int sk_padding:1; /* 512: 0 4 */ unsigned int sk_kern_sock:1; /* 512: 1 4 */ unsigned int sk_no_check_tx:1; /* 512: 2 4 */ unsigned int sk_no_check_rx:1; /* 512: 3 4 */ unsigned int sk_userlocks:4; /* 512: 4 4 */ unsigned int sk_protocol:8; /* 512: 8 4 */ unsigned int sk_type:16; /* 512:16 4 */ u16 sk_gso_max_segs; /* 516 2 */ u8 sk_pacing_shift; /* 518 1 */ /* XXX 1 byte hole, try to pack */ long unsigned int sk_lingertime; /* 520 8 */ struct proto * sk_prot_creator; /* 528 8 */ rwlock_t sk_callback_lock; /* 536 8 */ int sk_err; /* 544 4 */ int sk_err_soft; /* 548 4 */ u32 sk_ack_backlog; /* 552 4 */ u32 sk_max_ack_backlog; /* 556 4 */ kuid_t sk_uid; /* 560 4 */ /* XXX 4 bytes hole, try to pack */ struct pid * sk_peer_pid; /* 568 8 */ /* --- cacheline 9 boundary (576 bytes) --- */ const struct cred * sk_peer_cred; /* 576 8 */ long int sk_rcvtimeo; /* 584 8 */ ktime_t sk_stamp; /* 592 8 */ u16 sk_tsflags; /* 600 2 */ u8 sk_shutdown; /* 602 1 */ /* XXX 1 byte hole, try to pack */ u32 sk_tskey; /* 604 4 */ atomic_t sk_zckey; /* 608 4 */ u8 sk_clockid; /* 612 1 */ u8 sk_txtime_deadline_mode:1; /* 613: 0 1 */ u8 sk_txtime_report_errors:1; /* 613: 1 1 */ u8 sk_txtime_unused:6; /* 613: 2 1 */ /* XXX 2 bytes hole, try to pack */ struct socket * sk_socket; /* 616 8 */ void * sk_user_data; /* 624 8 */ void * sk_security; /* 632 8 */ /* --- cacheline 10 boundary (640 bytes) --- */ struct sock_cgroup_data sk_cgrp_data; /* 640 8 */ struct mem_cgroup * sk_memcg; /* 648 8 */ void (*sk_state_change)(struct sock *); /* 656 8 */ void (*sk_data_ready)(struct sock *); /* 664 8 */ void (*sk_write_space)(struct sock *); /* 672 8 */ void (*sk_error_report)(struct sock *); /* 680 8 */ int (*sk_backlog_rcv)(struct sock *, struct sk_buff *); /* 688 8 */ void (*sk_destruct)(struct sock *); /* 696 8 */ /* --- cacheline 11 boundary (704 bytes) --- */ struct sock_reuseport * sk_reuseport_cb; /* 704 8 */ struct callback_head sk_rcu; /* 712 16 */ /* size: 728, cachelines: 12, members: 84 */ /* sum members: 715, holes: 4, sum holes: 8 */ /* sum bitfield members: 40 bits (5 bytes) */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 24 bytes */ }; int tcp_abort(struct sock * sk, int err) { return 0; } void tcp_done(struct sock * sk) { } struct ahash_request; struct tcp_md5sig_pool { struct ahash_request * md5_req; /* 0 8 */ void * scratch; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct in_addr { __be32 s_addr; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; union tcp_md5_addr { struct in_addr a4; /* 0 4 */ struct in6_addr a6; /* 0 16 */ }; struct tcp_md5sig_key { struct hlist_node node; /* 0 16 */ u8 keylen; /* 16 1 */ u8 family; /* 17 1 */ /* XXX 2 bytes hole, try to pack */ union tcp_md5_addr addr; /* 20 16 */ u8 prefixlen; /* 36 1 */ u8 key[80]; /* 37 80 */ /* XXX 3 bytes hole, try to pack */ /* --- cacheline 1 boundary (64 bytes) was 56 bytes ago --- */ struct callback_head rcu; /* 120 16 */ /* size: 136, cachelines: 3, members: 7 */ /* sum members: 131, holes: 2, sum holes: 5 */ /* last cacheline: 8 bytes */ }; int tcp_md5_hash_key(struct tcp_md5sig_pool * hp, const struct tcp_md5sig_key * key) { return 0; } struct net_device; struct rb_node { long unsigned int __rb_parent_color; /* 0 8 */ struct rb_node * rb_right; /* 8 8 */ struct rb_node * rb_left; /* 16 8 */ /* size: 24, cachelines: 1, members: 3 */ /* last cacheline: 24 bytes */ }; typedef __u32 __wsum; typedef unsigned int sk_buff_data_t; struct skb_ext; struct sk_buff { union { struct { struct sk_buff * next; /* 0 8 */ struct sk_buff * prev; /* 8 8 */ union { struct net_device * dev; /* 16 8 */ long unsigned int dev_scratch; /* 16 8 */ }; /* 16 8 */ }; /* 0 24 */ struct rb_node rbnode; /* 0 24 */ struct list_head list; /* 0 16 */ }; /* 0 24 */ union { struct sock * sk; /* 24 8 */ int ip_defrag_offset; /* 24 4 */ }; /* 24 8 */ union { ktime_t tstamp; /* 32 8 */ u64 skb_mstamp_ns; /* 32 8 */ }; /* 32 8 */ char cb[48]; /* 40 48 */ /* --- cacheline 1 boundary (64 bytes) was 24 bytes ago --- */ union { struct { long unsigned int _skb_refdst; /* 88 8 */ void (*destructor)(struct sk_buff *); /* 96 8 */ }; /* 88 16 */ struct list_head tcp_tsorted_anchor; /* 88 16 */ }; /* 88 16 */ long unsigned int _nfct; /* 104 8 */ unsigned int len; /* 112 4 */ unsigned int data_len; /* 116 4 */ __u16 mac_len; /* 120 2 */ __u16 hdr_len; /* 122 2 */ __u16 queue_mapping; /* 124 2 */ __u8 __cloned_offset[0]; /* 126 0 */ __u8 cloned:1; /* 126: 0 1 */ __u8 nohdr:1; /* 126: 1 1 */ __u8 fclone:2; /* 126: 2 1 */ __u8 peeked:1; /* 126: 4 1 */ __u8 head_frag:1; /* 126: 5 1 */ __u8 xmit_more:1; /* 126: 6 1 */ __u8 pfmemalloc:1; /* 126: 7 1 */ __u8 active_extensions; /* 127 1 */ /* --- cacheline 2 boundary (128 bytes) --- */ __u32 headers_start[0]; /* 128 0 */ __u8 __pkt_type_offset[0]; /* 128 0 */ __u8 pkt_type:3; /* 128: 0 1 */ __u8 ignore_df:1; /* 128: 3 1 */ __u8 nf_trace:1; /* 128: 4 1 */ __u8 ip_summed:2; /* 128: 5 1 */ __u8 ooo_okay:1; /* 128: 7 1 */ __u8 l4_hash:1; /* 129: 0 1 */ __u8 sw_hash:1; /* 129: 1 1 */ __u8 wifi_acked_valid:1; /* 129: 2 1 */ __u8 wifi_acked:1; /* 129: 3 1 */ __u8 no_fcs:1; /* 129: 4 1 */ __u8 encapsulation:1; /* 129: 5 1 */ __u8 encap_hdr_csum:1; /* 129: 6 1 */ __u8 csum_valid:1; /* 129: 7 1 */ __u8 __pkt_vlan_present_offset[0]; /* 130 0 */ __u8 vlan_present:1; /* 130: 0 1 */ __u8 csum_complete_sw:1; /* 130: 1 1 */ __u8 csum_level:2; /* 130: 2 1 */ __u8 csum_not_inet:1; /* 130: 4 1 */ __u8 dst_pending_confirm:1; /* 130: 5 1 */ __u8 ndisc_nodetype:2; /* 130: 6 1 */ __u8 ipvs_property:1; /* 131: 0 1 */ __u8 inner_protocol_type:1; /* 131: 1 1 */ __u8 remcsum_offload:1; /* 131: 2 1 */ __u8 offload_fwd_mark:1; /* 131: 3 1 */ __u8 offload_l3_fwd_mark:1; /* 131: 4 1 */ __u8 tc_skip_classify:1; /* 131: 5 1 */ __u8 tc_at_ingress:1; /* 131: 6 1 */ __u8 tc_redirected:1; /* 131: 7 1 */ __u8 tc_from_ingress:1; /* 132: 0 1 */ /* XXX 7 bits hole, try to pack */ /* XXX 1 byte hole, try to pack */ __u16 tc_index; /* 134 2 */ union { __wsum csum; /* 136 4 */ struct { __u16 csum_start; /* 136 2 */ __u16 csum_offset; /* 138 2 */ }; /* 136 4 */ }; /* 136 4 */ __u32 priority; /* 140 4 */ int skb_iif; /* 144 4 */ __u32 hash; /* 148 4 */ __be16 vlan_proto; /* 152 2 */ __u16 vlan_tci; /* 154 2 */ union { unsigned int napi_id; /* 156 4 */ unsigned int sender_cpu; /* 156 4 */ }; /* 156 4 */ __u32 secmark; /* 160 4 */ union { __u32 mark; /* 164 4 */ __u32 reserved_tailroom; /* 164 4 */ }; /* 164 4 */ union { __be16 inner_protocol; /* 168 2 */ __u8 inner_ipproto; /* 168 1 */ }; /* 168 2 */ __u16 inner_transport_header; /* 170 2 */ __u16 inner_network_header; /* 172 2 */ __u16 inner_mac_header; /* 174 2 */ __be16 protocol; /* 176 2 */ __u16 transport_header; /* 178 2 */ __u16 network_header; /* 180 2 */ __u16 mac_header; /* 182 2 */ __u32 headers_end[0]; /* 184 0 */ sk_buff_data_t tail; /* 184 4 */ sk_buff_data_t end; /* 188 4 */ /* --- cacheline 3 boundary (192 bytes) --- */ unsigned char * head; /* 192 8 */ unsigned char * data; /* 200 8 */ unsigned int truesize; /* 208 4 */ refcount_t users; /* 212 4 */ struct skb_ext * extensions; /* 216 8 */ /* size: 224, cachelines: 4, members: 77 */ /* sum members: 217, holes: 1, sum holes: 1 */ /* sum bitfield members: 41 bits, bit holes: 1, sum bit holes: 7 bits */ /* last cacheline: 32 bytes */ }; int tcp_md5_hash_skb_data(struct tcp_md5sig_pool * hp, const struct sk_buff * skb, unsigned int header_len) { return 0; } struct tcp_md5sig_pool * tcp_get_md5sig_pool(void) { return 0; } typedef _Bool bool; typedef _Bool bool; bool tcp_alloc_md5sig_pool(void) { return 0; } int compat_tcp_getsockopt(struct sock * sk, int level, int optname, char * optval, int * optlen) { return 0; } int tcp_getsockopt(struct sock * sk, int level, int optname, char * optval, int * optlen) { return 0; } struct sk_buff * tcp_get_timestamping_opt_stats(const struct sock * sk) { return 0; } struct tcp_info { __u8 tcpi_state; /* 0 1 */ __u8 tcpi_ca_state; /* 1 1 */ __u8 tcpi_retransmits; /* 2 1 */ __u8 tcpi_probes; /* 3 1 */ __u8 tcpi_backoff; /* 4 1 */ __u8 tcpi_options; /* 5 1 */ __u8 tcpi_snd_wscale:4; /* 6: 0 1 */ __u8 tcpi_rcv_wscale:4; /* 6: 4 1 */ __u8 tcpi_delivery_rate_app_limited:1; /* 7: 0 1 */ /* XXX 7 bits hole, try to pack */ __u32 tcpi_rto; /* 8 4 */ __u32 tcpi_ato; /* 12 4 */ __u32 tcpi_snd_mss; /* 16 4 */ __u32 tcpi_rcv_mss; /* 20 4 */ __u32 tcpi_unacked; /* 24 4 */ __u32 tcpi_sacked; /* 28 4 */ __u32 tcpi_lost; /* 32 4 */ __u32 tcpi_retrans; /* 36 4 */ __u32 tcpi_fackets; /* 40 4 */ __u32 tcpi_last_data_sent; /* 44 4 */ __u32 tcpi_last_ack_sent; /* 48 4 */ __u32 tcpi_last_data_recv; /* 52 4 */ __u32 tcpi_last_ack_recv; /* 56 4 */ __u32 tcpi_pmtu; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ __u32 tcpi_rcv_ssthresh; /* 64 4 */ __u32 tcpi_rtt; /* 68 4 */ __u32 tcpi_rttvar; /* 72 4 */ __u32 tcpi_snd_ssthresh; /* 76 4 */ __u32 tcpi_snd_cwnd; /* 80 4 */ __u32 tcpi_advmss; /* 84 4 */ __u32 tcpi_reordering; /* 88 4 */ __u32 tcpi_rcv_rtt; /* 92 4 */ __u32 tcpi_rcv_space; /* 96 4 */ __u32 tcpi_total_retrans; /* 100 4 */ __u64 tcpi_pacing_rate; /* 104 8 */ __u64 tcpi_max_pacing_rate; /* 112 8 */ __u64 tcpi_bytes_acked; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ __u64 tcpi_bytes_received; /* 128 8 */ __u32 tcpi_segs_out; /* 136 4 */ __u32 tcpi_segs_in; /* 140 4 */ __u32 tcpi_notsent_bytes; /* 144 4 */ __u32 tcpi_min_rtt; /* 148 4 */ __u32 tcpi_data_segs_in; /* 152 4 */ __u32 tcpi_data_segs_out; /* 156 4 */ __u64 tcpi_delivery_rate; /* 160 8 */ __u64 tcpi_busy_time; /* 168 8 */ __u64 tcpi_rwnd_limited; /* 176 8 */ __u64 tcpi_sndbuf_limited; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ __u32 tcpi_delivered; /* 192 4 */ __u32 tcpi_delivered_ce; /* 196 4 */ __u64 tcpi_bytes_sent; /* 200 8 */ __u64 tcpi_bytes_retrans; /* 208 8 */ __u32 tcpi_dsack_dups; /* 216 4 */ __u32 tcpi_reord_seen; /* 220 4 */ /* size: 224, cachelines: 4, members: 53 */ /* sum members: 222 */ /* sum bitfield members: 9 bits, bit holes: 1, sum bit holes: 7 bits */ /* last cacheline: 32 bytes */ }; void tcp_get_info(struct sock * sk, struct tcp_info * info) { } int compat_tcp_setsockopt(struct sock * sk, int level, int optname, char * optval, unsigned int optlen) { return 0; } int tcp_setsockopt(struct sock * sk, int level, int optname, char * optval, unsigned int optlen) { return 0; } int tcp_disconnect(struct sock * sk, int flags) { return 0; } void tcp_write_queue_purge(struct sock * sk) { } void tcp_close(struct sock * sk, long int timeout) { } bool tcp_check_oom(struct sock * sk, int shift) { return 0; } void tcp_shutdown(struct sock * sk, int how) { } void tcp_set_state(struct sock * sk, int state) { } typedef long unsigned int __kernel_ulong_t; typedef __kernel_ulong_t __kernel_size_t; typedef __kernel_size_t size_t; struct iovec; struct kvec; struct bio_vec; struct pipe_inode_info; struct iov_iter { unsigned int type; /* 0 4 */ /* XXX 4 bytes hole, try to pack */ size_t iov_offset; /* 8 8 */ size_t count; /* 16 8 */ union { const struct iovec * iov; /* 24 8 */ const struct kvec * kvec; /* 24 8 */ const struct bio_vec * bvec; /* 24 8 */ struct pipe_inode_info * pipe; /* 24 8 */ }; /* 24 8 */ union { long unsigned int nr_segs; /* 32 8 */ struct { int idx; /* 32 4 */ int start_idx; /* 36 4 */ }; /* 32 8 */ }; /* 32 8 */ /* size: 40, cachelines: 1, members: 5 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct kiocb; struct msghdr { void * msg_name; /* 0 8 */ int msg_namelen; /* 8 4 */ /* XXX 4 bytes hole, try to pack */ struct iov_iter msg_iter; /* 16 40 */ void * msg_control; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ __kernel_size_t msg_controllen; /* 64 8 */ unsigned int msg_flags; /* 72 4 */ /* XXX 4 bytes hole, try to pack */ struct kiocb * msg_iocb; /* 80 8 */ /* size: 88, cachelines: 2, members: 7 */ /* sum members: 80, holes: 2, sum holes: 8 */ /* last cacheline: 24 bytes */ }; int tcp_recvmsg(struct sock * sk, struct msghdr * msg, size_t len, int nonblock, int flags, int * addr_len) { return 0; } struct llist_node; struct llist_node { struct llist_node * next; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct vfsmount; struct dentry; struct path { struct vfsmount * mnt; /* 0 8 */ struct dentry * dentry; /* 8 8 */ /* size: 16, cachelines: 1, members: 2 */ /* last cacheline: 16 bytes */ }; struct inode; struct file_operations; enum rw_hint { WRITE_LIFE_NOT_SET = 0, WRITE_LIFE_NONE = 1, WRITE_LIFE_SHORT = 2, WRITE_LIFE_MEDIUM = 3, WRITE_LIFE_LONG = 4, WRITE_LIFE_EXTREME = 5, }; typedef atomic64_t atomic_long_t; typedef unsigned int fmode_t; struct optimistic_spin_queue { atomic_t tail; /* 0 4 */ /* size: 4, cachelines: 1, members: 1 */ /* last cacheline: 4 bytes */ }; struct mutex { atomic_long_t owner; /* 0 8 */ spinlock_t wait_lock; /* 8 4 */ struct optimistic_spin_queue osq; /* 12 4 */ struct list_head wait_list; /* 16 16 */ /* size: 32, cachelines: 1, members: 4 */ /* last cacheline: 32 bytes */ }; typedef long long int __kernel_loff_t; typedef __kernel_loff_t loff_t; enum pid_type { PIDTYPE_PID = 0, PIDTYPE_TGID = 1, PIDTYPE_PGID = 2, PIDTYPE_SID = 3, PIDTYPE_MAX = 4, }; struct fown_struct { rwlock_t lock; /* 0 8 */ struct pid * pid; /* 8 8 */ enum pid_type pid_type; /* 16 4 */ kuid_t uid; /* 20 4 */ kuid_t euid; /* 24 4 */ int signum; /* 28 4 */ /* size: 32, cachelines: 1, members: 6 */ /* last cacheline: 32 bytes */ }; struct file_ra_state { long unsigned int start; /* 0 8 */ unsigned int size; /* 8 4 */ unsigned int async_size; /* 12 4 */ unsigned int ra_pages; /* 16 4 */ unsigned int mmap_miss; /* 20 4 */ loff_t prev_pos; /* 24 8 */ /* size: 32, cachelines: 1, members: 6 */ /* last cacheline: 32 bytes */ }; struct address_space; typedef u32 errseq_t; struct file { union { struct llist_node fu_llist; /* 0 8 */ struct callback_head fu_rcuhead; /* 0 16 */ } f_u; /* 0 16 */ struct path f_path; /* 16 16 */ struct inode * f_inode; /* 32 8 */ const struct file_operations * f_op; /* 40 8 */ spinlock_t f_lock; /* 48 4 */ enum rw_hint f_write_hint; /* 52 4 */ atomic_long_t f_count; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ unsigned int f_flags; /* 64 4 */ fmode_t f_mode; /* 68 4 */ struct mutex f_pos_lock; /* 72 32 */ loff_t f_pos; /* 104 8 */ struct fown_struct f_owner; /* 112 32 */ /* --- cacheline 2 boundary (128 bytes) was 16 bytes ago --- */ const struct cred * f_cred; /* 144 8 */ struct file_ra_state f_ra; /* 152 32 */ u64 f_version; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ void * f_security; /* 192 8 */ void * private_data; /* 200 8 */ struct list_head f_ep_links; /* 208 16 */ struct list_head f_tfile_llink; /* 224 16 */ struct address_space * f_mapping; /* 240 8 */ errseq_t f_wb_err; /* 248 4 */ /* size: 256, cachelines: 4, members: 21 */ /* padding: 4 */ }; typedef enum { SS_FREE = 0, SS_UNCONNECTED = 1, SS_CONNECTING = 2, SS_CONNECTED = 3, SS_DISCONNECTING = 4, } socket_state; struct file; struct proto_ops; struct socket { socket_state state; /* 0 4 */ short int type; /* 4 2 */ /* XXX 2 bytes hole, try to pack */ long unsigned int flags; /* 8 8 */ struct socket_wq * wq; /* 16 8 */ struct file * file; /* 24 8 */ struct sock * sk; /* 32 8 */ const struct proto_ops * ops; /* 40 8 */ /* size: 48, cachelines: 1, members: 7 */ /* sum members: 46, holes: 1, sum holes: 2 */ /* last cacheline: 48 bytes */ }; struct vm_area_struct; struct mm_struct; typedef long unsigned int pgprotval_t; struct pgprot { pgprotval_t pgprot; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; typedef struct pgprot pgprot_t; struct anon_vma; struct vm_operations_struct; struct mempolicy; struct userfaultfd_ctx; struct vm_userfaultfd_ctx { struct userfaultfd_ctx * ctx; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct vm_area_struct { long unsigned int vm_start; /* 0 8 */ long unsigned int vm_end; /* 8 8 */ struct vm_area_struct * vm_next; /* 16 8 */ struct vm_area_struct * vm_prev; /* 24 8 */ struct rb_node vm_rb; /* 32 24 */ long unsigned int rb_subtree_gap; /* 56 8 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct mm_struct * vm_mm; /* 64 8 */ pgprot_t vm_page_prot; /* 72 8 */ long unsigned int vm_flags; /* 80 8 */ struct { struct rb_node rb; /* 88 24 */ long unsigned int rb_subtree_last; /* 112 8 */ } shared; /* 88 32 */ struct list_head anon_vma_chain; /* 120 16 */ /* --- cacheline 2 boundary (128 bytes) was 8 bytes ago --- */ struct anon_vma * anon_vma; /* 136 8 */ const struct vm_operations_struct * vm_ops; /* 144 8 */ long unsigned int vm_pgoff; /* 152 8 */ struct file * vm_file; /* 160 8 */ void * vm_private_data; /* 168 8 */ atomic_long_t swap_readahead_info; /* 176 8 */ struct mempolicy * vm_policy; /* 184 8 */ /* --- cacheline 3 boundary (192 bytes) --- */ struct vm_userfaultfd_ctx vm_userfaultfd_ctx; /* 192 8 */ /* size: 200, cachelines: 4, members: 19 */ /* last cacheline: 8 bytes */ }; int tcp_mmap(struct file * file, struct socket * sock, struct vm_area_struct * vma) { return 0; } int tcp_set_rcvlowat(struct sock * sk, int val) { return 0; } int tcp_peek_len(struct socket * sock) { return 0; } typedef struct { size_t written; /* 0 8 */ size_t count; /* 8 8 */ union { char * buf; /* 16 8 */ void * data; /* 16 8 */ } arg; /* 16 8 */ int error; /* 24 4 */ /* size: 32, cachelines: 1, members: 4 */ /* padding: 4 */ /* last cacheline: 32 bytes */ } read_descriptor_t; typedef int (*sk_read_actor_t)(read_descriptor_t *, struct sk_buff *, unsigned int, size_t); int tcp_read_sock(struct sock * sk, read_descriptor_t * desc, sk_read_actor_t recv_actor) { return 0; } int tcp_sendmsg(struct sock * sk, struct msghdr * msg, size_t size) { return 0; } int tcp_sendmsg_locked(struct sock * sk, struct msghdr * msg, size_t size) { return 0; } struct ipv6_pinfo; typedef short int __s16; struct ip_options_rcu; struct ip_mc_socklist; struct ip_options; struct inet_cork { unsigned int flags; /* 0 4 */ __be32 addr; /* 4 4 */ struct ip_options * opt; /* 8 8 */ unsigned int fragsize; /* 16 4 */ int length; /* 20 4 */ struct dst_entry * dst; /* 24 8 */ u8 tx_flags; /* 32 1 */ __u8 ttl; /* 33 1 */ __s16 tos; /* 34 2 */ char priority; /* 36 1 */ /* XXX 1 byte hole, try to pack */ __u16 gso_size; /* 38 2 */ u64 transmit_time; /* 40 8 */ /* size: 48, cachelines: 1, members: 12 */ /* sum members: 47, holes: 1, sum holes: 1 */ /* last cacheline: 48 bytes */ }; typedef __u64 __be64; struct flowi_tunnel { __be64 tun_id; /* 0 8 */ /* size: 8, cachelines: 1, members: 1 */ /* last cacheline: 8 bytes */ }; struct flowi_common { int flowic_oif; /* 0 4 */ int flowic_iif; /* 4 4 */ __u32 flowic_mark; /* 8 4 */ __u8 flowic_tos; /* 12 1 */ __u8 flowic_scope; /* 13 1 */ __u8 flowic_proto; /* 14 1 */ __u8 flowic_flags; /* 15 1 */ __u32 flowic_secid; /* 16 4 */ kuid_t flowic_uid; /* 20 4 */ struct flowi_tunnel flowic_tun_key; /* 24 8 */ __u32 flowic_multipath_hash; /* 32 4 */ /* size: 40, cachelines: 1, members: 11 */ /* padding: 4 */ /* last cacheline: 40 bytes */ }; typedef __u16 __le16; union flowi_uli { struct { __be16 dport; /* 0 2 */ __be16 sport; /* 2 2 */ } ports; /* 0 4 */ struct { __u8 type; /* 0 1 */ __u8 code; /* 1 1 */ } icmpt; /* 0 2 */ struct { __le16 dport; /* 0 2 */ __le16 sport; /* 2 2 */ } dnports; /* 0 4 */ __be32 spi; /* 0 4 */ __be32 gre_key; /* 0 4 */ struct { __u8 type; /* 0 1 */ } mht; /* 0 1 */ }; struct flowi4 { struct flowi_common __fl_common; /* 0 40 */ /* XXX last struct has 4 bytes of padding */ __be32 saddr; /* 40 4 */ __be32 daddr; /* 44 4 */ union flowi_uli uli; /* 48 4 */ /* size: 56, cachelines: 1, members: 4 */ /* padding: 4 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 56 bytes */ }; struct flowi6 { struct flowi_common __fl_common; /* 0 40 */ /* XXX last struct has 4 bytes of padding */ struct in6_addr daddr; /* 40 16 */ struct in6_addr saddr; /* 56 16 */ /* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */ __be32 flowlabel; /* 72 4 */ union flowi_uli uli; /* 76 4 */ __u32 mp_hash; /* 80 4 */ /* size: 88, cachelines: 2, members: 6 */ /* padding: 4 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 24 bytes */ }; struct flowidn { struct flowi_common __fl_common; /* 0 40 */ /* XXX last struct has 4 bytes of padding */ __le16 daddr; /* 40 2 */ __le16 saddr; /* 42 2 */ union flowi_uli uli; /* 44 4 */ /* size: 48, cachelines: 1, members: 4 */ /* paddings: 1, sum paddings: 4 */ /* last cacheline: 48 bytes */ }; struct flowi { union { struct flowi_common __fl_common; /* 0 40 */ struct flowi4 ip4; /* 0 56 */ struct flowi6 ip6; /* 0 88 */ struct flowidn dn; /* 0 48 */ } u; /* 0 88 */ /* size: 88, cachelines: 2, members: 1 */ /* last cacheline: 24 bytes */ }; struct inet_cork_full { struct inet_cork base; /* 0 48 */ struct flowi fl; /* 48 88 */ /* size: 136, cachelines: 3, members: 2 */ /* last cacheline: 8 bytes */ }; struct inet_sock { struct sock sk; /* 0 728 */ /* --- cacheline 11 boundary (704 bytes) was 24 bytes ago --- */ struct ipv6_pinfo * pinet6; /* 728 8 */ __be32 inet_saddr; /* 736 4 */ __s16 uc_ttl; /* 740 2 */ __u16 cmsg_flags; /* 742 2 */ __be16 inet_sport; /* 744 2 */ __u16 inet_id; /* 746 2 */ /* XXX 4 bytes hole, try to pack */ struct ip_options_rcu * inet_opt; /* 752 8 */ int rx_dst_ifindex; /* 760 4 */ __u8 tos; /* 764 1 */ __u8 min_ttl; /* 765 1 */ __u8 mc_ttl; /* 766 1 */ __u8 pmtudisc; /* 767 1 */ /* --- cacheline 12 boundary (768 bytes) --- */ __u8 recverr:1; /* 768: 0 1 */ __u8 is_icsk:1; /* 768: 1 1 */ __u8 freebind:1; /* 768: 2 1 */ __u8 hdrincl:1; /* 768: 3 1 */ __u8 mc_loop:1; /* 768: 4 1 */ __u8 transparent:1; /* 768: 5 1 */ __u8 mc_all:1; /* 768: 6 1 */ __u8 nodefrag:1; /* 768: 7 1 */ __u8 bind_address_no_port:1; /* 769: 0 1 */ __u8 defer_connect:1; /* 769: 1 1 */ /* XXX 6 bits hole, try to pack */ __u8 rcv_tos; /* 770 1 */ __u8 convert_csum; /* 771 1 */ int uc_index; /* 772 4 */ int mc_index; /* 776 4 */ __be32 mc_addr; /* 780 4 */ struct ip_mc_socklist * mc_list; /* 784 8 */ struct inet_cork_full cork; /* 792 136 */ /* size: 928, cachelines: 15, members: 30 */ /* sum members: 922, holes: 1, sum holes: 4 */ /* sum bitfield members: 10 bits, bit holes: 1, sum bit holes: 6 bits */ /* last cacheline: 32 bytes */ }; struct request_sock; struct tcp_fastopen_context; struct fastopen_queue { struct request_sock * rskq_rst_head; /* 0 8 */ struct request_sock * rskq_rst_tail; /* 8 8 */ spinlock_t lock; /* 16 4 */ int qlen; /* 20 4 */ int max_qlen; /* 24 4 */ /* XXX 4 bytes hole, try to pack */ struct tcp_fastopen_context * ctx; /* 32 8 */ /* size: 40, cachelines: 1, members: 6 */ /* sum members: 36, holes: 1, sum holes: 4 */ /* last cacheline: 40 bytes */ }; struct request_sock_queue { spinlock_t rskq_lock; /* 0 4 */ u8 rskq_defer_accept; /* 4 1 */ /* XXX 3 bytes hole, try to pack */ u32 synflood_warned; /* 8 4 */ atomic_t qlen; /* 12 4 */ atomic_t young; /* 16 4 */ /* XXX 4 bytes hole, try to pack */ struct request_sock * rskq_accept_head; /* 24 8 */ struct request_sock * rskq_accept_tail; /* 32 8 */ struct fastopen_queue fastopenq; /* 40 40 */ /* size: 80, cachelines: 2, members: 8 */ /* sum members: 73, holes: 2, sum holes: 7 */ /* last cacheline: 16 bytes */ }; struct inet_bind_bucket; struct tcp_congestion_ops; struct inet_connection_sock_af_ops; struct tcp_ulp_ops; struct inet_connection_sock { struct inet_sock icsk_inet; /* 0 928 */ /* --- cacheline 14 boundary (896 bytes) was 32 bytes ago --- */ struct request_sock_queue icsk_accept_queue; /* 928 80 */ /* --- cacheline 15 boundary (960 bytes) was 48 bytes ago --- */ struct inet_bind_bucket * icsk_bind_hash; /* 1008 8 */ long unsigned int icsk_timeout; /* 1016 8 */ /* --- cacheline 16 boundary (1024 bytes) --- */ struct timer_list icsk_retransmit_timer; /* 1024 40 */ /* XXX last struct has 4 bytes of padding */ struct timer_list icsk_delack_timer; /* 1064 40 */ /* XXX last struct has 4 bytes of padding */ /* --- cacheline 17 boundary (1088 bytes) was 16 bytes ago --- */ __u32 icsk_rto; /* 1104 4 */ __u32 icsk_pmtu_cookie; /* 1108 4 */ const struct tcp_congestion_ops * icsk_ca_ops; /* 1112 8 */ const struct inet_connection_sock_af_ops * icsk_af_ops; /* 1120 8 */ const struct tcp_ulp_ops * icsk_ulp_ops; /* 1128 8 */ void * icsk_ulp_data; /* 1136 8 */ void (*icsk_clean_acked)(struct sock *, u32); /* 1144 8 */ /* --- cacheline 18 boundary (1152 bytes) --- */ struct hlist_node icsk_listen_portaddr_node; /* 1152 16 */ unsigned int (*icsk_sync_mss)(struct sock *, u32); /* 1168 8 */ __u8 icsk_ca_state:6; /* 1176: 0 1 */ __u8 icsk_ca_setsockopt:1; /* 1176: 6 1 */ __u8 icsk_ca_dst_locked:1; /* 1176: 7 1 */ __u8 icsk_retransmits; /* 1177 1 */ __u8 icsk_pending; /* 1178 1 */ __u8 icsk_backoff; /* 1179 1 */ __u8 icsk_syn_retries; /* 1180 1 */ __u8 icsk_probes_out; /* 1181 1 */ __u16 icsk_ext_hdr_len; /* 1182 2 */ struct { __u8 pending; /* 1184 1 */ __u8 quick; /* 1185 1 */ __u8 pingpong; /* 1186 1 */ __u8 blocked; /* 1187 1 */ __u32 ato; /* 1188 4 */ long unsigned int timeout; /* 1192 8 */ __u32 lrcvtime; /* 1200 4 */ __u16 last_seg_size; /* 1204 2 */ __u16 rcv_mss; /* 1206 2 */ } icsk_ack; /* 1184 24 */ struct { int enabled; /* 1208 4 */ int search_high; /* 1212 4 */ /* --- cacheline 19 boundary (1216 bytes) --- */ int search_low; /* 1216 4 */ int probe_size; /* 1220 4 */ u32 probe_timestamp; /* 1224 4 */ } icsk_mtup; /* 1208 20 */ u32 icsk_user_timeout; /* 1228 4 */ u64 icsk_ca_priv[13]; /* 1232 104 */ /* size: 1336, cachelines: 21, members: 28 */ /* paddings: 2, sum paddings: 8 */ /* last cacheline: 56 bytes */ }; struct tcp_rack { u64 mstamp; /* 0 8 */ u32 rtt_us; /* 8 4 */ u32 end_seq; /* 12 4 */ u32 last_delivered; /* 16 4 */ u8 reo_wnd_steps; /* 20 1 */ u8 reo_wnd_persist:5; /* 21: 0 1 */ u8 dsack_seen:1; /* 21: 5 1 */ u8 advanced:1; /* 21: 6 1 */ /* size: 24, cachelines: 1, members: 8 */ /* padding: 2 */ /* bit_padding: 1 bits */ /* last cacheline: 24 bytes */ }; struct minmax_sample { u32 t; /* 0 4 */ u32 v; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct minmax { struct minmax_sample s[3]; /* 0 24 */ /* size: 24, cachelines: 1, members: 1 */ /* last cacheline: 24 bytes */ }; struct tcp_options_received { int ts_recent_stamp; /* 0 4 */ u32 ts_recent; /* 4 4 */ u32 rcv_tsval; /* 8 4 */ u32 rcv_tsecr; /* 12 4 */ u16 saw_tstamp:1; /* 16: 0 2 */ u16 tstamp_ok:1; /* 16: 1 2 */ u16 dsack:1; /* 16: 2 2 */ u16 wscale_ok:1; /* 16: 3 2 */ u16 sack_ok:3; /* 16: 4 2 */ u16 smc_ok:1; /* 16: 7 2 */ u16 snd_wscale:4; /* 16: 8 2 */ u16 rcv_wscale:4; /* 16:12 2 */ u8 num_sacks; /* 18 1 */ /* XXX 1 byte hole, try to pack */ u16 user_mss; /* 20 2 */ u16 mss_clamp; /* 22 2 */ /* size: 24, cachelines: 1, members: 15 */ /* sum members: 21, holes: 1, sum holes: 1 */ /* sum bitfield members: 16 bits (2 bytes) */ /* last cacheline: 24 bytes */ }; struct timerqueue_node { struct rb_node node; /* 0 24 */ ktime_t expires; /* 24 8 */ /* size: 32, cachelines: 1, members: 2 */ /* last cacheline: 32 bytes */ }; enum hrtimer_restart { HRTIMER_NORESTART = 0, HRTIMER_RESTART = 1, }; struct hrtimer; struct hrtimer_clock_base; struct hrtimer { struct timerqueue_node node; /* 0 32 */ ktime_t _softexpires; /* 32 8 */ enum hrtimer_restart (*function)(struct hrtimer *); /* 40 8 */ struct hrtimer_clock_base * base; /* 48 8 */ u8 state; /* 56 1 */ u8 is_rel; /* 57 1 */ u8 is_soft; /* 58 1 */ /* size: 64, cachelines: 1, members: 7 */ /* padding: 5 */ }; struct tcp_sack_block { u32 start_seq; /* 0 4 */ u32 end_seq; /* 4 4 */ /* size: 8, cachelines: 1, members: 2 */ /* last cacheline: 8 bytes */ }; struct tcp_sock_af_ops; struct tcp_md5sig_info; struct tcp_fastopen_request; struct tcp_sock { struct inet_connection_sock inet_conn; /* 0 1336 */ /* --- cacheline 20 boundary (1280 bytes) was 56 bytes ago --- */ u16 tcp_header_len; /* 1336 2 */ u16 gso_segs; /* 1338 2 */ __be32 pred_flags; /* 1340 4 */ /* --- cacheline 21 boundary (1344 bytes) --- */ u64 bytes_received; /* 1344 8 */ u32 segs_in; /* 1352 4 */ u32 data_segs_in; /* 1356 4 */ u32 rcv_nxt; /* 1360 4 */ u32 copied_seq; /* 1364 4 */ u32 rcv_wup; /* 1368 4 */ u32 snd_nxt; /* 1372 4 */ u32 segs_out; /* 1376 4 */ u32 data_segs_out; /* 1380 4 */ u64 bytes_sent; /* 1384 8 */ u64 bytes_acked; /* 1392 8 */ u32 dsack_dups; /* 1400 4 */ u32 snd_una; /* 1404 4 */ /* --- cacheline 22 boundary (1408 bytes) --- */ u32 snd_sml; /* 1408 4 */ u32 rcv_tstamp; /* 1412 4 */ u32 lsndtime; /* 1416 4 */ u32 last_oow_ack_time; /* 1420 4 */ u32 compressed_ack_rcv_nxt; /* 1424 4 */ u32 tsoffset; /* 1428 4 */ struct list_head tsq_node; /* 1432 16 */ struct list_head tsorted_sent_queue; /* 1448 16 */ u32 snd_wl1; /* 1464 4 */ u32 snd_wnd; /* 1468 4 */ /* --- cacheline 23 boundary (1472 bytes) --- */ u32 max_window; /* 1472 4 */ u32 mss_cache; /* 1476 4 */ u32 window_clamp; /* 1480 4 */ u32 rcv_ssthresh; /* 1484 4 */ struct tcp_rack rack; /* 1488 24 */ /* XXX last struct has 2 bytes of padding */ u16 advmss; /* 1512 2 */ u8 compressed_ack; /* 1514 1 */ /* XXX 1 byte hole, try to pack */ u32 chrono_start; /* 1516 4 */ u32 chrono_stat[3]; /* 1520 12 */ u8 chrono_type:2; /* 1532: 0 1 */ u8 rate_app_limited:1; /* 1532: 2 1 */ u8 fastopen_connect:1; /* 1532: 3 1 */ u8 fastopen_no_cookie:1; /* 1532: 4 1 */ u8 is_sack_reneg:1; /* 1532: 5 1 */ u8 unused:2; /* 1532: 6 1 */ u8 nonagle:4; /* 1533: 0 1 */ u8 thin_lto:1; /* 1533: 4 1 */ u8 recvmsg_inq:1; /* 1533: 5 1 */ u8 repair:1; /* 1533: 6 1 */ u8 frto:1; /* 1533: 7 1 */ u8 repair_queue; /* 1534 1 */ u8 syn_data:1; /* 1535: 0 1 */ u8 syn_fastopen:1; /* 1535: 1 1 */ u8 syn_fastopen_exp:1; /* 1535: 2 1 */ u8 syn_fastopen_ch:1; /* 1535: 3 1 */ u8 syn_data_acked:1; /* 1535: 4 1 */ u8 save_syn:1; /* 1535: 5 1 */ u8 is_cwnd_limited:1; /* 1535: 6 1 */ u8 syn_smc:1; /* 1535: 7 1 */ /* --- cacheline 24 boundary (1536 bytes) --- */ u32 tlp_high_seq; /* 1536 4 */ /* XXX 4 bytes hole, try to pack */ u64 tcp_wstamp_ns; /* 1544 8 */ u64 tcp_clock_cache; /* 1552 8 */ u64 tcp_mstamp; /* 1560 8 */ u32 srtt_us; /* 1568 4 */ u32 mdev_us; /* 1572 4 */ u32 mdev_max_us; /* 1576 4 */ u32 rttvar_us; /* 1580 4 */ u32 rtt_seq; /* 1584 4 */ struct minmax rtt_min; /* 1588 24 */ /* --- cacheline 25 boundary (1600 bytes) was 12 bytes ago --- */ u32 packets_out; /* 1612 4 */ u32 retrans_out; /* 1616 4 */ u32 max_packets_out; /* 1620 4 */ u32 max_packets_seq; /* 1624 4 */ u16 urg_data; /* 1628 2 */ u8 ecn_flags; /* 1630 1 */ u8 keepalive_probes; /* 1631 1 */ u32 reordering; /* 1632 4 */ u32 reord_seen; /* 1636 4 */ u32 snd_up; /* 1640 4 */ struct tcp_options_received rx_opt; /* 1644 24 */ /* --- cacheline 26 boundary (1664 bytes) was 4 bytes ago --- */ u32 snd_ssthresh; /* 1668 4 */ u32 snd_cwnd; /* 1672 4 */ u32 snd_cwnd_cnt; /* 1676 4 */ u32 snd_cwnd_clamp; /* 1680 4 */ u32 snd_cwnd_used; /* 1684 4 */ u32 snd_cwnd_stamp; /* 1688 4 */ u32 prior_cwnd; /* 1692 4 */ u32 prr_delivered; /* 1696 4 */ u32 prr_out; /* 1700 4 */ u32 delivered; /* 1704 4 */ u32 delivered_ce; /* 1708 4 */ u32 lost; /* 1712 4 */ u32 app_limited; /* 1716 4 */ u64 first_tx_mstamp; /* 1720 8 */ /* --- cacheline 27 boundary (1728 bytes) --- */ u64 delivered_mstamp; /* 1728 8 */ u32 rate_delivered; /* 1736 4 */ u32 rate_interval_us; /* 1740 4 */ u32 rcv_wnd; /* 1744 4 */ u32 write_seq; /* 1748 4 */ u32 notsent_lowat; /* 1752 4 */ u32 pushed_seq; /* 1756 4 */ u32 lost_out; /* 1760 4 */ u32 sacked_out; /* 1764 4 */ struct hrtimer pacing_timer; /* 1768 64 */ /* XXX last struct has 5 bytes of padding */ /* --- cacheline 28 boundary (1792 bytes) was 40 bytes ago --- */ struct hrtimer compressed_ack_timer; /* 1832 64 */ /* XXX last struct has 5 bytes of padding */ /* --- cacheline 29 boundary (1856 bytes) was 40 bytes ago --- */ struct sk_buff * lost_skb_hint; /* 1896 8 */ struct sk_buff * retransmit_skb_hint; /* 1904 8 */ struct rb_root out_of_order_queue; /* 1912 8 */ /* --- cacheline 30 boundary (1920 bytes) --- */ struct sk_buff * ooo_last_skb; /* 1920 8 */ struct tcp_sack_block duplicate_sack[1]; /* 1928 8 */ struct tcp_sack_block selective_acks[4]; /* 1936 32 */ struct tcp_sack_block recv_sack_cache[4]; /* 1968 32 */ /* --- cacheline 31 boundary (1984 bytes) was 16 bytes ago --- */ struct sk_buff * highest_sack; /* 2000 8 */ int lost_cnt_hint; /* 2008 4 */ u32 prior_ssthresh; /* 2012 4 */ u32 high_seq; /* 2016 4 */ u32 retrans_stamp; /* 2020 4 */ u32 undo_marker; /* 2024 4 */ int undo_retrans; /* 2028 4 */ u64 bytes_retrans; /* 2032 8 */ u32 total_retrans; /* 2040 4 */ u32 urg_seq; /* 2044 4 */ /* --- cacheline 32 boundary (2048 bytes) --- */ unsigned int keepalive_time; /* 2048 4 */ unsigned int keepalive_intvl; /* 2052 4 */ int linger2; /* 2056 4 */ u8 bpf_sock_ops_cb_flags; /* 2060 1 */ /* XXX 3 bytes hole, try to pack */ u32 rcv_rtt_last_tsecr; /* 2064 4 */ /* XXX 4 bytes hole, try to pack */ struct { u32 rtt_us; /* 2072 4 */ u32 seq; /* 2076 4 */ u64 time; /* 2080 8 */ } rcv_rtt_est; /* 2072 16 */ struct { u32 space; /* 2088 4 */ u32 seq; /* 2092 4 */ u64 time; /* 2096 8 */ } rcvq_space; /* 2088 16 */ struct { u32 probe_seq_start; /* 2104 4 */ u32 probe_seq_end; /* 2108 4 */ } mtu_probe; /* 2104 8 */ /* --- cacheline 33 boundary (2112 bytes) --- */ u32 mtu_info; /* 2112 4 */ /* XXX 4 bytes hole, try to pack */ const struct tcp_sock_af_ops * af_specific; /* 2120 8 */ struct tcp_md5sig_info * md5sig_info; /* 2128 8 */ struct tcp_fastopen_request * fastopen_req; /* 2136 8 */ struct request_sock * fastopen_rsk; /* 2144 8 */ u32 * saved_syn; /* 2152 8 */ /* size: 2160, cachelines: 34, members: 133 */ /* sum members: 2141, holes: 5, sum holes: 16 */ /* sum bitfield members: 24 bits (3 bytes) */ /* paddings: 3, sum paddings: 12 */ /* last cacheline: 48 bytes */ }; void tcp_free_fastopen_req(struct tcp_sock * tp) { } typedef u64 dma_addr_t; struct kmem_cache; typedef struct page * pgtable_t; struct dev_pagemap; struct page { long unsigned int flags; /* 0 8 */ union { struct { struct list_head lru; /* 8 16 */ struct address_space * mapping; /* 24 8 */ long unsigned int index; /* 32 8 */ long unsigned int private; /* 40 8 */ }; /* 8 40 */ struct { dma_addr_t dma_addr; /* 8 8 */ }; /* 8 8 */ struct { union { struct list_head slab_list; /* 8 16 */ struct { struct page * next; /* 8 8 */ int pages; /* 16 4 */ int pobjects; /* 20 4 */ }; /* 8 16 */ }; /* 8 16 */ struct kmem_cache * slab_cache; /* 24 8 */ void * freelist; /* 32 8 */ union { void * s_mem; /* 40 8 */ long unsigned int counters; /* 40 8 */ struct { unsigned int inuse:16; /* 40: 0 4 */ unsigned int objects:15; /* 40:16 4 */ unsigned int frozen:1; /* 40:31 4 */ }; /* 40 4 */ }; /* 40 8 */ }; /* 8 40 */ struct { long unsigned int compound_head; /* 8 8 */ unsigned char compound_dtor; /* 16 1 */ unsigned char compound_order; /* 17 1 */ /* XXX 2 bytes hole, try to pack */ atomic_t compound_mapcount; /* 20 4 */ }; /* 8 16 */ struct { long unsigned int _compound_pad_1; /* 8 8 */ long unsigned int _compound_pad_2; /* 16 8 */ struct list_head deferred_list; /* 24 16 */ }; /* 8 32 */ struct { long unsigned int _pt_pad_1; /* 8 8 */ pgtable_t pmd_huge_pte; /* 16 8 */ long unsigned int _pt_pad_2; /* 24 8 */ union { struct mm_struct * pt_mm; /* 32 8 */ atomic_t pt_frag_refcount; /* 32 4 */ }; /* 32 8 */ spinlock_t ptl; /* 40 4 */ }; /* 8 40 */ struct { struct dev_pagemap * pgmap; /* 8 8 */ long unsigned int hmm_data; /* 16 8 */ long unsigned int _zd_pad_1; /* 24 8 */ }; /* 8 24 */ struct callback_head callback_head; /* 8 16 */ }; /* 8 40 */ union { atomic_t _mapcount; /* 48 4 */ unsigned int page_type; /* 48 4 */ unsigned int active; /* 48 4 */ int units; /* 48 4 */ }; /* 48 4 */ atomic_t _refcount; /* 52 4 */ struct mem_cgroup * mem_cgroup; /* 56 8 */ /* size: 64, cachelines: 1, members: 5 */ }; int tcp_sendpage(struct sock * sk, struct page * page, int offset, size_t size, int flags) { return 0; } int tcp_sendpage_locked(struct sock * sk, struct page * page, int offset, size_t size, int flags) { return 0; } typedef long int __kernel_long_t; typedef __kernel_long_t __kernel_ssize_t; typedef __kernel_ssize_t ssize_t; typedef __kernel_ssize_t ssize_t; ssize_t do_tcp_sendpages(struct sock * sk, struct page * page, int offset, size_t size, int flags) { return 0; } struct sk_buff * sk_stream_alloc_skb(struct sock * sk, int size, gfp_t gfp, bool force_schedule) { return 0; } struct fasync_struct; struct pipe_buffer; struct user_struct; struct pipe_inode_info { struct mutex mutex; /* 0 32 */ wait_queue_head_t wait; /* 32 24 */ unsigned int nrbufs; /* 56 4 */ unsigned int curbuf; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ unsigned int buffers; /* 64 4 */ unsigned int readers; /* 68 4 */ unsigned int writers; /* 72 4 */ unsigned int files; /* 76 4 */ unsigned int waiting_writers; /* 80 4 */ unsigned int r_counter; /* 84 4 */ unsigned int w_counter; /* 88 4 */ /* XXX 4 bytes hole, try to pack */ struct page * tmp_page; /* 96 8 */ struct fasync_struct * fasync_readers; /* 104 8 */ struct fasync_struct * fasync_writers; /* 112 8 */ struct pipe_buffer * bufs; /* 120 8 */ /* --- cacheline 2 boundary (128 bytes) --- */ struct user_struct * user; /* 128 8 */ /* size: 136, cachelines: 3, members: 16 */ /* sum members: 132, holes: 1, sum holes: 4 */ /* last cacheline: 8 bytes */ }; ssize_t tcp_splice_read(struct socket * sock, loff_t * ppos, struct pipe_inode_info * pipe, size_t len, unsigned int flags) { return 0; } int tcp_ioctl(struct sock * sk, int cmd, long unsigned int arg) { return 0; } typedef unsigned int __poll_t; typedef unsigned int __poll_t; struct poll_table_struct; typedef void (*poll_queue_proc)(struct file *, wait_queue_head_t *, struct poll_table_struct *); struct poll_table_struct { poll_queue_proc _qproc; /* 0 8 */ __poll_t _key; /* 8 4 */ /* size: 16, cachelines: 1, members: 2 */ /* padding: 4 */ /* last cacheline: 16 bytes */ }; typedef struct poll_table_struct poll_table; __poll_t tcp_poll(struct file * file, struct socket * sock, poll_table * wait) { return 0; } void tcp_init_transfer(struct sock * sk, int bpf_op) { } void tcp_init_sock(struct sock * sk) { } void tcp_leave_memory_pressure(struct sock * sk) { } void tcp_enter_memory_pressure(struct sock * sk) { } void * memcpy(void * p, const void * q, __kernel_size_t size) { return 0; } void * memset(void * p, int c, __kernel_size_t size) { return 0; }