diff --git a/libc/kernel/common/linux/tcp.h b/libc/kernel/common/linux/tcp.h
index 3fa95f8..b51824a 100644
--- a/libc/kernel/common/linux/tcp.h
+++ b/libc/kernel/common/linux/tcp.h
@@ -7,141 +7,162 @@
  ***   structures, and macros generated from the original header, and thus,
  ***   contains no copyrightable information.
  ***
+ ***   To edit the content of this header, modify the corresponding
+ ***   source file (e.g. under external/kernel-headers/original/) then
+ ***   run bionic/libc/kernel/tools/update_all.py
+ ***
+ ***   Any manual change here will be lost the next time this script will
+ ***   be run. You've been warned!
+ ***
  ****************************************************************************
  ****************************************************************************/
 #ifndef _LINUX_TCP_H
 #define _LINUX_TCP_H
-
 #include <linux/types.h>
 #include <asm/byteorder.h>
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 struct tcphdr {
  __u16 source;
  __u16 dest;
  __u32 seq;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 ack_seq;
 #ifdef __LITTLE_ENDIAN_BITFIELD
  __u16 res1:4,
  doff:4,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  fin:1,
  syn:1,
  rst:1,
  psh:1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  ack:1,
  urg:1,
  ece:1,
  cwr:1;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #elif defined(__BIG_ENDIAN_BITFIELD)
  __u16 doff:4,
  res1:4,
  cwr:1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  ece:1,
  urg:1,
  ack:1,
  psh:1,
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  rst:1,
  syn:1,
  fin:1;
 #else
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #error "Adjust your <asm/byteorder.h> defines"
 #endif
  __u16 window;
  __u16 check;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u16 urg_ptr;
 };
-
 union tcp_word_hdr {
  struct tcphdr hdr;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 words[5];
 };
-
 #define tcp_flag_word(tp) ( ((union tcp_word_hdr *)(tp))->words [3]) 
-
 enum {
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCP_FLAG_CWR = __constant_htonl(0x00800000),
  TCP_FLAG_ECE = __constant_htonl(0x00400000),
  TCP_FLAG_URG = __constant_htonl(0x00200000),
  TCP_FLAG_ACK = __constant_htonl(0x00100000),
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCP_FLAG_PSH = __constant_htonl(0x00080000),
  TCP_FLAG_RST = __constant_htonl(0x00040000),
  TCP_FLAG_SYN = __constant_htonl(0x00020000),
  TCP_FLAG_FIN = __constant_htonl(0x00010000),
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCP_RESERVED_BITS = __constant_htonl(0x0F000000),
  TCP_DATA_OFFSET = __constant_htonl(0xF0000000)
 };
-
 #define TCP_NODELAY 1  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCP_MAXSEG 2  
 #define TCP_CORK 3  
 #define TCP_KEEPIDLE 4  
 #define TCP_KEEPINTVL 5  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCP_KEEPCNT 6  
 #define TCP_SYNCNT 7  
 #define TCP_LINGER2 8  
 #define TCP_DEFER_ACCEPT 9  
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCP_WINDOW_CLAMP 10  
 #define TCP_INFO 11  
 #define TCP_QUICKACK 12  
 #define TCP_CONGESTION 13  
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 #define TCPI_OPT_TIMESTAMPS 1
 #define TCPI_OPT_SACK 2
 #define TCPI_OPT_WSCALE 4
 #define TCPI_OPT_ECN 8
-
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 enum tcp_ca_state
 {
  TCP_CA_Open = 0,
 #define TCPF_CA_Open (1<<TCP_CA_Open)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCP_CA_Disorder = 1,
 #define TCPF_CA_Disorder (1<<TCP_CA_Disorder)
  TCP_CA_CWR = 2,
 #define TCPF_CA_CWR (1<<TCP_CA_CWR)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  TCP_CA_Recovery = 3,
 #define TCPF_CA_Recovery (1<<TCP_CA_Recovery)
  TCP_CA_Loss = 4
 #define TCPF_CA_Loss (1<<TCP_CA_Loss)
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
 };
-
 struct tcp_info
 {
  __u8 tcpi_state;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 tcpi_ca_state;
  __u8 tcpi_retransmits;
  __u8 tcpi_probes;
  __u8 tcpi_backoff;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u8 tcpi_options;
  __u8 tcpi_snd_wscale : 4, tcpi_rcv_wscale : 4;
-
  __u32 tcpi_rto;
  __u32 tcpi_ato;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 tcpi_snd_mss;
  __u32 tcpi_rcv_mss;
-
  __u32 tcpi_unacked;
  __u32 tcpi_sacked;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 tcpi_lost;
  __u32 tcpi_retrans;
  __u32 tcpi_fackets;
-
  __u32 tcpi_last_data_sent;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 tcpi_last_ack_sent;
  __u32 tcpi_last_data_recv;
  __u32 tcpi_last_ack_recv;
-
  __u32 tcpi_pmtu;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 tcpi_rcv_ssthresh;
  __u32 tcpi_rtt;
  __u32 tcpi_rttvar;
  __u32 tcpi_snd_ssthresh;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 tcpi_snd_cwnd;
  __u32 tcpi_advmss;
  __u32 tcpi_reordering;
-
  __u32 tcpi_rcv_rtt;
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
  __u32 tcpi_rcv_space;
-
  __u32 tcpi_total_retrans;
 };
-
 #endif
+/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
