Merge remote-tracking branch 'origin/upstream/main' into 'main'

Change-Id: Ic08a77677480d8c4f957e889026ffbb21c27a0ab
diff --git a/libc/BUILD.gn b/libc/BUILD.gn
new file mode 100644
index 0000000..ee3527d
--- /dev/null
+++ b/libc/BUILD.gn
@@ -0,0 +1,825 @@
+# Copyright 2021 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+android_root = "//third_party/android/platform"
+
+visibility = [ ":*" ]
+
+libc_common_src_files = [
+  "async_safe/async_safe_log.cpp",
+  "bionic/ether_aton.c",
+  "bionic/ether_ntoa.c",
+  "bionic/exit.cpp",
+  "bionic/fts.c",
+  "bionic/initgroups.c",
+  "bionic/isatty.c",
+  "bionic/sched_cpualloc.c",
+  "bionic/sched_cpucount.c",
+  "stdio/fmemopen.cpp",
+  "stdio/parsefloat.c",
+  "stdio/refill.c",
+  "stdio/stdio.cpp",
+  "stdio/stdio_ext.cpp",
+  "stdio/vfscanf.cpp",
+  "stdio/vfwscanf.c",
+]
+
+config("headers") {
+  cflags = [
+    "-idirafter",
+    rebase_path("include", root_build_dir),
+
+    "-idirafter",
+    rebase_path("kernel/uapi", root_build_dir),
+
+    "-idirafter",
+    rebase_path("kernel/android/uapi", root_build_dir),
+  ]
+
+  if (target_cpu == "arm64") {
+    cflags += [
+      "-idirafter",
+      rebase_path("kernel/uapi/asm-arm64", root_build_dir),
+    ]
+  } else if (target_cpu == "x64") {
+    cflags += [
+      "-idirafter",
+      rebase_path("kernel/uapi/asm-x86", root_build_dir),
+    ]
+  }
+}
+
+config("bionic_config") {
+  visibility += [ "*" ]
+
+  cflags_c = [ "-Wno-strict-prototypes" ]
+
+  cflags_cc = [
+    "-Wno-conversion",
+    "-Wno-extra-semi",
+  ]
+
+  configs = [ ":headers" ]
+}
+
+config("bionic_config_private") {
+  include_dirs = [
+    ".",
+    "$android_root/bionic/libstdc++/include",
+    "$android_root/system/core/libcutils/include",
+    "async_safe/include",
+    "platform",
+  ]
+
+  cflags = [
+    "-Wno-incompatible-pointer-types-discards-qualifiers",
+    "-Wno-implicit-fallthrough",
+    "-Wno-unused-function",
+    "-Wno-gcc-compat",
+  ]
+
+  cflags_cc = [
+    "-Wno-char-subscripts",
+    "-Wno-reorder-init-list",
+  ]
+
+  configs = [ ":bionic_config" ]
+}
+
+source_set("libc_tzcode") {
+  sources = [
+    "tzcode/asctime.c",
+    "tzcode/bionic.cpp",
+    "tzcode/difftime.c",
+    "tzcode/localtime.c",
+    "tzcode/strftime.c",
+    "tzcode/strptime.c",
+    "tzcode/tzfile.h",
+  ]
+
+  cflags = [
+    "-Wno-unused-parameter",
+
+    # Don't use ridiculous amounts of stack.
+    "-DALL_STATE",
+
+    # Include tzsetwall, timelocal, timegm, time2posix, and posix2time.
+    "-DSTD_INSPIRED",
+
+    # Obviously, we want to be thread-safe.
+    "-DTHREAD_SAFE",
+
+    # The name of the tm_gmtoff field in our struct tm.
+    "-DTM_GMTOFF=tm_gmtoff",
+
+    # Where we store our tzdata.
+    "-DTZDIR=\"/system/usr/share/zoneinfo\"",
+
+    # Include `tzname`, `timezone`, and `daylight` globals.
+    "-DHAVE_POSIX_DECLS=0",
+    "-DUSG_COMPAT=1",
+
+    # Use the empty string (instead of "   ") as the timezone abbreviation
+    # fallback.
+    "-DWILDABBR=\"\"",
+    "-DNO_RUN_TIME_WARNINGS_ABOUT_YEAR_2000_PROBLEMS_THANK_YOU",
+    "-Dlint",
+  ]
+
+  configs += [ ":bionic_config_private" ]
+}
+
+source_set("libc_dns") {
+  sources = [
+    "dns/include/hostent.h",
+    "dns/include/nsswitch.h",
+    "dns/include/resolv_cache.h",
+    "dns/include/resolv_netid.h",
+    "dns/include/resolv_params.h",
+    "dns/include/resolv_private.h",
+    "dns/include/resolv_static.h",
+    "dns/include/resolv_stats.h",
+    "dns/nameser/ns_name.c",
+    "dns/nameser/ns_netint.c",
+    "dns/nameser/ns_parse.c",
+    "dns/nameser/ns_print.c",
+    "dns/nameser/ns_samedomain.c",
+    "dns/nameser/ns_ttl.c",
+    "dns/net/getaddrinfo.c",
+    # "dns/net/gethnamaddr.c",
+    "dns/net/getnameinfo.c",
+    "dns/net/getservent.c",
+    "dns/net/nsdispatch.c",
+    "dns/net/services.h",
+    # "dns/net/sethostent.c",
+    "dns/resolv/herror.c",
+    "dns/resolv/res_cache.c",
+    "dns/resolv/res_comp.c",
+    "dns/resolv/res_data.c",
+    "dns/resolv/res_debug.c",
+    "dns/resolv/res_debug.h",
+    "dns/resolv/res_init.c",
+    "dns/resolv/res_mkquery.c",
+    "dns/resolv/res_private.h",
+    "dns/resolv/res_query.c",
+    "dns/resolv/res_send.c",
+    "dns/resolv/res_state.c",
+    "dns/resolv/res_stats.c",
+
+    # "upstream-netbsd/lib/libc/isc/ev_streams.c",
+    # "upstream-netbsd/lib/libc/isc/ev_timers.c",
+  ]
+
+  cflags = [
+    "-DANDROID_CHANGES",
+    "-DINET6",
+    "-Wno-unused-parameter",
+    "-include",
+    "netbsd-compat.h",
+    "-Wframe-larger-than=66000",
+  ]
+
+  include_dirs = [
+    "dns/include",
+    "private",
+    "upstream-netbsd/lib/libc/include",
+    "upstream-netbsd/android/include",
+  ]
+
+  configs += [ ":bionic_config_private" ]
+}
+
+source_set("libc_freebsd") {
+  sources = [
+    "upstream-freebsd/lib/libc/gen/ldexp.c",
+    "upstream-freebsd/lib/libc/stdlib/getopt_long.c",
+    "upstream-freebsd/lib/libc/stdlib/hcreate.c",
+    "upstream-freebsd/lib/libc/stdlib/hcreate_r.c",
+    "upstream-freebsd/lib/libc/stdlib/hdestroy_r.c",
+    "upstream-freebsd/lib/libc/stdlib/hsearch_r.c",
+    "upstream-freebsd/lib/libc/stdlib/qsort.c",
+    "upstream-freebsd/lib/libc/stdlib/quick_exit.c",
+    "upstream-freebsd/lib/libc/string/wcpcpy.c",
+    "upstream-freebsd/lib/libc/string/wcpncpy.c",
+    "upstream-freebsd/lib/libc/string/wcscasecmp.c",
+    "upstream-freebsd/lib/libc/string/wcscat.c",
+    "upstream-freebsd/lib/libc/string/wcschr.c",
+    "upstream-freebsd/lib/libc/string/wcscmp.c",
+    "upstream-freebsd/lib/libc/string/wcscpy.c",
+    "upstream-freebsd/lib/libc/string/wcscspn.c",
+    "upstream-freebsd/lib/libc/string/wcsdup.c",
+    "upstream-freebsd/lib/libc/string/wcslcat.c",
+    "upstream-freebsd/lib/libc/string/wcslen.c",
+    "upstream-freebsd/lib/libc/string/wcsncasecmp.c",
+    "upstream-freebsd/lib/libc/string/wcsncat.c",
+    "upstream-freebsd/lib/libc/string/wcsncmp.c",
+    "upstream-freebsd/lib/libc/string/wcsncpy.c",
+    "upstream-freebsd/lib/libc/string/wcsnlen.c",
+    "upstream-freebsd/lib/libc/string/wcspbrk.c",
+    "upstream-freebsd/lib/libc/string/wcsrchr.c",
+    "upstream-freebsd/lib/libc/string/wcsspn.c",
+    "upstream-freebsd/lib/libc/string/wcsstr.c",
+    "upstream-freebsd/lib/libc/string/wcstok.c",
+    "upstream-freebsd/lib/libc/string/wmemchr.c",
+    "upstream-freebsd/lib/libc/string/wmemcmp.c",
+    "upstream-freebsd/lib/libc/string/wmemcpy.c",
+    "upstream-freebsd/lib/libc/string/wmemmove.c",
+    "upstream-freebsd/lib/libc/string/wmemset.c",
+  ]
+
+  if (target_cpu == "arm64") {
+    sources -= [ "upstream-freebsd/lib/libc/string/wmemmove.c" ]
+  }
+
+  cflags_c = [
+    "-Wno-sign-compare",
+    "-Wno-unused-parameter",
+    "-include",
+    "freebsd-compat.h",
+  ]
+
+  include_dirs = [ "upstream-freebsd/android/include" ]
+
+  configs += [ ":bionic_config_private" ]
+}
+
+source_set("libc_freebsd_large_stack") {
+  sources = [ "upstream-freebsd/lib/libc/gen/glob.c" ]
+
+  cflags_c = [
+    "-Wno-sign-compare",
+    "-include",
+    "freebsd-compat.h",
+    "-Wframe-larger-than=66000",
+  ]
+
+  include_dirs = [ "upstream-freebsd/android/include" ]
+
+  configs += [ ":bionic_config_private" ]
+}
+
+source_set("libc_netbsd") {
+  sources = [
+    "upstream-netbsd/common/lib/libc/stdlib/random.c",
+    "upstream-netbsd/lib/libc/gen/nice.c",
+    "upstream-netbsd/lib/libc/gen/psignal.c",
+    "upstream-netbsd/lib/libc/gen/utime.c",
+    "upstream-netbsd/lib/libc/inet/nsap_addr.c",
+    "upstream-netbsd/lib/libc/regex/regcomp.c",
+    "upstream-netbsd/lib/libc/regex/regerror.c",
+    "upstream-netbsd/lib/libc/regex/regexec.c",
+    "upstream-netbsd/lib/libc/regex/regfree.c",
+    "upstream-netbsd/lib/libc/stdlib/_rand48.c",
+    "upstream-netbsd/lib/libc/stdlib/bsearch.c",
+    "upstream-netbsd/lib/libc/stdlib/drand48.c",
+    "upstream-netbsd/lib/libc/stdlib/erand48.c",
+    "upstream-netbsd/lib/libc/stdlib/jrand48.c",
+    "upstream-netbsd/lib/libc/stdlib/lcong48.c",
+    "upstream-netbsd/lib/libc/stdlib/lrand48.c",
+    "upstream-netbsd/lib/libc/stdlib/mrand48.c",
+    "upstream-netbsd/lib/libc/stdlib/nrand48.c",
+    "upstream-netbsd/lib/libc/stdlib/rand_r.c",
+    "upstream-netbsd/lib/libc/stdlib/reallocarr.c",
+    "upstream-netbsd/lib/libc/stdlib/seed48.c",
+    "upstream-netbsd/lib/libc/stdlib/srand48.c",
+  ]
+
+  cflags_c = [
+    "-Wno-sign-compare",
+    "-Wno-unused-parameter",
+    "-DPOSIX_MISTAKE",
+    "-include",
+    "netbsd-compat.h",
+  ]
+
+  include_dirs = [
+    "upstream-netbsd/android/include",
+    "upstream-netbsd/lib/libc/include",
+  ]
+
+  configs += [ ":bionic_config_private" ]
+}
+
+source_set("libc_openbsd_ndk") {
+  sources = [
+    "upstream-openbsd/lib/libc/gen/alarm.c",
+    "upstream-openbsd/lib/libc/gen/ctype_.c",
+    "upstream-openbsd/lib/libc/gen/daemon.c",
+    "upstream-openbsd/lib/libc/gen/err.c",
+    "upstream-openbsd/lib/libc/gen/errx.c",
+    "upstream-openbsd/lib/libc/gen/fnmatch.c",
+    "upstream-openbsd/lib/libc/gen/ftok.c",
+    "upstream-openbsd/lib/libc/gen/getprogname.c",
+    "upstream-openbsd/lib/libc/gen/setprogname.c",
+    "upstream-openbsd/lib/libc/gen/verr.c",
+    "upstream-openbsd/lib/libc/gen/verrx.c",
+    "upstream-openbsd/lib/libc/gen/vwarn.c",
+    "upstream-openbsd/lib/libc/gen/vwarnx.c",
+    "upstream-openbsd/lib/libc/gen/warn.c",
+    "upstream-openbsd/lib/libc/gen/warnx.c",
+    "upstream-openbsd/lib/libc/locale/btowc.c",
+    "upstream-openbsd/lib/libc/locale/mbrlen.c",
+    "upstream-openbsd/lib/libc/locale/mbstowcs.c",
+    "upstream-openbsd/lib/libc/locale/mbtowc.c",
+    "upstream-openbsd/lib/libc/locale/wcscoll.c",
+    "upstream-openbsd/lib/libc/locale/wcstoimax.c",
+    "upstream-openbsd/lib/libc/locale/wcstol.c",
+    "upstream-openbsd/lib/libc/locale/wcstoll.c",
+    "upstream-openbsd/lib/libc/locale/wcstombs.c",
+    "upstream-openbsd/lib/libc/locale/wcstoul.c",
+    "upstream-openbsd/lib/libc/locale/wcstoull.c",
+    "upstream-openbsd/lib/libc/locale/wcstoumax.c",
+    "upstream-openbsd/lib/libc/locale/wcsxfrm.c",
+    "upstream-openbsd/lib/libc/locale/wctob.c",
+    "upstream-openbsd/lib/libc/locale/wctomb.c",
+    "upstream-openbsd/lib/libc/net/base64.c",
+    "upstream-openbsd/lib/libc/net/htonl.c",
+    "upstream-openbsd/lib/libc/net/htons.c",
+    "upstream-openbsd/lib/libc/net/inet_lnaof.c",
+    "upstream-openbsd/lib/libc/net/inet_makeaddr.c",
+    "upstream-openbsd/lib/libc/net/inet_netof.c",
+    "upstream-openbsd/lib/libc/net/inet_ntoa.c",
+    "upstream-openbsd/lib/libc/net/inet_ntop.c",
+    "upstream-openbsd/lib/libc/net/inet_pton.c",
+    "upstream-openbsd/lib/libc/net/ntohl.c",
+    "upstream-openbsd/lib/libc/net/ntohs.c",
+    "upstream-openbsd/lib/libc/net/res_random.c",
+    "upstream-openbsd/lib/libc/stdio/fgetln.c",
+    "upstream-openbsd/lib/libc/stdio/fgetwc.c",
+    "upstream-openbsd/lib/libc/stdio/fgetws.c",
+    "upstream-openbsd/lib/libc/stdio/flags.c",
+    "upstream-openbsd/lib/libc/stdio/fpurge.c",
+    "upstream-openbsd/lib/libc/stdio/fputwc.c",
+    "upstream-openbsd/lib/libc/stdio/fputws.c",
+    "upstream-openbsd/lib/libc/stdio/fvwrite.c",
+    "upstream-openbsd/lib/libc/stdio/fwide.c",
+    "upstream-openbsd/lib/libc/stdio/getdelim.c",
+    "upstream-openbsd/lib/libc/stdio/gets.c",
+    "upstream-openbsd/lib/libc/stdio/makebuf.c",
+    "upstream-openbsd/lib/libc/stdio/mktemp.c",
+    "upstream-openbsd/lib/libc/stdio/open_memstream.c",
+    "upstream-openbsd/lib/libc/stdio/open_wmemstream.c",
+    "upstream-openbsd/lib/libc/stdio/rget.c",
+    "upstream-openbsd/lib/libc/stdio/setvbuf.c",
+    "upstream-openbsd/lib/libc/stdio/ungetc.c",
+    "upstream-openbsd/lib/libc/stdio/ungetwc.c",
+    "upstream-openbsd/lib/libc/stdio/vasprintf.c",
+    "upstream-openbsd/lib/libc/stdio/vdprintf.c",
+    "upstream-openbsd/lib/libc/stdio/vsscanf.c",
+    "upstream-openbsd/lib/libc/stdio/vswprintf.c",
+    "upstream-openbsd/lib/libc/stdio/vswscanf.c",
+    "upstream-openbsd/lib/libc/stdio/wbuf.c",
+    "upstream-openbsd/lib/libc/stdio/wsetup.c",
+    "upstream-openbsd/lib/libc/stdlib/abs.c",
+    "upstream-openbsd/lib/libc/stdlib/div.c",
+    "upstream-openbsd/lib/libc/stdlib/getenv.c",
+    "upstream-openbsd/lib/libc/stdlib/getsubopt.c",
+    "upstream-openbsd/lib/libc/stdlib/imaxabs.c",
+    "upstream-openbsd/lib/libc/stdlib/imaxdiv.c",
+    "upstream-openbsd/lib/libc/stdlib/insque.c",
+    "upstream-openbsd/lib/libc/stdlib/labs.c",
+    "upstream-openbsd/lib/libc/stdlib/ldiv.c",
+    "upstream-openbsd/lib/libc/stdlib/llabs.c",
+    "upstream-openbsd/lib/libc/stdlib/lldiv.c",
+    "upstream-openbsd/lib/libc/stdlib/lsearch.c",
+    "upstream-openbsd/lib/libc/stdlib/recallocarray.c",
+    "upstream-openbsd/lib/libc/stdlib/remque.c",
+    "upstream-openbsd/lib/libc/stdlib/setenv.c",
+    "upstream-openbsd/lib/libc/stdlib/tfind.c",
+    "upstream-openbsd/lib/libc/stdlib/tsearch.c",
+    "upstream-openbsd/lib/libc/string/memccpy.c",
+    "upstream-openbsd/lib/libc/string/strcasecmp.c",
+    "upstream-openbsd/lib/libc/string/strcasestr.c",
+    "upstream-openbsd/lib/libc/string/strcoll.c",
+    "upstream-openbsd/lib/libc/string/strcspn.c",
+    "upstream-openbsd/lib/libc/string/strdup.c",
+    "upstream-openbsd/lib/libc/string/strndup.c",
+    "upstream-openbsd/lib/libc/string/strpbrk.c",
+    "upstream-openbsd/lib/libc/string/strsep.c",
+    "upstream-openbsd/lib/libc/string/strspn.c",
+    "upstream-openbsd/lib/libc/string/strtok.c",
+    "upstream-openbsd/lib/libc/string/strxfrm.c",
+    "upstream-openbsd/lib/libc/string/wcslcpy.c",
+    "upstream-openbsd/lib/libc/string/wcswidth.c",
+  ]
+
+  cflags_c = [
+    "-Wno-sign-compare",
+    "-Wno-unused-parameter",
+    "-include",
+    "openbsd-compat.h",
+  ]
+
+  include_dirs = [
+    "private",
+    "stdio",
+    "upstream-openbsd/android/include",
+    "upstream-openbsd/lib/libc/include",
+    "upstream-openbsd/lib/libc/gdtoa",
+  ]
+
+  configs += [ ":bionic_config_private" ]
+}
+
+source_set("libc_openbsd_large_stack") {
+  sources = [
+    "stdio/vfprintf.cpp",
+    "stdio/vfwprintf.cpp",
+    "upstream-openbsd/lib/libc/string/memmem.c",
+    "upstream-openbsd/lib/libc/string/strstr.c",
+  ]
+
+  cflags_c = [ "-Wno-sign-compare" ]
+
+  cflags = [
+    "-include",
+    "openbsd-compat.h",
+    "-Wframe-larger-than=5000",
+  ]
+
+  include_dirs = [
+    "upstream-openbsd/android/include",
+    "upstream-openbsd/lib/libc/include",
+    "upstream-openbsd/lib/libc/gdtoa",
+    "upstream-openbsd/lib/libc/stdio",
+  ]
+
+  configs += [ ":bionic_config_private" ]
+}
+
+source_set("libc_openbsd") {
+  sources = [
+    # These two depend on getentropy, which isn't in libc_ndk.a.
+    "upstream-openbsd/lib/libc/crypt/arc4random.c",
+    "upstream-openbsd/lib/libc/crypt/arc4random_uniform.c",
+
+    # May be overriden by per-arch optimized versions
+    "upstream-openbsd/lib/libc/string/memchr.c",
+    "upstream-openbsd/lib/libc/string/memrchr.c",
+    "upstream-openbsd/lib/libc/string/stpcpy.c",
+    "upstream-openbsd/lib/libc/string/stpncpy.c",
+    "upstream-openbsd/lib/libc/string/strcat.c",
+    "upstream-openbsd/lib/libc/string/strcpy.c",
+    "upstream-openbsd/lib/libc/string/strlcat.c",
+    "upstream-openbsd/lib/libc/string/strlcpy.c",
+    "upstream-openbsd/lib/libc/string/strncat.c",
+    "upstream-openbsd/lib/libc/string/strncmp.c",
+    "upstream-openbsd/lib/libc/string/strncpy.c",
+  ]
+
+  if (target_cpu == "arm64") {
+    sources -= [
+      "upstream-openbsd/lib/libc/string/memchr.c",
+      "upstream-openbsd/lib/libc/string/memrchr.c",
+      "upstream-openbsd/lib/libc/string/stpcpy.c",
+      "upstream-openbsd/lib/libc/string/strcpy.c",
+      "upstream-openbsd/lib/libc/string/strncmp.c",
+    ]
+  }
+
+  if (target_cpu == "x64") {
+    sources -= [
+      "upstream-openbsd/lib/libc/string/stpcpy.c",
+      "upstream-openbsd/lib/libc/string/stpncpy.c",
+      "upstream-openbsd/lib/libc/string/strcat.c",
+      "upstream-openbsd/lib/libc/string/strcpy.c",
+      "upstream-openbsd/lib/libc/string/strncat.c",
+      "upstream-openbsd/lib/libc/string/strncmp.c",
+      "upstream-openbsd/lib/libc/string/strncpy.c",
+    ]
+  }
+
+  cflags = [
+    "-Wno-sign-compare",
+    "-Wno-unused-parameter",
+    "-include",
+    "openbsd-compat.h",
+  ]
+
+  include_dirs = [
+    "private",
+    "upstream-openbsd/android/include",
+  ]
+
+  configs += [ ":bionic_config_private" ]
+}
+
+source_set("libc_gdtoa") {
+  sources = [
+    "upstream-openbsd/android/gdtoa_support.cpp",
+    "upstream-openbsd/lib/libc/gdtoa/dmisc.c",
+    "upstream-openbsd/lib/libc/gdtoa/dtoa.c",
+    "upstream-openbsd/lib/libc/gdtoa/gdtoa.c",
+    "upstream-openbsd/lib/libc/gdtoa/gethex.c",
+    "upstream-openbsd/lib/libc/gdtoa/gmisc.c",
+    "upstream-openbsd/lib/libc/gdtoa/hd_init.c",
+    "upstream-openbsd/lib/libc/gdtoa/hdtoa.c",
+    "upstream-openbsd/lib/libc/gdtoa/hexnan.c",
+    "upstream-openbsd/lib/libc/gdtoa/ldtoa.c",
+    "upstream-openbsd/lib/libc/gdtoa/misc.c",
+    "upstream-openbsd/lib/libc/gdtoa/smisc.c",
+    "upstream-openbsd/lib/libc/gdtoa/strtod.c",
+    "upstream-openbsd/lib/libc/gdtoa/strtodg.c",
+    "upstream-openbsd/lib/libc/gdtoa/strtof.c",
+    "upstream-openbsd/lib/libc/gdtoa/strtorQ.c",
+    "upstream-openbsd/lib/libc/gdtoa/strtord.c",
+    "upstream-openbsd/lib/libc/gdtoa/sum.c",
+    "upstream-openbsd/lib/libc/gdtoa/ulp.c",
+  ]
+
+  cflags_c = [
+    "-Wno-array-bounds",
+    "-Wno-sign-compare",
+  ]
+
+  cflags = [
+    "-include",
+    "openbsd-compat.h",
+  ]
+
+  include_dirs = [
+    "private",
+    "upstream-openbsd/android/include",
+    "upstream-openbsd/lib/libc/include",
+  ]
+
+  configs += [ ":bionic_config_private" ]
+}
+
+# Skipped libc_fortify
+
+source_set("libc_bionic") {
+  sources = [
+    "bionic/setjmp_cookie.cpp",
+    "bionic/sysconf.cpp",
+    "bionic/vdso.cpp",
+
+    # The following must not be statically linked into libc_ndk.a, because
+    # debuggerd will look for the abort message in libc.so's copy.
+    "bionic/android_set_abort_message.cpp",
+    "bionic/strchr.cpp",
+    "bionic/strchrnul.cpp",
+    "bionic/strnlen.c",
+    "bionic/strrchr.cpp",
+  ]
+
+  if (target_cpu == "arm64") {
+    sources += [
+      "arch-arm64/generic/bionic/memcpy.S",
+      "arch-arm64/generic/bionic/memmove.S",
+      "arch-arm64/generic/bionic/memset.S",
+      "arch-arm64/generic/bionic/wmemmove.S",
+
+      # "arch-arm64/bionic/__bionic_clone.S",
+      # "arch-arm64/bionic/_exit_with_stack_teardown.S",
+      # "arch-arm64/bionic/setjmp.S",
+      # "arch-arm64/bionic/syscall.S",
+      # "arch-arm64/bionic/vfork.S",
+    ]
+    sources -= [
+      "bionic/__memcpy_chk.cpp",
+      "bionic/strchr.cpp",
+      "bionic/strchrnul.cpp",
+      "bionic/strnlen.c",
+      "bionic/strrchr.cpp",
+    ]
+  }
+
+  if (target_cpu == "x64") {
+    sources += [
+      # "arch-x86_64/string/avx2-wmemset-kbl.S",
+      "arch-x86_64/string/sse2-memmove-slm.S",
+      # "arch-x86_64/string/sse2-memset-slm.S",
+      "arch-x86_64/string/sse2-stpcpy-slm.S",
+      "arch-x86_64/string/sse2-stpncpy-slm.S",
+      "arch-x86_64/string/sse2-strcat-slm.S",
+      "arch-x86_64/string/sse2-strcpy-slm.S",
+      "arch-x86_64/string/sse2-strlen-slm.S",
+      "arch-x86_64/string/sse2-strncat-slm.S",
+      "arch-x86_64/string/sse2-strncpy-slm.S",
+      "arch-x86_64/string/sse4-memcmp-slm.S",
+      "arch-x86_64/string/ssse3-strcmp-slm.S",
+      "arch-x86_64/string/ssse3-strncmp-slm.S",
+
+      # "arch-x86_64/bionic/__bionic_clone.S",
+      # "arch-x86_64/bionic/__restore_rt.S",
+      # "arch-x86_64/bionic/_exit_with_stack_teardown.S",
+      # "arch-x86_64/bionic/setjmp.S",
+      # "arch-x86_64/bionic/syscall.S",
+      # "arch-x86_64/bionic/vfork.S",
+    ]
+  }
+
+  configs += [ ":bionic_config_private" ]
+}
+
+source_set("libc_bionic_ndk") {
+  sources = [
+    "bionic/NetdClientDispatch.cpp",
+    "bionic/__bionic_get_shell_path.cpp",
+    "bionic/__cmsg_nxthdr.cpp",
+    "bionic/__errno.cpp",
+    "bionic/__gnu_basename.cpp",
+    "bionic/__libc_current_sigrtmax.cpp",
+    "bionic/__libc_current_sigrtmin.cpp",
+    "bionic/abort.cpp",
+    "bionic/accept.cpp",
+    "bionic/access.cpp",
+    "bionic/arpa_inet.cpp",
+    "bionic/assert.cpp",
+    "bionic/atof.cpp",
+    "bionic/bind.cpp",
+    "bionic/bionic_allocator.cpp",
+    "bionic/bionic_appcompat.cpp",
+    "bionic/bionic_arc4random.cpp",
+    "bionic/bionic_futex.cpp",
+    "bionic/bionic_netlink.cpp",
+    "bionic/bionic_time_conversions.cpp",
+    "bionic/brk.cpp",
+    "bionic/c16rtomb.cpp",
+    "bionic/c32rtomb.cpp",
+    "bionic/chmod.cpp",
+    "bionic/chown.cpp",
+    "bionic/clearenv.cpp",
+    "bionic/clock.cpp",
+    "bionic/clock_getcpuclockid.cpp",
+    "bionic/clock_nanosleep.cpp",
+    "bionic/clone.cpp",
+
+    # "bionic/ctype.cpp",
+    "bionic/dirent.cpp",
+    "bionic/dup.cpp",
+    "bionic/environ.cpp",
+    "bionic/error.cpp",
+    "bionic/eventfd.cpp",
+    "bionic/exec.cpp",
+    "bionic/faccessat.cpp",
+    "bionic/fchmod.cpp",
+    "bionic/fchmodat.cpp",
+    "bionic/fcntl.cpp",
+    "bionic/fdsan.cpp",
+    "bionic/fdtrack.cpp",
+    "bionic/ffs.cpp",
+    "bionic/fgetxattr.cpp",
+    "bionic/flistxattr.cpp",
+    "bionic/flockfile.cpp",
+    "bionic/fpclassify.cpp",
+    "bionic/fsetxattr.cpp",
+    "bionic/ftruncate.cpp",
+    "bionic/ftw.cpp",
+    "bionic/futimens.cpp",
+    "bionic/get_device_api_level.cpp",
+    "bionic/getcwd.cpp",
+    "bionic/getdomainname.cpp",
+    "bionic/getentropy.cpp",
+    "bionic/gethostname.cpp",
+    "bionic/getloadavg.cpp",
+    "bionic/getpagesize.cpp",
+    "bionic/getpgrp.cpp",
+    "bionic/getpid.cpp",
+    "bionic/getpriority.cpp",
+    "bionic/gettid.cpp",
+
+    # "bionic/grp_pwd.cpp",
+    "bionic/grp_pwd_file.cpp",
+    "bionic/iconv.cpp",
+    "bionic/icu_wrappers.cpp",
+    "bionic/ifaddrs.cpp",
+    "bionic/inotify_init.cpp",
+    "bionic/ioctl.cpp",
+    "bionic/killpg.cpp",
+    "bionic/langinfo.cpp",
+    "bionic/lchown.cpp",
+    "bionic/lfs64_support.cpp",
+    "bionic/libc_init_common.cpp",
+    "bionic/libgen.cpp",
+    "bionic/link.cpp",
+    "bionic/locale.cpp",
+    "bionic/lockf.cpp",
+    "bionic/lstat.cpp",
+    "bionic/mblen.cpp",
+    "bionic/mbrtoc16.cpp",
+    "bionic/mbrtoc32.cpp",
+    "bionic/memory_mitigation_state.cpp",
+    "bionic/mempcpy.cpp",
+    "bionic/mkdir.cpp",
+    "bionic/mkfifo.cpp",
+    "bionic/mknod.cpp",
+    "bionic/mntent.cpp",
+    "bionic/mremap.cpp",
+    "bionic/net_if.cpp",
+    "bionic/netdb.cpp",
+    "bionic/netinet_in.cpp",
+    "bionic/nl_types.cpp",
+    "bionic/open.cpp",
+    "bionic/pathconf.cpp",
+    "bionic/pause.cpp",
+    "bionic/pipe.cpp",
+    "bionic/poll.cpp",
+    "bionic/posix_fadvise.cpp",
+    "bionic/posix_fallocate.cpp",
+    "bionic/posix_madvise.cpp",
+    "bionic/posix_timers.cpp",
+    "bionic/ptrace.cpp",
+    "bionic/pty.cpp",
+    "bionic/raise.cpp",
+    "bionic/rand.cpp",
+    "bionic/readlink.cpp",
+    "bionic/realpath.cpp",
+    "bionic/reboot.cpp",
+    "bionic/recv.cpp",
+    "bionic/recvmsg.cpp",
+    "bionic/rename.cpp",
+    "bionic/rmdir.cpp",
+    "bionic/scandir.cpp",
+    "bionic/sched_getaffinity.cpp",
+    "bionic/sched_getcpu.cpp",
+    "bionic/semaphore.cpp",
+    "bionic/send.cpp",
+    "bionic/setegid.cpp",
+    "bionic/seteuid.cpp",
+    "bionic/setpgrp.cpp",
+    "bionic/sigaction.cpp",
+    "bionic/signal.cpp",
+    "bionic/sigprocmask.cpp",
+    "bionic/sleep.cpp",
+    "bionic/socketpair.cpp",
+    "bionic/spawn.cpp",
+    "bionic/stat.cpp",
+    "bionic/stdlib_l.cpp",
+    "bionic/strerror.cpp",
+    "bionic/string_l.cpp",
+    "bionic/strings_l.cpp",
+    "bionic/strsignal.cpp",
+    "bionic/strtol.cpp",
+    "bionic/strtold.cpp",
+    "bionic/swab.cpp",
+    "bionic/symlink.cpp",
+    "bionic/sync_file_range.cpp",
+    "bionic/sys_epoll.cpp",
+    "bionic/sys_msg.cpp",
+    "bionic/sys_sem.cpp",
+    "bionic/sys_shm.cpp",
+    "bionic/sys_signalfd.cpp",
+    "bionic/sys_statfs.cpp",
+    "bionic/sys_statvfs.cpp",
+    "bionic/sys_time.cpp",
+    "bionic/sysinfo.cpp",
+    "bionic/syslog.cpp",
+    "bionic/system.cpp",
+
+    # "bionic/system_property_api.cpp",
+    # "bionic/system_property_set.cpp",
+    "bionic/tdestroy.cpp",
+    "bionic/termios.cpp",
+    "bionic/thread_private.cpp",
+    "bionic/threads.cpp",
+    "bionic/timespec_get.cpp",
+    "bionic/tmpfile.cpp",
+    "bionic/umount.cpp",
+    "bionic/unlink.cpp",
+    "bionic/usleep.cpp",
+    "bionic/utmp.cpp",
+    "bionic/wait.cpp",
+    "bionic/wchar.cpp",
+    "bionic/wchar_l.cpp",
+    "bionic/wcstod.cpp",
+    "bionic/wctype.cpp",
+    "bionic/wcwidth.cpp",
+    "bionic/wmempcpy.cpp",
+
+    # This contains a weak stub implementation of __find_icu_symbol for wctype.cpp,
+    # which will be overridden by the actual one in libc.so.
+    "bionic/icu_static.cpp",
+  ]
+
+  include_dirs = [ "stdio" ]
+
+  configs += [ ":bionic_config_private" ]
+}
+
+# Skipped libc_pthread
+# Skipped libc_syscalls
+
+source_set("libc") {
+  visibility += [ "//src/proc/lib/bionic" ]
+
+  sources = libc_common_src_files
+
+  deps = [
+    ":libc_bionic",
+    ":libc_bionic_ndk",
+    ":libc_dns",
+    ":libc_freebsd",
+    ":libc_freebsd_large_stack",
+    ":libc_gdtoa",
+    ":libc_netbsd",
+    ":libc_openbsd",
+    ":libc_openbsd_large_stack",
+    ":libc_openbsd_ndk",
+    ":libc_tzcode",
+  ]
+
+  configs += [ ":bionic_config_private" ]
+}
diff --git a/libc/include/android/log.h b/libc/include/android/log.h
new file mode 100644
index 0000000..8a0ebf2
--- /dev/null
+++ b/libc/include/android/log.h
@@ -0,0 +1,380 @@
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#pragma once
+
+/**
+ * @addtogroup Logging
+ * @{
+ */
+
+/**
+ * \file
+ *
+ * Support routines to send messages to the Android log buffer,
+ * which can later be accessed through the `logcat` utility.
+ *
+ * Each log message must have
+ *   - a priority
+ *   - a log tag
+ *   - some text
+ *
+ * The tag normally corresponds to the component that emits the log message,
+ * and should be reasonably small.
+ *
+ * Log message text may be truncated to less than an implementation-specific
+ * limit (1023 bytes).
+ *
+ * Note that a newline character ("\n") will be appended automatically to your
+ * log message, if not already there. It is not possible to send several
+ * messages and have them appear on a single line in logcat.
+ *
+ * Please use logging in moderation:
+ *
+ *  - Sending log messages eats CPU and slow down your application and the
+ *    system.
+ *
+ *  - The circular log buffer is pretty small, so sending many messages
+ *    will hide other important log messages.
+ *
+ *  - In release builds, only send log messages to account for exceptional
+ *    conditions.
+ */
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <sys/cdefs.h>
+
+#if !defined(__BIONIC__) && !defined(__INTRODUCED_IN)
+#define __INTRODUCED_IN(x)
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Android log priority values, in increasing order of priority.
+ */
+typedef enum android_LogPriority {
+  /** For internal use only.  */
+  ANDROID_LOG_UNKNOWN = 0,
+  /** The default priority, for internal use only.  */
+  ANDROID_LOG_DEFAULT, /* only for SetMinPriority() */
+  /** Verbose logging. Should typically be disabled for a release apk. */
+  ANDROID_LOG_VERBOSE,
+  /** Debug logging. Should typically be disabled for a release apk. */
+  ANDROID_LOG_DEBUG,
+  /** Informational logging. Should typically be disabled for a release apk. */
+  ANDROID_LOG_INFO,
+  /** Warning logging. For use with recoverable failures. */
+  ANDROID_LOG_WARN,
+  /** Error logging. For use with unrecoverable failures. */
+  ANDROID_LOG_ERROR,
+  /** Fatal logging. For use when aborting. */
+  ANDROID_LOG_FATAL,
+  /** For internal use only.  */
+  ANDROID_LOG_SILENT, /* only for SetMinPriority(); must be last */
+} android_LogPriority;
+
+/**
+ * Writes the constant string `text` to the log, with priority `prio` and tag
+ * `tag`.
+ */
+int __android_log_write(int prio, const char* tag, const char* text);
+
+/**
+ * Writes a formatted string to the log, with priority `prio` and tag `tag`.
+ * The details of formatting are the same as for
+ * [printf(3)](http://man7.org/linux/man-pages/man3/printf.3.html).
+ */
+int __android_log_print(int prio, const char* tag, const char* fmt, ...)
+    __attribute__((__format__(printf, 3, 4)));
+
+/**
+ * Equivalent to `__android_log_print`, but taking a `va_list`.
+ * (If `__android_log_print` is like `printf`, this is like `vprintf`.)
+ */
+int __android_log_vprint(int prio, const char* tag, const char* fmt, va_list ap)
+    __attribute__((__format__(printf, 3, 0)));
+
+/**
+ * Writes an assertion failure to the log (as `ANDROID_LOG_FATAL`) and to
+ * stderr, before calling
+ * [abort(3)](http://man7.org/linux/man-pages/man3/abort.3.html).
+ *
+ * If `fmt` is non-null, `cond` is unused. If `fmt` is null, the string
+ * `Assertion failed: %s` is used with `cond` as the string argument.
+ * If both `fmt` and `cond` are null, a default string is provided.
+ *
+ * Most callers should use
+ * [assert(3)](http://man7.org/linux/man-pages/man3/assert.3.html) from
+ * `&lt;assert.h&gt;` instead, or the `__assert` and `__assert2` functions
+ * provided by bionic if more control is needed. They support automatically
+ * including the source filename and line number more conveniently than this
+ * function.
+ */
+void __android_log_assert(const char* cond, const char* tag, const char* fmt, ...)
+    __attribute__((__noreturn__)) __attribute__((__format__(printf, 3, 4)));
+
+/**
+ * Identifies a specific log buffer for __android_log_buf_write()
+ * and __android_log_buf_print().
+ */
+typedef enum log_id {
+  LOG_ID_MIN = 0,
+
+  /** The main log buffer. This is the only log buffer available to apps. */
+  LOG_ID_MAIN = 0,
+  /** The radio log buffer. */
+  LOG_ID_RADIO = 1,
+  /** The event log buffer. */
+  LOG_ID_EVENTS = 2,
+  /** The system log buffer. */
+  LOG_ID_SYSTEM = 3,
+  /** The crash log buffer. */
+  LOG_ID_CRASH = 4,
+  /** The statistics log buffer. */
+  LOG_ID_STATS = 5,
+  /** The security log buffer. */
+  LOG_ID_SECURITY = 6,
+  /** The kernel log buffer. */
+  LOG_ID_KERNEL = 7,
+
+  LOG_ID_MAX,
+
+  /** Let the logging function choose the best log target. */
+  LOG_ID_DEFAULT = 0x7FFFFFFF
+} log_id_t;
+
+/**
+ * Writes the constant string `text` to the log buffer `id`,
+ * with priority `prio` and tag `tag`.
+ *
+ * Apps should use __android_log_write() instead.
+ */
+int __android_log_buf_write(int bufID, int prio, const char* tag, const char* text);
+
+/**
+ * Writes a formatted string to log buffer `id`,
+ * with priority `prio` and tag `tag`.
+ * The details of formatting are the same as for
+ * [printf(3)](http://man7.org/linux/man-pages/man3/printf.3.html).
+ *
+ * Apps should use __android_log_print() instead.
+ */
+int __android_log_buf_print(int bufID, int prio, const char* tag, const char* fmt, ...)
+    __attribute__((__format__(printf, 4, 5)));
+
+/**
+ * Logger data struct used for writing log messages to liblog via __android_log_write_logger_data()
+ * and sending log messages to user defined loggers specified in __android_log_set_logger().
+ */
+struct __android_log_message {
+  /** Must be set to sizeof(__android_log_message) and is used for versioning. */
+  size_t struct_size;
+
+  /** {@link log_id_t} values. */
+  int32_t buffer_id;
+
+  /** {@link android_LogPriority} values. */
+  int32_t priority;
+
+  /** The tag for the log message. */
+  const char* tag;
+
+  /** Optional file name, may be set to nullptr. */
+  const char* file;
+
+  /** Optional line number, ignore if file is nullptr. */
+  uint32_t line;
+
+  /** The log message itself. */
+  const char* message;
+};
+
+/**
+ * Prototype for the 'logger' function that is called for every log message.
+ */
+typedef void (*__android_logger_function)(const struct __android_log_message* log_message);
+/**
+ * Prototype for the 'abort' function that is called when liblog will abort due to
+ * __android_log_assert() failures.
+ */
+typedef void (*__android_aborter_function)(const char* abort_message);
+
+#if !defined(__ANDROID__) || __ANDROID_API__ >= 30
+/**
+ * Writes the log message specified by log_message.  log_message includes additional file name and
+ * line number information that a logger may use.  log_message is versioned for backwards
+ * compatibility.
+ * This assumes that loggability has already been checked through __android_log_is_loggable().
+ * Higher level logging libraries, such as libbase, first check loggability, then format their
+ * buffers, then pass the message to liblog via this function, and therefore we do not want to
+ * duplicate the loggability check here.
+ *
+ * @param log_message the log message itself, see __android_log_message.
+ *
+ * Available since API level 30.
+ */
+void __android_log_write_log_message(struct __android_log_message* log_message) __INTRODUCED_IN(30);
+
+/**
+ * Sets a user defined logger function.  All log messages sent to liblog will be set to the
+ * function pointer specified by logger for processing.  It is not expected that log messages are
+ * already terminated with a new line.  This function should add new lines if required for line
+ * separation.
+ *
+ * @param logger the new function that will handle log messages.
+ *
+ * Available since API level 30.
+ */
+void __android_log_set_logger(__android_logger_function logger) __INTRODUCED_IN(30);
+
+/**
+ * Writes the log message to logd.  This is an __android_logger_function and can be provided to
+ * __android_log_set_logger().  It is the default logger when running liblog on a device.
+ *
+ * @param log_message the log message to write, see __android_log_message.
+ *
+ * Available since API level 30.
+ */
+void __android_log_logd_logger(const struct __android_log_message* log_message) __INTRODUCED_IN(30);
+
+/**
+ * Writes the log message to stderr.  This is an __android_logger_function and can be provided to
+ * __android_log_set_logger().  It is the default logger when running liblog on host.
+ *
+ * @param log_message the log message to write, see __android_log_message.
+ *
+ * Available since API level 30.
+ */
+void __android_log_stderr_logger(const struct __android_log_message* log_message)
+    __INTRODUCED_IN(30);
+
+/**
+ * Sets a user defined aborter function that is called for __android_log_assert() failures.  This
+ * user defined aborter function is highly recommended to abort and be noreturn, but is not strictly
+ * required to.
+ *
+ * @param aborter the new aborter function, see __android_aborter_function.
+ *
+ * Available since API level 30.
+ */
+void __android_log_set_aborter(__android_aborter_function aborter) __INTRODUCED_IN(30);
+
+/**
+ * Calls the stored aborter function.  This allows for other logging libraries to use the same
+ * aborter function by calling this function in liblog.
+ *
+ * @param abort_message an additional message supplied when aborting, for example this is used to
+ *                      call android_set_abort_message() in __android_log_default_aborter().
+ *
+ * Available since API level 30.
+ */
+void __android_log_call_aborter(const char* abort_message) __INTRODUCED_IN(30);
+
+/**
+ * Sets android_set_abort_message() on device then aborts().  This is the default aborter.
+ *
+ * @param abort_message an additional message supplied when aborting.  This functions calls
+ *                      android_set_abort_message() with its contents.
+ *
+ * Available since API level 30.
+ */
+void __android_log_default_aborter(const char* abort_message) __attribute__((noreturn))
+__INTRODUCED_IN(30);
+
+/**
+ * Use the per-tag properties "log.tag.<tagname>" along with the minimum priority from
+ * __android_log_set_minimum_priority() to determine if a log message with a given prio and tag will
+ * be printed.  A non-zero result indicates yes, zero indicates false.
+ *
+ * If both a priority for a tag and a minimum priority are set by
+ * __android_log_set_minimum_priority(), then the lowest of the two values are to determine the
+ * minimum priority needed to log.  If only one is set, then that value is used to determine the
+ * minimum priority needed.  If none are set, then default_priority is used.
+ *
+ * @param prio         the priority to test, takes android_LogPriority values.
+ * @param tag          the tag to test.
+ * @param default_prio the default priority to use if no properties or minimum priority are set.
+ * @return an integer where 1 indicates that the message is loggable and 0 indicates that it is not.
+ *
+ * Available since API level 30.
+ */
+int __android_log_is_loggable(int prio, const char* tag, int default_prio) __INTRODUCED_IN(30);
+
+/**
+ * Use the per-tag properties "log.tag.<tagname>" along with the minimum priority from
+ * __android_log_set_minimum_priority() to determine if a log message with a given prio and tag will
+ * be printed.  A non-zero result indicates yes, zero indicates false.
+ *
+ * If both a priority for a tag and a minimum priority are set by
+ * __android_log_set_minimum_priority(), then the lowest of the two values are to determine the
+ * minimum priority needed to log.  If only one is set, then that value is used to determine the
+ * minimum priority needed.  If none are set, then default_priority is used.
+ *
+ * @param prio         the priority to test, takes android_LogPriority values.
+ * @param tag          the tag to test.
+ * @param len          the length of the tag.
+ * @param default_prio the default priority to use if no properties or minimum priority are set.
+ * @return an integer where 1 indicates that the message is loggable and 0 indicates that it is not.
+ *
+ * Available since API level 30.
+ */
+int __android_log_is_loggable_len(int prio, const char* tag, size_t len, int default_prio)
+    __INTRODUCED_IN(30);
+
+/**
+ * Sets the minimum priority that will be logged for this process.
+ *
+ * @param priority the new minimum priority to set, takes android_LogPriority values.
+ * @return the previous set minimum priority as android_LogPriority values, or
+ *         ANDROID_LOG_DEFAULT if none was set.
+ *
+ * Available since API level 30.
+ */
+int32_t __android_log_set_minimum_priority(int32_t priority) __INTRODUCED_IN(30);
+
+/**
+ * Gets the minimum priority that will be logged for this process.  If none has been set by a
+ * previous __android_log_set_minimum_priority() call, this returns ANDROID_LOG_DEFAULT.
+ *
+ * @return the current minimum priority as android_LogPriority values, or
+ *         ANDROID_LOG_DEFAULT if none is set.
+ *
+ * Available since API level 30.
+ */
+int32_t __android_log_get_minimum_priority(void) __INTRODUCED_IN(30);
+
+/**
+ * Sets the default tag if no tag is provided when writing a log message.  Defaults to
+ * getprogname().  This truncates tag to the maximum log message size, though appropriate tags
+ * should be much smaller.
+ *
+ * @param tag the new log tag.
+ *
+ * Available since API level 30.
+ */
+void __android_log_set_default_tag(const char* tag) __INTRODUCED_IN(30);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @} */
diff --git a/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h b/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h
deleted file mode 100644
index a5aa6bc..0000000
--- a/libc/kernel/uapi/linux/netfilter/ipset/ip_set.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_IP_SET_H
-#define _UAPI_IP_SET_H
-#include <linux/types.h>
-#define IPSET_PROTOCOL 7
-#define IPSET_PROTOCOL_MIN 6
-#define IPSET_MAXNAMELEN 32
-#define IPSET_MAX_COMMENT_SIZE 255
-enum ipset_cmd {
-  IPSET_CMD_NONE,
-  IPSET_CMD_PROTOCOL,
-  IPSET_CMD_CREATE,
-  IPSET_CMD_DESTROY,
-  IPSET_CMD_FLUSH,
-  IPSET_CMD_RENAME,
-  IPSET_CMD_SWAP,
-  IPSET_CMD_LIST,
-  IPSET_CMD_SAVE,
-  IPSET_CMD_ADD,
-  IPSET_CMD_DEL,
-  IPSET_CMD_TEST,
-  IPSET_CMD_HEADER,
-  IPSET_CMD_TYPE,
-  IPSET_CMD_GET_BYNAME,
-  IPSET_CMD_GET_BYINDEX,
-  IPSET_MSG_MAX,
-  IPSET_CMD_RESTORE = IPSET_MSG_MAX,
-  IPSET_CMD_HELP,
-  IPSET_CMD_VERSION,
-  IPSET_CMD_QUIT,
-  IPSET_CMD_MAX,
-  IPSET_CMD_COMMIT = IPSET_CMD_MAX,
-};
-enum {
-  IPSET_ATTR_UNSPEC,
-  IPSET_ATTR_PROTOCOL,
-  IPSET_ATTR_SETNAME,
-  IPSET_ATTR_TYPENAME,
-  IPSET_ATTR_SETNAME2 = IPSET_ATTR_TYPENAME,
-  IPSET_ATTR_REVISION,
-  IPSET_ATTR_FAMILY,
-  IPSET_ATTR_FLAGS,
-  IPSET_ATTR_DATA,
-  IPSET_ATTR_ADT,
-  IPSET_ATTR_LINENO,
-  IPSET_ATTR_PROTOCOL_MIN,
-  IPSET_ATTR_REVISION_MIN = IPSET_ATTR_PROTOCOL_MIN,
-  IPSET_ATTR_INDEX,
-  __IPSET_ATTR_CMD_MAX,
-};
-#define IPSET_ATTR_CMD_MAX (__IPSET_ATTR_CMD_MAX - 1)
-enum {
-  IPSET_ATTR_IP = IPSET_ATTR_UNSPEC + 1,
-  IPSET_ATTR_IP_FROM = IPSET_ATTR_IP,
-  IPSET_ATTR_IP_TO,
-  IPSET_ATTR_CIDR,
-  IPSET_ATTR_PORT,
-  IPSET_ATTR_PORT_FROM = IPSET_ATTR_PORT,
-  IPSET_ATTR_PORT_TO,
-  IPSET_ATTR_TIMEOUT,
-  IPSET_ATTR_PROTO,
-  IPSET_ATTR_CADT_FLAGS,
-  IPSET_ATTR_CADT_LINENO = IPSET_ATTR_LINENO,
-  IPSET_ATTR_MARK,
-  IPSET_ATTR_MARKMASK,
-  IPSET_ATTR_BITMASK,
-  IPSET_ATTR_CADT_MAX = 16,
-  IPSET_ATTR_INITVAL,
-  IPSET_ATTR_HASHSIZE,
-  IPSET_ATTR_MAXELEM,
-  IPSET_ATTR_NETMASK,
-  IPSET_ATTR_BUCKETSIZE,
-  IPSET_ATTR_RESIZE,
-  IPSET_ATTR_SIZE,
-  IPSET_ATTR_ELEMENTS,
-  IPSET_ATTR_REFERENCES,
-  IPSET_ATTR_MEMSIZE,
-  __IPSET_ATTR_CREATE_MAX,
-};
-#define IPSET_ATTR_CREATE_MAX (__IPSET_ATTR_CREATE_MAX - 1)
-enum {
-  IPSET_ATTR_ETHER = IPSET_ATTR_CADT_MAX + 1,
-  IPSET_ATTR_NAME,
-  IPSET_ATTR_NAMEREF,
-  IPSET_ATTR_IP2,
-  IPSET_ATTR_CIDR2,
-  IPSET_ATTR_IP2_TO,
-  IPSET_ATTR_IFACE,
-  IPSET_ATTR_BYTES,
-  IPSET_ATTR_PACKETS,
-  IPSET_ATTR_COMMENT,
-  IPSET_ATTR_SKBMARK,
-  IPSET_ATTR_SKBPRIO,
-  IPSET_ATTR_SKBQUEUE,
-  IPSET_ATTR_PAD,
-  __IPSET_ATTR_ADT_MAX,
-};
-#define IPSET_ATTR_ADT_MAX (__IPSET_ATTR_ADT_MAX - 1)
-enum {
-  IPSET_ATTR_IPADDR_IPV4 = IPSET_ATTR_UNSPEC + 1,
-  IPSET_ATTR_IPADDR_IPV6,
-  __IPSET_ATTR_IPADDR_MAX,
-};
-#define IPSET_ATTR_IPADDR_MAX (__IPSET_ATTR_IPADDR_MAX - 1)
-enum ipset_errno {
-  IPSET_ERR_PRIVATE = 4096,
-  IPSET_ERR_PROTOCOL,
-  IPSET_ERR_FIND_TYPE,
-  IPSET_ERR_MAX_SETS,
-  IPSET_ERR_BUSY,
-  IPSET_ERR_EXIST_SETNAME2,
-  IPSET_ERR_TYPE_MISMATCH,
-  IPSET_ERR_EXIST,
-  IPSET_ERR_INVALID_CIDR,
-  IPSET_ERR_INVALID_NETMASK,
-  IPSET_ERR_INVALID_FAMILY,
-  IPSET_ERR_TIMEOUT,
-  IPSET_ERR_REFERENCED,
-  IPSET_ERR_IPADDR_IPV4,
-  IPSET_ERR_IPADDR_IPV6,
-  IPSET_ERR_COUNTER,
-  IPSET_ERR_COMMENT,
-  IPSET_ERR_INVALID_MARKMASK,
-  IPSET_ERR_SKBINFO,
-  IPSET_ERR_BITMASK_NETMASK_EXCL,
-  IPSET_ERR_TYPE_SPECIFIC = 4352,
-};
-enum ipset_cmd_flags {
-  IPSET_FLAG_BIT_EXIST = 0,
-  IPSET_FLAG_EXIST = (1 << IPSET_FLAG_BIT_EXIST),
-  IPSET_FLAG_BIT_LIST_SETNAME = 1,
-  IPSET_FLAG_LIST_SETNAME = (1 << IPSET_FLAG_BIT_LIST_SETNAME),
-  IPSET_FLAG_BIT_LIST_HEADER = 2,
-  IPSET_FLAG_LIST_HEADER = (1 << IPSET_FLAG_BIT_LIST_HEADER),
-  IPSET_FLAG_BIT_SKIP_COUNTER_UPDATE = 3,
-  IPSET_FLAG_SKIP_COUNTER_UPDATE = (1 << IPSET_FLAG_BIT_SKIP_COUNTER_UPDATE),
-  IPSET_FLAG_BIT_SKIP_SUBCOUNTER_UPDATE = 4,
-  IPSET_FLAG_SKIP_SUBCOUNTER_UPDATE = (1 << IPSET_FLAG_BIT_SKIP_SUBCOUNTER_UPDATE),
-  IPSET_FLAG_BIT_MATCH_COUNTERS = 5,
-  IPSET_FLAG_MATCH_COUNTERS = (1 << IPSET_FLAG_BIT_MATCH_COUNTERS),
-  IPSET_FLAG_BIT_RETURN_NOMATCH = 7,
-  IPSET_FLAG_RETURN_NOMATCH = (1 << IPSET_FLAG_BIT_RETURN_NOMATCH),
-  IPSET_FLAG_BIT_MAP_SKBMARK = 8,
-  IPSET_FLAG_MAP_SKBMARK = (1 << IPSET_FLAG_BIT_MAP_SKBMARK),
-  IPSET_FLAG_BIT_MAP_SKBPRIO = 9,
-  IPSET_FLAG_MAP_SKBPRIO = (1 << IPSET_FLAG_BIT_MAP_SKBPRIO),
-  IPSET_FLAG_BIT_MAP_SKBQUEUE = 10,
-  IPSET_FLAG_MAP_SKBQUEUE = (1 << IPSET_FLAG_BIT_MAP_SKBQUEUE),
-  IPSET_FLAG_CMD_MAX = 15,
-};
-enum ipset_cadt_flags {
-  IPSET_FLAG_BIT_BEFORE = 0,
-  IPSET_FLAG_BEFORE = (1 << IPSET_FLAG_BIT_BEFORE),
-  IPSET_FLAG_BIT_PHYSDEV = 1,
-  IPSET_FLAG_PHYSDEV = (1 << IPSET_FLAG_BIT_PHYSDEV),
-  IPSET_FLAG_BIT_NOMATCH = 2,
-  IPSET_FLAG_NOMATCH = (1 << IPSET_FLAG_BIT_NOMATCH),
-  IPSET_FLAG_BIT_WITH_COUNTERS = 3,
-  IPSET_FLAG_WITH_COUNTERS = (1 << IPSET_FLAG_BIT_WITH_COUNTERS),
-  IPSET_FLAG_BIT_WITH_COMMENT = 4,
-  IPSET_FLAG_WITH_COMMENT = (1 << IPSET_FLAG_BIT_WITH_COMMENT),
-  IPSET_FLAG_BIT_WITH_FORCEADD = 5,
-  IPSET_FLAG_WITH_FORCEADD = (1 << IPSET_FLAG_BIT_WITH_FORCEADD),
-  IPSET_FLAG_BIT_WITH_SKBINFO = 6,
-  IPSET_FLAG_WITH_SKBINFO = (1 << IPSET_FLAG_BIT_WITH_SKBINFO),
-  IPSET_FLAG_BIT_IFACE_WILDCARD = 7,
-  IPSET_FLAG_IFACE_WILDCARD = (1 << IPSET_FLAG_BIT_IFACE_WILDCARD),
-  IPSET_FLAG_CADT_MAX = 15,
-};
-enum ipset_create_flags {
-  IPSET_CREATE_FLAG_BIT_FORCEADD = 0,
-  IPSET_CREATE_FLAG_FORCEADD = (1 << IPSET_CREATE_FLAG_BIT_FORCEADD),
-  IPSET_CREATE_FLAG_BIT_BUCKETSIZE = 1,
-  IPSET_CREATE_FLAG_BUCKETSIZE = (1 << IPSET_CREATE_FLAG_BIT_BUCKETSIZE),
-  IPSET_CREATE_FLAG_BIT_MAX = 7,
-};
-enum ipset_adt {
-  IPSET_ADD,
-  IPSET_DEL,
-  IPSET_TEST,
-  IPSET_ADT_MAX,
-  IPSET_CREATE = IPSET_ADT_MAX,
-  IPSET_CADT_MAX,
-};
-typedef __u16 ip_set_id_t;
-#define IPSET_INVALID_ID 65535
-enum ip_set_dim {
-  IPSET_DIM_ZERO = 0,
-  IPSET_DIM_ONE,
-  IPSET_DIM_TWO,
-  IPSET_DIM_THREE,
-  IPSET_DIM_MAX = 6,
-  IPSET_BIT_RETURN_NOMATCH = 7,
-};
-enum ip_set_kopt {
-  IPSET_INV_MATCH = (1 << IPSET_DIM_ZERO),
-  IPSET_DIM_ONE_SRC = (1 << IPSET_DIM_ONE),
-  IPSET_DIM_TWO_SRC = (1 << IPSET_DIM_TWO),
-  IPSET_DIM_THREE_SRC = (1 << IPSET_DIM_THREE),
-  IPSET_RETURN_NOMATCH = (1 << IPSET_BIT_RETURN_NOMATCH),
-};
-enum {
-  IPSET_COUNTER_NONE = 0,
-  IPSET_COUNTER_EQ,
-  IPSET_COUNTER_NE,
-  IPSET_COUNTER_LT,
-  IPSET_COUNTER_GT,
-};
-struct ip_set_counter_match0 {
-  __u8 op;
-  __u64 value;
-};
-struct ip_set_counter_match {
-  __aligned_u64 value;
-  __u8 op;
-};
-#define SO_IP_SET 83
-union ip_set_name_index {
-  char name[IPSET_MAXNAMELEN];
-  ip_set_id_t index;
-};
-#define IP_SET_OP_GET_BYNAME 0x00000006
-struct ip_set_req_get_set {
-  unsigned int op;
-  unsigned int version;
-  union ip_set_name_index set;
-};
-#define IP_SET_OP_GET_BYINDEX 0x00000007
-#define IP_SET_OP_GET_FNAME 0x00000008
-struct ip_set_req_get_set_family {
-  unsigned int op;
-  unsigned int version;
-  unsigned int family;
-  union ip_set_name_index set;
-};
-#define IP_SET_OP_VERSION 0x00000100
-struct ip_set_req_version {
-  unsigned int op;
-  unsigned int version;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_bitmap.h b/libc/kernel/uapi/linux/netfilter/ipset/ip_set_bitmap.h
deleted file mode 100644
index e323396..0000000
--- a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_bitmap.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI__IP_SET_BITMAP_H
-#define _UAPI__IP_SET_BITMAP_H
-#include <linux/netfilter/ipset/ip_set.h>
-enum {
-  IPSET_ERR_BITMAP_RANGE = IPSET_ERR_TYPE_SPECIFIC,
-  IPSET_ERR_BITMAP_RANGE_SIZE,
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_hash.h b/libc/kernel/uapi/linux/netfilter/ipset/ip_set_hash.h
deleted file mode 100644
index d4aadcb..0000000
--- a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_hash.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI__IP_SET_HASH_H
-#define _UAPI__IP_SET_HASH_H
-#include <linux/netfilter/ipset/ip_set.h>
-enum {
-  IPSET_ERR_HASH_FULL = IPSET_ERR_TYPE_SPECIFIC,
-  IPSET_ERR_HASH_ELEM,
-  IPSET_ERR_INVALID_PROTO,
-  IPSET_ERR_MISSING_PROTO,
-  IPSET_ERR_HASH_RANGE_UNSUPPORTED,
-  IPSET_ERR_HASH_RANGE,
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_list.h b/libc/kernel/uapi/linux/netfilter/ipset/ip_set_list.h
deleted file mode 100644
index d3b5165..0000000
--- a/libc/kernel/uapi/linux/netfilter/ipset/ip_set_list.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI__IP_SET_LIST_H
-#define _UAPI__IP_SET_LIST_H
-#include <linux/netfilter/ipset/ip_set.h>
-enum {
-  IPSET_ERR_NAME = IPSET_ERR_TYPE_SPECIFIC,
-  IPSET_ERR_LOOP,
-  IPSET_ERR_BEFORE,
-  IPSET_ERR_NAMEREF,
-  IPSET_ERR_LIST_FULL,
-  IPSET_ERR_REF_EXIST,
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h
deleted file mode 100644
index 3ff6030..0000000
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_common.h
+++ /dev/null
@@ -1,94 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_NF_CONNTRACK_COMMON_H
-#define _UAPI_NF_CONNTRACK_COMMON_H
-enum ip_conntrack_info {
-  IP_CT_ESTABLISHED,
-  IP_CT_RELATED,
-  IP_CT_NEW,
-  IP_CT_IS_REPLY,
-  IP_CT_ESTABLISHED_REPLY = IP_CT_ESTABLISHED + IP_CT_IS_REPLY,
-  IP_CT_RELATED_REPLY = IP_CT_RELATED + IP_CT_IS_REPLY,
-  IP_CT_NUMBER,
-  IP_CT_NEW_REPLY = IP_CT_NUMBER,
-};
-#define NF_CT_STATE_INVALID_BIT (1 << 0)
-#define NF_CT_STATE_BIT(ctinfo) (1 << ((ctinfo) % IP_CT_IS_REPLY + 1))
-#define NF_CT_STATE_UNTRACKED_BIT (1 << 6)
-enum ip_conntrack_status {
-  IPS_EXPECTED_BIT = 0,
-  IPS_EXPECTED = (1 << IPS_EXPECTED_BIT),
-  IPS_SEEN_REPLY_BIT = 1,
-  IPS_SEEN_REPLY = (1 << IPS_SEEN_REPLY_BIT),
-  IPS_ASSURED_BIT = 2,
-  IPS_ASSURED = (1 << IPS_ASSURED_BIT),
-  IPS_CONFIRMED_BIT = 3,
-  IPS_CONFIRMED = (1 << IPS_CONFIRMED_BIT),
-  IPS_SRC_NAT_BIT = 4,
-  IPS_SRC_NAT = (1 << IPS_SRC_NAT_BIT),
-  IPS_DST_NAT_BIT = 5,
-  IPS_DST_NAT = (1 << IPS_DST_NAT_BIT),
-  IPS_NAT_MASK = (IPS_DST_NAT | IPS_SRC_NAT),
-  IPS_SEQ_ADJUST_BIT = 6,
-  IPS_SEQ_ADJUST = (1 << IPS_SEQ_ADJUST_BIT),
-  IPS_SRC_NAT_DONE_BIT = 7,
-  IPS_SRC_NAT_DONE = (1 << IPS_SRC_NAT_DONE_BIT),
-  IPS_DST_NAT_DONE_BIT = 8,
-  IPS_DST_NAT_DONE = (1 << IPS_DST_NAT_DONE_BIT),
-  IPS_NAT_DONE_MASK = (IPS_DST_NAT_DONE | IPS_SRC_NAT_DONE),
-  IPS_DYING_BIT = 9,
-  IPS_DYING = (1 << IPS_DYING_BIT),
-  IPS_FIXED_TIMEOUT_BIT = 10,
-  IPS_FIXED_TIMEOUT = (1 << IPS_FIXED_TIMEOUT_BIT),
-  IPS_TEMPLATE_BIT = 11,
-  IPS_TEMPLATE = (1 << IPS_TEMPLATE_BIT),
-  IPS_UNTRACKED_BIT = 12,
-  IPS_UNTRACKED = (1 << IPS_UNTRACKED_BIT),
-  IPS_HELPER_BIT = 13,
-  IPS_HELPER = (1 << IPS_HELPER_BIT),
-  IPS_OFFLOAD_BIT = 14,
-  IPS_OFFLOAD = (1 << IPS_OFFLOAD_BIT),
-  IPS_HW_OFFLOAD_BIT = 15,
-  IPS_HW_OFFLOAD = (1 << IPS_HW_OFFLOAD_BIT),
-  IPS_UNCHANGEABLE_MASK = (IPS_NAT_DONE_MASK | IPS_NAT_MASK | IPS_EXPECTED | IPS_CONFIRMED | IPS_DYING | IPS_SEQ_ADJUST | IPS_TEMPLATE | IPS_UNTRACKED | IPS_OFFLOAD | IPS_HW_OFFLOAD),
-  __IPS_MAX_BIT = 16,
-};
-enum ip_conntrack_events {
-  IPCT_NEW,
-  IPCT_RELATED,
-  IPCT_DESTROY,
-  IPCT_REPLY,
-  IPCT_ASSURED,
-  IPCT_PROTOINFO,
-  IPCT_HELPER,
-  IPCT_MARK,
-  IPCT_SEQADJ,
-  IPCT_NATSEQADJ = IPCT_SEQADJ,
-  IPCT_SECMARK,
-  IPCT_LABEL,
-  IPCT_SYNPROXY,
-};
-enum ip_conntrack_expect_events {
-  IPEXP_NEW,
-  IPEXP_DESTROY,
-};
-#define NF_CT_EXPECT_PERMANENT 0x1
-#define NF_CT_EXPECT_INACTIVE 0x2
-#define NF_CT_EXPECT_USERSPACE 0x4
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_ftp.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_ftp.h
deleted file mode 100644
index 0c79774..0000000
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_ftp.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_NF_CONNTRACK_FTP_H
-#define _UAPI_NF_CONNTRACK_FTP_H
-enum nf_ct_ftp_type {
-  NF_CT_FTP_PORT,
-  NF_CT_FTP_PASV,
-  NF_CT_FTP_EPRT,
-  NF_CT_FTP_EPSV,
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_sctp.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_sctp.h
deleted file mode 100644
index 060059c..0000000
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_sctp.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_NF_CONNTRACK_SCTP_H
-#define _UAPI_NF_CONNTRACK_SCTP_H
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-enum sctp_conntrack {
-  SCTP_CONNTRACK_NONE,
-  SCTP_CONNTRACK_CLOSED,
-  SCTP_CONNTRACK_COOKIE_WAIT,
-  SCTP_CONNTRACK_COOKIE_ECHOED,
-  SCTP_CONNTRACK_ESTABLISHED,
-  SCTP_CONNTRACK_SHUTDOWN_SENT,
-  SCTP_CONNTRACK_SHUTDOWN_RECD,
-  SCTP_CONNTRACK_SHUTDOWN_ACK_SENT,
-  SCTP_CONNTRACK_HEARTBEAT_SENT,
-  SCTP_CONNTRACK_HEARTBEAT_ACKED,
-  SCTP_CONNTRACK_MAX
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h
deleted file mode 100644
index 8894aa1..0000000
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_tcp.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_NF_CONNTRACK_TCP_H
-#define _UAPI_NF_CONNTRACK_TCP_H
-#include <linux/types.h>
-enum tcp_conntrack {
-  TCP_CONNTRACK_NONE,
-  TCP_CONNTRACK_SYN_SENT,
-  TCP_CONNTRACK_SYN_RECV,
-  TCP_CONNTRACK_ESTABLISHED,
-  TCP_CONNTRACK_FIN_WAIT,
-  TCP_CONNTRACK_CLOSE_WAIT,
-  TCP_CONNTRACK_LAST_ACK,
-  TCP_CONNTRACK_TIME_WAIT,
-  TCP_CONNTRACK_CLOSE,
-  TCP_CONNTRACK_LISTEN,
-#define TCP_CONNTRACK_SYN_SENT2 TCP_CONNTRACK_LISTEN
-  TCP_CONNTRACK_MAX,
-  TCP_CONNTRACK_IGNORE,
-  TCP_CONNTRACK_RETRANS,
-  TCP_CONNTRACK_UNACK,
-  TCP_CONNTRACK_TIMEOUT_MAX
-};
-#define IP_CT_TCP_FLAG_WINDOW_SCALE 0x01
-#define IP_CT_TCP_FLAG_SACK_PERM 0x02
-#define IP_CT_TCP_FLAG_CLOSE_INIT 0x04
-#define IP_CT_TCP_FLAG_BE_LIBERAL 0x08
-#define IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED 0x10
-#define IP_CT_TCP_FLAG_MAXACK_SET 0x20
-#define IP_CT_EXP_CHALLENGE_ACK 0x40
-#define IP_CT_TCP_SIMULTANEOUS_OPEN 0x80
-struct nf_ct_tcp_flags {
-  __u8 flags;
-  __u8 mask;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_conntrack_tuple_common.h b/libc/kernel/uapi/linux/netfilter/nf_conntrack_tuple_common.h
deleted file mode 100644
index b2f795c..0000000
--- a/libc/kernel/uapi/linux/netfilter/nf_conntrack_tuple_common.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NF_CONNTRACK_TUPLE_COMMON_H
-#define _NF_CONNTRACK_TUPLE_COMMON_H
-#include <linux/types.h>
-#include <linux/netfilter.h>
-#include <linux/netfilter/nf_conntrack_common.h>
-enum ip_conntrack_dir {
-  IP_CT_DIR_ORIGINAL,
-  IP_CT_DIR_REPLY,
-  IP_CT_DIR_MAX
-};
-union nf_conntrack_man_proto {
-  __be16 all;
-  struct {
-    __be16 port;
-  } tcp;
-  struct {
-    __be16 port;
-  } udp;
-  struct {
-    __be16 id;
-  } icmp;
-  struct {
-    __be16 port;
-  } dccp;
-  struct {
-    __be16 port;
-  } sctp;
-  struct {
-    __be16 key;
-  } gre;
-};
-#define CTINFO2DIR(ctinfo) ((ctinfo) >= IP_CT_IS_REPLY ? IP_CT_DIR_REPLY : IP_CT_DIR_ORIGINAL)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_log.h b/libc/kernel/uapi/linux/netfilter/nf_log.h
deleted file mode 100644
index f7a729d..0000000
--- a/libc/kernel/uapi/linux/netfilter/nf_log.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NETFILTER_NF_LOG_H
-#define _NETFILTER_NF_LOG_H
-#define NF_LOG_TCPSEQ 0x01
-#define NF_LOG_TCPOPT 0x02
-#define NF_LOG_IPOPT 0x04
-#define NF_LOG_UID 0x08
-#define NF_LOG_NFLOG 0x10
-#define NF_LOG_MACDECODE 0x20
-#define NF_LOG_MASK 0x2f
-#define NF_LOG_PREFIXLEN 128
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_nat.h b/libc/kernel/uapi/linux/netfilter/nf_nat.h
deleted file mode 100644
index 84373ed..0000000
--- a/libc/kernel/uapi/linux/netfilter/nf_nat.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NETFILTER_NF_NAT_H
-#define _NETFILTER_NF_NAT_H
-#include <linux/netfilter.h>
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-#define NF_NAT_RANGE_MAP_IPS (1 << 0)
-#define NF_NAT_RANGE_PROTO_SPECIFIED (1 << 1)
-#define NF_NAT_RANGE_PROTO_RANDOM (1 << 2)
-#define NF_NAT_RANGE_PERSISTENT (1 << 3)
-#define NF_NAT_RANGE_PROTO_RANDOM_FULLY (1 << 4)
-#define NF_NAT_RANGE_PROTO_OFFSET (1 << 5)
-#define NF_NAT_RANGE_NETMAP (1 << 6)
-#define NF_NAT_RANGE_PROTO_RANDOM_ALL (NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PROTO_RANDOM_FULLY)
-#define NF_NAT_RANGE_MASK (NF_NAT_RANGE_MAP_IPS | NF_NAT_RANGE_PROTO_SPECIFIED | NF_NAT_RANGE_PROTO_RANDOM | NF_NAT_RANGE_PERSISTENT | NF_NAT_RANGE_PROTO_RANDOM_FULLY | NF_NAT_RANGE_PROTO_OFFSET | NF_NAT_RANGE_NETMAP)
-struct nf_nat_ipv4_range {
-  unsigned int flags;
-  __be32 min_ip;
-  __be32 max_ip;
-  union nf_conntrack_man_proto min;
-  union nf_conntrack_man_proto max;
-};
-struct nf_nat_ipv4_multi_range_compat {
-  unsigned int rangesize;
-  struct nf_nat_ipv4_range range[1];
-};
-struct nf_nat_range {
-  unsigned int flags;
-  union nf_inet_addr min_addr;
-  union nf_inet_addr max_addr;
-  union nf_conntrack_man_proto min_proto;
-  union nf_conntrack_man_proto max_proto;
-};
-struct nf_nat_range2 {
-  unsigned int flags;
-  union nf_inet_addr min_addr;
-  union nf_inet_addr max_addr;
-  union nf_conntrack_man_proto min_proto;
-  union nf_conntrack_man_proto max_proto;
-  union nf_conntrack_man_proto base_proto;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_synproxy.h b/libc/kernel/uapi/linux/netfilter/nf_synproxy.h
deleted file mode 100644
index 474838e..0000000
--- a/libc/kernel/uapi/linux/netfilter/nf_synproxy.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NF_SYNPROXY_H
-#define _NF_SYNPROXY_H
-#include <linux/types.h>
-#define NF_SYNPROXY_OPT_MSS 0x01
-#define NF_SYNPROXY_OPT_WSCALE 0x02
-#define NF_SYNPROXY_OPT_SACK_PERM 0x04
-#define NF_SYNPROXY_OPT_TIMESTAMP 0x08
-#define NF_SYNPROXY_OPT_ECN 0x10
-#define NF_SYNPROXY_OPT_MASK (NF_SYNPROXY_OPT_MSS | NF_SYNPROXY_OPT_WSCALE | NF_SYNPROXY_OPT_SACK_PERM | NF_SYNPROXY_OPT_TIMESTAMP)
-struct nf_synproxy_info {
-  __u8 options;
-  __u8 wscale;
-  __u16 mss;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_tables.h b/libc/kernel/uapi/linux/netfilter/nf_tables.h
deleted file mode 100644
index ef938f0..0000000
--- a/libc/kernel/uapi/linux/netfilter/nf_tables.h
+++ /dev/null
@@ -1,1082 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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_NF_TABLES_H
-#define _LINUX_NF_TABLES_H
-#define NFT_NAME_MAXLEN 256
-#define NFT_TABLE_MAXNAMELEN NFT_NAME_MAXLEN
-#define NFT_CHAIN_MAXNAMELEN NFT_NAME_MAXLEN
-#define NFT_SET_MAXNAMELEN NFT_NAME_MAXLEN
-#define NFT_OBJ_MAXNAMELEN NFT_NAME_MAXLEN
-#define NFT_USERDATA_MAXLEN 256
-#define NFT_OSF_MAXGENRELEN 16
-enum nft_registers {
-  NFT_REG_VERDICT,
-  NFT_REG_1,
-  NFT_REG_2,
-  NFT_REG_3,
-  NFT_REG_4,
-  __NFT_REG_MAX,
-  NFT_REG32_00 = 8,
-  NFT_REG32_01,
-  NFT_REG32_02,
-  NFT_REG32_03,
-  NFT_REG32_04,
-  NFT_REG32_05,
-  NFT_REG32_06,
-  NFT_REG32_07,
-  NFT_REG32_08,
-  NFT_REG32_09,
-  NFT_REG32_10,
-  NFT_REG32_11,
-  NFT_REG32_12,
-  NFT_REG32_13,
-  NFT_REG32_14,
-  NFT_REG32_15,
-};
-#define NFT_REG_MAX (__NFT_REG_MAX - 1)
-#define NFT_REG_SIZE 16
-#define NFT_REG32_SIZE 4
-#define NFT_REG32_COUNT (NFT_REG32_15 - NFT_REG32_00 + 1)
-enum nft_verdicts {
-  NFT_CONTINUE = - 1,
-  NFT_BREAK = - 2,
-  NFT_JUMP = - 3,
-  NFT_GOTO = - 4,
-  NFT_RETURN = - 5,
-};
-enum nf_tables_msg_types {
-  NFT_MSG_NEWTABLE,
-  NFT_MSG_GETTABLE,
-  NFT_MSG_DELTABLE,
-  NFT_MSG_NEWCHAIN,
-  NFT_MSG_GETCHAIN,
-  NFT_MSG_DELCHAIN,
-  NFT_MSG_NEWRULE,
-  NFT_MSG_GETRULE,
-  NFT_MSG_DELRULE,
-  NFT_MSG_NEWSET,
-  NFT_MSG_GETSET,
-  NFT_MSG_DELSET,
-  NFT_MSG_NEWSETELEM,
-  NFT_MSG_GETSETELEM,
-  NFT_MSG_DELSETELEM,
-  NFT_MSG_NEWGEN,
-  NFT_MSG_GETGEN,
-  NFT_MSG_TRACE,
-  NFT_MSG_NEWOBJ,
-  NFT_MSG_GETOBJ,
-  NFT_MSG_DELOBJ,
-  NFT_MSG_GETOBJ_RESET,
-  NFT_MSG_NEWFLOWTABLE,
-  NFT_MSG_GETFLOWTABLE,
-  NFT_MSG_DELFLOWTABLE,
-  NFT_MSG_GETRULE_RESET,
-  NFT_MSG_DESTROYTABLE,
-  NFT_MSG_DESTROYCHAIN,
-  NFT_MSG_DESTROYRULE,
-  NFT_MSG_DESTROYSET,
-  NFT_MSG_DESTROYSETELEM,
-  NFT_MSG_DESTROYOBJ,
-  NFT_MSG_DESTROYFLOWTABLE,
-  NFT_MSG_GETSETELEM_RESET,
-  NFT_MSG_MAX,
-};
-enum nft_list_attributes {
-  NFTA_LIST_UNSPEC,
-  NFTA_LIST_ELEM,
-  __NFTA_LIST_MAX
-};
-#define NFTA_LIST_MAX (__NFTA_LIST_MAX - 1)
-enum nft_hook_attributes {
-  NFTA_HOOK_UNSPEC,
-  NFTA_HOOK_HOOKNUM,
-  NFTA_HOOK_PRIORITY,
-  NFTA_HOOK_DEV,
-  NFTA_HOOK_DEVS,
-  __NFTA_HOOK_MAX
-};
-#define NFTA_HOOK_MAX (__NFTA_HOOK_MAX - 1)
-enum nft_table_flags {
-  NFT_TABLE_F_DORMANT = 0x1,
-  NFT_TABLE_F_OWNER = 0x2,
-};
-#define NFT_TABLE_F_MASK (NFT_TABLE_F_DORMANT | NFT_TABLE_F_OWNER)
-enum nft_table_attributes {
-  NFTA_TABLE_UNSPEC,
-  NFTA_TABLE_NAME,
-  NFTA_TABLE_FLAGS,
-  NFTA_TABLE_USE,
-  NFTA_TABLE_HANDLE,
-  NFTA_TABLE_PAD,
-  NFTA_TABLE_USERDATA,
-  NFTA_TABLE_OWNER,
-  __NFTA_TABLE_MAX
-};
-#define NFTA_TABLE_MAX (__NFTA_TABLE_MAX - 1)
-enum nft_chain_flags {
-  NFT_CHAIN_BASE = (1 << 0),
-  NFT_CHAIN_HW_OFFLOAD = (1 << 1),
-  NFT_CHAIN_BINDING = (1 << 2),
-};
-#define NFT_CHAIN_FLAGS (NFT_CHAIN_BASE | NFT_CHAIN_HW_OFFLOAD | NFT_CHAIN_BINDING)
-enum nft_chain_attributes {
-  NFTA_CHAIN_UNSPEC,
-  NFTA_CHAIN_TABLE,
-  NFTA_CHAIN_HANDLE,
-  NFTA_CHAIN_NAME,
-  NFTA_CHAIN_HOOK,
-  NFTA_CHAIN_POLICY,
-  NFTA_CHAIN_USE,
-  NFTA_CHAIN_TYPE,
-  NFTA_CHAIN_COUNTERS,
-  NFTA_CHAIN_PAD,
-  NFTA_CHAIN_FLAGS,
-  NFTA_CHAIN_ID,
-  NFTA_CHAIN_USERDATA,
-  __NFTA_CHAIN_MAX
-};
-#define NFTA_CHAIN_MAX (__NFTA_CHAIN_MAX - 1)
-enum nft_rule_attributes {
-  NFTA_RULE_UNSPEC,
-  NFTA_RULE_TABLE,
-  NFTA_RULE_CHAIN,
-  NFTA_RULE_HANDLE,
-  NFTA_RULE_EXPRESSIONS,
-  NFTA_RULE_COMPAT,
-  NFTA_RULE_POSITION,
-  NFTA_RULE_USERDATA,
-  NFTA_RULE_PAD,
-  NFTA_RULE_ID,
-  NFTA_RULE_POSITION_ID,
-  NFTA_RULE_CHAIN_ID,
-  __NFTA_RULE_MAX
-};
-#define NFTA_RULE_MAX (__NFTA_RULE_MAX - 1)
-enum nft_rule_compat_flags {
-  NFT_RULE_COMPAT_F_INV = (1 << 1),
-  NFT_RULE_COMPAT_F_MASK = NFT_RULE_COMPAT_F_INV,
-};
-enum nft_rule_compat_attributes {
-  NFTA_RULE_COMPAT_UNSPEC,
-  NFTA_RULE_COMPAT_PROTO,
-  NFTA_RULE_COMPAT_FLAGS,
-  __NFTA_RULE_COMPAT_MAX
-};
-#define NFTA_RULE_COMPAT_MAX (__NFTA_RULE_COMPAT_MAX - 1)
-enum nft_set_flags {
-  NFT_SET_ANONYMOUS = 0x1,
-  NFT_SET_CONSTANT = 0x2,
-  NFT_SET_INTERVAL = 0x4,
-  NFT_SET_MAP = 0x8,
-  NFT_SET_TIMEOUT = 0x10,
-  NFT_SET_EVAL = 0x20,
-  NFT_SET_OBJECT = 0x40,
-  NFT_SET_CONCAT = 0x80,
-  NFT_SET_EXPR = 0x100,
-};
-enum nft_set_policies {
-  NFT_SET_POL_PERFORMANCE,
-  NFT_SET_POL_MEMORY,
-};
-enum nft_set_desc_attributes {
-  NFTA_SET_DESC_UNSPEC,
-  NFTA_SET_DESC_SIZE,
-  NFTA_SET_DESC_CONCAT,
-  __NFTA_SET_DESC_MAX
-};
-#define NFTA_SET_DESC_MAX (__NFTA_SET_DESC_MAX - 1)
-enum nft_set_field_attributes {
-  NFTA_SET_FIELD_UNSPEC,
-  NFTA_SET_FIELD_LEN,
-  __NFTA_SET_FIELD_MAX
-};
-#define NFTA_SET_FIELD_MAX (__NFTA_SET_FIELD_MAX - 1)
-enum nft_set_attributes {
-  NFTA_SET_UNSPEC,
-  NFTA_SET_TABLE,
-  NFTA_SET_NAME,
-  NFTA_SET_FLAGS,
-  NFTA_SET_KEY_TYPE,
-  NFTA_SET_KEY_LEN,
-  NFTA_SET_DATA_TYPE,
-  NFTA_SET_DATA_LEN,
-  NFTA_SET_POLICY,
-  NFTA_SET_DESC,
-  NFTA_SET_ID,
-  NFTA_SET_TIMEOUT,
-  NFTA_SET_GC_INTERVAL,
-  NFTA_SET_USERDATA,
-  NFTA_SET_PAD,
-  NFTA_SET_OBJ_TYPE,
-  NFTA_SET_HANDLE,
-  NFTA_SET_EXPR,
-  NFTA_SET_EXPRESSIONS,
-  __NFTA_SET_MAX
-};
-#define NFTA_SET_MAX (__NFTA_SET_MAX - 1)
-enum nft_set_elem_flags {
-  NFT_SET_ELEM_INTERVAL_END = 0x1,
-  NFT_SET_ELEM_CATCHALL = 0x2,
-};
-enum nft_set_elem_attributes {
-  NFTA_SET_ELEM_UNSPEC,
-  NFTA_SET_ELEM_KEY,
-  NFTA_SET_ELEM_DATA,
-  NFTA_SET_ELEM_FLAGS,
-  NFTA_SET_ELEM_TIMEOUT,
-  NFTA_SET_ELEM_EXPIRATION,
-  NFTA_SET_ELEM_USERDATA,
-  NFTA_SET_ELEM_EXPR,
-  NFTA_SET_ELEM_PAD,
-  NFTA_SET_ELEM_OBJREF,
-  NFTA_SET_ELEM_KEY_END,
-  NFTA_SET_ELEM_EXPRESSIONS,
-  __NFTA_SET_ELEM_MAX
-};
-#define NFTA_SET_ELEM_MAX (__NFTA_SET_ELEM_MAX - 1)
-enum nft_set_elem_list_attributes {
-  NFTA_SET_ELEM_LIST_UNSPEC,
-  NFTA_SET_ELEM_LIST_TABLE,
-  NFTA_SET_ELEM_LIST_SET,
-  NFTA_SET_ELEM_LIST_ELEMENTS,
-  NFTA_SET_ELEM_LIST_SET_ID,
-  __NFTA_SET_ELEM_LIST_MAX
-};
-#define NFTA_SET_ELEM_LIST_MAX (__NFTA_SET_ELEM_LIST_MAX - 1)
-enum nft_data_types {
-  NFT_DATA_VALUE,
-  NFT_DATA_VERDICT = 0xffffff00U,
-};
-#define NFT_DATA_RESERVED_MASK 0xffffff00U
-enum nft_data_attributes {
-  NFTA_DATA_UNSPEC,
-  NFTA_DATA_VALUE,
-  NFTA_DATA_VERDICT,
-  __NFTA_DATA_MAX
-};
-#define NFTA_DATA_MAX (__NFTA_DATA_MAX - 1)
-#define NFT_DATA_VALUE_MAXLEN 64
-enum nft_verdict_attributes {
-  NFTA_VERDICT_UNSPEC,
-  NFTA_VERDICT_CODE,
-  NFTA_VERDICT_CHAIN,
-  NFTA_VERDICT_CHAIN_ID,
-  __NFTA_VERDICT_MAX
-};
-#define NFTA_VERDICT_MAX (__NFTA_VERDICT_MAX - 1)
-enum nft_expr_attributes {
-  NFTA_EXPR_UNSPEC,
-  NFTA_EXPR_NAME,
-  NFTA_EXPR_DATA,
-  __NFTA_EXPR_MAX
-};
-#define NFTA_EXPR_MAX (__NFTA_EXPR_MAX - 1)
-enum nft_immediate_attributes {
-  NFTA_IMMEDIATE_UNSPEC,
-  NFTA_IMMEDIATE_DREG,
-  NFTA_IMMEDIATE_DATA,
-  __NFTA_IMMEDIATE_MAX
-};
-#define NFTA_IMMEDIATE_MAX (__NFTA_IMMEDIATE_MAX - 1)
-enum nft_bitwise_ops {
-  NFT_BITWISE_BOOL,
-  NFT_BITWISE_LSHIFT,
-  NFT_BITWISE_RSHIFT,
-};
-enum nft_bitwise_attributes {
-  NFTA_BITWISE_UNSPEC,
-  NFTA_BITWISE_SREG,
-  NFTA_BITWISE_DREG,
-  NFTA_BITWISE_LEN,
-  NFTA_BITWISE_MASK,
-  NFTA_BITWISE_XOR,
-  NFTA_BITWISE_OP,
-  NFTA_BITWISE_DATA,
-  __NFTA_BITWISE_MAX
-};
-#define NFTA_BITWISE_MAX (__NFTA_BITWISE_MAX - 1)
-enum nft_byteorder_ops {
-  NFT_BYTEORDER_NTOH,
-  NFT_BYTEORDER_HTON,
-};
-enum nft_byteorder_attributes {
-  NFTA_BYTEORDER_UNSPEC,
-  NFTA_BYTEORDER_SREG,
-  NFTA_BYTEORDER_DREG,
-  NFTA_BYTEORDER_OP,
-  NFTA_BYTEORDER_LEN,
-  NFTA_BYTEORDER_SIZE,
-  __NFTA_BYTEORDER_MAX
-};
-#define NFTA_BYTEORDER_MAX (__NFTA_BYTEORDER_MAX - 1)
-enum nft_cmp_ops {
-  NFT_CMP_EQ,
-  NFT_CMP_NEQ,
-  NFT_CMP_LT,
-  NFT_CMP_LTE,
-  NFT_CMP_GT,
-  NFT_CMP_GTE,
-};
-enum nft_cmp_attributes {
-  NFTA_CMP_UNSPEC,
-  NFTA_CMP_SREG,
-  NFTA_CMP_OP,
-  NFTA_CMP_DATA,
-  __NFTA_CMP_MAX
-};
-#define NFTA_CMP_MAX (__NFTA_CMP_MAX - 1)
-enum nft_range_ops {
-  NFT_RANGE_EQ,
-  NFT_RANGE_NEQ,
-};
-enum nft_range_attributes {
-  NFTA_RANGE_UNSPEC,
-  NFTA_RANGE_SREG,
-  NFTA_RANGE_OP,
-  NFTA_RANGE_FROM_DATA,
-  NFTA_RANGE_TO_DATA,
-  __NFTA_RANGE_MAX
-};
-#define NFTA_RANGE_MAX (__NFTA_RANGE_MAX - 1)
-enum nft_lookup_flags {
-  NFT_LOOKUP_F_INV = (1 << 0),
-};
-enum nft_lookup_attributes {
-  NFTA_LOOKUP_UNSPEC,
-  NFTA_LOOKUP_SET,
-  NFTA_LOOKUP_SREG,
-  NFTA_LOOKUP_DREG,
-  NFTA_LOOKUP_SET_ID,
-  NFTA_LOOKUP_FLAGS,
-  __NFTA_LOOKUP_MAX
-};
-#define NFTA_LOOKUP_MAX (__NFTA_LOOKUP_MAX - 1)
-enum nft_dynset_ops {
-  NFT_DYNSET_OP_ADD,
-  NFT_DYNSET_OP_UPDATE,
-  NFT_DYNSET_OP_DELETE,
-};
-enum nft_dynset_flags {
-  NFT_DYNSET_F_INV = (1 << 0),
-  NFT_DYNSET_F_EXPR = (1 << 1),
-};
-enum nft_dynset_attributes {
-  NFTA_DYNSET_UNSPEC,
-  NFTA_DYNSET_SET_NAME,
-  NFTA_DYNSET_SET_ID,
-  NFTA_DYNSET_OP,
-  NFTA_DYNSET_SREG_KEY,
-  NFTA_DYNSET_SREG_DATA,
-  NFTA_DYNSET_TIMEOUT,
-  NFTA_DYNSET_EXPR,
-  NFTA_DYNSET_PAD,
-  NFTA_DYNSET_FLAGS,
-  NFTA_DYNSET_EXPRESSIONS,
-  __NFTA_DYNSET_MAX,
-};
-#define NFTA_DYNSET_MAX (__NFTA_DYNSET_MAX - 1)
-enum nft_payload_bases {
-  NFT_PAYLOAD_LL_HEADER,
-  NFT_PAYLOAD_NETWORK_HEADER,
-  NFT_PAYLOAD_TRANSPORT_HEADER,
-  NFT_PAYLOAD_INNER_HEADER,
-  NFT_PAYLOAD_TUN_HEADER,
-};
-enum nft_payload_csum_types {
-  NFT_PAYLOAD_CSUM_NONE,
-  NFT_PAYLOAD_CSUM_INET,
-  NFT_PAYLOAD_CSUM_SCTP,
-};
-enum nft_payload_csum_flags {
-  NFT_PAYLOAD_L4CSUM_PSEUDOHDR = (1 << 0),
-};
-enum nft_inner_type {
-  NFT_INNER_UNSPEC = 0,
-  NFT_INNER_VXLAN,
-  NFT_INNER_GENEVE,
-};
-enum nft_inner_flags {
-  NFT_INNER_HDRSIZE = (1 << 0),
-  NFT_INNER_LL = (1 << 1),
-  NFT_INNER_NH = (1 << 2),
-  NFT_INNER_TH = (1 << 3),
-};
-#define NFT_INNER_MASK (NFT_INNER_HDRSIZE | NFT_INNER_LL | NFT_INNER_NH | NFT_INNER_TH)
-enum nft_inner_attributes {
-  NFTA_INNER_UNSPEC,
-  NFTA_INNER_NUM,
-  NFTA_INNER_TYPE,
-  NFTA_INNER_FLAGS,
-  NFTA_INNER_HDRSIZE,
-  NFTA_INNER_EXPR,
-  __NFTA_INNER_MAX
-};
-#define NFTA_INNER_MAX (__NFTA_INNER_MAX - 1)
-enum nft_payload_attributes {
-  NFTA_PAYLOAD_UNSPEC,
-  NFTA_PAYLOAD_DREG,
-  NFTA_PAYLOAD_BASE,
-  NFTA_PAYLOAD_OFFSET,
-  NFTA_PAYLOAD_LEN,
-  NFTA_PAYLOAD_SREG,
-  NFTA_PAYLOAD_CSUM_TYPE,
-  NFTA_PAYLOAD_CSUM_OFFSET,
-  NFTA_PAYLOAD_CSUM_FLAGS,
-  __NFTA_PAYLOAD_MAX
-};
-#define NFTA_PAYLOAD_MAX (__NFTA_PAYLOAD_MAX - 1)
-enum nft_exthdr_flags {
-  NFT_EXTHDR_F_PRESENT = (1 << 0),
-};
-enum nft_exthdr_op {
-  NFT_EXTHDR_OP_IPV6,
-  NFT_EXTHDR_OP_TCPOPT,
-  NFT_EXTHDR_OP_IPV4,
-  NFT_EXTHDR_OP_SCTP,
-  NFT_EXTHDR_OP_DCCP,
-  __NFT_EXTHDR_OP_MAX
-};
-#define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
-enum nft_exthdr_attributes {
-  NFTA_EXTHDR_UNSPEC,
-  NFTA_EXTHDR_DREG,
-  NFTA_EXTHDR_TYPE,
-  NFTA_EXTHDR_OFFSET,
-  NFTA_EXTHDR_LEN,
-  NFTA_EXTHDR_FLAGS,
-  NFTA_EXTHDR_OP,
-  NFTA_EXTHDR_SREG,
-  __NFTA_EXTHDR_MAX
-};
-#define NFTA_EXTHDR_MAX (__NFTA_EXTHDR_MAX - 1)
-enum nft_meta_keys {
-  NFT_META_LEN,
-  NFT_META_PROTOCOL,
-  NFT_META_PRIORITY,
-  NFT_META_MARK,
-  NFT_META_IIF,
-  NFT_META_OIF,
-  NFT_META_IIFNAME,
-  NFT_META_OIFNAME,
-  NFT_META_IFTYPE,
-#define NFT_META_IIFTYPE NFT_META_IFTYPE
-  NFT_META_OIFTYPE,
-  NFT_META_SKUID,
-  NFT_META_SKGID,
-  NFT_META_NFTRACE,
-  NFT_META_RTCLASSID,
-  NFT_META_SECMARK,
-  NFT_META_NFPROTO,
-  NFT_META_L4PROTO,
-  NFT_META_BRI_IIFNAME,
-  NFT_META_BRI_OIFNAME,
-  NFT_META_PKTTYPE,
-  NFT_META_CPU,
-  NFT_META_IIFGROUP,
-  NFT_META_OIFGROUP,
-  NFT_META_CGROUP,
-  NFT_META_PRANDOM,
-  NFT_META_SECPATH,
-  NFT_META_IIFKIND,
-  NFT_META_OIFKIND,
-  NFT_META_BRI_IIFPVID,
-  NFT_META_BRI_IIFVPROTO,
-  NFT_META_TIME_NS,
-  NFT_META_TIME_DAY,
-  NFT_META_TIME_HOUR,
-  NFT_META_SDIF,
-  NFT_META_SDIFNAME,
-  NFT_META_BRI_BROUTE,
-  __NFT_META_IIFTYPE,
-};
-enum nft_rt_keys {
-  NFT_RT_CLASSID,
-  NFT_RT_NEXTHOP4,
-  NFT_RT_NEXTHOP6,
-  NFT_RT_TCPMSS,
-  NFT_RT_XFRM,
-  __NFT_RT_MAX
-};
-#define NFT_RT_MAX (__NFT_RT_MAX - 1)
-enum nft_hash_types {
-  NFT_HASH_JENKINS,
-  NFT_HASH_SYM,
-};
-enum nft_hash_attributes {
-  NFTA_HASH_UNSPEC,
-  NFTA_HASH_SREG,
-  NFTA_HASH_DREG,
-  NFTA_HASH_LEN,
-  NFTA_HASH_MODULUS,
-  NFTA_HASH_SEED,
-  NFTA_HASH_OFFSET,
-  NFTA_HASH_TYPE,
-  NFTA_HASH_SET_NAME,
-  NFTA_HASH_SET_ID,
-  __NFTA_HASH_MAX,
-};
-#define NFTA_HASH_MAX (__NFTA_HASH_MAX - 1)
-enum nft_meta_attributes {
-  NFTA_META_UNSPEC,
-  NFTA_META_DREG,
-  NFTA_META_KEY,
-  NFTA_META_SREG,
-  __NFTA_META_MAX
-};
-#define NFTA_META_MAX (__NFTA_META_MAX - 1)
-enum nft_rt_attributes {
-  NFTA_RT_UNSPEC,
-  NFTA_RT_DREG,
-  NFTA_RT_KEY,
-  __NFTA_RT_MAX
-};
-#define NFTA_RT_MAX (__NFTA_RT_MAX - 1)
-enum nft_socket_attributes {
-  NFTA_SOCKET_UNSPEC,
-  NFTA_SOCKET_KEY,
-  NFTA_SOCKET_DREG,
-  NFTA_SOCKET_LEVEL,
-  __NFTA_SOCKET_MAX
-};
-#define NFTA_SOCKET_MAX (__NFTA_SOCKET_MAX - 1)
-enum nft_socket_keys {
-  NFT_SOCKET_TRANSPARENT,
-  NFT_SOCKET_MARK,
-  NFT_SOCKET_WILDCARD,
-  NFT_SOCKET_CGROUPV2,
-  __NFT_SOCKET_MAX
-};
-#define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1)
-enum nft_ct_keys {
-  NFT_CT_STATE,
-  NFT_CT_DIRECTION,
-  NFT_CT_STATUS,
-  NFT_CT_MARK,
-  NFT_CT_SECMARK,
-  NFT_CT_EXPIRATION,
-  NFT_CT_HELPER,
-  NFT_CT_L3PROTOCOL,
-  NFT_CT_SRC,
-  NFT_CT_DST,
-  NFT_CT_PROTOCOL,
-  NFT_CT_PROTO_SRC,
-  NFT_CT_PROTO_DST,
-  NFT_CT_LABELS,
-  NFT_CT_PKTS,
-  NFT_CT_BYTES,
-  NFT_CT_AVGPKT,
-  NFT_CT_ZONE,
-  NFT_CT_EVENTMASK,
-  NFT_CT_SRC_IP,
-  NFT_CT_DST_IP,
-  NFT_CT_SRC_IP6,
-  NFT_CT_DST_IP6,
-  NFT_CT_ID,
-  __NFT_CT_MAX
-};
-#define NFT_CT_MAX (__NFT_CT_MAX - 1)
-enum nft_ct_attributes {
-  NFTA_CT_UNSPEC,
-  NFTA_CT_DREG,
-  NFTA_CT_KEY,
-  NFTA_CT_DIRECTION,
-  NFTA_CT_SREG,
-  __NFTA_CT_MAX
-};
-#define NFTA_CT_MAX (__NFTA_CT_MAX - 1)
-enum nft_offload_attributes {
-  NFTA_FLOW_UNSPEC,
-  NFTA_FLOW_TABLE_NAME,
-  __NFTA_FLOW_MAX,
-};
-#define NFTA_FLOW_MAX (__NFTA_FLOW_MAX - 1)
-enum nft_limit_type {
-  NFT_LIMIT_PKTS,
-  NFT_LIMIT_PKT_BYTES
-};
-enum nft_limit_flags {
-  NFT_LIMIT_F_INV = (1 << 0),
-};
-enum nft_limit_attributes {
-  NFTA_LIMIT_UNSPEC,
-  NFTA_LIMIT_RATE,
-  NFTA_LIMIT_UNIT,
-  NFTA_LIMIT_BURST,
-  NFTA_LIMIT_TYPE,
-  NFTA_LIMIT_FLAGS,
-  NFTA_LIMIT_PAD,
-  __NFTA_LIMIT_MAX
-};
-#define NFTA_LIMIT_MAX (__NFTA_LIMIT_MAX - 1)
-enum nft_connlimit_flags {
-  NFT_CONNLIMIT_F_INV = (1 << 0),
-};
-enum nft_connlimit_attributes {
-  NFTA_CONNLIMIT_UNSPEC,
-  NFTA_CONNLIMIT_COUNT,
-  NFTA_CONNLIMIT_FLAGS,
-  __NFTA_CONNLIMIT_MAX
-};
-#define NFTA_CONNLIMIT_MAX (__NFTA_CONNLIMIT_MAX - 1)
-enum nft_counter_attributes {
-  NFTA_COUNTER_UNSPEC,
-  NFTA_COUNTER_BYTES,
-  NFTA_COUNTER_PACKETS,
-  NFTA_COUNTER_PAD,
-  __NFTA_COUNTER_MAX
-};
-#define NFTA_COUNTER_MAX (__NFTA_COUNTER_MAX - 1)
-enum nft_last_attributes {
-  NFTA_LAST_UNSPEC,
-  NFTA_LAST_SET,
-  NFTA_LAST_MSECS,
-  NFTA_LAST_PAD,
-  __NFTA_LAST_MAX
-};
-#define NFTA_LAST_MAX (__NFTA_LAST_MAX - 1)
-enum nft_log_attributes {
-  NFTA_LOG_UNSPEC,
-  NFTA_LOG_GROUP,
-  NFTA_LOG_PREFIX,
-  NFTA_LOG_SNAPLEN,
-  NFTA_LOG_QTHRESHOLD,
-  NFTA_LOG_LEVEL,
-  NFTA_LOG_FLAGS,
-  __NFTA_LOG_MAX
-};
-#define NFTA_LOG_MAX (__NFTA_LOG_MAX - 1)
-enum nft_log_level {
-  NFT_LOGLEVEL_EMERG,
-  NFT_LOGLEVEL_ALERT,
-  NFT_LOGLEVEL_CRIT,
-  NFT_LOGLEVEL_ERR,
-  NFT_LOGLEVEL_WARNING,
-  NFT_LOGLEVEL_NOTICE,
-  NFT_LOGLEVEL_INFO,
-  NFT_LOGLEVEL_DEBUG,
-  NFT_LOGLEVEL_AUDIT,
-  __NFT_LOGLEVEL_MAX
-};
-#define NFT_LOGLEVEL_MAX (__NFT_LOGLEVEL_MAX - 1)
-enum nft_queue_attributes {
-  NFTA_QUEUE_UNSPEC,
-  NFTA_QUEUE_NUM,
-  NFTA_QUEUE_TOTAL,
-  NFTA_QUEUE_FLAGS,
-  NFTA_QUEUE_SREG_QNUM,
-  __NFTA_QUEUE_MAX
-};
-#define NFTA_QUEUE_MAX (__NFTA_QUEUE_MAX - 1)
-#define NFT_QUEUE_FLAG_BYPASS 0x01
-#define NFT_QUEUE_FLAG_CPU_FANOUT 0x02
-#define NFT_QUEUE_FLAG_MASK 0x03
-enum nft_quota_flags {
-  NFT_QUOTA_F_INV = (1 << 0),
-  NFT_QUOTA_F_DEPLETED = (1 << 1),
-};
-enum nft_quota_attributes {
-  NFTA_QUOTA_UNSPEC,
-  NFTA_QUOTA_BYTES,
-  NFTA_QUOTA_FLAGS,
-  NFTA_QUOTA_PAD,
-  NFTA_QUOTA_CONSUMED,
-  __NFTA_QUOTA_MAX
-};
-#define NFTA_QUOTA_MAX (__NFTA_QUOTA_MAX - 1)
-enum nft_secmark_attributes {
-  NFTA_SECMARK_UNSPEC,
-  NFTA_SECMARK_CTX,
-  __NFTA_SECMARK_MAX,
-};
-#define NFTA_SECMARK_MAX (__NFTA_SECMARK_MAX - 1)
-#define NFT_SECMARK_CTX_MAXLEN 256
-enum nft_reject_types {
-  NFT_REJECT_ICMP_UNREACH,
-  NFT_REJECT_TCP_RST,
-  NFT_REJECT_ICMPX_UNREACH,
-};
-enum nft_reject_inet_code {
-  NFT_REJECT_ICMPX_NO_ROUTE = 0,
-  NFT_REJECT_ICMPX_PORT_UNREACH,
-  NFT_REJECT_ICMPX_HOST_UNREACH,
-  NFT_REJECT_ICMPX_ADMIN_PROHIBITED,
-  __NFT_REJECT_ICMPX_MAX
-};
-#define NFT_REJECT_ICMPX_MAX (__NFT_REJECT_ICMPX_MAX - 1)
-enum nft_reject_attributes {
-  NFTA_REJECT_UNSPEC,
-  NFTA_REJECT_TYPE,
-  NFTA_REJECT_ICMP_CODE,
-  __NFTA_REJECT_MAX
-};
-#define NFTA_REJECT_MAX (__NFTA_REJECT_MAX - 1)
-enum nft_nat_types {
-  NFT_NAT_SNAT,
-  NFT_NAT_DNAT,
-};
-enum nft_nat_attributes {
-  NFTA_NAT_UNSPEC,
-  NFTA_NAT_TYPE,
-  NFTA_NAT_FAMILY,
-  NFTA_NAT_REG_ADDR_MIN,
-  NFTA_NAT_REG_ADDR_MAX,
-  NFTA_NAT_REG_PROTO_MIN,
-  NFTA_NAT_REG_PROTO_MAX,
-  NFTA_NAT_FLAGS,
-  __NFTA_NAT_MAX
-};
-#define NFTA_NAT_MAX (__NFTA_NAT_MAX - 1)
-enum nft_tproxy_attributes {
-  NFTA_TPROXY_UNSPEC,
-  NFTA_TPROXY_FAMILY,
-  NFTA_TPROXY_REG_ADDR,
-  NFTA_TPROXY_REG_PORT,
-  __NFTA_TPROXY_MAX
-};
-#define NFTA_TPROXY_MAX (__NFTA_TPROXY_MAX - 1)
-enum nft_masq_attributes {
-  NFTA_MASQ_UNSPEC,
-  NFTA_MASQ_FLAGS,
-  NFTA_MASQ_REG_PROTO_MIN,
-  NFTA_MASQ_REG_PROTO_MAX,
-  __NFTA_MASQ_MAX
-};
-#define NFTA_MASQ_MAX (__NFTA_MASQ_MAX - 1)
-enum nft_redir_attributes {
-  NFTA_REDIR_UNSPEC,
-  NFTA_REDIR_REG_PROTO_MIN,
-  NFTA_REDIR_REG_PROTO_MAX,
-  NFTA_REDIR_FLAGS,
-  __NFTA_REDIR_MAX
-};
-#define NFTA_REDIR_MAX (__NFTA_REDIR_MAX - 1)
-enum nft_dup_attributes {
-  NFTA_DUP_UNSPEC,
-  NFTA_DUP_SREG_ADDR,
-  NFTA_DUP_SREG_DEV,
-  __NFTA_DUP_MAX
-};
-#define NFTA_DUP_MAX (__NFTA_DUP_MAX - 1)
-enum nft_fwd_attributes {
-  NFTA_FWD_UNSPEC,
-  NFTA_FWD_SREG_DEV,
-  NFTA_FWD_SREG_ADDR,
-  NFTA_FWD_NFPROTO,
-  __NFTA_FWD_MAX
-};
-#define NFTA_FWD_MAX (__NFTA_FWD_MAX - 1)
-enum nft_objref_attributes {
-  NFTA_OBJREF_UNSPEC,
-  NFTA_OBJREF_IMM_TYPE,
-  NFTA_OBJREF_IMM_NAME,
-  NFTA_OBJREF_SET_SREG,
-  NFTA_OBJREF_SET_NAME,
-  NFTA_OBJREF_SET_ID,
-  __NFTA_OBJREF_MAX
-};
-#define NFTA_OBJREF_MAX (__NFTA_OBJREF_MAX - 1)
-enum nft_gen_attributes {
-  NFTA_GEN_UNSPEC,
-  NFTA_GEN_ID,
-  NFTA_GEN_PROC_PID,
-  NFTA_GEN_PROC_NAME,
-  __NFTA_GEN_MAX
-};
-#define NFTA_GEN_MAX (__NFTA_GEN_MAX - 1)
-enum nft_fib_attributes {
-  NFTA_FIB_UNSPEC,
-  NFTA_FIB_DREG,
-  NFTA_FIB_RESULT,
-  NFTA_FIB_FLAGS,
-  __NFTA_FIB_MAX
-};
-#define NFTA_FIB_MAX (__NFTA_FIB_MAX - 1)
-enum nft_fib_result {
-  NFT_FIB_RESULT_UNSPEC,
-  NFT_FIB_RESULT_OIF,
-  NFT_FIB_RESULT_OIFNAME,
-  NFT_FIB_RESULT_ADDRTYPE,
-  __NFT_FIB_RESULT_MAX
-};
-#define NFT_FIB_RESULT_MAX (__NFT_FIB_RESULT_MAX - 1)
-enum nft_fib_flags {
-  NFTA_FIB_F_SADDR = 1 << 0,
-  NFTA_FIB_F_DADDR = 1 << 1,
-  NFTA_FIB_F_MARK = 1 << 2,
-  NFTA_FIB_F_IIF = 1 << 3,
-  NFTA_FIB_F_OIF = 1 << 4,
-  NFTA_FIB_F_PRESENT = 1 << 5,
-};
-enum nft_ct_helper_attributes {
-  NFTA_CT_HELPER_UNSPEC,
-  NFTA_CT_HELPER_NAME,
-  NFTA_CT_HELPER_L3PROTO,
-  NFTA_CT_HELPER_L4PROTO,
-  __NFTA_CT_HELPER_MAX,
-};
-#define NFTA_CT_HELPER_MAX (__NFTA_CT_HELPER_MAX - 1)
-enum nft_ct_timeout_timeout_attributes {
-  NFTA_CT_TIMEOUT_UNSPEC,
-  NFTA_CT_TIMEOUT_L3PROTO,
-  NFTA_CT_TIMEOUT_L4PROTO,
-  NFTA_CT_TIMEOUT_DATA,
-  __NFTA_CT_TIMEOUT_MAX,
-};
-#define NFTA_CT_TIMEOUT_MAX (__NFTA_CT_TIMEOUT_MAX - 1)
-enum nft_ct_expectation_attributes {
-  NFTA_CT_EXPECT_UNSPEC,
-  NFTA_CT_EXPECT_L3PROTO,
-  NFTA_CT_EXPECT_L4PROTO,
-  NFTA_CT_EXPECT_DPORT,
-  NFTA_CT_EXPECT_TIMEOUT,
-  NFTA_CT_EXPECT_SIZE,
-  __NFTA_CT_EXPECT_MAX,
-};
-#define NFTA_CT_EXPECT_MAX (__NFTA_CT_EXPECT_MAX - 1)
-#define NFT_OBJECT_UNSPEC 0
-#define NFT_OBJECT_COUNTER 1
-#define NFT_OBJECT_QUOTA 2
-#define NFT_OBJECT_CT_HELPER 3
-#define NFT_OBJECT_LIMIT 4
-#define NFT_OBJECT_CONNLIMIT 5
-#define NFT_OBJECT_TUNNEL 6
-#define NFT_OBJECT_CT_TIMEOUT 7
-#define NFT_OBJECT_SECMARK 8
-#define NFT_OBJECT_CT_EXPECT 9
-#define NFT_OBJECT_SYNPROXY 10
-#define __NFT_OBJECT_MAX 11
-#define NFT_OBJECT_MAX (__NFT_OBJECT_MAX - 1)
-enum nft_object_attributes {
-  NFTA_OBJ_UNSPEC,
-  NFTA_OBJ_TABLE,
-  NFTA_OBJ_NAME,
-  NFTA_OBJ_TYPE,
-  NFTA_OBJ_DATA,
-  NFTA_OBJ_USE,
-  NFTA_OBJ_HANDLE,
-  NFTA_OBJ_PAD,
-  NFTA_OBJ_USERDATA,
-  __NFTA_OBJ_MAX
-};
-#define NFTA_OBJ_MAX (__NFTA_OBJ_MAX - 1)
-enum nft_flowtable_flags {
-  NFT_FLOWTABLE_HW_OFFLOAD = 0x1,
-  NFT_FLOWTABLE_COUNTER = 0x2,
-  NFT_FLOWTABLE_MASK = (NFT_FLOWTABLE_HW_OFFLOAD | NFT_FLOWTABLE_COUNTER)
-};
-enum nft_flowtable_attributes {
-  NFTA_FLOWTABLE_UNSPEC,
-  NFTA_FLOWTABLE_TABLE,
-  NFTA_FLOWTABLE_NAME,
-  NFTA_FLOWTABLE_HOOK,
-  NFTA_FLOWTABLE_USE,
-  NFTA_FLOWTABLE_HANDLE,
-  NFTA_FLOWTABLE_PAD,
-  NFTA_FLOWTABLE_FLAGS,
-  __NFTA_FLOWTABLE_MAX
-};
-#define NFTA_FLOWTABLE_MAX (__NFTA_FLOWTABLE_MAX - 1)
-enum nft_flowtable_hook_attributes {
-  NFTA_FLOWTABLE_HOOK_UNSPEC,
-  NFTA_FLOWTABLE_HOOK_NUM,
-  NFTA_FLOWTABLE_HOOK_PRIORITY,
-  NFTA_FLOWTABLE_HOOK_DEVS,
-  __NFTA_FLOWTABLE_HOOK_MAX
-};
-#define NFTA_FLOWTABLE_HOOK_MAX (__NFTA_FLOWTABLE_HOOK_MAX - 1)
-enum nft_osf_attributes {
-  NFTA_OSF_UNSPEC,
-  NFTA_OSF_DREG,
-  NFTA_OSF_TTL,
-  NFTA_OSF_FLAGS,
-  __NFTA_OSF_MAX,
-};
-#define NFTA_OSF_MAX (__NFTA_OSF_MAX - 1)
-enum nft_osf_flags {
-  NFT_OSF_F_VERSION = (1 << 0),
-};
-enum nft_synproxy_attributes {
-  NFTA_SYNPROXY_UNSPEC,
-  NFTA_SYNPROXY_MSS,
-  NFTA_SYNPROXY_WSCALE,
-  NFTA_SYNPROXY_FLAGS,
-  __NFTA_SYNPROXY_MAX,
-};
-#define NFTA_SYNPROXY_MAX (__NFTA_SYNPROXY_MAX - 1)
-enum nft_devices_attributes {
-  NFTA_DEVICE_UNSPEC,
-  NFTA_DEVICE_NAME,
-  __NFTA_DEVICE_MAX
-};
-#define NFTA_DEVICE_MAX (__NFTA_DEVICE_MAX - 1)
-enum nft_xfrm_attributes {
-  NFTA_XFRM_UNSPEC,
-  NFTA_XFRM_DREG,
-  NFTA_XFRM_KEY,
-  NFTA_XFRM_DIR,
-  NFTA_XFRM_SPNUM,
-  __NFTA_XFRM_MAX
-};
-#define NFTA_XFRM_MAX (__NFTA_XFRM_MAX - 1)
-enum nft_xfrm_keys {
-  NFT_XFRM_KEY_UNSPEC,
-  NFT_XFRM_KEY_DADDR_IP4,
-  NFT_XFRM_KEY_DADDR_IP6,
-  NFT_XFRM_KEY_SADDR_IP4,
-  NFT_XFRM_KEY_SADDR_IP6,
-  NFT_XFRM_KEY_REQID,
-  NFT_XFRM_KEY_SPI,
-  __NFT_XFRM_KEY_MAX,
-};
-#define NFT_XFRM_KEY_MAX (__NFT_XFRM_KEY_MAX - 1)
-enum nft_trace_attributes {
-  NFTA_TRACE_UNSPEC,
-  NFTA_TRACE_TABLE,
-  NFTA_TRACE_CHAIN,
-  NFTA_TRACE_RULE_HANDLE,
-  NFTA_TRACE_TYPE,
-  NFTA_TRACE_VERDICT,
-  NFTA_TRACE_ID,
-  NFTA_TRACE_LL_HEADER,
-  NFTA_TRACE_NETWORK_HEADER,
-  NFTA_TRACE_TRANSPORT_HEADER,
-  NFTA_TRACE_IIF,
-  NFTA_TRACE_IIFTYPE,
-  NFTA_TRACE_OIF,
-  NFTA_TRACE_OIFTYPE,
-  NFTA_TRACE_MARK,
-  NFTA_TRACE_NFPROTO,
-  NFTA_TRACE_POLICY,
-  NFTA_TRACE_PAD,
-  __NFTA_TRACE_MAX
-};
-#define NFTA_TRACE_MAX (__NFTA_TRACE_MAX - 1)
-enum nft_trace_types {
-  NFT_TRACETYPE_UNSPEC,
-  NFT_TRACETYPE_POLICY,
-  NFT_TRACETYPE_RETURN,
-  NFT_TRACETYPE_RULE,
-  __NFT_TRACETYPE_MAX
-};
-#define NFT_TRACETYPE_MAX (__NFT_TRACETYPE_MAX - 1)
-enum nft_ng_attributes {
-  NFTA_NG_UNSPEC,
-  NFTA_NG_DREG,
-  NFTA_NG_MODULUS,
-  NFTA_NG_TYPE,
-  NFTA_NG_OFFSET,
-  NFTA_NG_SET_NAME,
-  NFTA_NG_SET_ID,
-  __NFTA_NG_MAX
-};
-#define NFTA_NG_MAX (__NFTA_NG_MAX - 1)
-enum nft_ng_types {
-  NFT_NG_INCREMENTAL,
-  NFT_NG_RANDOM,
-  __NFT_NG_MAX
-};
-#define NFT_NG_MAX (__NFT_NG_MAX - 1)
-enum nft_tunnel_key_ip_attributes {
-  NFTA_TUNNEL_KEY_IP_UNSPEC,
-  NFTA_TUNNEL_KEY_IP_SRC,
-  NFTA_TUNNEL_KEY_IP_DST,
-  __NFTA_TUNNEL_KEY_IP_MAX
-};
-#define NFTA_TUNNEL_KEY_IP_MAX (__NFTA_TUNNEL_KEY_IP_MAX - 1)
-enum nft_tunnel_ip6_attributes {
-  NFTA_TUNNEL_KEY_IP6_UNSPEC,
-  NFTA_TUNNEL_KEY_IP6_SRC,
-  NFTA_TUNNEL_KEY_IP6_DST,
-  NFTA_TUNNEL_KEY_IP6_FLOWLABEL,
-  __NFTA_TUNNEL_KEY_IP6_MAX
-};
-#define NFTA_TUNNEL_KEY_IP6_MAX (__NFTA_TUNNEL_KEY_IP6_MAX - 1)
-enum nft_tunnel_opts_attributes {
-  NFTA_TUNNEL_KEY_OPTS_UNSPEC,
-  NFTA_TUNNEL_KEY_OPTS_VXLAN,
-  NFTA_TUNNEL_KEY_OPTS_ERSPAN,
-  NFTA_TUNNEL_KEY_OPTS_GENEVE,
-  __NFTA_TUNNEL_KEY_OPTS_MAX
-};
-#define NFTA_TUNNEL_KEY_OPTS_MAX (__NFTA_TUNNEL_KEY_OPTS_MAX - 1)
-enum nft_tunnel_opts_vxlan_attributes {
-  NFTA_TUNNEL_KEY_VXLAN_UNSPEC,
-  NFTA_TUNNEL_KEY_VXLAN_GBP,
-  __NFTA_TUNNEL_KEY_VXLAN_MAX
-};
-#define NFTA_TUNNEL_KEY_VXLAN_MAX (__NFTA_TUNNEL_KEY_VXLAN_MAX - 1)
-enum nft_tunnel_opts_erspan_attributes {
-  NFTA_TUNNEL_KEY_ERSPAN_UNSPEC,
-  NFTA_TUNNEL_KEY_ERSPAN_VERSION,
-  NFTA_TUNNEL_KEY_ERSPAN_V1_INDEX,
-  NFTA_TUNNEL_KEY_ERSPAN_V2_HWID,
-  NFTA_TUNNEL_KEY_ERSPAN_V2_DIR,
-  __NFTA_TUNNEL_KEY_ERSPAN_MAX
-};
-#define NFTA_TUNNEL_KEY_ERSPAN_MAX (__NFTA_TUNNEL_KEY_ERSPAN_MAX - 1)
-enum nft_tunnel_opts_geneve_attributes {
-  NFTA_TUNNEL_KEY_GENEVE_UNSPEC,
-  NFTA_TUNNEL_KEY_GENEVE_CLASS,
-  NFTA_TUNNEL_KEY_GENEVE_TYPE,
-  NFTA_TUNNEL_KEY_GENEVE_DATA,
-  __NFTA_TUNNEL_KEY_GENEVE_MAX
-};
-#define NFTA_TUNNEL_KEY_GENEVE_MAX (__NFTA_TUNNEL_KEY_GENEVE_MAX - 1)
-enum nft_tunnel_flags {
-  NFT_TUNNEL_F_ZERO_CSUM_TX = (1 << 0),
-  NFT_TUNNEL_F_DONT_FRAGMENT = (1 << 1),
-  NFT_TUNNEL_F_SEQ_NUMBER = (1 << 2),
-};
-#define NFT_TUNNEL_F_MASK (NFT_TUNNEL_F_ZERO_CSUM_TX | NFT_TUNNEL_F_DONT_FRAGMENT | NFT_TUNNEL_F_SEQ_NUMBER)
-enum nft_tunnel_key_attributes {
-  NFTA_TUNNEL_KEY_UNSPEC,
-  NFTA_TUNNEL_KEY_ID,
-  NFTA_TUNNEL_KEY_IP,
-  NFTA_TUNNEL_KEY_IP6,
-  NFTA_TUNNEL_KEY_FLAGS,
-  NFTA_TUNNEL_KEY_TOS,
-  NFTA_TUNNEL_KEY_TTL,
-  NFTA_TUNNEL_KEY_SPORT,
-  NFTA_TUNNEL_KEY_DPORT,
-  NFTA_TUNNEL_KEY_OPTS,
-  __NFTA_TUNNEL_KEY_MAX
-};
-#define NFTA_TUNNEL_KEY_MAX (__NFTA_TUNNEL_KEY_MAX - 1)
-enum nft_tunnel_keys {
-  NFT_TUNNEL_PATH,
-  NFT_TUNNEL_ID,
-  __NFT_TUNNEL_MAX
-};
-#define NFT_TUNNEL_MAX (__NFT_TUNNEL_MAX - 1)
-enum nft_tunnel_mode {
-  NFT_TUNNEL_MODE_NONE,
-  NFT_TUNNEL_MODE_RX,
-  NFT_TUNNEL_MODE_TX,
-  __NFT_TUNNEL_MODE_MAX
-};
-#define NFT_TUNNEL_MODE_MAX (__NFT_TUNNEL_MODE_MAX - 1)
-enum nft_tunnel_attributes {
-  NFTA_TUNNEL_UNSPEC,
-  NFTA_TUNNEL_KEY,
-  NFTA_TUNNEL_DREG,
-  NFTA_TUNNEL_MODE,
-  __NFTA_TUNNEL_MAX
-};
-#define NFTA_TUNNEL_MAX (__NFTA_TUNNEL_MAX - 1)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nf_tables_compat.h b/libc/kernel/uapi/linux/netfilter/nf_tables_compat.h
deleted file mode 100644
index 32c129d..0000000
--- a/libc/kernel/uapi/linux/netfilter/nf_tables_compat.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NFT_COMPAT_NFNETLINK_H_
-#define _NFT_COMPAT_NFNETLINK_H_
-enum nft_target_attributes {
-  NFTA_TARGET_UNSPEC,
-  NFTA_TARGET_NAME,
-  NFTA_TARGET_REV,
-  NFTA_TARGET_INFO,
-  __NFTA_TARGET_MAX
-};
-#define NFTA_TARGET_MAX (__NFTA_TARGET_MAX - 1)
-enum nft_match_attributes {
-  NFTA_MATCH_UNSPEC,
-  NFTA_MATCH_NAME,
-  NFTA_MATCH_REV,
-  NFTA_MATCH_INFO,
-  __NFTA_MATCH_MAX
-};
-#define NFTA_MATCH_MAX (__NFTA_MATCH_MAX - 1)
-#define NFT_COMPAT_NAME_MAX 32
-enum {
-  NFNL_MSG_COMPAT_GET,
-  NFNL_MSG_COMPAT_MAX
-};
-enum {
-  NFTA_COMPAT_UNSPEC = 0,
-  NFTA_COMPAT_NAME,
-  NFTA_COMPAT_REV,
-  NFTA_COMPAT_TYPE,
-  __NFTA_COMPAT_MAX,
-};
-#define NFTA_COMPAT_MAX (__NFTA_COMPAT_MAX - 1)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink.h b/libc/kernel/uapi/linux/netfilter/nfnetlink.h
deleted file mode 100644
index 705de74..0000000
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_NFNETLINK_H
-#define _UAPI_NFNETLINK_H
-#include <linux/types.h>
-#include <linux/netfilter/nfnetlink_compat.h>
-enum nfnetlink_groups {
-  NFNLGRP_NONE,
-#define NFNLGRP_NONE NFNLGRP_NONE
-  NFNLGRP_CONNTRACK_NEW,
-#define NFNLGRP_CONNTRACK_NEW NFNLGRP_CONNTRACK_NEW
-  NFNLGRP_CONNTRACK_UPDATE,
-#define NFNLGRP_CONNTRACK_UPDATE NFNLGRP_CONNTRACK_UPDATE
-  NFNLGRP_CONNTRACK_DESTROY,
-#define NFNLGRP_CONNTRACK_DESTROY NFNLGRP_CONNTRACK_DESTROY
-  NFNLGRP_CONNTRACK_EXP_NEW,
-#define NFNLGRP_CONNTRACK_EXP_NEW NFNLGRP_CONNTRACK_EXP_NEW
-  NFNLGRP_CONNTRACK_EXP_UPDATE,
-#define NFNLGRP_CONNTRACK_EXP_UPDATE NFNLGRP_CONNTRACK_EXP_UPDATE
-  NFNLGRP_CONNTRACK_EXP_DESTROY,
-#define NFNLGRP_CONNTRACK_EXP_DESTROY NFNLGRP_CONNTRACK_EXP_DESTROY
-  NFNLGRP_NFTABLES,
-#define NFNLGRP_NFTABLES NFNLGRP_NFTABLES
-  NFNLGRP_ACCT_QUOTA,
-#define NFNLGRP_ACCT_QUOTA NFNLGRP_ACCT_QUOTA
-  NFNLGRP_NFTRACE,
-#define NFNLGRP_NFTRACE NFNLGRP_NFTRACE
-  __NFNLGRP_MAX,
-};
-#define NFNLGRP_MAX (__NFNLGRP_MAX - 1)
-struct nfgenmsg {
-  __u8 nfgen_family;
-  __u8 version;
-  __be16 res_id;
-};
-#define NFNETLINK_V0 0
-#define NFNL_SUBSYS_ID(x) ((x & 0xff00) >> 8)
-#define NFNL_MSG_TYPE(x) (x & 0x00ff)
-#define NFNL_SUBSYS_NONE 0
-#define NFNL_SUBSYS_CTNETLINK 1
-#define NFNL_SUBSYS_CTNETLINK_EXP 2
-#define NFNL_SUBSYS_QUEUE 3
-#define NFNL_SUBSYS_ULOG 4
-#define NFNL_SUBSYS_OSF 5
-#define NFNL_SUBSYS_IPSET 6
-#define NFNL_SUBSYS_ACCT 7
-#define NFNL_SUBSYS_CTNETLINK_TIMEOUT 8
-#define NFNL_SUBSYS_CTHELPER 9
-#define NFNL_SUBSYS_NFTABLES 10
-#define NFNL_SUBSYS_NFT_COMPAT 11
-#define NFNL_SUBSYS_HOOK 12
-#define NFNL_SUBSYS_COUNT 13
-#define NFNL_MSG_BATCH_BEGIN NLMSG_MIN_TYPE
-#define NFNL_MSG_BATCH_END NLMSG_MIN_TYPE + 1
-enum nfnl_batch_attributes {
-  NFNL_BATCH_UNSPEC,
-  NFNL_BATCH_GENID,
-  __NFNL_BATCH_MAX
-};
-#define NFNL_BATCH_MAX (__NFNL_BATCH_MAX - 1)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_acct.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_acct.h
deleted file mode 100644
index 497337b..0000000
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_acct.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_NFNL_ACCT_H_
-#define _UAPI_NFNL_ACCT_H_
-#ifndef NFACCT_NAME_MAX
-#define NFACCT_NAME_MAX 32
-#endif
-enum nfnl_acct_msg_types {
-  NFNL_MSG_ACCT_NEW,
-  NFNL_MSG_ACCT_GET,
-  NFNL_MSG_ACCT_GET_CTRZERO,
-  NFNL_MSG_ACCT_DEL,
-  NFNL_MSG_ACCT_OVERQUOTA,
-  NFNL_MSG_ACCT_MAX
-};
-enum nfnl_acct_flags {
-  NFACCT_F_QUOTA_PKTS = (1 << 0),
-  NFACCT_F_QUOTA_BYTES = (1 << 1),
-  NFACCT_F_OVERQUOTA = (1 << 2),
-};
-enum nfnl_acct_type {
-  NFACCT_UNSPEC,
-  NFACCT_NAME,
-  NFACCT_PKTS,
-  NFACCT_BYTES,
-  NFACCT_USE,
-  NFACCT_FLAGS,
-  NFACCT_QUOTA,
-  NFACCT_FILTER,
-  NFACCT_PAD,
-  __NFACCT_MAX
-};
-#define NFACCT_MAX (__NFACCT_MAX - 1)
-enum nfnl_attr_filter_type {
-  NFACCT_FILTER_UNSPEC,
-  NFACCT_FILTER_MASK,
-  NFACCT_FILTER_VALUE,
-  __NFACCT_FILTER_MAX
-};
-#define NFACCT_FILTER_MAX (__NFACCT_FILTER_MAX - 1)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_compat.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_compat.h
deleted file mode 100644
index 07110bf..0000000
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_compat.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NFNETLINK_COMPAT_H
-#define _NFNETLINK_COMPAT_H
-#include <linux/types.h>
-#define NF_NETLINK_CONNTRACK_NEW 0x00000001
-#define NF_NETLINK_CONNTRACK_UPDATE 0x00000002
-#define NF_NETLINK_CONNTRACK_DESTROY 0x00000004
-#define NF_NETLINK_CONNTRACK_EXP_NEW 0x00000008
-#define NF_NETLINK_CONNTRACK_EXP_UPDATE 0x00000010
-#define NF_NETLINK_CONNTRACK_EXP_DESTROY 0x00000020
-struct nfattr {
-  __u16 nfa_len;
-  __u16 nfa_type;
-};
-#define NFNL_NFA_NEST 0x8000
-#define NFA_TYPE(attr) ((attr)->nfa_type & 0x7fff)
-#define NFA_ALIGNTO 4
-#define NFA_ALIGN(len) (((len) + NFA_ALIGNTO - 1) & ~(NFA_ALIGNTO - 1))
-#define NFA_OK(nfa,len) ((len) > 0 && (nfa)->nfa_len >= sizeof(struct nfattr) && (nfa)->nfa_len <= (len))
-#define NFA_NEXT(nfa,attrlen) ((attrlen) -= NFA_ALIGN((nfa)->nfa_len), (struct nfattr *) (((char *) (nfa)) + NFA_ALIGN((nfa)->nfa_len)))
-#define NFA_LENGTH(len) (NFA_ALIGN(sizeof(struct nfattr)) + (len))
-#define NFA_SPACE(len) NFA_ALIGN(NFA_LENGTH(len))
-#define NFA_DATA(nfa) ((void *) (((char *) (nfa)) + NFA_LENGTH(0)))
-#define NFA_PAYLOAD(nfa) ((int) ((nfa)->nfa_len) - NFA_LENGTH(0))
-#define NFA_NEST(skb,type) \
-({ struct nfattr * __start = (struct nfattr *) skb_tail_pointer(skb); NFA_PUT(skb, (NFNL_NFA_NEST | type), 0, NULL); __start; })
-#define NFA_NEST_END(skb,start) \
-({ (start)->nfa_len = skb_tail_pointer(skb) - (unsigned char *) (start); (skb)->len; })
-#define NFA_NEST_CANCEL(skb,start) \
-({ if(start) skb_trim(skb, (unsigned char *) (start) - (skb)->data); - 1; })
-#define NFM_NFA(n) ((struct nfattr *) (((char *) (n)) + NLMSG_ALIGN(sizeof(struct nfgenmsg))))
-#define NFM_PAYLOAD(n) NLMSG_PAYLOAD(n, sizeof(struct nfgenmsg))
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
deleted file mode 100644
index 200f1a0..0000000
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ /dev/null
@@ -1,279 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IPCONNTRACK_NETLINK_H
-#define _IPCONNTRACK_NETLINK_H
-#include <linux/netfilter/nfnetlink.h>
-enum cntl_msg_types {
-  IPCTNL_MSG_CT_NEW,
-  IPCTNL_MSG_CT_GET,
-  IPCTNL_MSG_CT_DELETE,
-  IPCTNL_MSG_CT_GET_CTRZERO,
-  IPCTNL_MSG_CT_GET_STATS_CPU,
-  IPCTNL_MSG_CT_GET_STATS,
-  IPCTNL_MSG_CT_GET_DYING,
-  IPCTNL_MSG_CT_GET_UNCONFIRMED,
-  IPCTNL_MSG_MAX
-};
-enum ctnl_exp_msg_types {
-  IPCTNL_MSG_EXP_NEW,
-  IPCTNL_MSG_EXP_GET,
-  IPCTNL_MSG_EXP_DELETE,
-  IPCTNL_MSG_EXP_GET_STATS_CPU,
-  IPCTNL_MSG_EXP_MAX
-};
-enum ctattr_type {
-  CTA_UNSPEC,
-  CTA_TUPLE_ORIG,
-  CTA_TUPLE_REPLY,
-  CTA_STATUS,
-  CTA_PROTOINFO,
-  CTA_HELP,
-  CTA_NAT_SRC,
-#define CTA_NAT CTA_NAT_SRC
-  CTA_TIMEOUT,
-  CTA_MARK,
-  CTA_COUNTERS_ORIG,
-  CTA_COUNTERS_REPLY,
-  CTA_USE,
-  CTA_ID,
-  CTA_NAT_DST,
-  CTA_TUPLE_MASTER,
-  CTA_SEQ_ADJ_ORIG,
-  CTA_NAT_SEQ_ADJ_ORIG = CTA_SEQ_ADJ_ORIG,
-  CTA_SEQ_ADJ_REPLY,
-  CTA_NAT_SEQ_ADJ_REPLY = CTA_SEQ_ADJ_REPLY,
-  CTA_SECMARK,
-  CTA_ZONE,
-  CTA_SECCTX,
-  CTA_TIMESTAMP,
-  CTA_MARK_MASK,
-  CTA_LABELS,
-  CTA_LABELS_MASK,
-  CTA_SYNPROXY,
-  CTA_FILTER,
-  CTA_STATUS_MASK,
-  __CTA_MAX
-};
-#define CTA_MAX (__CTA_MAX - 1)
-enum ctattr_tuple {
-  CTA_TUPLE_UNSPEC,
-  CTA_TUPLE_IP,
-  CTA_TUPLE_PROTO,
-  CTA_TUPLE_ZONE,
-  __CTA_TUPLE_MAX
-};
-#define CTA_TUPLE_MAX (__CTA_TUPLE_MAX - 1)
-enum ctattr_ip {
-  CTA_IP_UNSPEC,
-  CTA_IP_V4_SRC,
-  CTA_IP_V4_DST,
-  CTA_IP_V6_SRC,
-  CTA_IP_V6_DST,
-  __CTA_IP_MAX
-};
-#define CTA_IP_MAX (__CTA_IP_MAX - 1)
-enum ctattr_l4proto {
-  CTA_PROTO_UNSPEC,
-  CTA_PROTO_NUM,
-  CTA_PROTO_SRC_PORT,
-  CTA_PROTO_DST_PORT,
-  CTA_PROTO_ICMP_ID,
-  CTA_PROTO_ICMP_TYPE,
-  CTA_PROTO_ICMP_CODE,
-  CTA_PROTO_ICMPV6_ID,
-  CTA_PROTO_ICMPV6_TYPE,
-  CTA_PROTO_ICMPV6_CODE,
-  __CTA_PROTO_MAX
-};
-#define CTA_PROTO_MAX (__CTA_PROTO_MAX - 1)
-enum ctattr_protoinfo {
-  CTA_PROTOINFO_UNSPEC,
-  CTA_PROTOINFO_TCP,
-  CTA_PROTOINFO_DCCP,
-  CTA_PROTOINFO_SCTP,
-  __CTA_PROTOINFO_MAX
-};
-#define CTA_PROTOINFO_MAX (__CTA_PROTOINFO_MAX - 1)
-enum ctattr_protoinfo_tcp {
-  CTA_PROTOINFO_TCP_UNSPEC,
-  CTA_PROTOINFO_TCP_STATE,
-  CTA_PROTOINFO_TCP_WSCALE_ORIGINAL,
-  CTA_PROTOINFO_TCP_WSCALE_REPLY,
-  CTA_PROTOINFO_TCP_FLAGS_ORIGINAL,
-  CTA_PROTOINFO_TCP_FLAGS_REPLY,
-  __CTA_PROTOINFO_TCP_MAX
-};
-#define CTA_PROTOINFO_TCP_MAX (__CTA_PROTOINFO_TCP_MAX - 1)
-enum ctattr_protoinfo_dccp {
-  CTA_PROTOINFO_DCCP_UNSPEC,
-  CTA_PROTOINFO_DCCP_STATE,
-  CTA_PROTOINFO_DCCP_ROLE,
-  CTA_PROTOINFO_DCCP_HANDSHAKE_SEQ,
-  CTA_PROTOINFO_DCCP_PAD,
-  __CTA_PROTOINFO_DCCP_MAX,
-};
-#define CTA_PROTOINFO_DCCP_MAX (__CTA_PROTOINFO_DCCP_MAX - 1)
-enum ctattr_protoinfo_sctp {
-  CTA_PROTOINFO_SCTP_UNSPEC,
-  CTA_PROTOINFO_SCTP_STATE,
-  CTA_PROTOINFO_SCTP_VTAG_ORIGINAL,
-  CTA_PROTOINFO_SCTP_VTAG_REPLY,
-  __CTA_PROTOINFO_SCTP_MAX
-};
-#define CTA_PROTOINFO_SCTP_MAX (__CTA_PROTOINFO_SCTP_MAX - 1)
-enum ctattr_counters {
-  CTA_COUNTERS_UNSPEC,
-  CTA_COUNTERS_PACKETS,
-  CTA_COUNTERS_BYTES,
-  CTA_COUNTERS32_PACKETS,
-  CTA_COUNTERS32_BYTES,
-  CTA_COUNTERS_PAD,
-  __CTA_COUNTERS_MAX
-};
-#define CTA_COUNTERS_MAX (__CTA_COUNTERS_MAX - 1)
-enum ctattr_tstamp {
-  CTA_TIMESTAMP_UNSPEC,
-  CTA_TIMESTAMP_START,
-  CTA_TIMESTAMP_STOP,
-  CTA_TIMESTAMP_PAD,
-  __CTA_TIMESTAMP_MAX
-};
-#define CTA_TIMESTAMP_MAX (__CTA_TIMESTAMP_MAX - 1)
-enum ctattr_nat {
-  CTA_NAT_UNSPEC,
-  CTA_NAT_V4_MINIP,
-#define CTA_NAT_MINIP CTA_NAT_V4_MINIP
-  CTA_NAT_V4_MAXIP,
-#define CTA_NAT_MAXIP CTA_NAT_V4_MAXIP
-  CTA_NAT_PROTO,
-  CTA_NAT_V6_MINIP,
-  CTA_NAT_V6_MAXIP,
-  __CTA_NAT_MAX
-};
-#define CTA_NAT_MAX (__CTA_NAT_MAX - 1)
-enum ctattr_protonat {
-  CTA_PROTONAT_UNSPEC,
-  CTA_PROTONAT_PORT_MIN,
-  CTA_PROTONAT_PORT_MAX,
-  __CTA_PROTONAT_MAX
-};
-#define CTA_PROTONAT_MAX (__CTA_PROTONAT_MAX - 1)
-enum ctattr_seqadj {
-  CTA_SEQADJ_UNSPEC,
-  CTA_SEQADJ_CORRECTION_POS,
-  CTA_SEQADJ_OFFSET_BEFORE,
-  CTA_SEQADJ_OFFSET_AFTER,
-  __CTA_SEQADJ_MAX
-};
-#define CTA_SEQADJ_MAX (__CTA_SEQADJ_MAX - 1)
-enum ctattr_natseq {
-  CTA_NAT_SEQ_UNSPEC,
-  CTA_NAT_SEQ_CORRECTION_POS,
-  CTA_NAT_SEQ_OFFSET_BEFORE,
-  CTA_NAT_SEQ_OFFSET_AFTER,
-  __CTA_NAT_SEQ_MAX
-};
-#define CTA_NAT_SEQ_MAX (__CTA_NAT_SEQ_MAX - 1)
-enum ctattr_synproxy {
-  CTA_SYNPROXY_UNSPEC,
-  CTA_SYNPROXY_ISN,
-  CTA_SYNPROXY_ITS,
-  CTA_SYNPROXY_TSOFF,
-  __CTA_SYNPROXY_MAX,
-};
-#define CTA_SYNPROXY_MAX (__CTA_SYNPROXY_MAX - 1)
-enum ctattr_expect {
-  CTA_EXPECT_UNSPEC,
-  CTA_EXPECT_MASTER,
-  CTA_EXPECT_TUPLE,
-  CTA_EXPECT_MASK,
-  CTA_EXPECT_TIMEOUT,
-  CTA_EXPECT_ID,
-  CTA_EXPECT_HELP_NAME,
-  CTA_EXPECT_ZONE,
-  CTA_EXPECT_FLAGS,
-  CTA_EXPECT_CLASS,
-  CTA_EXPECT_NAT,
-  CTA_EXPECT_FN,
-  __CTA_EXPECT_MAX
-};
-#define CTA_EXPECT_MAX (__CTA_EXPECT_MAX - 1)
-enum ctattr_expect_nat {
-  CTA_EXPECT_NAT_UNSPEC,
-  CTA_EXPECT_NAT_DIR,
-  CTA_EXPECT_NAT_TUPLE,
-  __CTA_EXPECT_NAT_MAX
-};
-#define CTA_EXPECT_NAT_MAX (__CTA_EXPECT_NAT_MAX - 1)
-enum ctattr_help {
-  CTA_HELP_UNSPEC,
-  CTA_HELP_NAME,
-  CTA_HELP_INFO,
-  __CTA_HELP_MAX
-};
-#define CTA_HELP_MAX (__CTA_HELP_MAX - 1)
-enum ctattr_secctx {
-  CTA_SECCTX_UNSPEC,
-  CTA_SECCTX_NAME,
-  __CTA_SECCTX_MAX
-};
-#define CTA_SECCTX_MAX (__CTA_SECCTX_MAX - 1)
-enum ctattr_stats_cpu {
-  CTA_STATS_UNSPEC,
-  CTA_STATS_SEARCHED,
-  CTA_STATS_FOUND,
-  CTA_STATS_NEW,
-  CTA_STATS_INVALID,
-  CTA_STATS_IGNORE,
-  CTA_STATS_DELETE,
-  CTA_STATS_DELETE_LIST,
-  CTA_STATS_INSERT,
-  CTA_STATS_INSERT_FAILED,
-  CTA_STATS_DROP,
-  CTA_STATS_EARLY_DROP,
-  CTA_STATS_ERROR,
-  CTA_STATS_SEARCH_RESTART,
-  CTA_STATS_CLASH_RESOLVE,
-  CTA_STATS_CHAIN_TOOLONG,
-  __CTA_STATS_MAX,
-};
-#define CTA_STATS_MAX (__CTA_STATS_MAX - 1)
-enum ctattr_stats_global {
-  CTA_STATS_GLOBAL_UNSPEC,
-  CTA_STATS_GLOBAL_ENTRIES,
-  CTA_STATS_GLOBAL_MAX_ENTRIES,
-  __CTA_STATS_GLOBAL_MAX,
-};
-#define CTA_STATS_GLOBAL_MAX (__CTA_STATS_GLOBAL_MAX - 1)
-enum ctattr_expect_stats {
-  CTA_STATS_EXP_UNSPEC,
-  CTA_STATS_EXP_NEW,
-  CTA_STATS_EXP_CREATE,
-  CTA_STATS_EXP_DELETE,
-  __CTA_STATS_EXP_MAX,
-};
-#define CTA_STATS_EXP_MAX (__CTA_STATS_EXP_MAX - 1)
-enum ctattr_filter {
-  CTA_FILTER_UNSPEC,
-  CTA_FILTER_ORIG_FLAGS,
-  CTA_FILTER_REPLY_FLAGS,
-  __CTA_FILTER_MAX
-};
-#define CTA_FILTER_MAX (__CTA_FILTER_MAX - 1)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_cthelper.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_cthelper.h
deleted file mode 100644
index e8c2825..0000000
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_cthelper.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NFNL_CTHELPER_H_
-#define _NFNL_CTHELPER_H_
-#define NFCT_HELPER_STATUS_DISABLED 0
-#define NFCT_HELPER_STATUS_ENABLED 1
-enum nfnl_cthelper_msg_types {
-  NFNL_MSG_CTHELPER_NEW,
-  NFNL_MSG_CTHELPER_GET,
-  NFNL_MSG_CTHELPER_DEL,
-  NFNL_MSG_CTHELPER_MAX
-};
-enum nfnl_cthelper_type {
-  NFCTH_UNSPEC,
-  NFCTH_NAME,
-  NFCTH_TUPLE,
-  NFCTH_QUEUE_NUM,
-  NFCTH_POLICY,
-  NFCTH_PRIV_DATA_LEN,
-  NFCTH_STATUS,
-  __NFCTH_MAX
-};
-#define NFCTH_MAX (__NFCTH_MAX - 1)
-enum nfnl_cthelper_policy_type {
-  NFCTH_POLICY_SET_UNSPEC,
-  NFCTH_POLICY_SET_NUM,
-  NFCTH_POLICY_SET,
-  NFCTH_POLICY_SET1 = NFCTH_POLICY_SET,
-  NFCTH_POLICY_SET2,
-  NFCTH_POLICY_SET3,
-  NFCTH_POLICY_SET4,
-  __NFCTH_POLICY_SET_MAX
-};
-#define NFCTH_POLICY_SET_MAX (__NFCTH_POLICY_SET_MAX - 1)
-enum nfnl_cthelper_pol_type {
-  NFCTH_POLICY_UNSPEC,
-  NFCTH_POLICY_NAME,
-  NFCTH_POLICY_EXPECT_MAX,
-  NFCTH_POLICY_EXPECT_TIMEOUT,
-  __NFCTH_POLICY_MAX
-};
-#define NFCTH_POLICY_MAX (__NFCTH_POLICY_MAX - 1)
-enum nfnl_cthelper_tuple_type {
-  NFCTH_TUPLE_UNSPEC,
-  NFCTH_TUPLE_L3PROTONUM,
-  NFCTH_TUPLE_L4PROTONUM,
-  __NFCTH_TUPLE_MAX,
-};
-#define NFCTH_TUPLE_MAX (__NFCTH_TUPLE_MAX - 1)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_cttimeout.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_cttimeout.h
deleted file mode 100644
index da9fe71..0000000
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_cttimeout.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _CTTIMEOUT_NETLINK_H
-#define _CTTIMEOUT_NETLINK_H
-#include <linux/netfilter/nfnetlink.h>
-enum ctnl_timeout_msg_types {
-  IPCTNL_MSG_TIMEOUT_NEW,
-  IPCTNL_MSG_TIMEOUT_GET,
-  IPCTNL_MSG_TIMEOUT_DELETE,
-  IPCTNL_MSG_TIMEOUT_DEFAULT_SET,
-  IPCTNL_MSG_TIMEOUT_DEFAULT_GET,
-  IPCTNL_MSG_TIMEOUT_MAX
-};
-enum ctattr_timeout {
-  CTA_TIMEOUT_UNSPEC,
-  CTA_TIMEOUT_NAME,
-  CTA_TIMEOUT_L3PROTO,
-  CTA_TIMEOUT_L4PROTO,
-  CTA_TIMEOUT_DATA,
-  CTA_TIMEOUT_USE,
-  __CTA_TIMEOUT_MAX
-};
-#define CTA_TIMEOUT_MAX (__CTA_TIMEOUT_MAX - 1)
-enum ctattr_timeout_generic {
-  CTA_TIMEOUT_GENERIC_UNSPEC,
-  CTA_TIMEOUT_GENERIC_TIMEOUT,
-  __CTA_TIMEOUT_GENERIC_MAX
-};
-#define CTA_TIMEOUT_GENERIC_MAX (__CTA_TIMEOUT_GENERIC_MAX - 1)
-enum ctattr_timeout_tcp {
-  CTA_TIMEOUT_TCP_UNSPEC,
-  CTA_TIMEOUT_TCP_SYN_SENT,
-  CTA_TIMEOUT_TCP_SYN_RECV,
-  CTA_TIMEOUT_TCP_ESTABLISHED,
-  CTA_TIMEOUT_TCP_FIN_WAIT,
-  CTA_TIMEOUT_TCP_CLOSE_WAIT,
-  CTA_TIMEOUT_TCP_LAST_ACK,
-  CTA_TIMEOUT_TCP_TIME_WAIT,
-  CTA_TIMEOUT_TCP_CLOSE,
-  CTA_TIMEOUT_TCP_SYN_SENT2,
-  CTA_TIMEOUT_TCP_RETRANS,
-  CTA_TIMEOUT_TCP_UNACK,
-  __CTA_TIMEOUT_TCP_MAX
-};
-#define CTA_TIMEOUT_TCP_MAX (__CTA_TIMEOUT_TCP_MAX - 1)
-enum ctattr_timeout_udp {
-  CTA_TIMEOUT_UDP_UNSPEC,
-  CTA_TIMEOUT_UDP_UNREPLIED,
-  CTA_TIMEOUT_UDP_REPLIED,
-  __CTA_TIMEOUT_UDP_MAX
-};
-#define CTA_TIMEOUT_UDP_MAX (__CTA_TIMEOUT_UDP_MAX - 1)
-enum ctattr_timeout_udplite {
-  CTA_TIMEOUT_UDPLITE_UNSPEC,
-  CTA_TIMEOUT_UDPLITE_UNREPLIED,
-  CTA_TIMEOUT_UDPLITE_REPLIED,
-  __CTA_TIMEOUT_UDPLITE_MAX
-};
-#define CTA_TIMEOUT_UDPLITE_MAX (__CTA_TIMEOUT_UDPLITE_MAX - 1)
-enum ctattr_timeout_icmp {
-  CTA_TIMEOUT_ICMP_UNSPEC,
-  CTA_TIMEOUT_ICMP_TIMEOUT,
-  __CTA_TIMEOUT_ICMP_MAX
-};
-#define CTA_TIMEOUT_ICMP_MAX (__CTA_TIMEOUT_ICMP_MAX - 1)
-enum ctattr_timeout_dccp {
-  CTA_TIMEOUT_DCCP_UNSPEC,
-  CTA_TIMEOUT_DCCP_REQUEST,
-  CTA_TIMEOUT_DCCP_RESPOND,
-  CTA_TIMEOUT_DCCP_PARTOPEN,
-  CTA_TIMEOUT_DCCP_OPEN,
-  CTA_TIMEOUT_DCCP_CLOSEREQ,
-  CTA_TIMEOUT_DCCP_CLOSING,
-  CTA_TIMEOUT_DCCP_TIMEWAIT,
-  __CTA_TIMEOUT_DCCP_MAX
-};
-#define CTA_TIMEOUT_DCCP_MAX (__CTA_TIMEOUT_DCCP_MAX - 1)
-enum ctattr_timeout_sctp {
-  CTA_TIMEOUT_SCTP_UNSPEC,
-  CTA_TIMEOUT_SCTP_CLOSED,
-  CTA_TIMEOUT_SCTP_COOKIE_WAIT,
-  CTA_TIMEOUT_SCTP_COOKIE_ECHOED,
-  CTA_TIMEOUT_SCTP_ESTABLISHED,
-  CTA_TIMEOUT_SCTP_SHUTDOWN_SENT,
-  CTA_TIMEOUT_SCTP_SHUTDOWN_RECD,
-  CTA_TIMEOUT_SCTP_SHUTDOWN_ACK_SENT,
-  CTA_TIMEOUT_SCTP_HEARTBEAT_SENT,
-  CTA_TIMEOUT_SCTP_HEARTBEAT_ACKED,
-  __CTA_TIMEOUT_SCTP_MAX
-};
-#define CTA_TIMEOUT_SCTP_MAX (__CTA_TIMEOUT_SCTP_MAX - 1)
-enum ctattr_timeout_icmpv6 {
-  CTA_TIMEOUT_ICMPV6_UNSPEC,
-  CTA_TIMEOUT_ICMPV6_TIMEOUT,
-  __CTA_TIMEOUT_ICMPV6_MAX
-};
-#define CTA_TIMEOUT_ICMPV6_MAX (__CTA_TIMEOUT_ICMPV6_MAX - 1)
-enum ctattr_timeout_gre {
-  CTA_TIMEOUT_GRE_UNSPEC,
-  CTA_TIMEOUT_GRE_UNREPLIED,
-  CTA_TIMEOUT_GRE_REPLIED,
-  __CTA_TIMEOUT_GRE_MAX
-};
-#define CTA_TIMEOUT_GRE_MAX (__CTA_TIMEOUT_GRE_MAX - 1)
-#define CTNL_TIMEOUT_NAME_MAX 32
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
deleted file mode 100644
index 702917d..0000000
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NFNL_HOOK_H_
-#define _NFNL_HOOK_H_
-enum nfnl_hook_msg_types {
-  NFNL_MSG_HOOK_GET,
-  NFNL_MSG_HOOK_MAX,
-};
-enum nfnl_hook_attributes {
-  NFNLA_HOOK_UNSPEC,
-  NFNLA_HOOK_HOOKNUM,
-  NFNLA_HOOK_PRIORITY,
-  NFNLA_HOOK_DEV,
-  NFNLA_HOOK_FUNCTION_NAME,
-  NFNLA_HOOK_MODULE_NAME,
-  NFNLA_HOOK_CHAIN_INFO,
-  __NFNLA_HOOK_MAX
-};
-#define NFNLA_HOOK_MAX (__NFNLA_HOOK_MAX - 1)
-enum nfnl_hook_chain_info_attributes {
-  NFNLA_HOOK_INFO_UNSPEC,
-  NFNLA_HOOK_INFO_DESC,
-  NFNLA_HOOK_INFO_TYPE,
-  __NFNLA_HOOK_INFO_MAX,
-};
-#define NFNLA_HOOK_INFO_MAX (__NFNLA_HOOK_INFO_MAX - 1)
-enum nfnl_hook_chain_desc_attributes {
-  NFNLA_CHAIN_UNSPEC,
-  NFNLA_CHAIN_TABLE,
-  NFNLA_CHAIN_FAMILY,
-  NFNLA_CHAIN_NAME,
-  __NFNLA_CHAIN_MAX,
-};
-#define NFNLA_CHAIN_MAX (__NFNLA_CHAIN_MAX - 1)
-enum nfnl_hook_chaintype {
-  NFNL_HOOK_TYPE_NFTABLES = 0x1,
-  NFNL_HOOK_TYPE_BPF,
-};
-enum nfnl_hook_bpf_attributes {
-  NFNLA_HOOK_BPF_UNSPEC,
-  NFNLA_HOOK_BPF_ID,
-  __NFNLA_HOOK_BPF_MAX,
-};
-#define NFNLA_HOOK_BPF_MAX (__NFNLA_HOOK_BPF_MAX - 1)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_log.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_log.h
deleted file mode 100644
index f6a2708..0000000
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_log.h
+++ /dev/null
@@ -1,107 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NFNETLINK_LOG_H
-#define _NFNETLINK_LOG_H
-#include <linux/types.h>
-#include <linux/netfilter/nfnetlink.h>
-enum nfulnl_msg_types {
-  NFULNL_MSG_PACKET,
-  NFULNL_MSG_CONFIG,
-  NFULNL_MSG_MAX
-};
-struct nfulnl_msg_packet_hdr {
-  __be16 hw_protocol;
-  __u8 hook;
-  __u8 _pad;
-};
-struct nfulnl_msg_packet_hw {
-  __be16 hw_addrlen;
-  __u16 _pad;
-  __u8 hw_addr[8];
-};
-struct nfulnl_msg_packet_timestamp {
-  __aligned_be64 sec;
-  __aligned_be64 usec;
-};
-enum nfulnl_vlan_attr {
-  NFULA_VLAN_UNSPEC,
-  NFULA_VLAN_PROTO,
-  NFULA_VLAN_TCI,
-  __NFULA_VLAN_MAX,
-};
-#define NFULA_VLAN_MAX (__NFULA_VLAN_MAX + 1)
-enum nfulnl_attr_type {
-  NFULA_UNSPEC,
-  NFULA_PACKET_HDR,
-  NFULA_MARK,
-  NFULA_TIMESTAMP,
-  NFULA_IFINDEX_INDEV,
-  NFULA_IFINDEX_OUTDEV,
-  NFULA_IFINDEX_PHYSINDEV,
-  NFULA_IFINDEX_PHYSOUTDEV,
-  NFULA_HWADDR,
-  NFULA_PAYLOAD,
-  NFULA_PREFIX,
-  NFULA_UID,
-  NFULA_SEQ,
-  NFULA_SEQ_GLOBAL,
-  NFULA_GID,
-  NFULA_HWTYPE,
-  NFULA_HWHEADER,
-  NFULA_HWLEN,
-  NFULA_CT,
-  NFULA_CT_INFO,
-  NFULA_VLAN,
-  NFULA_L2HDR,
-  __NFULA_MAX
-};
-#define NFULA_MAX (__NFULA_MAX - 1)
-enum nfulnl_msg_config_cmds {
-  NFULNL_CFG_CMD_NONE,
-  NFULNL_CFG_CMD_BIND,
-  NFULNL_CFG_CMD_UNBIND,
-  NFULNL_CFG_CMD_PF_BIND,
-  NFULNL_CFG_CMD_PF_UNBIND,
-};
-struct nfulnl_msg_config_cmd {
-  __u8 command;
-} __attribute__((packed));
-struct nfulnl_msg_config_mode {
-  __be32 copy_range;
-  __u8 copy_mode;
-  __u8 _pad;
-} __attribute__((packed));
-enum nfulnl_attr_config {
-  NFULA_CFG_UNSPEC,
-  NFULA_CFG_CMD,
-  NFULA_CFG_MODE,
-  NFULA_CFG_NLBUFSIZ,
-  NFULA_CFG_TIMEOUT,
-  NFULA_CFG_QTHRESH,
-  NFULA_CFG_FLAGS,
-  __NFULA_CFG_MAX
-};
-#define NFULA_CFG_MAX (__NFULA_CFG_MAX - 1)
-#define NFULNL_COPY_NONE 0x00
-#define NFULNL_COPY_META 0x01
-#define NFULNL_COPY_PACKET 0x02
-#define NFULNL_CFG_F_SEQ 0x0001
-#define NFULNL_CFG_F_SEQ_GLOBAL 0x0002
-#define NFULNL_CFG_F_CONNTRACK 0x0004
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_osf.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_osf.h
deleted file mode 100644
index 3f930da..0000000
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_osf.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NF_OSF_H
-#define _NF_OSF_H
-#include <linux/types.h>
-#include <linux/ip.h>
-#include <linux/tcp.h>
-#define MAXGENRELEN 32
-#define NF_OSF_GENRE (1 << 0)
-#define NF_OSF_TTL (1 << 1)
-#define NF_OSF_LOG (1 << 2)
-#define NF_OSF_INVERT (1 << 3)
-#define NF_OSF_LOGLEVEL_ALL 0
-#define NF_OSF_LOGLEVEL_FIRST 1
-#define NF_OSF_LOGLEVEL_ALL_KNOWN 2
-#define NF_OSF_TTL_TRUE 0
-#define NF_OSF_TTL_LESS 1
-#define NF_OSF_TTL_NOCHECK 2
-#define NF_OSF_FLAGMASK (NF_OSF_GENRE | NF_OSF_TTL | NF_OSF_LOG | NF_OSF_INVERT)
-struct nf_osf_wc {
-  __u32 wc;
-  __u32 val;
-};
-struct nf_osf_opt {
-  __u16 kind, length;
-  struct nf_osf_wc wc;
-};
-struct nf_osf_info {
-  char genre[MAXGENRELEN];
-  __u32 len;
-  __u32 flags;
-  __u32 loglevel;
-  __u32 ttl;
-};
-struct nf_osf_user_finger {
-  struct nf_osf_wc wss;
-  __u8 ttl, df;
-  __u16 ss, mss;
-  __u16 opt_num;
-  char genre[MAXGENRELEN];
-  char version[MAXGENRELEN];
-  char subtype[MAXGENRELEN];
-  struct nf_osf_opt opt[MAX_IPOPTLEN];
-};
-struct nf_osf_nlmsg {
-  struct nf_osf_user_finger f;
-  struct iphdr ip;
-  struct tcphdr tcp;
-};
-enum iana_options {
-  OSFOPT_EOL = 0,
-  OSFOPT_NOP,
-  OSFOPT_MSS,
-  OSFOPT_WSO,
-  OSFOPT_SACKP,
-  OSFOPT_SACK,
-  OSFOPT_ECHO,
-  OSFOPT_ECHOREPLY,
-  OSFOPT_TS,
-  OSFOPT_POCP,
-  OSFOPT_POSP,
-  OSFOPT_EMPTY = 255,
-};
-enum nf_osf_window_size_options {
-  OSF_WSS_PLAIN = 0,
-  OSF_WSS_MSS,
-  OSF_WSS_MTU,
-  OSF_WSS_MODULO,
-  OSF_WSS_MAX,
-};
-enum nf_osf_attr_type {
-  OSF_ATTR_UNSPEC,
-  OSF_ATTR_FINGER,
-  OSF_ATTR_MAX,
-};
-enum nf_osf_msg_types {
-  OSF_MSG_ADD,
-  OSF_MSG_REMOVE,
-  OSF_MSG_MAX,
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/nfnetlink_queue.h b/libc/kernel/uapi/linux/netfilter/nfnetlink_queue.h
deleted file mode 100644
index c2d62ba..0000000
--- a/libc/kernel/uapi/linux/netfilter/nfnetlink_queue.h
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _NFNETLINK_QUEUE_H
-#define _NFNETLINK_QUEUE_H
-#include <linux/types.h>
-#include <linux/netfilter/nfnetlink.h>
-enum nfqnl_msg_types {
-  NFQNL_MSG_PACKET,
-  NFQNL_MSG_VERDICT,
-  NFQNL_MSG_CONFIG,
-  NFQNL_MSG_VERDICT_BATCH,
-  NFQNL_MSG_MAX
-};
-struct nfqnl_msg_packet_hdr {
-  __be32 packet_id;
-  __be16 hw_protocol;
-  __u8 hook;
-} __attribute__((packed));
-struct nfqnl_msg_packet_hw {
-  __be16 hw_addrlen;
-  __u16 _pad;
-  __u8 hw_addr[8];
-};
-struct nfqnl_msg_packet_timestamp {
-  __aligned_be64 sec;
-  __aligned_be64 usec;
-};
-enum nfqnl_vlan_attr {
-  NFQA_VLAN_UNSPEC,
-  NFQA_VLAN_PROTO,
-  NFQA_VLAN_TCI,
-  __NFQA_VLAN_MAX,
-};
-#define NFQA_VLAN_MAX (__NFQA_VLAN_MAX - 1)
-enum nfqnl_attr_type {
-  NFQA_UNSPEC,
-  NFQA_PACKET_HDR,
-  NFQA_VERDICT_HDR,
-  NFQA_MARK,
-  NFQA_TIMESTAMP,
-  NFQA_IFINDEX_INDEV,
-  NFQA_IFINDEX_OUTDEV,
-  NFQA_IFINDEX_PHYSINDEV,
-  NFQA_IFINDEX_PHYSOUTDEV,
-  NFQA_HWADDR,
-  NFQA_PAYLOAD,
-  NFQA_CT,
-  NFQA_CT_INFO,
-  NFQA_CAP_LEN,
-  NFQA_SKB_INFO,
-  NFQA_EXP,
-  NFQA_UID,
-  NFQA_GID,
-  NFQA_SECCTX,
-  NFQA_VLAN,
-  NFQA_L2HDR,
-  NFQA_PRIORITY,
-  NFQA_CGROUP_CLASSID,
-  __NFQA_MAX
-};
-#define NFQA_MAX (__NFQA_MAX - 1)
-struct nfqnl_msg_verdict_hdr {
-  __be32 verdict;
-  __be32 id;
-};
-enum nfqnl_msg_config_cmds {
-  NFQNL_CFG_CMD_NONE,
-  NFQNL_CFG_CMD_BIND,
-  NFQNL_CFG_CMD_UNBIND,
-  NFQNL_CFG_CMD_PF_BIND,
-  NFQNL_CFG_CMD_PF_UNBIND,
-};
-struct nfqnl_msg_config_cmd {
-  __u8 command;
-  __u8 _pad;
-  __be16 pf;
-};
-enum nfqnl_config_mode {
-  NFQNL_COPY_NONE,
-  NFQNL_COPY_META,
-  NFQNL_COPY_PACKET,
-};
-struct nfqnl_msg_config_params {
-  __be32 copy_range;
-  __u8 copy_mode;
-} __attribute__((packed));
-enum nfqnl_attr_config {
-  NFQA_CFG_UNSPEC,
-  NFQA_CFG_CMD,
-  NFQA_CFG_PARAMS,
-  NFQA_CFG_QUEUE_MAXLEN,
-  NFQA_CFG_MASK,
-  NFQA_CFG_FLAGS,
-  __NFQA_CFG_MAX
-};
-#define NFQA_CFG_MAX (__NFQA_CFG_MAX - 1)
-#define NFQA_CFG_F_FAIL_OPEN (1 << 0)
-#define NFQA_CFG_F_CONNTRACK (1 << 1)
-#define NFQA_CFG_F_GSO (1 << 2)
-#define NFQA_CFG_F_UID_GID (1 << 3)
-#define NFQA_CFG_F_SECCTX (1 << 4)
-#define NFQA_CFG_F_MAX (1 << 5)
-#define NFQA_SKB_CSUMNOTREADY (1 << 0)
-#define NFQA_SKB_GSO (1 << 1)
-#define NFQA_SKB_CSUM_NOTVERIFIED (1 << 2)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/x_tables.h b/libc/kernel/uapi/linux/netfilter/x_tables.h
index 0993265..fb01849 100644
--- a/libc/kernel/uapi/linux/netfilter/x_tables.h
+++ b/libc/kernel/uapi/linux/netfilter/x_tables.h
@@ -99,4 +99,4 @@
 #define XT_ENTRY_ITERATE(type,entries,size,fn,args...) XT_ENTRY_ITERATE_CONTINUE(type, entries, size, 0, fn, args)
 #define xt_entry_foreach(pos,ehead,esize) for((pos) = (typeof(pos)) (ehead); (pos) < (typeof(pos)) ((char *) (ehead) + (esize)); (pos) = (typeof(pos)) ((char *) (pos) + (pos)->next_offset))
 #define xt_ematch_foreach(pos,entry) for((pos) = (struct xt_entry_match *) entry->elems; (pos) < (struct xt_entry_match *) ((char *) (entry) + (entry)->target_offset); (pos) = (struct xt_entry_match *) ((char *) (pos) + (pos)->u.match_size))
-#endif
+#endif
\ No newline at end of file
diff --git a/libc/kernel/uapi/linux/netfilter/xt_AUDIT.h b/libc/kernel/uapi/linux/netfilter/xt_AUDIT.h
deleted file mode 100644
index a238375..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_AUDIT.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_AUDIT_TARGET_H
-#define _XT_AUDIT_TARGET_H
-#include <linux/types.h>
-enum {
-  XT_AUDIT_TYPE_ACCEPT = 0,
-  XT_AUDIT_TYPE_DROP,
-  XT_AUDIT_TYPE_REJECT,
-  __XT_AUDIT_TYPE_MAX,
-};
-#define XT_AUDIT_TYPE_MAX (__XT_AUDIT_TYPE_MAX - 1)
-struct xt_audit_info {
-  __u8 type;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_CHECKSUM.h b/libc/kernel/uapi/linux/netfilter/xt_CHECKSUM.h
deleted file mode 100644
index ecbce0e..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_CHECKSUM.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CHECKSUM_TARGET_H
-#define _XT_CHECKSUM_TARGET_H
-#include <linux/types.h>
-#define XT_CHECKSUM_OP_FILL 0x01
-struct xt_CHECKSUM_info {
-  __u8 operation;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_CLASSIFY.h b/libc/kernel/uapi/linux/netfilter/xt_CLASSIFY.h
deleted file mode 100644
index df0fcd2..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_CLASSIFY.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CLASSIFY_H
-#define _XT_CLASSIFY_H
-#include <linux/types.h>
-struct xt_classify_target_info {
-  __u32 priority;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_CONNMARK.h b/libc/kernel/uapi/linux/netfilter/xt_CONNMARK.h
deleted file mode 100644
index 449511e..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_CONNMARK.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CONNMARK_H_target
-#define _XT_CONNMARK_H_target
-#include <linux/netfilter/xt_connmark.h>
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_CONNSECMARK.h b/libc/kernel/uapi/linux/netfilter/xt_CONNSECMARK.h
deleted file mode 100644
index d58385a..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_CONNSECMARK.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CONNSECMARK_H_target
-#define _XT_CONNSECMARK_H_target
-#include <linux/types.h>
-enum {
-  CONNSECMARK_SAVE = 1,
-  CONNSECMARK_RESTORE,
-};
-struct xt_connsecmark_target_info {
-  __u8 mode;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_CT.h b/libc/kernel/uapi/linux/netfilter/xt_CT.h
deleted file mode 100644
index 9c4b255..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_CT.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CT_H
-#define _XT_CT_H
-#include <linux/types.h>
-enum {
-  XT_CT_NOTRACK = 1 << 0,
-  XT_CT_NOTRACK_ALIAS = 1 << 1,
-  XT_CT_ZONE_DIR_ORIG = 1 << 2,
-  XT_CT_ZONE_DIR_REPL = 1 << 3,
-  XT_CT_ZONE_MARK = 1 << 4,
-  XT_CT_MASK = XT_CT_NOTRACK | XT_CT_NOTRACK_ALIAS | XT_CT_ZONE_DIR_ORIG | XT_CT_ZONE_DIR_REPL | XT_CT_ZONE_MARK,
-};
-struct xt_ct_target_info {
-  __u16 flags;
-  __u16 zone;
-  __u32 ct_events;
-  __u32 exp_events;
-  char helper[16];
-  struct nf_conn * ct __attribute__((aligned(8)));
-};
-struct xt_ct_target_info_v1 {
-  __u16 flags;
-  __u16 zone;
-  __u32 ct_events;
-  __u32 exp_events;
-  char helper[16];
-  char timeout[32];
-  struct nf_conn * ct __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_DSCP.h b/libc/kernel/uapi/linux/netfilter/xt_DSCP.h
deleted file mode 100644
index adc3785..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_DSCP.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_DSCP_TARGET_H
-#define _XT_DSCP_TARGET_H
-#include <linux/netfilter/xt_dscp.h>
-#include <linux/types.h>
-struct xt_DSCP_info {
-  __u8 dscp;
-};
-struct xt_tos_target_info {
-  __u8 tos_value;
-  __u8 tos_mask;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_HMARK.h b/libc/kernel/uapi/linux/netfilter/xt_HMARK.h
deleted file mode 100644
index b72c23c..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_HMARK.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 XT_HMARK_H_
-#define XT_HMARK_H_
-#include <linux/types.h>
-#include <linux/netfilter.h>
-enum {
-  XT_HMARK_SADDR_MASK,
-  XT_HMARK_DADDR_MASK,
-  XT_HMARK_SPI,
-  XT_HMARK_SPI_MASK,
-  XT_HMARK_SPORT,
-  XT_HMARK_DPORT,
-  XT_HMARK_SPORT_MASK,
-  XT_HMARK_DPORT_MASK,
-  XT_HMARK_PROTO_MASK,
-  XT_HMARK_RND,
-  XT_HMARK_MODULUS,
-  XT_HMARK_OFFSET,
-  XT_HMARK_CT,
-  XT_HMARK_METHOD_L3,
-  XT_HMARK_METHOD_L3_4,
-};
-#define XT_HMARK_FLAG(flag) (1 << flag)
-union hmark_ports {
-  struct {
-    __u16 src;
-    __u16 dst;
-  } p16;
-  struct {
-    __be16 src;
-    __be16 dst;
-  } b16;
-  __u32 v32;
-  __be32 b32;
-};
-struct xt_hmark_info {
-  union nf_inet_addr src_mask;
-  union nf_inet_addr dst_mask;
-  union hmark_ports port_mask;
-  union hmark_ports port_set;
-  __u32 flags;
-  __u16 proto_mask;
-  __u32 hashrnd;
-  __u32 hmodulus;
-  __u32 hoffset;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_IDLETIMER.h b/libc/kernel/uapi/linux/netfilter/xt_IDLETIMER.h
deleted file mode 100644
index f4defb6..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_IDLETIMER.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_IDLETIMER_H
-#define _XT_IDLETIMER_H
-#include <linux/types.h>
-#define MAX_IDLETIMER_LABEL_SIZE 28
-#define XT_IDLETIMER_ALARM 0x01
-struct idletimer_tg_info {
-  __u32 timeout;
-  char label[MAX_IDLETIMER_LABEL_SIZE];
-  struct idletimer_tg * timer __attribute__((aligned(8)));
-};
-struct idletimer_tg_info_v1 {
-  __u32 timeout;
-  char label[MAX_IDLETIMER_LABEL_SIZE];
-  __u8 send_nl_msg;
-  __u8 timer_type;
-  struct idletimer_tg * timer __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_LED.h b/libc/kernel/uapi/linux/netfilter/xt_LED.h
deleted file mode 100644
index cbd1522..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_LED.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_LED_H
-#define _XT_LED_H
-#include <linux/types.h>
-struct xt_led_info {
-  char id[27];
-  __u8 always_blink;
-  __u32 delay;
-  void * internal_data __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_LOG.h b/libc/kernel/uapi/linux/netfilter/xt_LOG.h
deleted file mode 100644
index c80c936..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_LOG.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_LOG_H
-#define _XT_LOG_H
-#define XT_LOG_TCPSEQ 0x01
-#define XT_LOG_TCPOPT 0x02
-#define XT_LOG_IPOPT 0x04
-#define XT_LOG_UID 0x08
-#define XT_LOG_NFLOG 0x10
-#define XT_LOG_MACDECODE 0x20
-#define XT_LOG_MASK 0x2f
-struct xt_log_info {
-  unsigned char level;
-  unsigned char logflags;
-  char prefix[30];
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_MARK.h b/libc/kernel/uapi/linux/netfilter/xt_MARK.h
deleted file mode 100644
index e091cc6..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_MARK.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_MARK_H_target
-#define _XT_MARK_H_target
-#include <linux/netfilter/xt_mark.h>
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_NFLOG.h b/libc/kernel/uapi/linux/netfilter/xt_NFLOG.h
deleted file mode 100644
index 135109c..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_NFLOG.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_NFLOG_TARGET
-#define _XT_NFLOG_TARGET
-#include <linux/types.h>
-#define XT_NFLOG_DEFAULT_GROUP 0x1
-#define XT_NFLOG_DEFAULT_THRESHOLD 0
-#define XT_NFLOG_MASK 0x1
-#define XT_NFLOG_F_COPY_LEN 0x1
-struct xt_nflog_info {
-  __u32 len;
-  __u16 group;
-  __u16 threshold;
-  __u16 flags;
-  __u16 pad;
-  char prefix[64];
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_NFQUEUE.h b/libc/kernel/uapi/linux/netfilter/xt_NFQUEUE.h
deleted file mode 100644
index 977ba5f..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_NFQUEUE.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_NFQ_TARGET_H
-#define _XT_NFQ_TARGET_H
-#include <linux/types.h>
-struct xt_NFQ_info {
-  __u16 queuenum;
-};
-struct xt_NFQ_info_v1 {
-  __u16 queuenum;
-  __u16 queues_total;
-};
-struct xt_NFQ_info_v2 {
-  __u16 queuenum;
-  __u16 queues_total;
-  __u16 bypass;
-};
-struct xt_NFQ_info_v3 {
-  __u16 queuenum;
-  __u16 queues_total;
-  __u16 flags;
-#define NFQ_FLAG_BYPASS 0x01
-#define NFQ_FLAG_CPU_FANOUT 0x02
-#define NFQ_FLAG_MASK 0x03
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_RATEEST.h b/libc/kernel/uapi/linux/netfilter/xt_RATEEST.h
deleted file mode 100644
index 0517d79..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_RATEEST.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_RATEEST_TARGET_H
-#define _XT_RATEEST_TARGET_H
-#include <linux/types.h>
-#include <linux/if.h>
-struct xt_rateest_target_info {
-  char name[IFNAMSIZ];
-  __s8 interval;
-  __u8 ewma_log;
-  struct xt_rateest * est __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h b/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
deleted file mode 100644
index 6dd8dbc..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_SECMARK_H_target
-#define _XT_SECMARK_H_target
-#include <linux/types.h>
-#define SECMARK_MODE_SEL 0x01
-#define SECMARK_SECCTX_MAX 256
-struct xt_secmark_target_info {
-  __u8 mode;
-  __u32 secid;
-  char secctx[SECMARK_SECCTX_MAX];
-};
-struct xt_secmark_target_info_v1 {
-  __u8 mode;
-  char secctx[SECMARK_SECCTX_MAX];
-  __u32 secid;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h b/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h
deleted file mode 100644
index 4d7f436..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_SYNPROXY.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_SYNPROXY_H
-#define _XT_SYNPROXY_H
-#include <linux/netfilter/nf_synproxy.h>
-#define XT_SYNPROXY_OPT_MSS NF_SYNPROXY_OPT_MSS
-#define XT_SYNPROXY_OPT_WSCALE NF_SYNPROXY_OPT_WSCALE
-#define XT_SYNPROXY_OPT_SACK_PERM NF_SYNPROXY_OPT_SACK_PERM
-#define XT_SYNPROXY_OPT_TIMESTAMP NF_SYNPROXY_OPT_TIMESTAMP
-#define XT_SYNPROXY_OPT_ECN NF_SYNPROXY_OPT_ECN
-#define xt_synproxy_info nf_synproxy_info
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_TCPMSS.h b/libc/kernel/uapi/linux/netfilter/xt_TCPMSS.h
deleted file mode 100644
index ec6adc6..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_TCPMSS.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_TCPMSS_H
-#define _XT_TCPMSS_H
-#include <linux/types.h>
-struct xt_tcpmss_info {
-  __u16 mss;
-};
-#define XT_TCPMSS_CLAMP_PMTU 0xffff
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_TCPOPTSTRIP.h b/libc/kernel/uapi/linux/netfilter/xt_TCPOPTSTRIP.h
deleted file mode 100644
index 7b7a25b..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_TCPOPTSTRIP.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_TCPOPTSTRIP_H
-#define _XT_TCPOPTSTRIP_H
-#include <linux/types.h>
-#define tcpoptstrip_set_bit(bmap,idx) (bmap[(idx) >> 5] |= 1U << (idx & 31))
-#define tcpoptstrip_test_bit(bmap,idx) (((1U << (idx & 31)) & bmap[(idx) >> 5]) != 0)
-struct xt_tcpoptstrip_target_info {
-  __u32 strip_bmap[8];
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_TEE.h b/libc/kernel/uapi/linux/netfilter/xt_TEE.h
deleted file mode 100644
index 4dca1d7..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_TEE.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_TEE_TARGET_H
-#define _XT_TEE_TARGET_H
-#include <linux/netfilter.h>
-struct xt_tee_tginfo {
-  union nf_inet_addr gw;
-  char oif[16];
-  struct xt_tee_priv * priv __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_TPROXY.h b/libc/kernel/uapi/linux/netfilter/xt_TPROXY.h
deleted file mode 100644
index 3cfbc90..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_TPROXY.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_TPROXY_H
-#define _XT_TPROXY_H
-#include <linux/types.h>
-#include <linux/netfilter.h>
-struct xt_tproxy_target_info {
-  __u32 mark_mask;
-  __u32 mark_value;
-  __be32 laddr;
-  __be16 lport;
-};
-struct xt_tproxy_target_info_v1 {
-  __u32 mark_mask;
-  __u32 mark_value;
-  union nf_inet_addr laddr;
-  __be16 lport;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_addrtype.h b/libc/kernel/uapi/linux/netfilter/xt_addrtype.h
deleted file mode 100644
index a4acc5d..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_addrtype.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_ADDRTYPE_H
-#define _XT_ADDRTYPE_H
-#include <linux/types.h>
-enum {
-  XT_ADDRTYPE_INVERT_SOURCE = 0x0001,
-  XT_ADDRTYPE_INVERT_DEST = 0x0002,
-  XT_ADDRTYPE_LIMIT_IFACE_IN = 0x0004,
-  XT_ADDRTYPE_LIMIT_IFACE_OUT = 0x0008,
-};
-enum {
-  XT_ADDRTYPE_UNSPEC = 1 << 0,
-  XT_ADDRTYPE_UNICAST = 1 << 1,
-  XT_ADDRTYPE_LOCAL = 1 << 2,
-  XT_ADDRTYPE_BROADCAST = 1 << 3,
-  XT_ADDRTYPE_ANYCAST = 1 << 4,
-  XT_ADDRTYPE_MULTICAST = 1 << 5,
-  XT_ADDRTYPE_BLACKHOLE = 1 << 6,
-  XT_ADDRTYPE_UNREACHABLE = 1 << 7,
-  XT_ADDRTYPE_PROHIBIT = 1 << 8,
-  XT_ADDRTYPE_THROW = 1 << 9,
-  XT_ADDRTYPE_NAT = 1 << 10,
-  XT_ADDRTYPE_XRESOLVE = 1 << 11,
-};
-struct xt_addrtype_info_v1 {
-  __u16 source;
-  __u16 dest;
-  __u32 flags;
-};
-struct xt_addrtype_info {
-  __u16 source;
-  __u16 dest;
-  __u32 invert_source;
-  __u32 invert_dest;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_bpf.h b/libc/kernel/uapi/linux/netfilter/xt_bpf.h
deleted file mode 100644
index 043af45..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_bpf.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_BPF_H
-#define _XT_BPF_H
-#include <linux/filter.h>
-#include <linux/limits.h>
-#include <linux/types.h>
-#define XT_BPF_MAX_NUM_INSTR 64
-#define XT_BPF_PATH_MAX (XT_BPF_MAX_NUM_INSTR * sizeof(struct sock_filter))
-struct bpf_prog;
-struct xt_bpf_info {
-  __u16 bpf_program_num_elem;
-  struct sock_filter bpf_program[XT_BPF_MAX_NUM_INSTR];
-  struct bpf_prog * filter __attribute__((aligned(8)));
-};
-enum xt_bpf_modes {
-  XT_BPF_MODE_BYTECODE,
-  XT_BPF_MODE_FD_PINNED,
-  XT_BPF_MODE_FD_ELF,
-};
-#define XT_BPF_MODE_PATH_PINNED XT_BPF_MODE_FD_PINNED
-struct xt_bpf_info_v1 {
-  __u16 mode;
-  __u16 bpf_program_num_elem;
-  __s32 fd;
-  union {
-    struct sock_filter bpf_program[XT_BPF_MAX_NUM_INSTR];
-    char path[XT_BPF_PATH_MAX];
-  };
-  struct bpf_prog * filter __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_cgroup.h b/libc/kernel/uapi/linux/netfilter/xt_cgroup.h
deleted file mode 100644
index 6d939ea..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_cgroup.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_XT_CGROUP_H
-#define _UAPI_XT_CGROUP_H
-#include <linux/types.h>
-#include <linux/limits.h>
-struct xt_cgroup_info_v0 {
-  __u32 id;
-  __u32 invert;
-};
-struct xt_cgroup_info_v1 {
-  __u8 has_path;
-  __u8 has_classid;
-  __u8 invert_path;
-  __u8 invert_classid;
-  char path[PATH_MAX];
-  __u32 classid;
-  void * priv __attribute__((aligned(8)));
-};
-#define XT_CGROUP_PATH_MAX 512
-struct xt_cgroup_info_v2 {
-  __u8 has_path;
-  __u8 has_classid;
-  __u8 invert_path;
-  __u8 invert_classid;
-  union {
-    char path[XT_CGROUP_PATH_MAX];
-    __u32 classid;
-  };
-  void * priv __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_cluster.h b/libc/kernel/uapi/linux/netfilter/xt_cluster.h
deleted file mode 100644
index e532f7d..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_cluster.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CLUSTER_MATCH_H
-#define _XT_CLUSTER_MATCH_H
-#include <linux/types.h>
-enum xt_cluster_flags {
-  XT_CLUSTER_F_INV = (1 << 0)
-};
-struct xt_cluster_match_info {
-  __u32 total_nodes;
-  __u32 node_mask;
-  __u32 hash_seed;
-  __u32 flags;
-};
-#define XT_CLUSTER_NODES_MAX 32
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_comment.h b/libc/kernel/uapi/linux/netfilter/xt_comment.h
deleted file mode 100644
index 2b44718..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_comment.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_COMMENT_H
-#define _XT_COMMENT_H
-#define XT_MAX_COMMENT_LEN 256
-struct xt_comment_info {
-  char comment[XT_MAX_COMMENT_LEN];
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connbytes.h b/libc/kernel/uapi/linux/netfilter/xt_connbytes.h
deleted file mode 100644
index a3efa02..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_connbytes.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CONNBYTES_H
-#define _XT_CONNBYTES_H
-#include <linux/types.h>
-enum xt_connbytes_what {
-  XT_CONNBYTES_PKTS,
-  XT_CONNBYTES_BYTES,
-  XT_CONNBYTES_AVGPKT,
-};
-enum xt_connbytes_direction {
-  XT_CONNBYTES_DIR_ORIGINAL,
-  XT_CONNBYTES_DIR_REPLY,
-  XT_CONNBYTES_DIR_BOTH,
-};
-struct xt_connbytes_info {
-  struct {
-    __aligned_u64 from;
-    __aligned_u64 to;
-  } count;
-  __u8 what;
-  __u8 direction;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connlabel.h b/libc/kernel/uapi/linux/netfilter/xt_connlabel.h
deleted file mode 100644
index 7548fa1..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_connlabel.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_XT_CONNLABEL_H
-#define _UAPI_XT_CONNLABEL_H
-#include <linux/types.h>
-#define XT_CONNLABEL_MAXBIT 127
-enum xt_connlabel_mtopts {
-  XT_CONNLABEL_OP_INVERT = 1 << 0,
-  XT_CONNLABEL_OP_SET = 1 << 1,
-};
-struct xt_connlabel_mtinfo {
-  __u16 bit;
-  __u16 options;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connlimit.h b/libc/kernel/uapi/linux/netfilter/xt_connlimit.h
deleted file mode 100644
index 9ff2de9..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_connlimit.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CONNLIMIT_H
-#define _XT_CONNLIMIT_H
-#include <linux/types.h>
-#include <linux/netfilter.h>
-struct xt_connlimit_data;
-enum {
-  XT_CONNLIMIT_INVERT = 1 << 0,
-  XT_CONNLIMIT_DADDR = 1 << 1,
-};
-struct xt_connlimit_info {
-  union {
-    union nf_inet_addr mask;
-    union {
-      __be32 v4_mask;
-      __be32 v6_mask[4];
-    };
-  };
-  unsigned int limit;
-  __u32 flags;
-  struct nf_conncount_data * data __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_connmark.h b/libc/kernel/uapi/linux/netfilter/xt_connmark.h
deleted file mode 100644
index f14474f..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_connmark.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CONNMARK_H
-#define _XT_CONNMARK_H
-#include <linux/types.h>
-enum {
-  XT_CONNMARK_SET = 0,
-  XT_CONNMARK_SAVE,
-  XT_CONNMARK_RESTORE
-};
-enum {
-  D_SHIFT_LEFT = 0,
-  D_SHIFT_RIGHT,
-};
-struct xt_connmark_tginfo1 {
-  __u32 ctmark, ctmask, nfmask;
-  __u8 mode;
-};
-struct xt_connmark_tginfo2 {
-  __u32 ctmark, ctmask, nfmask;
-  __u8 shift_dir, shift_bits, mode;
-};
-struct xt_connmark_mtinfo1 {
-  __u32 mark, mask;
-  __u8 invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_conntrack.h b/libc/kernel/uapi/linux/netfilter/xt_conntrack.h
deleted file mode 100644
index 5472cc5..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_conntrack.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CONNTRACK_H
-#define _XT_CONNTRACK_H
-#include <linux/types.h>
-#include <linux/netfilter.h>
-#include <linux/netfilter/nf_conntrack_tuple_common.h>
-#define XT_CONNTRACK_STATE_BIT(ctinfo) (1 << ((ctinfo) % IP_CT_IS_REPLY + 1))
-#define XT_CONNTRACK_STATE_INVALID (1 << 0)
-#define XT_CONNTRACK_STATE_SNAT (1 << (IP_CT_NUMBER + 1))
-#define XT_CONNTRACK_STATE_DNAT (1 << (IP_CT_NUMBER + 2))
-#define XT_CONNTRACK_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 3))
-enum {
-  XT_CONNTRACK_STATE = 1 << 0,
-  XT_CONNTRACK_PROTO = 1 << 1,
-  XT_CONNTRACK_ORIGSRC = 1 << 2,
-  XT_CONNTRACK_ORIGDST = 1 << 3,
-  XT_CONNTRACK_REPLSRC = 1 << 4,
-  XT_CONNTRACK_REPLDST = 1 << 5,
-  XT_CONNTRACK_STATUS = 1 << 6,
-  XT_CONNTRACK_EXPIRES = 1 << 7,
-  XT_CONNTRACK_ORIGSRC_PORT = 1 << 8,
-  XT_CONNTRACK_ORIGDST_PORT = 1 << 9,
-  XT_CONNTRACK_REPLSRC_PORT = 1 << 10,
-  XT_CONNTRACK_REPLDST_PORT = 1 << 11,
-  XT_CONNTRACK_DIRECTION = 1 << 12,
-  XT_CONNTRACK_STATE_ALIAS = 1 << 13,
-};
-struct xt_conntrack_mtinfo1 {
-  union nf_inet_addr origsrc_addr, origsrc_mask;
-  union nf_inet_addr origdst_addr, origdst_mask;
-  union nf_inet_addr replsrc_addr, replsrc_mask;
-  union nf_inet_addr repldst_addr, repldst_mask;
-  __u32 expires_min, expires_max;
-  __u16 l4proto;
-  __be16 origsrc_port, origdst_port;
-  __be16 replsrc_port, repldst_port;
-  __u16 match_flags, invert_flags;
-  __u8 state_mask, status_mask;
-};
-struct xt_conntrack_mtinfo2 {
-  union nf_inet_addr origsrc_addr, origsrc_mask;
-  union nf_inet_addr origdst_addr, origdst_mask;
-  union nf_inet_addr replsrc_addr, replsrc_mask;
-  union nf_inet_addr repldst_addr, repldst_mask;
-  __u32 expires_min, expires_max;
-  __u16 l4proto;
-  __be16 origsrc_port, origdst_port;
-  __be16 replsrc_port, repldst_port;
-  __u16 match_flags, invert_flags;
-  __u16 state_mask, status_mask;
-};
-struct xt_conntrack_mtinfo3 {
-  union nf_inet_addr origsrc_addr, origsrc_mask;
-  union nf_inet_addr origdst_addr, origdst_mask;
-  union nf_inet_addr replsrc_addr, replsrc_mask;
-  union nf_inet_addr repldst_addr, repldst_mask;
-  __u32 expires_min, expires_max;
-  __u16 l4proto;
-  __u16 origsrc_port, origdst_port;
-  __u16 replsrc_port, repldst_port;
-  __u16 match_flags, invert_flags;
-  __u16 state_mask, status_mask;
-  __u16 origsrc_port_high, origdst_port_high;
-  __u16 replsrc_port_high, repldst_port_high;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_cpu.h b/libc/kernel/uapi/linux/netfilter/xt_cpu.h
deleted file mode 100644
index 76e8134..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_cpu.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_CPU_H
-#define _XT_CPU_H
-#include <linux/types.h>
-struct xt_cpu_info {
-  __u32 cpu;
-  __u32 invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_dccp.h b/libc/kernel/uapi/linux/netfilter/xt_dccp.h
deleted file mode 100644
index b4e5748..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_dccp.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_DCCP_H_
-#define _XT_DCCP_H_
-#include <linux/types.h>
-#define XT_DCCP_SRC_PORTS 0x01
-#define XT_DCCP_DEST_PORTS 0x02
-#define XT_DCCP_TYPE 0x04
-#define XT_DCCP_OPTION 0x08
-#define XT_DCCP_VALID_FLAGS 0x0f
-struct xt_dccp_info {
-  __u16 dpts[2];
-  __u16 spts[2];
-  __u16 flags;
-  __u16 invflags;
-  __u16 typemask;
-  __u8 option;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_devgroup.h b/libc/kernel/uapi/linux/netfilter/xt_devgroup.h
deleted file mode 100644
index 639484a..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_devgroup.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_DEVGROUP_H
-#define _XT_DEVGROUP_H
-#include <linux/types.h>
-enum xt_devgroup_flags {
-  XT_DEVGROUP_MATCH_SRC = 0x1,
-  XT_DEVGROUP_INVERT_SRC = 0x2,
-  XT_DEVGROUP_MATCH_DST = 0x4,
-  XT_DEVGROUP_INVERT_DST = 0x8,
-};
-struct xt_devgroup_info {
-  __u32 flags;
-  __u32 src_group;
-  __u32 src_mask;
-  __u32 dst_group;
-  __u32 dst_mask;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_dscp.h b/libc/kernel/uapi/linux/netfilter/xt_dscp.h
deleted file mode 100644
index f34afc0..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_dscp.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_DSCP_H
-#define _XT_DSCP_H
-#include <linux/types.h>
-#define XT_DSCP_MASK 0xfc
-#define XT_DSCP_SHIFT 2
-#define XT_DSCP_MAX 0x3f
-struct xt_dscp_info {
-  __u8 dscp;
-  __u8 invert;
-};
-struct xt_tos_match_info {
-  __u8 tos_mask;
-  __u8 tos_value;
-  __u8 invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_ecn.h b/libc/kernel/uapi/linux/netfilter/xt_ecn.h
deleted file mode 100644
index aee7d84..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_ecn.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_ECN_H
-#define _XT_ECN_H
-#include <linux/types.h>
-#include <linux/netfilter/xt_dscp.h>
-#define XT_ECN_IP_MASK (~XT_DSCP_MASK)
-#define XT_ECN_OP_MATCH_IP 0x01
-#define XT_ECN_OP_MATCH_ECE 0x10
-#define XT_ECN_OP_MATCH_CWR 0x20
-#define XT_ECN_OP_MATCH_MASK 0xce
-struct xt_ecn_info {
-  __u8 operation;
-  __u8 invert;
-  __u8 ip_ect;
-  union {
-    struct {
-      __u8 ect;
-    } tcp;
-  } proto;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_esp.h b/libc/kernel/uapi/linux/netfilter/xt_esp.h
deleted file mode 100644
index 22e7632..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_esp.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_ESP_H
-#define _XT_ESP_H
-#include <linux/types.h>
-struct xt_esp {
-  __u32 spis[2];
-  __u8 invflags;
-};
-#define XT_ESP_INV_SPI 0x01
-#define XT_ESP_INV_MASK 0x01
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_hashlimit.h b/libc/kernel/uapi/linux/netfilter/xt_hashlimit.h
deleted file mode 100644
index 572c85d..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_hashlimit.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_XT_HASHLIMIT_H
-#define _UAPI_XT_HASHLIMIT_H
-#include <linux/types.h>
-#include <linux/limits.h>
-#include <linux/if.h>
-#define XT_HASHLIMIT_SCALE 10000
-#define XT_HASHLIMIT_SCALE_v2 1000000llu
-#define XT_HASHLIMIT_BYTE_SHIFT 4
-struct xt_hashlimit_htable;
-enum {
-  XT_HASHLIMIT_HASH_DIP = 1 << 0,
-  XT_HASHLIMIT_HASH_DPT = 1 << 1,
-  XT_HASHLIMIT_HASH_SIP = 1 << 2,
-  XT_HASHLIMIT_HASH_SPT = 1 << 3,
-  XT_HASHLIMIT_INVERT = 1 << 4,
-  XT_HASHLIMIT_BYTES = 1 << 5,
-  XT_HASHLIMIT_RATE_MATCH = 1 << 6,
-};
-struct hashlimit_cfg {
-  __u32 mode;
-  __u32 avg;
-  __u32 burst;
-  __u32 size;
-  __u32 max;
-  __u32 gc_interval;
-  __u32 expire;
-};
-struct xt_hashlimit_info {
-  char name[IFNAMSIZ];
-  struct hashlimit_cfg cfg;
-  struct xt_hashlimit_htable * hinfo;
-  union {
-    void * ptr;
-    struct xt_hashlimit_info * master;
-  } u;
-};
-struct hashlimit_cfg1 {
-  __u32 mode;
-  __u32 avg;
-  __u32 burst;
-  __u32 size;
-  __u32 max;
-  __u32 gc_interval;
-  __u32 expire;
-  __u8 srcmask, dstmask;
-};
-struct hashlimit_cfg2 {
-  __u64 avg;
-  __u64 burst;
-  __u32 mode;
-  __u32 size;
-  __u32 max;
-  __u32 gc_interval;
-  __u32 expire;
-  __u8 srcmask, dstmask;
-};
-struct hashlimit_cfg3 {
-  __u64 avg;
-  __u64 burst;
-  __u32 mode;
-  __u32 size;
-  __u32 max;
-  __u32 gc_interval;
-  __u32 expire;
-  __u32 interval;
-  __u8 srcmask, dstmask;
-};
-struct xt_hashlimit_mtinfo1 {
-  char name[IFNAMSIZ];
-  struct hashlimit_cfg1 cfg;
-  struct xt_hashlimit_htable * hinfo __attribute__((aligned(8)));
-};
-struct xt_hashlimit_mtinfo2 {
-  char name[NAME_MAX];
-  struct hashlimit_cfg2 cfg;
-  struct xt_hashlimit_htable * hinfo __attribute__((aligned(8)));
-};
-struct xt_hashlimit_mtinfo3 {
-  char name[NAME_MAX];
-  struct hashlimit_cfg3 cfg;
-  struct xt_hashlimit_htable * hinfo __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_helper.h b/libc/kernel/uapi/linux/netfilter/xt_helper.h
deleted file mode 100644
index d792274..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_helper.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_HELPER_H
-#define _XT_HELPER_H
-struct xt_helper_info {
-  int invert;
-  char name[30];
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_ipcomp.h b/libc/kernel/uapi/linux/netfilter/xt_ipcomp.h
deleted file mode 100644
index 4e99d70..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_ipcomp.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_IPCOMP_H
-#define _XT_IPCOMP_H
-#include <linux/types.h>
-struct xt_ipcomp {
-  __u32 spis[2];
-  __u8 invflags;
-  __u8 hdrres;
-};
-#define XT_IPCOMP_INV_SPI 0x01
-#define XT_IPCOMP_INV_MASK 0x01
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_iprange.h b/libc/kernel/uapi/linux/netfilter/xt_iprange.h
deleted file mode 100644
index 57ab108..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_iprange.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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_NETFILTER_XT_IPRANGE_H
-#define _LINUX_NETFILTER_XT_IPRANGE_H 1
-#include <linux/types.h>
-#include <linux/netfilter.h>
-enum {
-  IPRANGE_SRC = 1 << 0,
-  IPRANGE_DST = 1 << 1,
-  IPRANGE_SRC_INV = 1 << 4,
-  IPRANGE_DST_INV = 1 << 5,
-};
-struct xt_iprange_mtinfo {
-  union nf_inet_addr src_min, src_max;
-  union nf_inet_addr dst_min, dst_max;
-  __u8 flags;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_ipvs.h b/libc/kernel/uapi/linux/netfilter/xt_ipvs.h
deleted file mode 100644
index 6f649b1..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_ipvs.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_IPVS_H
-#define _XT_IPVS_H
-#include <linux/types.h>
-#include <linux/netfilter.h>
-enum {
-  XT_IPVS_IPVS_PROPERTY = 1 << 0,
-  XT_IPVS_PROTO = 1 << 1,
-  XT_IPVS_VADDR = 1 << 2,
-  XT_IPVS_VPORT = 1 << 3,
-  XT_IPVS_DIR = 1 << 4,
-  XT_IPVS_METHOD = 1 << 5,
-  XT_IPVS_VPORTCTL = 1 << 6,
-  XT_IPVS_MASK = (1 << 7) - 1,
-  XT_IPVS_ONCE_MASK = XT_IPVS_MASK & ~XT_IPVS_IPVS_PROPERTY
-};
-struct xt_ipvs_mtinfo {
-  union nf_inet_addr vaddr, vmask;
-  __be16 vport;
-  __u8 l4proto;
-  __u8 fwd_method;
-  __be16 vportctl;
-  __u8 invert;
-  __u8 bitmask;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_l2tp.h b/libc/kernel/uapi/linux/netfilter/xt_l2tp.h
deleted file mode 100644
index cad9921..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_l2tp.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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_NETFILTER_XT_L2TP_H
-#define _LINUX_NETFILTER_XT_L2TP_H
-#include <linux/types.h>
-enum xt_l2tp_type {
-  XT_L2TP_TYPE_CONTROL,
-  XT_L2TP_TYPE_DATA,
-};
-struct xt_l2tp_info {
-  __u32 tid;
-  __u32 sid;
-  __u8 version;
-  __u8 type;
-  __u8 flags;
-};
-enum {
-  XT_L2TP_TID = (1 << 0),
-  XT_L2TP_SID = (1 << 1),
-  XT_L2TP_VERSION = (1 << 2),
-  XT_L2TP_TYPE = (1 << 3),
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_length.h b/libc/kernel/uapi/linux/netfilter/xt_length.h
deleted file mode 100644
index 4a0792a..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_length.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_LENGTH_H
-#define _XT_LENGTH_H
-#include <linux/types.h>
-struct xt_length_info {
-  __u16 min, max;
-  __u8 invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_limit.h b/libc/kernel/uapi/linux/netfilter/xt_limit.h
deleted file mode 100644
index 785679f..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_limit.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_RATE_H
-#define _XT_RATE_H
-#include <linux/types.h>
-#define XT_LIMIT_SCALE 10000
-struct xt_limit_priv;
-struct xt_rateinfo {
-  __u32 avg;
-  __u32 burst;
-  unsigned long prev;
-  __u32 credit;
-  __u32 credit_cap, cost;
-  struct xt_limit_priv * master;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_mac.h b/libc/kernel/uapi/linux/netfilter/xt_mac.h
deleted file mode 100644
index bc7b7c8..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_mac.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_MAC_H
-#define _XT_MAC_H
-#include <linux/if_ether.h>
-struct xt_mac_info {
-  unsigned char srcaddr[ETH_ALEN];
-  int invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_mark.h b/libc/kernel/uapi/linux/netfilter/xt_mark.h
deleted file mode 100644
index 0ec01e9..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_mark.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_MARK_H
-#define _XT_MARK_H
-#include <linux/types.h>
-struct xt_mark_tginfo2 {
-  __u32 mark, mask;
-};
-struct xt_mark_mtinfo1 {
-  __u32 mark, mask;
-  __u8 invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_multiport.h b/libc/kernel/uapi/linux/netfilter/xt_multiport.h
deleted file mode 100644
index fff7045..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_multiport.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_MULTIPORT_H
-#define _XT_MULTIPORT_H
-#include <linux/types.h>
-enum xt_multiport_flags {
-  XT_MULTIPORT_SOURCE,
-  XT_MULTIPORT_DESTINATION,
-  XT_MULTIPORT_EITHER
-};
-#define XT_MULTI_PORTS 15
-struct xt_multiport {
-  __u8 flags;
-  __u8 count;
-  __u16 ports[XT_MULTI_PORTS];
-};
-struct xt_multiport_v1 {
-  __u8 flags;
-  __u8 count;
-  __u16 ports[XT_MULTI_PORTS];
-  __u8 pflags[XT_MULTI_PORTS];
-  __u8 invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_nfacct.h b/libc/kernel/uapi/linux/netfilter/xt_nfacct.h
deleted file mode 100644
index a2b042e..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_nfacct.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_NFACCT_MATCH_H
-#define _XT_NFACCT_MATCH_H
-#include <linux/netfilter/nfnetlink_acct.h>
-struct nf_acct;
-struct xt_nfacct_match_info {
-  char name[NFACCT_NAME_MAX];
-  struct nf_acct * nfacct;
-};
-struct xt_nfacct_match_info_v1 {
-  char name[NFACCT_NAME_MAX];
-  struct nf_acct * nfacct __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_osf.h b/libc/kernel/uapi/linux/netfilter/xt_osf.h
deleted file mode 100644
index 892ad40..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_osf.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_OSF_H
-#define _XT_OSF_H
-#include <linux/types.h>
-#include <linux/netfilter/nfnetlink_osf.h>
-#define XT_OSF_GENRE NF_OSF_GENRE
-#define XT_OSF_INVERT NF_OSF_INVERT
-#define XT_OSF_TTL NF_OSF_TTL
-#define XT_OSF_LOG NF_OSF_LOG
-#define XT_OSF_LOGLEVEL_ALL NF_OSF_LOGLEVEL_ALL
-#define XT_OSF_LOGLEVEL_FIRST NF_OSF_LOGLEVEL_FIRST
-#define XT_OSF_LOGLEVEL_ALL_KNOWN NF_OSF_LOGLEVEL_ALL_KNOWN
-#define XT_OSF_TTL_TRUE NF_OSF_TTL_TRUE
-#define XT_OSF_TTL_NOCHECK NF_OSF_TTL_NOCHECK
-#define XT_OSF_TTL_LESS NF_OSF_TTL_LESS
-#define xt_osf_wc nf_osf_wc
-#define xt_osf_opt nf_osf_opt
-#define xt_osf_info nf_osf_info
-#define xt_osf_user_finger nf_osf_user_finger
-#define xt_osf_finger nf_osf_finger
-#define xt_osf_nlmsg nf_osf_nlmsg
-#define xt_osf_window_size_options nf_osf_window_size_options
-#define xt_osf_attr_type nf_osf_attr_type
-#define xt_osf_msg_types nf_osf_msg_types
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_owner.h b/libc/kernel/uapi/linux/netfilter/xt_owner.h
deleted file mode 100644
index e077aad..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_owner.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_OWNER_MATCH_H
-#define _XT_OWNER_MATCH_H
-#include <linux/types.h>
-enum {
-  XT_OWNER_UID = 1 << 0,
-  XT_OWNER_GID = 1 << 1,
-  XT_OWNER_SOCKET = 1 << 2,
-  XT_OWNER_SUPPL_GROUPS = 1 << 3,
-};
-#define XT_OWNER_MASK (XT_OWNER_UID | XT_OWNER_GID | XT_OWNER_SOCKET | XT_OWNER_SUPPL_GROUPS)
-struct xt_owner_match_info {
-  __u32 uid_min, uid_max;
-  __u32 gid_min, gid_max;
-  __u8 match, invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_physdev.h b/libc/kernel/uapi/linux/netfilter/xt_physdev.h
deleted file mode 100644
index be3734c..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_physdev.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _UAPI_XT_PHYSDEV_H
-#define _UAPI_XT_PHYSDEV_H
-#include <linux/types.h>
-#include <linux/if.h>
-#define XT_PHYSDEV_OP_IN 0x01
-#define XT_PHYSDEV_OP_OUT 0x02
-#define XT_PHYSDEV_OP_BRIDGED 0x04
-#define XT_PHYSDEV_OP_ISIN 0x08
-#define XT_PHYSDEV_OP_ISOUT 0x10
-#define XT_PHYSDEV_OP_MASK (0x20 - 1)
-struct xt_physdev_info {
-  char physindev[IFNAMSIZ];
-  char in_mask[IFNAMSIZ];
-  char physoutdev[IFNAMSIZ];
-  char out_mask[IFNAMSIZ];
-  __u8 invert;
-  __u8 bitmask;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_pkttype.h b/libc/kernel/uapi/linux/netfilter/xt_pkttype.h
deleted file mode 100644
index f9b2f3f..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_pkttype.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_PKTTYPE_H
-#define _XT_PKTTYPE_H
-struct xt_pkttype_info {
-  int pkttype;
-  int invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_policy.h b/libc/kernel/uapi/linux/netfilter/xt_policy.h
deleted file mode 100644
index 495aeb0..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_policy.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_POLICY_H
-#define _XT_POLICY_H
-#include <linux/netfilter.h>
-#include <linux/types.h>
-#include <linux/in.h>
-#include <linux/in6.h>
-#define XT_POLICY_MAX_ELEM 4
-enum xt_policy_flags {
-  XT_POLICY_MATCH_IN = 0x1,
-  XT_POLICY_MATCH_OUT = 0x2,
-  XT_POLICY_MATCH_NONE = 0x4,
-  XT_POLICY_MATCH_STRICT = 0x8,
-};
-enum xt_policy_modes {
-  XT_POLICY_MODE_TRANSPORT,
-  XT_POLICY_MODE_TUNNEL
-};
-struct xt_policy_spec {
-  __u8 saddr : 1, daddr : 1, proto : 1, mode : 1, spi : 1, reqid : 1;
-};
-union xt_policy_addr {
-  struct in_addr a4;
-  struct in6_addr a6;
-};
-struct xt_policy_elem {
-  union {
-    struct {
-      union xt_policy_addr saddr;
-      union xt_policy_addr smask;
-      union xt_policy_addr daddr;
-      union xt_policy_addr dmask;
-    };
-  };
-  __be32 spi;
-  __u32 reqid;
-  __u8 proto;
-  __u8 mode;
-  struct xt_policy_spec match;
-  struct xt_policy_spec invert;
-};
-struct xt_policy_info {
-  struct xt_policy_elem pol[XT_POLICY_MAX_ELEM];
-  __u16 flags;
-  __u16 len;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_quota.h b/libc/kernel/uapi/linux/netfilter/xt_quota.h
deleted file mode 100644
index 96743f4..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_quota.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_QUOTA_H
-#define _XT_QUOTA_H
-#include <linux/types.h>
-enum xt_quota_flags {
-  XT_QUOTA_INVERT = 0x1,
-};
-#define XT_QUOTA_MASK 0x1
-struct xt_quota_priv;
-struct xt_quota_info {
-  __u32 flags;
-  __u32 pad;
-  __aligned_u64 quota;
-  struct xt_quota_priv * master;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_rateest.h b/libc/kernel/uapi/linux/netfilter/xt_rateest.h
deleted file mode 100644
index 5d509b3..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_rateest.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_RATEEST_MATCH_H
-#define _XT_RATEEST_MATCH_H
-#include <linux/types.h>
-#include <linux/if.h>
-enum xt_rateest_match_flags {
-  XT_RATEEST_MATCH_INVERT = 1 << 0,
-  XT_RATEEST_MATCH_ABS = 1 << 1,
-  XT_RATEEST_MATCH_REL = 1 << 2,
-  XT_RATEEST_MATCH_DELTA = 1 << 3,
-  XT_RATEEST_MATCH_BPS = 1 << 4,
-  XT_RATEEST_MATCH_PPS = 1 << 5,
-};
-enum xt_rateest_match_mode {
-  XT_RATEEST_MATCH_NONE,
-  XT_RATEEST_MATCH_EQ,
-  XT_RATEEST_MATCH_LT,
-  XT_RATEEST_MATCH_GT,
-};
-struct xt_rateest_match_info {
-  char name1[IFNAMSIZ];
-  char name2[IFNAMSIZ];
-  __u16 flags;
-  __u16 mode;
-  __u32 bps1;
-  __u32 pps1;
-  __u32 bps2;
-  __u32 pps2;
-  struct xt_rateest * est1 __attribute__((aligned(8)));
-  struct xt_rateest * est2 __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_realm.h b/libc/kernel/uapi/linux/netfilter/xt_realm.h
deleted file mode 100644
index 6c78694..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_realm.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_REALM_H
-#define _XT_REALM_H
-#include <linux/types.h>
-struct xt_realm_info {
-  __u32 id;
-  __u32 mask;
-  __u8 invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_recent.h b/libc/kernel/uapi/linux/netfilter/xt_recent.h
deleted file mode 100644
index d7b3609..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_recent.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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_NETFILTER_XT_RECENT_H
-#define _LINUX_NETFILTER_XT_RECENT_H 1
-#include <linux/types.h>
-#include <linux/netfilter.h>
-enum {
-  XT_RECENT_CHECK = 1 << 0,
-  XT_RECENT_SET = 1 << 1,
-  XT_RECENT_UPDATE = 1 << 2,
-  XT_RECENT_REMOVE = 1 << 3,
-  XT_RECENT_TTL = 1 << 4,
-  XT_RECENT_REAP = 1 << 5,
-  XT_RECENT_SOURCE = 0,
-  XT_RECENT_DEST = 1,
-  XT_RECENT_NAME_LEN = 200,
-};
-#define XT_RECENT_MODIFIERS (XT_RECENT_TTL | XT_RECENT_REAP)
-#define XT_RECENT_VALID_FLAGS (XT_RECENT_CHECK | XT_RECENT_SET | XT_RECENT_UPDATE | XT_RECENT_REMOVE | XT_RECENT_TTL | XT_RECENT_REAP)
-struct xt_recent_mtinfo {
-  __u32 seconds;
-  __u32 hit_count;
-  __u8 check_set;
-  __u8 invert;
-  char name[XT_RECENT_NAME_LEN];
-  __u8 side;
-};
-struct xt_recent_mtinfo_v1 {
-  __u32 seconds;
-  __u32 hit_count;
-  __u8 check_set;
-  __u8 invert;
-  char name[XT_RECENT_NAME_LEN];
-  __u8 side;
-  union nf_inet_addr mask;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_rpfilter.h b/libc/kernel/uapi/linux/netfilter/xt_rpfilter.h
deleted file mode 100644
index 958d92a..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_rpfilter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_RPATH_H
-#define _XT_RPATH_H
-#include <linux/types.h>
-enum {
-  XT_RPFILTER_LOOSE = 1 << 0,
-  XT_RPFILTER_VALID_MARK = 1 << 1,
-  XT_RPFILTER_ACCEPT_LOCAL = 1 << 2,
-  XT_RPFILTER_INVERT = 1 << 3,
-};
-struct xt_rpfilter_info {
-  __u8 flags;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_sctp.h b/libc/kernel/uapi/linux/netfilter/xt_sctp.h
deleted file mode 100644
index 98dd0d1..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_sctp.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_SCTP_H_
-#define _XT_SCTP_H_
-#include <linux/types.h>
-#define XT_SCTP_SRC_PORTS 0x01
-#define XT_SCTP_DEST_PORTS 0x02
-#define XT_SCTP_CHUNK_TYPES 0x04
-#define XT_SCTP_VALID_FLAGS 0x07
-struct xt_sctp_flag_info {
-  __u8 chunktype;
-  __u8 flag;
-  __u8 flag_mask;
-};
-#define XT_NUM_SCTP_FLAGS 4
-struct xt_sctp_info {
-  __u16 dpts[2];
-  __u16 spts[2];
-  __u32 chunkmap[256 / sizeof(__u32)];
-#define SCTP_CHUNK_MATCH_ANY 0x01
-#define SCTP_CHUNK_MATCH_ALL 0x02
-#define SCTP_CHUNK_MATCH_ONLY 0x04
-  __u32 chunk_match_type;
-  struct xt_sctp_flag_info flag_info[XT_NUM_SCTP_FLAGS];
-  int flag_count;
-  __u32 flags;
-  __u32 invflags;
-};
-#define bytes(type) (sizeof(type) * 8)
-#define SCTP_CHUNKMAP_SET(chunkmap,type) do { (chunkmap)[type / bytes(__u32)] |= 1u << (type % bytes(__u32)); } while(0)
-#define SCTP_CHUNKMAP_CLEAR(chunkmap,type) do { (chunkmap)[type / bytes(__u32)] &= ~(1u << (type % bytes(__u32))); } while(0)
-#define SCTP_CHUNKMAP_IS_SET(chunkmap,type) \
-({ ((chunkmap)[type / bytes(__u32)] & (1u << (type % bytes(__u32)))) ? 1 : 0; \
-})
-#define SCTP_CHUNKMAP_RESET(chunkmap) memset((chunkmap), 0, sizeof(chunkmap))
-#define SCTP_CHUNKMAP_SET_ALL(chunkmap) memset((chunkmap), ~0U, sizeof(chunkmap))
-#define SCTP_CHUNKMAP_COPY(destmap,srcmap) memcpy((destmap), (srcmap), sizeof(srcmap))
-#define SCTP_CHUNKMAP_IS_CLEAR(chunkmap) __sctp_chunkmap_is_clear((chunkmap), ARRAY_SIZE(chunkmap))
-#define SCTP_CHUNKMAP_IS_ALL_SET(chunkmap) __sctp_chunkmap_is_all_set((chunkmap), ARRAY_SIZE(chunkmap))
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_set.h b/libc/kernel/uapi/linux/netfilter/xt_set.h
deleted file mode 100644
index 5374159..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_set.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_SET_H
-#define _XT_SET_H
-#include <linux/types.h>
-#include <linux/netfilter/ipset/ip_set.h>
-#define IPSET_SRC 0x01
-#define IPSET_DST 0x02
-#define IPSET_MATCH_INV 0x04
-struct xt_set_info_v0 {
-  ip_set_id_t index;
-  union {
-    __u32 flags[IPSET_DIM_MAX + 1];
-    struct {
-      __u32 __flags[IPSET_DIM_MAX];
-      __u8 dim;
-      __u8 flags;
-    } compat;
-  } u;
-};
-struct xt_set_info_match_v0 {
-  struct xt_set_info_v0 match_set;
-};
-struct xt_set_info_target_v0 {
-  struct xt_set_info_v0 add_set;
-  struct xt_set_info_v0 del_set;
-};
-struct xt_set_info {
-  ip_set_id_t index;
-  __u8 dim;
-  __u8 flags;
-};
-struct xt_set_info_match_v1 {
-  struct xt_set_info match_set;
-};
-struct xt_set_info_target_v1 {
-  struct xt_set_info add_set;
-  struct xt_set_info del_set;
-};
-struct xt_set_info_target_v2 {
-  struct xt_set_info add_set;
-  struct xt_set_info del_set;
-  __u32 flags;
-  __u32 timeout;
-};
-struct xt_set_info_match_v3 {
-  struct xt_set_info match_set;
-  struct ip_set_counter_match0 packets;
-  struct ip_set_counter_match0 bytes;
-  __u32 flags;
-};
-struct xt_set_info_target_v3 {
-  struct xt_set_info add_set;
-  struct xt_set_info del_set;
-  struct xt_set_info map_set;
-  __u32 flags;
-  __u32 timeout;
-};
-struct xt_set_info_match_v4 {
-  struct xt_set_info match_set;
-  struct ip_set_counter_match packets;
-  struct ip_set_counter_match bytes;
-  __u32 flags;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_socket.h b/libc/kernel/uapi/linux/netfilter/xt_socket.h
deleted file mode 100644
index 055b579..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_socket.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_SOCKET_H
-#define _XT_SOCKET_H
-#include <linux/types.h>
-enum {
-  XT_SOCKET_TRANSPARENT = 1 << 0,
-  XT_SOCKET_NOWILDCARD = 1 << 1,
-  XT_SOCKET_RESTORESKMARK = 1 << 2,
-};
-struct xt_socket_mtinfo1 {
-  __u8 flags;
-};
-#define XT_SOCKET_FLAGS_V1 XT_SOCKET_TRANSPARENT
-struct xt_socket_mtinfo2 {
-  __u8 flags;
-};
-#define XT_SOCKET_FLAGS_V2 (XT_SOCKET_TRANSPARENT | XT_SOCKET_NOWILDCARD)
-struct xt_socket_mtinfo3 {
-  __u8 flags;
-};
-#define XT_SOCKET_FLAGS_V3 (XT_SOCKET_TRANSPARENT | XT_SOCKET_NOWILDCARD | XT_SOCKET_RESTORESKMARK)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_state.h b/libc/kernel/uapi/linux/netfilter/xt_state.h
deleted file mode 100644
index d692e60..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_state.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_STATE_H
-#define _XT_STATE_H
-#define XT_STATE_BIT(ctinfo) (1 << ((ctinfo) % IP_CT_IS_REPLY + 1))
-#define XT_STATE_INVALID (1 << 0)
-#define XT_STATE_UNTRACKED (1 << (IP_CT_NUMBER + 1))
-struct xt_state_info {
-  unsigned int statemask;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_statistic.h b/libc/kernel/uapi/linux/netfilter/xt_statistic.h
deleted file mode 100644
index 3aae832..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_statistic.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_STATISTIC_H
-#define _XT_STATISTIC_H
-#include <linux/types.h>
-enum xt_statistic_mode {
-  XT_STATISTIC_MODE_RANDOM,
-  XT_STATISTIC_MODE_NTH,
-  __XT_STATISTIC_MODE_MAX
-};
-#define XT_STATISTIC_MODE_MAX (__XT_STATISTIC_MODE_MAX - 1)
-enum xt_statistic_flags {
-  XT_STATISTIC_INVERT = 0x1,
-};
-#define XT_STATISTIC_MASK 0x1
-struct xt_statistic_priv;
-struct xt_statistic_info {
-  __u16 mode;
-  __u16 flags;
-  union {
-    struct {
-      __u32 probability;
-    } random;
-    struct {
-      __u32 every;
-      __u32 packet;
-      __u32 count;
-    } nth;
-  } u;
-  struct xt_statistic_priv * master __attribute__((aligned(8)));
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_string.h b/libc/kernel/uapi/linux/netfilter/xt_string.h
deleted file mode 100644
index 9296dfb..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_string.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_STRING_H
-#define _XT_STRING_H
-#include <linux/types.h>
-#define XT_STRING_MAX_PATTERN_SIZE 128
-#define XT_STRING_MAX_ALGO_NAME_SIZE 16
-enum {
-  XT_STRING_FLAG_INVERT = 0x01,
-  XT_STRING_FLAG_IGNORECASE = 0x02
-};
-struct xt_string_info {
-  __u16 from_offset;
-  __u16 to_offset;
-  char algo[XT_STRING_MAX_ALGO_NAME_SIZE];
-  char pattern[XT_STRING_MAX_PATTERN_SIZE];
-  __u8 patlen;
-  union {
-    struct {
-      __u8 invert;
-    } v0;
-    struct {
-      __u8 flags;
-    } v1;
-  } u;
-  struct ts_config __attribute__((aligned(8))) * config;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_tcpmss.h b/libc/kernel/uapi/linux/netfilter/xt_tcpmss.h
deleted file mode 100644
index 87a9fdd..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_tcpmss.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_TCPMSS_MATCH_H
-#define _XT_TCPMSS_MATCH_H
-#include <linux/types.h>
-struct xt_tcpmss_match_info {
-  __u16 mss_min, mss_max;
-  __u8 invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_tcpudp.h b/libc/kernel/uapi/linux/netfilter/xt_tcpudp.h
index 4bca77f..76fc1b4 100644
--- a/libc/kernel/uapi/linux/netfilter/xt_tcpudp.h
+++ b/libc/kernel/uapi/linux/netfilter/xt_tcpudp.h
@@ -40,4 +40,4 @@
 #define XT_UDP_INV_SRCPT 0x01
 #define XT_UDP_INV_DSTPT 0x02
 #define XT_UDP_INV_MASK 0x03
-#endif
+#endif
\ No newline at end of file
diff --git a/libc/kernel/uapi/linux/netfilter/xt_time.h b/libc/kernel/uapi/linux/netfilter/xt_time.h
deleted file mode 100644
index ded53b8..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_time.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_TIME_H
-#define _XT_TIME_H 1
-#include <linux/types.h>
-struct xt_time_info {
-  __u32 date_start;
-  __u32 date_stop;
-  __u32 daytime_start;
-  __u32 daytime_stop;
-  __u32 monthdays_match;
-  __u8 weekdays_match;
-  __u8 flags;
-};
-enum {
-  XT_TIME_LOCAL_TZ = 1 << 0,
-  XT_TIME_CONTIGUOUS = 1 << 1,
-  XT_TIME_ALL_MONTHDAYS = 0xFFFFFFFE,
-  XT_TIME_ALL_WEEKDAYS = 0xFE,
-  XT_TIME_MIN_DAYTIME = 0,
-  XT_TIME_MAX_DAYTIME = 24 * 60 * 60 - 1,
-};
-#define XT_TIME_ALL_FLAGS (XT_TIME_LOCAL_TZ | XT_TIME_CONTIGUOUS)
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter/xt_u32.h b/libc/kernel/uapi/linux/netfilter/xt_u32.h
deleted file mode 100644
index d7de9c9..0000000
--- a/libc/kernel/uapi/linux/netfilter/xt_u32.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _XT_U32_H
-#define _XT_U32_H 1
-#include <linux/types.h>
-enum xt_u32_ops {
-  XT_U32_AND,
-  XT_U32_LEFTSH,
-  XT_U32_RIGHTSH,
-  XT_U32_AT,
-};
-struct xt_u32_location_element {
-  __u32 number;
-  __u8 nextop;
-};
-struct xt_u32_value_element {
-  __u32 min;
-  __u32 max;
-};
-#define XT_U32_MAXSIZE 10
-struct xt_u32_test {
-  struct xt_u32_location_element location[XT_U32_MAXSIZE + 1];
-  struct xt_u32_value_element value[XT_U32_MAXSIZE + 1];
-  __u8 nnums;
-  __u8 nvalues;
-};
-struct xt_u32 {
-  struct xt_u32_test tests[XT_U32_MAXSIZE + 1];
-  __u8 ntests;
-  __u8 invert;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h
deleted file mode 100644
index b5376b8..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_CLUSTERIP.h
+++ /dev/null
@@ -1,42 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IPT_CLUSTERIP_H_target
-#define _IPT_CLUSTERIP_H_target
-#include <linux/types.h>
-#include <linux/if_ether.h>
-enum clusterip_hashmode {
-  CLUSTERIP_HASHMODE_SIP = 0,
-  CLUSTERIP_HASHMODE_SIP_SPT,
-  CLUSTERIP_HASHMODE_SIP_SPT_DPT,
-};
-#define CLUSTERIP_HASHMODE_MAX CLUSTERIP_HASHMODE_SIP_SPT_DPT
-#define CLUSTERIP_MAX_NODES 16
-#define CLUSTERIP_FLAG_NEW 0x00000001
-struct clusterip_config;
-struct ipt_clusterip_tgt_info {
-  __u32 flags;
-  __u8 clustermac[ETH_ALEN];
-  __u16 num_total_nodes;
-  __u16 num_local_nodes;
-  __u16 local_nodes[CLUSTERIP_MAX_NODES];
-  __u32 hash_mode;
-  __u32 hash_initval;
-  struct clusterip_config * config;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ECN.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ECN.h
deleted file mode 100644
index a67f997..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ECN.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IPT_ECN_TARGET_H
-#define _IPT_ECN_TARGET_H
-#include <linux/types.h>
-#include <linux/netfilter/xt_DSCP.h>
-#define IPT_ECN_IP_MASK (~XT_DSCP_MASK)
-#define IPT_ECN_OP_SET_IP 0x01
-#define IPT_ECN_OP_SET_ECE 0x10
-#define IPT_ECN_OP_SET_CWR 0x20
-#define IPT_ECN_OP_MASK 0xce
-struct ipt_ECN_info {
-  __u8 operation;
-  __u8 ip_ect;
-  union {
-    struct {
-      __u8 ece : 1, cwr : 1;
-    } tcp;
-  } proto;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_LOG.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_LOG.h
deleted file mode 100644
index c049244..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_LOG.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IPT_LOG_H
-#define _IPT_LOG_H
-#define IPT_LOG_TCPSEQ 0x01
-#define IPT_LOG_TCPOPT 0x02
-#define IPT_LOG_IPOPT 0x04
-#define IPT_LOG_UID 0x08
-#define IPT_LOG_NFLOG 0x10
-#define IPT_LOG_MACDECODE 0x20
-#define IPT_LOG_MASK 0x2f
-struct ipt_log_info {
-  unsigned char level;
-  unsigned char logflags;
-  char prefix[30];
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_REJECT.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_REJECT.h
deleted file mode 100644
index 2650d04..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_REJECT.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IPT_REJECT_H
-#define _IPT_REJECT_H
-enum ipt_reject_with {
-  IPT_ICMP_NET_UNREACHABLE,
-  IPT_ICMP_HOST_UNREACHABLE,
-  IPT_ICMP_PROT_UNREACHABLE,
-  IPT_ICMP_PORT_UNREACHABLE,
-  IPT_ICMP_ECHOREPLY,
-  IPT_ICMP_NET_PROHIBITED,
-  IPT_ICMP_HOST_PROHIBITED,
-  IPT_TCP_RESET,
-  IPT_ICMP_ADMIN_PROHIBITED
-};
-struct ipt_reject_info {
-  enum ipt_reject_with with;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_TTL.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_TTL.h
deleted file mode 100644
index d4509ac..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_TTL.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IPT_TTL_H
-#define _IPT_TTL_H
-#include <linux/types.h>
-enum {
-  IPT_TTL_SET = 0,
-  IPT_TTL_INC,
-  IPT_TTL_DEC
-};
-#define IPT_TTL_MAXMODE IPT_TTL_DEC
-struct ipt_TTL_info {
-  __u8 mode;
-  __u8 ttl;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ah.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ah.h
deleted file mode 100644
index 652db9c..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ah.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IPT_AH_H
-#define _IPT_AH_H
-#include <linux/types.h>
-struct ipt_ah {
-  __u32 spis[2];
-  __u8 invflags;
-};
-#define IPT_AH_INV_SPI 0x01
-#define IPT_AH_INV_MASK 0x01
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ecn.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ecn.h
deleted file mode 100644
index a892af5..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ecn.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IPT_ECN_H
-#define _IPT_ECN_H
-#include <linux/netfilter/xt_ecn.h>
-#define ipt_ecn_info xt_ecn_info
-enum {
-  IPT_ECN_IP_MASK = XT_ECN_IP_MASK,
-  IPT_ECN_OP_MATCH_IP = XT_ECN_OP_MATCH_IP,
-  IPT_ECN_OP_MATCH_ECE = XT_ECN_OP_MATCH_ECE,
-  IPT_ECN_OP_MATCH_CWR = XT_ECN_OP_MATCH_CWR,
-  IPT_ECN_OP_MATCH_MASK = XT_ECN_OP_MATCH_MASK,
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ttl.h b/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ttl.h
deleted file mode 100644
index 26c1a4f..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv4/ipt_ttl.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IPT_TTL_H
-#define _IPT_TTL_H
-#include <linux/types.h>
-enum {
-  IPT_TTL_EQ = 0,
-  IPT_TTL_NE,
-  IPT_TTL_LT,
-  IPT_TTL_GT,
-};
-struct ipt_ttl_info {
-  __u8 mode;
-  __u8 ttl;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_HL.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_HL.h
deleted file mode 100644
index 85983c6..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_HL.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IP6T_HL_H
-#define _IP6T_HL_H
-#include <linux/types.h>
-enum {
-  IP6T_HL_SET = 0,
-  IP6T_HL_INC,
-  IP6T_HL_DEC
-};
-#define IP6T_HL_MAXMODE IP6T_HL_DEC
-struct ip6t_HL_info {
-  __u8 mode;
-  __u8 hop_limit;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_LOG.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_LOG.h
deleted file mode 100644
index eb3f26a..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_LOG.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IP6T_LOG_H
-#define _IP6T_LOG_H
-#define IP6T_LOG_TCPSEQ 0x01
-#define IP6T_LOG_TCPOPT 0x02
-#define IP6T_LOG_IPOPT 0x04
-#define IP6T_LOG_UID 0x08
-#define IP6T_LOG_NFLOG 0x10
-#define IP6T_LOG_MACDECODE 0x20
-#define IP6T_LOG_MASK 0x2f
-struct ip6t_log_info {
-  unsigned char level;
-  unsigned char logflags;
-  char prefix[30];
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_NPT.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_NPT.h
deleted file mode 100644
index 4f41cde..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_NPT.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 __NETFILTER_IP6T_NPT
-#define __NETFILTER_IP6T_NPT
-#include <linux/types.h>
-#include <linux/netfilter.h>
-struct ip6t_npt_tginfo {
-  union nf_inet_addr src_pfx;
-  union nf_inet_addr dst_pfx;
-  __u8 src_pfx_len;
-  __u8 dst_pfx_len;
-  __sum16 adjustment;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_REJECT.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
deleted file mode 100644
index 96fcdbe..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_REJECT.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IP6T_REJECT_H
-#define _IP6T_REJECT_H
-#include <linux/types.h>
-enum ip6t_reject_with {
-  IP6T_ICMP6_NO_ROUTE,
-  IP6T_ICMP6_ADM_PROHIBITED,
-  IP6T_ICMP6_NOT_NEIGHBOUR,
-  IP6T_ICMP6_ADDR_UNREACH,
-  IP6T_ICMP6_PORT_UNREACH,
-  IP6T_ICMP6_ECHOREPLY,
-  IP6T_TCP_RESET,
-  IP6T_ICMP6_POLICY_FAIL,
-  IP6T_ICMP6_REJECT_ROUTE
-};
-struct ip6t_reject_info {
-  __u32 with;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ah.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ah.h
deleted file mode 100644
index a566e6c..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ah.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IP6T_AH_H
-#define _IP6T_AH_H
-#include <linux/types.h>
-struct ip6t_ah {
-  __u32 spis[2];
-  __u32 hdrlen;
-  __u8 hdrres;
-  __u8 invflags;
-};
-#define IP6T_AH_SPI 0x01
-#define IP6T_AH_LEN 0x02
-#define IP6T_AH_RES 0x04
-#define IP6T_AH_INV_SPI 0x01
-#define IP6T_AH_INV_LEN 0x02
-#define IP6T_AH_INV_MASK 0x03
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_frag.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_frag.h
deleted file mode 100644
index accbe18..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_frag.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IP6T_FRAG_H
-#define _IP6T_FRAG_H
-#include <linux/types.h>
-struct ip6t_frag {
-  __u32 ids[2];
-  __u32 hdrlen;
-  __u8 flags;
-  __u8 invflags;
-};
-#define IP6T_FRAG_IDS 0x01
-#define IP6T_FRAG_LEN 0x02
-#define IP6T_FRAG_RES 0x04
-#define IP6T_FRAG_FST 0x08
-#define IP6T_FRAG_MF 0x10
-#define IP6T_FRAG_NMF 0x20
-#define IP6T_FRAG_INV_IDS 0x01
-#define IP6T_FRAG_INV_LEN 0x02
-#define IP6T_FRAG_INV_MASK 0x03
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_hl.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_hl.h
deleted file mode 100644
index 048636d..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_hl.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IP6T_HL_H
-#define _IP6T_HL_H
-#include <linux/types.h>
-enum {
-  IP6T_HL_EQ = 0,
-  IP6T_HL_NE,
-  IP6T_HL_LT,
-  IP6T_HL_GT,
-};
-struct ip6t_hl_info {
-  __u8 mode;
-  __u8 hop_limit;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ipv6header.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ipv6header.h
deleted file mode 100644
index 3c5dca5..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_ipv6header.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 __IPV6HEADER_H
-#define __IPV6HEADER_H
-#include <linux/types.h>
-struct ip6t_ipv6header_info {
-  __u8 matchflags;
-  __u8 invflags;
-  __u8 modeflag;
-};
-#define MASK_HOPOPTS 128
-#define MASK_DSTOPTS 64
-#define MASK_ROUTING 32
-#define MASK_FRAGMENT 16
-#define MASK_AH 8
-#define MASK_ESP 4
-#define MASK_NONE 2
-#define MASK_PROTO 1
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_mh.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_mh.h
deleted file mode 100644
index 849119f..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_mh.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IP6T_MH_H
-#define _IP6T_MH_H
-#include <linux/types.h>
-struct ip6t_mh {
-  __u8 types[2];
-  __u8 invflags;
-};
-#define IP6T_MH_INV_TYPE 0x01
-#define IP6T_MH_INV_MASK 0x01
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_opts.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_opts.h
deleted file mode 100644
index 21052ee..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_opts.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IP6T_OPTS_H
-#define _IP6T_OPTS_H
-#include <linux/types.h>
-#define IP6T_OPTS_OPTSNR 16
-struct ip6t_opts {
-  __u32 hdrlen;
-  __u8 flags;
-  __u8 invflags;
-  __u16 opts[IP6T_OPTS_OPTSNR];
-  __u8 optsnr;
-};
-#define IP6T_OPTS_LEN 0x01
-#define IP6T_OPTS_OPTS 0x02
-#define IP6T_OPTS_NSTRICT 0x04
-#define IP6T_OPTS_INV_LEN 0x01
-#define IP6T_OPTS_INV_MASK 0x01
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_rt.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_rt.h
deleted file mode 100644
index 2203b82..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_rt.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IP6T_RT_H
-#define _IP6T_RT_H
-#include <linux/types.h>
-#include <linux/in6.h>
-#define IP6T_RT_HOPS 16
-struct ip6t_rt {
-  __u32 rt_type;
-  __u32 segsleft[2];
-  __u32 hdrlen;
-  __u8 flags;
-  __u8 invflags;
-  struct in6_addr addrs[IP6T_RT_HOPS];
-  __u8 addrnr;
-};
-#define IP6T_RT_TYP 0x01
-#define IP6T_RT_SGS 0x02
-#define IP6T_RT_LEN 0x04
-#define IP6T_RT_RES 0x08
-#define IP6T_RT_FST_MASK 0x30
-#define IP6T_RT_FST 0x10
-#define IP6T_RT_FST_NSTRICT 0x20
-#define IP6T_RT_INV_TYP 0x01
-#define IP6T_RT_INV_SGS 0x02
-#define IP6T_RT_INV_LEN 0x04
-#define IP6T_RT_INV_MASK 0x07
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h b/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h
deleted file mode 100644
index a9474e7..0000000
--- a/libc/kernel/uapi/linux/netfilter_ipv6/ip6t_srh.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/****************************************************************************
- ****************************************************************************
- ***
- ***   This header was automatically generated from a Linux kernel header
- ***   of the same name, to make information necessary for userspace to
- ***   call into the kernel available to libc.  It contains only constants,
- ***   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 _IP6T_SRH_H
-#define _IP6T_SRH_H
-#include <linux/types.h>
-#include <linux/netfilter.h>
-#define IP6T_SRH_NEXTHDR 0x0001
-#define IP6T_SRH_LEN_EQ 0x0002
-#define IP6T_SRH_LEN_GT 0x0004
-#define IP6T_SRH_LEN_LT 0x0008
-#define IP6T_SRH_SEGS_EQ 0x0010
-#define IP6T_SRH_SEGS_GT 0x0020
-#define IP6T_SRH_SEGS_LT 0x0040
-#define IP6T_SRH_LAST_EQ 0x0080
-#define IP6T_SRH_LAST_GT 0x0100
-#define IP6T_SRH_LAST_LT 0x0200
-#define IP6T_SRH_TAG 0x0400
-#define IP6T_SRH_PSID 0x0800
-#define IP6T_SRH_NSID 0x1000
-#define IP6T_SRH_LSID 0x2000
-#define IP6T_SRH_MASK 0x3FFF
-#define IP6T_SRH_INV_NEXTHDR 0x0001
-#define IP6T_SRH_INV_LEN_EQ 0x0002
-#define IP6T_SRH_INV_LEN_GT 0x0004
-#define IP6T_SRH_INV_LEN_LT 0x0008
-#define IP6T_SRH_INV_SEGS_EQ 0x0010
-#define IP6T_SRH_INV_SEGS_GT 0x0020
-#define IP6T_SRH_INV_SEGS_LT 0x0040
-#define IP6T_SRH_INV_LAST_EQ 0x0080
-#define IP6T_SRH_INV_LAST_GT 0x0100
-#define IP6T_SRH_INV_LAST_LT 0x0200
-#define IP6T_SRH_INV_TAG 0x0400
-#define IP6T_SRH_INV_PSID 0x0800
-#define IP6T_SRH_INV_NSID 0x1000
-#define IP6T_SRH_INV_LSID 0x2000
-#define IP6T_SRH_INV_MASK 0x3FFF
-struct ip6t_srh {
-  __u8 next_hdr;
-  __u8 hdr_len;
-  __u8 segs_left;
-  __u8 last_entry;
-  __u16 tag;
-  __u16 mt_flags;
-  __u16 mt_invflags;
-};
-struct ip6t_srh1 {
-  __u8 next_hdr;
-  __u8 hdr_len;
-  __u8 segs_left;
-  __u8 last_entry;
-  __u16 tag;
-  struct in6_addr psid_addr;
-  struct in6_addr nsid_addr;
-  struct in6_addr lsid_addr;
-  struct in6_addr psid_msk;
-  struct in6_addr nsid_msk;
-  struct in6_addr lsid_msk;
-  __u16 mt_flags;
-  __u16 mt_invflags;
-};
-#endif
diff --git a/libc/kernel/uapi/linux/netfilter_ipv6/ip6_tables.h b/libc/kernel/uapi/linux/netfilter_ipv6/ipv6_tables.h
similarity index 100%
rename from libc/kernel/uapi/linux/netfilter_ipv6/ip6_tables.h
rename to libc/kernel/uapi/linux/netfilter_ipv6/ipv6_tables.h
diff --git a/linker/BUILD.gn b/linker/BUILD.gn
new file mode 100644
index 0000000..7817bbe
--- /dev/null
+++ b/linker/BUILD.gn
@@ -0,0 +1,97 @@
+# Copyright 2021 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+android_root = "//third_party/android/platform"
+
+config("linker_config") {
+  cflags = [
+    "-fno-stack-protector",
+    "-Wstrict-overflow=5",
+    "-fvisibility=hidden",
+  ]
+
+  asmflags = [
+    "-fno-stack-protector",
+    "-Wstrict-overflow=5",
+    "-fvisibility=hidden",
+    "-Wall",
+    "-Wextra",
+    "-Wunused",
+    "-Werror",
+  ]
+
+  cflags_cc = [ "-Wold-style-cast" ]
+
+  include_dirs = [
+    "$android_root/bionic/libc",
+    "$android_root/bionic/libc/async_safe/include",
+    "$android_root/system/core/libcutils/include",
+  ]
+
+  configs = [
+    "$android_root/bionic/libc:bionic_config",
+    "$android_root/system/libbase:headers",
+  ]
+}
+
+source_set("main") {
+  visibility = [ ":*" ]
+
+  sources = ["linker_main.cpp"]
+
+  # Ensure that the compiler won't insert string function calls before ifuncs are resolved.
+  # TODO: If we add this flag, the compiler doesn't find bionic's limits.h header.
+  # cflags = ["-ffreestanding"]
+
+  configs += [
+    ":linker_config",
+  ]
+}
+
+source_set("linker") {
+  sources = [
+    "dlfcn.cpp",
+    "linker.cpp",
+    "linker_block_allocator.cpp",
+    "linker_cfi.cpp",
+    "linker_config.cpp",
+    "linker_debug.cpp",
+    "linker_dlwarning.cpp",
+    "linker_gdb_support.cpp",
+    "linker_globals.cpp",
+    "linker_libc_support.c",
+    "linker_libcxx_support.cpp",
+    "linker_logger.cpp",
+    "linker_mapped_file_fragment.cpp",
+    "linker_namespaces.cpp",
+    "linker_note_gnu_property.cpp",
+    "linker_phdr.cpp",
+    "linker_relocate.cpp",
+    "linker_sdk_versions.cpp",
+    "linker_soinfo.cpp",
+    "linker_tls.cpp",
+    "linker_utils.cpp",
+    "rt.cpp",
+  ]
+
+  if (target_cpu == "arm64") {
+    sources += [
+      # "arch/arm64/begin.S",
+      "arch/arm64/tlsdesc_resolver.S",
+      "arch/arm_neon/linker_gnu_hash_neon.cpp",
+    ]
+  }
+
+  if (target_cpu == "x64") {
+    # sources += [ "arch/x86_64/begin.S" ]
+  }
+
+  deps = [
+    ":main",
+  ]
+
+  configs += [
+    ":linker_config",
+  ]
+}
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 1553ba9..31abba0 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -76,7 +76,10 @@
 #include "android-base/macros.h"
 #include "android-base/strings.h"
 #include "android-base/stringprintf.h"
+
+#if defined(__linux__)
 #include "ziparchive/zip_archive.h"
+#endif
 
 static std::unordered_map<void*, size_t> g_dso_handle_counters;
 
@@ -870,6 +873,8 @@
   return nullptr;
 }
 
+#if defined(__linux__)
+
 class ZipArchiveCache {
  public:
   ZipArchiveCache() {}
@@ -983,6 +988,18 @@
   return fd;
 }
 
+#elif defined(__Fuchsia__)
+
+class ZipArchiveCache {
+ public:
+  ZipArchiveCache() {}
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(ZipArchiveCache);
+};
+
+#endif
+
 static bool format_path(char* buf, size_t buf_size, const char* path, const char* name) {
   int n = async_safe_format_buffer(buf, buf_size, "%s/%s", path, name);
   if (n < 0 || n >= static_cast<int>(buf_size)) {
@@ -997,9 +1014,12 @@
                                 const char* path, off64_t* file_offset,
                                 std::string* realpath) {
   int fd = -1;
+
+#if defined(__linux__)
   if (strstr(path, kZipFileSeparator) != nullptr) {
     fd = open_library_in_zipfile(zip_archive_cache, path, file_offset, realpath);
   }
+#endif
 
   if (fd == -1) {
     fd = TEMP_FAILURE_RETRY(open(path, O_RDONLY | O_CLOEXEC));