Snap for 8558685 from 2300fc0413dc742469bbf011bd02c1a074e51532 to tm-frc-documentsui-release

Change-Id: I293f72451a6fc15b016d2b996f5dfb3de43f282c
diff --git a/mainline/README.md b/mainline/README.md
index ea85676..62c0079 100644
--- a/mainline/README.md
+++ b/mainline/README.md
@@ -1,11 +1,18 @@
 Prebuilts of APIs from platform and other Mainline modules that the ART Module
 needs.
 
+These prebuilts should reflect the APIs in Android 12 (version 31), which is the
+earliest release that may take an update of the ART Module. Hence updating the
+prebuilts to newer versions needs to be done with care. Prebuilts that are part
+of the NDK are generally safe since they are annotated to provide a version 31
+compatible ABI.
+
 To update:
 
 1. Submit the changes that need to go into the prebuilt.
 
-2. Wait for a new build on branch `aosp-master`, target `mainline_modules`.
+2. Wait for new builds on branch `aosp-master`, target
+   `mainline_modules_sdks-userdebug`.
 
 3. Run:
 
@@ -15,5 +22,9 @@
 
    where `<build id>` is the ID of the build in step #2.
 
-4. Upload and submit the CL created in `prebuilts/runtime`. Please do not make
-   any file changes locally.
+   The `update-py` script has code to download and unpack all prebuilts, but
+   most of them are commented out (see the `PREBUILT_INSTALL_MODULES` list).
+   Hence you may need to tweak the script to download the prebuilts you need.
+
+4. Try to minimize the updates in the CL created in `prebuilts/runtime`, and
+   ensure they are safe. mast@google.com is happy to help with review.
diff --git a/mainline/platform/sdk/arm/lib/libbinder_ndk.so b/mainline/platform/sdk/arm/lib/libbinder_ndk.so
index fc67aca..a46d139 100755
--- a/mainline/platform/sdk/arm/lib/libbinder_ndk.so
+++ b/mainline/platform/sdk/arm/lib/libbinder_ndk.so
Binary files differ
diff --git a/mainline/platform/sdk/arm64/lib/libbinder_ndk.so b/mainline/platform/sdk/arm64/lib/libbinder_ndk.so
index dfd7fbf..67a6060 100755
--- a/mainline/platform/sdk/arm64/lib/libbinder_ndk.so
+++ b/mainline/platform/sdk/arm64/lib/libbinder_ndk.so
Binary files differ
diff --git a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_auto_utils.h b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_auto_utils.h
index 0ad400b..7ea9be7 100644
--- a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_auto_utils.h
+++ b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_auto_utils.h
@@ -163,6 +163,15 @@
     const T get() const { return mT; }
 
     /**
+     * Release the underlying resource.
+     */
+    [[nodiscard]] T release() {
+        T a = mT;
+        mT = DEFAULT;
+        return a;
+    }
+
+    /**
      * This allows the value in this class to be set from beneath it. If you call this method and
      * then change the value of T*, you must take ownership of the value you are replacing and add
      * ownership to the object that is put in here.
@@ -259,7 +268,11 @@
     const char* getMessage() const { return AStatus_getMessage(get()); }
 
     std::string getDescription() const {
+#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
         if (__builtin_available(android 30, *)) {
+#else
+        if (__ANDROID_API__ >= 30) {
+#endif
             const char* cStr = AStatus_getDescription(get());
             std::string ret = cStr;
             AStatus_deleteDescription(cStr);
@@ -365,6 +378,8 @@
     ScopedFileDescriptor(ScopedFileDescriptor&&) = default;
     ScopedFileDescriptor& operator=(ScopedFileDescriptor&&) = default;
 
+    ScopedFileDescriptor dup() const { return ScopedFileDescriptor(::dup(get())); }
+
     bool operator!=(const ScopedFileDescriptor& rhs) const { return get() != rhs.get(); }
     bool operator<(const ScopedFileDescriptor& rhs) const { return get() < rhs.get(); }
     bool operator<=(const ScopedFileDescriptor& rhs) const { return get() <= rhs.get(); }
diff --git a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_interface_utils.h b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_interface_utils.h
index 5de64f8..b3bc7f4 100644
--- a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_interface_utils.h
+++ b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_interface_utils.h
@@ -190,9 +190,9 @@
     BnCInterface() {}
     virtual ~BnCInterface() {}
 
-    SpAIBinder asBinder() override;
+    SpAIBinder asBinder() override final;
 
-    bool isRemote() override { return false; }
+    bool isRemote() override final { return false; }
 
    protected:
     /**
@@ -215,9 +215,9 @@
     explicit BpCInterface(const SpAIBinder& binder) : mBinder(binder) {}
     virtual ~BpCInterface() {}
 
-    SpAIBinder asBinder() override;
+    SpAIBinder asBinder() override final;
 
-    bool isRemote() override { return AIBinder_isRemote(mBinder.get()); }
+    bool isRemote() override final { return AIBinder_isRemote(mBinder.get()); }
 
     binder_status_t dump(int fd, const char** args, uint32_t numArgs) override {
         return AIBinder_dump(asBinder().get(), fd, args, numArgs);
@@ -256,7 +256,11 @@
     // ourselves. The defaults are harmless.
     AIBinder_Class_setOnDump(clazz, ICInterfaceData::onDump);
 #ifdef HAS_BINDER_SHELL_COMMAND
+#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
     if (__builtin_available(android 30, *)) {
+#else
+    if (__ANDROID_API__ >= 30) {
+#endif
         AIBinder_Class_setHandleShellCommand(clazz, ICInterfaceData::handleShellCommand);
     }
 #endif
diff --git a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_parcel_utils.h b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_parcel_utils.h
index 2b18a0a..0bf1e3d 100644
--- a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_parcel_utils.h
+++ b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_parcel_utils.h
@@ -27,15 +27,146 @@
 #pragma once
 
 #include <android/binder_auto_utils.h>
+#include <android/binder_interface_utils.h>
 #include <android/binder_internal_logging.h>
 #include <android/binder_parcel.h>
 
+#include <array>
 #include <optional>
 #include <string>
+#include <type_traits>
 #include <vector>
 
 namespace ndk {
 
+namespace {
+template <typename Test, template <typename...> class Ref>
+struct is_specialization : std::false_type {};
+
+template <template <typename...> class Ref, typename... Args>
+struct is_specialization<Ref<Args...>, Ref> : std::true_type {};
+
+template <typename Test, template <typename...> class Ref>
+static inline constexpr bool is_specialization_v = is_specialization<Test, Ref>::value;
+
+// Get the first template type from a container, the T from MyClass<T, ...>.
+template <typename T>
+struct first_template_type {
+    using type = void;
+};
+
+template <template <typename...> class V, typename T, typename... Args>
+struct first_template_type<V<T, Args...>> {
+    using type = T;
+};
+
+template <typename T>
+using first_template_type_t = typename first_template_type<T>::type;
+
+// Tells if T represents NDK interface (shared_ptr<ICInterface-derived>)
+template <typename T>
+static inline constexpr bool is_interface_v = is_specialization_v<T, std::shared_ptr>&&
+        std::is_base_of_v<::ndk::ICInterface, first_template_type_t<T>>;
+
+// Tells if T represents NDK parcelable with readFromParcel/writeToParcel methods defined
+template <typename T, typename = void>
+struct is_parcelable : std::false_type {};
+
+template <typename T>
+struct is_parcelable<
+        T, std::void_t<decltype(std::declval<T>().readFromParcel(std::declval<const AParcel*>())),
+                       decltype(std::declval<T>().writeToParcel(std::declval<AParcel*>()))>>
+    : std::true_type {};
+
+template <typename T>
+static inline constexpr bool is_parcelable_v = is_parcelable<T>::value;
+
+// Tells if T represents nullable NDK parcelable (optional<parcelable> or unique_ptr<parcelable>)
+template <typename T>
+static inline constexpr bool is_nullable_parcelable_v = is_parcelable_v<first_template_type_t<T>> &&
+                                                        (is_specialization_v<T, std::optional> ||
+                                                         is_specialization_v<T, std::unique_ptr>);
+
+// Tells if T is a fixed-size array.
+template <typename T>
+struct is_fixed_array : std::false_type {};
+
+template <typename T, size_t N>
+struct is_fixed_array<std::array<T, N>> : std::true_type {};
+
+template <typename T>
+static inline constexpr bool is_fixed_array_v = is_fixed_array<T>::value;
+
+template <typename T>
+static inline constexpr bool dependent_false_v = false;
+}  // namespace
+
+/**
+ * This checks the length against the array size and retrieves the buffer. No allocation required.
+ */
+template <typename T, size_t N>
+static inline bool AParcel_stdArrayAllocator(void* arrayData, int32_t length, T** outBuffer) {
+    if (length < 0) return false;
+
+    if (length != static_cast<int32_t>(N)) {
+        return false;
+    }
+
+    std::array<T, N>* arr = static_cast<std::array<T, N>*>(arrayData);
+    *outBuffer = arr->data();
+    return true;
+}
+
+/**
+ * This checks the length against the array size and retrieves the buffer. No allocation required.
+ */
+template <typename T, size_t N>
+static inline bool AParcel_nullableStdArrayAllocator(void* arrayData, int32_t length,
+                                                     T** outBuffer) {
+    std::optional<std::array<T, N>>* arr = static_cast<std::optional<std::array<T, N>>*>(arrayData);
+    if (length < 0) {
+        *arr = std::nullopt;
+        return true;
+    }
+
+    if (length != static_cast<int32_t>(N)) {
+        return false;
+    }
+
+    arr->emplace();
+    *outBuffer = (*arr)->data();
+    return true;
+}
+
+/**
+ * This checks the length against the array size. No allocation required.
+ */
+template <size_t N>
+static inline bool AParcel_stdArrayExternalAllocator(void* arrayData, int32_t length) {
+    (void)arrayData;
+    return length == static_cast<int32_t>(N);
+}
+
+/**
+ * This checks the length against the array size. No allocation required.
+ */
+template <typename T, size_t N>
+static inline bool AParcel_nullableStdArrayExternalAllocator(void* arrayData, int32_t length) {
+    std::optional<std::array<T, N>>* arr = static_cast<std::optional<std::array<T, N>>*>(arrayData);
+
+    if (length < 0) {
+        *arr = std::nullopt;
+        return true;
+    }
+
+    if (length != static_cast<int32_t>(N)) {
+        return false;
+    }
+
+    arr->emplace();
+    return true;
+}
+
 /**
  * This retrieves and allocates a vector to size 'length' and returns the underlying buffer.
  */
@@ -345,6 +476,118 @@
 }
 
 /**
+ * This retrieves the underlying value in a std::array which may not be contiguous at index from a
+ * corresponding arrData.
+ */
+template <typename T, size_t N>
+static inline T AParcel_stdArrayGetter(const void* arrData, size_t index) {
+    const std::array<T, N>* arr = static_cast<const std::array<T, N>*>(arrData);
+    return (*arr)[index];
+}
+
+/**
+ * This sets the underlying value in a corresponding arrData which may not be contiguous at
+ * index.
+ */
+template <typename T, size_t N>
+static inline void AParcel_stdArraySetter(void* arrData, size_t index, T value) {
+    std::array<T, N>* arr = static_cast<std::array<T, N>*>(arrData);
+    (*arr)[index] = value;
+}
+
+/**
+ * This retrieves the underlying value in a std::array which may not be contiguous at index from a
+ * corresponding arrData.
+ */
+template <typename T, size_t N>
+static inline T AParcel_nullableStdArrayGetter(const void* arrData, size_t index) {
+    const std::optional<std::array<T, N>>* arr =
+            static_cast<const std::optional<std::array<T, N>>*>(arrData);
+    return (*arr)[index];
+}
+
+/**
+ * This sets the underlying value in a corresponding arrData which may not be contiguous at
+ * index.
+ */
+template <typename T, size_t N>
+static inline void AParcel_nullableStdArraySetter(void* arrData, size_t index, T value) {
+    std::optional<std::array<T, N>>* arr = static_cast<std::optional<std::array<T, N>>*>(arrData);
+    (*arr)->at(index) = value;
+}
+
+/**
+ * Allocates a std::string inside of std::array<std::string, N> at index 'index' to size 'length'.
+ */
+template <size_t N>
+static inline bool AParcel_stdArrayStringElementAllocator(void* arrData, size_t index,
+                                                          int32_t length, char** buffer) {
+    std::array<std::string, N>* arr = static_cast<std::array<std::string, N>*>(arrData);
+    std::string& element = arr->at(index);
+    return AParcel_stdStringAllocator(static_cast<void*>(&element), length, buffer);
+}
+
+/**
+ * This gets the length and buffer of a std::string inside of a std::array<std::string, N> at index
+ * 'index'.
+ */
+template <size_t N>
+static const char* AParcel_stdArrayStringElementGetter(const void* arrData, size_t index,
+                                                       int32_t* outLength) {
+    const std::array<std::string, N>* arr = static_cast<const std::array<std::string, N>*>(arrData);
+    const std::string& element = arr->at(index);
+
+    *outLength = static_cast<int32_t>(element.size());
+    return element.c_str();
+}
+
+/**
+ * Allocates a std::string inside of std::array<std::optional<std::string>, N> at index 'index' to
+ * size 'length'.
+ */
+template <size_t N>
+static inline bool AParcel_stdArrayNullableStringElementAllocator(void* arrData, size_t index,
+                                                                  int32_t length, char** buffer) {
+    std::array<std::optional<std::string>, N>* arr =
+            static_cast<std::array<std::optional<std::string>, N>*>(arrData);
+    std::optional<std::string>& element = arr->at(index);
+    return AParcel_nullableStdStringAllocator(static_cast<void*>(&element), length, buffer);
+}
+
+/**
+ * This gets the length and buffer of a std::string inside of a
+ * std::array<std::optional<std::string>, N> at index 'index'.
+ */
+template <size_t N>
+static const char* AParcel_stdArrayNullableStringElementGetter(const void* arrData, size_t index,
+                                                               int32_t* outLength) {
+    const std::array<std::optional<std::string>, N>* arr =
+            static_cast<const std::array<std::optional<std::string>, N>*>(arrData);
+    const std::optional<std::string>& element = arr->at(index);
+
+    if (!element) {
+        *outLength = -1;
+        return nullptr;
+    }
+
+    *outLength = static_cast<int32_t>(element->size());
+    return element->c_str();
+}
+
+/**
+ * Allocates a std::string inside of std::optional<std::array<std::optional<std::string>, N>> at
+ * index 'index' to size 'length'.
+ */
+template <size_t N>
+static inline bool AParcel_nullableStdArrayStringElementAllocator(void* arrData, size_t index,
+                                                                  int32_t length, char** buffer) {
+    std::optional<std::array<std::optional<std::string>, N>>* arr =
+            static_cast<std::optional<std::array<std::optional<std::string>, N>>*>(arrData);
+    std::optional<std::string>& element = (*arr)->at(index);
+    return AParcel_nullableStdStringAllocator(static_cast<void*>(&element), length, buffer);
+}
+
+/**
  * Convenience API for writing a std::string.
  */
 static inline binder_status_t AParcel_writeString(AParcel* parcel, const std::string& str) {
@@ -429,11 +672,17 @@
  */
 template <typename P>
 static inline binder_status_t AParcel_writeParcelable(AParcel* parcel, const P& p) {
-    binder_status_t status = AParcel_writeInt32(parcel, 1);  // non-null
-    if (status != STATUS_OK) {
-        return status;
+    if constexpr (is_interface_v<P>) {
+        // Legacy behavior: allow null
+        return first_template_type_t<P>::writeToParcel(parcel, p);
+    } else {
+        static_assert(is_parcelable_v<P>);
+        binder_status_t status = AParcel_writeInt32(parcel, 1);  // non-null
+        if (status != STATUS_OK) {
+            return status;
+        }
+        return p.writeToParcel(parcel);
     }
-    return p.writeToParcel(parcel);
 }
 
 /**
@@ -441,85 +690,134 @@
  */
 template <typename P>
 static inline binder_status_t AParcel_readParcelable(const AParcel* parcel, P* p) {
-    int32_t null;
-    binder_status_t status = AParcel_readInt32(parcel, &null);
-    if (status != STATUS_OK) {
-        return status;
+    if constexpr (is_interface_v<P>) {
+        // Legacy behavior: allow null
+        return first_template_type_t<P>::readFromParcel(parcel, p);
+    } else {
+        static_assert(is_parcelable_v<P>);
+        int32_t null;
+        binder_status_t status = AParcel_readInt32(parcel, &null);
+        if (status != STATUS_OK) {
+            return status;
+        }
+        if (null == 0) {
+            return STATUS_UNEXPECTED_NULL;
+        }
+        return p->readFromParcel(parcel);
     }
-    if (null == 0) {
-        return STATUS_UNEXPECTED_NULL;
-    }
-    return p->readFromParcel(parcel);
 }
 
 /**
  * Convenience API for writing a nullable parcelable.
  */
 template <typename P>
-static inline binder_status_t AParcel_writeNullableParcelable(AParcel* parcel,
-                                                              const std::optional<P>& p) {
-    if (p == std::nullopt) {
-        return AParcel_writeInt32(parcel, 0);  // null
+static inline binder_status_t AParcel_writeNullableParcelable(AParcel* parcel, const P& p) {
+    if constexpr (is_interface_v<P>) {
+        return first_template_type_t<P>::writeToParcel(parcel, p);
+    } else {
+        static_assert(is_nullable_parcelable_v<P>);
+        if (!p) {
+            return AParcel_writeInt32(parcel, 0);  // null
+        }
+        binder_status_t status = AParcel_writeInt32(parcel, 1);  // non-null
+        if (status != STATUS_OK) {
+            return status;
+        }
+        return p->writeToParcel(parcel);
     }
-    binder_status_t status = AParcel_writeInt32(parcel, 1);  // non-null
-    if (status != STATUS_OK) {
-        return status;
-    }
-    return p->writeToParcel(parcel);
-}
-
-/**
- * Convenience API for writing a nullable parcelable.
- */
-template <typename P>
-static inline binder_status_t AParcel_writeNullableParcelable(AParcel* parcel,
-                                                              const std::unique_ptr<P>& p) {
-    if (!p) {
-        return AParcel_writeInt32(parcel, 0);  // null
-    }
-    binder_status_t status = AParcel_writeInt32(parcel, 1);  // non-null
-    if (status != STATUS_OK) {
-        return status;
-    }
-    return p->writeToParcel(parcel);
 }
 
 /**
  * Convenience API for reading a nullable parcelable.
  */
 template <typename P>
-static inline binder_status_t AParcel_readNullableParcelable(const AParcel* parcel,
-                                                             std::optional<P>* p) {
-    int32_t null;
-    binder_status_t status = AParcel_readInt32(parcel, &null);
-    if (status != STATUS_OK) {
-        return status;
+static inline binder_status_t AParcel_readNullableParcelable(const AParcel* parcel, P* p) {
+    if constexpr (is_interface_v<P>) {
+        return first_template_type_t<P>::readFromParcel(parcel, p);
+    } else if constexpr (is_specialization_v<P, std::optional>) {
+        int32_t null;
+        binder_status_t status = AParcel_readInt32(parcel, &null);
+        if (status != STATUS_OK) {
+            return status;
+        }
+        if (null == 0) {
+            *p = std::nullopt;
+            return STATUS_OK;
+        }
+        p->emplace(first_template_type_t<P>());
+        return (*p)->readFromParcel(parcel);
+    } else {
+        static_assert(is_specialization_v<P, std::unique_ptr>);
+        int32_t null;
+        binder_status_t status = AParcel_readInt32(parcel, &null);
+        if (status != STATUS_OK) {
+            return status;
+        }
+        if (null == 0) {
+            p->reset();
+            return STATUS_OK;
+        }
+        *p = std::make_unique<first_template_type_t<P>>();
+        return (*p)->readFromParcel(parcel);
     }
-    if (null == 0) {
-        *p = std::nullopt;
-        return STATUS_OK;
-    }
-    *p = std::optional<P>(P{});
-    return (*p)->readFromParcel(parcel);
+}
+
+// Forward decls
+template <typename T>
+static inline binder_status_t AParcel_writeData(AParcel* parcel, const T& value);
+template <typename T>
+static inline binder_status_t AParcel_writeNullableData(AParcel* parcel, const T& value);
+template <typename T>
+static inline binder_status_t AParcel_readData(const AParcel* parcel, T* value);
+template <typename T>
+static inline binder_status_t AParcel_readNullableData(const AParcel* parcel, T* value);
+
+/**
+ * Reads an object of type T inside a std::array<T, N> at index 'index' from 'parcel'.
+ */
+template <typename T, size_t N>
+binder_status_t AParcel_readStdArrayData(const AParcel* parcel, void* arrayData, size_t index) {
+    std::array<T, N>* arr = static_cast<std::array<T, N>*>(arrayData);
+    return AParcel_readData(parcel, &arr->at(index));
 }
 
 /**
- * Convenience API for reading a nullable parcelable.
+ * Reads a nullable object of type T inside a std::array<T, N> at index 'index' from 'parcel'.
  */
-template <typename P>
-static inline binder_status_t AParcel_readNullableParcelable(const AParcel* parcel,
-                                                             std::unique_ptr<P>* p) {
-    int32_t null;
-    binder_status_t status = AParcel_readInt32(parcel, &null);
-    if (status != STATUS_OK) {
-        return status;
-    }
-    if (null == 0) {
-        p->reset();
-        return STATUS_OK;
-    }
-    *p = std::make_unique<P>();
-    return (*p)->readFromParcel(parcel);
+template <typename T, size_t N>
+binder_status_t AParcel_readStdArrayNullableData(const AParcel* parcel, void* arrayData,
+                                                 size_t index) {
+    std::array<T, N>* arr = static_cast<std::array<T, N>*>(arrayData);
+    return AParcel_readNullableData(parcel, &arr->at(index));
+}
+
+/**
+ * Reads a nullable object of type T inside a std::array<T, N> at index 'index' from 'parcel'.
+ */
+template <typename T, size_t N>
+binder_status_t AParcel_readNullableStdArrayNullableData(const AParcel* parcel, void* arrayData,
+                                                         size_t index) {
+    std::optional<std::array<T, N>>* arr = static_cast<std::optional<std::array<T, N>>*>(arrayData);
+    return AParcel_readNullableData(parcel, &(*arr)->at(index));
+}
+
+/**
+ * Writes an object of type T inside a std::array<T, N> at index 'index' to 'parcel'.
+ */
+template <typename T, size_t N>
+binder_status_t AParcel_writeStdArrayData(AParcel* parcel, const void* arrayData, size_t index) {
+    const std::array<T, N>* arr = static_cast<const std::array<T, N>*>(arrayData);
+    return AParcel_writeData(parcel, arr->at(index));
+}
+
+/**
+ * Writes a nullable object of type T inside a std::array<T, N> at index 'index' to 'parcel'.
+ */
+template <typename T, size_t N>
+binder_status_t AParcel_writeStdArrayNullableData(AParcel* parcel, const void* arrayData,
+                                                  size_t index) {
+    const std::array<T, N>* arr = static_cast<const std::array<T, N>*>(arrayData);
+    return AParcel_writeNullableData(parcel, arr->at(index));
 }
 
 /**
@@ -665,9 +963,25 @@
  */
 template <typename P>
 static inline binder_status_t AParcel_writeVector(AParcel* parcel, const std::vector<P>& vec) {
-    const void* vectorData = static_cast<const void*>(&vec);
-    return AParcel_writeParcelableArray(parcel, vectorData, static_cast<int32_t>(vec.size()),
-                                        AParcel_writeStdVectorParcelableElement<P>);
+    if constexpr (std::is_enum_v<P>) {
+        if constexpr (std::is_same_v<std::underlying_type_t<P>, int8_t>) {
+            return AParcel_writeByteArray(parcel, reinterpret_cast<const int8_t*>(vec.data()),
+                                          static_cast<int32_t>(vec.size()));
+        } else if constexpr (std::is_same_v<std::underlying_type_t<P>, int32_t>) {
+            return AParcel_writeInt32Array(parcel, reinterpret_cast<const int32_t*>(vec.data()),
+                                           static_cast<int32_t>(vec.size()));
+        } else if constexpr (std::is_same_v<std::underlying_type_t<P>, int64_t>) {
+            return AParcel_writeInt64Array(parcel, reinterpret_cast<const int64_t*>(vec.data()),
+                                           static_cast<int32_t>(vec.size()));
+        } else {
+            static_assert(dependent_false_v<P>, "unrecognized type");
+        }
+    } else {
+        static_assert(!std::is_same_v<P, std::string>, "specialization should be used");
+        const void* vectorData = static_cast<const void*>(&vec);
+        return AParcel_writeParcelableArray(parcel, vectorData, static_cast<int32_t>(vec.size()),
+                                            AParcel_writeStdVectorParcelableElement<P>);
+    }
 }
 
 /**
@@ -675,9 +989,24 @@
  */
 template <typename P>
 static inline binder_status_t AParcel_readVector(const AParcel* parcel, std::vector<P>* vec) {
-    void* vectorData = static_cast<void*>(vec);
-    return AParcel_readParcelableArray(parcel, vectorData, AParcel_stdVectorExternalAllocator<P>,
-                                       AParcel_readStdVectorParcelableElement<P>);
+    if constexpr (std::is_enum_v<P>) {
+        void* vectorData = static_cast<void*>(vec);
+        if constexpr (std::is_same_v<std::underlying_type_t<P>, int8_t>) {
+            return AParcel_readByteArray(parcel, vectorData, AParcel_stdVectorAllocator<int8_t>);
+        } else if constexpr (std::is_same_v<std::underlying_type_t<P>, int32_t>) {
+            return AParcel_readInt32Array(parcel, vectorData, AParcel_stdVectorAllocator<int32_t>);
+        } else if constexpr (std::is_same_v<std::underlying_type_t<P>, int64_t>) {
+            return AParcel_readInt64Array(parcel, vectorData, AParcel_stdVectorAllocator<int64_t>);
+        } else {
+            static_assert(dependent_false_v<P>, "unrecognized type");
+        }
+    } else {
+        static_assert(!std::is_same_v<P, std::string>, "specialization should be used");
+        void* vectorData = static_cast<void*>(vec);
+        return AParcel_readParcelableArray(parcel, vectorData,
+                                           AParcel_stdVectorExternalAllocator<P>,
+                                           AParcel_readStdVectorParcelableElement<P>);
+    }
 }
 
 /**
@@ -686,10 +1015,30 @@
 template <typename P>
 static inline binder_status_t AParcel_writeVector(AParcel* parcel,
                                                   const std::optional<std::vector<P>>& vec) {
-    if (!vec) return AParcel_writeInt32(parcel, -1);
-    const void* vectorData = static_cast<const void*>(&vec);
-    return AParcel_writeParcelableArray(parcel, vectorData, static_cast<int32_t>(vec->size()),
-                                        AParcel_writeNullableStdVectorParcelableElement<P>);
+    if constexpr (std::is_enum_v<P>) {
+        if constexpr (std::is_same_v<std::underlying_type_t<P>, int8_t>) {
+            return AParcel_writeByteArray(
+                    parcel, vec ? reinterpret_cast<const int8_t*>(vec->data()) : nullptr,
+                    vec ? static_cast<int32_t>(vec->size()) : -1);
+        } else if constexpr (std::is_same_v<std::underlying_type_t<P>, int32_t>) {
+            return AParcel_writeInt32Array(
+                    parcel, vec ? reinterpret_cast<const int32_t*>(vec->data()) : nullptr,
+                    vec ? static_cast<int32_t>(vec->size()) : -1);
+        } else if constexpr (std::is_same_v<std::underlying_type_t<P>, int64_t>) {
+            return AParcel_writeInt64Array(
+                    parcel, vec ? reinterpret_cast<const int64_t*>(vec->data()) : nullptr,
+                    vec ? static_cast<int32_t>(vec->size()) : -1);
+        } else {
+            static_assert(dependent_false_v<P>, "unrecognized type");
+        }
+    } else {
+        static_assert(!std::is_same_v<P, std::optional<std::string>>,
+                      "specialization should be used");
+        if (!vec) return AParcel_writeInt32(parcel, -1);
+        const void* vectorData = static_cast<const void*>(&vec);
+        return AParcel_writeParcelableArray(parcel, vectorData, static_cast<int32_t>(vec->size()),
+                                            AParcel_writeNullableStdVectorParcelableElement<P>);
+    }
 }
 
 /**
@@ -698,10 +1047,28 @@
 template <typename P>
 static inline binder_status_t AParcel_readVector(const AParcel* parcel,
                                                  std::optional<std::vector<P>>* vec) {
-    void* vectorData = static_cast<void*>(vec);
-    return AParcel_readParcelableArray(parcel, vectorData,
-                                       AParcel_nullableStdVectorExternalAllocator<P>,
-                                       AParcel_readNullableStdVectorParcelableElement<P>);
+    if constexpr (std::is_enum_v<P>) {
+        void* vectorData = static_cast<void*>(vec);
+        if constexpr (std::is_same_v<std::underlying_type_t<P>, int8_t>) {
+            return AParcel_readByteArray(parcel, vectorData,
+                                         AParcel_nullableStdVectorAllocator<int8_t>);
+        } else if constexpr (std::is_same_v<std::underlying_type_t<P>, int32_t>) {
+            return AParcel_readInt32Array(parcel, vectorData,
+                                          AParcel_nullableStdVectorAllocator<int32_t>);
+        } else if constexpr (std::is_same_v<std::underlying_type_t<P>, int64_t>) {
+            return AParcel_readInt64Array(parcel, vectorData,
+                                          AParcel_nullableStdVectorAllocator<int64_t>);
+        } else {
+            static_assert(dependent_false_v<P>, "unrecognized type");
+        }
+    } else {
+        static_assert(!std::is_same_v<P, std::optional<std::string>>,
+                      "specialization should be used");
+        void* vectorData = static_cast<void*>(vec);
+        return AParcel_readParcelableArray(parcel, vectorData,
+                                           AParcel_nullableStdVectorExternalAllocator<P>,
+                                           AParcel_readNullableStdVectorParcelableElement<P>);
+    }
 }
 
 // @START
@@ -1083,6 +1450,294 @@
     return STATUS_OK;
 }
 
+/**
+ * Writes a fixed-size array of T.
+ */
+template <typename T, size_t N>
+static inline binder_status_t AParcel_writeFixedArray(AParcel* parcel,
+                                                      const std::array<T, N>& arr) {
+    if constexpr (std::is_same_v<T, bool>) {
+        const void* arrayData = static_cast<const void*>(&arr);
+        return AParcel_writeBoolArray(parcel, arrayData, static_cast<int32_t>(N),
+                                      &AParcel_stdArrayGetter<T, N>);
+    } else if constexpr (std::is_same_v<T, uint8_t>) {
+        return AParcel_writeByteArray(parcel, reinterpret_cast<const int8_t*>(arr.data()),
+                                      static_cast<int32_t>(arr.size()));
+    } else if constexpr (std::is_same_v<T, char16_t>) {
+        return AParcel_writeCharArray(parcel, arr.data(), static_cast<int32_t>(arr.size()));
+    } else if constexpr (std::is_same_v<T, int32_t>) {
+        return AParcel_writeInt32Array(parcel, arr.data(), static_cast<int32_t>(arr.size()));
+    } else if constexpr (std::is_same_v<T, int64_t>) {
+        return AParcel_writeInt64Array(parcel, arr.data(), static_cast<int32_t>(arr.size()));
+    } else if constexpr (std::is_same_v<T, float>) {
+        return AParcel_writeFloatArray(parcel, arr.data(), static_cast<int32_t>(arr.size()));
+    } else if constexpr (std::is_same_v<T, double>) {
+        return AParcel_writeDoubleArray(parcel, arr.data(), static_cast<int32_t>(arr.size()));
+    } else if constexpr (std::is_same_v<T, std::string>) {
+        const void* arrayData = static_cast<const void*>(&arr);
+        return AParcel_writeStringArray(parcel, arrayData, static_cast<int32_t>(N),
+                                        &AParcel_stdArrayStringElementGetter<N>);
+    } else {
+        const void* arrayData = static_cast<const void*>(&arr);
+        return AParcel_writeParcelableArray(parcel, arrayData, static_cast<int32_t>(N),
+                                            &AParcel_writeStdArrayData<T, N>);
+    }
+}
+
+/**
+ * Writes a fixed-size array of T.
+ */
+template <typename T, size_t N>
+static inline binder_status_t AParcel_writeFixedArrayWithNullableData(AParcel* parcel,
+                                                                      const std::array<T, N>& arr) {
+    if constexpr (std::is_same_v<T, bool> || std::is_same_v<T, uint8_t> ||
+                  std::is_same_v<T, char16_t> || std::is_same_v<T, int32_t> ||
+                  std::is_same_v<T, int64_t> || std::is_same_v<T, float> ||
+                  std::is_same_v<T, double> || std::is_same_v<T, std::string>) {
+        return AParcel_writeFixedArray(parcel, arr);
+    } else if constexpr (std::is_same_v<T, std::optional<std::string>>) {
+        const void* arrayData = static_cast<const void*>(&arr);
+        return AParcel_writeStringArray(parcel, arrayData, static_cast<int32_t>(N),
+                                        &AParcel_stdArrayNullableStringElementGetter<N>);
+    } else {
+        const void* arrayData = static_cast<const void*>(&arr);
+        return AParcel_writeParcelableArray(parcel, arrayData, static_cast<int32_t>(N),
+                                            &AParcel_writeStdArrayNullableData<T, N>);
+    }
+}
+
+/**
+ * Writes a fixed-size array of T.
+ */
+template <typename T, size_t N>
+static inline binder_status_t AParcel_writeNullableFixedArrayWithNullableData(
+        AParcel* parcel, const std::optional<std::array<T, N>>& arr) {
+    if (!arr) return AParcel_writeInt32(parcel, -1);
+    return AParcel_writeFixedArrayWithNullableData(parcel, arr.value());
+}
+
+/**
+ * Reads a fixed-size array of T.
+ */
+template <typename T, size_t N>
+static inline binder_status_t AParcel_readFixedArray(const AParcel* parcel, std::array<T, N>* arr) {
+    void* arrayData = static_cast<void*>(arr);
+    if constexpr (std::is_same_v<T, bool>) {
+        return AParcel_readBoolArray(parcel, arrayData, &AParcel_stdArrayExternalAllocator<N>,
+                                     &AParcel_stdArraySetter<T, N>);
+    } else if constexpr (std::is_same_v<T, uint8_t>) {
+        return AParcel_readByteArray(parcel, arrayData, &AParcel_stdArrayAllocator<int8_t, N>);
+    } else if constexpr (std::is_same_v<T, char16_t>) {
+        return AParcel_readCharArray(parcel, arrayData, &AParcel_stdArrayAllocator<T, N>);
+    } else if constexpr (std::is_same_v<T, int32_t>) {
+        return AParcel_readInt32Array(parcel, arrayData, &AParcel_stdArrayAllocator<T, N>);
+    } else if constexpr (std::is_same_v<T, int64_t>) {
+        return AParcel_readInt64Array(parcel, arrayData, &AParcel_stdArrayAllocator<T, N>);
+    } else if constexpr (std::is_same_v<T, float>) {
+        return AParcel_readFloatArray(parcel, arrayData, &AParcel_stdArrayAllocator<T, N>);
+    } else if constexpr (std::is_same_v<T, double>) {
+        return AParcel_readDoubleArray(parcel, arrayData, &AParcel_stdArrayAllocator<T, N>);
+    } else if constexpr (std::is_same_v<T, std::string>) {
+        return AParcel_readStringArray(parcel, arrayData, &AParcel_stdArrayExternalAllocator<N>,
+                                       &AParcel_stdArrayStringElementAllocator<N>);
+    } else {
+        return AParcel_readParcelableArray(parcel, arrayData, &AParcel_stdArrayExternalAllocator<N>,
+                                           &AParcel_readStdArrayData<T, N>);
+    }
+}
+
+/**
+ * Reads a fixed-size array of T.
+ */
+template <typename T, size_t N>
+static inline binder_status_t AParcel_readFixedArrayWithNullableData(const AParcel* parcel,
+                                                                     std::array<T, N>* arr) {
+    void* arrayData = static_cast<void*>(arr);
+    if constexpr (std::is_same_v<T, bool> || std::is_same_v<T, uint8_t> ||
+                  std::is_same_v<T, char16_t> || std::is_same_v<T, int32_t> ||
+                  std::is_same_v<T, int64_t> || std::is_same_v<T, float> ||
+                  std::is_same_v<T, double> || std::is_same_v<T, std::string>) {
+        return AParcel_readFixedArray(parcel, arr);
+    } else if constexpr (std::is_same_v<T, std::optional<std::string>>) {
+        return AParcel_readStringArray(parcel, arrayData, &AParcel_stdArrayExternalAllocator<N>,
+                                       &AParcel_stdArrayNullableStringElementAllocator<N>);
+    } else {
+        return AParcel_readParcelableArray(parcel, arrayData, &AParcel_stdArrayExternalAllocator<N>,
+                                           &AParcel_readStdArrayNullableData<T, N>);
+    }
+}
+
+/**
+ * Reads a fixed-size array of T.
+ */
+template <typename T, size_t N>
+static inline binder_status_t AParcel_readNullableFixedArrayWithNullableData(
+        const AParcel* parcel, std::optional<std::array<T, N>>* arr) {
+    void* arrayData = static_cast<void*>(arr);
+    if constexpr (std::is_same_v<T, bool>) {
+        return AParcel_readBoolArray(parcel, arrayData,
+                                     &AParcel_nullableStdArrayExternalAllocator<T, N>,
+                                     &AParcel_nullableStdArraySetter<T, N>);
+    } else if constexpr (std::is_same_v<T, uint8_t>) {
+        return AParcel_readByteArray(parcel, arrayData,
+                                     &AParcel_nullableStdArrayAllocator<int8_t, N>);
+    } else if constexpr (std::is_same_v<T, char16_t>) {
+        return AParcel_readCharArray(parcel, arrayData, &AParcel_nullableStdArrayAllocator<T, N>);
+    } else if constexpr (std::is_same_v<T, int32_t>) {
+        return AParcel_readInt32Array(parcel, arrayData, &AParcel_nullableStdArrayAllocator<T, N>);
+    } else if constexpr (std::is_same_v<T, int64_t>) {
+        return AParcel_readInt64Array(parcel, arrayData, &AParcel_nullableStdArrayAllocator<T, N>);
+    } else if constexpr (std::is_same_v<T, float>) {
+        return AParcel_readFloatArray(parcel, arrayData, &AParcel_nullableStdArrayAllocator<T, N>);
+    } else if constexpr (std::is_same_v<T, double>) {
+        return AParcel_readDoubleArray(parcel, arrayData, &AParcel_nullableStdArrayAllocator<T, N>);
+    } else if constexpr (std::is_same_v<T, std::string>) {
+        return AParcel_readStringArray(parcel, arrayData,
+                                       &AParcel_nullableStdArrayExternalAllocator<N>,
+                                       &AParcel_nullableStdArrayStringElementAllocator<N>);
+    } else {
+        return AParcel_readParcelableArray(parcel, arrayData,
+                                           &AParcel_nullableStdArrayExternalAllocator<T, N>,
+                                           &AParcel_readStdArrayNullableData<T, N>);
+    }
+}
+
+/**
+ * Convenience API for writing a value of any type.
+ */
+template <typename T>
+static inline binder_status_t AParcel_writeData(AParcel* parcel, const T& value) {
+    if constexpr (is_specialization_v<T, std::vector>) {
+        return AParcel_writeVector(parcel, value);
+    } else if constexpr (is_fixed_array_v<T>) {
+        return AParcel_writeFixedArray(parcel, value);
+    } else if constexpr (std::is_same_v<std::string, T>) {
+        return AParcel_writeString(parcel, value);
+    } else if constexpr (std::is_same_v<bool, T>) {
+        return AParcel_writeBool(parcel, value);
+    } else if constexpr (std::is_same_v<int8_t, T> || std::is_same_v<uint8_t, T>) {
+        return AParcel_writeByte(parcel, value);
+    } else if constexpr (std::is_same_v<char16_t, T>) {
+        return AParcel_writeChar(parcel, value);
+    } else if constexpr (std::is_same_v<int32_t, T>) {
+        return AParcel_writeInt32(parcel, value);
+    } else if constexpr (std::is_same_v<int64_t, T>) {
+        return AParcel_writeInt64(parcel, value);
+    } else if constexpr (std::is_same_v<float, T>) {
+        return AParcel_writeFloat(parcel, value);
+    } else if constexpr (std::is_same_v<double, T>) {
+        return AParcel_writeDouble(parcel, value);
+    } else if constexpr (std::is_same_v<ScopedFileDescriptor, T>) {
+        return AParcel_writeRequiredParcelFileDescriptor(parcel, value);
+    } else if constexpr (std::is_same_v<SpAIBinder, T>) {
+        return AParcel_writeRequiredStrongBinder(parcel, value);
+    } else if constexpr (std::is_enum_v<T>) {
+        return AParcel_writeData(parcel, static_cast<std::underlying_type_t<T>>(value));
+    } else if constexpr (is_interface_v<T>) {
+        return AParcel_writeParcelable(parcel, value);
+    } else if constexpr (is_parcelable_v<T>) {
+        return AParcel_writeParcelable(parcel, value);
+    } else {
+        static_assert(dependent_false_v<T>, "unrecognized type");
+        return STATUS_OK;
+    }
+}
+
+/**
+ * Convenience API for writing a nullable value of any type.
+ */
+template <typename T>
+static inline binder_status_t AParcel_writeNullableData(AParcel* parcel, const T& value) {
+    if constexpr (is_specialization_v<T, std::optional> &&
+                  is_specialization_v<first_template_type_t<T>, std::vector>) {
+        return AParcel_writeVector(parcel, value);
+    } else if constexpr (is_specialization_v<T, std::optional> &&
+                         is_fixed_array_v<first_template_type_t<T>>) {
+        return AParcel_writeNullableFixedArrayWithNullableData(parcel, value);
+    } else if constexpr (is_fixed_array_v<T>) {  // happens with a nullable multi-dimensional array.
+        return AParcel_writeFixedArrayWithNullableData(parcel, value);
+    } else if constexpr (is_specialization_v<T, std::optional> &&
+                         std::is_same_v<first_template_type_t<T>, std::string>) {
+        return AParcel_writeString(parcel, value);
+    } else if constexpr (is_nullable_parcelable_v<T> || is_interface_v<T>) {
+        return AParcel_writeNullableParcelable(parcel, value);
+    } else if constexpr (std::is_same_v<ScopedFileDescriptor, T>) {
+        return AParcel_writeNullableParcelFileDescriptor(parcel, value);
+    } else if constexpr (std::is_same_v<SpAIBinder, T>) {
+        return AParcel_writeNullableStrongBinder(parcel, value);
+    } else {
+        return AParcel_writeData(parcel, value);
+    }
+}
+
+/**
+ * Convenience API for reading a value of any type.
+ */
+template <typename T>
+static inline binder_status_t AParcel_readData(const AParcel* parcel, T* value) {
+    if constexpr (is_specialization_v<T, std::vector>) {
+        return AParcel_readVector(parcel, value);
+    } else if constexpr (is_fixed_array_v<T>) {
+        return AParcel_readFixedArray(parcel, value);
+    } else if constexpr (std::is_same_v<std::string, T>) {
+        return AParcel_readString(parcel, value);
+    } else if constexpr (std::is_same_v<bool, T>) {
+        return AParcel_readBool(parcel, value);
+    } else if constexpr (std::is_same_v<int8_t, T> || std::is_same_v<uint8_t, T>) {
+        return AParcel_readByte(parcel, value);
+    } else if constexpr (std::is_same_v<char16_t, T>) {
+        return AParcel_readChar(parcel, value);
+    } else if constexpr (std::is_same_v<int32_t, T>) {
+        return AParcel_readInt32(parcel, value);
+    } else if constexpr (std::is_same_v<int64_t, T>) {
+        return AParcel_readInt64(parcel, value);
+    } else if constexpr (std::is_same_v<float, T>) {
+        return AParcel_readFloat(parcel, value);
+    } else if constexpr (std::is_same_v<double, T>) {
+        return AParcel_readDouble(parcel, value);
+    } else if constexpr (std::is_same_v<ScopedFileDescriptor, T>) {
+        return AParcel_readRequiredParcelFileDescriptor(parcel, value);
+    } else if constexpr (std::is_same_v<SpAIBinder, T>) {
+        return AParcel_readRequiredStrongBinder(parcel, value);
+    } else if constexpr (std::is_enum_v<T>) {
+        return AParcel_readData(parcel, reinterpret_cast<std::underlying_type_t<T>*>(value));
+    } else if constexpr (is_interface_v<T>) {
+        return AParcel_readParcelable(parcel, value);
+    } else if constexpr (is_parcelable_v<T>) {
+        return AParcel_readParcelable(parcel, value);
+    } else {
+        static_assert(dependent_false_v<T>, "unrecognized type");
+        return STATUS_OK;
+    }
+}
+
+/**
+ * Convenience API for reading a nullable value of any type.
+ */
+template <typename T>
+static inline binder_status_t AParcel_readNullableData(const AParcel* parcel, T* value) {
+    if constexpr (is_specialization_v<T, std::optional> &&
+                  is_specialization_v<first_template_type_t<T>, std::vector>) {
+        return AParcel_readVector(parcel, value);
+    } else if constexpr (is_specialization_v<T, std::optional> &&
+                         is_fixed_array_v<first_template_type_t<T>>) {
+        return AParcel_readNullableFixedArrayWithNullableData(parcel, value);
+    } else if constexpr (is_fixed_array_v<T>) {  // happens with a nullable multi-dimensional array.
+        return AParcel_readFixedArrayWithNullableData(parcel, value);
+    } else if constexpr (is_specialization_v<T, std::optional> &&
+                         std::is_same_v<first_template_type_t<T>, std::string>) {
+        return AParcel_readString(parcel, value);
+    } else if constexpr (is_nullable_parcelable_v<T> || is_interface_v<T>) {
+        return AParcel_readNullableParcelable(parcel, value);
+    } else if constexpr (std::is_same_v<ScopedFileDescriptor, T>) {
+        return AParcel_readNullableParcelFileDescriptor(parcel, value);
+    } else if constexpr (std::is_same_v<SpAIBinder, T>) {
+        return AParcel_readNullableStrongBinder(parcel, value);
+    } else {
+        return AParcel_readData(parcel, value);
+    }
+}
+
 }  // namespace ndk
 
 /** @} */
diff --git a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h
index aa3b978..f45aa76 100644
--- a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h
+++ b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_cpp/android/binder_parcelable_utils.h
@@ -46,18 +46,42 @@
     AParcelableHolder() = delete;
     explicit AParcelableHolder(parcelable_stability_t stability)
         : mParcel(AParcel_create()), mStability(stability) {}
+
+#if __ANDROID_API__ >= 31
+    AParcelableHolder(const AParcelableHolder& other)
+        : mParcel(AParcel_create()), mStability(other.mStability) {
+        // AParcelableHolder has been introduced in 31.
+#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
+        if (__builtin_available(android 31, *)) {
+#else
+        if (__ANDROID_API__ >= 31) {
+#endif
+            AParcel_appendFrom(other.mParcel.get(), this->mParcel.get(), 0,
+                               AParcel_getDataSize(other.mParcel.get()));
+        }
+    }
+#endif
+
     AParcelableHolder(AParcelableHolder&& other) = default;
     virtual ~AParcelableHolder() = default;
 
     binder_status_t writeToParcel(AParcel* parcel) const {
         RETURN_ON_FAILURE(AParcel_writeInt32(parcel, static_cast<int32_t>(this->mStability)));
+#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
         if (__builtin_available(android 31, *)) {
+#else
+        if (__ANDROID_API__ >= 31) {
+#endif
             int32_t size = AParcel_getDataSize(this->mParcel.get());
             RETURN_ON_FAILURE(AParcel_writeInt32(parcel, size));
         } else {
             return STATUS_INVALID_OPERATION;
         }
+#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
         if (__builtin_available(android 31, *)) {
+#else
+        if (__ANDROID_API__ >= 31) {
+#endif
             int32_t size = AParcel_getDataSize(this->mParcel.get());
             RETURN_ON_FAILURE(AParcel_appendFrom(this->mParcel.get(), parcel, 0, size));
         } else {
@@ -67,13 +91,22 @@
     }
 
     binder_status_t readFromParcel(const AParcel* parcel) {
+#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
         if (__builtin_available(android 31, *)) {
+#else
+        if (__ANDROID_API__ >= 31) {
+#endif
             AParcel_reset(mParcel.get());
         } else {
             return STATUS_INVALID_OPERATION;
         }
 
-        RETURN_ON_FAILURE(AParcel_readInt32(parcel, &this->mStability));
+        parcelable_stability_t wireStability;
+        RETURN_ON_FAILURE(AParcel_readInt32(parcel, &wireStability));
+        if (this->mStability != wireStability) {
+            return STATUS_BAD_VALUE;
+        }
+
         int32_t dataSize;
         binder_status_t status = AParcel_readInt32(parcel, &dataSize);
 
@@ -87,7 +120,11 @@
             return STATUS_BAD_VALUE;
         }
 
+#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
         if (__builtin_available(android 31, *)) {
+#else
+        if (__ANDROID_API__ >= 31) {
+#endif
             status = AParcel_appendFrom(parcel, mParcel.get(), dataStartPos, dataSize);
         } else {
             status = STATUS_INVALID_OPERATION;
@@ -103,7 +140,11 @@
         if (this->mStability > T::_aidl_stability) {
             return STATUS_BAD_VALUE;
         }
+#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
         if (__builtin_available(android 31, *)) {
+#else
+        if (__ANDROID_API__ >= 31) {
+#endif
             AParcel_reset(mParcel.get());
         } else {
             return STATUS_INVALID_OPERATION;
@@ -117,7 +158,11 @@
     binder_status_t getParcelable(std::optional<T>* ret) const {
         const std::string parcelableDesc(T::descriptor);
         AParcel_setDataPosition(mParcel.get(), 0);
+#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
         if (__builtin_available(android 31, *)) {
+#else
+        if (__ANDROID_API__ >= 31) {
+#endif
             if (AParcel_getDataSize(mParcel.get()) == 0) {
                 *ret = std::nullopt;
                 return STATUS_OK;
@@ -141,7 +186,11 @@
     }
 
     void reset() {
+#ifdef __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__
         if (__builtin_available(android 31, *)) {
+#else
+        if (__ANDROID_API__ >= 31) {
+#endif
             AParcel_reset(mParcel.get());
         }
     }
diff --git a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_ndk/android/binder_status.h b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_ndk/android/binder_status.h
index 6f1fdfc..76c7aac 100644
--- a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_ndk/android/binder_status.h
+++ b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_ndk/android/binder_status.h
@@ -32,11 +32,26 @@
 
 __BEGIN_DECLS
 
-#ifndef __ANDROID_API__
-#error Android builds must be compiled against a specific API. If this is an \
- android platform host build, you must use libbinder_ndk_host_user.
+#ifndef __BIONIC__
+
+#ifndef __INTRODUCED_IN
+#define __INTRODUCED_IN(n)
 #endif
 
+#ifndef __assert
+#define __assert(a, b, c)          \
+    do {                           \
+        syslog(LOG_ERR, a ": " c); \
+        abort();                   \
+    } while (false)
+#endif
+
+#ifndef __ANDROID_API__
+#define __ANDROID_API__ 10000
+#endif
+
+#endif  // __BIONIC__
+
 /**
  * Low-level status types for use in binder. This is the least preferable way to
  * return an error for binder services (where binder_exception_t should be used,
diff --git a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h
index b0217c4..89f21dd 100644
--- a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h
+++ b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h
@@ -68,4 +68,16 @@
  */
 void AIBinder_setMinSchedulerPolicy(AIBinder* binder, int policy, int priority) __INTRODUCED_IN(33);
 
+/**
+ * Allow the binder to inherit realtime scheduling policies from its caller.
+ *
+ * This must be called before the object is sent to another process. Not thread
+ * safe.
+ *
+ * \param binder local server binder to set the policy for
+ * \param inheritRt whether to inherit realtime scheduling policies (default is
+ *     false).
+ */
+void AIBinder_setInheritRt(AIBinder* binder, bool inheritRt) __INTRODUCED_IN(33);
+
 __END_DECLS
diff --git a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_platform/android/binder_manager.h b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_platform/android/binder_manager.h
index 2a66941..dfa8ea2 100644
--- a/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_platform/android/binder_manager.h
+++ b/mainline/platform/sdk/include/frameworks/native/libs/binder/ndk/include_platform/android/binder_manager.h
@@ -53,11 +53,19 @@
 /**
  * Gets a binder object with this specific instance name. Blocks for a couple of seconds waiting on
  * it. This also implicitly calls AIBinder_incStrong (so the caller of this function is responsible
- * for calling AIBinder_decStrong).
+ * for calling AIBinder_decStrong). This does polling. A more efficient way to make sure you
+ * unblock as soon as the service is available is to use AIBinder_waitForService.
  *
  * WARNING: when using this API across an APEX boundary, do not use with unstable
  * AIDL services. TODO(b/139325195)
  *
+ * WARNING: when using this API, typically, you should call it in a loop. It's dangerous to
+ * assume that nullptr could mean that the service is not available. The service could just
+ * be starting. Generally, whether a service exists, this information should be declared
+ * externally (for instance, an Android feature might imply the existence of a service,
+ * a system property, or in the case of services in the VINTF manifest, it can be checked
+ * with AServiceManager_isDeclared).
+ *
  * \param instance identifier of the service used to lookup the service.
  */
 __attribute__((warn_unused_result)) AIBinder* AServiceManager_getService(const char* instance)
diff --git a/mainline/platform/sdk/x86/lib/libbinder_ndk.so b/mainline/platform/sdk/x86/lib/libbinder_ndk.so
index b0a07e3..5779e43 100755
--- a/mainline/platform/sdk/x86/lib/libbinder_ndk.so
+++ b/mainline/platform/sdk/x86/lib/libbinder_ndk.so
Binary files differ
diff --git a/mainline/platform/sdk/x86_64/lib/libbinder_ndk.so b/mainline/platform/sdk/x86_64/lib/libbinder_ndk.so
index a9c66a2..58bad6e 100755
--- a/mainline/platform/sdk/x86_64/lib/libbinder_ndk.so
+++ b/mainline/platform/sdk/x86_64/lib/libbinder_ndk.so
Binary files differ
diff --git a/mainline/runtime/host-exports/licenses/build/soong/licenses/LICENSE b/mainline/runtime/host-exports/licenses/build/soong/licenses/LICENSE
index dae0406..d645695 100644
--- a/mainline/runtime/host-exports/licenses/build/soong/licenses/LICENSE
+++ b/mainline/runtime/host-exports/licenses/build/soong/licenses/LICENSE
@@ -1,16 +1,4 @@
 
-   Copyright (c) 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.
-
-   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.
-
-
                                  Apache License
                            Version 2.0, January 2004
                         http://www.apache.org/licenses/
diff --git a/mainline/runtime/host-exports/linux_bionic/x86_64/bin/linkerconfig b/mainline/runtime/host-exports/linux_bionic/x86_64/bin/linkerconfig
index fca95ad..e66a603 100755
--- a/mainline/runtime/host-exports/linux_bionic/x86_64/bin/linkerconfig
+++ b/mainline/runtime/host-exports/linux_bionic/x86_64/bin/linkerconfig
Binary files differ
diff --git a/mainline/runtime/host-exports/linux_glibc/x86_64/bin/linkerconfig b/mainline/runtime/host-exports/linux_glibc/x86_64/bin/linkerconfig
index e094e4e..0bd5fa4 100755
--- a/mainline/runtime/host-exports/linux_glibc/x86_64/bin/linkerconfig
+++ b/mainline/runtime/host-exports/linux_glibc/x86_64/bin/linkerconfig
Binary files differ
diff --git a/mainline/runtime/host-exports/x86_64/bin/linker64 b/mainline/runtime/host-exports/x86_64/bin/linker64
index f735e75..0fd5f81 100755
--- a/mainline/runtime/host-exports/x86_64/bin/linker64
+++ b/mainline/runtime/host-exports/x86_64/bin/linker64
Binary files differ
diff --git a/mainline/runtime/sdk/Android.bp b/mainline/runtime/sdk/Android.bp
index 63796f8..8969bb5 100755
--- a/mainline/runtime/sdk/Android.bp
+++ b/mainline/runtime/sdk/Android.bp
@@ -115,7 +115,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license@current"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     sdk_version: "current",
@@ -163,7 +162,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     sdk_version: "current",
@@ -190,14 +188,11 @@
     name: "runtime-module-sdk_libc_headers@current",
     sdk_member_name: "libc_headers",
     visibility: [
-        "//art/tools/cpp-define-generator",
         "//bionic:__subpackages__",
         "//external/arm-optimized-routines",
-        "//external/boringssl",
         "//external/gwp_asan",
         "//external/jemalloc_new",
         "//external/libunwind_llvm",
-        "//external/minijail",
         "//external/scudo",
         "//system/core/property_service/libpropertyinfoparser",
         "//system/extras/toolchain-extras",
@@ -208,7 +203,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license@current"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     sdk_version: "1",
@@ -224,47 +218,47 @@
         android_arm64: {
             export_system_include_dirs: [
                 "android/arm64/include/bionic/libc/include",
+                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
                 "android/arm64/include/bionic/libc/kernel/uapi",
                 "android/arm64/include/bionic/libc/kernel/android/scsi",
                 "android/arm64/include/bionic/libc/kernel/android/uapi",
-                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
             ],
         },
         android_x86_64: {
             export_system_include_dirs: [
                 "android/x86_64/include/bionic/libc/include",
+                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86_64/include/bionic/libc/kernel/uapi",
                 "android/x86_64/include/bionic/libc/kernel/android/scsi",
                 "android/x86_64/include/bionic/libc/kernel/android/uapi",
-                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         android_arm: {
             export_system_include_dirs: [
                 "android/arm/include/bionic/libc/include",
+                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
                 "android/arm/include/bionic/libc/kernel/uapi",
                 "android/arm/include/bionic/libc/kernel/android/scsi",
                 "android/arm/include/bionic/libc/kernel/android/uapi",
-                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
             ],
         },
         android_x86: {
             export_system_include_dirs: [
                 "android/x86/include/bionic/libc/include",
+                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86/include/bionic/libc/kernel/uapi",
                 "android/x86/include/bionic/libc/kernel/android/scsi",
                 "android/x86/include/bionic/libc/kernel/android/uapi",
-                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic: {
             compile_multilib: "64",
             export_system_include_dirs: [
                 "linux_bionic/include/bionic/libc/include",
+                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
                 "linux_bionic/include/bionic/libc/kernel/uapi",
                 "linux_bionic/include/bionic/libc/kernel/android/scsi",
                 "linux_bionic/include/bionic/libc/kernel/android/uapi",
-                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic_x86_64: {
@@ -277,14 +271,11 @@
     name: "libc_headers",
     prefer: false,
     visibility: [
-        "//art/tools/cpp-define-generator",
         "//bionic:__subpackages__",
         "//external/arm-optimized-routines",
-        "//external/boringssl",
         "//external/gwp_asan",
         "//external/jemalloc_new",
         "//external/libunwind_llvm",
-        "//external/minijail",
         "//external/scudo",
         "//system/core/property_service/libpropertyinfoparser",
         "//system/extras/toolchain-extras",
@@ -295,7 +286,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     sdk_version: "1",
@@ -311,47 +301,47 @@
         android_arm64: {
             export_system_include_dirs: [
                 "android/arm64/include/bionic/libc/include",
+                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
                 "android/arm64/include/bionic/libc/kernel/uapi",
                 "android/arm64/include/bionic/libc/kernel/android/scsi",
                 "android/arm64/include/bionic/libc/kernel/android/uapi",
-                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
             ],
         },
         android_x86_64: {
             export_system_include_dirs: [
                 "android/x86_64/include/bionic/libc/include",
+                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86_64/include/bionic/libc/kernel/uapi",
                 "android/x86_64/include/bionic/libc/kernel/android/scsi",
                 "android/x86_64/include/bionic/libc/kernel/android/uapi",
-                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         android_arm: {
             export_system_include_dirs: [
                 "android/arm/include/bionic/libc/include",
+                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
                 "android/arm/include/bionic/libc/kernel/uapi",
                 "android/arm/include/bionic/libc/kernel/android/scsi",
                 "android/arm/include/bionic/libc/kernel/android/uapi",
-                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
             ],
         },
         android_x86: {
             export_system_include_dirs: [
                 "android/x86/include/bionic/libc/include",
+                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86/include/bionic/libc/kernel/uapi",
                 "android/x86/include/bionic/libc/kernel/android/scsi",
                 "android/x86/include/bionic/libc/kernel/android/uapi",
-                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic: {
             compile_multilib: "64",
             export_system_include_dirs: [
                 "linux_bionic/include/bionic/libc/include",
+                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
                 "linux_bionic/include/bionic/libc/kernel/uapi",
                 "linux_bionic/include/bionic/libc/kernel/android/scsi",
                 "linux_bionic/include/bionic/libc/kernel/android/uapi",
-                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic_x86_64: {
@@ -370,7 +360,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license@current"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     stl: "none",
@@ -413,7 +402,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     stl: "none",
@@ -456,7 +444,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license@current"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     stl: "none",
@@ -499,7 +486,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     stl: "none",
@@ -542,7 +528,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license@current"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     stl: "none",
@@ -585,7 +570,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     stl: "none",
@@ -628,7 +612,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license@current"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     stl: "none",
@@ -671,7 +654,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     stl: "none",
@@ -715,7 +697,6 @@
     licenses: ["runtime-module-sdk_bionic_libc_license@current"],
     host_supported: true,
     installable: false,
-    recovery_available: true,
     stl: "none",
     system_shared_libs: [],
     export_include_dirs: [
@@ -747,50 +728,50 @@
             srcs: ["android/arm64/lib/libc.so"],
             export_system_include_dirs: [
                 "android/arm64/include/bionic/libc/include",
+                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
                 "android/arm64/include/bionic/libc/kernel/uapi",
                 "android/arm64/include/bionic/libc/kernel/android/scsi",
                 "android/arm64/include/bionic/libc/kernel/android/uapi",
-                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
             ],
         },
         android_x86_64: {
             srcs: ["android/x86_64/lib/libc.so"],
             export_system_include_dirs: [
                 "android/x86_64/include/bionic/libc/include",
+                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86_64/include/bionic/libc/kernel/uapi",
                 "android/x86_64/include/bionic/libc/kernel/android/scsi",
                 "android/x86_64/include/bionic/libc/kernel/android/uapi",
-                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         android_arm: {
             srcs: ["android/arm/lib/libc.so"],
             export_system_include_dirs: [
                 "android/arm/include/bionic/libc/include",
+                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
                 "android/arm/include/bionic/libc/kernel/uapi",
                 "android/arm/include/bionic/libc/kernel/android/scsi",
                 "android/arm/include/bionic/libc/kernel/android/uapi",
-                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
             ],
         },
         android_x86: {
             srcs: ["android/x86/lib/libc.so"],
             export_system_include_dirs: [
                 "android/x86/include/bionic/libc/include",
+                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86/include/bionic/libc/kernel/uapi",
                 "android/x86/include/bionic/libc/kernel/android/scsi",
                 "android/x86/include/bionic/libc/kernel/android/uapi",
-                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic: {
             compile_multilib: "64",
             export_system_include_dirs: [
                 "linux_bionic/include/bionic/libc/include",
+                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
                 "linux_bionic/include/bionic/libc/kernel/uapi",
                 "linux_bionic/include/bionic/libc/kernel/android/scsi",
                 "linux_bionic/include/bionic/libc/kernel/android/uapi",
-                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic_x86_64: {
@@ -810,7 +791,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license"],
     host_supported: true,
-    recovery_available: true,
     stl: "none",
     system_shared_libs: [],
     export_include_dirs: [
@@ -842,50 +822,50 @@
             srcs: ["android/arm64/lib/libc.so"],
             export_system_include_dirs: [
                 "android/arm64/include/bionic/libc/include",
+                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
                 "android/arm64/include/bionic/libc/kernel/uapi",
                 "android/arm64/include/bionic/libc/kernel/android/scsi",
                 "android/arm64/include/bionic/libc/kernel/android/uapi",
-                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
             ],
         },
         android_x86_64: {
             srcs: ["android/x86_64/lib/libc.so"],
             export_system_include_dirs: [
                 "android/x86_64/include/bionic/libc/include",
+                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86_64/include/bionic/libc/kernel/uapi",
                 "android/x86_64/include/bionic/libc/kernel/android/scsi",
                 "android/x86_64/include/bionic/libc/kernel/android/uapi",
-                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         android_arm: {
             srcs: ["android/arm/lib/libc.so"],
             export_system_include_dirs: [
                 "android/arm/include/bionic/libc/include",
+                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
                 "android/arm/include/bionic/libc/kernel/uapi",
                 "android/arm/include/bionic/libc/kernel/android/scsi",
                 "android/arm/include/bionic/libc/kernel/android/uapi",
-                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
             ],
         },
         android_x86: {
             srcs: ["android/x86/lib/libc.so"],
             export_system_include_dirs: [
                 "android/x86/include/bionic/libc/include",
+                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86/include/bionic/libc/kernel/uapi",
                 "android/x86/include/bionic/libc/kernel/android/scsi",
                 "android/x86/include/bionic/libc/kernel/android/uapi",
-                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic: {
             compile_multilib: "64",
             export_system_include_dirs: [
                 "linux_bionic/include/bionic/libc/include",
+                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
                 "linux_bionic/include/bionic/libc/kernel/uapi",
                 "linux_bionic/include/bionic/libc/kernel/android/scsi",
                 "linux_bionic/include/bionic/libc/kernel/android/uapi",
-                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic_x86_64: {
@@ -906,7 +886,6 @@
     licenses: ["runtime-module-sdk_bionic_libdl_license@current"],
     host_supported: true,
     installable: false,
-    recovery_available: true,
     stl: "none",
     system_shared_libs: [],
     sanitize: {
@@ -929,50 +908,50 @@
             srcs: ["android/arm64/lib/libdl.so"],
             export_system_include_dirs: [
                 "android/arm64/include/bionic/libc/include",
+                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
                 "android/arm64/include/bionic/libc/kernel/uapi",
                 "android/arm64/include/bionic/libc/kernel/android/scsi",
                 "android/arm64/include/bionic/libc/kernel/android/uapi",
-                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
             ],
         },
         android_x86_64: {
             srcs: ["android/x86_64/lib/libdl.so"],
             export_system_include_dirs: [
                 "android/x86_64/include/bionic/libc/include",
+                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86_64/include/bionic/libc/kernel/uapi",
                 "android/x86_64/include/bionic/libc/kernel/android/scsi",
                 "android/x86_64/include/bionic/libc/kernel/android/uapi",
-                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         android_arm: {
             srcs: ["android/arm/lib/libdl.so"],
             export_system_include_dirs: [
                 "android/arm/include/bionic/libc/include",
+                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
                 "android/arm/include/bionic/libc/kernel/uapi",
                 "android/arm/include/bionic/libc/kernel/android/scsi",
                 "android/arm/include/bionic/libc/kernel/android/uapi",
-                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
             ],
         },
         android_x86: {
             srcs: ["android/x86/lib/libdl.so"],
             export_system_include_dirs: [
                 "android/x86/include/bionic/libc/include",
+                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86/include/bionic/libc/kernel/uapi",
                 "android/x86/include/bionic/libc/kernel/android/scsi",
                 "android/x86/include/bionic/libc/kernel/android/uapi",
-                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic: {
             compile_multilib: "64",
             export_system_include_dirs: [
                 "linux_bionic/include/bionic/libc/include",
+                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
                 "linux_bionic/include/bionic/libc/kernel/uapi",
                 "linux_bionic/include/bionic/libc/kernel/android/scsi",
                 "linux_bionic/include/bionic/libc/kernel/android/uapi",
-                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic_x86_64: {
@@ -992,7 +971,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libdl_license"],
     host_supported: true,
-    recovery_available: true,
     stl: "none",
     system_shared_libs: [],
     sanitize: {
@@ -1015,50 +993,50 @@
             srcs: ["android/arm64/lib/libdl.so"],
             export_system_include_dirs: [
                 "android/arm64/include/bionic/libc/include",
+                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
                 "android/arm64/include/bionic/libc/kernel/uapi",
                 "android/arm64/include/bionic/libc/kernel/android/scsi",
                 "android/arm64/include/bionic/libc/kernel/android/uapi",
-                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
             ],
         },
         android_x86_64: {
             srcs: ["android/x86_64/lib/libdl.so"],
             export_system_include_dirs: [
                 "android/x86_64/include/bionic/libc/include",
+                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86_64/include/bionic/libc/kernel/uapi",
                 "android/x86_64/include/bionic/libc/kernel/android/scsi",
                 "android/x86_64/include/bionic/libc/kernel/android/uapi",
-                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         android_arm: {
             srcs: ["android/arm/lib/libdl.so"],
             export_system_include_dirs: [
                 "android/arm/include/bionic/libc/include",
+                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
                 "android/arm/include/bionic/libc/kernel/uapi",
                 "android/arm/include/bionic/libc/kernel/android/scsi",
                 "android/arm/include/bionic/libc/kernel/android/uapi",
-                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
             ],
         },
         android_x86: {
             srcs: ["android/x86/lib/libdl.so"],
             export_system_include_dirs: [
                 "android/x86/include/bionic/libc/include",
+                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86/include/bionic/libc/kernel/uapi",
                 "android/x86/include/bionic/libc/kernel/android/scsi",
                 "android/x86/include/bionic/libc/kernel/android/uapi",
-                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic: {
             compile_multilib: "64",
             export_system_include_dirs: [
                 "linux_bionic/include/bionic/libc/include",
+                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
                 "linux_bionic/include/bionic/libc/kernel/uapi",
                 "linux_bionic/include/bionic/libc/kernel/android/scsi",
                 "linux_bionic/include/bionic/libc/kernel/android/uapi",
-                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic_x86_64: {
@@ -1079,7 +1057,6 @@
     licenses: ["runtime-module-sdk_bionic_libdl_license@current"],
     host_supported: true,
     installable: false,
-    recovery_available: true,
     stl: "none",
     system_shared_libs: [],
     sanitize: {
@@ -1127,7 +1104,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libdl_license"],
     host_supported: true,
-    recovery_available: true,
     stl: "none",
     system_shared_libs: [],
     sanitize: {
@@ -1176,7 +1152,6 @@
     licenses: ["runtime-module-sdk_bionic_libm_license@current"],
     host_supported: true,
     installable: false,
-    recovery_available: true,
     stl: "none",
     system_shared_libs: ["runtime-module-sdk_libc@current"],
     sanitize: {
@@ -1229,7 +1204,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libm_license"],
     host_supported: true,
-    recovery_available: true,
     stl: "none",
     system_shared_libs: ["libc"],
     sanitize: {
@@ -1287,7 +1261,6 @@
     licenses: ["runtime-module-sdk_bionic_libc_license@current"],
     host_supported: true,
     installable: false,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     stl: "none",
@@ -1312,50 +1285,50 @@
             srcs: ["android/arm64/lib/libasync_safe.a"],
             export_system_include_dirs: [
                 "android/arm64/include/bionic/libc/include",
+                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
                 "android/arm64/include/bionic/libc/kernel/uapi",
                 "android/arm64/include/bionic/libc/kernel/android/scsi",
                 "android/arm64/include/bionic/libc/kernel/android/uapi",
-                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
             ],
         },
         android_x86_64: {
             srcs: ["android/x86_64/lib/libasync_safe.a"],
             export_system_include_dirs: [
                 "android/x86_64/include/bionic/libc/include",
+                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86_64/include/bionic/libc/kernel/uapi",
                 "android/x86_64/include/bionic/libc/kernel/android/scsi",
                 "android/x86_64/include/bionic/libc/kernel/android/uapi",
-                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         android_arm: {
             srcs: ["android/arm/lib/libasync_safe.a"],
             export_system_include_dirs: [
                 "android/arm/include/bionic/libc/include",
+                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
                 "android/arm/include/bionic/libc/kernel/uapi",
                 "android/arm/include/bionic/libc/kernel/android/scsi",
                 "android/arm/include/bionic/libc/kernel/android/uapi",
-                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
             ],
         },
         android_x86: {
             srcs: ["android/x86/lib/libasync_safe.a"],
             export_system_include_dirs: [
                 "android/x86/include/bionic/libc/include",
+                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86/include/bionic/libc/kernel/uapi",
                 "android/x86/include/bionic/libc/kernel/android/scsi",
                 "android/x86/include/bionic/libc/kernel/android/uapi",
-                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic: {
             compile_multilib: "64",
             export_system_include_dirs: [
                 "linux_bionic/include/bionic/libc/include",
+                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
                 "linux_bionic/include/bionic/libc/kernel/uapi",
                 "linux_bionic/include/bionic/libc/kernel/android/scsi",
                 "linux_bionic/include/bionic/libc/kernel/android/uapi",
-                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic_x86_64: {
@@ -1379,7 +1352,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     stl: "none",
@@ -1404,50 +1376,50 @@
             srcs: ["android/arm64/lib/libasync_safe.a"],
             export_system_include_dirs: [
                 "android/arm64/include/bionic/libc/include",
+                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
                 "android/arm64/include/bionic/libc/kernel/uapi",
                 "android/arm64/include/bionic/libc/kernel/android/scsi",
                 "android/arm64/include/bionic/libc/kernel/android/uapi",
-                "android/arm64/include/bionic/libc/kernel/uapi/asm-arm64",
             ],
         },
         android_x86_64: {
             srcs: ["android/x86_64/lib/libasync_safe.a"],
             export_system_include_dirs: [
                 "android/x86_64/include/bionic/libc/include",
+                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86_64/include/bionic/libc/kernel/uapi",
                 "android/x86_64/include/bionic/libc/kernel/android/scsi",
                 "android/x86_64/include/bionic/libc/kernel/android/uapi",
-                "android/x86_64/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         android_arm: {
             srcs: ["android/arm/lib/libasync_safe.a"],
             export_system_include_dirs: [
                 "android/arm/include/bionic/libc/include",
+                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
                 "android/arm/include/bionic/libc/kernel/uapi",
                 "android/arm/include/bionic/libc/kernel/android/scsi",
                 "android/arm/include/bionic/libc/kernel/android/uapi",
-                "android/arm/include/bionic/libc/kernel/uapi/asm-arm",
             ],
         },
         android_x86: {
             srcs: ["android/x86/lib/libasync_safe.a"],
             export_system_include_dirs: [
                 "android/x86/include/bionic/libc/include",
+                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
                 "android/x86/include/bionic/libc/kernel/uapi",
                 "android/x86/include/bionic/libc/kernel/android/scsi",
                 "android/x86/include/bionic/libc/kernel/android/uapi",
-                "android/x86/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic: {
             compile_multilib: "64",
             export_system_include_dirs: [
                 "linux_bionic/include/bionic/libc/include",
+                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
                 "linux_bionic/include/bionic/libc/kernel/uapi",
                 "linux_bionic/include/bionic/libc/kernel/android/scsi",
                 "linux_bionic/include/bionic/libc/kernel/android/uapi",
-                "linux_bionic/include/bionic/libc/kernel/uapi/asm-x86",
             ],
         },
         linux_bionic_x86_64: {
@@ -1468,7 +1440,6 @@
     licenses: ["runtime-module-sdk_bionic_libc_license@current"],
     host_supported: true,
     installable: false,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     sdk_version: "minimum",
@@ -1515,7 +1486,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     sdk_version: "minimum",
@@ -1563,7 +1533,6 @@
     licenses: ["runtime-module-sdk_bionic_libc_license@current"],
     host_supported: true,
     installable: false,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     sdk_version: "minimum",
@@ -1610,7 +1579,6 @@
     ],
     licenses: ["runtime-module-sdk_bionic_libc_license"],
     host_supported: true,
-    recovery_available: true,
     vendor_available: true,
     product_available: true,
     sdk_version: "minimum",
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/api-level.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/api-level.h
index 40846fb..ecf318d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/api-level.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/api-level.h
@@ -151,6 +151,9 @@
 /** Names the "S" API level (31), for comparison against `__ANDROID_API__`. */
 #define __ANDROID_API_S__ 31
 
+/** Names the "T" API level (33), for comparison against `__ANDROID_API__`. */
+#define __ANDROID_API_T__ 33
+
 /* This file is included in <features.h>, and might be used from .S files. */
 #if !defined(__ASSEMBLY__)
 
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/legacy_signal_inlines.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/legacy_signal_inlines.h
index 95c2320..f2bdcf6 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/legacy_signal_inlines.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/legacy_signal_inlines.h
@@ -89,7 +89,7 @@
     errno = EINVAL;
     return -1;
   }
-  return (int)((local_set[bit / LONG_BIT] >> (bit % LONG_BIT)) & 1);
+  return (int)((local_set[bit / (8 * sizeof(long))] >> (bit % (8 * sizeof(long)))) & 1);
 }
 
 static __inline int sigaddset(sigset_t *set, int signum) {
@@ -100,7 +100,7 @@
     errno = EINVAL;
     return -1;
   }
-  local_set[bit / LONG_BIT] |= 1UL << (bit % LONG_BIT);
+  local_set[bit / (8 * sizeof(long))] |= 1UL << (bit % (8 * sizeof(long)));
   return 0;
 }
 
@@ -112,7 +112,7 @@
     errno = EINVAL;
     return -1;
   }
-  local_set[bit / LONG_BIT] &= ~(1UL << (bit % LONG_BIT));
+  local_set[bit / (8 * sizeof(long))] &= ~(1UL << (bit % (8 * sizeof(long))));
   return 0;
 }
 
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/versioning.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/versioning.h
index 214acf2..efe4354 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/versioning.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/android/versioning.h
@@ -51,7 +51,7 @@
 // those APIs will still cause a link error.
 #if defined(__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__)
 #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,__what)))
-#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
+#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN(api_level)
 #define __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
 #else
 #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what)))
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/fortify/stdio.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/fortify/stdio.h
index 42698dd..77bdbb4 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/fortify/stdio.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/fortify/stdio.h
@@ -40,6 +40,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE __printflike(3, 0)
 int vsnprintf(char* const __pass_object_size dest, size_t size, const char* format, va_list ap)
+        __diagnose_as_builtin(__builtin_vsnprintf, 1, 2, 3, 4)
         __overloadable {
     return __builtin___vsnprintf_chk(dest, size, 0, __bos(dest), format, ap);
 }
@@ -70,6 +71,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_VARIADIC __printflike(3, 4)
 int snprintf(char* const __pass_object_size dest, size_t size, const char* format, ...)
+        __diagnose_as_builtin(__builtin_snprintf, 1, 2, 3)
         __overloadable {
     va_list va;
     va_start(va, format);
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/fortify/string.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/fortify/string.h
index beb5ff5..08bce2d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/fortify/string.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/fortify/string.h
@@ -44,13 +44,16 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 void* memcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+        __diagnose_as_builtin(__builtin_memcpy, 1, 2, 3)
         __overloadable {
     return __builtin___memcpy_chk(dst, src, copy_amount, __bos0(dst));
 }
 
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-void* memmove(void* const dst __pass_object_size0, const void* src, size_t len) __overloadable {
+void* memmove(void* const dst __pass_object_size0, const void* src, size_t len)
+        __diagnose_as_builtin(__builtin_memmove, 1, 2, 3)
+        __overloadable {
     return __builtin___memmove_chk(dst, src, len, __bos0(dst));
 }
 #endif
@@ -59,6 +62,7 @@
 #if __ANDROID_API__ >= 30
 __BIONIC_FORTIFY_INLINE
 void* mempcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+        __diagnose_as_builtin(__builtin_mempcpy, 1, 2, 3)
         __overloadable
         __clang_error_if(__bos_unevaluated_lt(__bos0(dst), copy_amount),
                          "'mempcpy' called with size bigger than buffer") {
@@ -87,6 +91,7 @@
 
 __BIONIC_FORTIFY_INLINE
 char* strcpy(char* const dst __pass_object_size, const char* src)
+        __diagnose_as_builtin(__builtin_strcpy, 1, 2)
         __overloadable
         __clang_error_if(__bos_unevaluated_le(__bos(dst), __builtin_strlen(src)),
                          "'strcpy' called with string bigger than buffer") {
@@ -112,7 +117,9 @@
 #if __ANDROID_API__ >= 17 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-char* strncat(char* const dst __pass_object_size, const char* src, size_t n) __overloadable {
+char* strncat(char* const dst __pass_object_size, const char* src, size_t n)
+       __diagnose_as_builtin(__builtin_strncat, 1, 2, 3)
+       __overloadable {
     return __builtin___strncat_chk(dst, src, n, __bos(dst));
 }
 #endif
@@ -120,6 +127,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 void* memset(void* const s __pass_object_size0, int c, size_t n) __overloadable
+        __diagnose_as_builtin(__builtin_memset, 1, 2, 3)
         /* If you're a user who wants this warning to go away: use `(&memset)(foo, bar, baz)`. */
         __clang_warning_if(c && !n, "'memset' will set 0 bytes; maybe the arguments got flipped?") {
 #if __ANDROID_API__ >= 17 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
@@ -157,6 +165,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 char* stpncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+        __diagnose_as_builtin(__builtin_stpncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
     size_t bos_src = __bos(src);
@@ -172,6 +181,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 char* strncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+        __diagnose_as_builtin(__builtin_strncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
     size_t bos_src = __bos(src);
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/glibc-syscalls.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/glibc-syscalls.h
index fbda7fe..c144919 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/glibc-syscalls.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/glibc-syscalls.h
@@ -303,6 +303,9 @@
 #if defined(__NR_futex_time64)
   #define SYS_futex_time64 __NR_futex_time64
 #endif
+#if defined(__NR_futex_waitv)
+  #define SYS_futex_waitv __NR_futex_waitv
+#endif
 #if defined(__NR_futimesat)
   #define SYS_futimesat __NR_futimesat
 #endif
@@ -507,6 +510,15 @@
 #if defined(__NR_kill)
   #define SYS_kill __NR_kill
 #endif
+#if defined(__NR_landlock_add_rule)
+  #define SYS_landlock_add_rule __NR_landlock_add_rule
+#endif
+#if defined(__NR_landlock_create_ruleset)
+  #define SYS_landlock_create_ruleset __NR_landlock_create_ruleset
+#endif
+#if defined(__NR_landlock_restrict_self)
+  #define SYS_landlock_restrict_self __NR_landlock_restrict_self
+#endif
 #if defined(__NR_lchown)
   #define SYS_lchown __NR_lchown
 #endif
@@ -567,6 +579,9 @@
 #if defined(__NR_memfd_create)
   #define SYS_memfd_create __NR_memfd_create
 #endif
+#if defined(__NR_memfd_secret)
+  #define SYS_memfd_secret __NR_memfd_secret
+#endif
 #if defined(__NR_migrate_pages)
   #define SYS_migrate_pages __NR_migrate_pages
 #endif
@@ -789,6 +804,9 @@
 #if defined(__NR_process_madvise)
   #define SYS_process_madvise __NR_process_madvise
 #endif
+#if defined(__NR_process_mrelease)
+  #define SYS_process_mrelease __NR_process_mrelease
+#endif
 #if defined(__NR_process_vm_readv)
   #define SYS_process_vm_readv __NR_process_vm_readv
 #endif
@@ -828,6 +846,9 @@
 #if defined(__NR_quotactl)
   #define SYS_quotactl __NR_quotactl
 #endif
+#if defined(__NR_quotactl_fd)
+  #define SYS_quotactl_fd __NR_quotactl_fd
+#endif
 #if defined(__NR_read)
   #define SYS_read __NR_read
 #endif
@@ -1002,6 +1023,9 @@
 #if defined(__NR_set_mempolicy)
   #define SYS_set_mempolicy __NR_set_mempolicy
 #endif
+#if defined(__NR_set_mempolicy_home_node)
+  #define SYS_set_mempolicy_home_node __NR_set_mempolicy_home_node
+#endif
 #if defined(__NR_set_robust_list)
   #define SYS_set_robust_list __NR_set_robust_list
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/signal_types.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/signal_types.h
index e1a155f..699e257 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/signal_types.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/bits/signal_types.h
@@ -61,7 +61,7 @@
 #if defined(__LP64__)
 typedef sigset_t sigset64_t;
 #else
-typedef struct { unsigned long __bits[_KERNEL__NSIG/LONG_BIT]; } sigset64_t;
+typedef struct { unsigned long __bits[_KERNEL__NSIG/(8*sizeof(long))]; } sigset64_t;
 #endif
 
 #if defined(__LP64__)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/execinfo.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/execinfo.h
new file mode 100644
index 0000000..347ae92
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/execinfo.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#pragma once
+
+#include <sys/cdefs.h>
+
+/**
+ * @file execinfo.h
+ * @brief Functions to do in process backtracing.
+ */
+
+__BEGIN_DECLS
+
+/**
+ * [backtrace(3)](https://man7.org/linux/man-pages/man3/backtrace.3.html)
+ * Saves a backtrace for the current call in the array pointed to by buffer.
+ * "size" indicates the maximum number of void* pointers that can be set.
+ *
+ * Returns the number of addresses stored in "buffer", which is not greater
+ * than "size". If the return value is equal to "size" then the number of
+ * addresses may have been truncated.
+ *
+ * Available since API level 33.
+ */
+int backtrace(void** buffer, int size) __INTRODUCED_IN(33);
+
+/**
+ * [backtrace_symbols(3)](https://man7.org/linux/man-pages/man3/backtrace_symbols.3.html)
+ * Given an array of void* pointers, translate the addresses into an array
+ * of strings that represent the backtrace.
+ *
+ * Returns a pointer to allocated memory, on error NULL is returned. It is
+ * the responsibility of the caller to free the returned memory.
+ *
+ * Available since API level 33.
+ */
+char** backtrace_symbols(void* const* buffer, int size) __INTRODUCED_IN(33);
+
+/**
+ * [backtrace_symbols_fd(3)](https://man7.org/linux/man-pages/man3/backtrace_symbols_fd.3.html)
+ * Given an array of void* pointers, translate the addresses into an array
+ * of strings that represent the backtrace and write to the file represented
+ * by "fd". The file is written such that one line equals one void* address.
+ *
+ * Available since API level 33.
+ */
+void backtrace_symbols_fd(void* const* buffer, int size, int fd) __INTRODUCED_IN(33);
+
+__END_DECLS
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/malloc.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/malloc.h
index bae1f68..40786fa 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/malloc.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/malloc.h
@@ -97,30 +97,31 @@
  */
 size_t malloc_usable_size(const void* __ptr) __INTRODUCED_IN(17);
 
+#define __MALLINFO_BODY \
+  /** Total number of non-mmapped bytes currently allocated from OS. */ \
+  size_t arena; \
+  /** Number of free chunks. */ \
+  size_t ordblks; \
+  /** (Unused.) */ \
+  size_t smblks; \
+  /** (Unused.) */ \
+  size_t hblks; \
+  /** Total number of bytes in mmapped regions. */ \
+  size_t hblkhd; \
+  /** Maximum total allocated space; greater than total if trimming has occurred. */ \
+  size_t usmblks; \
+  /** (Unused.) */ \
+  size_t fsmblks; \
+  /** Total allocated space (normal or mmapped.) */ \
+  size_t uordblks; \
+  /** Total free space. */ \
+  size_t fordblks; \
+  /** Upper bound on number of bytes releasable by a trim operation. */ \
+  size_t keepcost;
+
 #ifndef STRUCT_MALLINFO_DECLARED
 #define STRUCT_MALLINFO_DECLARED 1
-struct mallinfo {
-  /** Total number of non-mmapped bytes currently allocated from OS. */
-  size_t arena;
-  /** Number of free chunks. */
-  size_t ordblks;
-  /** (Unused.) */
-  size_t smblks;
-  /** (Unused.) */
-  size_t hblks;
-  /** Total number of bytes in mmapped regions. */
-  size_t hblkhd;
-  /** Maximum total allocated space; greater than total if trimming has occurred. */
-  size_t usmblks;
-  /** (Unused.) */
-  size_t fsmblks;
-  /** Total allocated space (normal or mmapped.) */
-  size_t uordblks;
-  /** Total free space. */
-  size_t fordblks;
-  /** Upper bound on number of bytes releasable by a trim operation. */
-  size_t keepcost;
-};
+struct mallinfo { __MALLINFO_BODY };
 #endif
 
 /**
@@ -131,6 +132,18 @@
 struct mallinfo mallinfo(void);
 
 /**
+ * On Android the struct mallinfo and struct mallinfo2 are the same.
+ */
+struct mallinfo2 { __MALLINFO_BODY };
+
+/**
+ * [mallinfo2(3)](http://man7.org/linux/man-pages/man3/mallinfo2.3.html) returns
+ * information about the current state of the heap. Note that mallinfo2() is
+ * inherently unreliable and consider using malloc_info() instead.
+ */
+struct mallinfo2 mallinfo2(void) __RENAME(mallinfo);
+
+/**
  * [malloc_info(3)](http://man7.org/linux/man-pages/man3/malloc_info.3.html)
  * writes information about the current state of the heap to the given stream.
  *
@@ -170,7 +183,45 @@
  * Available since API level 28.
  */
 #define M_PURGE (-101)
-/*
+
+
+/**
+ * mallopt() option to tune the allocator's choice of memory tags to
+ * make it more likely that a certain class of memory errors will be
+ * detected. This is only relevant if MTE is enabled in this process
+ * and ignored otherwise. The value argument should be one of the
+ * M_MEMTAG_TUNING_* flags.
+ * NOTE: This is only available in scudo.
+ *
+ * Available since API level 31.
+ */
+#define M_MEMTAG_TUNING (-102)
+
+/**
+ * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables
+ * deterministic detection of linear buffer overflow and underflow
+ * bugs by assigning distinct tag values to adjacent allocations. This
+ * mode has a slightly reduced chance to detect use-after-free bugs
+ * because only half of the possible tag values are available for each
+ * memory location.
+ *
+ * Please keep in mind that MTE can not detect overflow within the
+ * same tag granule (16-byte aligned chunk), and can miss small
+ * overflows even in this mode. Such overflow can not be the cause of
+ * a memory corruption, because the memory within one granule is never
+ * used for multiple allocations.
+ */
+#define M_MEMTAG_TUNING_BUFFER_OVERFLOW 0
+
+/**
+ * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables
+ * independently randomized tags for uniform ~93% probability of
+ * detecting both spatial (buffer overflow) and temporal (use after
+ * free) bugs.
+ */
+#define M_MEMTAG_TUNING_UAF 1
+
+/**
  * mallopt() option for per-thread memory initialization tuning.
  * The value argument should be one of:
  * 1: Disable automatic heap initialization and, where possible, memory tagging,
@@ -210,7 +261,7 @@
  * should not be zero-initialized, any other value indicates to initialize heap
  * memory to zero.
  *
- * Note that this memory mitigations is only implemented in scudo and therefore
+ * Note that this memory mitigation is only implemented in scudo and therefore
  * this will have no effect when using another allocator (such as jemalloc on
  * Android Go devices).
  *
@@ -222,6 +273,7 @@
  * mallopt() option to change the heap tagging state. May be called at any
  * time, including when multiple threads are running.
  * The value must be one of the M_HEAP_TAGGING_LEVEL_ constants.
+ * NOTE: This is only available in scudo.
  *
  * Available since API level 31.
  */
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/netinet/in.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/netinet/in.h
index 7f00a7a..46e3543 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/netinet/in.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/netinet/in.h
@@ -33,7 +33,18 @@
 #include <sys/cdefs.h>
 #include <sys/socket.h>
 
+// Include linux/socket.h first to trigger the header guard without
+// the__kernel_sockaddr_storage define, so its definition uses the
+// kernel name.
+#include <linux/socket.h>
+
+// Redefine __kernel_sockaddr_storage to sockaddr_storage so that
+// the structs defined in linux/in.h use the sockaddr_storage defined
+// in sys/sockets.h.
+#define __kernel_sockaddr_storage sockaddr_storage
 #include <linux/in.h>
+#undef __kernel_sockaddr_storage
+
 #include <linux/in6.h>
 #include <linux/ipv6.h>
 
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sched.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sched.h
index 3260231..364ca10 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sched.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sched.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SCHED_H_
-#define _SCHED_H_
+#pragma once
+
+/**
+ * @file sched.h
+ * @brief Thread execution scheduling.
+ */
 
 #include <bits/timespec.h>
 #include <linux/sched.h>
@@ -35,29 +39,170 @@
 
 __BEGIN_DECLS
 
-/* This name is used by glibc, but not by the kernel. */
+/*
+ * @def SCHED_NORMAL
+ * The standard (as opposed to real-time) round-robin scheduling policy.
+ *
+ * (Linux's name for POSIX's SCHED_OTHER.)
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_FIFO
+ * The real-time first-in/first-out scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_RR
+ * The real-time round-robin policy. (See also SCHED_NORMAL/SCHED_OTHER.)
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_BATCH
+ * The batch scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_IDLE
+ * The low priority "only when otherwise idle" scheduling priority.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_DEADLINE
+ * The deadline scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * The standard (as opposed to real-time) round-robin scheduling policy.
+ *
+ * (POSIX's name for Linux's SCHED_NORMAL.)
+ */
 #define SCHED_OTHER SCHED_NORMAL
 
+/**
+ * See sched_getparam()/sched_setparam() and
+ * sched_getscheduler()/sched_setscheduler().
+ */
 struct sched_param {
   int sched_priority;
 };
 
+/**
+ * [sched_setscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * sets the scheduling policy and associated parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setscheduler(pid_t __pid, int __policy, const struct sched_param* __param);
+
+/**
+ * [sched_getscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * gets the scheduling policy for the given thread.
+ *
+ * Returns a non-negative thread policy on success and returns -1 and sets
+ * `errno` on failure.
+ */
 int sched_getscheduler(pid_t __pid);
+
+/**
+ * [sched_yield(2)](http://man7.org/linux/man-pages/man2/sched_yield.2.html)
+ * voluntarily gives up using the CPU so that another thread can run.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_yield(void);
+
+/**
+ * [sched_get_priority_max(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_max.2.html)
+ * gets the maximum priority value allowed for the given scheduling policy.
+ *
+ * Returns a priority on success and returns -1 and sets `errno` on failure.
+ */
 int sched_get_priority_max(int __policy);
+
+/**
+ * [sched_get_priority_min(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_min.2.html)
+ * gets the minimum priority value allowed for the given scheduling policy.
+ *
+ * Returns a priority on success and returns -1 and sets `errno` on failure.
+ */
 int sched_get_priority_min(int __policy);
+
+/**
+ * [sched_setparam(2)](http://man7.org/linux/man-pages/man2/sched_setparam.2.html)
+ * sets the scheduling parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setparam(pid_t __pid, const struct sched_param* __param);
+
+/**
+ * [sched_getparam(2)](http://man7.org/linux/man-pages/man2/sched_getparam.2.html)
+ * gets the scheduling parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_getparam(pid_t __pid, struct sched_param* __param);
+
+/**
+ * [sched_rr_get_interval(2)](http://man7.org/linux/man-pages/man2/sched_rr_get_interval.2.html)
+ * queries the round-robin time quantum for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_rr_get_interval(pid_t __pid, struct timespec* __quantum);
 
 #if defined(__USE_GNU)
 
+/**
+ * [clone(2)](http://man7.org/linux/man-pages/man2/clone.2.html)
+ * creates a new child process.
+ *
+ * Returns the pid of the child to the caller on success and
+ * returns -1 and sets `errno` on failure.
+ */
 int clone(int (*__fn)(void*), void* __child_stack, int __flags, void* __arg, ...) __INTRODUCED_IN_ARM(9) __INTRODUCED_IN_X86(17);
+
+/**
+ * [unshare(2)](http://man7.org/linux/man-pages/man2/unshare.2.html)
+ * disassociates part of the caller's execution context.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 17.
+ */
 int unshare(int __flags) __INTRODUCED_IN(17);
-int sched_getcpu(void);
+
+/**
+ * [setns(2)](http://man7.org/linux/man-pages/man2/setns.2.html)
+ * reassociates a thread with a different namespace.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 21.
+ */
 int setns(int __fd, int __ns_type) __INTRODUCED_IN(21);
 
+/**
+ * [sched_getcpu(3)](http://man7.org/linux/man-pages/man3/sched_getcpu.3.html)
+ * reports which CPU the caller is running on.
+ *
+ * Returns a non-negative CPU number on success and returns -1 and sets
+ * `errno` on failure.
+ */
+int sched_getcpu(void);
+
 #ifdef __LP64__
 #define CPU_SETSIZE 1024
 #else
@@ -69,39 +214,50 @@
 #define __CPU_ELT(x)   ((x) / __CPU_BITS)
 #define __CPU_MASK(x)  ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
 
+/**
+ * [cpu_set_t](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) is a
+ * statically-sized CPU set. See `CPU_ALLOC` for dynamically-sized CPU sets.
+ */
 typedef struct {
   __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
 } cpu_set_t;
 
+/**
+ * [sched_setaffinity(2)](http://man7.org/linux/man-pages/man2/sched_setaffinity.2.html)
+ * sets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setaffinity(pid_t __pid, size_t __set_size, const cpu_set_t* __set);
+
+/**
+ * [sched_getaffinity(2)](http://man7.org/linux/man-pages/man2/sched_getaffinity.2.html)
+ * gets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_getaffinity(pid_t __pid, size_t __set_size, cpu_set_t* __set);
 
+/**
+ * [CPU_ZERO](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all
+ * bits in a static CPU set.
+ */
 #define CPU_ZERO(set)          CPU_ZERO_S(sizeof(cpu_set_t), set)
-#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
-#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
-
-#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
-#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
-#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
-
-#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
-
-/* Support for dynamically-allocated cpu_set_t */
-
-#define CPU_ALLOC_SIZE(count) \
-  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
-
-#define CPU_ALLOC(count)  __sched_cpualloc((count))
-#define CPU_FREE(set)     __sched_cpufree((set))
-
-cpu_set_t* __sched_cpualloc(size_t __count);
-void __sched_cpufree(cpu_set_t* __set);
-
+/**
+ * [CPU_ZERO_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all
+ * bits in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_ZERO_S(setsize, set)  __builtin_memset(set, 0, setsize)
 
+/**
+ * [CPU_SET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one
+ * bit in a static CPU set.
+ */
+#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_SET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one
+ * bit in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_SET_S(cpu, setsize, set) \
   do { \
     size_t __cpu = (cpu); \
@@ -109,6 +265,15 @@
       (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
   } while (0)
 
+/**
+ * [CPU_CLR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one
+ * bit in a static CPU set.
+ */
+#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_CLR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one
+ * bit in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_CLR_S(cpu, setsize, set) \
   do { \
     size_t __cpu = (cpu); \
@@ -116,6 +281,15 @@
       (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
   } while (0)
 
+/**
+ * [CPU_ISSET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether the given bit is set in a static CPU set.
+ */
+#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_ISSET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether the given bit is set in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_ISSET_S(cpu, setsize, set) \
   (__extension__ ({ \
     size_t __cpu = (cpu); \
@@ -124,12 +298,65 @@
       : 0; \
   }))
 
+/**
+ * [CPU_COUNT](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts
+ * how many bits are set in a static CPU set.
+ */
+#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
+/**
+ * [CPU_COUNT_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts
+ * how many bits are set in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
+#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
+int __sched_cpucount(size_t __set_size, const cpu_set_t* __set);
+
+/**
+ * [CPU_EQUAL](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether two static CPU sets have the same bits set and cleared as each other.
+ */
+#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
+/**
+ * [CPU_EQUAL_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether two dynamic CPU sets allocated by `CPU_ALLOC` have the same bits
+ * set and cleared as each other.
+ */
 #define CPU_EQUAL_S(setsize, set1, set2)  (__builtin_memcmp(set1, set2, setsize) == 0)
 
+/**
+ * [CPU_AND](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two
+ * static CPU sets.
+ */
+#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
+/**
+ * [CPU_AND_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two
+ * dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_AND_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, &)
+
+/**
+ * [CPU_OR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two
+ * static CPU sets.
+ */
+#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
+/**
+ * [CPU_OR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two
+ * dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_OR_S(setsize, dst, set1, set2)   __CPU_OP_S(setsize, dst, set1, set2, |)
+
+/**
+ * [CPU_XOR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * exclusive-ors two static CPU sets.
+ */
+#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
+/**
+ * [CPU_XOR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * exclusive-ors two dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_XOR_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, ^)
 
+#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
+
 #define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
   do { \
     cpu_set_t* __dst = (dstset); \
@@ -140,12 +367,27 @@
       (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
   } while (0)
 
-#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
+/**
+ * [CPU_ALLOC_SIZE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * returns the size of a CPU set large enough for CPUs in the range 0..count-1.
+ */
+#define CPU_ALLOC_SIZE(count) \
+  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
 
-int __sched_cpucount(size_t __set_size, const cpu_set_t* __set);
+/**
+ * [CPU_ALLOC](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * allocates a CPU set large enough for CPUs in the range 0..count-1.
+ */
+#define CPU_ALLOC(count)  __sched_cpualloc((count))
+cpu_set_t* __sched_cpualloc(size_t __count);
+
+/**
+ * [CPU_FREE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * deallocates a CPU set allocated by `CPU_ALLOC`.
+ */
+#define CPU_FREE(set)     __sched_cpufree((set))
+void __sched_cpufree(cpu_set_t* __set);
 
 #endif /* __USE_GNU */
 
 __END_DECLS
-
-#endif /* _SCHED_H_ */
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/stdlib.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/stdlib.h
index 583287f..4aa27f9 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/stdlib.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/stdlib.h
@@ -161,11 +161,11 @@
 void setprogname(const char* __name) __INTRODUCED_IN(21);
 
 int mblen(const char* __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(26);
-size_t mbstowcs(wchar_t* __dst, const char* __src, size_t __n);
+size_t mbstowcs(wchar_t* __dst, const char* __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 int mbtowc(wchar_t* __wc_ptr, const char* __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 int wctomb(char* __dst, wchar_t __wc) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
-size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n);
+size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
 #if __ANDROID_API__ >= 21
 size_t __ctype_get_mb_cur_max(void) __INTRODUCED_IN(21);
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/cdefs.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/cdefs.h
index 2556d11..5b9d99b 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/cdefs.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/cdefs.h
@@ -327,6 +327,8 @@
 
 #define __overloadable __attribute__((overloadable))
 
+#define __diagnose_as_builtin(...) __attribute__((diagnose_as_builtin(__VA_ARGS__)))
+
 /* Used to tag non-static symbols that are private and never exposed by the shared library. */
 #define __LIBC_HIDDEN__ __attribute__((visibility("hidden")))
 
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/select.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/select.h
index 79fc28d..65571eb 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/select.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/select.h
@@ -101,31 +101,37 @@
 
 /**
  * [select(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use poll() instead.
+ * set of file descriptors.
+ *
+ * Use poll() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  */
-int select(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, struct timeval* __timeout);
+int select(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, struct timeval* __timeout);
 
 /**
  * [pselect(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use ppoll() instead.
+ * set of file descriptors.
+ *
+ * Use ppoll() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  */
-int pselect(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset_t* __mask);
+int pselect(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset_t* __mask);
 
 /**
  * [pselect64(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use ppoll64() instead.
+ * set of file descriptors.
+ *
+ * Use ppoll64() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  *
  * Available since API level 28.
  */
-int pselect64(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset64_t* __mask) __INTRODUCED_IN(28);
+int pselect64(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset64_t* __mask) __INTRODUCED_IN(28);
 
 __END_DECLS
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/socket.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/socket.h
index 3ecbcce..f33f112 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/socket.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/socket.h
@@ -31,7 +31,6 @@
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
-#include <linux/socket.h>
 
 #include <asm/fcntl.h>
 #include <asm/socket.h>
@@ -71,6 +70,16 @@
   char sa_data[14];
 };
 
+struct sockaddr_storage {
+  union {
+    struct {
+      sa_family_t ss_family;
+      char __data[128 - sizeof(sa_family_t)];
+    };
+    void* __align;
+  };
+};
+
 struct linger {
   int l_onoff;
   int l_linger;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/uio.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/uio.h
index 37961e3..583cfc6 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/uio.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/include/sys/uio.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SYS_UIO_H_
-#define _SYS_UIO_H_
+#pragma once
+
+/**
+ * @file sys/uio.h
+ * @brief Multi-buffer ("vector") I/O operations using `struct iovec`.
+ */
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
@@ -35,21 +39,124 @@
 
 __BEGIN_DECLS
 
+/**
+ * [readv(2)](http://man7.org/linux/man-pages/man2/readv.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ */
 ssize_t readv(int __fd, const struct iovec* __iov, int __count);
+
+/**
+ * [writev(2)](http://man7.org/linux/man-pages/man2/writev.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ */
 ssize_t writev(int __fd, const struct iovec* __iov, int __count);
 
 #if defined(__USE_GNU)
-ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
-ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
-ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
-ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
-#endif
 
-#if defined(__USE_GNU)
+/**
+ * [preadv(2)](http://man7.org/linux/man-pages/man2/preadv.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`, starting at
+ * offset `__offset` into the file.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 24.
+ */
+ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
+
+/**
+ * [pwritev(2)](http://man7.org/linux/man-pages/man2/pwritev.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`, starting at offset
+ * `__offset` into the file.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 24.
+ */
+ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
+
+/**
+ * Like preadv() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 24.
+ */
+ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+
+/**
+ * Like pwritev() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 24.
+ */
+ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+
+/**
+ * [preadv2(2)](http://man7.org/linux/man-pages/man2/preadv2.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`, starting at
+ * offset `__offset` into the file, with the given flags.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 33.
+ */
+ssize_t preadv2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(preadv64v2) __INTRODUCED_IN(33);
+
+/**
+ * [pwritev2(2)](http://man7.org/linux/man-pages/man2/pwritev2.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`, starting at offset
+ * `__offset` into the file, with the given flags.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 33.
+ */
+ssize_t pwritev2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(pwritev64v2) __INTRODUCED_IN(33);
+
+/**
+ * Like preadv2() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 33.
+ */
+ssize_t preadv64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+
+/**
+ * Like pwritev2() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 33.
+ */
+ssize_t pwritev64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+
+/**
+ * [process_vm_readv(2)](http://man7.org/linux/man-pages/man2/process_vm_readv.2.html)
+ * reads from the address space of another process.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 23.
+ */
 ssize_t process_vm_readv(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
+/**
+ * [process_vm_writev(2)](http://man7.org/linux/man-pages/man2/process_vm_writev.2.html)
+ * writes to the address space of another process.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 23.
+ */
 ssize_t process_vm_writev(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
 #endif
 
 __END_DECLS
-
-#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
index 2ea16a3..6d89fa9 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
@@ -20,6 +20,7 @@
 #define _SCSI_SCSI_H
 #include <linux/types.h>
 #include <scsi/scsi_proto.h>
+#include <scsi/scsi_status.h>
 struct ccs_modesel_head {
   __u8 _r1;
   __u8 medium;
@@ -34,40 +35,12 @@
   __u8 block_length_med;
   __u8 block_length_lo;
 };
-#define COMMAND_COMPLETE 0x00
-#define EXTENDED_MESSAGE 0x01
 #define EXTENDED_MODIFY_DATA_POINTER 0x00
 #define EXTENDED_SDTR 0x01
 #define EXTENDED_EXTENDED_IDENTIFY 0x02
 #define EXTENDED_WDTR 0x03
 #define EXTENDED_PPR 0x04
 #define EXTENDED_MODIFY_BIDI_DATA_PTR 0x05
-#define SAVE_POINTERS 0x02
-#define RESTORE_POINTERS 0x03
-#define DISCONNECT 0x04
-#define INITIATOR_ERROR 0x05
-#define ABORT_TASK_SET 0x06
-#define MESSAGE_REJECT 0x07
-#define NOP 0x08
-#define MSG_PARITY_ERROR 0x09
-#define LINKED_CMD_COMPLETE 0x0a
-#define LINKED_FLG_CMD_COMPLETE 0x0b
-#define TARGET_RESET 0x0c
-#define ABORT_TASK 0x0d
-#define CLEAR_TASK_SET 0x0e
-#define INITIATE_RECOVERY 0x0f
-#define RELEASE_RECOVERY 0x10
-#define TERMINATE_IO_PROC 0x11
-#define CLEAR_ACA 0x16
-#define LOGICAL_UNIT_RESET 0x17
-#define SIMPLE_QUEUE_TAG 0x20
-#define HEAD_OF_QUEUE_TAG 0x21
-#define ORDERED_QUEUE_TAG 0x22
-#define IGNORE_WIDE_RESIDUE 0x23
-#define ACA 0x24
-#define QAS_REQUEST 0x55
-#define BUS_DEVICE_RESET TARGET_RESET
-#define ABORT ABORT_TASK_SET
 #define SCSI_IOCTL_GET_IDLUN 0x5382
 #define SCSI_IOCTL_PROBE_HOST 0x5385
 #define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
index a77eded..eea87a0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
@@ -124,17 +124,6 @@
 #define SERVICE_ACTION_BIDIRECTIONAL 0x9d
 #define SERVICE_ACTION_IN_16 0x9e
 #define SERVICE_ACTION_OUT_16 0x9f
-#define GOOD 0x00
-#define CHECK_CONDITION 0x01
-#define CONDITION_GOOD 0x02
-#define BUSY 0x04
-#define INTERMEDIATE_GOOD 0x08
-#define INTERMEDIATE_C_GOOD 0x0a
-#define RESERVATION_CONFLICT 0x0c
-#define COMMAND_TERMINATED 0x11
-#define QUEUE_FULL 0x14
-#define ACA_ACTIVE 0x18
-#define TASK_ABORTED 0x20
 #define STATUS_MASK 0xfe
 #define NO_SENSE 0x00
 #define RECOVERED_ERROR 0x01
@@ -205,4 +194,14 @@
   ZBC_ZONE_COND_FULL = 0xe,
   ZBC_ZONE_COND_OFFLINE = 0xf,
 };
+enum scsi_version_descriptor {
+  SCSI_VERSION_DESCRIPTOR_FCP4 = 0x0a40,
+  SCSI_VERSION_DESCRIPTOR_ISCSI = 0x0960,
+  SCSI_VERSION_DESCRIPTOR_SAM5 = 0x00a0,
+  SCSI_VERSION_DESCRIPTOR_SAS3 = 0x0c60,
+  SCSI_VERSION_DESCRIPTOR_SBC3 = 0x04c0,
+  SCSI_VERSION_DESCRIPTOR_SBP3 = 0x0980,
+  SCSI_VERSION_DESCRIPTOR_SPC4 = 0x0460,
+  SCSI_VERSION_DESCRIPTOR_SRP = 0x0940
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
similarity index 82%
rename from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
rename to mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
index bb45c3d..6a7fc10 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
@@ -16,14 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _SCSI_SCSI_STATUS_H
+#define _SCSI_SCSI_STATUS_H
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#include <scsi/scsi_proto.h>
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/sg.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/sg.h
index 828b2c6..a7a1944 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/sg.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/android/scsi/scsi/sg.h
@@ -66,6 +66,20 @@
 #define SG_INFO_INDIRECT_IO 0x0
 #define SG_INFO_DIRECT_IO 0x2
 #define SG_INFO_MIXED_IO 0x4
+#define DRIVER_SENSE 0x08
+#define driver_byte(result) (((result) >> 24) & 0xff)
+#define GOOD 0x00
+#define CHECK_CONDITION 0x01
+#define CONDITION_GOOD 0x02
+#define BUSY 0x04
+#define INTERMEDIATE_GOOD 0x08
+#define INTERMEDIATE_C_GOOD 0x0a
+#define RESERVATION_CONFLICT 0x0c
+#define COMMAND_TERMINATED 0x11
+#define QUEUE_FULL 0x14
+#define ACA_ACTIVE 0x18
+#define TASK_ABORTED 0x20
+#define status_byte(result) (((result) >> 1) & 0x7f)
 typedef struct sg_scsi_id {
   int host_no;
   int channel;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
index b4da2d1..672a72a 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
@@ -19,7 +19,7 @@
 #ifndef _UAPI__ASMARM_SETUP_H
 #define _UAPI__ASMARM_SETUP_H
 #include <linux/types.h>
-#define COMMAND_LINE_SIZE 2048
+#define COMMAND_LINE_SIZE 1024
 #define ATAG_NONE 0x00000000
 struct tag_header {
   __u32 size;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h
deleted file mode 100644
index 070c77b..0000000
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h
+++ /dev/null
@@ -1,417 +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_ASM_ARM_UNISTD_COMMON_H
-#define _UAPI_ASM_ARM_UNISTD_COMMON_H 1
-#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
-#define __NR_exit (__NR_SYSCALL_BASE + 1)
-#define __NR_fork (__NR_SYSCALL_BASE + 2)
-#define __NR_read (__NR_SYSCALL_BASE + 3)
-#define __NR_write (__NR_SYSCALL_BASE + 4)
-#define __NR_open (__NR_SYSCALL_BASE + 5)
-#define __NR_close (__NR_SYSCALL_BASE + 6)
-#define __NR_creat (__NR_SYSCALL_BASE + 8)
-#define __NR_link (__NR_SYSCALL_BASE + 9)
-#define __NR_unlink (__NR_SYSCALL_BASE + 10)
-#define __NR_execve (__NR_SYSCALL_BASE + 11)
-#define __NR_chdir (__NR_SYSCALL_BASE + 12)
-#define __NR_mknod (__NR_SYSCALL_BASE + 14)
-#define __NR_chmod (__NR_SYSCALL_BASE + 15)
-#define __NR_lchown (__NR_SYSCALL_BASE + 16)
-#define __NR_lseek (__NR_SYSCALL_BASE + 19)
-#define __NR_getpid (__NR_SYSCALL_BASE + 20)
-#define __NR_mount (__NR_SYSCALL_BASE + 21)
-#define __NR_setuid (__NR_SYSCALL_BASE + 23)
-#define __NR_getuid (__NR_SYSCALL_BASE + 24)
-#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
-#define __NR_pause (__NR_SYSCALL_BASE + 29)
-#define __NR_access (__NR_SYSCALL_BASE + 33)
-#define __NR_nice (__NR_SYSCALL_BASE + 34)
-#define __NR_sync (__NR_SYSCALL_BASE + 36)
-#define __NR_kill (__NR_SYSCALL_BASE + 37)
-#define __NR_rename (__NR_SYSCALL_BASE + 38)
-#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
-#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
-#define __NR_dup (__NR_SYSCALL_BASE + 41)
-#define __NR_pipe (__NR_SYSCALL_BASE + 42)
-#define __NR_times (__NR_SYSCALL_BASE + 43)
-#define __NR_brk (__NR_SYSCALL_BASE + 45)
-#define __NR_setgid (__NR_SYSCALL_BASE + 46)
-#define __NR_getgid (__NR_SYSCALL_BASE + 47)
-#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
-#define __NR_getegid (__NR_SYSCALL_BASE + 50)
-#define __NR_acct (__NR_SYSCALL_BASE + 51)
-#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
-#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
-#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
-#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
-#define __NR_umask (__NR_SYSCALL_BASE + 60)
-#define __NR_chroot (__NR_SYSCALL_BASE + 61)
-#define __NR_ustat (__NR_SYSCALL_BASE + 62)
-#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
-#define __NR_getppid (__NR_SYSCALL_BASE + 64)
-#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
-#define __NR_setsid (__NR_SYSCALL_BASE + 66)
-#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
-#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
-#define __NR_setregid (__NR_SYSCALL_BASE + 71)
-#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
-#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
-#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
-#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
-#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
-#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
-#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
-#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
-#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
-#define __NR_symlink (__NR_SYSCALL_BASE + 83)
-#define __NR_readlink (__NR_SYSCALL_BASE + 85)
-#define __NR_uselib (__NR_SYSCALL_BASE + 86)
-#define __NR_swapon (__NR_SYSCALL_BASE + 87)
-#define __NR_reboot (__NR_SYSCALL_BASE + 88)
-#define __NR_munmap (__NR_SYSCALL_BASE + 91)
-#define __NR_truncate (__NR_SYSCALL_BASE + 92)
-#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
-#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
-#define __NR_fchown (__NR_SYSCALL_BASE + 95)
-#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
-#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
-#define __NR_statfs (__NR_SYSCALL_BASE + 99)
-#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
-#define __NR_syslog (__NR_SYSCALL_BASE + 103)
-#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
-#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
-#define __NR_stat (__NR_SYSCALL_BASE + 106)
-#define __NR_lstat (__NR_SYSCALL_BASE + 107)
-#define __NR_fstat (__NR_SYSCALL_BASE + 108)
-#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
-#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
-#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
-#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
-#define __NR_fsync (__NR_SYSCALL_BASE + 118)
-#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
-#define __NR_clone (__NR_SYSCALL_BASE + 120)
-#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
-#define __NR_uname (__NR_SYSCALL_BASE + 122)
-#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
-#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
-#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
-#define __NR_init_module (__NR_SYSCALL_BASE + 128)
-#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
-#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
-#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
-#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
-#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
-#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
-#define __NR_personality (__NR_SYSCALL_BASE + 136)
-#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
-#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
-#define __NR__llseek (__NR_SYSCALL_BASE + 140)
-#define __NR_getdents (__NR_SYSCALL_BASE + 141)
-#define __NR__newselect (__NR_SYSCALL_BASE + 142)
-#define __NR_flock (__NR_SYSCALL_BASE + 143)
-#define __NR_msync (__NR_SYSCALL_BASE + 144)
-#define __NR_readv (__NR_SYSCALL_BASE + 145)
-#define __NR_writev (__NR_SYSCALL_BASE + 146)
-#define __NR_getsid (__NR_SYSCALL_BASE + 147)
-#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
-#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
-#define __NR_mlock (__NR_SYSCALL_BASE + 150)
-#define __NR_munlock (__NR_SYSCALL_BASE + 151)
-#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
-#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
-#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
-#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
-#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
-#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
-#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
-#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
-#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
-#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
-#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
-#define __NR_mremap (__NR_SYSCALL_BASE + 163)
-#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
-#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
-#define __NR_poll (__NR_SYSCALL_BASE + 168)
-#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
-#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
-#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
-#define __NR_prctl (__NR_SYSCALL_BASE + 172)
-#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
-#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
-#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
-#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
-#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
-#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
-#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
-#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
-#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
-#define __NR_chown (__NR_SYSCALL_BASE + 182)
-#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
-#define __NR_capget (__NR_SYSCALL_BASE + 184)
-#define __NR_capset (__NR_SYSCALL_BASE + 185)
-#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
-#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
-#define __NR_vfork (__NR_SYSCALL_BASE + 190)
-#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
-#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
-#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
-#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
-#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
-#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
-#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
-#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
-#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
-#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
-#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
-#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
-#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
-#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
-#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
-#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
-#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
-#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
-#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
-#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
-#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
-#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
-#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
-#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
-#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
-#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
-#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
-#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
-#define __NR_mincore (__NR_SYSCALL_BASE + 219)
-#define __NR_madvise (__NR_SYSCALL_BASE + 220)
-#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
-#define __NR_gettid (__NR_SYSCALL_BASE + 224)
-#define __NR_readahead (__NR_SYSCALL_BASE + 225)
-#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
-#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
-#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
-#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
-#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
-#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
-#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
-#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
-#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
-#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
-#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
-#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
-#define __NR_tkill (__NR_SYSCALL_BASE + 238)
-#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
-#define __NR_futex (__NR_SYSCALL_BASE + 240)
-#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
-#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
-#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
-#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
-#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
-#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
-#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
-#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
-#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
-#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
-#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
-#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
-#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
-#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
-#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
-#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
-#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
-#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
-#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
-#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
-#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
-#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
-#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
-#define __NR_utimes (__NR_SYSCALL_BASE + 269)
-#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
-#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
-#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
-#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
-#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
-#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
-#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
-#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
-#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
-#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
-#define __NR_waitid (__NR_SYSCALL_BASE + 280)
-#define __NR_socket (__NR_SYSCALL_BASE + 281)
-#define __NR_bind (__NR_SYSCALL_BASE + 282)
-#define __NR_connect (__NR_SYSCALL_BASE + 283)
-#define __NR_listen (__NR_SYSCALL_BASE + 284)
-#define __NR_accept (__NR_SYSCALL_BASE + 285)
-#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
-#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
-#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
-#define __NR_send (__NR_SYSCALL_BASE + 289)
-#define __NR_sendto (__NR_SYSCALL_BASE + 290)
-#define __NR_recv (__NR_SYSCALL_BASE + 291)
-#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
-#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
-#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
-#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
-#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
-#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
-#define __NR_semop (__NR_SYSCALL_BASE + 298)
-#define __NR_semget (__NR_SYSCALL_BASE + 299)
-#define __NR_semctl (__NR_SYSCALL_BASE + 300)
-#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
-#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
-#define __NR_msgget (__NR_SYSCALL_BASE + 303)
-#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
-#define __NR_shmat (__NR_SYSCALL_BASE + 305)
-#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
-#define __NR_shmget (__NR_SYSCALL_BASE + 307)
-#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
-#define __NR_add_key (__NR_SYSCALL_BASE + 309)
-#define __NR_request_key (__NR_SYSCALL_BASE + 310)
-#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
-#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
-#define __NR_vserver (__NR_SYSCALL_BASE + 313)
-#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
-#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
-#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
-#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
-#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
-#define __NR_mbind (__NR_SYSCALL_BASE + 319)
-#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
-#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
-#define __NR_openat (__NR_SYSCALL_BASE + 322)
-#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
-#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
-#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
-#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
-#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
-#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
-#define __NR_renameat (__NR_SYSCALL_BASE + 329)
-#define __NR_linkat (__NR_SYSCALL_BASE + 330)
-#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
-#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
-#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
-#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
-#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
-#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
-#define __NR_unshare (__NR_SYSCALL_BASE + 337)
-#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
-#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
-#define __NR_splice (__NR_SYSCALL_BASE + 340)
-#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
-#define __NR_tee (__NR_SYSCALL_BASE + 342)
-#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
-#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
-#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
-#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
-#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
-#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
-#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
-#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
-#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
-#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
-#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
-#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
-#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
-#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
-#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
-#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
-#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
-#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
-#define __NR_preadv (__NR_SYSCALL_BASE + 361)
-#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
-#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
-#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
-#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
-#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
-#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
-#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
-#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
-#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
-#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
-#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
-#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
-#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
-#define __NR_setns (__NR_SYSCALL_BASE + 375)
-#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
-#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
-#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
-#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
-#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
-#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
-#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
-#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
-#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
-#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
-#define __NR_bpf (__NR_SYSCALL_BASE + 386)
-#define __NR_execveat (__NR_SYSCALL_BASE + 387)
-#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
-#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
-#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
-#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
-#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
-#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
-#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
-#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
-#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
-#define __NR_statx (__NR_SYSCALL_BASE + 397)
-#define __NR_rseq (__NR_SYSCALL_BASE + 398)
-#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
-#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
-#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
-#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
-#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
-#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
-#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
-#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
-#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
-#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
-#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
-#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
-#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
-#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
-#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
-#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
-#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
-#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
-#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
-#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
-#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
-#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
-#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
-#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
-#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
-#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
-#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
-#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
-#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
-#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
-#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
-#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
-#define __NR_fspick (__NR_SYSCALL_BASE + 433)
-#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
-#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
-#define __NR_close_range (__NR_SYSCALL_BASE + 436)
-#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
-#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
-#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
-#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
-#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
-#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
-#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
index 54e1867..71b25e7 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
@@ -16,6 +16,409 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _UAPI_ASM_ARM_UNISTD_EABI_H
-#define _UAPI_ASM_ARM_UNISTD_EABI_H 1
+#ifndef _UAPI_ASM_UNISTD_EABI_H
+#define _UAPI_ASM_UNISTD_EABI_H
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
+#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
+#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
+#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
+#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
+#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
+#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
index d2633e8..08b3b9a 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
@@ -16,18 +16,421 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _UAPI_ASM_ARM_UNISTD_OABI_H
-#define _UAPI_ASM_ARM_UNISTD_OABI_H 1
+#ifndef _UAPI_ASM_UNISTD_OABI_H
+#define _UAPI_ASM_UNISTD_OABI_H
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
 #define __NR_time (__NR_SYSCALL_BASE + 13)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
 #define __NR_umount (__NR_SYSCALL_BASE + 22)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
 #define __NR_stime (__NR_SYSCALL_BASE + 25)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
 #define __NR_alarm (__NR_SYSCALL_BASE + 27)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
 #define __NR_utime (__NR_SYSCALL_BASE + 30)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
 #define __NR_getrlimit (__NR_SYSCALL_BASE + 76)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
 #define __NR_select (__NR_SYSCALL_BASE + 82)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
 #define __NR_readdir (__NR_SYSCALL_BASE + 89)
 #define __NR_mmap (__NR_SYSCALL_BASE + 90)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
 #define __NR_socketcall (__NR_SYSCALL_BASE + 102)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
 #define __NR_syscall (__NR_SYSCALL_BASE + 113)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
 #define __NR_ipc (__NR_SYSCALL_BASE + 117)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
+#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
+#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
+#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
+#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
+#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
+#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
index f4b1f3a..8bb0f58 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
@@ -19,9 +19,9 @@
 #ifndef _UAPI__ASM_ARM_UNISTD_H
 #define _UAPI__ASM_ARM_UNISTD_H
 #define __NR_OABI_SYSCALL_BASE 0x900000
+#define __NR_SYSCALL_MASK 0x0fffff
 #define __NR_SYSCALL_BASE 0
 #include <asm/unistd-eabi.h>
-#include <asm/unistd-common.h>
 #define __NR_sync_file_range2 __NR_arm_sync_file_range
 #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0x0f0000)
 #define __ARM_NR_breakpoint (__ARM_NR_BASE + 1)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
index 8a70a52..4316724 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
@@ -69,4 +69,7 @@
 #define HWCAP2_RNG (1 << 16)
 #define HWCAP2_BTI (1 << 17)
 #define HWCAP2_MTE (1 << 18)
+#define HWCAP2_ECV (1 << 19)
+#define HWCAP2_AFP (1 << 20)
+#define HWCAP2_RPRES (1 << 21)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
index 014504a..c53ee87 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
@@ -115,6 +115,15 @@
   } exception;
   __u32 reserved[12];
 };
+struct kvm_arm_copy_mte_tags {
+  __u64 guest_ipa;
+  __u64 length;
+  void __user * addr;
+  __u64 flags;
+  __u64 reserved[2];
+};
+#define KVM_ARM_TAGS_TO_GUEST 0
+#define KVM_ARM_TAGS_FROM_GUEST 1
 #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
 #define KVM_REG_ARM_COPROC_SHIFT 16
 #define KVM_REG_ARM_CORE (0x0010 << KVM_REG_ARM_COPROC_SHIFT)
@@ -158,6 +167,10 @@
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL 2
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED 3
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED (1U << 4)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3 KVM_REG_ARM_FW_REG(3)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL 0
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL 1
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED 2
 #define KVM_REG_ARM64_SVE (0x15 << KVM_REG_ARM_COPROC_SHIFT)
 #define KVM_REG_ARM64_SVE_ZREG_BASE 0
 #define KVM_REG_ARM64_SVE_PREG_BASE 0x400
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
index e93f3f1..06b85ed 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
@@ -21,4 +21,5 @@
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
 #define __ARCH_WANT_SYS_CLONE3
+#define __ARCH_WANT_MEMFD_SECRET
 #include <asm-generic/unistd.h>
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
index a088ce5..9440576 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
@@ -60,6 +60,8 @@
 #define MADV_KEEPONFORK 19
 #define MADV_COLD 20
 #define MADV_PAGEOUT 21
+#define MADV_POPULATE_READ 22
+#define MADV_POPULATE_WRITE 23
 #define MAP_FILE 0
 #define PKEY_DISABLE_ACCESS 0x1
 #define PKEY_DISABLE_WRITE 0x2
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
index 8bcbabb..f9199e5 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
@@ -59,9 +59,6 @@
   } _sigchld;
   struct {
     void __user * _addr;
-#ifdef __ARCH_SI_TRAPNO
-    int _trapno;
-#endif
 #ifdef __ia64__
     int _imm;
     unsigned int _flags;
@@ -69,6 +66,7 @@
 #endif
 #define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? sizeof(short) : __alignof__(void *))
     union {
+      int _trapno;
       short _addr_lsb;
       struct {
         char _dummy_bnd[__ADDR_BND_PKEY_PAD];
@@ -79,6 +77,10 @@
         char _dummy_pkey[__ADDR_BND_PKEY_PAD];
         __u32 _pkey;
       } _addr_pkey;
+      struct {
+        unsigned long _data;
+        __u32 _type;
+      } _perf;
     };
   } _sigfault;
   struct {
@@ -116,13 +118,13 @@
 #define si_int _sifields._rt._sigval.sival_int
 #define si_ptr _sifields._rt._sigval.sival_ptr
 #define si_addr _sifields._sigfault._addr
-#ifdef __ARCH_SI_TRAPNO
 #define si_trapno _sifields._sigfault._trapno
-#endif
 #define si_addr_lsb _sifields._sigfault._addr_lsb
 #define si_lower _sifields._sigfault._addr_bnd._lower
 #define si_upper _sifields._sigfault._addr_bnd._upper
 #define si_pkey _sifields._sigfault._addr_pkey._pkey
+#define si_perf_data _sifields._sigfault._perf._data
+#define si_perf_type _sifields._sigfault._perf._type
 #define si_band _sifields._sigpoll._band
 #define si_fd _sifields._sigpoll._fd
 #define si_call_addr _sifields._sigsys._call_addr
@@ -193,7 +195,8 @@
 #define TRAP_BRANCH 3
 #define TRAP_HWBKPT 4
 #define TRAP_UNK 5
-#define NSIGTRAP 5
+#define TRAP_PERF 6
+#define NSIGTRAP 6
 #define CLD_EXITED 1
 #define CLD_KILLED 2
 #define CLD_DUMPED 3
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/socket.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/socket.h
index 7372be8..6767993 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/socket.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/socket.h
@@ -97,6 +97,9 @@
 #define SO_DETACH_REUSEPORT_BPF 68
 #define SO_PREFER_BUSY_POLL 69
 #define SO_BUSY_POLL_BUDGET 70
+#define SO_NETNS_COOKIE 71
+#define SO_BUF_LOCK 72
+#define SO_RESERVE_MEM 73
 #if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
 #define SO_TIMESTAMP SO_TIMESTAMP_OLD
 #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/unistd.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
index 1409701..4b9f174 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
@@ -403,8 +403,18 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#ifdef __ARCH_WANT_MEMFD_SECRET
+#define __NR_memfd_secret 447
+#endif
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #undef __NR_syscalls
-#define __NR_syscalls 443
+#define __NR_syscalls 451
 #if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
 #define __NR_fcntl __NR3264_fcntl
 #define __NR_statfs __NR3264_statfs
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
index 4fd53f0..dd86783 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
@@ -22,5 +22,5 @@
 #define AT_SYSINFO 32
 #endif
 #define AT_SYSINFO_EHDR 33
-#define AT_VECTOR_SIZE_ARCH 2
+#define AT_VECTOR_SIZE_ARCH 3
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
index aeb8b02..360f432 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
@@ -28,6 +28,7 @@
 #define DR_TRAP2 (0x4)
 #define DR_TRAP3 (0x8)
 #define DR_TRAP_BITS (DR_TRAP0 | DR_TRAP1 | DR_TRAP2 | DR_TRAP3)
+#define DR_BUS_LOCK (0x800)
 #define DR_STEP (0x4000)
 #define DR_SWITCH (0x8000)
 #define DR_CONTROL_SHIFT 16
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
index a6dbfb9..9f715c9 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef _ASM_X86_HWCAP2_H
 #define _ASM_X86_HWCAP2_H
-#define HWCAP2_RING3MWAIT (1 << 0)
-#define HWCAP2_FSGSBASE BIT(1)
+#include <linux/const.h>
+#define HWCAP2_RING3MWAIT _BITUL(0)
+#define HWCAP2_FSGSBASE _BITUL(1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
index 0d82c5d..caf8fc0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
@@ -146,6 +146,17 @@
   __u64 apic_base;
   __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64];
 };
+struct kvm_sregs2 {
+  struct kvm_segment cs, ds, es, fs, gs, ss;
+  struct kvm_segment tr, ldt;
+  struct kvm_dtable gdt, idt;
+  __u64 cr0, cr2, cr3, cr4, cr8;
+  __u64 efer;
+  __u64 apic_base;
+  __u64 flags;
+  __u64 pdptrs[4];
+};
+#define KVM_SREGS2_FLAGS_PDPTRS_VALID 1
 struct kvm_fpu {
   __u8 fpr[8][16];
   __u16 fcw;
@@ -246,6 +257,7 @@
 #define KVM_GUESTDBG_USE_HW_BP 0x00020000
 #define KVM_GUESTDBG_INJECT_DB 0x00040000
 #define KVM_GUESTDBG_INJECT_BP 0x00080000
+#define KVM_GUESTDBG_BLOCKIRQ 0x00100000
 struct kvm_guest_debug_arch {
   __u64 debugreg[8];
 };
@@ -310,6 +322,7 @@
 };
 struct kvm_xsave {
   __u32 region[1024];
+  __u32 extra[0];
 };
 #define KVM_MAX_XCRS 16
 struct kvm_xcr {
@@ -349,6 +362,7 @@
 #define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000
 #define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000
 #define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001
+#define KVM_X86_XCOMP_GUEST_SUPP 0
 struct kvm_vmx_nested_state_data {
   __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
   __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
@@ -359,6 +373,7 @@
   struct {
     __u16 flags;
   } smm;
+  __u16 pad;
   __u32 flags;
   __u64 preemption_timer_deadline;
 };
@@ -392,4 +407,6 @@
 };
 #define KVM_PMU_EVENT_ALLOW 0
 #define KVM_PMU_EVENT_DENY 1
+#define KVM_VCPU_TSC_CTRL 0
+#define KVM_VCPU_TSC_OFFSET 0
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
index 091fb27..dd72af0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
@@ -20,6 +20,7 @@
 #define _UAPI_ASM_X86_KVM_PARA_H
 #include <linux/types.h>
 #define KVM_CPUID_SIGNATURE 0x40000000
+#define KVM_SIGNATURE "KVMKVMKVM\0\0\0"
 #define KVM_CPUID_FEATURES 0x40000001
 #define KVM_FEATURE_CLOCKSOURCE 0
 #define KVM_FEATURE_NOP_IO_DELAY 1
@@ -36,6 +37,8 @@
 #define KVM_FEATURE_PV_SCHED_YIELD 13
 #define KVM_FEATURE_ASYNC_PF_INT 14
 #define KVM_FEATURE_MSI_EXT_DEST_ID 15
+#define KVM_FEATURE_HC_MAP_GPA_RANGE 16
+#define KVM_FEATURE_MIGRATION_CONTROL 17
 #define KVM_HINTS_REALTIME 0
 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24
 #define MSR_KVM_WALL_CLOCK 0x11
@@ -49,6 +52,7 @@
 #define MSR_KVM_POLL_CONTROL 0x4b564d05
 #define MSR_KVM_ASYNC_PF_INT 0x4b564d06
 #define MSR_KVM_ASYNC_PF_ACK 0x4b564d07
+#define MSR_KVM_MIGRATION_CONTROL 0x4b564d08
 struct kvm_steal_time {
   __u64 steal;
   __u32 version;
@@ -76,6 +80,13 @@
 #define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2)
 #define KVM_ASYNC_PF_DELIVERY_AS_INT (1 << 3)
 #define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0)
+#define KVM_MIGRATION_READY (1 << 0)
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_4K 0
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_2M (1 << 0)
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_1G (1 << 1)
+#define KVM_MAP_GPA_RANGE_ENC_STAT(n) (n << 4)
+#define KVM_MAP_GPA_RANGE_ENCRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(1)
+#define KVM_MAP_GPA_RANGE_DECRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(0)
 #define KVM_MMU_OP_WRITE_PTE 1
 #define KVM_MMU_OP_FLUSH_TLB 2
 #define KVM_MMU_OP_RELEASE_PT 3
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
index 0e6bed9..c5ba2d6 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
@@ -24,6 +24,11 @@
 #define ARCH_GET_GS 0x1004
 #define ARCH_GET_CPUID 0x1011
 #define ARCH_SET_CPUID 0x1012
+#define ARCH_GET_XCOMP_SUPP 0x1021
+#define ARCH_GET_XCOMP_PERM 0x1022
+#define ARCH_REQ_XCOMP_PERM 0x1023
+#define ARCH_GET_XCOMP_GUEST_PERM 0x1024
+#define ARCH_REQ_XCOMP_GUEST_PERM 0x1025
 #define ARCH_MAP_VDSO_X32 0x2001
 #define ARCH_MAP_VDSO_32 0x2002
 #define ARCH_MAP_VDSO_64 0x2003
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
index 349791a..1874b78 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
@@ -28,6 +28,7 @@
 #define SGX_IOC_ENCLAVE_ADD_PAGES _IOWR(SGX_MAGIC, 0x01, struct sgx_enclave_add_pages)
 #define SGX_IOC_ENCLAVE_INIT _IOW(SGX_MAGIC, 0x02, struct sgx_enclave_init)
 #define SGX_IOC_ENCLAVE_PROVISION _IOW(SGX_MAGIC, 0x03, struct sgx_enclave_provision)
+#define SGX_IOC_VEPC_REMOVE_ALL _IO(SGX_MAGIC, 0x04)
 struct sgx_enclave_create {
   __u64 src;
 };
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
index db9918b..d051481 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
@@ -123,6 +123,7 @@
 #define SVM_VMGEXIT_SET_AP_JUMP_TABLE 0
 #define SVM_VMGEXIT_GET_AP_JUMP_TABLE 1
 #define SVM_VMGEXIT_UNSUPPORTED_EVENT 0x8000ffff
+#define SVM_EXIT_SW 0xf0000000
 #define SVM_EXIT_ERR - 1
 #define SVM_EXIT_REASONS { SVM_EXIT_READ_CR0, "read_cr0" }, { SVM_EXIT_READ_CR2, "read_cr2" }, { SVM_EXIT_READ_CR3, "read_cr3" }, { SVM_EXIT_READ_CR4, "read_cr4" }, { SVM_EXIT_READ_CR8, "read_cr8" }, { SVM_EXIT_WRITE_CR0, "write_cr0" }, { SVM_EXIT_WRITE_CR2, "write_cr2" }, { SVM_EXIT_WRITE_CR3, "write_cr3" }, { SVM_EXIT_WRITE_CR4, "write_cr4" }, { SVM_EXIT_WRITE_CR8, "write_cr8" }, { SVM_EXIT_READ_DR0, "read_dr0" }, { SVM_EXIT_READ_DR1, "read_dr1" }, { SVM_EXIT_READ_DR2, "read_dr2" }, { SVM_EXIT_READ_DR3, "read_dr3" }, { SVM_EXIT_READ_DR4, "read_dr4" }, { SVM_EXIT_READ_DR5, "read_dr5" }, { SVM_EXIT_READ_DR6, "read_dr6" }, { SVM_EXIT_READ_DR7, "read_dr7" }, { SVM_EXIT_WRITE_DR0, "write_dr0" }, { SVM_EXIT_WRITE_DR1, "write_dr1" }, { SVM_EXIT_WRITE_DR2, "write_dr2" }, { SVM_EXIT_WRITE_DR3, "write_dr3" }, { SVM_EXIT_WRITE_DR4, "write_dr4" }, { SVM_EXIT_WRITE_DR5, "write_dr5" }, { SVM_EXIT_WRITE_DR6, "write_dr6" }, { SVM_EXIT_WRITE_DR7, "write_dr7" }, { SVM_EXIT_EXCP_BASE + DE_VECTOR, "DE excp" }, { SVM_EXIT_EXCP_BASE + DB_VECTOR, "DB excp" }, { SVM_EXIT_EXCP_BASE + BP_VECTOR, "BP excp" }, { SVM_EXIT_EXCP_BASE + OF_VECTOR, "OF excp" }, { SVM_EXIT_EXCP_BASE + BR_VECTOR, "BR excp" }, { SVM_EXIT_EXCP_BASE + UD_VECTOR, "UD excp" }, { SVM_EXIT_EXCP_BASE + NM_VECTOR, "NM excp" }, { SVM_EXIT_EXCP_BASE + DF_VECTOR, "DF excp" }, { SVM_EXIT_EXCP_BASE + TS_VECTOR, "TS excp" }, { SVM_EXIT_EXCP_BASE + NP_VECTOR, "NP excp" }, { SVM_EXIT_EXCP_BASE + SS_VECTOR, "SS excp" }, { SVM_EXIT_EXCP_BASE + GP_VECTOR, "GP excp" }, { SVM_EXIT_EXCP_BASE + PF_VECTOR, "PF excp" }, { SVM_EXIT_EXCP_BASE + MF_VECTOR, "MF excp" }, { SVM_EXIT_EXCP_BASE + AC_VECTOR, "AC excp" }, { SVM_EXIT_EXCP_BASE + MC_VECTOR, "MC excp" }, { SVM_EXIT_EXCP_BASE + XM_VECTOR, "XF excp" }, { SVM_EXIT_INTR, "interrupt" }, { SVM_EXIT_NMI, "nmi" }, { SVM_EXIT_SMI, "smi" }, { SVM_EXIT_INIT, "init" }, { SVM_EXIT_VINTR, "vintr" }, { SVM_EXIT_CR0_SEL_WRITE, "cr0_sel_write" }, { SVM_EXIT_IDTR_READ, "read_idtr" }, { SVM_EXIT_GDTR_READ, "read_gdtr" }, { SVM_EXIT_LDTR_READ, "read_ldtr" }, { SVM_EXIT_TR_READ, "read_rt" }, { SVM_EXIT_IDTR_WRITE, "write_idtr" }, { SVM_EXIT_GDTR_WRITE, "write_gdtr" }, { SVM_EXIT_LDTR_WRITE, "write_ldtr" }, { SVM_EXIT_TR_WRITE, "write_rt" }, { SVM_EXIT_RDTSC, "rdtsc" }, { SVM_EXIT_RDPMC, "rdpmc" }, { SVM_EXIT_PUSHF, "pushf" }, { SVM_EXIT_POPF, "popf" }, { SVM_EXIT_CPUID, "cpuid" }, { SVM_EXIT_RSM, "rsm" }, { SVM_EXIT_IRET, "iret" }, { SVM_EXIT_SWINT, "swint" }, { SVM_EXIT_INVD, "invd" }, { SVM_EXIT_PAUSE, "pause" }, { SVM_EXIT_HLT, "hlt" }, { SVM_EXIT_INVLPG, "invlpg" }, { SVM_EXIT_INVLPGA, "invlpga" }, { SVM_EXIT_IOIO, "io" }, { SVM_EXIT_MSR, "msr" }, { SVM_EXIT_TASK_SWITCH, "task_switch" }, { SVM_EXIT_FERR_FREEZE, "ferr_freeze" }, { SVM_EXIT_SHUTDOWN, "shutdown" }, { SVM_EXIT_VMRUN, "vmrun" }, { SVM_EXIT_VMMCALL, "hypercall" }, { SVM_EXIT_VMLOAD, "vmload" }, { SVM_EXIT_VMSAVE, "vmsave" }, { SVM_EXIT_STGI, "stgi" }, { SVM_EXIT_CLGI, "clgi" }, { SVM_EXIT_SKINIT, "skinit" }, { SVM_EXIT_RDTSCP, "rdtscp" }, { SVM_EXIT_ICEBP, "icebp" }, { SVM_EXIT_WBINVD, "wbinvd" }, { SVM_EXIT_MONITOR, "monitor" }, { SVM_EXIT_MWAIT, "mwait" }, { SVM_EXIT_XSETBV, "xsetbv" }, { SVM_EXIT_EFER_WRITE_TRAP, "write_efer_trap" }, { SVM_EXIT_CR0_WRITE_TRAP, "write_cr0_trap" }, { SVM_EXIT_CR4_WRITE_TRAP, "write_cr4_trap" }, { SVM_EXIT_CR8_WRITE_TRAP, "write_cr8_trap" }, { SVM_EXIT_INVPCID, "invpcid" }, { SVM_EXIT_NPF, "npf" }, { SVM_EXIT_AVIC_INCOMPLETE_IPI, "avic_incomplete_ipi" }, { SVM_EXIT_AVIC_UNACCELERATED_ACCESS, "avic_unaccelerated_access" }, { SVM_EXIT_VMGEXIT, "vmgexit" }, { SVM_VMGEXIT_MMIO_READ, "vmgexit_mmio_read" }, { SVM_VMGEXIT_MMIO_WRITE, "vmgexit_mmio_write" }, { SVM_VMGEXIT_NMI_COMPLETE, "vmgexit_nmi_complete" }, { SVM_VMGEXIT_AP_HLT_LOOP, "vmgexit_ap_hlt_loop" }, { SVM_VMGEXIT_AP_JUMP_TABLE, "vmgexit_ap_jump_table" }, { SVM_EXIT_ERR, "invalid_guest_state" }
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
index 7fe2421..8e57516 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_32_H
-#define _ASM_X86_UNISTD_32_H 1
+#ifndef _UAPI_ASM_UNISTD_32_H
+#define _UAPI_ASM_UNISTD_32_H
 #define __NR_restart_syscall 0
 #define __NR_exit 1
 #define __NR_fork 2
@@ -450,4 +450,12 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
index 7e3c924..54ff16f 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_64_H
-#define _ASM_X86_UNISTD_64_H 1
+#ifndef _UAPI_ASM_UNISTD_64_H
+#define _UAPI_ASM_UNISTD_64_H
 #define __NR_read 0
 #define __NR_write 1
 #define __NR_open 2
@@ -372,4 +372,12 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
index 529ded3..1e05d75 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_X32_H
-#define _ASM_X86_UNISTD_X32_H 1
+#ifndef _UAPI_ASM_UNISTD_X32_H
+#define _UAPI_ASM_UNISTD_X32_H
 #define __NR_read (__X32_SYSCALL_BIT + 0)
 #define __NR_write (__X32_SYSCALL_BIT + 1)
 #define __NR_open (__X32_SYSCALL_BIT + 2)
@@ -325,6 +325,14 @@
 #define __NR_process_madvise (__X32_SYSCALL_BIT + 440)
 #define __NR_epoll_pwait2 (__X32_SYSCALL_BIT + 441)
 #define __NR_mount_setattr (__X32_SYSCALL_BIT + 442)
+#define __NR_quotactl_fd (__X32_SYSCALL_BIT + 443)
+#define __NR_landlock_create_ruleset (__X32_SYSCALL_BIT + 444)
+#define __NR_landlock_add_rule (__X32_SYSCALL_BIT + 445)
+#define __NR_landlock_restrict_self (__X32_SYSCALL_BIT + 446)
+#define __NR_memfd_secret (__X32_SYSCALL_BIT + 447)
+#define __NR_process_mrelease (__X32_SYSCALL_BIT + 448)
+#define __NR_futex_waitv (__X32_SYSCALL_BIT + 449)
+#define __NR_set_mempolicy_home_node (__X32_SYSCALL_BIT + 450)
 #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
 #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
 #define __NR_ioctl (__X32_SYSCALL_BIT + 514)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
index 1771faa..6c07d4c 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
@@ -19,6 +19,7 @@
 #ifndef _UAPIVMX_H
 #define _UAPIVMX_H
 #define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000
+#define VMX_EXIT_REASONS_SGX_ENCLAVE_MODE 0x08000000
 #define EXIT_REASON_EXCEPTION_NMI 0
 #define EXIT_REASON_EXTERNAL_INTERRUPT 1
 #define EXIT_REASON_TRIPLE_FAULT 2
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
index f8eb023..3764d51 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
@@ -65,13 +65,13 @@
 #define AMDGPU_GEM_CREATE_NO_CPU_ACCESS (1 << 1)
 #define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2)
 #define AMDGPU_GEM_CREATE_VRAM_CLEARED (1 << 3)
-#define AMDGPU_GEM_CREATE_SHADOW (1 << 4)
 #define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5)
 #define AMDGPU_GEM_CREATE_VM_ALWAYS_VALID (1 << 6)
 #define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7)
 #define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8)
 #define AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE (1 << 9)
 #define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10)
+#define AMDGPU_GEM_CREATE_PREEMPTIBLE (1 << 11)
 struct drm_amdgpu_gem_create_in {
   __u64 bo_size;
   __u64 alignment;
@@ -452,6 +452,7 @@
 #define AMDGPU_INFO_VBIOS 0x1B
 #define AMDGPU_INFO_VBIOS_SIZE 0x1
 #define AMDGPU_INFO_VBIOS_IMAGE 0x2
+#define AMDGPU_INFO_VBIOS_INFO 0x3
 #define AMDGPU_INFO_NUM_HANDLES 0x1C
 #define AMDGPU_INFO_SENSOR 0x1D
 #define AMDGPU_INFO_SENSOR_GFX_SCLK 0x1
@@ -480,6 +481,9 @@
 #define AMDGPU_INFO_RAS_ENABLED_MP0 (1 << 11)
 #define AMDGPU_INFO_RAS_ENABLED_MP1 (1 << 12)
 #define AMDGPU_INFO_RAS_ENABLED_FUSE (1 << 13)
+#define AMDGPU_INFO_VIDEO_CAPS 0x21
+#define AMDGPU_INFO_VIDEO_CAPS_DECODE 0
+#define AMDGPU_INFO_VIDEO_CAPS_ENCODE 1
 #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
 #define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
 #define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8
@@ -517,6 +521,9 @@
     struct {
       __u32 type;
     } sensor_info;
+    struct {
+      __u32 type;
+    } video_cap;
   };
 };
 struct drm_amdgpu_info_gds {
@@ -549,6 +556,14 @@
   __u32 ver;
   __u32 feature;
 };
+struct drm_amdgpu_info_vbios {
+  __u8 name[64];
+  __u8 vbios_pn[64];
+  __u32 version;
+  __u32 pad;
+  __u8 vbios_ver_str[32];
+  __u8 date[32];
+};
 #define AMDGPU_VRAM_TYPE_UNKNOWN 0
 #define AMDGPU_VRAM_TYPE_GDDR1 1
 #define AMDGPU_VRAM_TYPE_DDR2 2
@@ -636,6 +651,26 @@
   __u32 num_valid_entries;
   __u32 pad;
 };
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2 0
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4 1
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1 2
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC 3
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC 4
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG 5
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9 6
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_AV1 7
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT 8
+struct drm_amdgpu_info_video_codec_info {
+  __u32 valid;
+  __u32 max_width;
+  __u32 max_height;
+  __u32 max_pixels_per_frame;
+  __u32 max_level;
+  __u32 pad;
+};
+struct drm_amdgpu_info_video_caps {
+  struct drm_amdgpu_info_video_codec_info codec_info[AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT];
+};
 #define AMDGPU_FAMILY_UNKNOWN 0
 #define AMDGPU_FAMILY_SI 110
 #define AMDGPU_FAMILY_CI 120
@@ -646,6 +681,7 @@
 #define AMDGPU_FAMILY_RV 142
 #define AMDGPU_FAMILY_NV 143
 #define AMDGPU_FAMILY_VGH 144
+#define AMDGPU_FAMILY_YC 146
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
index 4574c1c..e845c8c 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
@@ -27,6 +27,8 @@
 #define DRM_FORMAT_INVALID 0
 #define DRM_FORMAT_C8 fourcc_code('C', '8', ' ', ' ')
 #define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ')
+#define DRM_FORMAT_R10 fourcc_code('R', '1', '0', ' ')
+#define DRM_FORMAT_R12 fourcc_code('R', '1', '2', ' ')
 #define DRM_FORMAT_R16 fourcc_code('R', '1', '6', ' ')
 #define DRM_FORMAT_RG88 fourcc_code('R', 'G', '8', '8')
 #define DRM_FORMAT_GR88 fourcc_code('G', 'R', '8', '8')
@@ -70,6 +72,10 @@
 #define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0')
 #define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0')
 #define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0')
+#define DRM_FORMAT_XRGB16161616 fourcc_code('X', 'R', '4', '8')
+#define DRM_FORMAT_XBGR16161616 fourcc_code('X', 'B', '4', '8')
+#define DRM_FORMAT_ARGB16161616 fourcc_code('A', 'R', '4', '8')
+#define DRM_FORMAT_ABGR16161616 fourcc_code('A', 'B', '4', '8')
 #define DRM_FORMAT_XRGB16161616F fourcc_code('X', 'R', '4', 'H')
 #define DRM_FORMAT_XBGR16161616F fourcc_code('X', 'B', '4', 'H')
 #define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H')
@@ -117,6 +123,7 @@
 #define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0')
 #define DRM_FORMAT_P012 fourcc_code('P', '0', '1', '2')
 #define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6')
+#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0')
 #define DRM_FORMAT_Q410 fourcc_code('Q', '4', '1', '0')
 #define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1')
 #define DRM_FORMAT_YUV410 fourcc_code('Y', 'U', 'V', '9')
@@ -141,6 +148,8 @@
 #define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
 #define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
 #define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
+#define fourcc_mod_get_vendor(modifier) (((modifier) >> 56) & 0xff)
+#define fourcc_mod_is_vendor(modifier,vendor) (fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_ ##vendor)
 #define fourcc_mod_code(vendor,val) ((((__u64) DRM_FORMAT_MOD_VENDOR_ ##vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
 #define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE
 #define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
@@ -203,6 +212,15 @@
 #define AFBC_FORMAT_MOD_DB (1ULL << 10)
 #define AFBC_FORMAT_MOD_BCH (1ULL << 11)
 #define AFBC_FORMAT_MOD_USM (1ULL << 12)
+#define DRM_FORMAT_MOD_ARM_TYPE_AFRC 0x02
+#define DRM_FORMAT_MOD_ARM_AFRC(__afrc_mode) DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFRC, __afrc_mode)
+#define AFRC_FORMAT_MOD_CU_SIZE_MASK 0xf
+#define AFRC_FORMAT_MOD_CU_SIZE_16 (1ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_24 (2ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_32 (3ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_P0(__afrc_cu_size) (__afrc_cu_size)
+#define AFRC_FORMAT_MOD_CU_SIZE_P12(__afrc_cu_size) ((__afrc_cu_size) << 4)
+#define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8)
 #define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
 #define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1)
 #define __fourcc_mod_amlogic_layout_mask 0xff
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/drm_mode.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/drm_mode.h
index 643ae98..9a6a6d9 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/drm_mode.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/drm_mode.h
@@ -223,6 +223,7 @@
 #define DRM_MODE_CONNECTOR_DPI 17
 #define DRM_MODE_CONNECTOR_WRITEBACK 18
 #define DRM_MODE_CONNECTOR_SPI 19
+#define DRM_MODE_CONNECTOR_USB 20
 struct drm_mode_get_connector {
   __u64 encoders_ptr;
   __u64 modes_ptr;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
index c92d110..7f8d5fa 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
@@ -53,6 +53,9 @@
 #define ETNAVIV_PARAM_GPU_NUM_CONSTANTS 0x19
 #define ETNAVIV_PARAM_GPU_NUM_VARYINGS 0x1a
 #define ETNAVIV_PARAM_SOFTPIN_START_ADDR 0x1b
+#define ETNAVIV_PARAM_GPU_PRODUCT_ID 0x1c
+#define ETNAVIV_PARAM_GPU_CUSTOMER_ID 0x1d
+#define ETNAVIV_PARAM_GPU_ECO_ID 0x1e
 #define ETNA_MAX_PIPES 4
 struct drm_etnaviv_param {
   __u32 pipe;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/i915_drm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/i915_drm.h
index f265d92..52bfad2 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/i915_drm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/i915_drm.h
@@ -217,6 +217,7 @@
 #define DRM_I915_QUERY 0x39
 #define DRM_I915_GEM_VM_CREATE 0x3a
 #define DRM_I915_GEM_VM_DESTROY 0x3b
+#define DRM_I915_GEM_CREATE_EXT 0x3c
 #define DRM_IOCTL_I915_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
 #define DRM_IOCTL_I915_FLUSH DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLUSH)
 #define DRM_IOCTL_I915_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLIP)
@@ -247,6 +248,7 @@
 #define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
 #define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
 #define DRM_IOCTL_I915_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create)
+#define DRM_IOCTL_I915_GEM_CREATE_EXT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE_EXT, struct drm_i915_gem_create_ext)
 #define DRM_IOCTL_I915_GEM_PREAD DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
 #define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
 #define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
@@ -349,6 +351,7 @@
 #define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2)
 #define I915_SCHEDULER_CAP_SEMAPHORES (1ul << 3)
 #define I915_SCHEDULER_CAP_ENGINE_BUSY_STATS (1ul << 4)
+#define I915_SCHEDULER_CAP_STATIC_PRIORITY_MAP (1ul << 5)
 #define I915_PARAM_HUC_STATUS 42
 #define I915_PARAM_HAS_EXEC_ASYNC 43
 #define I915_PARAM_HAS_EXEC_FENCE 44
@@ -363,6 +366,7 @@
 #define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
 #define I915_PARAM_PERF_REVISION 54
 #define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55
+#define I915_PARAM_HAS_USERPTR_PROBE 56
 typedef struct drm_i915_getparam {
   __s32 param;
   int __user * value;
@@ -453,6 +457,7 @@
 #define I915_MMAP_OFFSET_WC 1
 #define I915_MMAP_OFFSET_WB 2
 #define I915_MMAP_OFFSET_UC 3
+#define I915_MMAP_OFFSET_FIXED 4
   __u64 extensions;
 };
 struct drm_i915_gem_set_domain {
@@ -590,11 +595,11 @@
   __u32 handle;
   __u32 busy;
 };
+struct drm_i915_gem_caching {
+  __u32 handle;
 #define I915_CACHING_NONE 0
 #define I915_CACHING_CACHED 1
 #define I915_CACHING_DISPLAY 2
-struct drm_i915_gem_caching {
-  __u32 handle;
   __u32 caching;
 };
 #define I915_TILING_NONE 0
@@ -736,6 +741,7 @@
 #define I915_CONTEXT_PARAM_ENGINES 0xa
 #define I915_CONTEXT_PARAM_PERSISTENCE 0xb
 #define I915_CONTEXT_PARAM_RINGSIZE 0xc
+#define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd
   __u64 value;
 };
 struct drm_i915_gem_context_param_sseu {
@@ -769,10 +775,23 @@
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__,N__) struct { struct i915_user_extension base; struct i915_engine_class_instance master; __u16 virtual_index; __u16 num_bonds; __u64 flags; __u64 mbz64[4]; struct i915_engine_class_instance engines[N__]; \
 } __attribute__((packed)) name__
+struct i915_context_engines_parallel_submit {
+  struct i915_user_extension base;
+  __u16 engine_index;
+  __u16 width;
+  __u16 num_siblings;
+  __u16 mbz16;
+  __u64 flags;
+  __u64 mbz64[3];
+  struct i915_engine_class_instance engines[0];
+} __packed;
+#define I915_DEFINE_CONTEXT_ENGINES_PARALLEL_SUBMIT(name__,N__) struct { struct i915_user_extension base; __u16 engine_index; __u16 width; __u16 num_siblings; __u16 mbz16; __u64 flags; __u64 mbz64[3]; struct i915_engine_class_instance engines[N__]; \
+} __attribute__((packed)) name__
 struct i915_context_param_engines {
   __u64 extensions;
 #define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0
 #define I915_CONTEXT_ENGINES_EXT_BOND 1
+#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2
   struct i915_engine_class_instance engines[0];
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_PARAM_ENGINES(name__,N__) struct { __u64 extensions; struct i915_engine_class_instance engines[N__]; \
@@ -782,20 +801,7 @@
   struct i915_user_extension base;
   struct drm_i915_gem_context_param param;
 };
-struct drm_i915_gem_context_create_ext_clone {
 #define I915_CONTEXT_CREATE_EXT_CLONE 1
-  struct i915_user_extension base;
-  __u32 clone_id;
-  __u32 flags;
-#define I915_CONTEXT_CLONE_ENGINES (1u << 0)
-#define I915_CONTEXT_CLONE_FLAGS (1u << 1)
-#define I915_CONTEXT_CLONE_SCHEDATTR (1u << 2)
-#define I915_CONTEXT_CLONE_SSEU (1u << 3)
-#define I915_CONTEXT_CLONE_TIMELINE (1u << 4)
-#define I915_CONTEXT_CLONE_VM (1u << 5)
-#define I915_CONTEXT_CLONE_UNKNOWN - (I915_CONTEXT_CLONE_VM << 1)
-  __u64 rsvd;
-};
 struct drm_i915_gem_context_destroy {
   __u32 ctx_id;
   __u32 pad;
@@ -823,6 +829,7 @@
   __u64 user_size;
   __u32 flags;
 #define I915_USERPTR_READ_ONLY 0x1
+#define I915_USERPTR_PROBE 0x2
 #define I915_USERPTR_UNSYNCHRONIZED 0x80000000
   __u32 handle;
 };
@@ -886,6 +893,7 @@
 #define DRM_I915_QUERY_TOPOLOGY_INFO 1
 #define DRM_I915_QUERY_ENGINE_INFO 2
 #define DRM_I915_QUERY_PERF_CONFIG 3
+#define DRM_I915_QUERY_MEMORY_REGIONS 4
   __s32 length;
   __u32 flags;
 #define DRM_I915_QUERY_PERF_CONFIG_LIST 1
@@ -913,10 +921,13 @@
   struct i915_engine_class_instance engine;
   __u32 rsvd0;
   __u64 flags;
+#define I915_ENGINE_INFO_HAS_LOGICAL_INSTANCE (1 << 0)
   __u64 capabilities;
 #define I915_VIDEO_CLASS_CAPABILITY_HEVC (1 << 0)
 #define I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC (1 << 1)
-  __u64 rsvd1[4];
+  __u16 logical_instance;
+  __u16 rsvd1[3];
+  __u64 rsvd2[3];
 };
 struct drm_i915_query_engine_info {
   __u32 num_engines;
@@ -932,6 +943,45 @@
   __u32 flags;
   __u8 data[];
 };
+enum drm_i915_gem_memory_class {
+  I915_MEMORY_CLASS_SYSTEM = 0,
+  I915_MEMORY_CLASS_DEVICE,
+};
+struct drm_i915_gem_memory_class_instance {
+  __u16 memory_class;
+  __u16 memory_instance;
+};
+struct drm_i915_memory_region_info {
+  struct drm_i915_gem_memory_class_instance region;
+  __u32 rsvd0;
+  __u64 probed_size;
+  __u64 unallocated_size;
+  __u64 rsvd1[8];
+};
+struct drm_i915_query_memory_regions {
+  __u32 num_regions;
+  __u32 rsvd[3];
+  struct drm_i915_memory_region_info regions[];
+};
+struct drm_i915_gem_create_ext {
+  __u64 size;
+  __u32 handle;
+  __u32 flags;
+#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0
+#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1
+  __u64 extensions;
+};
+struct drm_i915_gem_create_ext_memory_regions {
+  struct i915_user_extension base;
+  __u32 pad;
+  __u32 num_regions;
+  __u64 regions;
+};
+struct drm_i915_gem_create_ext_protected_content {
+  struct i915_user_extension base;
+  __u32 flags;
+};
+#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/mga_drm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/mga_drm.h
index 4959502..dc62961 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/mga_drm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/mga_drm.h
@@ -175,7 +175,7 @@
     MGA_CLEANUP_DMA = 0x02
   } func;
   unsigned long sarea_priv_offset;
-  int chipset;
+  __struct_group(, always32bit,, int chipset;
   int sgram;
   unsigned int maccess;
   unsigned int fb_cpp;
@@ -185,6 +185,7 @@
   unsigned int depth_offset, depth_pitch;
   unsigned int texture_offset[MGA_NR_TEX_HEAPS];
   unsigned int texture_size[MGA_NR_TEX_HEAPS];
+ );
   unsigned long fb_offset;
   unsigned long mmio_offset;
   unsigned long status_offset;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/msm_drm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/msm_drm.h
index fcfcc20..b4ba1d0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/msm_drm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/msm_drm.h
@@ -39,9 +39,11 @@
 #define MSM_PARAM_MAX_FREQ 0x04
 #define MSM_PARAM_TIMESTAMP 0x05
 #define MSM_PARAM_GMEM_BASE 0x06
-#define MSM_PARAM_NR_RINGS 0x07
+#define MSM_PARAM_PRIORITIES 0x07
 #define MSM_PARAM_PP_PGTABLE 0x08
 #define MSM_PARAM_FAULTS 0x09
+#define MSM_PARAM_SUSPENDS 0x0a
+#define MSM_PARAM_NR_RINGS MSM_PARAM_PRIORITIES
 struct drm_msm_param {
   __u32 pipe;
   __u32 param;
@@ -53,7 +55,8 @@
 #define MSM_BO_CACHED 0x00010000
 #define MSM_BO_WC 0x00020000
 #define MSM_BO_UNCACHED 0x00040000
-#define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHED | MSM_BO_WC | MSM_BO_UNCACHED)
+#define MSM_BO_CACHED_COHERENT 0x080000
+#define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHE_MASK)
 struct drm_msm_gem_new {
   __u64 size;
   __u32 flags;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
index f8b8aa1..1f4473d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
@@ -110,6 +110,7 @@
   DRM_PANFROST_PARAM_JS_FEATURES15,
   DRM_PANFROST_PARAM_NR_CORE_GROUPS,
   DRM_PANFROST_PARAM_THREAD_TLS_ALLOC,
+  DRM_PANFROST_PARAM_AFBC_FEATURES,
 };
 struct drm_panfrost_get_param {
   __u32 param;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/tegra_drm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
index 5244a27..5e90635 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
@@ -163,6 +163,104 @@
 #define DRM_IOCTL_TEGRA_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_TILING, struct drm_tegra_gem_get_tiling)
 #define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags)
 #define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags)
+#define DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT (1 << 0)
+struct drm_tegra_channel_open {
+  __u32 host1x_class;
+  __u32 flags;
+  __u32 context;
+  __u32 version;
+  __u32 capabilities;
+  __u32 padding;
+};
+struct drm_tegra_channel_close {
+  __u32 context;
+  __u32 padding;
+};
+#define DRM_TEGRA_CHANNEL_MAP_READ (1 << 0)
+#define DRM_TEGRA_CHANNEL_MAP_WRITE (1 << 1)
+#define DRM_TEGRA_CHANNEL_MAP_READ_WRITE (DRM_TEGRA_CHANNEL_MAP_READ | DRM_TEGRA_CHANNEL_MAP_WRITE)
+struct drm_tegra_channel_map {
+  __u32 context;
+  __u32 handle;
+  __u32 flags;
+  __u32 mapping;
+};
+struct drm_tegra_channel_unmap {
+  __u32 context;
+  __u32 mapping;
+};
+#define DRM_TEGRA_SUBMIT_RELOC_SECTOR_LAYOUT (1 << 0)
+struct drm_tegra_submit_buf {
+  __u32 mapping;
+  __u32 flags;
+  struct {
+    __u64 target_offset;
+    __u32 gather_offset_words;
+    __u32 shift;
+  } reloc;
+};
+#define DRM_TEGRA_SUBMIT_CMD_GATHER_UPTR 0
+#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT 1
+#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT_RELATIVE 2
+struct drm_tegra_submit_cmd_gather_uptr {
+  __u32 words;
+  __u32 reserved[3];
+};
+struct drm_tegra_submit_cmd_wait_syncpt {
+  __u32 id;
+  __u32 value;
+  __u32 reserved[2];
+};
+struct drm_tegra_submit_cmd {
+  __u32 type;
+  __u32 flags;
+  union {
+    struct drm_tegra_submit_cmd_gather_uptr gather_uptr;
+    struct drm_tegra_submit_cmd_wait_syncpt wait_syncpt;
+    __u32 reserved[4];
+  };
+};
+struct drm_tegra_submit_syncpt {
+  __u32 id;
+  __u32 flags;
+  __u32 increments;
+  __u32 value;
+};
+struct drm_tegra_channel_submit {
+  __u32 context;
+  __u32 num_bufs;
+  __u32 num_cmds;
+  __u32 gather_data_words;
+  __u64 bufs_ptr;
+  __u64 cmds_ptr;
+  __u64 gather_data_ptr;
+  __u32 syncobj_in;
+  __u32 syncobj_out;
+  struct drm_tegra_submit_syncpt syncpt;
+};
+struct drm_tegra_syncpoint_allocate {
+  __u32 id;
+  __u32 padding;
+};
+struct drm_tegra_syncpoint_free {
+  __u32 id;
+  __u32 padding;
+};
+struct drm_tegra_syncpoint_wait {
+  __s64 timeout_ns;
+  __u32 id;
+  __u32 threshold;
+  __u32 value;
+  __u32 padding;
+};
+#define DRM_IOCTL_TEGRA_CHANNEL_OPEN DRM_IOWR(DRM_COMMAND_BASE + 0x10, struct drm_tegra_channel_open)
+#define DRM_IOCTL_TEGRA_CHANNEL_CLOSE DRM_IOWR(DRM_COMMAND_BASE + 0x11, struct drm_tegra_channel_close)
+#define DRM_IOCTL_TEGRA_CHANNEL_MAP DRM_IOWR(DRM_COMMAND_BASE + 0x12, struct drm_tegra_channel_map)
+#define DRM_IOCTL_TEGRA_CHANNEL_UNMAP DRM_IOWR(DRM_COMMAND_BASE + 0x13, struct drm_tegra_channel_unmap)
+#define DRM_IOCTL_TEGRA_CHANNEL_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + 0x14, struct drm_tegra_channel_submit)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_ALLOCATE DRM_IOWR(DRM_COMMAND_BASE + 0x20, struct drm_tegra_syncpoint_allocate)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_FREE DRM_IOWR(DRM_COMMAND_BASE + 0x21, struct drm_tegra_syncpoint_free)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_WAIT DRM_IOWR(DRM_COMMAND_BASE + 0x22, struct drm_tegra_syncpoint_wait)
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/v3d_drm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
index cdc2cf5..5887678 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
@@ -30,6 +30,9 @@
 #define DRM_V3D_GET_BO_OFFSET 0x05
 #define DRM_V3D_SUBMIT_TFU 0x06
 #define DRM_V3D_SUBMIT_CSD 0x07
+#define DRM_V3D_PERFMON_CREATE 0x08
+#define DRM_V3D_PERFMON_DESTROY 0x09
+#define DRM_V3D_PERFMON_GET_VALUES 0x0a
 #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
 #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo)
 #define DRM_IOCTL_V3D_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_CREATE_BO, struct drm_v3d_create_bo)
@@ -38,7 +41,39 @@
 #define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset)
 #define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu)
 #define DRM_IOCTL_V3D_SUBMIT_CSD DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd)
+#define DRM_IOCTL_V3D_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_CREATE, struct drm_v3d_perfmon_create)
+#define DRM_IOCTL_V3D_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_DESTROY, struct drm_v3d_perfmon_destroy)
+#define DRM_IOCTL_V3D_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_VALUES, struct drm_v3d_perfmon_get_values)
 #define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01
+#define DRM_V3D_SUBMIT_EXTENSION 0x02
+struct drm_v3d_extension {
+  __u64 next;
+  __u32 id;
+#define DRM_V3D_EXT_ID_MULTI_SYNC 0x01
+  __u32 flags;
+};
+struct drm_v3d_sem {
+  __u32 handle;
+  __u32 flags;
+  __u64 point;
+  __u64 mbz[2];
+};
+enum v3d_queue {
+  V3D_BIN,
+  V3D_RENDER,
+  V3D_TFU,
+  V3D_CSD,
+  V3D_CACHE_CLEAN,
+};
+struct drm_v3d_multi_sync {
+  struct drm_v3d_extension base;
+  __u64 in_syncs;
+  __u64 out_syncs;
+  __u32 in_sync_count;
+  __u32 out_sync_count;
+  __u32 wait_stage;
+  __u32 pad;
+};
 struct drm_v3d_submit_cl {
   __u32 bcl_start;
   __u32 bcl_end;
@@ -53,6 +88,9 @@
   __u64 bo_handles;
   __u32 bo_handle_count;
   __u32 flags;
+  __u32 perfmon_id;
+  __u32 pad;
+  __u64 extensions;
 };
 struct drm_v3d_wait_bo {
   __u32 handle;
@@ -81,6 +119,8 @@
   DRM_V3D_PARAM_SUPPORTS_TFU,
   DRM_V3D_PARAM_SUPPORTS_CSD,
   DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH,
+  DRM_V3D_PARAM_SUPPORTS_PERFMON,
+  DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT,
 };
 struct drm_v3d_get_param {
   __u32 param;
@@ -103,6 +143,8 @@
   __u32 bo_handles[4];
   __u32 in_sync;
   __u32 out_sync;
+  __u32 flags;
+  __u64 extensions;
 };
 struct drm_v3d_submit_csd {
   __u32 cfg[7];
@@ -111,6 +153,114 @@
   __u32 bo_handle_count;
   __u32 in_sync;
   __u32 out_sync;
+  __u32 perfmon_id;
+  __u64 extensions;
+  __u32 flags;
+  __u32 pad;
+};
+enum {
+  V3D_PERFCNT_FEP_VALID_PRIMTS_NO_PIXELS,
+  V3D_PERFCNT_FEP_VALID_PRIMS,
+  V3D_PERFCNT_FEP_EZ_NFCLIP_QUADS,
+  V3D_PERFCNT_FEP_VALID_QUADS,
+  V3D_PERFCNT_TLB_QUADS_STENCIL_FAIL,
+  V3D_PERFCNT_TLB_QUADS_STENCILZ_FAIL,
+  V3D_PERFCNT_TLB_QUADS_STENCILZ_PASS,
+  V3D_PERFCNT_TLB_QUADS_ZERO_COV,
+  V3D_PERFCNT_TLB_QUADS_NONZERO_COV,
+  V3D_PERFCNT_TLB_QUADS_WRITTEN,
+  V3D_PERFCNT_PTB_PRIM_VIEWPOINT_DISCARD,
+  V3D_PERFCNT_PTB_PRIM_CLIP,
+  V3D_PERFCNT_PTB_PRIM_REV,
+  V3D_PERFCNT_QPU_IDLE_CYCLES,
+  V3D_PERFCNT_QPU_ACTIVE_CYCLES_VERTEX_COORD_USER,
+  V3D_PERFCNT_QPU_ACTIVE_CYCLES_FRAG,
+  V3D_PERFCNT_QPU_CYCLES_VALID_INSTR,
+  V3D_PERFCNT_QPU_CYCLES_TMU_STALL,
+  V3D_PERFCNT_QPU_CYCLES_SCOREBOARD_STALL,
+  V3D_PERFCNT_QPU_CYCLES_VARYINGS_STALL,
+  V3D_PERFCNT_QPU_IC_HIT,
+  V3D_PERFCNT_QPU_IC_MISS,
+  V3D_PERFCNT_QPU_UC_HIT,
+  V3D_PERFCNT_QPU_UC_MISS,
+  V3D_PERFCNT_TMU_TCACHE_ACCESS,
+  V3D_PERFCNT_TMU_TCACHE_MISS,
+  V3D_PERFCNT_VPM_VDW_STALL,
+  V3D_PERFCNT_VPM_VCD_STALL,
+  V3D_PERFCNT_BIN_ACTIVE,
+  V3D_PERFCNT_RDR_ACTIVE,
+  V3D_PERFCNT_L2T_HITS,
+  V3D_PERFCNT_L2T_MISSES,
+  V3D_PERFCNT_CYCLE_COUNT,
+  V3D_PERFCNT_QPU_CYCLES_STALLED_VERTEX_COORD_USER,
+  V3D_PERFCNT_QPU_CYCLES_STALLED_FRAGMENT,
+  V3D_PERFCNT_PTB_PRIMS_BINNED,
+  V3D_PERFCNT_AXI_WRITES_WATCH_0,
+  V3D_PERFCNT_AXI_READS_WATCH_0,
+  V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_0,
+  V3D_PERFCNT_AXI_READ_STALLS_WATCH_0,
+  V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_0,
+  V3D_PERFCNT_AXI_READ_BYTES_WATCH_0,
+  V3D_PERFCNT_AXI_WRITES_WATCH_1,
+  V3D_PERFCNT_AXI_READS_WATCH_1,
+  V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_1,
+  V3D_PERFCNT_AXI_READ_STALLS_WATCH_1,
+  V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_1,
+  V3D_PERFCNT_AXI_READ_BYTES_WATCH_1,
+  V3D_PERFCNT_TLB_PARTIAL_QUADS,
+  V3D_PERFCNT_TMU_CONFIG_ACCESSES,
+  V3D_PERFCNT_L2T_NO_ID_STALL,
+  V3D_PERFCNT_L2T_COM_QUE_STALL,
+  V3D_PERFCNT_L2T_TMU_WRITES,
+  V3D_PERFCNT_TMU_ACTIVE_CYCLES,
+  V3D_PERFCNT_TMU_STALLED_CYCLES,
+  V3D_PERFCNT_CLE_ACTIVE,
+  V3D_PERFCNT_L2T_TMU_READS,
+  V3D_PERFCNT_L2T_CLE_READS,
+  V3D_PERFCNT_L2T_VCD_READS,
+  V3D_PERFCNT_L2T_TMUCFG_READS,
+  V3D_PERFCNT_L2T_SLC0_READS,
+  V3D_PERFCNT_L2T_SLC1_READS,
+  V3D_PERFCNT_L2T_SLC2_READS,
+  V3D_PERFCNT_L2T_TMU_W_MISSES,
+  V3D_PERFCNT_L2T_TMU_R_MISSES,
+  V3D_PERFCNT_L2T_CLE_MISSES,
+  V3D_PERFCNT_L2T_VCD_MISSES,
+  V3D_PERFCNT_L2T_TMUCFG_MISSES,
+  V3D_PERFCNT_L2T_SLC0_MISSES,
+  V3D_PERFCNT_L2T_SLC1_MISSES,
+  V3D_PERFCNT_L2T_SLC2_MISSES,
+  V3D_PERFCNT_CORE_MEM_WRITES,
+  V3D_PERFCNT_L2T_MEM_WRITES,
+  V3D_PERFCNT_PTB_MEM_WRITES,
+  V3D_PERFCNT_TLB_MEM_WRITES,
+  V3D_PERFCNT_CORE_MEM_READS,
+  V3D_PERFCNT_L2T_MEM_READS,
+  V3D_PERFCNT_PTB_MEM_READS,
+  V3D_PERFCNT_PSE_MEM_READS,
+  V3D_PERFCNT_TLB_MEM_READS,
+  V3D_PERFCNT_GMP_MEM_READS,
+  V3D_PERFCNT_PTB_W_MEM_WORDS,
+  V3D_PERFCNT_TLB_W_MEM_WORDS,
+  V3D_PERFCNT_PSE_R_MEM_WORDS,
+  V3D_PERFCNT_TLB_R_MEM_WORDS,
+  V3D_PERFCNT_TMU_MRU_HITS,
+  V3D_PERFCNT_COMPUTE_ACTIVE,
+  V3D_PERFCNT_NUM,
+};
+#define DRM_V3D_MAX_PERF_COUNTERS 32
+struct drm_v3d_perfmon_create {
+  __u32 id;
+  __u32 ncounters;
+  __u8 counters[DRM_V3D_MAX_PERF_COUNTERS];
+};
+struct drm_v3d_perfmon_destroy {
+  __u32 id;
+};
+struct drm_v3d_perfmon_get_values {
+  __u32 id;
+  __u32 pad;
+  __u64 values_ptr;
 };
 #ifdef __cplusplus
 }
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
index 842c1fd..342282d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
@@ -32,9 +32,11 @@
 #define DRM_VIRTGPU_WAIT 0x08
 #define DRM_VIRTGPU_GET_CAPS 0x09
 #define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a
+#define DRM_VIRTGPU_CONTEXT_INIT 0x0b
 #define VIRTGPU_EXECBUF_FENCE_FD_IN 0x01
 #define VIRTGPU_EXECBUF_FENCE_FD_OUT 0x02
-#define VIRTGPU_EXECBUF_FLAGS (VIRTGPU_EXECBUF_FENCE_FD_IN | VIRTGPU_EXECBUF_FENCE_FD_OUT | 0)
+#define VIRTGPU_EXECBUF_RING_IDX 0x04
+#define VIRTGPU_EXECBUF_FLAGS (VIRTGPU_EXECBUF_FENCE_FD_IN | VIRTGPU_EXECBUF_FENCE_FD_OUT | VIRTGPU_EXECBUF_RING_IDX | 0)
 struct drm_virtgpu_map {
   __u64 offset;
   __u32 handle;
@@ -47,12 +49,16 @@
   __u64 bo_handles;
   __u32 num_bo_handles;
   __s32 fence_fd;
+  __u32 ring_idx;
+  __u32 pad;
 };
 #define VIRTGPU_PARAM_3D_FEATURES 1
 #define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2
 #define VIRTGPU_PARAM_RESOURCE_BLOB 3
 #define VIRTGPU_PARAM_HOST_VISIBLE 4
 #define VIRTGPU_PARAM_CROSS_DEVICE 5
+#define VIRTGPU_PARAM_CONTEXT_INIT 6
+#define VIRTGPU_PARAM_SUPPORTED_CAPSET_IDs 7
 struct drm_virtgpu_getparam {
   __u64 param;
   __u64 value;
@@ -132,6 +138,19 @@
   __u64 cmd;
   __u64 blob_id;
 };
+#define VIRTGPU_CONTEXT_PARAM_CAPSET_ID 0x0001
+#define VIRTGPU_CONTEXT_PARAM_NUM_RINGS 0x0002
+#define VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK 0x0003
+struct drm_virtgpu_context_set_param {
+  __u64 param;
+  __u64 value;
+};
+struct drm_virtgpu_context_init {
+  __u32 num_params;
+  __u32 pad;
+  __u64 ctx_set_params;
+};
+#define VIRTGPU_EVENT_FENCE_SIGNALED 0x90000000
 #define DRM_IOCTL_VIRTGPU_MAP DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map)
 #define DRM_IOCTL_VIRTGPU_EXECBUFFER DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_EXECBUFFER, struct drm_virtgpu_execbuffer)
 #define DRM_IOCTL_VIRTGPU_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GETPARAM, struct drm_virtgpu_getparam)
@@ -142,6 +161,7 @@
 #define DRM_IOCTL_VIRTGPU_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_WAIT, struct drm_virtgpu_3d_wait)
 #define DRM_IOCTL_VIRTGPU_GET_CAPS DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GET_CAPS, struct drm_virtgpu_get_caps)
 #define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB, struct drm_virtgpu_resource_create_blob)
+#define DRM_IOCTL_VIRTGPU_CONTEXT_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_CONTEXT_INIT, struct drm_virtgpu_context_init)
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
index 982b64f..395743b 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
@@ -56,6 +56,9 @@
 #define DRM_VMW_GB_SURFACE_CREATE_EXT 27
 #define DRM_VMW_GB_SURFACE_REF_EXT 28
 #define DRM_VMW_MSG 29
+#define DRM_VMW_MKSSTAT_RESET 30
+#define DRM_VMW_MKSSTAT_ADD 31
+#define DRM_VMW_MKSSTAT_REMOVE 32
 #define DRM_VMW_PARAM_NUM_STREAMS 0
 #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1
 #define DRM_VMW_PARAM_3D 2
@@ -72,6 +75,7 @@
 #define DRM_VMW_PARAM_HW_CAPS2 13
 #define DRM_VMW_PARAM_SM4_1 14
 #define DRM_VMW_PARAM_SM5 15
+#define DRM_VMW_PARAM_GL43 16
 enum drm_vmw_handle_type {
   DRM_VMW_HANDLE_LEGACY = 0,
   DRM_VMW_HANDLE_PRIME = 1
@@ -360,6 +364,19 @@
   __s32 send_only;
   __u32 receive_len;
 };
+struct drm_vmw_mksstat_add_arg {
+  __u64 stat;
+  __u64 info;
+  __u64 strs;
+  __u64 stat_len;
+  __u64 info_len;
+  __u64 strs_len;
+  __u64 description;
+  __u64 id;
+};
+struct drm_vmw_mksstat_remove_arg {
+  __u64 id;
+};
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/acrn.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/acrn.h
index 74b719a..c991ac0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/acrn.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/acrn.h
@@ -178,6 +178,7 @@
   } intx;
 };
 #define ACRN_PTDEV_QUIRK_ASSIGN (1U << 0)
+#define ACRN_MMIODEV_RES_NUM 3
 #define ACRN_PCI_NUM_BARS 6
 struct acrn_pcidev {
   __u32 type;
@@ -187,6 +188,29 @@
   __u8 intr_pin;
   __u32 bar[ACRN_PCI_NUM_BARS];
 };
+struct acrn_mmiodev {
+  __u8 name[8];
+  struct {
+    __u64 user_vm_pa;
+    __u64 service_vm_pa;
+    __u64 size;
+    __u64 mem_type;
+  } res[ACRN_MMIODEV_RES_NUM];
+};
+struct acrn_vdev {
+  union {
+    __u64 value;
+    struct {
+      __le16 vendor;
+      __le16 device;
+      __le32 legacy_id;
+    } fields;
+  } id;
+  __u64 slot;
+  __u32 io_addr[ACRN_PCI_NUM_BARS];
+  __u32 io_size[ACRN_PCI_NUM_BARS];
+  __u8 args[128];
+};
 struct acrn_msi_entry {
   __u64 msi_addr;
   __u64 msi_data;
@@ -257,6 +281,10 @@
 #define ACRN_IOCTL_RESET_PTDEV_INTR _IOW(ACRN_IOCTL_TYPE, 0x54, struct acrn_ptdev_irq)
 #define ACRN_IOCTL_ASSIGN_PCIDEV _IOW(ACRN_IOCTL_TYPE, 0x55, struct acrn_pcidev)
 #define ACRN_IOCTL_DEASSIGN_PCIDEV _IOW(ACRN_IOCTL_TYPE, 0x56, struct acrn_pcidev)
+#define ACRN_IOCTL_ASSIGN_MMIODEV _IOW(ACRN_IOCTL_TYPE, 0x57, struct acrn_mmiodev)
+#define ACRN_IOCTL_DEASSIGN_MMIODEV _IOW(ACRN_IOCTL_TYPE, 0x58, struct acrn_mmiodev)
+#define ACRN_IOCTL_CREATE_VDEV _IOW(ACRN_IOCTL_TYPE, 0x59, struct acrn_vdev)
+#define ACRN_IOCTL_DESTROY_VDEV _IOW(ACRN_IOCTL_TYPE, 0x5A, struct acrn_vdev)
 #define ACRN_IOCTL_PM_GET_CPU_STATE _IOWR(ACRN_IOCTL_TYPE, 0x60, __u64)
 #define ACRN_IOCTL_IOEVENTFD _IOW(ACRN_IOCTL_TYPE, 0x70, struct acrn_ioeventfd)
 #define ACRN_IOCTL_IRQFD _IOW(ACRN_IOCTL_TYPE, 0x71, struct acrn_irqfd)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/amt.h
similarity index 69%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/amt.h
index bb45c3d..049006d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/amt.h
@@ -16,14 +16,25 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_AMT_H_
+#define _UAPI_AMT_H_
+enum ifla_amt_mode {
+  AMT_MODE_GATEWAY = 0,
+  AMT_MODE_RELAY,
+  __AMT_MODE_MAX,
 };
+#define AMT_MODE_MAX (__AMT_MODE_MAX - 1)
+enum {
+  IFLA_AMT_UNSPEC,
+  IFLA_AMT_MODE,
+  IFLA_AMT_RELAY_PORT,
+  IFLA_AMT_GATEWAY_PORT,
+  IFLA_AMT_LINK,
+  IFLA_AMT_LOCAL_IP,
+  IFLA_AMT_REMOTE_IP,
+  IFLA_AMT_DISCOVERY_IP,
+  IFLA_AMT_MAX_TUNNELS,
+  __IFLA_AMT_MAX,
+};
+#define IFLA_AMT_MAX (__IFLA_AMT_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/android/binder.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/android/binder.h
index 5416344..ded1756 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/android/binder.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/android/binder.h
@@ -117,6 +117,16 @@
   __u32 reserved2;
   __u32 reserved3;
 };
+struct binder_freeze_info {
+  __u32 pid;
+  __u32 enable;
+  __u32 timeout_ms;
+};
+struct binder_frozen_status_info {
+  __u32 pid;
+  __u32 sync_recv;
+  __u32 async_recv;
+};
 #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read)
 #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64)
 #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32)
@@ -127,6 +137,9 @@
 #define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info)
 #define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref)
 #define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object)
+#define BINDER_FREEZE _IOW('b', 14, struct binder_freeze_info)
+#define BINDER_GET_FROZEN_INFO _IOWR('b', 15, struct binder_frozen_status_info)
+#define BINDER_ENABLE_ONEWAY_SPAM_DETECTION _IOW('b', 16, __u32)
 enum transaction_flags {
   TF_ONE_WAY = 0x01,
   TF_ROOT_OBJECT = 0x04,
@@ -199,6 +212,8 @@
   BR_DEAD_BINDER = _IOR('r', 15, binder_uintptr_t),
   BR_CLEAR_DEATH_NOTIFICATION_DONE = _IOR('r', 16, binder_uintptr_t),
   BR_FAILED_REPLY = _IO('r', 17),
+  BR_FROZEN_REPLY = _IO('r', 18),
+  BR_ONEWAY_SPAM_SUSPECT = _IO('r', 19),
 };
 enum binder_driver_command_protocol {
   BC_TRANSACTION = _IOW('c', 0, struct binder_transaction_data),
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/audit.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/audit.h
index 2c18e07..30a94af 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/audit.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/audit.h
@@ -83,6 +83,10 @@
 #define AUDIT_TIME_ADJNTPVAL 1333
 #define AUDIT_BPF 1334
 #define AUDIT_EVENT_LISTENER 1335
+#define AUDIT_URINGOP 1336
+#define AUDIT_OPENAT2 1337
+#define AUDIT_DM_CTRL 1338
+#define AUDIT_DM_EVENT 1339
 #define AUDIT_AVC 1400
 #define AUDIT_SELINUX_ERR 1401
 #define AUDIT_AVC_PATH 1402
@@ -126,7 +130,8 @@
 #define AUDIT_FILTER_EXCLUDE 0x05
 #define AUDIT_FILTER_TYPE AUDIT_FILTER_EXCLUDE
 #define AUDIT_FILTER_FS 0x06
-#define AUDIT_NR_FILTERS 7
+#define AUDIT_FILTER_URING_EXIT 0x07
+#define AUDIT_NR_FILTERS 8
 #define AUDIT_FILTER_PREPEND 0x10
 #define AUDIT_NEVER 0
 #define AUDIT_POSSIBLE 1
@@ -372,6 +377,6 @@
   __u32 values[AUDIT_MAX_FIELDS];
   __u32 fieldflags[AUDIT_MAX_FIELDS];
   __u32 buflen;
-  char buf[0];
+  char buf[];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/auxvec.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/auxvec.h
index e8c2336..c80c170 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/auxvec.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/auxvec.h
@@ -42,4 +42,7 @@
 #define AT_RANDOM 25
 #define AT_HWCAP2 26
 #define AT_EXECFN 31
+#ifndef AT_MINSIGSTKSZ
+#define AT_MINSIGSTKSZ 51
+#endif
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/bcache.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/bcache.h
deleted file mode 100644
index 25b6987..0000000
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/bcache.h
+++ /dev/null
@@ -1,221 +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_BCACHE_H
-#define _LINUX_BCACHE_H
-#include <linux/types.h>
-#define BITMASK(name,type,field,offset,size) static inline __u64 name(const type * k) \
-{ return(k->field >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(type * k, __u64 v) \
-{ k->field &= ~(~(~0ULL << size) << offset); k->field |= (v & ~(~0ULL << size)) << offset; \
-}
-struct bkey {
-  __u64 high;
-  __u64 low;
-  __u64 ptr[];
-};
-#define KEY_FIELD(name,field,offset,size) BITMASK(name, struct bkey, field, offset, size)
-#define PTR_FIELD(name,offset,size) static inline __u64 name(const struct bkey * k, unsigned int i) \
-{ return(k->ptr[i] >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(struct bkey * k, unsigned int i, __u64 v) \
-{ k->ptr[i] &= ~(~(~0ULL << size) << offset); k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \
-}
-#define KEY_SIZE_BITS 16
-#define KEY_MAX_U64S 8
-#define KEY(inode,offset,size) \
-((struct bkey) {.high = (1ULL << 63) | ((__u64) (size) << 20) | (inode),.low = (offset) \
-})
-#define ZERO_KEY KEY(0, 0, 0)
-#define MAX_KEY_INODE (~(~0 << 20))
-#define MAX_KEY_OFFSET (~0ULL >> 1)
-#define MAX_KEY KEY(MAX_KEY_INODE, MAX_KEY_OFFSET, 0)
-#define KEY_START(k) (KEY_OFFSET(k) - KEY_SIZE(k))
-#define START_KEY(k) KEY(KEY_INODE(k), KEY_START(k), 0)
-#define PTR_DEV_BITS 12
-#define PTR_CHECK_DEV ((1 << PTR_DEV_BITS) - 1)
-#define MAKE_PTR(gen,offset,dev) ((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen)
-#define bkey_copy(_dest,_src) memcpy(_dest, _src, bkey_bytes(_src))
-#define BKEY_PAD 8
-#define BKEY_PADDED(key) union { struct bkey key; __u64 key ##_pad[BKEY_PAD]; }
-#define BCACHE_SB_VERSION_CDEV 0
-#define BCACHE_SB_VERSION_BDEV 1
-#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3
-#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4
-#define BCACHE_SB_VERSION_CDEV_WITH_FEATURES 5
-#define BCACHE_SB_VERSION_BDEV_WITH_FEATURES 6
-#define BCACHE_SB_MAX_VERSION 6
-#define SB_SECTOR 8
-#define SB_OFFSET (SB_SECTOR << SECTOR_SHIFT)
-#define SB_SIZE 4096
-#define SB_LABEL_SIZE 32
-#define SB_JOURNAL_BUCKETS 256U
-#define MAX_CACHES_PER_SET 8
-#define BDEV_DATA_START_DEFAULT 16
-struct cache_sb_disk {
-  __le64 csum;
-  __le64 offset;
-  __le64 version;
-  __u8 magic[16];
-  __u8 uuid[16];
-  union {
-    __u8 set_uuid[16];
-    __le64 set_magic;
-  };
-  __u8 label[SB_LABEL_SIZE];
-  __le64 flags;
-  __le64 seq;
-  __le64 feature_compat;
-  __le64 feature_incompat;
-  __le64 feature_ro_compat;
-  __le64 pad[5];
-  union {
-    struct {
-      __le64 nbuckets;
-      __le16 block_size;
-      __le16 bucket_size;
-      __le16 nr_in_set;
-      __le16 nr_this_dev;
-    };
-    struct {
-      __le64 data_offset;
-    };
-  };
-  __le32 last_mount;
-  __le16 first_bucket;
-  union {
-    __le16 njournal_buckets;
-    __le16 keys;
-  };
-  __le64 d[SB_JOURNAL_BUCKETS];
-  __le16 obso_bucket_size_hi;
-};
-struct cache_sb {
-  __u64 offset;
-  __u64 version;
-  __u8 magic[16];
-  __u8 uuid[16];
-  union {
-    __u8 set_uuid[16];
-    __u64 set_magic;
-  };
-  __u8 label[SB_LABEL_SIZE];
-  __u64 flags;
-  __u64 seq;
-  __u64 feature_compat;
-  __u64 feature_incompat;
-  __u64 feature_ro_compat;
-  union {
-    struct {
-      __u64 nbuckets;
-      __u16 block_size;
-      __u16 nr_in_set;
-      __u16 nr_this_dev;
-      __u32 bucket_size;
-    };
-    struct {
-      __u64 data_offset;
-    };
-  };
-  __u32 last_mount;
-  __u16 first_bucket;
-  union {
-    __u16 njournal_buckets;
-    __u16 keys;
-  };
-  __u64 d[SB_JOURNAL_BUCKETS];
-};
-#define CACHE_REPLACEMENT_LRU 0U
-#define CACHE_REPLACEMENT_FIFO 1U
-#define CACHE_REPLACEMENT_RANDOM 2U
-#define CACHE_MODE_WRITETHROUGH 0U
-#define CACHE_MODE_WRITEBACK 1U
-#define CACHE_MODE_WRITEAROUND 2U
-#define CACHE_MODE_NONE 3U
-#define BDEV_STATE_NONE 0U
-#define BDEV_STATE_CLEAN 1U
-#define BDEV_STATE_DIRTY 2U
-#define BDEV_STATE_STALE 3U
-#define JSET_MAGIC 0x245235c1a3625032ULL
-#define PSET_MAGIC 0x6750e15f87337f91ULL
-#define BSET_MAGIC 0x90135c78b99e07f5ULL
-#define BCACHE_JSET_VERSION_UUIDv1 1
-#define BCACHE_JSET_VERSION_UUID 1
-#define BCACHE_JSET_VERSION 1
-struct jset {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 keys;
-  __u64 last_seq;
-  BKEY_PADDED(uuid_bucket);
-  BKEY_PADDED(btree_root);
-  __u16 btree_level;
-  __u16 pad[3];
-  __u64 prio_bucket[MAX_CACHES_PER_SET];
-  union {
-    struct bkey start[0];
-    __u64 d[0];
-  };
-};
-struct prio_set {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 pad;
-  __u64 next_bucket;
-  struct bucket_disk {
-    __u16 prio;
-    __u8 gen;
-  } __attribute((packed)) data[];
-};
-struct uuid_entry {
-  union {
-    struct {
-      __u8 uuid[16];
-      __u8 label[32];
-      __u32 first_reg;
-      __u32 last_reg;
-      __u32 invalidated;
-      __u32 flags;
-      __u64 sectors;
-    };
-    __u8 pad[128];
-  };
-};
-#define BCACHE_BSET_CSUM 1
-#define BCACHE_BSET_VERSION 1
-struct bset {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 keys;
-  union {
-    struct bkey start[0];
-    __u64 d[0];
-  };
-};
-struct uuid_entry_v0 {
-  __u8 uuid[16];
-  __u8 label[32];
-  __u32 first_reg;
-  __u32 last_reg;
-  __u32 invalidated;
-  __u32 pad;
-};
-#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/bpf.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/bpf.h
index c643ffa..d363e81 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/bpf.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/bpf.h
@@ -91,6 +91,7 @@
   BPF_PROG_ATTACH,
   BPF_PROG_DETACH,
   BPF_PROG_TEST_RUN,
+  BPF_PROG_RUN = BPF_PROG_TEST_RUN,
   BPF_PROG_GET_NEXT_ID,
   BPF_MAP_GET_NEXT_ID,
   BPF_PROG_GET_FD_BY_ID,
@@ -148,6 +149,7 @@
   BPF_MAP_TYPE_RINGBUF,
   BPF_MAP_TYPE_INODE_STORAGE,
   BPF_MAP_TYPE_TASK_STORAGE,
+  BPF_MAP_TYPE_BLOOM_FILTER,
 };
 enum bpf_prog_type {
   BPF_PROG_TYPE_UNSPEC,
@@ -181,6 +183,7 @@
   BPF_PROG_TYPE_EXT,
   BPF_PROG_TYPE_LSM,
   BPF_PROG_TYPE_SK_LOOKUP,
+  BPF_PROG_TYPE_SYSCALL,
 };
 enum bpf_attach_type {
   BPF_CGROUP_INET_INGRESS,
@@ -221,6 +224,10 @@
   BPF_XDP_CPUMAP,
   BPF_SK_LOOKUP,
   BPF_XDP,
+  BPF_SK_SKB_VERDICT,
+  BPF_SK_REUSEPORT_SELECT,
+  BPF_SK_REUSEPORT_SELECT_OR_MIGRATE,
+  BPF_PERF_EVENT,
   __MAX_BPF_ATTACH_TYPE
 };
 #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
@@ -232,6 +239,7 @@
   BPF_LINK_TYPE_ITER = 4,
   BPF_LINK_TYPE_NETNS = 5,
   BPF_LINK_TYPE_XDP = 6,
+  BPF_LINK_TYPE_PERF_EVENT = 7,
   MAX_BPF_LINK_TYPE,
 };
 #define BPF_F_ALLOW_OVERRIDE (1U << 0)
@@ -243,9 +251,13 @@
 #define BPF_F_TEST_STATE_FREQ (1U << 3)
 #define BPF_F_SLEEPABLE (1U << 4)
 #define BPF_PSEUDO_MAP_FD 1
+#define BPF_PSEUDO_MAP_IDX 5
 #define BPF_PSEUDO_MAP_VALUE 2
+#define BPF_PSEUDO_MAP_IDX_VALUE 6
 #define BPF_PSEUDO_BTF_ID 3
+#define BPF_PSEUDO_FUNC 4
 #define BPF_PSEUDO_CALL 1
+#define BPF_PSEUDO_KFUNC_CALL 2
 enum {
   BPF_ANY = 0,
   BPF_NOEXIST = 1,
@@ -302,6 +314,7 @@
     __u32 btf_key_type_id;
     __u32 btf_value_type_id;
     __u32 btf_vmlinux_value_type_id;
+    __u64 map_extra;
   };
   struct {
     __u32 map_fd;
@@ -347,6 +360,10 @@
       __u32 attach_prog_fd;
       __u32 attach_btf_obj_fd;
     };
+    __u32 core_relo_cnt;
+    __aligned_u64 fd_array;
+    __aligned_u64 core_relos;
+    __u32 core_relo_rec_size;
   };
   struct {
     __aligned_u64 pathname;
@@ -436,6 +453,9 @@
         __aligned_u64 iter_info;
         __u32 iter_info_len;
       };
+      struct {
+        __u64 bpf_cookie;
+      } perf_event;
     };
   } link_create;
   struct {
@@ -460,7 +480,7 @@
     __u32 flags;
   } prog_bind_map;
 } __attribute__((aligned(8)));
-#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu),
+#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu), FN(for_each_map_elem), FN(snprintf), FN(sys_bpf), FN(btf_find_by_name_kind), FN(sys_close), FN(timer_init), FN(timer_set_callback), FN(timer_start), FN(timer_cancel), FN(get_func_ip), FN(get_attach_cookie), FN(task_pt_regs), FN(get_branch_snapshot), FN(trace_vprintk), FN(skc_to_unix_sock), FN(kallsyms_lookup_name), FN(find_vma), FN(loop), FN(strncmp), FN(get_func_arg), FN(get_func_ret), FN(get_func_arg_cnt),
 #define __BPF_ENUM_FN(x) BPF_FUNC_ ##x
 enum bpf_func_id {
   __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID,
@@ -517,6 +537,7 @@
   BPF_F_ADJ_ROOM_ENCAP_L4_GRE = (1ULL << 3),
   BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4),
   BPF_F_ADJ_ROOM_NO_CSUM_RESET = (1ULL << 5),
+  BPF_F_ADJ_ROOM_ENCAP_L2_ETH = (1ULL << 6),
 };
 enum {
   BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff,
@@ -568,6 +589,10 @@
 enum {
   BPF_F_BPRM_SECUREEXEC = (1ULL << 0),
 };
+enum {
+  BPF_F_BROADCAST = (1ULL << 3),
+  BPF_F_EXCLUDE_INGRESS = (1ULL << 4),
+};
 #define __bpf_md_ptr(type,name) union { type name; __u64 : 64; \
 } __attribute__((aligned(8)))
 struct __sk_buff {
@@ -603,6 +628,8 @@
   __u32 gso_segs;
   __bpf_md_ptr(struct bpf_sock *, sk);
   __u32 gso_size;
+  __u32 : 32;
+  __u64 hwtstamp;
 };
 struct bpf_tunnel_key {
   __u32 tunnel_id;
@@ -749,6 +776,8 @@
   __u32 ip_protocol;
   __u32 bind_inany;
   __u32 hash;
+  __bpf_md_ptr(struct bpf_sock *, sk);
+  __bpf_md_ptr(struct bpf_sock *, migrating_sk);
 };
 #define BPF_TAG_SIZE 8
 struct bpf_prog_info {
@@ -788,6 +817,7 @@
   __u64 run_time_ns;
   __u64 run_cnt;
   __u64 recursion_misses;
+  __u32 verified_insns;
 } __attribute__((aligned(8)));
 struct bpf_map_info {
   __u32 type;
@@ -804,6 +834,8 @@
   __u32 btf_id;
   __u32 btf_key_type_id;
   __u32 btf_value_type_id;
+  __u32 : 32;
+  __u64 map_extra;
 } __attribute__((aligned(8)));
 struct bpf_btf_info {
   __aligned_u64 btf;
@@ -824,6 +856,8 @@
     } raw_tracepoint;
     struct {
       __u32 attach_type;
+      __u32 target_obj_id;
+      __u32 target_btf_id;
     } tracing;
     struct {
       __u64 cgroup_id;
@@ -1096,6 +1130,10 @@
 struct bpf_spin_lock {
   __u32 val;
 };
+struct bpf_timer {
+  __u64 : 64;
+  __u64 : 64;
+} __attribute__((aligned(8)));
 struct bpf_sysctl {
   __u32 write;
   __u32 file_pos;
@@ -1114,7 +1152,10 @@
   __u32 tgid;
 };
 struct bpf_sk_lookup {
-  __bpf_md_ptr(struct bpf_sock *, sk);
+  union {
+    __bpf_md_ptr(struct bpf_sock *, sk);
+    __u64 cookie;
+  };
   __u32 family;
   __u32 protocol;
   __u32 remote_ip4;
@@ -1123,6 +1164,7 @@
   __u32 local_ip4;
   __u32 local_ip6[4];
   __u32 local_port;
+  __u32 ingress_ifindex;
 };
 struct btf_ptr {
   void * ptr;
@@ -1135,4 +1177,24 @@
   BTF_F_PTR_RAW = (1ULL << 2),
   BTF_F_ZERO = (1ULL << 3),
 };
+enum bpf_core_relo_kind {
+  BPF_CORE_FIELD_BYTE_OFFSET = 0,
+  BPF_CORE_FIELD_BYTE_SIZE = 1,
+  BPF_CORE_FIELD_EXISTS = 2,
+  BPF_CORE_FIELD_SIGNED = 3,
+  BPF_CORE_FIELD_LSHIFT_U64 = 4,
+  BPF_CORE_FIELD_RSHIFT_U64 = 5,
+  BPF_CORE_TYPE_ID_LOCAL = 6,
+  BPF_CORE_TYPE_ID_TARGET = 7,
+  BPF_CORE_TYPE_EXISTS = 8,
+  BPF_CORE_TYPE_SIZE = 9,
+  BPF_CORE_ENUMVAL_EXISTS = 10,
+  BPF_CORE_ENUMVAL_VALUE = 11,
+};
+struct bpf_core_relo {
+  __u32 insn_off;
+  __u32 type_id;
+  __u32 access_str_off;
+  enum bpf_core_relo_kind kind;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btf.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btf.h
index f22d637..fc57d3c 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btf.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btf.h
@@ -42,27 +42,32 @@
     __u32 type;
   };
 };
-#define BTF_INFO_KIND(info) (((info) >> 24) & 0x0f)
+#define BTF_INFO_KIND(info) (((info) >> 24) & 0x1f)
 #define BTF_INFO_VLEN(info) ((info) & 0xffff)
 #define BTF_INFO_KFLAG(info) ((info) >> 31)
-#define BTF_KIND_UNKN 0
-#define BTF_KIND_INT 1
-#define BTF_KIND_PTR 2
-#define BTF_KIND_ARRAY 3
-#define BTF_KIND_STRUCT 4
-#define BTF_KIND_UNION 5
-#define BTF_KIND_ENUM 6
-#define BTF_KIND_FWD 7
-#define BTF_KIND_TYPEDEF 8
-#define BTF_KIND_VOLATILE 9
-#define BTF_KIND_CONST 10
-#define BTF_KIND_RESTRICT 11
-#define BTF_KIND_FUNC 12
-#define BTF_KIND_FUNC_PROTO 13
-#define BTF_KIND_VAR 14
-#define BTF_KIND_DATASEC 15
-#define BTF_KIND_MAX BTF_KIND_DATASEC
-#define NR_BTF_KINDS (BTF_KIND_MAX + 1)
+enum {
+  BTF_KIND_UNKN = 0,
+  BTF_KIND_INT = 1,
+  BTF_KIND_PTR = 2,
+  BTF_KIND_ARRAY = 3,
+  BTF_KIND_STRUCT = 4,
+  BTF_KIND_UNION = 5,
+  BTF_KIND_ENUM = 6,
+  BTF_KIND_FWD = 7,
+  BTF_KIND_TYPEDEF = 8,
+  BTF_KIND_VOLATILE = 9,
+  BTF_KIND_CONST = 10,
+  BTF_KIND_RESTRICT = 11,
+  BTF_KIND_FUNC = 12,
+  BTF_KIND_FUNC_PROTO = 13,
+  BTF_KIND_VAR = 14,
+  BTF_KIND_DATASEC = 15,
+  BTF_KIND_FLOAT = 16,
+  BTF_KIND_DECL_TAG = 17,
+  BTF_KIND_TYPE_TAG = 18,
+  NR_BTF_KINDS,
+  BTF_KIND_MAX = NR_BTF_KINDS - 1,
+};
 #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24)
 #define BTF_INT_OFFSET(VAL) (((VAL) & 0x00ff0000) >> 16)
 #define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff)
@@ -107,4 +112,7 @@
   __u32 offset;
   __u32 size;
 };
+struct btf_decl_tag {
+  __s32 component_idx;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btrfs.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btrfs.h
index c0a586c..08b96a3 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btrfs.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btrfs.h
@@ -175,6 +175,7 @@
 };
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE (1ULL << 0)
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID (1ULL << 1)
+#define BTRFS_FEATURE_COMPAT_RO_VERITY (1ULL << 2)
 #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0)
 #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
 #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
@@ -419,14 +420,16 @@
 #define BTRFS_SEND_FLAG_NO_FILE_DATA 0x1
 #define BTRFS_SEND_FLAG_OMIT_STREAM_HEADER 0x2
 #define BTRFS_SEND_FLAG_OMIT_END_CMD 0x4
-#define BTRFS_SEND_FLAG_MASK (BTRFS_SEND_FLAG_NO_FILE_DATA | BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | BTRFS_SEND_FLAG_OMIT_END_CMD)
+#define BTRFS_SEND_FLAG_VERSION 0x8
+#define BTRFS_SEND_FLAG_MASK (BTRFS_SEND_FLAG_NO_FILE_DATA | BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | BTRFS_SEND_FLAG_OMIT_END_CMD | BTRFS_SEND_FLAG_VERSION)
 struct btrfs_ioctl_send_args {
   __s64 send_fd;
   __u64 clone_sources_count;
   __u64 __user * clone_sources;
   __u64 parent_root;
   __u64 flags;
-  __u64 reserved[4];
+  __u32 version;
+  __u8 reserved[28];
 };
 struct btrfs_ioctl_get_subvol_info_args {
   __u64 treeid;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
index 4e36c37..0476733 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
@@ -53,6 +53,8 @@
 #define BTRFS_INODE_REF_KEY 12
 #define BTRFS_INODE_EXTREF_KEY 13
 #define BTRFS_XATTR_ITEM_KEY 24
+#define BTRFS_VERITY_DESC_ITEM_KEY 36
+#define BTRFS_VERITY_MERKLE_ITEM_KEY 37
 #define BTRFS_ORPHAN_ITEM_KEY 48
 #define BTRFS_DIR_LOG_ITEM_KEY 60
 #define BTRFS_DIR_LOG_INDEX_KEY 72
@@ -424,4 +426,9 @@
   __le64 rsv_rfer;
   __le64 rsv_excl;
 } __attribute__((__packed__));
+struct btrfs_verity_descriptor_item {
+  __le64 size;
+  __le64 reserved[2];
+  __u8 encryption;
+} __attribute__((__packed__));
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
index c0ddccc..b6c978b 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
@@ -24,6 +24,7 @@
 #ifndef __BIG_ENDIAN_BITFIELD
 #define __BIG_ENDIAN_BITFIELD
 #endif
+#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 #define __constant_htonl(x) ((__force __be32) (__u32) (x))
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
index ea00092..a272d4d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
@@ -24,6 +24,7 @@
 #ifndef __LITTLE_ENDIAN_BITFIELD
 #define __LITTLE_ENDIAN_BITFIELD
 #endif
+#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 #define __constant_htonl(x) ((__force __be32) ___constant_swab32((x)))
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can.h
index 59fc31e..30eeca2 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can.h
@@ -48,6 +48,7 @@
 };
 #define CANFD_BRS 0x01
 #define CANFD_ESI 0x02
+#define CANFD_FDF 0x04
 struct canfd_frame {
   canid_t can_id;
   __u8 len;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can/j1939.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can/j1939.h
index 531a222..42dbf15 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can/j1939.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can/j1939.h
@@ -50,10 +50,19 @@
 enum {
   J1939_NLA_PAD,
   J1939_NLA_BYTES_ACKED,
+  J1939_NLA_TOTAL_SIZE,
+  J1939_NLA_PGN,
+  J1939_NLA_SRC_NAME,
+  J1939_NLA_DEST_NAME,
+  J1939_NLA_SRC_ADDR,
+  J1939_NLA_DEST_ADDR,
 };
 enum {
   J1939_EE_INFO_NONE,
   J1939_EE_INFO_TX_ABORT,
+  J1939_EE_INFO_RX_RTS,
+  J1939_EE_INFO_RX_DPO,
+  J1939_EE_INFO_RX_ABORT,
 };
 struct j1939_filter {
   name_t name;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can/netlink.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can/netlink.h
index 3e6551d..f4086c0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can/netlink.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/can/netlink.h
@@ -69,6 +69,8 @@
 #define CAN_CTRLMODE_PRESUME_ACK 0x40
 #define CAN_CTRLMODE_FD_NON_ISO 0x80
 #define CAN_CTRLMODE_CC_LEN8_DLC 0x100
+#define CAN_CTRLMODE_TDC_AUTO 0x200
+#define CAN_CTRLMODE_TDC_MANUAL 0x400
 struct can_device_stats {
   __u32 bus_error;
   __u32 error_warning;
@@ -94,8 +96,30 @@
   IFLA_CAN_BITRATE_CONST,
   IFLA_CAN_DATA_BITRATE_CONST,
   IFLA_CAN_BITRATE_MAX,
-  __IFLA_CAN_MAX
+  IFLA_CAN_TDC,
+  IFLA_CAN_CTRLMODE_EXT,
+  __IFLA_CAN_MAX,
+  IFLA_CAN_MAX = __IFLA_CAN_MAX - 1
 };
-#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)
+enum {
+  IFLA_CAN_TDC_UNSPEC,
+  IFLA_CAN_TDC_TDCV_MIN,
+  IFLA_CAN_TDC_TDCV_MAX,
+  IFLA_CAN_TDC_TDCO_MIN,
+  IFLA_CAN_TDC_TDCO_MAX,
+  IFLA_CAN_TDC_TDCF_MIN,
+  IFLA_CAN_TDC_TDCF_MAX,
+  IFLA_CAN_TDC_TDCV,
+  IFLA_CAN_TDC_TDCO,
+  IFLA_CAN_TDC_TDCF,
+  __IFLA_CAN_TDC,
+  IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1
+};
+enum {
+  IFLA_CAN_CTRLMODE_UNSPEC,
+  IFLA_CAN_CTRLMODE_SUPPORTED,
+  __IFLA_CAN_CTRLMODE,
+  IFLA_CAN_CTRLMODE_MAX = __IFLA_CAN_CTRLMODE - 1
+};
 #define CAN_TERMINATION_DISABLED 0
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cdrom.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cdrom.h
index 8f1c2f0..0fe0727 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cdrom.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cdrom.h
@@ -67,6 +67,7 @@
 #define CDROM_SEND_PACKET 0x5393
 #define CDROM_NEXT_WRITABLE 0x5394
 #define CDROM_LAST_WRITTEN 0x5395
+#define CDROM_TIMED_MEDIA_CHANGE 0x5396
 struct cdrom_msf0 {
   __u8 minute;
   __u8 second;
@@ -160,6 +161,11 @@
     void __user * unused;
   };
 };
+struct cdrom_timed_media_change_info {
+  __s64 last_media_change;
+  __u64 media_flags;
+};
+#define MEDIA_CHANGED_FLAG 0x1
 #define CD_MINS 74
 #define CD_SECS 60
 #define CD_FRAMES 75
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cec.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cec.h
index 238fa0a..b90dc49 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cec.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cec.h
@@ -262,7 +262,7 @@
 #define CEC_OP_REC_SEQ_WEDNESDAY 0x08
 #define CEC_OP_REC_SEQ_THURSDAY 0x10
 #define CEC_OP_REC_SEQ_FRIDAY 0x20
-#define CEC_OP_REC_SEQ_SATERDAY 0x40
+#define CEC_OP_REC_SEQ_SATURDAY 0x40
 #define CEC_OP_REC_SEQ_ONCE_ONLY 0x00
 #define CEC_MSG_CLEAR_DIGITAL_TIMER 0x99
 #define CEC_MSG_CLEAR_EXT_TIMER 0xa1
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/comedi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/comedi.h
new file mode 100644
index 0000000..e0d015a
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/comedi.h
@@ -0,0 +1,669 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 _COMEDI_H
+#define _COMEDI_H
+#define COMEDI_MAJORVERSION 0
+#define COMEDI_MINORVERSION 7
+#define COMEDI_MICROVERSION 76
+#define VERSION "0.7.76"
+#define COMEDI_MAJOR 98
+#define COMEDI_NDEVICES 16
+#define COMEDI_NDEVCONFOPTS 32
+#define COMEDI_DEVCONF_AUX_DATA3_LENGTH 25
+#define COMEDI_DEVCONF_AUX_DATA2_LENGTH 26
+#define COMEDI_DEVCONF_AUX_DATA1_LENGTH 27
+#define COMEDI_DEVCONF_AUX_DATA0_LENGTH 28
+#define COMEDI_DEVCONF_AUX_DATA_HI 29
+#define COMEDI_DEVCONF_AUX_DATA_LO 30
+#define COMEDI_DEVCONF_AUX_DATA_LENGTH 31
+#define COMEDI_NAMELEN 20
+#define CR_PACK(chan,rng,aref) ((((aref) & 0x3) << 24) | (((rng) & 0xff) << 16) | (chan))
+#define CR_PACK_FLAGS(chan,range,aref,flags) (CR_PACK(chan, range, aref) | ((flags) & CR_FLAGS_MASK))
+#define CR_CHAN(a) ((a) & 0xffff)
+#define CR_RANGE(a) (((a) >> 16) & 0xff)
+#define CR_AREF(a) (((a) >> 24) & 0x03)
+#define CR_FLAGS_MASK 0xfc000000
+#define CR_ALT_FILTER 0x04000000
+#define CR_DITHER CR_ALT_FILTER
+#define CR_DEGLITCH CR_ALT_FILTER
+#define CR_ALT_SOURCE 0x08000000
+#define CR_EDGE 0x40000000
+#define CR_INVERT 0x80000000
+#define AREF_GROUND 0x00
+#define AREF_COMMON 0x01
+#define AREF_DIFF 0x02
+#define AREF_OTHER 0x03
+#define GPCT_RESET 0x0001
+#define GPCT_SET_SOURCE 0x0002
+#define GPCT_SET_GATE 0x0004
+#define GPCT_SET_DIRECTION 0x0008
+#define GPCT_SET_OPERATION 0x0010
+#define GPCT_ARM 0x0020
+#define GPCT_DISARM 0x0040
+#define GPCT_GET_INT_CLK_FRQ 0x0080
+#define GPCT_INT_CLOCK 0x0001
+#define GPCT_EXT_PIN 0x0002
+#define GPCT_NO_GATE 0x0004
+#define GPCT_UP 0x0008
+#define GPCT_DOWN 0x0010
+#define GPCT_HWUD 0x0020
+#define GPCT_SIMPLE_EVENT 0x0040
+#define GPCT_SINGLE_PERIOD 0x0080
+#define GPCT_SINGLE_PW 0x0100
+#define GPCT_CONT_PULSE_OUT 0x0200
+#define GPCT_SINGLE_PULSE_OUT 0x0400
+#define INSN_MASK_WRITE 0x8000000
+#define INSN_MASK_READ 0x4000000
+#define INSN_MASK_SPECIAL 0x2000000
+#define INSN_READ (0 | INSN_MASK_READ)
+#define INSN_WRITE (1 | INSN_MASK_WRITE)
+#define INSN_BITS (2 | INSN_MASK_READ | INSN_MASK_WRITE)
+#define INSN_CONFIG (3 | INSN_MASK_READ | INSN_MASK_WRITE)
+#define INSN_DEVICE_CONFIG (INSN_CONFIG | INSN_MASK_SPECIAL)
+#define INSN_GTOD (4 | INSN_MASK_READ | INSN_MASK_SPECIAL)
+#define INSN_WAIT (5 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
+#define INSN_INTTRIG (6 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
+#define CMDF_BOGUS 0x00000001
+#define CMDF_PRIORITY 0x00000008
+#define CMDF_WAKE_EOS 0x00000020
+#define CMDF_WRITE 0x00000040
+#define CMDF_RAWDATA 0x00000080
+#define CMDF_ROUND_MASK 0x00030000
+#define CMDF_ROUND_NEAREST 0x00000000
+#define CMDF_ROUND_DOWN 0x00010000
+#define CMDF_ROUND_UP 0x00020000
+#define CMDF_ROUND_UP_NEXT 0x00030000
+#define COMEDI_EV_START 0x00040000
+#define COMEDI_EV_SCAN_BEGIN 0x00080000
+#define COMEDI_EV_CONVERT 0x00100000
+#define COMEDI_EV_SCAN_END 0x00200000
+#define COMEDI_EV_STOP 0x00400000
+#define TRIG_BOGUS CMDF_BOGUS
+#define TRIG_RT CMDF_PRIORITY
+#define TRIG_WAKE_EOS CMDF_WAKE_EOS
+#define TRIG_WRITE CMDF_WRITE
+#define TRIG_ROUND_MASK CMDF_ROUND_MASK
+#define TRIG_ROUND_NEAREST CMDF_ROUND_NEAREST
+#define TRIG_ROUND_DOWN CMDF_ROUND_DOWN
+#define TRIG_ROUND_UP CMDF_ROUND_UP
+#define TRIG_ROUND_UP_NEXT CMDF_ROUND_UP_NEXT
+#define TRIG_ANY 0xffffffff
+#define TRIG_INVALID 0x00000000
+#define TRIG_NONE 0x00000001
+#define TRIG_NOW 0x00000002
+#define TRIG_FOLLOW 0x00000004
+#define TRIG_TIME 0x00000008
+#define TRIG_TIMER 0x00000010
+#define TRIG_COUNT 0x00000020
+#define TRIG_EXT 0x00000040
+#define TRIG_INT 0x00000080
+#define TRIG_OTHER 0x00000100
+#define SDF_BUSY 0x0001
+#define SDF_BUSY_OWNER 0x0002
+#define SDF_LOCKED 0x0004
+#define SDF_LOCK_OWNER 0x0008
+#define SDF_MAXDATA 0x0010
+#define SDF_FLAGS 0x0020
+#define SDF_RANGETYPE 0x0040
+#define SDF_PWM_COUNTER 0x0080
+#define SDF_PWM_HBRIDGE 0x0100
+#define SDF_CMD 0x1000
+#define SDF_SOFT_CALIBRATED 0x2000
+#define SDF_CMD_WRITE 0x4000
+#define SDF_CMD_READ 0x8000
+#define SDF_READABLE 0x00010000
+#define SDF_WRITABLE 0x00020000
+#define SDF_WRITEABLE SDF_WRITABLE
+#define SDF_INTERNAL 0x00040000
+#define SDF_GROUND 0x00100000
+#define SDF_COMMON 0x00200000
+#define SDF_DIFF 0x00400000
+#define SDF_OTHER 0x00800000
+#define SDF_DITHER 0x01000000
+#define SDF_DEGLITCH 0x02000000
+#define SDF_MMAP 0x04000000
+#define SDF_RUNNING 0x08000000
+#define SDF_LSAMPL 0x10000000
+#define SDF_PACKED 0x20000000
+enum comedi_subdevice_type {
+  COMEDI_SUBD_UNUSED,
+  COMEDI_SUBD_AI,
+  COMEDI_SUBD_AO,
+  COMEDI_SUBD_DI,
+  COMEDI_SUBD_DO,
+  COMEDI_SUBD_DIO,
+  COMEDI_SUBD_COUNTER,
+  COMEDI_SUBD_TIMER,
+  COMEDI_SUBD_MEMORY,
+  COMEDI_SUBD_CALIB,
+  COMEDI_SUBD_PROC,
+  COMEDI_SUBD_SERIAL,
+  COMEDI_SUBD_PWM
+};
+enum comedi_io_direction {
+  COMEDI_INPUT = 0,
+  COMEDI_OUTPUT = 1,
+  COMEDI_OPENDRAIN = 2
+};
+enum configuration_ids {
+  INSN_CONFIG_DIO_INPUT = COMEDI_INPUT,
+  INSN_CONFIG_DIO_OUTPUT = COMEDI_OUTPUT,
+  INSN_CONFIG_DIO_OPENDRAIN = COMEDI_OPENDRAIN,
+  INSN_CONFIG_ANALOG_TRIG = 16,
+  INSN_CONFIG_ALT_SOURCE = 20,
+  INSN_CONFIG_DIGITAL_TRIG = 21,
+  INSN_CONFIG_BLOCK_SIZE = 22,
+  INSN_CONFIG_TIMER_1 = 23,
+  INSN_CONFIG_FILTER = 24,
+  INSN_CONFIG_CHANGE_NOTIFY = 25,
+  INSN_CONFIG_SERIAL_CLOCK = 26,
+  INSN_CONFIG_BIDIRECTIONAL_DATA = 27,
+  INSN_CONFIG_DIO_QUERY = 28,
+  INSN_CONFIG_PWM_OUTPUT = 29,
+  INSN_CONFIG_GET_PWM_OUTPUT = 30,
+  INSN_CONFIG_ARM = 31,
+  INSN_CONFIG_DISARM = 32,
+  INSN_CONFIG_GET_COUNTER_STATUS = 33,
+  INSN_CONFIG_RESET = 34,
+  INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR = 1001,
+  INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR = 1002,
+  INSN_CONFIG_GPCT_QUADRATURE_ENCODER = 1003,
+  INSN_CONFIG_SET_GATE_SRC = 2001,
+  INSN_CONFIG_GET_GATE_SRC = 2002,
+  INSN_CONFIG_SET_CLOCK_SRC = 2003,
+  INSN_CONFIG_GET_CLOCK_SRC = 2004,
+  INSN_CONFIG_SET_OTHER_SRC = 2005,
+  INSN_CONFIG_GET_HARDWARE_BUFFER_SIZE = 2006,
+  INSN_CONFIG_SET_COUNTER_MODE = 4097,
+  INSN_CONFIG_8254_SET_MODE = INSN_CONFIG_SET_COUNTER_MODE,
+  INSN_CONFIG_8254_READ_STATUS = 4098,
+  INSN_CONFIG_SET_ROUTING = 4099,
+  INSN_CONFIG_GET_ROUTING = 4109,
+  INSN_CONFIG_PWM_SET_PERIOD = 5000,
+  INSN_CONFIG_PWM_GET_PERIOD = 5001,
+  INSN_CONFIG_GET_PWM_STATUS = 5002,
+  INSN_CONFIG_PWM_SET_H_BRIDGE = 5003,
+  INSN_CONFIG_PWM_GET_H_BRIDGE = 5004,
+  INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS = 5005,
+};
+enum device_config_route_ids {
+  INSN_DEVICE_CONFIG_TEST_ROUTE = 0,
+  INSN_DEVICE_CONFIG_CONNECT_ROUTE = 1,
+  INSN_DEVICE_CONFIG_DISCONNECT_ROUTE = 2,
+  INSN_DEVICE_CONFIG_GET_ROUTES = 3,
+};
+enum comedi_digital_trig_op {
+  COMEDI_DIGITAL_TRIG_DISABLE = 0,
+  COMEDI_DIGITAL_TRIG_ENABLE_EDGES = 1,
+  COMEDI_DIGITAL_TRIG_ENABLE_LEVELS = 2
+};
+enum comedi_support_level {
+  COMEDI_UNKNOWN_SUPPORT = 0,
+  COMEDI_SUPPORTED,
+  COMEDI_UNSUPPORTED
+};
+enum comedi_counter_status_flags {
+  COMEDI_COUNTER_ARMED = 0x1,
+  COMEDI_COUNTER_COUNTING = 0x2,
+  COMEDI_COUNTER_TERMINAL_COUNT = 0x4,
+};
+#define CIO 'd'
+#define COMEDI_DEVCONFIG _IOW(CIO, 0, struct comedi_devconfig)
+#define COMEDI_DEVINFO _IOR(CIO, 1, struct comedi_devinfo)
+#define COMEDI_SUBDINFO _IOR(CIO, 2, struct comedi_subdinfo)
+#define COMEDI_CHANINFO _IOR(CIO, 3, struct comedi_chaninfo)
+#define COMEDI_LOCK _IO(CIO, 5)
+#define COMEDI_UNLOCK _IO(CIO, 6)
+#define COMEDI_CANCEL _IO(CIO, 7)
+#define COMEDI_RANGEINFO _IOR(CIO, 8, struct comedi_rangeinfo)
+#define COMEDI_CMD _IOR(CIO, 9, struct comedi_cmd)
+#define COMEDI_CMDTEST _IOR(CIO, 10, struct comedi_cmd)
+#define COMEDI_INSNLIST _IOR(CIO, 11, struct comedi_insnlist)
+#define COMEDI_INSN _IOR(CIO, 12, struct comedi_insn)
+#define COMEDI_BUFCONFIG _IOR(CIO, 13, struct comedi_bufconfig)
+#define COMEDI_BUFINFO _IOWR(CIO, 14, struct comedi_bufinfo)
+#define COMEDI_POLL _IO(CIO, 15)
+#define COMEDI_SETRSUBD _IO(CIO, 16)
+#define COMEDI_SETWSUBD _IO(CIO, 17)
+struct comedi_insn {
+  unsigned int insn;
+  unsigned int n;
+  unsigned int __user * data;
+  unsigned int subdev;
+  unsigned int chanspec;
+  unsigned int unused[3];
+};
+struct comedi_insnlist {
+  unsigned int n_insns;
+  struct comedi_insn __user * insns;
+};
+struct comedi_cmd {
+  unsigned int subdev;
+  unsigned int flags;
+  unsigned int start_src;
+  unsigned int start_arg;
+  unsigned int scan_begin_src;
+  unsigned int scan_begin_arg;
+  unsigned int convert_src;
+  unsigned int convert_arg;
+  unsigned int scan_end_src;
+  unsigned int scan_end_arg;
+  unsigned int stop_src;
+  unsigned int stop_arg;
+  unsigned int * chanlist;
+  unsigned int chanlist_len;
+  short __user * data;
+  unsigned int data_len;
+};
+struct comedi_chaninfo {
+  unsigned int subdev;
+  unsigned int __user * maxdata_list;
+  unsigned int __user * flaglist;
+  unsigned int __user * rangelist;
+  unsigned int unused[4];
+};
+struct comedi_rangeinfo {
+  unsigned int range_type;
+  void __user * range_ptr;
+};
+struct comedi_krange {
+  int min;
+  int max;
+  unsigned int flags;
+};
+struct comedi_subdinfo {
+  unsigned int type;
+  unsigned int n_chan;
+  unsigned int subd_flags;
+  unsigned int timer_type;
+  unsigned int len_chanlist;
+  unsigned int maxdata;
+  unsigned int flags;
+  unsigned int range_type;
+  unsigned int settling_time_0;
+  unsigned int insn_bits_support;
+  unsigned int unused[8];
+};
+struct comedi_devinfo {
+  unsigned int version_code;
+  unsigned int n_subdevs;
+  char driver_name[COMEDI_NAMELEN];
+  char board_name[COMEDI_NAMELEN];
+  int read_subdevice;
+  int write_subdevice;
+  int unused[30];
+};
+struct comedi_devconfig {
+  char board_name[COMEDI_NAMELEN];
+  int options[COMEDI_NDEVCONFOPTS];
+};
+struct comedi_bufconfig {
+  unsigned int subdevice;
+  unsigned int flags;
+  unsigned int maximum_size;
+  unsigned int size;
+  unsigned int unused[4];
+};
+struct comedi_bufinfo {
+  unsigned int subdevice;
+  unsigned int bytes_read;
+  unsigned int buf_write_ptr;
+  unsigned int buf_read_ptr;
+  unsigned int buf_write_count;
+  unsigned int buf_read_count;
+  unsigned int bytes_written;
+  unsigned int unused[4];
+};
+#define __RANGE(a,b) ((((a) & 0xffff) << 16) | ((b) & 0xffff))
+#define RANGE_OFFSET(a) (((a) >> 16) & 0xffff)
+#define RANGE_LENGTH(b) ((b) & 0xffff)
+#define RF_UNIT(flags) ((flags) & 0xff)
+#define RF_EXTERNAL 0x100
+#define UNIT_volt 0
+#define UNIT_mA 1
+#define UNIT_none 2
+#define COMEDI_MIN_SPEED 0xffffffffu
+enum i8254_mode {
+  I8254_MODE0 = (0 << 1),
+  I8254_MODE1 = (1 << 1),
+  I8254_MODE2 = (2 << 1),
+  I8254_MODE3 = (3 << 1),
+  I8254_MODE4 = (4 << 1),
+  I8254_MODE5 = (5 << 1),
+  I8254_BCD = 1,
+  I8254_BINARY = 0
+};
+#define NI_NAMES_BASE 0x8000u
+#define _TERM_N(base,n,x) ((base) + ((x) & ((n) - 1)))
+#define NI_PFI(x) _TERM_N(NI_NAMES_BASE, 64, x)
+#define TRIGGER_LINE(x) _TERM_N(NI_PFI(- 1) + 1, 8, x)
+#define NI_RTSI_BRD(x) _TERM_N(TRIGGER_LINE(- 1) + 1, 4, x)
+#define NI_MAX_COUNTERS 8
+#define NI_COUNTER_NAMES_BASE (NI_RTSI_BRD(- 1) + 1)
+#define NI_CtrSource(x) _TERM_N(NI_COUNTER_NAMES_BASE, NI_MAX_COUNTERS, x)
+#define NI_GATES_NAMES_BASE (NI_CtrSource(- 1) + 1)
+#define NI_CtrGate(x) _TERM_N(NI_GATES_NAMES_BASE, NI_MAX_COUNTERS, x)
+#define NI_CtrAux(x) _TERM_N(NI_CtrGate(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrA(x) _TERM_N(NI_CtrAux(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrB(x) _TERM_N(NI_CtrA(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrZ(x) _TERM_N(NI_CtrB(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_GATES_NAMES_MAX NI_CtrZ(- 1)
+#define NI_CtrArmStartTrigger(x) _TERM_N(NI_CtrZ(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrInternalOutput(x) _TERM_N(NI_CtrArmStartTrigger(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrOut(x) _TERM_N(NI_CtrInternalOutput(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrSampleClock(x) _TERM_N(NI_CtrOut(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_COUNTER_NAMES_MAX NI_CtrSampleClock(- 1)
+enum ni_common_signal_names {
+  PXI_Star = NI_COUNTER_NAMES_MAX + 1,
+  PXI_Clk10,
+  PXIe_Clk100,
+  NI_AI_SampleClock,
+  NI_AI_SampleClockTimebase,
+  NI_AI_StartTrigger,
+  NI_AI_ReferenceTrigger,
+  NI_AI_ConvertClock,
+  NI_AI_ConvertClockTimebase,
+  NI_AI_PauseTrigger,
+  NI_AI_HoldCompleteEvent,
+  NI_AI_HoldComplete,
+  NI_AI_ExternalMUXClock,
+  NI_AI_STOP,
+  NI_AO_SampleClock,
+  NI_AO_SampleClockTimebase,
+  NI_AO_StartTrigger,
+  NI_AO_PauseTrigger,
+  NI_DI_SampleClock,
+  NI_DI_SampleClockTimebase,
+  NI_DI_StartTrigger,
+  NI_DI_ReferenceTrigger,
+  NI_DI_PauseTrigger,
+  NI_DI_InputBufferFull,
+  NI_DI_ReadyForStartEvent,
+  NI_DI_ReadyForTransferEventBurst,
+  NI_DI_ReadyForTransferEventPipelined,
+  NI_DO_SampleClock,
+  NI_DO_SampleClockTimebase,
+  NI_DO_StartTrigger,
+  NI_DO_PauseTrigger,
+  NI_DO_OutputBufferFull,
+  NI_DO_DataActiveEvent,
+  NI_DO_ReadyForStartEvent,
+  NI_DO_ReadyForTransferEvent,
+  NI_MasterTimebase,
+  NI_20MHzTimebase,
+  NI_80MHzTimebase,
+  NI_100MHzTimebase,
+  NI_200MHzTimebase,
+  NI_100kHzTimebase,
+  NI_10MHzRefClock,
+  NI_FrequencyOutput,
+  NI_ChangeDetectionEvent,
+  NI_AnalogComparisonEvent,
+  NI_WatchdogExpiredEvent,
+  NI_WatchdogExpirationTrigger,
+  NI_SCXI_Trig1,
+  NI_LogicLow,
+  NI_LogicHigh,
+  NI_ExternalStrobe,
+  NI_PFI_DO,
+  NI_CaseGround,
+  NI_RGOUT0,
+  _NI_NAMES_MAX_PLUS_1,
+  NI_NUM_NAMES = _NI_NAMES_MAX_PLUS_1 - NI_NAMES_BASE,
+};
+#define NI_USUAL_PFI_SELECT(x) (((x) < 10) ? (0x1 + (x)) : (0xb + (x)))
+#define NI_USUAL_RTSI_SELECT(x) (((x) < 7) ? (0xb + (x)) : 0x1b)
+#define NI_GPCT_COUNTING_MODE_SHIFT 16
+#define NI_GPCT_INDEX_PHASE_BITSHIFT 20
+#define NI_GPCT_COUNTING_DIRECTION_SHIFT 24
+enum ni_gpct_mode_bits {
+  NI_GPCT_GATE_ON_BOTH_EDGES_BIT = 0x4,
+  NI_GPCT_EDGE_GATE_MODE_MASK = 0x18,
+  NI_GPCT_EDGE_GATE_STARTS_STOPS_BITS = 0x0,
+  NI_GPCT_EDGE_GATE_STOPS_STARTS_BITS = 0x8,
+  NI_GPCT_EDGE_GATE_STARTS_BITS = 0x10,
+  NI_GPCT_EDGE_GATE_NO_STARTS_NO_STOPS_BITS = 0x18,
+  NI_GPCT_STOP_MODE_MASK = 0x60,
+  NI_GPCT_STOP_ON_GATE_BITS = 0x00,
+  NI_GPCT_STOP_ON_GATE_OR_TC_BITS = 0x20,
+  NI_GPCT_STOP_ON_GATE_OR_SECOND_TC_BITS = 0x40,
+  NI_GPCT_LOAD_B_SELECT_BIT = 0x80,
+  NI_GPCT_OUTPUT_MODE_MASK = 0x300,
+  NI_GPCT_OUTPUT_TC_PULSE_BITS = 0x100,
+  NI_GPCT_OUTPUT_TC_TOGGLE_BITS = 0x200,
+  NI_GPCT_OUTPUT_TC_OR_GATE_TOGGLE_BITS = 0x300,
+  NI_GPCT_HARDWARE_DISARM_MASK = 0xc00,
+  NI_GPCT_NO_HARDWARE_DISARM_BITS = 0x000,
+  NI_GPCT_DISARM_AT_TC_BITS = 0x400,
+  NI_GPCT_DISARM_AT_GATE_BITS = 0x800,
+  NI_GPCT_DISARM_AT_TC_OR_GATE_BITS = 0xc00,
+  NI_GPCT_LOADING_ON_TC_BIT = 0x1000,
+  NI_GPCT_LOADING_ON_GATE_BIT = 0x4000,
+  NI_GPCT_COUNTING_MODE_MASK = 0x7 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_NORMAL_BITS = 0x0 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X1_BITS = 0x1 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X2_BITS = 0x2 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X4_BITS = 0x3 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_TWO_PULSE_BITS = 0x4 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_SYNC_SOURCE_BITS = 0x6 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_INDEX_PHASE_MASK = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_LOW_A_LOW_B_BITS = 0x0 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_LOW_A_HIGH_B_BITS = 0x1 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_HIGH_A_LOW_B_BITS = 0x2 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_HIGH_A_HIGH_B_BITS = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_ENABLE_BIT = 0x400000,
+  NI_GPCT_COUNTING_DIRECTION_MASK = 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_DOWN_BITS = 0x00 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_UP_BITS = 0x1 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_HW_UP_DOWN_BITS = 0x2 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_HW_GATE_BITS = 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_RELOAD_SOURCE_MASK = 0xc000000,
+  NI_GPCT_RELOAD_SOURCE_FIXED_BITS = 0x0,
+  NI_GPCT_RELOAD_SOURCE_SWITCHING_BITS = 0x4000000,
+  NI_GPCT_RELOAD_SOURCE_GATE_SELECT_BITS = 0x8000000,
+  NI_GPCT_OR_GATE_BIT = 0x10000000,
+  NI_GPCT_INVERT_OUTPUT_BIT = 0x20000000
+};
+enum ni_gpct_clock_source_bits {
+  NI_GPCT_CLOCK_SRC_SELECT_MASK = 0x3f,
+  NI_GPCT_TIMEBASE_1_CLOCK_SRC_BITS = 0x0,
+  NI_GPCT_TIMEBASE_2_CLOCK_SRC_BITS = 0x1,
+  NI_GPCT_TIMEBASE_3_CLOCK_SRC_BITS = 0x2,
+  NI_GPCT_LOGIC_LOW_CLOCK_SRC_BITS = 0x3,
+  NI_GPCT_NEXT_GATE_CLOCK_SRC_BITS = 0x4,
+  NI_GPCT_NEXT_TC_CLOCK_SRC_BITS = 0x5,
+  NI_GPCT_SOURCE_PIN_i_CLOCK_SRC_BITS = 0x6,
+  NI_GPCT_PXI10_CLOCK_SRC_BITS = 0x7,
+  NI_GPCT_PXI_STAR_TRIGGER_CLOCK_SRC_BITS = 0x8,
+  NI_GPCT_ANALOG_TRIGGER_OUT_CLOCK_SRC_BITS = 0x9,
+  NI_GPCT_PRESCALE_MODE_CLOCK_SRC_MASK = 0x30000000,
+  NI_GPCT_NO_PRESCALE_CLOCK_SRC_BITS = 0x0,
+  NI_GPCT_PRESCALE_X2_CLOCK_SRC_BITS = 0x10000000,
+  NI_GPCT_PRESCALE_X8_CLOCK_SRC_BITS = 0x20000000,
+  NI_GPCT_INVERT_CLOCK_SRC_BIT = 0x80000000
+};
+#define NI_GPCT_SOURCE_PIN_CLOCK_SRC_BITS(x) (0x10 + (x))
+#define NI_GPCT_RTSI_CLOCK_SRC_BITS(x) (0x18 + (x))
+#define NI_GPCT_PFI_CLOCK_SRC_BITS(x) (0x20 + (x))
+enum ni_gpct_gate_select {
+  NI_GPCT_TIMESTAMP_MUX_GATE_SELECT = 0x0,
+  NI_GPCT_AI_START2_GATE_SELECT = 0x12,
+  NI_GPCT_PXI_STAR_TRIGGER_GATE_SELECT = 0x13,
+  NI_GPCT_NEXT_OUT_GATE_SELECT = 0x14,
+  NI_GPCT_AI_START1_GATE_SELECT = 0x1c,
+  NI_GPCT_NEXT_SOURCE_GATE_SELECT = 0x1d,
+  NI_GPCT_ANALOG_TRIGGER_OUT_GATE_SELECT = 0x1e,
+  NI_GPCT_LOGIC_LOW_GATE_SELECT = 0x1f,
+  NI_GPCT_SOURCE_PIN_i_GATE_SELECT = 0x100,
+  NI_GPCT_GATE_PIN_i_GATE_SELECT = 0x101,
+  NI_GPCT_UP_DOWN_PIN_i_GATE_SELECT = 0x201,
+  NI_GPCT_SELECTED_GATE_GATE_SELECT = 0x21e,
+  NI_GPCT_DISABLED_GATE_SELECT = 0x8000,
+};
+#define NI_GPCT_GATE_PIN_GATE_SELECT(x) (0x102 + (x))
+#define NI_GPCT_RTSI_GATE_SELECT(x) NI_USUAL_RTSI_SELECT(x)
+#define NI_GPCT_PFI_GATE_SELECT(x) NI_USUAL_PFI_SELECT(x)
+#define NI_GPCT_UP_DOWN_PIN_GATE_SELECT(x) (0x202 + (x))
+enum ni_gpct_other_index {
+  NI_GPCT_SOURCE_ENCODER_A,
+  NI_GPCT_SOURCE_ENCODER_B,
+  NI_GPCT_SOURCE_ENCODER_Z
+};
+enum ni_gpct_other_select {
+  NI_GPCT_DISABLED_OTHER_SELECT = 0x8000,
+};
+#define NI_GPCT_PFI_OTHER_SELECT(x) NI_USUAL_PFI_SELECT(x)
+enum ni_gpct_arm_source {
+  NI_GPCT_ARM_IMMEDIATE = 0x0,
+  NI_GPCT_ARM_PAIRED_IMMEDIATE = 0x1,
+  NI_GPCT_HW_ARM = 0x1000,
+  NI_GPCT_ARM_UNKNOWN = NI_GPCT_HW_ARM,
+};
+enum ni_gpct_filter_select {
+  NI_GPCT_FILTER_OFF = 0x0,
+  NI_GPCT_FILTER_TIMEBASE_3_SYNC = 0x1,
+  NI_GPCT_FILTER_100x_TIMEBASE_1 = 0x2,
+  NI_GPCT_FILTER_20x_TIMEBASE_1 = 0x3,
+  NI_GPCT_FILTER_10x_TIMEBASE_1 = 0x4,
+  NI_GPCT_FILTER_2x_TIMEBASE_1 = 0x5,
+  NI_GPCT_FILTER_2x_TIMEBASE_3 = 0x6
+};
+enum ni_pfi_filter_select {
+  NI_PFI_FILTER_OFF = 0x0,
+  NI_PFI_FILTER_125ns = 0x1,
+  NI_PFI_FILTER_6425ns = 0x2,
+  NI_PFI_FILTER_2550us = 0x3
+};
+enum ni_mio_clock_source {
+  NI_MIO_INTERNAL_CLOCK = 0,
+  NI_MIO_RTSI_CLOCK = 1,
+  NI_MIO_PLL_PXI_STAR_TRIGGER_CLOCK = 2,
+  NI_MIO_PLL_PXI10_CLOCK = 3,
+  NI_MIO_PLL_RTSI0_CLOCK = 4
+};
+#define NI_MIO_PLL_RTSI_CLOCK(x) (NI_MIO_PLL_RTSI0_CLOCK + (x))
+enum ni_rtsi_routing {
+  NI_RTSI_OUTPUT_ADR_START1 = 0,
+  NI_RTSI_OUTPUT_ADR_START2 = 1,
+  NI_RTSI_OUTPUT_SCLKG = 2,
+  NI_RTSI_OUTPUT_DACUPDN = 3,
+  NI_RTSI_OUTPUT_DA_START1 = 4,
+  NI_RTSI_OUTPUT_G_SRC0 = 5,
+  NI_RTSI_OUTPUT_G_GATE0 = 6,
+  NI_RTSI_OUTPUT_RGOUT0 = 7,
+  NI_RTSI_OUTPUT_RTSI_BRD_0 = 8,
+  NI_RTSI_OUTPUT_RTSI_OSC = 12
+};
+#define NI_RTSI_OUTPUT_RTSI_BRD(x) (NI_RTSI_OUTPUT_RTSI_BRD_0 + (x))
+enum ni_pfi_routing {
+  NI_PFI_OUTPUT_PFI_DEFAULT = 0,
+  NI_PFI_OUTPUT_AI_START1 = 1,
+  NI_PFI_OUTPUT_AI_START2 = 2,
+  NI_PFI_OUTPUT_AI_CONVERT = 3,
+  NI_PFI_OUTPUT_G_SRC1 = 4,
+  NI_PFI_OUTPUT_G_GATE1 = 5,
+  NI_PFI_OUTPUT_AO_UPDATE_N = 6,
+  NI_PFI_OUTPUT_AO_START1 = 7,
+  NI_PFI_OUTPUT_AI_START_PULSE = 8,
+  NI_PFI_OUTPUT_G_SRC0 = 9,
+  NI_PFI_OUTPUT_G_GATE0 = 10,
+  NI_PFI_OUTPUT_EXT_STROBE = 11,
+  NI_PFI_OUTPUT_AI_EXT_MUX_CLK = 12,
+  NI_PFI_OUTPUT_GOUT0 = 13,
+  NI_PFI_OUTPUT_GOUT1 = 14,
+  NI_PFI_OUTPUT_FREQ_OUT = 15,
+  NI_PFI_OUTPUT_PFI_DO = 16,
+  NI_PFI_OUTPUT_I_ATRIG = 17,
+  NI_PFI_OUTPUT_RTSI0 = 18,
+  NI_PFI_OUTPUT_PXI_STAR_TRIGGER_IN = 26,
+  NI_PFI_OUTPUT_SCXI_TRIG1 = 27,
+  NI_PFI_OUTPUT_DIO_CHANGE_DETECT_RTSI = 28,
+  NI_PFI_OUTPUT_CDI_SAMPLE = 29,
+  NI_PFI_OUTPUT_CDO_UPDATE = 30
+};
+#define NI_PFI_OUTPUT_RTSI(x) (NI_PFI_OUTPUT_RTSI0 + (x))
+enum ni_660x_pfi_routing {
+  NI_660X_PFI_OUTPUT_COUNTER = 1,
+  NI_660X_PFI_OUTPUT_DIO = 2,
+};
+#define NI_EXT_PFI(x) (NI_USUAL_PFI_SELECT(x) - 1)
+#define NI_EXT_RTSI(x) (NI_USUAL_RTSI_SELECT(x) - 1)
+enum ni_m_series_cdio_scan_begin_src {
+  NI_CDIO_SCAN_BEGIN_SRC_GROUND = 0,
+  NI_CDIO_SCAN_BEGIN_SRC_AI_START = 18,
+  NI_CDIO_SCAN_BEGIN_SRC_AI_CONVERT = 19,
+  NI_CDIO_SCAN_BEGIN_SRC_PXI_STAR_TRIGGER = 20,
+  NI_CDIO_SCAN_BEGIN_SRC_G0_OUT = 28,
+  NI_CDIO_SCAN_BEGIN_SRC_G1_OUT = 29,
+  NI_CDIO_SCAN_BEGIN_SRC_ANALOG_TRIGGER = 30,
+  NI_CDIO_SCAN_BEGIN_SRC_AO_UPDATE = 31,
+  NI_CDIO_SCAN_BEGIN_SRC_FREQ_OUT = 32,
+  NI_CDIO_SCAN_BEGIN_SRC_DIO_CHANGE_DETECT_IRQ = 33
+};
+#define NI_CDIO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x)
+#define NI_CDIO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x)
+#define NI_AO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x)
+#define NI_AO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x)
+enum ni_freq_out_clock_source_bits {
+  NI_FREQ_OUT_TIMEBASE_1_DIV_2_CLOCK_SRC,
+  NI_FREQ_OUT_TIMEBASE_2_CLOCK_SRC
+};
+enum amplc_dio_clock_source {
+  AMPLC_DIO_CLK_CLKN,
+  AMPLC_DIO_CLK_10MHZ,
+  AMPLC_DIO_CLK_1MHZ,
+  AMPLC_DIO_CLK_100KHZ,
+  AMPLC_DIO_CLK_10KHZ,
+  AMPLC_DIO_CLK_1KHZ,
+  AMPLC_DIO_CLK_OUTNM1,
+  AMPLC_DIO_CLK_EXT,
+  AMPLC_DIO_CLK_VCC,
+  AMPLC_DIO_CLK_GND,
+  AMPLC_DIO_CLK_PAT_PRESENT,
+  AMPLC_DIO_CLK_20MHZ
+};
+enum amplc_dio_ts_clock_src {
+  AMPLC_DIO_TS_CLK_1GHZ,
+  AMPLC_DIO_TS_CLK_1MHZ,
+  AMPLC_DIO_TS_CLK_1KHZ
+};
+enum amplc_dio_gate_source {
+  AMPLC_DIO_GAT_VCC,
+  AMPLC_DIO_GAT_GND,
+  AMPLC_DIO_GAT_GATN,
+  AMPLC_DIO_GAT_NOUTNM2,
+  AMPLC_DIO_GAT_RESERVED4,
+  AMPLC_DIO_GAT_RESERVED5,
+  AMPLC_DIO_GAT_RESERVED6,
+  AMPLC_DIO_GAT_RESERVED7,
+  AMPLC_DIO_GAT_NGATN = 6,
+  AMPLC_DIO_GAT_OUTNM2,
+  AMPLC_DIO_GAT_PAT_PRESENT,
+  AMPLC_DIO_GAT_PAT_OCCURRED,
+  AMPLC_DIO_GAT_PAT_GONE,
+  AMPLC_DIO_GAT_NPAT_PRESENT,
+  AMPLC_DIO_GAT_NPAT_OCCURRED,
+  AMPLC_DIO_GAT_NPAT_GONE
+};
+enum ke_counter_clock_source {
+  KE_CLK_20MHZ,
+  KE_CLK_4MHZ,
+  KE_CLK_EXT
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/counter.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/counter.h
new file mode 100644
index 0000000..091e33d
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/counter.h
@@ -0,0 +1,93 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_COUNTER_H_
+#define _UAPI_COUNTER_H_
+#include <linux/ioctl.h>
+#include <linux/types.h>
+enum counter_component_type {
+  COUNTER_COMPONENT_NONE,
+  COUNTER_COMPONENT_SIGNAL,
+  COUNTER_COMPONENT_COUNT,
+  COUNTER_COMPONENT_FUNCTION,
+  COUNTER_COMPONENT_SYNAPSE_ACTION,
+  COUNTER_COMPONENT_EXTENSION,
+};
+enum counter_scope {
+  COUNTER_SCOPE_DEVICE,
+  COUNTER_SCOPE_SIGNAL,
+  COUNTER_SCOPE_COUNT,
+};
+struct counter_component {
+  __u8 type;
+  __u8 scope;
+  __u8 parent;
+  __u8 id;
+};
+enum counter_event_type {
+  COUNTER_EVENT_OVERFLOW,
+  COUNTER_EVENT_UNDERFLOW,
+  COUNTER_EVENT_OVERFLOW_UNDERFLOW,
+  COUNTER_EVENT_THRESHOLD,
+  COUNTER_EVENT_INDEX,
+};
+struct counter_watch {
+  struct counter_component component;
+  __u8 event;
+  __u8 channel;
+};
+#define COUNTER_ADD_WATCH_IOCTL _IOW(0x3E, 0x00, struct counter_watch)
+#define COUNTER_ENABLE_EVENTS_IOCTL _IO(0x3E, 0x01)
+#define COUNTER_DISABLE_EVENTS_IOCTL _IO(0x3E, 0x02)
+struct counter_event {
+  __aligned_u64 timestamp;
+  __aligned_u64 value;
+  struct counter_watch watch;
+  __u8 status;
+};
+enum counter_count_direction {
+  COUNTER_COUNT_DIRECTION_FORWARD,
+  COUNTER_COUNT_DIRECTION_BACKWARD,
+};
+enum counter_count_mode {
+  COUNTER_COUNT_MODE_NORMAL,
+  COUNTER_COUNT_MODE_RANGE_LIMIT,
+  COUNTER_COUNT_MODE_NON_RECYCLE,
+  COUNTER_COUNT_MODE_MODULO_N,
+};
+enum counter_function {
+  COUNTER_FUNCTION_INCREASE,
+  COUNTER_FUNCTION_DECREASE,
+  COUNTER_FUNCTION_PULSE_DIRECTION,
+  COUNTER_FUNCTION_QUADRATURE_X1_A,
+  COUNTER_FUNCTION_QUADRATURE_X1_B,
+  COUNTER_FUNCTION_QUADRATURE_X2_A,
+  COUNTER_FUNCTION_QUADRATURE_X2_B,
+  COUNTER_FUNCTION_QUADRATURE_X4,
+};
+enum counter_signal_level {
+  COUNTER_SIGNAL_LEVEL_LOW,
+  COUNTER_SIGNAL_LEVEL_HIGH,
+};
+enum counter_synapse_action {
+  COUNTER_SYNAPSE_ACTION_NONE,
+  COUNTER_SYNAPSE_ACTION_RISING_EDGE,
+  COUNTER_SYNAPSE_ACTION_FALLING_EDGE,
+  COUNTER_SYNAPSE_ACTION_BOTH_EDGES,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cxl_mem.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
index 851bd79..15e9e29 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
@@ -21,7 +21,7 @@
 #include <linux/types.h>
 #define CXL_MEM_QUERY_COMMANDS _IOR(0xCE, 1, struct cxl_mem_query_commands)
 #define CXL_MEM_SEND_COMMAND _IOWR(0xCE, 2, struct cxl_send_command)
-#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(MAX, "invalid / last command")
+#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(SET_PARTITION_INFO, "Set Partition Information"), ___C(SET_LSA, "Set Label Storage Area"), ___C(GET_ALERT_CONFIG, "Get Alert Configuration"), ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), ___C(GET_POISON, "Get Poison List"), ___C(INJECT_POISON, "Inject Poison"), ___C(CLEAR_POISON, "Clear Poison"), ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), ___C(SCAN_MEDIA, "Scan Media"), ___C(GET_SCAN_MEDIA, "Get Scan Media Results"), ___C(MAX, "invalid / last command")
 #define ___C(a,b) CXL_MEM_COMMAND_ID_ ##a
 enum {
   CXL_CMDS
@@ -30,7 +30,7 @@
 #define ___C(a,b) { b }
 static const struct {
   const char * name;
-} cxl_command_names[] = {
+} cxl_command_names[] __attribute__((__unused__)) = {
   CXL_CMDS
 };
 #undef ___C
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cyclades.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cyclades.h
index 60bc4af..c0aa7aa 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cyclades.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/cyclades.h
@@ -18,24 +18,14 @@
  ****************************************************************************/
 #ifndef _UAPI_LINUX_CYCLADES_H
 #define _UAPI_LINUX_CYCLADES_H
-#include <linux/types.h>
+#warning "Support for features provided by this header has been removed"
+#warning "Please consider updating your code"
 struct cyclades_monitor {
   unsigned long int_count;
   unsigned long char_count;
   unsigned long char_max;
   unsigned long char_last;
 };
-struct cyclades_idle_stats {
-  __kernel_old_time_t in_use;
-  __kernel_old_time_t recv_idle;
-  __kernel_old_time_t xmit_idle;
-  unsigned long recv_bytes;
-  unsigned long xmit_bytes;
-  unsigned long overruns;
-  unsigned long frame_errs;
-  unsigned long parity_errs;
-};
-#define CYCLADES_MAGIC 0x4359
 #define CYGETMON 0x435901
 #define CYGETTHRESH 0x435902
 #define CYSETTHRESH 0x435903
@@ -54,253 +44,4 @@
 #define CYGETCD1400VER 0x435910
 #define CYSETWAIT 0x435912
 #define CYGETWAIT 0x435913
-#define CZIOC ('M' << 8)
-#define CZ_NBOARDS (CZIOC | 0xfa)
-#define CZ_BOOT_START (CZIOC | 0xfb)
-#define CZ_BOOT_DATA (CZIOC | 0xfc)
-#define CZ_BOOT_END (CZIOC | 0xfd)
-#define CZ_TEST (CZIOC | 0xfe)
-#define CZ_DEF_POLL (HZ / 25)
-#define MAX_BOARD 4
-#define MAX_DEV 256
-#define CYZ_MAX_SPEED 921600
-#define CYZ_FIFO_SIZE 16
-#define CYZ_BOOT_NWORDS 0x100
-struct CYZ_BOOT_CTRL {
-  unsigned short nboard;
-  int status[MAX_BOARD];
-  int nchannel[MAX_BOARD];
-  int fw_rev[MAX_BOARD];
-  unsigned long offset;
-  unsigned long data[CYZ_BOOT_NWORDS];
-};
-#ifndef DP_WINDOW_SIZE
-#define DP_WINDOW_SIZE (0x00080000)
-#define ZE_DP_WINDOW_SIZE (0x00100000)
-#define CTRL_WINDOW_SIZE (0x00000080)
-struct CUSTOM_REG {
-  __u32 fpga_id;
-  __u32 fpga_version;
-  __u32 cpu_start;
-  __u32 cpu_stop;
-  __u32 misc_reg;
-  __u32 idt_mode;
-  __u32 uart_irq_status;
-  __u32 clear_timer0_irq;
-  __u32 clear_timer1_irq;
-  __u32 clear_timer2_irq;
-  __u32 test_register;
-  __u32 test_count;
-  __u32 timer_select;
-  __u32 pr_uart_irq_status;
-  __u32 ram_wait_state;
-  __u32 uart_wait_state;
-  __u32 timer_wait_state;
-  __u32 ack_wait_state;
-};
-struct RUNTIME_9060 {
-  __u32 loc_addr_range;
-  __u32 loc_addr_base;
-  __u32 loc_arbitr;
-  __u32 endian_descr;
-  __u32 loc_rom_range;
-  __u32 loc_rom_base;
-  __u32 loc_bus_descr;
-  __u32 loc_range_mst;
-  __u32 loc_base_mst;
-  __u32 loc_range_io;
-  __u32 pci_base_mst;
-  __u32 pci_conf_io;
-  __u32 filler1;
-  __u32 filler2;
-  __u32 filler3;
-  __u32 filler4;
-  __u32 mail_box_0;
-  __u32 mail_box_1;
-  __u32 mail_box_2;
-  __u32 mail_box_3;
-  __u32 filler5;
-  __u32 filler6;
-  __u32 filler7;
-  __u32 filler8;
-  __u32 pci_doorbell;
-  __u32 loc_doorbell;
-  __u32 intr_ctrl_stat;
-  __u32 init_ctrl;
-};
-#define WIN_RAM 0x00000001L
-#define WIN_CREG 0x14000001L
-#define TIMER_BY_1M 0x00
-#define TIMER_BY_256K 0x01
-#define TIMER_BY_128K 0x02
-#define TIMER_BY_32K 0x03
-#endif
-#ifndef ZFIRM_ID
-#define MAX_CHAN 64
-#define ID_ADDRESS 0x00000180L
-#define ZFIRM_ID 0x5557465AL
-#define ZFIRM_HLT 0x59505B5CL
-#define ZFIRM_RST 0x56040674L
-#define ZF_TINACT_DEF 1000
-#define ZF_TINACT ZF_TINACT_DEF
-struct FIRM_ID {
-  __u32 signature;
-  __u32 zfwctrl_addr;
-};
-#define C_OS_LINUX 0x00000030
-#define C_CH_DISABLE 0x00000000
-#define C_CH_TXENABLE 0x00000001
-#define C_CH_RXENABLE 0x00000002
-#define C_CH_ENABLE 0x00000003
-#define C_CH_LOOPBACK 0x00000004
-#define C_PR_NONE 0x00000000
-#define C_PR_ODD 0x00000001
-#define C_PR_EVEN 0x00000002
-#define C_PR_MARK 0x00000004
-#define C_PR_SPACE 0x00000008
-#define C_PR_PARITY 0x000000ff
-#define C_PR_DISCARD 0x00000100
-#define C_PR_IGNORE 0x00000200
-#define C_DL_CS5 0x00000001
-#define C_DL_CS6 0x00000002
-#define C_DL_CS7 0x00000004
-#define C_DL_CS8 0x00000008
-#define C_DL_CS 0x0000000f
-#define C_DL_1STOP 0x00000010
-#define C_DL_15STOP 0x00000020
-#define C_DL_2STOP 0x00000040
-#define C_DL_STOP 0x000000f0
-#define C_IN_DISABLE 0x00000000
-#define C_IN_TXBEMPTY 0x00000001
-#define C_IN_TXLOWWM 0x00000002
-#define C_IN_RXHIWM 0x00000010
-#define C_IN_RXNNDT 0x00000020
-#define C_IN_MDCD 0x00000100
-#define C_IN_MDSR 0x00000200
-#define C_IN_MRI 0x00000400
-#define C_IN_MCTS 0x00000800
-#define C_IN_RXBRK 0x00001000
-#define C_IN_PR_ERROR 0x00002000
-#define C_IN_FR_ERROR 0x00004000
-#define C_IN_OVR_ERROR 0x00008000
-#define C_IN_RXOFL 0x00010000
-#define C_IN_IOCTLW 0x00020000
-#define C_IN_MRTS 0x00040000
-#define C_IN_ICHAR 0x00080000
-#define C_FL_OXX 0x00000001
-#define C_FL_IXX 0x00000002
-#define C_FL_OIXANY 0x00000004
-#define C_FL_SWFLOW 0x0000000f
-#define C_FS_TXIDLE 0x00000000
-#define C_FS_SENDING 0x00000001
-#define C_FS_SWFLOW 0x00000002
-#define C_RS_PARAM 0x80000000
-#define C_RS_RTS 0x00000001
-#define C_RS_DTR 0x00000004
-#define C_RS_DCD 0x00000100
-#define C_RS_DSR 0x00000200
-#define C_RS_RI 0x00000400
-#define C_RS_CTS 0x00000800
-#define C_CM_RESET 0x01
-#define C_CM_IOCTL 0x02
-#define C_CM_IOCTLW 0x03
-#define C_CM_IOCTLM 0x04
-#define C_CM_SENDXOFF 0x10
-#define C_CM_SENDXON 0x11
-#define C_CM_CLFLOW 0x12
-#define C_CM_SENDBRK 0x41
-#define C_CM_INTBACK 0x42
-#define C_CM_SET_BREAK 0x43
-#define C_CM_CLR_BREAK 0x44
-#define C_CM_CMD_DONE 0x45
-#define C_CM_INTBACK2 0x46
-#define C_CM_TINACT 0x51
-#define C_CM_IRQ_ENBL 0x52
-#define C_CM_IRQ_DSBL 0x53
-#define C_CM_ACK_ENBL 0x54
-#define C_CM_ACK_DSBL 0x55
-#define C_CM_FLUSH_RX 0x56
-#define C_CM_FLUSH_TX 0x57
-#define C_CM_Q_ENABLE 0x58
-#define C_CM_Q_DISABLE 0x59
-#define C_CM_TXBEMPTY 0x60
-#define C_CM_TXLOWWM 0x61
-#define C_CM_RXHIWM 0x62
-#define C_CM_RXNNDT 0x63
-#define C_CM_TXFEMPTY 0x64
-#define C_CM_ICHAR 0x65
-#define C_CM_MDCD 0x70
-#define C_CM_MDSR 0x71
-#define C_CM_MRI 0x72
-#define C_CM_MCTS 0x73
-#define C_CM_MRTS 0x74
-#define C_CM_RXBRK 0x84
-#define C_CM_PR_ERROR 0x85
-#define C_CM_FR_ERROR 0x86
-#define C_CM_OVR_ERROR 0x87
-#define C_CM_RXOFL 0x88
-#define C_CM_CMDERROR 0x90
-#define C_CM_FATAL 0x91
-#define C_CM_HW_RESET 0x92
-struct CH_CTRL {
-  __u32 op_mode;
-  __u32 intr_enable;
-  __u32 sw_flow;
-  __u32 flow_status;
-  __u32 comm_baud;
-  __u32 comm_parity;
-  __u32 comm_data_l;
-  __u32 comm_flags;
-  __u32 hw_flow;
-  __u32 rs_control;
-  __u32 rs_status;
-  __u32 flow_xon;
-  __u32 flow_xoff;
-  __u32 hw_overflow;
-  __u32 sw_overflow;
-  __u32 comm_error;
-  __u32 ichar;
-  __u32 filler[7];
-};
-struct BUF_CTRL {
-  __u32 flag_dma;
-  __u32 tx_bufaddr;
-  __u32 tx_bufsize;
-  __u32 tx_threshold;
-  __u32 tx_get;
-  __u32 tx_put;
-  __u32 rx_bufaddr;
-  __u32 rx_bufsize;
-  __u32 rx_threshold;
-  __u32 rx_get;
-  __u32 rx_put;
-  __u32 filler[5];
-};
-struct BOARD_CTRL {
-  __u32 n_channel;
-  __u32 fw_version;
-  __u32 op_system;
-  __u32 dr_version;
-  __u32 inactivity;
-  __u32 hcmd_channel;
-  __u32 hcmd_param;
-  __u32 fwcmd_channel;
-  __u32 fwcmd_param;
-  __u32 zf_int_queue_addr;
-  __u32 filler[6];
-};
-#define QUEUE_SIZE (10 * MAX_CHAN)
-struct INT_QUEUE {
-  unsigned char intr_code[QUEUE_SIZE];
-  unsigned long channel[QUEUE_SIZE];
-  unsigned long param[QUEUE_SIZE];
-  unsigned long put;
-  unsigned long get;
-};
-struct ZFW_CTRL {
-  struct BOARD_CTRL board_ctrl;
-  struct CH_CTRL ch_ctrl[MAX_CHAN];
-  struct BUF_CTRL buf_ctrl[MAX_CHAN];
-};
-#endif
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/devlink.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/devlink.h
index e6e006f..a809306 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/devlink.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/devlink.h
@@ -99,6 +99,10 @@
   DEVLINK_CMD_TRAP_POLICER_NEW,
   DEVLINK_CMD_TRAP_POLICER_DEL,
   DEVLINK_CMD_HEALTH_REPORTER_TEST,
+  DEVLINK_CMD_RATE_GET,
+  DEVLINK_CMD_RATE_SET,
+  DEVLINK_CMD_RATE_NEW,
+  DEVLINK_CMD_RATE_DEL,
   __DEVLINK_CMD_MAX,
   DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
 };
@@ -141,6 +145,10 @@
   DEVLINK_PORT_FLAVOUR_UNUSED,
   DEVLINK_PORT_FLAVOUR_PCI_SF,
 };
+enum devlink_rate_type {
+  DEVLINK_RATE_TYPE_LEAF,
+  DEVLINK_RATE_TYPE_NODE,
+};
 enum devlink_param_cmode {
   DEVLINK_PARAM_CMODE_RUNTIME,
   DEVLINK_PARAM_CMODE_DRIVERINIT,
@@ -370,6 +378,12 @@
   DEVLINK_ATTR_RELOAD_ACTION_INFO,
   DEVLINK_ATTR_RELOAD_ACTION_STATS,
   DEVLINK_ATTR_PORT_PCI_SF_NUMBER,
+  DEVLINK_ATTR_RATE_TYPE,
+  DEVLINK_ATTR_RATE_TX_SHARE,
+  DEVLINK_ATTR_RATE_TX_MAX,
+  DEVLINK_ATTR_RATE_NODE_NAME,
+  DEVLINK_ATTR_RATE_PARENT_NODE_NAME,
+  DEVLINK_ATTR_REGION_MAX_SNAPSHOTS,
   __DEVLINK_ATTR_MAX,
   DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
 };
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dlm_device.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dlm_device.h
index 9cf41a8..5e54d2e 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dlm_device.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dlm_device.h
@@ -39,12 +39,12 @@
   void __user * bastaddr;
   struct dlm_lksb __user * lksb;
   char lvb[DLM_USER_LVB_LEN];
-  char name[0];
+  char name[];
 };
 struct dlm_lspace_params {
   __u32 flags;
   __u32 minor;
-  char name[0];
+  char name[];
 };
 struct dlm_purge_params {
   __u32 nodeid;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
index 4c0a9f0..09f8a98 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
@@ -55,6 +55,8 @@
   __u32 next;
   char name[0];
 };
+#define DM_NAME_LIST_FLAG_HAS_UUID 1
+#define DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID 2
 struct dm_target_versions {
   __u32 next;
   __u32 version[3];
@@ -104,9 +106,9 @@
 #define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
 #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
 #define DM_VERSION_MAJOR 4
-#define DM_VERSION_MINOR 44
+#define DM_VERSION_MINOR 45
 #define DM_VERSION_PATCHLEVEL 0
-#define DM_VERSION_EXTRA "-ioctl(2021-02-01)"
+#define DM_VERSION_EXTRA "-ioctl(2021-03-22)"
 #define DM_READONLY_FLAG (1 << 0)
 #define DM_SUSPEND_FLAG (1 << 1)
 #define DM_PERSISTENT_DEV_FLAG (1 << 3)
@@ -124,4 +126,5 @@
 #define DM_DATA_OUT_FLAG (1 << 16)
 #define DM_DEFERRED_REMOVE (1 << 17)
 #define DM_INTERNAL_SUSPEND_FLAG (1 << 18)
+#define DM_IMA_MEASUREMENT_FLAG (1 << 19)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
index db7c7e5..6164991 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
@@ -130,6 +130,9 @@
   __s32 qs_rtbtimelimit;
   __u16 qs_bwarnlimit;
   __u16 qs_iwarnlimit;
-  __u64 qs_pad2[8];
+  __u16 qs_rtbwarnlimit;
+  __u16 qs_pad3;
+  __u32 qs_pad4;
+  __u64 qs_pad2[7];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/elf.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/elf.h
index f9f122a..7655f12 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/elf.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/elf.h
@@ -360,6 +360,7 @@
 #define NT_ARM_PACA_KEYS 0x407
 #define NT_ARM_PACG_KEYS 0x408
 #define NT_ARM_TAGGED_ADDR_CTRL 0x409
+#define NT_ARM_PAC_ENABLED_KEYS 0x40a
 #define NT_ARC_V2 0x600
 #define NT_VMCOREDD 0x700
 #define NT_MIPS_DSP 0x800
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ethtool.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ethtool.h
index 021a69b..741ea2a 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ethtool.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ethtool.h
@@ -78,6 +78,7 @@
   ETHTOOL_RX_COPYBREAK,
   ETHTOOL_TX_COPYBREAK,
   ETHTOOL_PFC_PREVENTION_TOUT,
+  ETHTOOL_TX_COPYBREAK_BUF_SIZE,
   __ETHTOOL_TUNABLE_COUNT,
 };
 enum tunable_type_id {
@@ -207,6 +208,7 @@
   ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
   ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
   ETHTOOL_LINK_EXT_STATE_OVERHEAT,
+  ETHTOOL_LINK_EXT_STATE_MODULE,
 };
 enum ethtool_link_ext_substate_autoneg {
   ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
@@ -232,11 +234,16 @@
 enum ethtool_link_ext_substate_bad_signal_integrity {
   ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
   ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
+  ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST,
+  ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS,
 };
 enum ethtool_link_ext_substate_cable_issue {
   ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
   ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
 };
+enum ethtool_link_ext_substate_module {
+  ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
+};
 #define ETH_GSTRING_LEN 32
 enum ethtool_stringset {
   ETH_SS_TEST = 0,
@@ -255,8 +262,21 @@
   ETH_SS_TS_TX_TYPES,
   ETH_SS_TS_RX_FILTERS,
   ETH_SS_UDP_TUNNEL_TYPES,
+  ETH_SS_STATS_STD,
+  ETH_SS_STATS_ETH_PHY,
+  ETH_SS_STATS_ETH_MAC,
+  ETH_SS_STATS_ETH_CTRL,
+  ETH_SS_STATS_RMON,
   ETH_SS_COUNT
 };
+enum ethtool_module_power_mode_policy {
+  ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
+  ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO,
+};
+enum ethtool_module_power_mode {
+  ETHTOOL_MODULE_POWER_MODE_LOW = 1,
+  ETHTOOL_MODULE_POWER_MODE_HIGH,
+};
 struct ethtool_gstrings {
   __u32 cmd;
   __u32 string_set;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
index 67091a1..7dcae22 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
@@ -49,6 +49,13 @@
   ETHTOOL_MSG_CABLE_TEST_ACT,
   ETHTOOL_MSG_CABLE_TEST_TDR_ACT,
   ETHTOOL_MSG_TUNNEL_INFO_GET,
+  ETHTOOL_MSG_FEC_GET,
+  ETHTOOL_MSG_FEC_SET,
+  ETHTOOL_MSG_MODULE_EEPROM_GET,
+  ETHTOOL_MSG_STATS_GET,
+  ETHTOOL_MSG_PHC_VCLOCKS_GET,
+  ETHTOOL_MSG_MODULE_GET,
+  ETHTOOL_MSG_MODULE_SET,
   __ETHTOOL_MSG_USER_CNT,
   ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
 };
@@ -83,6 +90,13 @@
   ETHTOOL_MSG_CABLE_TEST_NTF,
   ETHTOOL_MSG_CABLE_TEST_TDR_NTF,
   ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,
+  ETHTOOL_MSG_FEC_GET_REPLY,
+  ETHTOOL_MSG_FEC_NTF,
+  ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
+  ETHTOOL_MSG_STATS_GET_REPLY,
+  ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
+  ETHTOOL_MSG_MODULE_GET_REPLY,
+  ETHTOOL_MSG_MODULE_NTF,
   __ETHTOOL_MSG_KERNEL_CNT,
   ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
 };
@@ -236,6 +250,7 @@
   ETHTOOL_A_RINGS_RX_MINI,
   ETHTOOL_A_RINGS_RX_JUMBO,
   ETHTOOL_A_RINGS_TX,
+  ETHTOOL_A_RINGS_RX_BUF_LEN,
   __ETHTOOL_A_RINGS_CNT,
   ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
 };
@@ -278,6 +293,8 @@
   ETHTOOL_A_COALESCE_TX_USECS_HIGH,
   ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH,
   ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL,
+  ETHTOOL_A_COALESCE_USE_CQE_MODE_TX,
+  ETHTOOL_A_COALESCE_USE_CQE_MODE_RX,
   __ETHTOOL_A_COALESCE_CNT,
   ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
 };
@@ -322,6 +339,14 @@
   ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
 };
 enum {
+  ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
+  ETHTOOL_A_PHC_VCLOCKS_HEADER,
+  ETHTOOL_A_PHC_VCLOCKS_NUM,
+  ETHTOOL_A_PHC_VCLOCKS_INDEX,
+  __ETHTOOL_A_PHC_VCLOCKS_CNT,
+  ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)
+};
+enum {
   ETHTOOL_A_CABLE_TEST_UNSPEC,
   ETHTOOL_A_CABLE_TEST_HEADER,
   __ETHTOOL_A_CABLE_TEST_CNT,
@@ -461,6 +486,121 @@
   __ETHTOOL_A_TUNNEL_INFO_CNT,
   ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
 };
+enum {
+  ETHTOOL_A_FEC_UNSPEC,
+  ETHTOOL_A_FEC_HEADER,
+  ETHTOOL_A_FEC_MODES,
+  ETHTOOL_A_FEC_AUTO,
+  ETHTOOL_A_FEC_ACTIVE,
+  ETHTOOL_A_FEC_STATS,
+  __ETHTOOL_A_FEC_CNT,
+  ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1)
+};
+enum {
+  ETHTOOL_A_FEC_STAT_UNSPEC,
+  ETHTOOL_A_FEC_STAT_PAD,
+  ETHTOOL_A_FEC_STAT_CORRECTED,
+  ETHTOOL_A_FEC_STAT_UNCORR,
+  ETHTOOL_A_FEC_STAT_CORR_BITS,
+  __ETHTOOL_A_FEC_STAT_CNT,
+  ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_EEPROM_UNSPEC,
+  ETHTOOL_A_MODULE_EEPROM_HEADER,
+  ETHTOOL_A_MODULE_EEPROM_OFFSET,
+  ETHTOOL_A_MODULE_EEPROM_LENGTH,
+  ETHTOOL_A_MODULE_EEPROM_PAGE,
+  ETHTOOL_A_MODULE_EEPROM_BANK,
+  ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS,
+  ETHTOOL_A_MODULE_EEPROM_DATA,
+  __ETHTOOL_A_MODULE_EEPROM_CNT,
+  ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_UNSPEC,
+  ETHTOOL_A_STATS_PAD,
+  ETHTOOL_A_STATS_HEADER,
+  ETHTOOL_A_STATS_GROUPS,
+  ETHTOOL_A_STATS_GRP,
+  __ETHTOOL_A_STATS_CNT,
+  ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+};
+enum {
+  ETHTOOL_STATS_ETH_PHY,
+  ETHTOOL_STATS_ETH_MAC,
+  ETHTOOL_STATS_ETH_CTRL,
+  ETHTOOL_STATS_RMON,
+  __ETHTOOL_STATS_CNT
+};
+enum {
+  ETHTOOL_A_STATS_GRP_UNSPEC,
+  ETHTOOL_A_STATS_GRP_PAD,
+  ETHTOOL_A_STATS_GRP_ID,
+  ETHTOOL_A_STATS_GRP_SS_ID,
+  ETHTOOL_A_STATS_GRP_STAT,
+  ETHTOOL_A_STATS_GRP_HIST_RX,
+  ETHTOOL_A_STATS_GRP_HIST_TX,
+  ETHTOOL_A_STATS_GRP_HIST_BKT_LOW,
+  ETHTOOL_A_STATS_GRP_HIST_BKT_HI,
+  ETHTOOL_A_STATS_GRP_HIST_VAL,
+  __ETHTOOL_A_STATS_GRP_CNT,
+  ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
+  __ETHTOOL_A_STATS_ETH_PHY_CNT,
+  ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
+  ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
+  ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
+  ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
+  ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
+  ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
+  ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
+  ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
+  ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
+  ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
+  ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
+  ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
+  ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
+  ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
+  ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
+  ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
+  __ETHTOOL_A_STATS_ETH_MAC_CNT,
+  ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_CTRL_3_TX,
+  ETHTOOL_A_STATS_ETH_CTRL_4_RX,
+  ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,
+  __ETHTOOL_A_STATS_ETH_CTRL_CNT,
+  ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_RMON_UNDERSIZE,
+  ETHTOOL_A_STATS_RMON_OVERSIZE,
+  ETHTOOL_A_STATS_RMON_FRAG,
+  ETHTOOL_A_STATS_RMON_JABBER,
+  __ETHTOOL_A_STATS_RMON_CNT,
+  ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_UNSPEC,
+  ETHTOOL_A_MODULE_HEADER,
+  ETHTOOL_A_MODULE_POWER_MODE_POLICY,
+  ETHTOOL_A_MODULE_POWER_MODE,
+  __ETHTOOL_A_MODULE_CNT,
+  ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
+};
 #define ETHTOOL_GENL_NAME "ethtool"
 #define ETHTOOL_GENL_VERSION 1
 #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fanotify.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fanotify.h
index c63d058..6249292 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fanotify.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fanotify.h
@@ -33,10 +33,12 @@
 #define FAN_MOVE_SELF 0x00000800
 #define FAN_OPEN_EXEC 0x00001000
 #define FAN_Q_OVERFLOW 0x00004000
+#define FAN_FS_ERROR 0x00008000
 #define FAN_OPEN_PERM 0x00010000
 #define FAN_ACCESS_PERM 0x00020000
 #define FAN_OPEN_EXEC_PERM 0x00040000
 #define FAN_EVENT_ON_CHILD 0x08000000
+#define FAN_RENAME 0x10000000
 #define FAN_ONDIR 0x40000000
 #define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE)
 #define FAN_MOVE (FAN_MOVED_FROM | FAN_MOVED_TO)
@@ -49,11 +51,14 @@
 #define FAN_UNLIMITED_QUEUE 0x00000010
 #define FAN_UNLIMITED_MARKS 0x00000020
 #define FAN_ENABLE_AUDIT 0x00000040
+#define FAN_REPORT_PIDFD 0x00000080
 #define FAN_REPORT_TID 0x00000100
 #define FAN_REPORT_FID 0x00000200
 #define FAN_REPORT_DIR_FID 0x00000400
 #define FAN_REPORT_NAME 0x00000800
+#define FAN_REPORT_TARGET_FID 0x00001000
 #define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)
+#define FAN_REPORT_DFID_NAME_TARGET (FAN_REPORT_DFID_NAME | FAN_REPORT_FID | FAN_REPORT_TARGET_FID)
 #define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS)
 #define FAN_MARK_ADD 0x00000001
 #define FAN_MARK_REMOVE 0x00000002
@@ -82,6 +87,10 @@
 #define FAN_EVENT_INFO_TYPE_FID 1
 #define FAN_EVENT_INFO_TYPE_DFID_NAME 2
 #define FAN_EVENT_INFO_TYPE_DFID 3
+#define FAN_EVENT_INFO_TYPE_PIDFD 4
+#define FAN_EVENT_INFO_TYPE_ERROR 5
+#define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10
+#define FAN_EVENT_INFO_TYPE_NEW_DFID_NAME 12
 struct fanotify_event_info_header {
   __u8 info_type;
   __u8 pad;
@@ -92,6 +101,15 @@
   __kernel_fsid_t fsid;
   unsigned char handle[0];
 };
+struct fanotify_event_info_pidfd {
+  struct fanotify_event_info_header hdr;
+  __s32 pidfd;
+};
+struct fanotify_event_info_error {
+  struct fanotify_event_info_header hdr;
+  __s32 error;
+  __u32 error_count;
+};
 struct fanotify_response {
   __s32 fd;
   __u32 response;
@@ -100,6 +118,8 @@
 #define FAN_DENY 0x02
 #define FAN_AUDIT 0x10
 #define FAN_NOFD - 1
+#define FAN_NOPIDFD FAN_NOFD
+#define FAN_EPIDFD - 2
 #define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
 #define FAN_EVENT_NEXT(meta,len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata *) (((char *) (meta)) + (meta)->event_len))
 #define FAN_EVENT_OK(meta,len) ((long) (len) >= (long) FAN_EVENT_METADATA_LEN && (long) (meta)->event_len >= (long) FAN_EVENT_METADATA_LEN && (long) (meta)->event_len <= (long) (len))
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fs.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fs.h
index 0601768..3bb4183 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fs.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fs.h
@@ -129,6 +129,7 @@
 #define BLKSECDISCARD _IO(0x12, 125)
 #define BLKROTATIONAL _IO(0x12, 126)
 #define BLKZEROOUT _IO(0x12, 127)
+#define BLKGETDISKSEQ _IOR(0x12, 128, __u64)
 #define BMAP_IOCTL 1
 #define FIBMAP _IO(0x00, 1)
 #define FIGETBSZ _IO(0x00, 2)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fuse.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fuse.h
index efb5424..144e960 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fuse.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/fuse.h
@@ -20,7 +20,7 @@
 #define _LINUX_FUSE_H
 #include <stdint.h>
 #define FUSE_KERNEL_VERSION 7
-#define FUSE_KERNEL_MINOR_VERSION 33
+#define FUSE_KERNEL_MINOR_VERSION 36
 #define FUSE_ROOT_ID 1
 struct fuse_attr {
   uint64_t ino;
@@ -75,6 +75,7 @@
 #define FOPEN_NONSEEKABLE (1 << 2)
 #define FOPEN_CACHE_DIR (1 << 3)
 #define FOPEN_STREAM (1 << 4)
+#define FOPEN_NOFLUSH (1 << 5)
 #define FUSE_ASYNC_READ (1 << 0)
 #define FUSE_POSIX_LOCKS (1 << 1)
 #define FUSE_FILE_OPS (1 << 2)
@@ -104,7 +105,16 @@
 #define FUSE_MAP_ALIGNMENT (1 << 26)
 #define FUSE_SUBMOUNTS (1 << 27)
 #define FUSE_HANDLE_KILLPRIV_V2 (1 << 28)
+#define FUSE_SETXATTR_EXT (1 << 29)
+#define FUSE_INIT_EXT (1 << 30)
+#define FUSE_INIT_RESERVED (1 << 31)
+#define FUSE_SECURITY_CTX (1ULL << 32)
+#define FUSE_HAS_INODE_DAX (1ULL << 33)
+#if FUSE_KERNEL_VERSION > 7 || FUSE_KERNEL_VERSION == 7 && FUSE_KERNEL_MINOR_VERSION >= 36
+#define FUSE_PASSTHROUGH (1ULL << 63)
+#else
 #define FUSE_PASSTHROUGH (1 << 31)
+#endif
 #define CUSE_UNRESTRICTED_IOCTL (1 << 0)
 #define FUSE_RELEASE_FLUSH (1 << 0)
 #define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1)
@@ -125,7 +135,9 @@
 #define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0)
 #define FUSE_FSYNC_FDATASYNC (1 << 0)
 #define FUSE_ATTR_SUBMOUNT (1 << 0)
+#define FUSE_ATTR_DAX (1 << 1)
 #define FUSE_OPEN_KILL_SUIDGID (1 << 0)
+#define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0)
 enum fuse_opcode {
   FUSE_LOOKUP = 1,
   FUSE_FORGET = 2,
@@ -174,6 +186,7 @@
   FUSE_COPY_FILE_RANGE = 47,
   FUSE_SETUPMAPPING = 48,
   FUSE_REMOVEMAPPING = 49,
+  FUSE_SYNCFS = 50,
   FUSE_CANONICAL_PATH = 2016,
   CUSE_INIT = 4096,
   CUSE_INIT_BSWAP_RESERVED = 1048576,
@@ -321,9 +334,12 @@
   uint32_t fsync_flags;
   uint32_t padding;
 };
+#define FUSE_COMPAT_SETXATTR_IN_SIZE 8
 struct fuse_setxattr_in {
   uint32_t size;
   uint32_t flags;
+  uint32_t setxattr_flags;
+  uint32_t padding;
 };
 struct fuse_getxattr_in {
   uint32_t size;
@@ -352,6 +368,8 @@
   uint32_t minor;
   uint32_t max_readahead;
   uint32_t flags;
+  uint32_t flags2;
+  uint32_t unused[11];
 };
 #define FUSE_COMPAT_INIT_OUT_SIZE 8
 #define FUSE_COMPAT_22_INIT_OUT_SIZE 24
@@ -366,7 +384,8 @@
   uint32_t time_gran;
   uint16_t max_pages;
   uint16_t map_alignment;
-  uint32_t unused[8];
+  uint32_t flags2;
+  uint32_t unused[7];
 };
 #define CUSE_INIT_INFO_MAX 4096
 struct cuse_init_in {
@@ -445,11 +464,6 @@
   uint32_t pid;
   uint32_t padding;
 };
-struct fuse_passthrough_out {
-  uint32_t fd;
-  uint32_t len;
-  void * vec;
-};
 struct fuse_out_header {
   uint32_t len;
   int32_t error;
@@ -462,8 +476,9 @@
   uint32_t type;
   char name[];
 };
+#define FUSE_REC_ALIGN(x) (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
 #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
-#define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
+#define FUSE_DIRENT_ALIGN(x) FUSE_REC_ALIGN(x)
 #define FUSE_DIRENT_SIZE(d) FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
 struct fuse_direntplus {
   struct fuse_entry_out entry_out;
@@ -510,7 +525,7 @@
 };
 #define FUSE_DEV_IOC_MAGIC 229
 #define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
-#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 127, struct fuse_passthrough_out)
+#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 126, uint32_t)
 struct fuse_lseek_in {
   uint64_t fh;
   uint64_t offset;
@@ -546,4 +561,15 @@
   uint64_t len;
 };
 #define FUSE_REMOVEMAPPING_MAX_ENTRY (PAGE_SIZE / sizeof(struct fuse_removemapping_one))
+struct fuse_syncfs_in {
+  uint64_t padding;
+};
+struct fuse_secctx {
+  uint32_t size;
+  uint32_t padding;
+};
+struct fuse_secctx_header {
+  uint32_t size;
+  uint32_t nr_secctx;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/futex.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/futex.h
index 6176f38..c80b90c 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/futex.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/futex.h
@@ -33,6 +33,7 @@
 #define FUTEX_WAKE_BITSET 10
 #define FUTEX_WAIT_REQUEUE_PI 11
 #define FUTEX_CMP_REQUEUE_PI 12
+#define FUTEX_LOCK_PI2 13
 #define FUTEX_PRIVATE_FLAG 128
 #define FUTEX_CLOCK_REALTIME 256
 #define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
@@ -42,12 +43,21 @@
 #define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_OP_PRIVATE (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
 #define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
+#define FUTEX_LOCK_PI2_PRIVATE (FUTEX_LOCK_PI2 | FUTEX_PRIVATE_FLAG)
 #define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
+#define FUTEX_32 2
+#define FUTEX_WAITV_MAX 128
+struct futex_waitv {
+  __u64 val;
+  __u64 uaddr;
+  __u32 flags;
+  __u32 __reserved;
+};
 struct robust_list {
   struct robust_list __user * next;
 };
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/hyperv.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/hyperv.h
index daa8fc7..4790bbf 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/hyperv.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/hyperv.h
@@ -18,7 +18,7 @@
  ****************************************************************************/
 #ifndef _UAPI_HYPERV_H
 #define _UAPI_HYPERV_H
-#include <linux/uuid.h>
+#include <linux/types.h>
 #define UTIL_FW_MINOR 0
 #define UTIL_WS2K8_FW_MAJOR 1
 #define UTIL_WS2K8_FW_VERSION (UTIL_WS2K8_FW_MAJOR << 16 | UTIL_FW_MINOR)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/icmp.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/icmp.h
index 5892d12..8847a48 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/icmp.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/icmp.h
@@ -20,6 +20,8 @@
 #define _UAPI_LINUX_ICMP_H
 #include <linux/types.h>
 #include <asm/byteorder.h>
+#include <linux/if.h>
+#include <linux/in6.h>
 #define ICMP_ECHOREPLY 0
 #define ICMP_DEST_UNREACH 3
 #define ICMP_SOURCE_QUENCH 4
@@ -57,6 +59,20 @@
 #define ICMP_REDIR_HOSTTOS 3
 #define ICMP_EXC_TTL 0
 #define ICMP_EXC_FRAGTIME 1
+#define ICMP_EXT_ECHO 42
+#define ICMP_EXT_ECHOREPLY 43
+#define ICMP_EXT_CODE_MAL_QUERY 1
+#define ICMP_EXT_CODE_NO_IF 2
+#define ICMP_EXT_CODE_NO_TABLE_ENT 3
+#define ICMP_EXT_CODE_MULT_IFS 4
+#define ICMP_EXT_ECHOREPLY_ACTIVE (1 << 2)
+#define ICMP_EXT_ECHOREPLY_IPV4 (1 << 1)
+#define ICMP_EXT_ECHOREPLY_IPV6 1
+#define ICMP_EXT_ECHO_CTYPE_NAME 1
+#define ICMP_EXT_ECHO_CTYPE_INDEX 2
+#define ICMP_EXT_ECHO_CTYPE_ADDR 3
+#define ICMP_AFI_IP 1
+#define ICMP_AFI_IP6 2
 struct icmphdr {
   __u8 type;
   __u8 code;
@@ -94,4 +110,23 @@
   __u8 class_num;
   __u8 class_type;
 };
+struct icmp_ext_echo_ctype3_hdr {
+  __be16 afi;
+  __u8 addrlen;
+  __u8 reserved;
+};
+struct icmp_ext_echo_iio {
+  struct icmp_extobj_hdr extobj_hdr;
+  union {
+    char name[IFNAMSIZ];
+    __be32 ifindex;
+    struct {
+      struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
+      union {
+        __be32 ipv4_addr;
+        struct in6_addr ipv6_addr;
+      } ip_addr;
+    } addr;
+  } ident;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/icmpv6.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/icmpv6.h
index e23fbb4..5285698 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/icmpv6.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/icmpv6.h
@@ -107,6 +107,8 @@
 #define ICMPV6_UNK_NEXTHDR 1
 #define ICMPV6_UNK_OPTION 2
 #define ICMPV6_HDR_INCOMP 3
+#define ICMPV6_EXT_ECHO_REQUEST 160
+#define ICMPV6_EXT_ECHO_REPLY 161
 #define ICMPV6_FILTER 1
 #define ICMPV6_FILTER_BLOCK 1
 #define ICMPV6_FILTER_PASS 2
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/idxd.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/idxd.h
index 4f1282e..ad9ed48 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/idxd.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/idxd.h
@@ -19,6 +19,28 @@
 #ifndef _USR_IDXD_H_
 #define _USR_IDXD_H_
 #include <stdint.h>
+enum idxd_scmd_stat {
+  IDXD_SCMD_DEV_ENABLED = 0x80000010,
+  IDXD_SCMD_DEV_NOT_ENABLED = 0x80000020,
+  IDXD_SCMD_WQ_ENABLED = 0x80000021,
+  IDXD_SCMD_DEV_DMA_ERR = 0x80020000,
+  IDXD_SCMD_WQ_NO_GRP = 0x80030000,
+  IDXD_SCMD_WQ_NO_NAME = 0x80040000,
+  IDXD_SCMD_WQ_NO_SVM = 0x80050000,
+  IDXD_SCMD_WQ_NO_THRESH = 0x80060000,
+  IDXD_SCMD_WQ_PORTAL_ERR = 0x80070000,
+  IDXD_SCMD_WQ_RES_ALLOC_ERR = 0x80080000,
+  IDXD_SCMD_PERCPU_ERR = 0x80090000,
+  IDXD_SCMD_DMA_CHAN_ERR = 0x800a0000,
+  IDXD_SCMD_CDEV_ERR = 0x800b0000,
+  IDXD_SCMD_WQ_NO_SWQ_SUPPORT = 0x800c0000,
+  IDXD_SCMD_WQ_NONE_CONFIGURED = 0x800d0000,
+  IDXD_SCMD_WQ_NO_SIZE = 0x800e0000,
+  IDXD_SCMD_WQ_NO_PRIV = 0x800f0000,
+  IDXD_SCMD_WQ_IRQ_ERR = 0x80100000,
+};
+#define IDXD_SCMD_SOFTERR_MASK 0x80000000
+#define IDXD_SCMD_SOFTERR_SHIFT 16
 #define IDXD_OP_FLAG_FENCE 0x0001
 #define IDXD_OP_FLAG_BOF 0x0002
 #define IDXD_OP_FLAG_CRAV 0x0004
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_arp.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_arp.h
index eda888f..1cd23ef 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_arp.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_arp.h
@@ -44,6 +44,7 @@
 #define ARPHRD_X25 271
 #define ARPHRD_HWX25 272
 #define ARPHRD_CAN 280
+#define ARPHRD_MCTP 290
 #define ARPHRD_PPP 512
 #define ARPHRD_CISCO 513
 #define ARPHRD_HDLC ARPHRD_CISCO
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_bridge.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_bridge.h
index 570c09e..2054fb3 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_bridge.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_bridge.h
@@ -405,9 +405,11 @@
 };
 #define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1)
 #define BRIDGE_VLANDB_DUMPF_STATS (1 << 0)
+#define BRIDGE_VLANDB_DUMPF_GLOBAL (1 << 1)
 enum {
   BRIDGE_VLANDB_UNSPEC,
   BRIDGE_VLANDB_ENTRY,
+  BRIDGE_VLANDB_GLOBAL_OPTIONS,
   __BRIDGE_VLANDB_MAX,
 };
 #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1)
@@ -418,6 +420,7 @@
   BRIDGE_VLANDB_ENTRY_STATE,
   BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
   BRIDGE_VLANDB_ENTRY_STATS,
+  BRIDGE_VLANDB_ENTRY_MCAST_ROUTER,
   __BRIDGE_VLANDB_ENTRY_MAX,
 };
 #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
@@ -439,6 +442,28 @@
 };
 #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
 enum {
+  BRIDGE_VLANDB_GOPTS_UNSPEC,
+  BRIDGE_VLANDB_GOPTS_ID,
+  BRIDGE_VLANDB_GOPTS_RANGE,
+  BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING,
+  BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION,
+  BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION,
+  BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT,
+  BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT,
+  BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL,
+  BRIDGE_VLANDB_GOPTS_PAD,
+  BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER,
+  BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE,
+  __BRIDGE_VLANDB_GOPTS_MAX
+};
+#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1)
+enum {
   MDBA_UNSPEC,
   MDBA_MDB,
   MDBA_ROUTER,
@@ -496,6 +521,9 @@
   MDBA_ROUTER_PATTR_UNSPEC,
   MDBA_ROUTER_PATTR_TIMER,
   MDBA_ROUTER_PATTR_TYPE,
+  MDBA_ROUTER_PATTR_INET_TIMER,
+  MDBA_ROUTER_PATTR_INET6_TIMER,
+  MDBA_ROUTER_PATTR_VID,
   __MDBA_ROUTER_PATTR_MAX
 };
 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
@@ -570,10 +598,23 @@
 };
 enum br_boolopt_id {
   BR_BOOLOPT_NO_LL_LEARN,
+  BR_BOOLOPT_MCAST_VLAN_SNOOPING,
   BR_BOOLOPT_MAX
 };
 struct br_boolopt_multi {
   __u32 optval;
   __u32 optmask;
 };
+enum {
+  BRIDGE_QUERIER_UNSPEC,
+  BRIDGE_QUERIER_IP_ADDRESS,
+  BRIDGE_QUERIER_IP_PORT,
+  BRIDGE_QUERIER_IP_OTHER_TIMER,
+  BRIDGE_QUERIER_PAD,
+  BRIDGE_QUERIER_IPV6_ADDRESS,
+  BRIDGE_QUERIER_IPV6_PORT,
+  BRIDGE_QUERIER_IPV6_OTHER_TIMER,
+  __BRIDGE_QUERIER_MAX
+};
+#define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_ether.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_ether.h
index 8405653..1f7f8f2 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_ether.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_ether.h
@@ -67,6 +67,7 @@
 #define ETH_P_LINK_CTL 0x886c
 #define ETH_P_ATMFATE 0x8884
 #define ETH_P_PAE 0x888E
+#define ETH_P_REALTEK 0x8899
 #define ETH_P_AOE 0x88A2
 #define ETH_P_8021AD 0x88A8
 #define ETH_P_802_EX1 0x88B5
@@ -123,6 +124,7 @@
 #define ETH_P_CAIF 0x00F7
 #define ETH_P_XDSA 0x00F8
 #define ETH_P_MAP 0x00F9
+#define ETH_P_MCTP 0x00FA
 #ifndef __UAPI_DEF_ETHHDR
 #define __UAPI_DEF_ETHHDR 1
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_link.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_link.h
index 2a5ba5a..7e413ae 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_link.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/if_link.h
@@ -148,6 +148,9 @@
   IFLA_ALT_IFNAME,
   IFLA_PERM_ADDRESS,
   IFLA_PROTO_DOWN_REASON,
+  IFLA_PARENT_DEV_NAME,
+  IFLA_PARENT_DEV_BUS_NAME,
+  IFLA_GRO_MAX_SIZE,
   __IFLA_MAX
 };
 #define IFLA_MAX (__IFLA_MAX - 1)
@@ -176,6 +179,7 @@
   IFLA_INET6_ICMP6STATS,
   IFLA_INET6_TOKEN,
   IFLA_INET6_ADDR_GEN_MODE,
+  IFLA_INET6_RA_MTU,
   __IFLA_INET6_MAX
 };
 #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
@@ -233,6 +237,7 @@
   IFLA_BR_MCAST_MLD_VERSION,
   IFLA_BR_VLAN_STATS_PER_PORT,
   IFLA_BR_MULTI_BOOLOPT,
+  IFLA_BR_MCAST_QUERIER_STATE,
   __IFLA_BR_MAX,
 };
 #define IFLA_BR_MAX (__IFLA_BR_MAX - 1)
@@ -354,6 +359,7 @@
   MACVLAN_MACADDR_SET,
 };
 #define MACVLAN_FLAG_NOPROMISC 1
+#define MACVLAN_FLAG_NODST 2
 enum {
   IFLA_VRF_UNSPEC,
   IFLA_VRF_TABLE,
@@ -550,6 +556,8 @@
   IFLA_BOND_AD_ACTOR_SYSTEM,
   IFLA_BOND_TLB_DYNAMIC_LB,
   IFLA_BOND_PEER_NOTIF_DELAY,
+  IFLA_BOND_AD_LACP_ACTIVE,
+  IFLA_BOND_MISSED_MAX,
   __IFLA_BOND_MAX,
 };
 #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
@@ -835,6 +843,8 @@
 #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
 #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
 #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
+#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4)
+#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5)
 enum {
   IFLA_RMNET_UNSPEC,
   IFLA_RMNET_MUX_ID,
@@ -846,4 +856,10 @@
   __u32 flags;
   __u32 mask;
 };
+enum {
+  IFLA_MCTP_UNSPEC,
+  IFLA_MCTP_NET,
+  __IFLA_MCTP_MAX,
+};
+#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
similarity index 80%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
index bb45c3d..ba2f5e3 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
@@ -16,14 +16,7 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#ifndef _UAPI_IIO_BUFFER_H_
+#define _UAPI_IIO_BUFFER_H_
+#define IIO_BUFFER_GET_FD_IOCTL _IOWR('i', 0x91, int)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/in.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/in.h
index e5437ca..d4060e7 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/in.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/in.h
@@ -155,21 +155,32 @@
 #define IP_MSFILTER_SIZE(numsrc) (sizeof(struct ip_msfilter) - sizeof(__u32) + (numsrc) * sizeof(__u32))
 struct group_req {
   __u32 gr_interface;
-  struct sockaddr_storage gr_group;
+  struct __kernel_sockaddr_storage gr_group;
 };
 struct group_source_req {
   __u32 gsr_interface;
-  struct sockaddr_storage gsr_group;
-  struct sockaddr_storage gsr_source;
+  struct __kernel_sockaddr_storage gsr_group;
+  struct __kernel_sockaddr_storage gsr_source;
 };
 struct group_filter {
-  __u32 gf_interface;
-  struct sockaddr_storage gf_group;
-  __u32 gf_fmode;
-  __u32 gf_numsrc;
-  struct sockaddr_storage gf_slist[1];
+  union {
+    struct {
+      __u32 gf_interface_aux;
+      struct __kernel_sockaddr_storage gf_group_aux;
+      __u32 gf_fmode_aux;
+      __u32 gf_numsrc_aux;
+      struct __kernel_sockaddr_storage gf_slist[1];
+    };
+    struct {
+      __u32 gf_interface;
+      struct __kernel_sockaddr_storage gf_group;
+      __u32 gf_fmode;
+      __u32 gf_numsrc;
+      struct __kernel_sockaddr_storage gf_slist_flex[];
+    };
+  };
 };
-#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) + (numsrc) * sizeof(struct sockaddr_storage))
+#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) + (numsrc) * sizeof(struct __kernel_sockaddr_storage))
 #endif
 #if __UAPI_DEF_IN_PKTINFO
 struct in_pktinfo {
@@ -214,6 +225,7 @@
 #define INADDR_ANY ((unsigned long int) 0x00000000)
 #define INADDR_BROADCAST ((unsigned long int) 0xffffffff)
 #define INADDR_NONE ((unsigned long int) 0xffffffff)
+#define INADDR_DUMMY ((unsigned long int) 0xc0000008)
 #define IN_LOOPBACKNET 127
 #define INADDR_LOOPBACK 0x7f000001
 #define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/in6.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/in6.h
index 8dd3238..49efe3c 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/in6.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/in6.h
@@ -105,6 +105,7 @@
 #define IPV6_TLV_PADN 1
 #define IPV6_TLV_ROUTERALERT 5
 #define IPV6_TLV_CALIPSO 7
+#define IPV6_TLV_IOAM 49
 #define IPV6_TLV_JUMBO 194
 #define IPV6_TLV_HAO 201
 #if __UAPI_DEF_IPV6_OPTIONS
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/incrementalfs.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
index 622a998..0804cc2 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
@@ -171,6 +171,8 @@
   __u64 time_us_out;
   __u32 page_out;
   __u32 errno_out;
-  __u64 reserved;
+  __u32 uid_out;
+  __u32 reserved1;
+  __u64 reserved2;
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/input-event-codes.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
index 732e9b7..34cd23c 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
@@ -248,7 +248,8 @@
 #define KEY_PAUSECD 201
 #define KEY_PROG3 202
 #define KEY_PROG4 203
-#define KEY_DASHBOARD 204
+#define KEY_ALL_APPLICATIONS 204
+#define KEY_DASHBOARD KEY_ALL_APPLICATIONS
 #define KEY_SUSPEND 205
 #define KEY_CLOSE 206
 #define KEY_PLAY 207
@@ -548,6 +549,8 @@
 #define KEY_VOICECOMMAND 0x246
 #define KEY_ASSISTANT 0x247
 #define KEY_KBD_LAYOUT_NEXT 0x248
+#define KEY_EMOJI_PICKER 0x249
+#define KEY_DICTATE 0x24a
 #define KEY_BRIGHTNESS_MIN 0x250
 #define KEY_BRIGHTNESS_MAX 0x251
 #define KEY_KBDINPUTASSIST_PREV 0x260
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/io_uring.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/io_uring.h
index fa59d39..96944f8 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/io_uring.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/io_uring.h
@@ -50,19 +50,19 @@
     __u32 splice_flags;
     __u32 rename_flags;
     __u32 unlink_flags;
+    __u32 hardlink_flags;
   };
   __u64 user_data;
   union {
-    struct {
-      union {
-        __u16 buf_index;
-        __u16 buf_group;
-      } __attribute__((packed));
-      __u16 personality;
-      __s32 splice_fd_in;
-    };
-    __u64 __pad2[3];
+    __u16 buf_index;
+    __u16 buf_group;
+  } __attribute__((packed));
+  __u16 personality;
+  union {
+    __s32 splice_fd_in;
+    __u32 file_index;
   };
+  __u64 __pad2[2];
 };
 enum {
   IOSQE_FIXED_FILE_BIT,
@@ -71,6 +71,7 @@
   IOSQE_IO_HARDLINK_BIT,
   IOSQE_ASYNC_BIT,
   IOSQE_BUFFER_SELECT_BIT,
+  IOSQE_CQE_SKIP_SUCCESS_BIT,
 };
 #define IOSQE_FIXED_FILE (1U << IOSQE_FIXED_FILE_BIT)
 #define IOSQE_IO_DRAIN (1U << IOSQE_IO_DRAIN_BIT)
@@ -78,6 +79,7 @@
 #define IOSQE_IO_HARDLINK (1U << IOSQE_IO_HARDLINK_BIT)
 #define IOSQE_ASYNC (1U << IOSQE_ASYNC_BIT)
 #define IOSQE_BUFFER_SELECT (1U << IOSQE_BUFFER_SELECT_BIT)
+#define IOSQE_CQE_SKIP_SUCCESS (1U << IOSQE_CQE_SKIP_SUCCESS_BIT)
 #define IORING_SETUP_IOPOLL (1U << 0)
 #define IORING_SETUP_SQPOLL (1U << 1)
 #define IORING_SETUP_SQ_AFF (1U << 2)
@@ -123,18 +125,31 @@
   IORING_OP_SHUTDOWN,
   IORING_OP_RENAMEAT,
   IORING_OP_UNLINKAT,
+  IORING_OP_MKDIRAT,
+  IORING_OP_SYMLINKAT,
+  IORING_OP_LINKAT,
   IORING_OP_LAST,
 };
 #define IORING_FSYNC_DATASYNC (1U << 0)
 #define IORING_TIMEOUT_ABS (1U << 0)
 #define IORING_TIMEOUT_UPDATE (1U << 1)
+#define IORING_TIMEOUT_BOOTTIME (1U << 2)
+#define IORING_TIMEOUT_REALTIME (1U << 3)
+#define IORING_LINK_TIMEOUT_UPDATE (1U << 4)
+#define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)
+#define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
+#define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
 #define SPLICE_F_FD_IN_FIXED (1U << 31)
+#define IORING_POLL_ADD_MULTI (1U << 0)
+#define IORING_POLL_UPDATE_EVENTS (1U << 1)
+#define IORING_POLL_UPDATE_USER_DATA (1U << 2)
 struct io_uring_cqe {
   __u64 user_data;
   __s32 res;
   __u32 flags;
 };
 #define IORING_CQE_F_BUFFER (1U << 0)
+#define IORING_CQE_F_MORE (1U << 1)
 enum {
   IORING_CQE_BUFFER_SHIFT = 16,
 };
@@ -192,6 +207,8 @@
 #define IORING_FEAT_SQPOLL_NONFIXED (1U << 7)
 #define IORING_FEAT_EXT_ARG (1U << 8)
 #define IORING_FEAT_NATIVE_WORKERS (1U << 9)
+#define IORING_FEAT_RSRC_TAGS (1U << 10)
+#define IORING_FEAT_CQE_SKIP (1U << 11)
 enum {
   IORING_REGISTER_BUFFERS = 0,
   IORING_UNREGISTER_BUFFERS = 1,
@@ -206,18 +223,44 @@
   IORING_UNREGISTER_PERSONALITY = 10,
   IORING_REGISTER_RESTRICTIONS = 11,
   IORING_REGISTER_ENABLE_RINGS = 12,
+  IORING_REGISTER_FILES2 = 13,
+  IORING_REGISTER_FILES_UPDATE2 = 14,
+  IORING_REGISTER_BUFFERS2 = 15,
+  IORING_REGISTER_BUFFERS_UPDATE = 16,
+  IORING_REGISTER_IOWQ_AFF = 17,
+  IORING_UNREGISTER_IOWQ_AFF = 18,
+  IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
   IORING_REGISTER_LAST
 };
+enum {
+  IO_WQ_BOUND,
+  IO_WQ_UNBOUND,
+};
 struct io_uring_files_update {
   __u32 offset;
   __u32 resv;
   __aligned_u64 fds;
 };
+struct io_uring_rsrc_register {
+  __u32 nr;
+  __u32 resv;
+  __u64 resv2;
+  __aligned_u64 data;
+  __aligned_u64 tags;
+};
 struct io_uring_rsrc_update {
   __u32 offset;
   __u32 resv;
   __aligned_u64 data;
 };
+struct io_uring_rsrc_update2 {
+  __u32 offset;
+  __u32 resv;
+  __aligned_u64 data;
+  __aligned_u64 tags;
+  __u32 nr;
+  __u32 resv2;
+};
 #define IORING_REGISTER_FILES_SKIP (- 2)
 #define IO_URING_OP_SUPPORTED (1U << 0)
 struct io_uring_probe_op {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioam6.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioam6.h
new file mode 100644
index 0000000..e32c8e9
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioam6.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOAM6_H
+#define _UAPI_LINUX_IOAM6_H
+#include <asm/byteorder.h>
+#include <linux/types.h>
+#define IOAM6_U16_UNAVAILABLE U16_MAX
+#define IOAM6_U32_UNAVAILABLE U32_MAX
+#define IOAM6_U64_UNAVAILABLE U64_MAX
+#define IOAM6_DEFAULT_ID (IOAM6_U32_UNAVAILABLE >> 8)
+#define IOAM6_DEFAULT_ID_WIDE (IOAM6_U64_UNAVAILABLE >> 8)
+#define IOAM6_DEFAULT_IF_ID IOAM6_U16_UNAVAILABLE
+#define IOAM6_DEFAULT_IF_ID_WIDE IOAM6_U32_UNAVAILABLE
+struct ioam6_hdr {
+  __u8 opt_type;
+  __u8 opt_len;
+  __u8 : 8;
+#define IOAM6_TYPE_PREALLOC 0
+  __u8 type;
+} __attribute__((packed));
+struct ioam6_trace_hdr {
+  __be16 namespace_id;
+#ifdef __LITTLE_ENDIAN_BITFIELD
+  __u8 : 1, : 1, overflow : 1, nodelen : 5;
+  __u8 remlen : 7, : 1;
+  union {
+    __be32 type_be32;
+    struct {
+      __u32 bit7 : 1, bit6 : 1, bit5 : 1, bit4 : 1, bit3 : 1, bit2 : 1, bit1 : 1, bit0 : 1, bit15 : 1, bit14 : 1, bit13 : 1, bit12 : 1, bit11 : 1, bit10 : 1, bit9 : 1, bit8 : 1, bit23 : 1, bit22 : 1, bit21 : 1, bit20 : 1, bit19 : 1, bit18 : 1, bit17 : 1, bit16 : 1, : 8;
+    } type;
+  };
+#elif defined(__BIG_ENDIAN_BITFIELD)
+  __u8 nodelen : 5, overflow : 1, : 1, : 1;
+  __u8 : 1, remlen : 7;
+  union {
+    __be32 type_be32;
+    struct {
+      __u32 bit0 : 1, bit1 : 1, bit2 : 1, bit3 : 1, bit4 : 1, bit5 : 1, bit6 : 1, bit7 : 1, bit8 : 1, bit9 : 1, bit10 : 1, bit11 : 1, bit12 : 1, bit13 : 1, bit14 : 1, bit15 : 1, bit16 : 1, bit17 : 1, bit18 : 1, bit19 : 1, bit20 : 1, bit21 : 1, bit22 : 1, bit23 : 1, : 8;
+    } type;
+  };
+#else
+#error "Please fix <asm/byteorder.h>"
+#endif
+#define IOAM6_TRACE_DATA_SIZE_MAX 244
+  __u8 data[0];
+} __attribute__((packed));
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h
new file mode 100644
index 0000000..1d00c47
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h
@@ -0,0 +1,48 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOAM6_GENL_H
+#define _UAPI_LINUX_IOAM6_GENL_H
+#define IOAM6_GENL_NAME "IOAM6"
+#define IOAM6_GENL_VERSION 0x1
+enum {
+  IOAM6_ATTR_UNSPEC,
+  IOAM6_ATTR_NS_ID,
+  IOAM6_ATTR_NS_DATA,
+  IOAM6_ATTR_NS_DATA_WIDE,
+#define IOAM6_MAX_SCHEMA_DATA_LEN (255 * 4)
+  IOAM6_ATTR_SC_ID,
+  IOAM6_ATTR_SC_DATA,
+  IOAM6_ATTR_SC_NONE,
+  IOAM6_ATTR_PAD,
+  __IOAM6_ATTR_MAX,
+};
+#define IOAM6_ATTR_MAX (__IOAM6_ATTR_MAX - 1)
+enum {
+  IOAM6_CMD_UNSPEC,
+  IOAM6_CMD_ADD_NAMESPACE,
+  IOAM6_CMD_DEL_NAMESPACE,
+  IOAM6_CMD_DUMP_NAMESPACES,
+  IOAM6_CMD_ADD_SCHEMA,
+  IOAM6_CMD_DEL_SCHEMA,
+  IOAM6_CMD_DUMP_SCHEMAS,
+  IOAM6_CMD_NS_SET_SCHEMA,
+  __IOAM6_CMD_MAX,
+};
+#define IOAM6_CMD_MAX (__IOAM6_CMD_MAX - 1)
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
similarity index 64%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
index bb45c3d..7426225 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
@@ -16,14 +16,23 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_LINUX_IOAM6_IPTUNNEL_H
+#define _UAPI_LINUX_IOAM6_IPTUNNEL_H
+enum {
+  __IOAM6_IPTUNNEL_MODE_MIN,
+  IOAM6_IPTUNNEL_MODE_INLINE,
+  IOAM6_IPTUNNEL_MODE_ENCAP,
+  IOAM6_IPTUNNEL_MODE_AUTO,
+  __IOAM6_IPTUNNEL_MODE_MAX,
 };
+#define IOAM6_IPTUNNEL_MODE_MIN (__IOAM6_IPTUNNEL_MODE_MIN + 1)
+#define IOAM6_IPTUNNEL_MODE_MAX (__IOAM6_IPTUNNEL_MODE_MAX - 1)
+enum {
+  IOAM6_IPTUNNEL_UNSPEC,
+  IOAM6_IPTUNNEL_MODE,
+  IOAM6_IPTUNNEL_DST,
+  IOAM6_IPTUNNEL_TRACE,
+  __IOAM6_IPTUNNEL_MAX,
+};
+#define IOAM6_IPTUNNEL_MAX (__IOAM6_IPTUNNEL_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/iommu.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/iommu.h
index 1802fb4..0a0af92 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/iommu.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/iommu.h
@@ -132,7 +132,8 @@
 #define IOMMU_SVA_VTD_GPASID_PWT (1 << 3)
 #define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4)
 #define IOMMU_SVA_VTD_GPASID_CD (1 << 5)
-#define IOMMU_SVA_VTD_GPASID_LAST (1 << 6)
+#define IOMMU_SVA_VTD_GPASID_WPE (1 << 6)
+#define IOMMU_SVA_VTD_GPASID_LAST (1 << 7)
   __u64 flags;
   __u32 pat;
   __u32 emt;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioprio.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioprio.h
new file mode 100644
index 0000000..7a90d87
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ioprio.h
@@ -0,0 +1,42 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOPRIO_H
+#define _UAPI_LINUX_IOPRIO_H
+#define IOPRIO_CLASS_SHIFT 13
+#define IOPRIO_CLASS_MASK 0x07
+#define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1)
+#define IOPRIO_PRIO_CLASS(ioprio) (((ioprio) >> IOPRIO_CLASS_SHIFT) & IOPRIO_CLASS_MASK)
+#define IOPRIO_PRIO_DATA(ioprio) ((ioprio) & IOPRIO_PRIO_MASK)
+#define IOPRIO_PRIO_VALUE(class,data) ((((class) & IOPRIO_CLASS_MASK) << IOPRIO_CLASS_SHIFT) | ((data) & IOPRIO_PRIO_MASK))
+enum {
+  IOPRIO_CLASS_NONE,
+  IOPRIO_CLASS_RT,
+  IOPRIO_CLASS_BE,
+  IOPRIO_CLASS_IDLE,
+};
+#define IOPRIO_NR_LEVELS 8
+#define IOPRIO_BE_NR IOPRIO_NR_LEVELS
+enum {
+  IOPRIO_WHO_PROCESS = 1,
+  IOPRIO_WHO_PGRP,
+  IOPRIO_WHO_USER,
+};
+#define IOPRIO_NORM 4
+#define IOPRIO_BE_NORM IOPRIO_NORM
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ip.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ip.h
index 564fd8d..9571cac 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ip.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ip.h
@@ -146,6 +146,7 @@
   IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
   IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
   IPV4_DEVCONF_BC_FORWARDING,
+  IPV4_DEVCONF_ARP_EVICT_NOCARRIER,
   __IPV4_DEVCONF_MAX
 };
 #define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipmi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipmi.h
index cf9928f..dd88f2f 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipmi.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipmi.h
@@ -40,6 +40,14 @@
   unsigned char slave_addr;
   unsigned char lun;
 };
+#define IPMI_IPMB_DIRECT_ADDR_TYPE 0x81
+struct ipmi_ipmb_direct_addr {
+  int addr_type;
+  short channel;
+  unsigned char slave_addr;
+  unsigned char rs_lun;
+  unsigned char rq_lun;
+};
 #define IPMI_LAN_ADDR_TYPE 0x04
 struct ipmi_lan_addr {
   int addr_type;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipv6.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipv6.h
index 438cacc..b3db9ce 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipv6.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipv6.h
@@ -144,6 +144,10 @@
   DEVCONF_NDISC_TCLASS,
   DEVCONF_RPL_SEG_ENABLED,
   DEVCONF_RA_DEFRTR_METRIC,
+  DEVCONF_IOAM6_ENABLED,
+  DEVCONF_IOAM6_ID,
+  DEVCONF_IOAM6_ID_WIDE,
+  DEVCONF_NDISC_EVICT_NOCARRIER,
   DEVCONF_MAX
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipx.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipx.h
deleted file mode 100644
index d8a5424..0000000
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ipx.h
+++ /dev/null
@@ -1,90 +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 _IPX_H_
-#define _IPX_H_
-#include <linux/libc-compat.h>
-#include <linux/types.h>
-#include <linux/sockios.h>
-#include <linux/socket.h>
-#define IPX_NODE_LEN 6
-#define IPX_MTU 576
-#if __UAPI_DEF_SOCKADDR_IPX
-struct sockaddr_ipx {
-  __kernel_sa_family_t sipx_family;
-  __be16 sipx_port;
-  __be32 sipx_network;
-  unsigned char sipx_node[IPX_NODE_LEN];
-  __u8 sipx_type;
-  unsigned char sipx_zero;
-};
-#endif
-#define sipx_special sipx_port
-#define sipx_action sipx_zero
-#define IPX_DLTITF 0
-#define IPX_CRTITF 1
-#if __UAPI_DEF_IPX_ROUTE_DEFINITION
-struct ipx_route_definition {
-  __be32 ipx_network;
-  __be32 ipx_router_network;
-  unsigned char ipx_router_node[IPX_NODE_LEN];
-};
-#endif
-#if __UAPI_DEF_IPX_INTERFACE_DEFINITION
-struct ipx_interface_definition {
-  __be32 ipx_network;
-  unsigned char ipx_device[16];
-  unsigned char ipx_dlink_type;
-#define IPX_FRAME_NONE 0
-#define IPX_FRAME_SNAP 1
-#define IPX_FRAME_8022 2
-#define IPX_FRAME_ETHERII 3
-#define IPX_FRAME_8023 4
-#define IPX_FRAME_TR_8022 5
-  unsigned char ipx_special;
-#define IPX_SPECIAL_NONE 0
-#define IPX_PRIMARY 1
-#define IPX_INTERNAL 2
-  unsigned char ipx_node[IPX_NODE_LEN];
-};
-#endif
-#if __UAPI_DEF_IPX_CONFIG_DATA
-struct ipx_config_data {
-  unsigned char ipxcfg_auto_select_primary;
-  unsigned char ipxcfg_auto_create_interfaces;
-};
-#endif
-#if __UAPI_DEF_IPX_ROUTE_DEF
-struct ipx_route_def {
-  __be32 ipx_network;
-  __be32 ipx_router_network;
-#define IPX_ROUTE_NO_ROUTER 0
-  unsigned char ipx_router_node[IPX_NODE_LEN];
-  unsigned char ipx_device[16];
-  unsigned short ipx_flags;
-#define IPX_RT_SNAP 8
-#define IPX_RT_8022 4
-#define IPX_RT_BLUEBOOK 2
-#define IPX_RT_ROUTED 1
-};
-#endif
-#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE)
-#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1)
-#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2)
-#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3)
-#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kexec.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kexec.h
index b2dc88f..2e3bd0c 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kexec.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kexec.h
@@ -39,6 +39,7 @@
 #define KEXEC_ARCH_MIPS_LE (10 << 16)
 #define KEXEC_ARCH_MIPS (8 << 16)
 #define KEXEC_ARCH_AARCH64 (183 << 16)
+#define KEXEC_ARCH_RISCV (243 << 16)
 #define KEXEC_SEGMENT_MAX 16
 struct kexec_segment {
   const void * buf;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
index 73ef5de..c52ac64 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
@@ -21,7 +21,7 @@
 #include <drm/drm.h>
 #include <linux/ioctl.h>
 #define KFD_IOCTL_MAJOR_VERSION 1
-#define KFD_IOCTL_MINOR_VERSION 3
+#define KFD_IOCTL_MINOR_VERSION 6
 struct kfd_ioctl_get_version_args {
   __u32 major_version;
   __u32 minor_version;
@@ -244,6 +244,7 @@
 #define KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE (1 << 28)
 #define KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM (1 << 27)
 #define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT (1 << 26)
+#define KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED (1 << 25)
 struct kfd_ioctl_alloc_memory_of_gpu_args {
   __u64 va_addr;
   __u64 size;
@@ -303,6 +304,44 @@
   KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL = 0,
   KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL = 4,
 };
+#define KFD_IOCTL_SVM_FLAG_HOST_ACCESS 0x00000001
+#define KFD_IOCTL_SVM_FLAG_COHERENT 0x00000002
+#define KFD_IOCTL_SVM_FLAG_HIVE_LOCAL 0x00000004
+#define KFD_IOCTL_SVM_FLAG_GPU_RO 0x00000008
+#define KFD_IOCTL_SVM_FLAG_GPU_EXEC 0x00000010
+#define KFD_IOCTL_SVM_FLAG_GPU_READ_MOSTLY 0x00000020
+enum kfd_ioctl_svm_op {
+  KFD_IOCTL_SVM_OP_SET_ATTR,
+  KFD_IOCTL_SVM_OP_GET_ATTR
+};
+enum kfd_ioctl_svm_location {
+  KFD_IOCTL_SVM_LOCATION_SYSMEM = 0,
+  KFD_IOCTL_SVM_LOCATION_UNDEFINED = 0xffffffff
+};
+enum kfd_ioctl_svm_attr_type {
+  KFD_IOCTL_SVM_ATTR_PREFERRED_LOC,
+  KFD_IOCTL_SVM_ATTR_PREFETCH_LOC,
+  KFD_IOCTL_SVM_ATTR_ACCESS,
+  KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE,
+  KFD_IOCTL_SVM_ATTR_NO_ACCESS,
+  KFD_IOCTL_SVM_ATTR_SET_FLAGS,
+  KFD_IOCTL_SVM_ATTR_CLR_FLAGS,
+  KFD_IOCTL_SVM_ATTR_GRANULARITY
+};
+struct kfd_ioctl_svm_attribute {
+  __u32 type;
+  __u32 value;
+};
+struct kfd_ioctl_svm_args {
+  __u64 start_addr;
+  __u64 size;
+  __u32 op;
+  __u32 nattr;
+  struct kfd_ioctl_svm_attribute attrs[0];
+};
+struct kfd_ioctl_set_xnack_mode_args {
+  __s32 xnack_enabled;
+};
 #define AMDKFD_IOCTL_BASE 'K'
 #define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
 #define AMDKFD_IOR(nr,type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
@@ -339,6 +378,8 @@
 #define AMDKFD_IOC_IMPORT_DMABUF AMDKFD_IOWR(0x1D, struct kfd_ioctl_import_dmabuf_args)
 #define AMDKFD_IOC_ALLOC_QUEUE_GWS AMDKFD_IOWR(0x1E, struct kfd_ioctl_alloc_queue_gws_args)
 #define AMDKFD_IOC_SMI_EVENTS AMDKFD_IOWR(0x1F, struct kfd_ioctl_smi_events_args)
+#define AMDKFD_IOC_SVM AMDKFD_IOWR(0x20, struct kfd_ioctl_svm_args)
+#define AMDKFD_IOC_SET_XNACK_MODE AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)
 #define AMDKFD_COMMAND_START 0x01
-#define AMDKFD_COMMAND_END 0x20
+#define AMDKFD_COMMAND_END 0x22
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h
new file mode 100644
index 0000000..9604b03
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 KFD_SYSFS_H_INCLUDED
+#define KFD_SYSFS_H_INCLUDED
+#define HSA_CAP_HOT_PLUGGABLE 0x00000001
+#define HSA_CAP_ATS_PRESENT 0x00000002
+#define HSA_CAP_SHARED_WITH_GRAPHICS 0x00000004
+#define HSA_CAP_QUEUE_SIZE_POW2 0x00000008
+#define HSA_CAP_QUEUE_SIZE_32BIT 0x00000010
+#define HSA_CAP_QUEUE_IDLE_EVENT 0x00000020
+#define HSA_CAP_VA_LIMIT 0x00000040
+#define HSA_CAP_WATCH_POINTS_SUPPORTED 0x00000080
+#define HSA_CAP_WATCH_POINTS_TOTALBITS_MASK 0x00000f00
+#define HSA_CAP_WATCH_POINTS_TOTALBITS_SHIFT 8
+#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_MASK 0x00003000
+#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_SHIFT 12
+#define HSA_CAP_DOORBELL_TYPE_PRE_1_0 0x0
+#define HSA_CAP_DOORBELL_TYPE_1_0 0x1
+#define HSA_CAP_DOORBELL_TYPE_2_0 0x2
+#define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000
+#define HSA_CAP_RESERVED_WAS_SRAM_EDCSUPPORTED 0x00080000
+#define HSA_CAP_MEM_EDCSUPPORTED 0x00100000
+#define HSA_CAP_RASEVENTNOTIFY 0x00200000
+#define HSA_CAP_ASIC_REVISION_MASK 0x03c00000
+#define HSA_CAP_ASIC_REVISION_SHIFT 22
+#define HSA_CAP_SRAM_EDCSUPPORTED 0x04000000
+#define HSA_CAP_SVMAPI_SUPPORTED 0x08000000
+#define HSA_CAP_FLAGS_COHERENTHOSTACCESS 0x10000000
+#define HSA_CAP_RESERVED 0xe00f8000
+#define HSA_MEM_HEAP_TYPE_SYSTEM 0
+#define HSA_MEM_HEAP_TYPE_FB_PUBLIC 1
+#define HSA_MEM_HEAP_TYPE_FB_PRIVATE 2
+#define HSA_MEM_HEAP_TYPE_GPU_GDS 3
+#define HSA_MEM_HEAP_TYPE_GPU_LDS 4
+#define HSA_MEM_HEAP_TYPE_GPU_SCRATCH 5
+#define HSA_MEM_FLAGS_HOT_PLUGGABLE 0x00000001
+#define HSA_MEM_FLAGS_NON_VOLATILE 0x00000002
+#define HSA_MEM_FLAGS_RESERVED 0xfffffffc
+#define HSA_CACHE_TYPE_DATA 0x00000001
+#define HSA_CACHE_TYPE_INSTRUCTION 0x00000002
+#define HSA_CACHE_TYPE_CPU 0x00000004
+#define HSA_CACHE_TYPE_HSACU 0x00000008
+#define HSA_CACHE_TYPE_RESERVED 0xfffffff0
+#define HSA_IOLINK_TYPE_UNDEFINED 0
+#define HSA_IOLINK_TYPE_HYPERTRANSPORT 1
+#define HSA_IOLINK_TYPE_PCIEXPRESS 2
+#define HSA_IOLINK_TYPE_AMBA 3
+#define HSA_IOLINK_TYPE_MIPI 4
+#define HSA_IOLINK_TYPE_QPI_1_1 5
+#define HSA_IOLINK_TYPE_RESERVED1 6
+#define HSA_IOLINK_TYPE_RESERVED2 7
+#define HSA_IOLINK_TYPE_RAPID_IO 8
+#define HSA_IOLINK_TYPE_INFINIBAND 9
+#define HSA_IOLINK_TYPE_RESERVED3 10
+#define HSA_IOLINK_TYPE_XGMI 11
+#define HSA_IOLINK_TYPE_XGOP 12
+#define HSA_IOLINK_TYPE_GZ 13
+#define HSA_IOLINK_TYPE_ETHERNET_RDMA 14
+#define HSA_IOLINK_TYPE_RDMA_OTHER 15
+#define HSA_IOLINK_TYPE_OTHER 16
+#define HSA_IOLINK_FLAGS_ENABLED (1 << 0)
+#define HSA_IOLINK_FLAGS_NON_COHERENT (1 << 1)
+#define HSA_IOLINK_FLAGS_NO_ATOMICS_32_BIT (1 << 2)
+#define HSA_IOLINK_FLAGS_NO_ATOMICS_64_BIT (1 << 3)
+#define HSA_IOLINK_FLAGS_NO_PEER_TO_PEER_DMA (1 << 4)
+#define HSA_IOLINK_FLAGS_RESERVED 0xffffffe0
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kvm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kvm.h
index 81fa779..1cf7182 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kvm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kvm.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef __LINUX_KVM_H
 #define __LINUX_KVM_H
+#include <linux/const.h>
 #include <linux/types.h>
 #include <linux/compiler.h>
 #include <linux/ioctl.h>
@@ -214,10 +215,12 @@
 #define KVM_EXIT_AP_RESET_HOLD 32
 #define KVM_EXIT_X86_BUS_LOCK 33
 #define KVM_EXIT_XEN 34
+#define KVM_EXIT_RISCV_SBI 35
 #define KVM_INTERNAL_ERROR_EMULATION 1
 #define KVM_INTERNAL_ERROR_SIMUL_EX 2
 #define KVM_INTERNAL_ERROR_DELIVERY_EV 3
 #define KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON 4
+#define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0)
 struct kvm_run {
   __u8 request_interrupt_window;
   __u8 immediate_exit;
@@ -300,6 +303,17 @@
       __u64 data[16];
     } internal;
     struct {
+      __u32 suberror;
+      __u32 ndata;
+      __u64 flags;
+      union {
+        struct {
+          __u8 insn_size;
+          __u8 insn_bytes[15];
+        };
+      };
+    } emulation_failure;
+    struct {
       __u64 gprs[32];
     } osi;
     struct {
@@ -352,6 +366,12 @@
       __u64 data;
     } msr;
     struct kvm_xen_exit xen;
+    struct {
+      unsigned long extension_id;
+      unsigned long function_id;
+      unsigned long args[6];
+      unsigned long ret[2];
+    } riscv_sbi;
     char padding[256];
   };
 #define SYNC_REGS_SIZE_BYTES 2048
@@ -854,6 +874,22 @@
 #define KVM_CAP_DIRTY_LOG_RING 192
 #define KVM_CAP_X86_BUS_LOCK_EXIT 193
 #define KVM_CAP_PPC_DAWR1 194
+#define KVM_CAP_SET_GUEST_DEBUG2 195
+#define KVM_CAP_SGX_ATTRIBUTE 196
+#define KVM_CAP_VM_COPY_ENC_CONTEXT_FROM 197
+#define KVM_CAP_PTP_KVM 198
+#define KVM_CAP_HYPERV_ENFORCE_CPUID 199
+#define KVM_CAP_SREGS2 200
+#define KVM_CAP_EXIT_HYPERCALL 201
+#define KVM_CAP_PPC_RPT_INVALIDATE 202
+#define KVM_CAP_BINARY_STATS_FD 203
+#define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
+#define KVM_CAP_ARM_MTE 205
+#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206
+#define KVM_CAP_VM_GPA_BITS 207
+#define KVM_CAP_XSAVE2 208
+#define KVM_CAP_SYS_ATTRIBUTES 209
+#define KVM_CAP_PPC_AIL_MODE_3 210
 #ifdef KVM_CAP_IRQ_ROUTING
 struct kvm_irq_routing_irqchip {
   __u32 irqchip;
@@ -879,10 +915,17 @@
   __u32 vcpu;
   __u32 sint;
 };
+struct kvm_irq_routing_xen_evtchn {
+  __u32 port;
+  __u32 vcpu;
+  __u32 priority;
+};
+#define KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL ((__u32) (- 1))
 #define KVM_IRQ_ROUTING_IRQCHIP 1
 #define KVM_IRQ_ROUTING_MSI 2
 #define KVM_IRQ_ROUTING_S390_ADAPTER 3
 #define KVM_IRQ_ROUTING_HV_SINT 4
+#define KVM_IRQ_ROUTING_XEN_EVTCHN 5
 struct kvm_irq_routing_entry {
   __u32 gsi;
   __u32 type;
@@ -893,6 +936,7 @@
     struct kvm_irq_routing_msi msi;
     struct kvm_irq_routing_s390_adapter adapter;
     struct kvm_irq_routing_hv_sint hv_sint;
+    struct kvm_irq_routing_xen_evtchn xen_evtchn;
     __u32 pad[8];
   } u;
 };
@@ -918,6 +962,7 @@
 #define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1)
 #define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2)
 #define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
+#define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4)
 struct kvm_xen_hvm_config {
   __u32 flags;
   __u32 msr;
@@ -938,10 +983,15 @@
   __u8 pad[16];
 };
 #define KVM_CLOCK_TSC_STABLE 2
+#define KVM_CLOCK_REALTIME (1 << 2)
+#define KVM_CLOCK_HOST_TSC (1 << 3)
 struct kvm_clock_data {
   __u64 clock;
   __u32 flags;
-  __u32 pad[9];
+  __u32 pad0;
+  __u64 realtime;
+  __u64 host_tsc;
+  __u32 pad[4];
 };
 #define KVM_MMU_FSL_BOOKE_NOHV 0
 #define KVM_MMU_FSL_BOOKE_HV 1
@@ -1105,6 +1155,7 @@
 #define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char)
 #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
 #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3)
+#define KVM_ARM_MTE_COPY_TAGS _IOR(KVMIO, 0xb4, struct kvm_arm_copy_mte_tags)
 #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
 #define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr)
 #define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr)
@@ -1230,6 +1281,8 @@
 #define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
 #define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
 #define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
+#define KVM_GET_SREGS2 _IOR(KVMIO, 0xcc, struct kvm_sregs2)
+#define KVM_SET_SREGS2 _IOW(KVMIO, 0xcd, struct kvm_sregs2)
 struct kvm_xen_vcpu_attr {
   __u16 type;
   __u16 pad[3];
@@ -1274,6 +1327,7 @@
   KVM_SEV_DBG_ENCRYPT,
   KVM_SEV_CERT_EXPORT,
   KVM_SEV_GET_ATTESTATION_REPORT,
+  KVM_SEV_SEND_CANCEL,
   KVM_SEV_NR_MAX,
 };
 struct kvm_sev_cmd {
@@ -1321,6 +1375,41 @@
   __u64 uaddr;
   __u32 len;
 };
+struct kvm_sev_send_start {
+  __u32 policy;
+  __u64 pdh_cert_uaddr;
+  __u32 pdh_cert_len;
+  __u64 plat_certs_uaddr;
+  __u32 plat_certs_len;
+  __u64 amd_certs_uaddr;
+  __u32 amd_certs_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_send_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
+struct kvm_sev_receive_start {
+  __u32 handle;
+  __u32 policy;
+  __u64 pdh_uaddr;
+  __u32 pdh_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_receive_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
 #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
 #define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
@@ -1381,8 +1470,8 @@
 #ifndef KVM_DIRTY_LOG_PAGE_OFFSET
 #define KVM_DIRTY_LOG_PAGE_OFFSET 0
 #endif
-#define KVM_DIRTY_GFN_F_DIRTY BIT(0)
-#define KVM_DIRTY_GFN_F_RESET BIT(1)
+#define KVM_DIRTY_GFN_F_DIRTY _BITUL(0)
+#define KVM_DIRTY_GFN_F_RESET _BITUL(1)
 #define KVM_DIRTY_GFN_F_MASK 0x3
 struct kvm_dirty_gfn {
   __u32 flags;
@@ -1391,4 +1480,42 @@
 };
 #define KVM_BUS_LOCK_DETECTION_OFF (1 << 0)
 #define KVM_BUS_LOCK_DETECTION_EXIT (1 << 1)
+struct kvm_stats_header {
+  __u32 flags;
+  __u32 name_size;
+  __u32 num_desc;
+  __u32 id_offset;
+  __u32 desc_offset;
+  __u32 data_offset;
+};
+#define KVM_STATS_TYPE_SHIFT 0
+#define KVM_STATS_TYPE_MASK (0xF << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_CUMULATIVE (0x0 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_INSTANT (0x1 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_PEAK (0x2 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_LINEAR_HIST (0x3 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_LOG_HIST (0x4 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_MAX KVM_STATS_TYPE_LOG_HIST
+#define KVM_STATS_UNIT_SHIFT 4
+#define KVM_STATS_UNIT_MASK (0xF << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_NONE (0x0 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_BYTES (0x1 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_SECONDS (0x2 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_CYCLES (0x3 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_MAX KVM_STATS_UNIT_CYCLES
+#define KVM_STATS_BASE_SHIFT 8
+#define KVM_STATS_BASE_MASK (0xF << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_POW10 (0x0 << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_POW2 (0x1 << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_MAX KVM_STATS_BASE_POW2
+struct kvm_stats_desc {
+  __u32 flags;
+  __s16 exponent;
+  __u16 size;
+  __u32 offset;
+  __u32 bucket_size;
+  char name[];
+};
+#define KVM_GET_STATS_FD _IO(KVMIO, 0xce)
+#define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kvm_para.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kvm_para.h
index 9a4dd29..85084c2 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kvm_para.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/kvm_para.h
@@ -35,5 +35,6 @@
 #define KVM_HC_CLOCK_PAIRING 9
 #define KVM_HC_SEND_IPI 10
 #define KVM_HC_SCHED_YIELD 11
+#define KVM_HC_MAP_GPA_RANGE 12
 #include <asm/kvm_para.h>
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/landlock.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/landlock.h
new file mode 100644
index 0000000..50d79d8
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/landlock.h
@@ -0,0 +1,46 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_LANDLOCK_H
+#define _UAPI_LINUX_LANDLOCK_H
+#include <linux/types.h>
+struct landlock_ruleset_attr {
+  __u64 handled_access_fs;
+};
+#define LANDLOCK_CREATE_RULESET_VERSION (1U << 0)
+enum landlock_rule_type {
+  LANDLOCK_RULE_PATH_BENEATH = 1,
+};
+struct landlock_path_beneath_attr {
+  __u64 allowed_access;
+  __s32 parent_fd;
+} __attribute__((packed));
+#define LANDLOCK_ACCESS_FS_EXECUTE (1ULL << 0)
+#define LANDLOCK_ACCESS_FS_WRITE_FILE (1ULL << 1)
+#define LANDLOCK_ACCESS_FS_READ_FILE (1ULL << 2)
+#define LANDLOCK_ACCESS_FS_READ_DIR (1ULL << 3)
+#define LANDLOCK_ACCESS_FS_REMOVE_DIR (1ULL << 4)
+#define LANDLOCK_ACCESS_FS_REMOVE_FILE (1ULL << 5)
+#define LANDLOCK_ACCESS_FS_MAKE_CHAR (1ULL << 6)
+#define LANDLOCK_ACCESS_FS_MAKE_DIR (1ULL << 7)
+#define LANDLOCK_ACCESS_FS_MAKE_REG (1ULL << 8)
+#define LANDLOCK_ACCESS_FS_MAKE_SOCK (1ULL << 9)
+#define LANDLOCK_ACCESS_FS_MAKE_FIFO (1ULL << 10)
+#define LANDLOCK_ACCESS_FS_MAKE_BLOCK (1ULL << 11)
+#define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12)
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/lightnvm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/lightnvm.h
deleted file mode 100644
index b3ac317..0000000
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/lightnvm.h
+++ /dev/null
@@ -1,167 +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_LINUX_LIGHTNVM_H
-#define _UAPI_LINUX_LIGHTNVM_H
-#include <stdio.h>
-#include <sys/ioctl.h>
-#define DISK_NAME_LEN 32
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#define NVM_TTYPE_NAME_MAX 48
-#define NVM_TTYPE_MAX 63
-#define NVM_MMTYPE_LEN 8
-#define NVM_CTRL_FILE "/dev/lightnvm/control"
-struct nvm_ioctl_info_tgt {
-  __u32 version[3];
-  __u32 reserved;
-  char tgtname[NVM_TTYPE_NAME_MAX];
-};
-struct nvm_ioctl_info {
-  __u32 version[3];
-  __u16 tgtsize;
-  __u16 reserved16;
-  __u32 reserved[12];
-  struct nvm_ioctl_info_tgt tgts[NVM_TTYPE_MAX];
-};
-enum {
-  NVM_DEVICE_ACTIVE = 1 << 0,
-};
-struct nvm_ioctl_device_info {
-  char devname[DISK_NAME_LEN];
-  char bmname[NVM_TTYPE_NAME_MAX];
-  __u32 bmversion[3];
-  __u32 flags;
-  __u32 reserved[8];
-};
-struct nvm_ioctl_get_devices {
-  __u32 nr_devices;
-  __u32 reserved[31];
-  struct nvm_ioctl_device_info info[31];
-};
-struct nvm_ioctl_create_simple {
-  __u32 lun_begin;
-  __u32 lun_end;
-};
-struct nvm_ioctl_create_extended {
-  __u16 lun_begin;
-  __u16 lun_end;
-  __u16 op;
-  __u16 rsv;
-};
-enum {
-  NVM_CONFIG_TYPE_SIMPLE = 0,
-  NVM_CONFIG_TYPE_EXTENDED = 1,
-};
-struct nvm_ioctl_create_conf {
-  __u32 type;
-  union {
-    struct nvm_ioctl_create_simple s;
-    struct nvm_ioctl_create_extended e;
-  };
-};
-enum {
-  NVM_TARGET_FACTORY = 1 << 0,
-};
-struct nvm_ioctl_create {
-  char dev[DISK_NAME_LEN];
-  char tgttype[NVM_TTYPE_NAME_MAX];
-  char tgtname[DISK_NAME_LEN];
-  __u32 flags;
-  struct nvm_ioctl_create_conf conf;
-};
-struct nvm_ioctl_remove {
-  char tgtname[DISK_NAME_LEN];
-  __u32 flags;
-};
-struct nvm_ioctl_dev_init {
-  char dev[DISK_NAME_LEN];
-  char mmtype[NVM_MMTYPE_LEN];
-  __u32 flags;
-};
-enum {
-  NVM_FACTORY_ERASE_ONLY_USER = 1 << 0,
-  NVM_FACTORY_RESET_HOST_BLKS = 1 << 1,
-  NVM_FACTORY_RESET_GRWN_BBLKS = 1 << 2,
-  NVM_FACTORY_NR_BITS = 1 << 3,
-};
-struct nvm_ioctl_dev_factory {
-  char dev[DISK_NAME_LEN];
-  __u32 flags;
-};
-struct nvm_user_vio {
-  __u8 opcode;
-  __u8 flags;
-  __u16 control;
-  __u16 nppas;
-  __u16 rsvd;
-  __u64 metadata;
-  __u64 addr;
-  __u64 ppa_list;
-  __u32 metadata_len;
-  __u32 data_len;
-  __u64 status;
-  __u32 result;
-  __u32 rsvd3[3];
-};
-struct nvm_passthru_vio {
-  __u8 opcode;
-  __u8 flags;
-  __u8 rsvd[2];
-  __u32 nsid;
-  __u32 cdw2;
-  __u32 cdw3;
-  __u64 metadata;
-  __u64 addr;
-  __u32 metadata_len;
-  __u32 data_len;
-  __u64 ppa_list;
-  __u16 nppas;
-  __u16 control;
-  __u32 cdw13;
-  __u32 cdw14;
-  __u32 cdw15;
-  __u64 status;
-  __u32 result;
-  __u32 timeout_ms;
-};
-enum {
-  NVM_INFO_CMD = 0x20,
-  NVM_GET_DEVICES_CMD,
-  NVM_DEV_CREATE_CMD,
-  NVM_DEV_REMOVE_CMD,
-  NVM_DEV_INIT_CMD,
-  NVM_DEV_FACTORY_CMD,
-  NVM_DEV_VIO_ADMIN_CMD = 0x41,
-  NVM_DEV_VIO_CMD = 0x42,
-  NVM_DEV_VIO_USER_CMD = 0x43,
-};
-#define NVM_IOCTL 'L'
-#define NVM_INFO _IOWR(NVM_IOCTL, NVM_INFO_CMD, struct nvm_ioctl_info)
-#define NVM_GET_DEVICES _IOR(NVM_IOCTL, NVM_GET_DEVICES_CMD, struct nvm_ioctl_get_devices)
-#define NVM_DEV_CREATE _IOW(NVM_IOCTL, NVM_DEV_CREATE_CMD, struct nvm_ioctl_create)
-#define NVM_DEV_REMOVE _IOW(NVM_IOCTL, NVM_DEV_REMOVE_CMD, struct nvm_ioctl_remove)
-#define NVM_DEV_INIT _IOW(NVM_IOCTL, NVM_DEV_INIT_CMD, struct nvm_ioctl_dev_init)
-#define NVM_DEV_FACTORY _IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, struct nvm_ioctl_dev_factory)
-#define NVME_NVM_IOCTL_IO_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_USER_CMD, struct nvm_passthru_vio)
-#define NVME_NVM_IOCTL_ADMIN_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_ADMIN_CMD, struct nvm_passthru_vio)
-#define NVME_NVM_IOCTL_SUBMIT_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_CMD, struct nvm_user_vio)
-#define NVM_VERSION_MAJOR 1
-#define NVM_VERSION_MINOR 0
-#define NVM_VERSION_PATCHLEVEL 0
-#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/lwtunnel.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
index f472150..e6fb536 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
@@ -29,6 +29,7 @@
   LWTUNNEL_ENCAP_BPF,
   LWTUNNEL_ENCAP_SEG6_LOCAL,
   LWTUNNEL_ENCAP_RPL,
+  LWTUNNEL_ENCAP_IOAM6,
   __LWTUNNEL_ENCAP_MAX,
 };
 #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/magic.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/magic.h
index 479ae81..6563411 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/magic.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/magic.h
@@ -22,6 +22,7 @@
 #define AFFS_SUPER_MAGIC 0xadff
 #define AFS_SUPER_MAGIC 0x5346414F
 #define AUTOFS_SUPER_MAGIC 0x0187
+#define CEPH_SUPER_MAGIC 0x00c36400
 #define CODA_SUPER_MAGIC 0x73757245
 #define CRAMFS_MAGIC 0x28cd3d45
 #define CRAMFS_MAGIC_WEND 0x453dcd28
@@ -51,12 +52,14 @@
 #define EFIVARFS_MAGIC 0xde5e81e4
 #define HOSTFS_SUPER_MAGIC 0x00c0ffee
 #define OVERLAYFS_SUPER_MAGIC 0x794c7630
+#define FUSE_SUPER_MAGIC 0x65735546
 #define MINIX_SUPER_MAGIC 0x137F
 #define MINIX_SUPER_MAGIC2 0x138F
 #define MINIX2_SUPER_MAGIC 0x2468
 #define MINIX2_SUPER_MAGIC2 0x2478
 #define MINIX3_SUPER_MAGIC 0x4d5a
 #define MSDOS_SUPER_MAGIC 0x4d44
+#define EXFAT_SUPER_MAGIC 0x2011BAB0
 #define NCP_SUPER_MAGIC 0x564c
 #define NFS_SUPER_MAGIC 0x6969
 #define OCFS2_SUPER_MAGIC 0x7461636f
@@ -69,6 +72,8 @@
 #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
 #define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs"
 #define SMB_SUPER_MAGIC 0x517B
+#define CIFS_SUPER_MAGIC 0xFF534D42
+#define SMB2_SUPER_MAGIC 0xFE534D42
 #define CGROUP_SUPER_MAGIC 0x27e0eb
 #define CGROUP2_SUPER_MAGIC 0x63677270
 #define RDTGROUP_SUPER_MAGIC 0x7655821
@@ -100,4 +105,5 @@
 #define DEVMEM_MAGIC 0x454d444d
 #define Z3FOLD_MAGIC 0x33
 #define PPC_CMM_MAGIC 0xc7571590
+#define SECRETMEM_MAGIC 0x5345434d
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/major.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/major.h
index 7768d7b..f5e2cfb 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/major.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/major.h
@@ -45,8 +45,6 @@
 #define GOLDSTAR_CDROM_MAJOR 16
 #define OPTICS_CDROM_MAJOR 17
 #define SANYO_CDROM_MAJOR 18
-#define CYCLADES_MAJOR 19
-#define CYCLADESAUX_MAJOR 20
 #define MITSUMI_X_CDROM_MAJOR 20
 #define MFM_ACORN_MAJOR 21
 #define SCSI_GENERIC_MAJOR 21
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h
new file mode 100644
index 0000000..657df6c
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h
@@ -0,0 +1,56 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 MAP_TO_14SEGMENT_H
+#define MAP_TO_14SEGMENT_H
+#include <linux/errno.h>
+#include <linux/types.h>
+#include <asm/byteorder.h>
+#define BIT_SEG14_A 0
+#define BIT_SEG14_B 1
+#define BIT_SEG14_C 2
+#define BIT_SEG14_D 3
+#define BIT_SEG14_E 4
+#define BIT_SEG14_F 5
+#define BIT_SEG14_G1 6
+#define BIT_SEG14_G2 7
+#define BIT_SEG14_H 8
+#define BIT_SEG14_I 9
+#define BIT_SEG14_J 10
+#define BIT_SEG14_K 11
+#define BIT_SEG14_L 12
+#define BIT_SEG14_M 13
+#define BIT_SEG14_RESERVED1 14
+#define BIT_SEG14_RESERVED2 15
+struct seg14_conversion_map {
+  __be16 table[128];
+};
+#define SEG14_CONVERSION_MAP(_name,_map) struct seg14_conversion_map _name = {.table = { _map } }
+#define MAP_TO_SEG14_SYSFS_FILE "map_seg14"
+#define _SEG14(sym,a,b,c,d,e,f,g1,g2,h,j,k,l,m,n) __cpu_to_be16(a << BIT_SEG14_A | b << BIT_SEG14_B | c << BIT_SEG14_C | d << BIT_SEG14_D | e << BIT_SEG14_E | f << BIT_SEG14_F | g1 << BIT_SEG14_G1 | g2 << BIT_SEG14_G2 | h << BIT_SEG14_H | j << BIT_SEG14_I | k << BIT_SEG14_J | l << BIT_SEG14_K | m << BIT_SEG14_L | n << BIT_SEG14_M)
+#define _MAP_0_32_ASCII_SEG14_NON_PRINTABLE 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+#define _MAP_33_47_ASCII_SEG14_SYMBOL _SEG14('!', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('"', 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), _SEG14('#', 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14('$', 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14('%', 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('&', 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1), _SEG14('\'', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), _SEG14('(', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1), _SEG14(')', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0), _SEG14('*', 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1), _SEG14('+', 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14(',', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0), _SEG14('-', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('.', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1), _SEG14('/', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
+#define _MAP_48_57_ASCII_SEG14_NUMERIC _SEG14('0', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('1', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0), _SEG14('2', 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('3', 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0), _SEG14('4', 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('5', 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1), _SEG14('6', 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('7', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0), _SEG14('8', 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('9', 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0),
+#define _MAP_58_64_ASCII_SEG14_SYMBOL _SEG14(':', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14(';', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0), _SEG14('<', 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1), _SEG14('=', 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('>', 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0), _SEG14('?', 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0), _SEG14('@', 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0),
+#define _MAP_65_90_ASCII_SEG14_ALPHA_UPPER _SEG14('A', 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('B', 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0), _SEG14('C', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('D', 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('E', 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('F', 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('G', 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0), _SEG14('H', 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('I', 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('J', 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('K', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1), _SEG14('L', 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('M', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0), _SEG14('N', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1), _SEG14('O', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('P', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('Q', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1), _SEG14('R', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1), _SEG14('S', 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('T', 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('U', 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('V', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('W', 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('X', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1), _SEG14('Y', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0), _SEG14('Z', 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
+#define _MAP_91_96_ASCII_SEG14_SYMBOL _SEG14('[', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('\\', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), _SEG14(']', 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('^', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('_', 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('`', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0),
+#define _MAP_97_122_ASCII_SEG14_ALPHA_LOWER _SEG14('a', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('b', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1), _SEG14('c', 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('d', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0), _SEG14('e', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0), _SEG14('f', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0), _SEG14('g', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), _SEG14('h', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('i', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0), _SEG14('j', 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0), _SEG14('k', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1), _SEG14('l', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('m', 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0), _SEG14('n', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('o', 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('p', 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0), _SEG14('q', 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), _SEG14('r', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('s', 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), _SEG14('t', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('u', 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('v', 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0), _SEG14('w', 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('x', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1), _SEG14('y', 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0), _SEG14('z', 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0),
+#define _MAP_123_126_ASCII_SEG14_SYMBOL _SEG14('{', 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0), _SEG14('|', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('}', 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1), _SEG14('~', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0),
+#define MAP_ASCII14SEG_ALPHANUM _MAP_0_32_ASCII_SEG14_NON_PRINTABLE _MAP_33_47_ASCII_SEG14_SYMBOL _MAP_48_57_ASCII_SEG14_NUMERIC _MAP_58_64_ASCII_SEG14_SYMBOL _MAP_65_90_ASCII_SEG14_ALPHA_UPPER _MAP_91_96_ASCII_SEG14_SYMBOL _MAP_97_122_ASCII_SEG14_ALPHA_LOWER _MAP_123_126_ASCII_SEG14_SYMBOL
+#define SEG14_DEFAULT_MAP(_name) SEG14_CONVERSION_MAP(_name, MAP_ASCII14SEG_ALPHANUM)
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mctp.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mctp.h
new file mode 100644
index 0000000..21a9a14
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mctp.h
@@ -0,0 +1,50 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_MCTP_H
+#define __UAPI_MCTP_H
+#include <linux/types.h>
+#include <linux/socket.h>
+#include <linux/netdevice.h>
+typedef __u8 mctp_eid_t;
+struct mctp_addr {
+  mctp_eid_t s_addr;
+};
+struct sockaddr_mctp {
+  __kernel_sa_family_t smctp_family;
+  __u16 __smctp_pad0;
+  unsigned int smctp_network;
+  struct mctp_addr smctp_addr;
+  __u8 smctp_type;
+  __u8 smctp_tag;
+  __u8 __smctp_pad1;
+};
+struct sockaddr_mctp_ext {
+  struct sockaddr_mctp smctp_base;
+  int smctp_ifindex;
+  __u8 smctp_halen;
+  __u8 __smctp_pad0[3];
+  __u8 smctp_haddr[MAX_ADDR_LEN];
+};
+#define MCTP_NET_ANY 0x0
+#define MCTP_ADDR_NULL 0x00
+#define MCTP_ADDR_ANY 0xff
+#define MCTP_TAG_MASK 0x07
+#define MCTP_TAG_OWNER 0x08
+#define MCTP_OPT_ADDR_EXT 1
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mdio.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mdio.h
index a38cbfc..d5c9da8 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mdio.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mdio.h
@@ -55,9 +55,11 @@
 #define MDIO_AN_EEE_LPABLE 61
 #define MDIO_AN_EEE_ADV2 62
 #define MDIO_AN_EEE_LPABLE2 63
+#define MDIO_AN_CTRL2 64
 #define MDIO_PMA_10GBT_SWAPPOL 130
 #define MDIO_PMA_10GBT_TXPWR 131
 #define MDIO_PMA_10GBT_SNR 133
+#define MDIO_PMA_10GBR_FSRT_CSR 147
 #define MDIO_PMA_10GBR_FECABLE 170
 #define MDIO_PCS_10GBX_STAT1 24
 #define MDIO_PCS_10GBRT_STAT1 32
@@ -104,6 +106,8 @@
 #define MDIO_PMA_SPEED_100 0x0020
 #define MDIO_PMA_SPEED_10 0x0040
 #define MDIO_PCS_SPEED_10P2B 0x0002
+#define MDIO_PCS_SPEED_2_5G 0x0040
+#define MDIO_PCS_SPEED_5G 0x0080
 #define MDIO_DEVS_PRESENT(devad) (1 << (devad))
 #define MDIO_DEVS_C22PRESENT MDIO_DEVS_PRESENT(0)
 #define MDIO_DEVS_PMAPMD MDIO_DEVS_PRESENT(MDIO_MMD_PMAPMD)
@@ -197,9 +201,11 @@
 #define MDIO_PMA_10GBT_SNR_MAX 127
 #define MDIO_PMA_10GBR_FECABLE_ABLE 0x0001
 #define MDIO_PMA_10GBR_FECABLE_ERRABLE 0x0002
+#define MDIO_PMA_10GBR_FSRT_ENABLE 0x0001
 #define MDIO_PCS_10GBRT_STAT1_BLKLK 0x0001
 #define MDIO_PCS_10GBRT_STAT2_ERR 0x00ff
 #define MDIO_PCS_10GBRT_STAT2_BER 0x3f00
+#define MDIO_AN_10GBT_CTRL_ADVFSRT2_5G 0x0020
 #define MDIO_AN_10GBT_CTRL_ADV2_5G 0x0080
 #define MDIO_AN_10GBT_CTRL_ADV5G 0x0100
 #define MDIO_AN_10GBT_CTRL_ADV10G 0x1000
@@ -226,6 +232,7 @@
 #define MDIO_EEE_100GR_DS 0x2000
 #define MDIO_EEE_2_5GT 0x0001
 #define MDIO_EEE_5GT 0x0002
+#define MDIO_AN_THP_BP2_5GT 0x0008
 #define MDIO_PMA_NG_EXTABLE_2_5GBT 0x0001
 #define MDIO_PMA_NG_EXTABLE_5GBT 0x0002
 #define MDIO_PMA_LASI_RX_PHYXSLFLT 0x0001
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mempolicy.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mempolicy.h
index 5425c0e..f92970f 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mempolicy.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mempolicy.h
@@ -25,6 +25,7 @@
   MPOL_BIND,
   MPOL_INTERLEAVE,
   MPOL_LOCAL,
+  MPOL_PREFERRED_MANY,
   MPOL_MAX,
 };
 #define MPOL_F_STATIC_NODES (1 << 15)
@@ -41,7 +42,9 @@
 #define MPOL_MF_INTERNAL (1 << 4)
 #define MPOL_MF_VALID (MPOL_MF_STRICT | MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)
 #define MPOL_F_SHARED (1 << 0)
-#define MPOL_F_LOCAL (1 << 1)
 #define MPOL_F_MOF (1 << 3)
 #define MPOL_F_MORON (1 << 4)
+#define RECLAIM_ZONE (1 << 0)
+#define RECLAIM_WRITE (1 << 1)
+#define RECLAIM_UNMAP (1 << 2)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/module.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/module.h
index f08dc67..34a4c56 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/module.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/module.h
@@ -20,4 +20,5 @@
 #define _UAPI_LINUX_MODULE_H
 #define MODULE_INIT_IGNORE_MODVERSIONS 1
 #define MODULE_INIT_IGNORE_VERMAGIC 2
+#define MODULE_INIT_COMPRESSED_FILE 4
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mount.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mount.h
index 5a112c9..2099b48 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mount.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mount.h
@@ -62,7 +62,8 @@
 #define MOVE_MOUNT_T_SYMLINKS 0x00000010
 #define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020
 #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040
-#define MOVE_MOUNT__MASK 0x00000077
+#define MOVE_MOUNT_SET_GROUP 0x00000100
+#define MOVE_MOUNT__MASK 0x00000177
 #define FSOPEN_CLOEXEC 0x00000001
 #define FSPICK_CLOEXEC 0x00000001
 #define FSPICK_SYMLINK_NOFOLLOW 0x00000002
@@ -89,6 +90,7 @@
 #define MOUNT_ATTR_STRICTATIME 0x00000020
 #define MOUNT_ATTR_NODIRATIME 0x00000080
 #define MOUNT_ATTR_IDMAP 0x00100000
+#define MOUNT_ATTR_NOSYMFOLLOW 0x00200000
 struct mount_attr {
   __u64 attr_set;
   __u64 attr_clr;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mptcp.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mptcp.h
index b15adf5..67b0ce3 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mptcp.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/mptcp.h
@@ -20,6 +20,10 @@
 #define _UAPI_MPTCP_H
 #include <linux/const.h>
 #include <linux/types.h>
+#include <linux/in.h>
+#include <linux/in6.h>
+#include <linux/socket.h>
+#include <sys/socket.h>
 #define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0)
 #define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1)
 #define MPTCP_SUBFLOW_FLAG_JOIN_REM _BITUL(2)
@@ -72,6 +76,7 @@
 #define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0)
 #define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1)
 #define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2)
+#define MPTCP_PM_ADDR_FLAG_FULLMESH (1 << 3)
 enum {
   MPTCP_PM_CMD_UNSPEC,
   MPTCP_PM_CMD_ADD_ADDR,
@@ -99,6 +104,7 @@
   __u64 mptcpi_rcv_nxt;
   __u8 mptcpi_local_addr_used;
   __u8 mptcpi_local_addr_max;
+  __u8 mptcpi_csum_enabled;
 };
 enum mptcp_event_type {
   MPTCP_EVENT_UNSPEC = 0,
@@ -128,7 +134,40 @@
   MPTCP_ATTR_FLAGS,
   MPTCP_ATTR_TIMEOUT,
   MPTCP_ATTR_IF_IDX,
+  MPTCP_ATTR_RESET_REASON,
+  MPTCP_ATTR_RESET_FLAGS,
   __MPTCP_ATTR_AFTER_LAST
 };
 #define MPTCP_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1)
+#define MPTCP_RST_EUNSPEC 0
+#define MPTCP_RST_EMPTCP 1
+#define MPTCP_RST_ERESOURCE 2
+#define MPTCP_RST_EPROHIBIT 3
+#define MPTCP_RST_EWQ2BIG 4
+#define MPTCP_RST_EBADPERF 5
+#define MPTCP_RST_EMIDDLEBOX 6
+struct mptcp_subflow_data {
+  __u32 size_subflow_data;
+  __u32 num_subflows;
+  __u32 size_kernel;
+  __u32 size_user;
+} __attribute__((aligned(8)));
+struct mptcp_subflow_addrs {
+  union {
+    __kernel_sa_family_t sa_family;
+    struct sockaddr sa_local;
+    struct sockaddr_in sin_local;
+    struct sockaddr_in6 sin6_local;
+    struct __kernel_sockaddr_storage ss_local;
+  };
+  union {
+    struct sockaddr sa_remote;
+    struct sockaddr_in sin_remote;
+    struct sockaddr_in6 sin6_remote;
+    struct __kernel_sockaddr_storage ss_remote;
+  };
+};
+#define MPTCP_INFO 1
+#define MPTCP_TCPINFO 2
+#define MPTCP_SUBFLOW_ADDRS 3
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/n_r3964.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/n_r3964.h
deleted file mode 100644
index 5a7cccc..0000000
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/n_r3964.h
+++ /dev/null
@@ -1,46 +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__LINUX_N_R3964_H__
-#define _UAPI__LINUX_N_R3964_H__
-#define R3964_ENABLE_SIGNALS 0x5301
-#define R3964_SETPRIORITY 0x5302
-#define R3964_USE_BCC 0x5303
-#define R3964_READ_TELEGRAM 0x5304
-#define R3964_MASTER 0
-#define R3964_SLAVE 1
-#define R3964_SIG_ACK 0x0001
-#define R3964_SIG_DATA 0x0002
-#define R3964_SIG_ALL 0x000f
-#define R3964_SIG_NONE 0x0000
-#define R3964_USE_SIGIO 0x1000
-enum {
-  R3964_MSG_ACK = 1,
-  R3964_MSG_DATA
-};
-#define R3964_MAX_MSG_COUNT 32
-#define R3964_OK 0
-#define R3964_TX_FAIL - 1
-#define R3964_OVERFLOW - 2
-struct r3964_client_message {
-  int msg_id;
-  int arg;
-  int error_code;
-};
-#define R3964_MTU 256
-#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
index 9faf689..dffb077 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
@@ -32,6 +32,7 @@
   NBD_ATTR_SOCKETS,
   NBD_ATTR_DEAD_CONN_TIMEOUT,
   NBD_ATTR_DEVICE_LIST,
+  NBD_ATTR_BACKEND_IDENTIFIER,
   __NBD_ATTR_MAX,
 };
 #define NBD_ATTR_MAX (__NBD_ATTR_MAX - 1)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/neighbour.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/neighbour.h
index e0e84aa..278f7d1 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/neighbour.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/neighbour.h
@@ -45,17 +45,19 @@
   NDA_PROTOCOL,
   NDA_NH_ID,
   NDA_FDB_EXT_ATTRS,
+  NDA_FLAGS_EXT,
   __NDA_MAX
 };
 #define NDA_MAX (__NDA_MAX - 1)
-#define NTF_USE 0x01
-#define NTF_SELF 0x02
-#define NTF_MASTER 0x04
-#define NTF_PROXY 0x08
-#define NTF_EXT_LEARNED 0x10
-#define NTF_OFFLOADED 0x20
-#define NTF_STICKY 0x40
-#define NTF_ROUTER 0x80
+#define NTF_USE (1 << 0)
+#define NTF_SELF (1 << 1)
+#define NTF_MASTER (1 << 2)
+#define NTF_PROXY (1 << 3)
+#define NTF_EXT_LEARNED (1 << 4)
+#define NTF_OFFLOADED (1 << 5)
+#define NTF_STICKY (1 << 6)
+#define NTF_ROUTER (1 << 7)
+#define NTF_EXT_MANAGED (1 << 0)
 #define NUD_INCOMPLETE 0x01
 #define NUD_REACHABLE 0x02
 #define NUD_STALE 0x04
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/net_tstamp.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
index 373d1bb..510c0da 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
@@ -36,15 +36,26 @@
   SOF_TIMESTAMPING_OPT_STATS = (1 << 12),
   SOF_TIMESTAMPING_OPT_PKTINFO = (1 << 13),
   SOF_TIMESTAMPING_OPT_TX_SWHW = (1 << 14),
-  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW,
+  SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
+  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
   SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | SOF_TIMESTAMPING_LAST
 };
 #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | SOF_TIMESTAMPING_TX_SOFTWARE | SOF_TIMESTAMPING_TX_SCHED | SOF_TIMESTAMPING_TX_ACK)
+struct so_timestamping {
+  int flags;
+  int bind_phc;
+};
 struct hwtstamp_config {
   int flags;
   int tx_type;
   int rx_filter;
 };
+enum hwtstamp_flags {
+  HWTSTAMP_FLAG_BONDED_PHC_INDEX = (1 << 0),
+#define HWTSTAMP_FLAG_BONDED_PHC_INDEX HWTSTAMP_FLAG_BONDED_PHC_INDEX
+  HWTSTAMP_FLAG_LAST = HWTSTAMP_FLAG_BONDED_PHC_INDEX,
+  HWTSTAMP_FLAG_MASK = (HWTSTAMP_FLAG_LAST - 1) | HWTSTAMP_FLAG_LAST
+};
 enum hwtstamp_tx_types {
   HWTSTAMP_TX_OFF,
   HWTSTAMP_TX_ON,
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter.h
index 261b979..77b8a91 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter.h
@@ -47,6 +47,7 @@
 };
 enum nf_dev_hooks {
   NF_NETDEV_INGRESS,
+  NF_NETDEV_EGRESS,
   NF_NETDEV_NUMHOOKS
 };
 enum {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
index 0023a94..441cd60 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
@@ -223,6 +223,7 @@
 #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,
@@ -385,6 +386,7 @@
   NFT_PAYLOAD_LL_HEADER,
   NFT_PAYLOAD_NETWORK_HEADER,
   NFT_PAYLOAD_TRANSPORT_HEADER,
+  NFT_PAYLOAD_INNER_HEADER,
 };
 enum nft_payload_csum_types {
   NFT_PAYLOAD_CSUM_NONE,
@@ -414,6 +416,7 @@
   NFT_EXTHDR_OP_IPV6,
   NFT_EXTHDR_OP_TCPOPT,
   NFT_EXTHDR_OP_IPV4,
+  NFT_EXTHDR_OP_SCTP,
   __NFT_EXTHDR_OP_MAX
 };
 #define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
@@ -438,7 +441,8 @@
   NFT_META_OIF,
   NFT_META_IIFNAME,
   NFT_META_OIFNAME,
-  NFT_META_IIFTYPE,
+  NFT_META_IFTYPE,
+#define NFT_META_IIFTYPE NFT_META_IFTYPE
   NFT_META_OIFTYPE,
   NFT_META_SKUID,
   NFT_META_SKGID,
@@ -465,6 +469,7 @@
   NFT_META_TIME_HOUR,
   NFT_META_SDIF,
   NFT_META_SDIFNAME,
+  __NFT_META_IIFTYPE,
 };
 enum nft_rt_keys {
   NFT_RT_CLASSID,
@@ -512,6 +517,7 @@
   NFTA_SOCKET_UNSPEC,
   NFTA_SOCKET_KEY,
   NFTA_SOCKET_DREG,
+  NFTA_SOCKET_LEVEL,
   __NFTA_SOCKET_MAX
 };
 #define NFTA_SOCKET_MAX (__NFTA_SOCKET_MAX - 1)
@@ -519,6 +525,7 @@
   NFT_SOCKET_TRANSPARENT,
   NFT_SOCKET_MARK,
   NFT_SOCKET_WILDCARD,
+  NFT_SOCKET_CGROUPV2,
   __NFT_SOCKET_MAX
 };
 #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1)
@@ -601,6 +608,14 @@
   __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,
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
index 9145552..705de74 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
@@ -64,7 +64,8 @@
 #define NFNL_SUBSYS_CTHELPER 9
 #define NFNL_SUBSYS_NFTABLES 10
 #define NFNL_SUBSYS_NFT_COMPAT 11
-#define NFNL_SUBSYS_COUNT 12
+#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 {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
index 4501e53..200f1a0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -67,6 +67,7 @@
   CTA_LABELS_MASK,
   CTA_SYNPROXY,
   CTA_FILTER,
+  CTA_STATUS_MASK,
   __CTA_MAX
 };
 #define CTA_MAX (__CTA_MAX - 1)
@@ -249,6 +250,7 @@
   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)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
new file mode 100644
index 0000000..ce1692c
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
index 23606df..6dd8dbc 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
@@ -26,4 +26,9 @@
   __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/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netlink.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netlink.h
index da6a46b..77825cc 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netlink.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/netlink.h
@@ -80,7 +80,7 @@
 #define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
 #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
 #define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
-#define NLMSG_DATA(nlh) ((void *) (((char *) nlh) + NLMSG_LENGTH(0)))
+#define NLMSG_DATA(nlh) ((void *) (((char *) nlh) + NLMSG_HDRLEN))
 #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), (struct nlmsghdr *) (((char *) (nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
 #define NLMSG_OK(nlh,len) ((len) >= (int) sizeof(struct nlmsghdr) && (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && (nlh)->nlmsg_len <= (len))
 #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nexthop.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nexthop.h
index f99a074..4bc9ff0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nexthop.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nexthop.h
@@ -34,6 +34,7 @@
 };
 enum {
   NEXTHOP_GRP_TYPE_MPATH,
+  NEXTHOP_GRP_TYPE_RES,
   __NEXTHOP_GRP_TYPE_MAX,
 };
 #define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
@@ -50,7 +51,28 @@
   NHA_GROUPS,
   NHA_MASTER,
   NHA_FDB,
+  NHA_RES_GROUP,
+  NHA_RES_BUCKET,
   __NHA_MAX,
 };
 #define NHA_MAX (__NHA_MAX - 1)
+enum {
+  NHA_RES_GROUP_UNSPEC,
+  NHA_RES_GROUP_PAD = NHA_RES_GROUP_UNSPEC,
+  NHA_RES_GROUP_BUCKETS,
+  NHA_RES_GROUP_IDLE_TIMER,
+  NHA_RES_GROUP_UNBALANCED_TIMER,
+  NHA_RES_GROUP_UNBALANCED_TIME,
+  __NHA_RES_GROUP_MAX,
+};
+#define NHA_RES_GROUP_MAX (__NHA_RES_GROUP_MAX - 1)
+enum {
+  NHA_RES_BUCKET_UNSPEC,
+  NHA_RES_BUCKET_PAD = NHA_RES_BUCKET_UNSPEC,
+  NHA_RES_BUCKET_INDEX,
+  NHA_RES_BUCKET_IDLE_TIME,
+  NHA_RES_BUCKET_NH_ID,
+  __NHA_RES_BUCKET_MAX,
+};
+#define NHA_RES_BUCKET_MAX (__NHA_RES_BUCKET_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nfc.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nfc.h
index 72e3520..ff980f4 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nfc.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nfc.h
@@ -139,14 +139,14 @@
 #define NFC_SE_DISABLED 0x0
 #define NFC_SE_ENABLED 0x1
 struct sockaddr_nfc {
-  sa_family_t sa_family;
+  __kernel_sa_family_t sa_family;
   __u32 dev_idx;
   __u32 target_idx;
   __u32 nfc_protocol;
 };
 #define NFC_LLCP_MAX_SERVICE_NAME 63
 struct sockaddr_nfc_llcp {
-  sa_family_t sa_family;
+  __kernel_sa_family_t sa_family;
   __u32 dev_idx;
   __u32 target_idx;
   __u32 nfc_protocol;
@@ -154,7 +154,7 @@
   __u8 ssap;
   char service_name[NFC_LLCP_MAX_SERVICE_NAME];
 ;
-  size_t service_name_len;
+  __kernel_size_t service_name_len;
 };
 #define NFC_SOCKPROTO_RAW 0
 #define NFC_SOCKPROTO_LLCP 1
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h
deleted file mode 100644
index 1a805c3..0000000
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h
+++ /dev/null
@@ -1,63 +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_LINUX_NFSD_FH_H
-#define _UAPI_LINUX_NFSD_FH_H
-#include <linux/types.h>
-#include <linux/nfs.h>
-#include <linux/nfs2.h>
-#include <linux/nfs3.h>
-#include <linux/nfs4.h>
-struct nfs_fhbase_old {
-  __u32 fb_dcookie;
-  __u32 fb_ino;
-  __u32 fb_dirino;
-  __u32 fb_dev;
-  __u32 fb_xdev;
-  __u32 fb_xino;
-  __u32 fb_generation;
-};
-struct nfs_fhbase_new {
-  __u8 fb_version;
-  __u8 fb_auth_type;
-  __u8 fb_fsid_type;
-  __u8 fb_fileid_type;
-  __u32 fb_auth[1];
-};
-struct knfsd_fh {
-  unsigned int fh_size;
-  union {
-    struct nfs_fhbase_old fh_old;
-    __u32 fh_pad[NFS4_FHSIZE / 4];
-    struct nfs_fhbase_new fh_new;
-  } fh_base;
-};
-#define ofh_dcookie fh_base.fh_old.fb_dcookie
-#define ofh_ino fh_base.fh_old.fb_ino
-#define ofh_dirino fh_base.fh_old.fb_dirino
-#define ofh_dev fh_base.fh_old.fb_dev
-#define ofh_xdev fh_base.fh_old.fb_xdev
-#define ofh_xino fh_base.fh_old.fb_xino
-#define ofh_generation fh_base.fh_old.fb_generation
-#define fh_version fh_base.fh_new.fb_version
-#define fh_fsid_type fh_base.fh_new.fb_fsid_type
-#define fh_auth_type fh_base.fh_new.fb_auth_type
-#define fh_fileid_type fh_base.fh_new.fb_fileid_type
-#define fh_fsid fh_base.fh_new.fb_auth
-#define fh_auth fh_base.fh_new.fb_auth
-#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h
new file mode 100644
index 0000000..9ade75a
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __VENDOR_CMD_INTEL_H__
+#define __VENDOR_CMD_INTEL_H__
+#define INTEL_OUI 0x001735
+enum iwl_mvm_vendor_cmd {
+  IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO = 0x2d,
+  IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP = 0x30,
+  IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT = 0x32,
+};
+enum iwl_vendor_auth_akm_mode {
+  IWL_VENDOR_AUTH_OPEN,
+  IWL_VENDOR_AUTH_RSNA = 0x6,
+  IWL_VENDOR_AUTH_RSNA_PSK,
+  IWL_VENDOR_AUTH_SAE = 0x9,
+  IWL_VENDOR_AUTH_MAX,
+};
+enum iwl_mvm_vendor_attr {
+  __IWL_MVM_VENDOR_ATTR_INVALID = 0x00,
+  IWL_MVM_VENDOR_ATTR_VIF_ADDR = 0x02,
+  IWL_MVM_VENDOR_ATTR_ADDR = 0x0a,
+  IWL_MVM_VENDOR_ATTR_SSID = 0x3d,
+  IWL_MVM_VENDOR_ATTR_STA_CIPHER = 0x51,
+  IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN = 0x64,
+  IWL_MVM_VENDOR_ATTR_AUTH_MODE = 0x65,
+  IWL_MVM_VENDOR_ATTR_CHANNEL_NUM = 0x66,
+  IWL_MVM_VENDOR_ATTR_BAND = 0x69,
+  IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL = 0x70,
+  IWL_MVM_VENDOR_ATTR_COLLOC_ADDR = 0x71,
+  NUM_IWL_MVM_VENDOR_ATTR,
+  MAX_IWL_MVM_VENDOR_ATTR = NUM_IWL_MVM_VENDOR_ATTR - 1,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nl80211.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nl80211.h
index 5181160..e902178 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nl80211.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/nl80211.h
@@ -178,6 +178,13 @@
   NL80211_CMD_UNPROT_BEACON,
   NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS,
   NL80211_CMD_SET_SAR_SPECS,
+  NL80211_CMD_OBSS_COLOR_COLLISION,
+  NL80211_CMD_COLOR_CHANGE_REQUEST,
+  NL80211_CMD_COLOR_CHANGE_STARTED,
+  NL80211_CMD_COLOR_CHANGE_ABORTED,
+  NL80211_CMD_COLOR_CHANGE_COMPLETED,
+  NL80211_CMD_SET_FILS_AAD,
+  NL80211_CMD_ASSOC_COMEBACK,
   __NL80211_CMD_AFTER_LAST,
   NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
 };
@@ -496,6 +503,14 @@
   NL80211_ATTR_RECONNECT_REQUESTED,
   NL80211_ATTR_SAR_SPEC,
   NL80211_ATTR_DISABLE_HE,
+  NL80211_ATTR_OBSS_COLOR_BITMAP,
+  NL80211_ATTR_COLOR_CHANGE_COUNT,
+  NL80211_ATTR_COLOR_CHANGE_COLOR,
+  NL80211_ATTR_COLOR_CHANGE_ELEMS,
+  NL80211_ATTR_MBSSID_CONFIG,
+  NL80211_ATTR_MBSSID_ELEMS,
+  NL80211_ATTR_RADAR_BACKGROUND,
+  NL80211_ATTR_AP_SETTINGS_FLAGS,
   __NL80211_ATTR_AFTER_LAST,
   NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
   NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
@@ -738,6 +753,7 @@
   NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
   NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
   NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
+  NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
   __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
   NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1
 };
@@ -1137,6 +1153,7 @@
   NL80211_BAND_60GHZ,
   NL80211_BAND_6GHZ,
   NL80211_BAND_S1GHZ,
+  NL80211_BAND_LC,
   NUM_NL80211_BANDS,
 };
 enum nl80211_ps_state {
@@ -1359,6 +1376,9 @@
   NL80211_TDLS_ENABLE_LINK,
   NL80211_TDLS_DISABLE_LINK,
 };
+enum nl80211_ap_sme_features {
+  NL80211_AP_SME_SA_QUERY_OFFLOAD = 1 << 0,
+};
 enum nl80211_feature_flags {
   NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
   NL80211_FEATURE_HT_IBSS = 1 << 1,
@@ -1449,6 +1469,12 @@
   NL80211_EXT_FEATURE_FILS_DISCOVERY,
   NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
   NL80211_EXT_FEATURE_BEACON_RATE_HE,
+  NL80211_EXT_FEATURE_SECURE_LTF,
+  NL80211_EXT_FEATURE_SECURE_RTT,
+  NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
+  NL80211_EXT_FEATURE_BSS_COLOR,
+  NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
+  NL80211_EXT_FEATURE_RADAR_BACKGROUND,
   NUM_NL80211_EXT_FEATURES,
   MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
 };
@@ -1533,6 +1559,7 @@
   NL80211_TDLS_PEER_HT = 1 << 0,
   NL80211_TDLS_PEER_VHT = 1 << 1,
   NL80211_TDLS_PEER_WMM = 1 << 2,
+  NL80211_TDLS_PEER_HE = 1 << 3,
 };
 enum nl80211_sched_scan_plan {
   __NL80211_SCHED_SCAN_PLAN_INVALID,
@@ -1720,6 +1747,8 @@
   NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
   NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
   NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
+  NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
+  NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
   NUM_NL80211_PMSR_FTM_REQ_ATTR,
   NL80211_PMSR_FTM_REQ_ATTR_MAX = NUM_NL80211_PMSR_FTM_REQ_ATTR - 1
 };
@@ -1827,4 +1856,18 @@
   __NL80211_SAR_ATTR_SPECS_LAST,
   NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
 };
+enum nl80211_mbssid_config_attributes {
+  __NL80211_MBSSID_CONFIG_ATTR_INVALID,
+  NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
+  NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
+  NL80211_MBSSID_CONFIG_ATTR_INDEX,
+  NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
+  NL80211_MBSSID_CONFIG_ATTR_EMA,
+  __NL80211_MBSSID_CONFIG_ATTR_LAST,
+  NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
+};
+enum nl80211_ap_settings_flags {
+  NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1 << 0,
+  NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 1 << 1,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/openvswitch.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/openvswitch.h
index 7db5cd5..1f8ae17 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/openvswitch.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/openvswitch.h
@@ -43,6 +43,7 @@
   OVS_DP_ATTR_USER_FEATURES,
   OVS_DP_ATTR_PAD,
   OVS_DP_ATTR_MASKS_CACHE_SIZE,
+  OVS_DP_ATTR_PER_CPU_PIDS,
   __OVS_DP_ATTR_MAX
 };
 #define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1)
@@ -72,6 +73,7 @@
 #define OVS_DP_F_UNALIGNED (1 << 0)
 #define OVS_DP_F_VPORT_PIDS (1 << 1)
 #define OVS_DP_F_TC_RECIRC_SHARING (1 << 2)
+#define OVS_DP_F_DISPATCH_UPCALL_PER_CPU (1 << 3)
 #define OVSP_LOCAL ((__u32) 0)
 #define OVS_PACKET_FAMILY "ovs_packet"
 #define OVS_PACKET_VERSION 0x1
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pci_regs.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pci_regs.h
index 81450a7..46612da 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pci_regs.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pci_regs.h
@@ -245,21 +245,21 @@
 #define PCI_SID_ESR_NSLOTS 0x1f
 #define PCI_SID_ESR_FIC 0x20
 #define PCI_SID_CHASSIS_NR 3
-#define PCI_MSI_FLAGS 2
+#define PCI_MSI_FLAGS 0x02
 #define PCI_MSI_FLAGS_ENABLE 0x0001
 #define PCI_MSI_FLAGS_QMASK 0x000e
 #define PCI_MSI_FLAGS_QSIZE 0x0070
 #define PCI_MSI_FLAGS_64BIT 0x0080
 #define PCI_MSI_FLAGS_MASKBIT 0x0100
 #define PCI_MSI_RFU 3
-#define PCI_MSI_ADDRESS_LO 4
-#define PCI_MSI_ADDRESS_HI 8
-#define PCI_MSI_DATA_32 8
-#define PCI_MSI_MASK_32 12
-#define PCI_MSI_PENDING_32 16
-#define PCI_MSI_DATA_64 12
-#define PCI_MSI_MASK_64 16
-#define PCI_MSI_PENDING_64 20
+#define PCI_MSI_ADDRESS_LO 0x04
+#define PCI_MSI_ADDRESS_HI 0x08
+#define PCI_MSI_DATA_32 0x08
+#define PCI_MSI_MASK_32 0x0c
+#define PCI_MSI_PENDING_32 0x10
+#define PCI_MSI_DATA_64 0x0c
+#define PCI_MSI_MASK_64 0x10
+#define PCI_MSI_PENDING_64 0x14
 #define PCI_MSIX_FLAGS 2
 #define PCI_MSIX_FLAGS_QSIZE 0x07FF
 #define PCI_MSIX_FLAGS_MASKALL 0x4000
@@ -273,10 +273,10 @@
 #define PCI_MSIX_FLAGS_BIRMASK PCI_MSIX_PBA_BIR
 #define PCI_CAP_MSIX_SIZEOF 12
 #define PCI_MSIX_ENTRY_SIZE 16
-#define PCI_MSIX_ENTRY_LOWER_ADDR 0
-#define PCI_MSIX_ENTRY_UPPER_ADDR 4
-#define PCI_MSIX_ENTRY_DATA 8
-#define PCI_MSIX_ENTRY_VECTOR_CTRL 12
+#define PCI_MSIX_ENTRY_LOWER_ADDR 0x0
+#define PCI_MSIX_ENTRY_UPPER_ADDR 0x4
+#define PCI_MSIX_ENTRY_DATA 0x8
+#define PCI_MSIX_ENTRY_VECTOR_CTRL 0xc
 #define PCI_MSIX_ENTRY_CTRL_MASKBIT 0x00000001
 #define PCI_CHSWP_CSR 2
 #define PCI_CHSWP_DHA 0x01
@@ -379,7 +379,7 @@
 #define PCI_X_BRIDGE_STATUS 4
 #define PCI_SSVID_VENDOR_ID 4
 #define PCI_SSVID_DEVICE_ID 6
-#define PCI_EXP_FLAGS 2
+#define PCI_EXP_FLAGS 0x02
 #define PCI_EXP_FLAGS_VERS 0x000f
 #define PCI_EXP_FLAGS_TYPE 0x00f0
 #define PCI_EXP_TYPE_ENDPOINT 0x0
@@ -393,7 +393,7 @@
 #define PCI_EXP_TYPE_RC_EC 0xa
 #define PCI_EXP_FLAGS_SLOT 0x0100
 #define PCI_EXP_FLAGS_IRQ 0x3e00
-#define PCI_EXP_DEVCAP 4
+#define PCI_EXP_DEVCAP 0x04
 #define PCI_EXP_DEVCAP_PAYLOAD 0x00000007
 #define PCI_EXP_DEVCAP_PHANTOM 0x00000018
 #define PCI_EXP_DEVCAP_EXT_TAG 0x00000020
@@ -406,13 +406,19 @@
 #define PCI_EXP_DEVCAP_PWR_VAL 0x03fc0000
 #define PCI_EXP_DEVCAP_PWR_SCL 0x0c000000
 #define PCI_EXP_DEVCAP_FLR 0x10000000
-#define PCI_EXP_DEVCTL 8
+#define PCI_EXP_DEVCTL 0x08
 #define PCI_EXP_DEVCTL_CERE 0x0001
 #define PCI_EXP_DEVCTL_NFERE 0x0002
 #define PCI_EXP_DEVCTL_FERE 0x0004
 #define PCI_EXP_DEVCTL_URRE 0x0008
 #define PCI_EXP_DEVCTL_RELAX_EN 0x0010
 #define PCI_EXP_DEVCTL_PAYLOAD 0x00e0
+#define PCI_EXP_DEVCTL_PAYLOAD_128B 0x0000
+#define PCI_EXP_DEVCTL_PAYLOAD_256B 0x0020
+#define PCI_EXP_DEVCTL_PAYLOAD_512B 0x0040
+#define PCI_EXP_DEVCTL_PAYLOAD_1024B 0x0060
+#define PCI_EXP_DEVCTL_PAYLOAD_2048B 0x0080
+#define PCI_EXP_DEVCTL_PAYLOAD_4096B 0x00a0
 #define PCI_EXP_DEVCTL_EXT_TAG 0x0100
 #define PCI_EXP_DEVCTL_PHANTOM 0x0200
 #define PCI_EXP_DEVCTL_AUX_PME 0x0400
@@ -425,7 +431,7 @@
 #define PCI_EXP_DEVCTL_READRQ_2048B 0x4000
 #define PCI_EXP_DEVCTL_READRQ_4096B 0x5000
 #define PCI_EXP_DEVCTL_BCR_FLR 0x8000
-#define PCI_EXP_DEVSTA 10
+#define PCI_EXP_DEVSTA 0x0a
 #define PCI_EXP_DEVSTA_CED 0x0001
 #define PCI_EXP_DEVSTA_NFED 0x0002
 #define PCI_EXP_DEVSTA_FED 0x0004
@@ -433,7 +439,7 @@
 #define PCI_EXP_DEVSTA_AUXPD 0x0010
 #define PCI_EXP_DEVSTA_TRPND 0x0020
 #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12
-#define PCI_EXP_LNKCAP 12
+#define PCI_EXP_LNKCAP 0x0c
 #define PCI_EXP_LNKCAP_SLS 0x0000000f
 #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001
 #define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002
@@ -452,7 +458,7 @@
 #define PCI_EXP_LNKCAP_DLLLARC 0x00100000
 #define PCI_EXP_LNKCAP_LBNC 0x00200000
 #define PCI_EXP_LNKCAP_PN 0xff000000
-#define PCI_EXP_LNKCTL 16
+#define PCI_EXP_LNKCTL 0x10
 #define PCI_EXP_LNKCTL_ASPMC 0x0003
 #define PCI_EXP_LNKCTL_ASPM_L0S 0x0001
 #define PCI_EXP_LNKCTL_ASPM_L1 0x0002
@@ -465,7 +471,7 @@
 #define PCI_EXP_LNKCTL_HAWD 0x0200
 #define PCI_EXP_LNKCTL_LBMIE 0x0400
 #define PCI_EXP_LNKCTL_LABIE 0x0800
-#define PCI_EXP_LNKSTA 18
+#define PCI_EXP_LNKSTA 0x12
 #define PCI_EXP_LNKSTA_CLS 0x000f
 #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001
 #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002
@@ -485,7 +491,7 @@
 #define PCI_EXP_LNKSTA_LBMS 0x4000
 #define PCI_EXP_LNKSTA_LABS 0x8000
 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20
-#define PCI_EXP_SLTCAP 20
+#define PCI_EXP_SLTCAP 0x14
 #define PCI_EXP_SLTCAP_ABP 0x00000001
 #define PCI_EXP_SLTCAP_PCP 0x00000002
 #define PCI_EXP_SLTCAP_MRLSP 0x00000004
@@ -498,7 +504,7 @@
 #define PCI_EXP_SLTCAP_EIP 0x00020000
 #define PCI_EXP_SLTCAP_NCCS 0x00040000
 #define PCI_EXP_SLTCAP_PSN 0xfff80000
-#define PCI_EXP_SLTCTL 24
+#define PCI_EXP_SLTCTL 0x18
 #define PCI_EXP_SLTCTL_ABPE 0x0001
 #define PCI_EXP_SLTCTL_PFDE 0x0002
 #define PCI_EXP_SLTCTL_MRLSCE 0x0004
@@ -520,7 +526,7 @@
 #define PCI_EXP_SLTCTL_EIC 0x0800
 #define PCI_EXP_SLTCTL_DLLSCE 0x1000
 #define PCI_EXP_SLTCTL_IBPD_DISABLE 0x4000
-#define PCI_EXP_SLTSTA 26
+#define PCI_EXP_SLTSTA 0x1a
 #define PCI_EXP_SLTSTA_ABP 0x0001
 #define PCI_EXP_SLTSTA_PFD 0x0002
 #define PCI_EXP_SLTSTA_MRLSC 0x0004
@@ -530,18 +536,18 @@
 #define PCI_EXP_SLTSTA_PDS 0x0040
 #define PCI_EXP_SLTSTA_EIS 0x0080
 #define PCI_EXP_SLTSTA_DLLSC 0x0100
-#define PCI_EXP_RTCTL 28
+#define PCI_EXP_RTCTL 0x1c
 #define PCI_EXP_RTCTL_SECEE 0x0001
 #define PCI_EXP_RTCTL_SENFEE 0x0002
 #define PCI_EXP_RTCTL_SEFEE 0x0004
 #define PCI_EXP_RTCTL_PMEIE 0x0008
 #define PCI_EXP_RTCTL_CRSSVE 0x0010
-#define PCI_EXP_RTCAP 30
+#define PCI_EXP_RTCAP 0x1e
 #define PCI_EXP_RTCAP_CRSVIS 0x0001
-#define PCI_EXP_RTSTA 32
+#define PCI_EXP_RTSTA 0x20
 #define PCI_EXP_RTSTA_PME 0x00010000
 #define PCI_EXP_RTSTA_PENDING 0x00020000
-#define PCI_EXP_DEVCAP2 36
+#define PCI_EXP_DEVCAP2 0x24
 #define PCI_EXP_DEVCAP2_COMP_TMOUT_DIS 0x00000010
 #define PCI_EXP_DEVCAP2_ARI 0x00000020
 #define PCI_EXP_DEVCAP2_ATOMIC_ROUTE 0x00000040
@@ -553,7 +559,7 @@
 #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000
 #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000
 #define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000
-#define PCI_EXP_DEVCTL2 40
+#define PCI_EXP_DEVCTL2 0x28
 #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f
 #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010
 #define PCI_EXP_DEVCTL2_ARI 0x0020
@@ -565,9 +571,9 @@
 #define PCI_EXP_DEVCTL2_OBFF_MSGA_EN 0x2000
 #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000
 #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000
-#define PCI_EXP_DEVSTA2 42
-#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44
-#define PCI_EXP_LNKCAP2 44
+#define PCI_EXP_DEVSTA2 0x2a
+#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 0x2c
+#define PCI_EXP_LNKCAP2 0x2c
 #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002
 #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004
 #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008
@@ -575,7 +581,7 @@
 #define PCI_EXP_LNKCAP2_SLS_32_0GB 0x00000020
 #define PCI_EXP_LNKCAP2_SLS_64_0GB 0x00000040
 #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100
-#define PCI_EXP_LNKCTL2 48
+#define PCI_EXP_LNKCTL2 0x30
 #define PCI_EXP_LNKCTL2_TLS 0x000f
 #define PCI_EXP_LNKCTL2_TLS_2_5GT 0x0001
 #define PCI_EXP_LNKCTL2_TLS_5_0GT 0x0002
@@ -586,12 +592,12 @@
 #define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010
 #define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380
 #define PCI_EXP_LNKCTL2_HASD 0x0020
-#define PCI_EXP_LNKSTA2 50
-#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52
-#define PCI_EXP_SLTCAP2 52
+#define PCI_EXP_LNKSTA2 0x32
+#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 0x32
+#define PCI_EXP_SLTCAP2 0x34
 #define PCI_EXP_SLTCAP2_IBPD 0x00000001
-#define PCI_EXP_SLTCTL2 56
-#define PCI_EXP_SLTSTA2 58
+#define PCI_EXP_SLTCTL2 0x38
+#define PCI_EXP_SLTSTA2 0x3a
 #define PCI_EXT_CAP_ID(header) (header & 0x0000ffff)
 #define PCI_EXT_CAP_VER(header) ((header >> 16) & 0xf)
 #define PCI_EXT_CAP_NEXT(header) ((header >> 20) & 0xffc)
@@ -631,7 +637,7 @@
 #define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PL_16GT
 #define PCI_EXT_CAP_DSN_SIZEOF 12
 #define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40
-#define PCI_ERR_UNCOR_STATUS 4
+#define PCI_ERR_UNCOR_STATUS 0x04
 #define PCI_ERR_UNC_UND 0x00000001
 #define PCI_ERR_UNC_DLP 0x00000010
 #define PCI_ERR_UNC_SURPDN 0x00000020
@@ -649,9 +655,9 @@
 #define PCI_ERR_UNC_MCBTLP 0x00800000
 #define PCI_ERR_UNC_ATOMEG 0x01000000
 #define PCI_ERR_UNC_TLPPRE 0x02000000
-#define PCI_ERR_UNCOR_MASK 8
-#define PCI_ERR_UNCOR_SEVER 12
-#define PCI_ERR_COR_STATUS 16
+#define PCI_ERR_UNCOR_MASK 0x08
+#define PCI_ERR_UNCOR_SEVER 0x0c
+#define PCI_ERR_COR_STATUS 0x10
 #define PCI_ERR_COR_RCVR 0x00000001
 #define PCI_ERR_COR_BAD_TLP 0x00000040
 #define PCI_ERR_COR_BAD_DLLP 0x00000080
@@ -660,19 +666,19 @@
 #define PCI_ERR_COR_ADV_NFAT 0x00002000
 #define PCI_ERR_COR_INTERNAL 0x00004000
 #define PCI_ERR_COR_LOG_OVER 0x00008000
-#define PCI_ERR_COR_MASK 20
-#define PCI_ERR_CAP 24
-#define PCI_ERR_CAP_FEP(x) ((x) & 31)
+#define PCI_ERR_COR_MASK 0x14
+#define PCI_ERR_CAP 0x18
+#define PCI_ERR_CAP_FEP(x) ((x) & 0x1f)
 #define PCI_ERR_CAP_ECRC_GENC 0x00000020
 #define PCI_ERR_CAP_ECRC_GENE 0x00000040
 #define PCI_ERR_CAP_ECRC_CHKC 0x00000080
 #define PCI_ERR_CAP_ECRC_CHKE 0x00000100
-#define PCI_ERR_HEADER_LOG 28
-#define PCI_ERR_ROOT_COMMAND 44
+#define PCI_ERR_HEADER_LOG 0x1c
+#define PCI_ERR_ROOT_COMMAND 0x2c
 #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001
 #define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002
 #define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004
-#define PCI_ERR_ROOT_STATUS 48
+#define PCI_ERR_ROOT_STATUS 0x30
 #define PCI_ERR_ROOT_COR_RCV 0x00000001
 #define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
 #define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
@@ -681,48 +687,48 @@
 #define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020
 #define PCI_ERR_ROOT_FATAL_RCV 0x00000040
 #define PCI_ERR_ROOT_AER_IRQ 0xf8000000
-#define PCI_ERR_ROOT_ERR_SRC 52
-#define PCI_VC_PORT_CAP1 4
+#define PCI_ERR_ROOT_ERR_SRC 0x34
+#define PCI_VC_PORT_CAP1 0x04
 #define PCI_VC_CAP1_EVCC 0x00000007
 #define PCI_VC_CAP1_LPEVCC 0x00000070
 #define PCI_VC_CAP1_ARB_SIZE 0x00000c00
-#define PCI_VC_PORT_CAP2 8
+#define PCI_VC_PORT_CAP2 0x08
 #define PCI_VC_CAP2_32_PHASE 0x00000002
 #define PCI_VC_CAP2_64_PHASE 0x00000004
 #define PCI_VC_CAP2_128_PHASE 0x00000008
 #define PCI_VC_CAP2_ARB_OFF 0xff000000
-#define PCI_VC_PORT_CTRL 12
+#define PCI_VC_PORT_CTRL 0x0c
 #define PCI_VC_PORT_CTRL_LOAD_TABLE 0x00000001
-#define PCI_VC_PORT_STATUS 14
+#define PCI_VC_PORT_STATUS 0x0e
 #define PCI_VC_PORT_STATUS_TABLE 0x00000001
-#define PCI_VC_RES_CAP 16
+#define PCI_VC_RES_CAP 0x10
 #define PCI_VC_RES_CAP_32_PHASE 0x00000002
 #define PCI_VC_RES_CAP_64_PHASE 0x00000004
 #define PCI_VC_RES_CAP_128_PHASE 0x00000008
 #define PCI_VC_RES_CAP_128_PHASE_TB 0x00000010
 #define PCI_VC_RES_CAP_256_PHASE 0x00000020
 #define PCI_VC_RES_CAP_ARB_OFF 0xff000000
-#define PCI_VC_RES_CTRL 20
+#define PCI_VC_RES_CTRL 0x14
 #define PCI_VC_RES_CTRL_LOAD_TABLE 0x00010000
 #define PCI_VC_RES_CTRL_ARB_SELECT 0x000e0000
 #define PCI_VC_RES_CTRL_ID 0x07000000
 #define PCI_VC_RES_CTRL_ENABLE 0x80000000
-#define PCI_VC_RES_STATUS 26
+#define PCI_VC_RES_STATUS 0x1a
 #define PCI_VC_RES_STATUS_TABLE 0x00000001
 #define PCI_VC_RES_STATUS_NEGO 0x00000002
 #define PCI_CAP_VC_BASE_SIZEOF 0x10
-#define PCI_CAP_VC_PER_VC_SIZEOF 0x0C
-#define PCI_PWR_DSR 4
-#define PCI_PWR_DATA 8
+#define PCI_CAP_VC_PER_VC_SIZEOF 0x0c
+#define PCI_PWR_DSR 0x04
+#define PCI_PWR_DATA 0x08
 #define PCI_PWR_DATA_BASE(x) ((x) & 0xff)
 #define PCI_PWR_DATA_SCALE(x) (((x) >> 8) & 3)
 #define PCI_PWR_DATA_PM_SUB(x) (((x) >> 10) & 7)
 #define PCI_PWR_DATA_PM_STATE(x) (((x) >> 13) & 3)
 #define PCI_PWR_DATA_TYPE(x) (((x) >> 15) & 7)
 #define PCI_PWR_DATA_RAIL(x) (((x) >> 18) & 7)
-#define PCI_PWR_CAP 12
+#define PCI_PWR_CAP 0x0c
 #define PCI_PWR_CAP_BUDGET(x) ((x) & 1)
-#define PCI_EXT_CAP_PWR_SIZEOF 16
+#define PCI_EXT_CAP_PWR_SIZEOF 0x10
 #define PCI_RCEC_RCIEP_BITMAP 4
 #define PCI_RCEC_BUSN 8
 #define PCI_RCEC_BUSN_REG_VER 0x02
@@ -822,7 +828,7 @@
 #define PCI_SRIOV_VFM_MI 0x1
 #define PCI_SRIOV_VFM_MO 0x2
 #define PCI_SRIOV_VFM_AV 0x3
-#define PCI_EXT_CAP_SRIOV_SIZEOF 64
+#define PCI_EXT_CAP_SRIOV_SIZEOF 0x40
 #define PCI_LTR_MAX_SNOOP_LAT 0x4
 #define PCI_LTR_MAX_NOSNOOP_LAT 0x6
 #define PCI_LTR_VALUE_MASK 0x000003ff
@@ -865,25 +871,25 @@
 #define PCI_TPH_LOC_MSIX 0x400
 #define PCI_TPH_CAP_ST_MASK 0x07FF0000
 #define PCI_TPH_CAP_ST_SHIFT 16
-#define PCI_TPH_BASE_SIZEOF 12
-#define PCI_EXP_DPC_CAP 4
+#define PCI_TPH_BASE_SIZEOF 0xc
+#define PCI_EXP_DPC_CAP 0x04
 #define PCI_EXP_DPC_IRQ 0x001F
 #define PCI_EXP_DPC_CAP_RP_EXT 0x0020
 #define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040
 #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080
 #define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00
 #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000
-#define PCI_EXP_DPC_CTL 6
+#define PCI_EXP_DPC_CTL 0x06
 #define PCI_EXP_DPC_CTL_EN_FATAL 0x0001
 #define PCI_EXP_DPC_CTL_EN_NONFATAL 0x0002
 #define PCI_EXP_DPC_CTL_INT_EN 0x0008
-#define PCI_EXP_DPC_STATUS 8
+#define PCI_EXP_DPC_STATUS 0x08
 #define PCI_EXP_DPC_STATUS_TRIGGER 0x0001
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN 0x0006
 #define PCI_EXP_DPC_STATUS_INTERRUPT 0x0008
 #define PCI_EXP_DPC_RP_BUSY 0x0010
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT 0x0060
-#define PCI_EXP_DPC_SOURCE_ID 10
+#define PCI_EXP_DPC_SOURCE_ID 0x0A
 #define PCI_EXP_DPC_RP_PIO_STATUS 0x0C
 #define PCI_EXP_DPC_RP_PIO_MASK 0x10
 #define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14
@@ -920,7 +926,11 @@
 #define PCI_L1SS_CTL1_LTR_L12_TH_SCALE 0xe0000000
 #define PCI_L1SS_CTL2 0x0c
 #define PCI_DVSEC_HEADER1 0x4
+#define PCI_DVSEC_HEADER1_VID(x) ((x) & 0xffff)
+#define PCI_DVSEC_HEADER1_REV(x) (((x) >> 16) & 0xf)
+#define PCI_DVSEC_HEADER1_LEN(x) (((x) >> 20) & 0xfff)
 #define PCI_DVSEC_HEADER2 0x8
+#define PCI_DVSEC_HEADER2_ID(x) ((x) & 0xffff)
 #define PCI_DLF_CAP 0x04
 #define PCI_DLF_EXCHANGE_ENABLE 0x80000000
 #define PCI_PL_16GT_LE_CTRL 0x20
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/perf_event.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/perf_event.h
index b09c5d8..b022586 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/perf_event.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/perf_event.h
@@ -30,6 +30,8 @@
   PERF_TYPE_BREAKPOINT = 5,
   PERF_TYPE_MAX,
 };
+#define PERF_PMU_TYPE_SHIFT 32
+#define PERF_HW_EVENT_MASK 0xffffffff
 enum perf_hw_id {
   PERF_COUNT_HW_CPU_CYCLES = 0,
   PERF_COUNT_HW_INSTRUCTIONS = 1,
@@ -76,6 +78,7 @@
   PERF_COUNT_SW_EMULATION_FAULTS = 8,
   PERF_COUNT_SW_DUMMY = 9,
   PERF_COUNT_SW_BPF_OUTPUT = 10,
+  PERF_COUNT_SW_CGROUP_SWITCHES = 11,
   PERF_COUNT_SW_MAX,
 };
 enum perf_event_sample_format {
@@ -197,6 +200,7 @@
 #define PERF_ATTR_SIZE_VER4 104
 #define PERF_ATTR_SIZE_VER5 112
 #define PERF_ATTR_SIZE_VER6 120
+#define PERF_ATTR_SIZE_VER7 128
 struct perf_event_attr {
   __u32 type;
   __u32 size;
@@ -207,7 +211,7 @@
   };
   __u64 sample_type;
   __u64 read_format;
-  __u64 disabled : 1, inherit : 1, pinned : 1, exclusive : 1, exclude_user : 1, exclude_kernel : 1, exclude_hv : 1, exclude_idle : 1, mmap : 1, comm : 1, freq : 1, inherit_stat : 1, enable_on_exec : 1, task : 1, watermark : 1, precise_ip : 2, mmap_data : 1, sample_id_all : 1, exclude_host : 1, exclude_guest : 1, exclude_callchain_kernel : 1, exclude_callchain_user : 1, mmap2 : 1, comm_exec : 1, use_clockid : 1, context_switch : 1, write_backward : 1, namespaces : 1, ksymbol : 1, bpf_event : 1, aux_output : 1, cgroup : 1, text_poke : 1, build_id : 1, __reserved_1 : 29;
+  __u64 disabled : 1, inherit : 1, pinned : 1, exclusive : 1, exclude_user : 1, exclude_kernel : 1, exclude_hv : 1, exclude_idle : 1, mmap : 1, comm : 1, freq : 1, inherit_stat : 1, enable_on_exec : 1, task : 1, watermark : 1, precise_ip : 2, mmap_data : 1, sample_id_all : 1, exclude_host : 1, exclude_guest : 1, exclude_callchain_kernel : 1, exclude_callchain_user : 1, mmap2 : 1, comm_exec : 1, use_clockid : 1, context_switch : 1, write_backward : 1, namespaces : 1, ksymbol : 1, bpf_event : 1, aux_output : 1, cgroup : 1, text_poke : 1, build_id : 1, inherit_thread : 1, remove_on_exec : 1, sigtrap : 1, __reserved_1 : 26;
   union {
     __u32 wakeup_events;
     __u32 wakeup_watermark;
@@ -235,6 +239,7 @@
   __u16 __reserved_2;
   __u32 aux_sample_size;
   __u32 __reserved_3;
+  __u64 sig_data;
 };
 struct perf_event_query_bpf {
   __u32 ids_len;
@@ -345,6 +350,7 @@
   PERF_RECORD_BPF_EVENT = 18,
   PERF_RECORD_CGROUP = 19,
   PERF_RECORD_TEXT_POKE = 20,
+  PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
   PERF_RECORD_MAX,
 };
 enum perf_record_ksymbol_type {
@@ -375,6 +381,9 @@
 #define PERF_AUX_FLAG_OVERWRITE 0x02
 #define PERF_AUX_FLAG_PARTIAL 0x04
 #define PERF_AUX_FLAG_COLLISION 0x08
+#define PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK 0xff00
+#define PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT 0x0000
+#define PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW 0x0100
 #define PERF_FLAG_FD_NO_GROUP (1UL << 0)
 #define PERF_FLAG_FD_OUTPUT (1UL << 1)
 #define PERF_FLAG_PID_CGROUP (1UL << 2)
@@ -383,14 +392,14 @@
 union perf_mem_data_src {
   __u64 val;
   struct {
-    __u64 mem_op : 5, mem_lvl : 14, mem_snoop : 5, mem_lock : 2, mem_dtlb : 7, mem_lvl_num : 4, mem_remote : 1, mem_snoopx : 2, mem_blk : 3, mem_rsvd : 21;
+    __u64 mem_op : 5, mem_lvl : 14, mem_snoop : 5, mem_lock : 2, mem_dtlb : 7, mem_lvl_num : 4, mem_remote : 1, mem_snoopx : 2, mem_blk : 3, mem_hops : 3, mem_rsvd : 18;
   };
 };
 #elif defined(__BIG_ENDIAN_BITFIELD)
 union perf_mem_data_src {
   __u64 val;
   struct {
-    __u64 mem_rsvd : 21, mem_blk : 3, mem_snoopx : 2, mem_remote : 1, mem_lvl_num : 4, mem_dtlb : 7, mem_lock : 2, mem_snoop : 5, mem_lvl : 14, mem_op : 5;
+    __u64 mem_rsvd : 18, mem_hops : 3, mem_blk : 3, mem_snoopx : 2, mem_remote : 1, mem_lvl_num : 4, mem_dtlb : 7, mem_lock : 2, mem_snoop : 5, mem_lvl : 14, mem_op : 5;
   };
 };
 #else
@@ -452,6 +461,11 @@
 #define PERF_MEM_BLK_DATA 0x02
 #define PERF_MEM_BLK_ADDR 0x04
 #define PERF_MEM_BLK_SHIFT 40
+#define PERF_MEM_HOPS_0 0x01
+#define PERF_MEM_HOPS_1 0x02
+#define PERF_MEM_HOPS_2 0x03
+#define PERF_MEM_HOPS_3 0x04
+#define PERF_MEM_HOPS_SHIFT 43
 #define PERF_MEM_S(a,s) (((__u64) PERF_MEM_ ##a ##_ ##s) << PERF_MEM_ ##a ##_SHIFT)
 struct perf_branch_entry {
   __u64 from;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
index 8f65681..d1e5486 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
@@ -243,6 +243,7 @@
 #define SADB_X_AALG_SHA2_512HMAC 7
 #define SADB_X_AALG_RIPEMD160HMAC 8
 #define SADB_X_AALG_AES_XCBC_MAC 9
+#define SADB_X_AALG_SM3_256HMAC 10
 #define SADB_X_AALG_NULL 251
 #define SADB_AALG_MAX 251
 #define SADB_EALG_NONE 0
@@ -261,6 +262,7 @@
 #define SADB_X_EALG_AES_GCM_ICV16 20
 #define SADB_X_EALG_CAMELLIACBC 22
 #define SADB_X_EALG_NULL_AES_GMAC 23
+#define SADB_X_EALG_SM4CBC 24
 #define SADB_EALG_MAX 253
 #define SADB_X_EALG_SERPENTCBC 252
 #define SADB_X_EALG_TWOFISHCBC 253
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pfrut.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pfrut.h
new file mode 100644
index 0000000..14f713f
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pfrut.h
@@ -0,0 +1,95 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __PFRUT_H__
+#define __PFRUT_H__
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define PFRUT_IOCTL_MAGIC 0xEE
+#define PFRU_IOC_SET_REV _IOW(PFRUT_IOCTL_MAGIC, 0x01, unsigned int)
+#define PFRU_IOC_STAGE _IOW(PFRUT_IOCTL_MAGIC, 0x02, unsigned int)
+#define PFRU_IOC_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x03, unsigned int)
+#define PFRU_IOC_STAGE_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x04, unsigned int)
+#define PFRU_IOC_QUERY_CAP _IOR(PFRUT_IOCTL_MAGIC, 0x05, struct pfru_update_cap_info)
+struct pfru_payload_hdr {
+  __u32 sig;
+  __u32 hdr_version;
+  __u32 hdr_size;
+  __u32 hw_ver;
+  __u32 rt_ver;
+  __u8 platform_id[16];
+};
+enum pfru_dsm_status {
+  DSM_SUCCEED = 0,
+  DSM_FUNC_NOT_SUPPORT = 1,
+  DSM_INVAL_INPUT = 2,
+  DSM_HARDWARE_ERR = 3,
+  DSM_RETRY_SUGGESTED = 4,
+  DSM_UNKNOWN = 5,
+  DSM_FUNC_SPEC_ERR = 6,
+};
+struct pfru_update_cap_info {
+  __u32 status;
+  __u32 update_cap;
+  __u8 code_type[16];
+  __u32 fw_version;
+  __u32 code_rt_version;
+  __u8 drv_type[16];
+  __u32 drv_rt_version;
+  __u32 drv_svn;
+  __u8 platform_id[16];
+  __u8 oem_id[16];
+  __u32 oem_info_len;
+};
+struct pfru_com_buf_info {
+  __u32 status;
+  __u32 ext_status;
+  __u64 addr_lo;
+  __u64 addr_hi;
+  __u32 buf_size;
+};
+struct pfru_updated_result {
+  __u32 status;
+  __u32 ext_status;
+  __u64 low_auth_time;
+  __u64 high_auth_time;
+  __u64 low_exec_time;
+  __u64 high_exec_time;
+};
+struct pfrt_log_data_info {
+  __u32 status;
+  __u32 ext_status;
+  __u64 chunk1_addr_lo;
+  __u64 chunk1_addr_hi;
+  __u64 chunk2_addr_lo;
+  __u64 chunk2_addr_hi;
+  __u32 max_data_size;
+  __u32 chunk1_size;
+  __u32 chunk2_size;
+  __u32 rollover_cnt;
+  __u32 reset_cnt;
+};
+struct pfrt_log_info {
+  __u32 log_level;
+  __u32 log_type;
+  __u32 log_revid;
+};
+#define PFRT_LOG_IOC_SET_INFO _IOW(PFRUT_IOCTL_MAGIC, 0x06, struct pfrt_log_info)
+#define PFRT_LOG_IOC_GET_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x07, struct pfrt_log_info)
+#define PFRT_LOG_IOC_GET_DATA_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x08, struct pfrt_log_data_info)
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pkt_cls.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
index 45dca35..9fd89e0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
@@ -32,9 +32,12 @@
   TCA_ACT_FLAGS,
   TCA_ACT_HW_STATS,
   TCA_ACT_USED_HW_STATS,
+  TCA_ACT_IN_HW_COUNT,
   __TCA_ACT_MAX
 };
-#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1
+#define TCA_ACT_FLAGS_NO_PERCPU_STATS (1 << 0)
+#define TCA_ACT_FLAGS_SKIP_HW (1 << 1)
+#define TCA_ACT_FLAGS_SKIP_SW (1 << 2)
 #define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0)
 #define TCA_ACT_HW_STATS_DELAYED (1 << 1)
 #define TCA_ACT_MAX __TCA_ACT_MAX
@@ -146,6 +149,8 @@
   TCA_POLICE_PAD,
   TCA_POLICE_RATE64,
   TCA_POLICE_PEAKRATE64,
+  TCA_POLICE_PKTRATE64,
+  TCA_POLICE_PKTBURST64,
   __TCA_POLICE_MAX
 #define TCA_POLICE_RESULT TCA_POLICE_RESULT
 };
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pkt_sched.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
index d0541fc..e298b74 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
@@ -613,6 +613,7 @@
   __u32 dropping;
   __u32 ce_mark;
 };
+#define FQ_CODEL_QUANTUM_MAX (1 << 20)
 enum {
   TCA_FQ_CODEL_UNSPEC,
   TCA_FQ_CODEL_TARGET,
@@ -624,6 +625,8 @@
   TCA_FQ_CODEL_CE_THRESHOLD,
   TCA_FQ_CODEL_DROP_BATCH_SIZE,
   TCA_FQ_CODEL_MEMORY_LIMIT,
+  TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
+  TCA_FQ_CODEL_CE_THRESHOLD_MASK,
   __TCA_FQ_CODEL_MAX
 };
 #define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/prctl.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/prctl.h
index 6095881..9b4c695 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/prctl.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/prctl.h
@@ -138,6 +138,7 @@
 #define PR_SET_SPECULATION_CTRL 53
 #define PR_SPEC_STORE_BYPASS 0
 #define PR_SPEC_INDIRECT_BRANCH 1
+#define PR_SPEC_L1D_FLUSH 2
 #define PR_SPEC_NOT_AFFECTED 0
 #define PR_SPEC_PRCTL (1UL << 0)
 #define PR_SPEC_ENABLE (1UL << 1)
@@ -153,13 +154,13 @@
 #define PR_SET_TAGGED_ADDR_CTRL 55
 #define PR_GET_TAGGED_ADDR_CTRL 56
 #define PR_TAGGED_ADDR_ENABLE (1UL << 0)
-#define PR_MTE_TCF_SHIFT 1
-#define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT)
+#define PR_MTE_TCF_NONE 0UL
+#define PR_MTE_TCF_SYNC (1UL << 1)
+#define PR_MTE_TCF_ASYNC (1UL << 2)
+#define PR_MTE_TCF_MASK (PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC)
 #define PR_MTE_TAG_SHIFT 3
 #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
+#define PR_MTE_TCF_SHIFT 1
 #define PR_SET_IO_FLUSHER 57
 #define PR_GET_IO_FLUSHER 58
 #define PR_SET_SYSCALL_USER_DISPATCH 59
@@ -167,6 +168,17 @@
 #define PR_SYS_DISPATCH_ON 1
 #define SYSCALL_DISPATCH_FILTER_ALLOW 0
 #define SYSCALL_DISPATCH_FILTER_BLOCK 1
+#define PR_PAC_SET_ENABLED_KEYS 60
+#define PR_PAC_GET_ENABLED_KEYS 61
+#define PR_SCHED_CORE 62
+#define PR_SCHED_CORE_GET 0
+#define PR_SCHED_CORE_CREATE 1
+#define PR_SCHED_CORE_SHARE_TO 2
+#define PR_SCHED_CORE_SHARE_FROM 3
+#define PR_SCHED_CORE_MAX 4
+#define PR_SCHED_CORE_SCOPE_THREAD 0
+#define PR_SCHED_CORE_SCOPE_THREAD_GROUP 1
+#define PR_SCHED_CORE_SCOPE_PROCESS_GROUP 2
 #define PR_SET_VMA 0x53564d41
 #define PR_SET_VMA_ANON_NAME 0
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/psample.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/psample.h
index dc67445..efb1c24 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/psample.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/psample.h
@@ -28,6 +28,12 @@
   PSAMPLE_ATTR_DATA,
   PSAMPLE_ATTR_GROUP_REFCOUNT,
   PSAMPLE_ATTR_TUNNEL,
+  PSAMPLE_ATTR_PAD,
+  PSAMPLE_ATTR_OUT_TC,
+  PSAMPLE_ATTR_OUT_TC_OCC,
+  PSAMPLE_ATTR_LATENCY,
+  PSAMPLE_ATTR_TIMESTAMP,
+  PSAMPLE_ATTR_PROTO,
   __PSAMPLE_ATTR_MAX
 };
 enum psample_command {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ptrace.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ptrace.h
index 5de0998..4bfa59a 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ptrace.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/ptrace.h
@@ -82,6 +82,14 @@
     } seccomp;
   };
 };
+#define PTRACE_GET_RSEQ_CONFIGURATION 0x420f
+struct ptrace_rseq_configuration {
+  __u64 rseq_abi_pointer;
+  __u32 rseq_abi_size;
+  __u32 signature;
+  __u32 flags;
+  __u32 pad;
+};
 #define PTRACE_EVENTMSG_SYSCALL_ENTRY 1
 #define PTRACE_EVENTMSG_SYSCALL_EXIT 2
 #define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rds.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rds.h
index bc29233..7006c87 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rds.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rds.h
@@ -217,7 +217,7 @@
   __u64 flags;
 };
 struct rds_get_mr_for_dest_args {
-  struct sockaddr_storage dest_addr;
+  struct __kernel_sockaddr_storage dest_addr;
   struct rds_iovec vec;
   __u64 cookie_addr;
   __u64 flags;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/resource.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/resource.h
index d76c273..6f531a0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/resource.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/resource.h
@@ -57,6 +57,6 @@
 #define PRIO_PGRP 1
 #define PRIO_USER 2
 #define _STK_LIM (8 * 1024 * 1024)
-#define MLOCK_LIMIT ((PAGE_SIZE > 64 * 1024) ? PAGE_SIZE : 64 * 1024)
+#define MLOCK_LIMIT (8 * 1024 * 1024)
 #include <asm/resource.h>
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rpmsg.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rpmsg.h
index 77f05e6..c5b5a76 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rpmsg.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rpmsg.h
@@ -20,6 +20,7 @@
 #define _UAPI_RPMSG_H_
 #include <linux/ioctl.h>
 #include <linux/types.h>
+#define RPMSG_ADDR_ANY 0xFFFFFFFF
 struct rpmsg_endpoint_info {
   char name[32];
   __u32 src;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rtc.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rtc.h
index 7f38483..cf5f22a 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rtc.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rtc.h
@@ -20,6 +20,7 @@
 #define _UAPI_LINUX_RTC_H_
 #include <linux/const.h>
 #include <linux/ioctl.h>
+#include <linux/types.h>
 struct rtc_time {
   int tm_sec;
   int tm_min;
@@ -45,6 +46,16 @@
   int pll_negmult;
   long pll_clock;
 };
+struct rtc_param {
+  __u64 param;
+  union {
+    __u64 uvalue;
+    __s64 svalue;
+    __u64 ptr;
+  };
+  __u32 index;
+  __u32 __pad;
+};
 #define RTC_AIE_ON _IO('p', 0x01)
 #define RTC_AIE_OFF _IO('p', 0x02)
 #define RTC_UIE_ON _IO('p', 0x03)
@@ -65,6 +76,8 @@
 #define RTC_WKALM_RD _IOR('p', 0x10, struct rtc_wkalrm)
 #define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info)
 #define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info)
+#define RTC_PARAM_GET _IOW('p', 0x13, struct rtc_param)
+#define RTC_PARAM_SET _IOW('p', 0x14, struct rtc_param)
 #define RTC_VL_DATA_INVALID _BITUL(0)
 #define RTC_VL_BACKUP_LOW _BITUL(1)
 #define RTC_VL_BACKUP_EMPTY _BITUL(2)
@@ -79,6 +92,17 @@
 #define RTC_FEATURE_ALARM 0
 #define RTC_FEATURE_ALARM_RES_MINUTE 1
 #define RTC_FEATURE_NEED_WEEK_DAY 2
-#define RTC_FEATURE_CNT 3
+#define RTC_FEATURE_ALARM_RES_2S 3
+#define RTC_FEATURE_UPDATE_INTERRUPT 4
+#define RTC_FEATURE_CORRECTION 5
+#define RTC_FEATURE_BACKUP_SWITCH_MODE 6
+#define RTC_FEATURE_CNT 7
+#define RTC_PARAM_FEATURES 0
+#define RTC_PARAM_CORRECTION 1
+#define RTC_PARAM_BACKUP_SWITCH_MODE 2
+#define RTC_BSM_DISABLED 0
+#define RTC_BSM_DIRECT 1
+#define RTC_BSM_LEVEL 2
+#define RTC_BSM_STANDBY 3
 #define RTC_MAX_FREQ 8192
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rtnetlink.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
index 22f8f1c..91c3ee4 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
@@ -157,6 +157,12 @@
 #define RTM_DELVLAN RTM_DELVLAN
   RTM_GETVLAN,
 #define RTM_GETVLAN RTM_GETVLAN
+  RTM_NEWNEXTHOPBUCKET = 116,
+#define RTM_NEWNEXTHOPBUCKET RTM_NEWNEXTHOPBUCKET
+  RTM_DELNEXTHOPBUCKET,
+#define RTM_DELNEXTHOPBUCKET RTM_DELNEXTHOPBUCKET
+  RTM_GETNEXTHOPBUCKET,
+#define RTM_GETNEXTHOPBUCKET RTM_GETNEXTHOPBUCKET
   __RTM_MAX,
 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
 };
@@ -219,6 +225,7 @@
 #define RTPROT_MROUTED 17
 #define RTPROT_KEEPALIVED 18
 #define RTPROT_BABEL 42
+#define RTPROT_OPENR 99
 #define RTPROT_BGP 186
 #define RTPROT_ISIS 187
 #define RTPROT_OSPF 188
@@ -552,6 +559,8 @@
 #define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP
   RTNLGRP_BRVLAN,
 #define RTNLGRP_BRVLAN RTNLGRP_BRVLAN
+  RTNLGRP_MCTP_IFADDR,
+#define RTNLGRP_MCTP_IFADDR RTNLGRP_MCTP_IFADDR
   __RTNLGRP_MAX
 };
 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/sctp.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/sctp.h
index 883920b..765d6c9 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/sctp.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/sctp.h
@@ -94,6 +94,7 @@
 #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
 #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
 #define SCTP_REMOTE_UDP_ENCAPS_PORT 132
+#define SCTP_PLPMTUD_PROBE_INTERVAL 133
 #define SCTP_PR_SCTP_NONE 0x0000
 #define SCTP_PR_SCTP_TTL 0x0010
 #define SCTP_PR_SCTP_RTX 0x0020
@@ -710,4 +711,9 @@
   SCTP_SS_RR,
   SCTP_SS_MAX = SCTP_SS_RR
 };
+struct sctp_probeinterval {
+  sctp_assoc_t spi_assoc_id;
+  struct sockaddr_storage spi_address;
+  __u32 spi_interval;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/seccomp.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/seccomp.h
index 0ae0e12..e58b421 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/seccomp.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/seccomp.h
@@ -69,6 +69,7 @@
   __u32 flags;
 };
 #define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0)
+#define SECCOMP_ADDFD_FLAG_SEND (1UL << 1)
 struct seccomp_notif_addfd {
   __u64 id;
   __u32 flags;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/seg6_local.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/seg6_local.h
index 9508eca..61a8d97 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/seg6_local.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/seg6_local.h
@@ -30,6 +30,7 @@
   SEG6_LOCAL_OIF,
   SEG6_LOCAL_BPF,
   SEG6_LOCAL_VRFTABLE,
+  SEG6_LOCAL_COUNTERS,
   __SEG6_LOCAL_MAX,
 };
 #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
@@ -50,6 +51,7 @@
   SEG6_LOCAL_ACTION_END_AS = 13,
   SEG6_LOCAL_ACTION_END_AM = 14,
   SEG6_LOCAL_ACTION_END_BPF = 15,
+  SEG6_LOCAL_ACTION_END_DT46 = 16,
   __SEG6_LOCAL_ACTION_MAX,
 };
 #define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1)
@@ -60,4 +62,13 @@
   __SEG6_LOCAL_BPF_PROG_MAX,
 };
 #define SEG6_LOCAL_BPF_PROG_MAX (__SEG6_LOCAL_BPF_PROG_MAX - 1)
+enum {
+  SEG6_LOCAL_CNT_UNSPEC,
+  SEG6_LOCAL_CNT_PAD,
+  SEG6_LOCAL_CNT_PACKETS,
+  SEG6_LOCAL_CNT_BYTES,
+  SEG6_LOCAL_CNT_ERRORS,
+  __SEG6_LOCAL_CNT_MAX,
+};
+#define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/smc.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/smc.h
index 88eef62..01494da 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/smc.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/smc.h
@@ -38,6 +38,9 @@
 #define SMC_GENL_FAMILY_NAME "SMC_GEN_NETLINK"
 #define SMC_GENL_FAMILY_VERSION 1
 #define SMC_PCI_ID_STR_LEN 16
+#define SMC_MAX_HOSTNAME_LEN 32
+#define SMC_MAX_UEID 4
+#define SMC_MAX_EID_LEN 32
 enum {
   SMC_NETLINK_GET_SYS_INFO = 1,
   SMC_NETLINK_GET_LGR_SMCR,
@@ -45,6 +48,15 @@
   SMC_NETLINK_GET_LGR_SMCD,
   SMC_NETLINK_GET_DEV_SMCD,
   SMC_NETLINK_GET_DEV_SMCR,
+  SMC_NETLINK_GET_STATS,
+  SMC_NETLINK_GET_FBACK_STATS,
+  SMC_NETLINK_DUMP_UEID,
+  SMC_NETLINK_ADD_UEID,
+  SMC_NETLINK_REMOVE_UEID,
+  SMC_NETLINK_FLUSH_UEID,
+  SMC_NETLINK_DUMP_SEID,
+  SMC_NETLINK_ENABLE_SEID,
+  SMC_NETLINK_DISABLE_SEID,
 };
 enum {
   SMC_GEN_UNSPEC,
@@ -54,6 +66,8 @@
   SMC_GEN_LGR_SMCD,
   SMC_GEN_DEV_SMCD,
   SMC_GEN_DEV_SMCR,
+  SMC_GEN_STATS,
+  SMC_GEN_FBACK_STATS,
   __SMC_GEN_MAX,
   SMC_GEN_MAX = __SMC_GEN_MAX - 1
 };
@@ -64,6 +78,7 @@
   SMC_NLA_SYS_IS_ISM_V2,
   SMC_NLA_SYS_LOCAL_HOST,
   SMC_NLA_SYS_SEID,
+  SMC_NLA_SYS_IS_SMCR_V2,
   __SMC_NLA_SYS_MAX,
   SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1
 };
@@ -73,6 +88,14 @@
   SMC_NLA_LGR_V2_OS,
   SMC_NLA_LGR_V2_NEG_EID,
   SMC_NLA_LGR_V2_PEER_HOST,
+  __SMC_NLA_LGR_V2_MAX,
+  SMC_NLA_LGR_V2_MAX = __SMC_NLA_LGR_V2_MAX - 1
+};
+enum {
+  SMC_NLA_LGR_R_V2_UNSPEC,
+  SMC_NLA_LGR_R_V2_DIRECT,
+  __SMC_NLA_LGR_R_V2_MAX,
+  SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1
 };
 enum {
   SMC_NLA_LGR_R_UNSPEC,
@@ -82,6 +105,10 @@
   SMC_NLA_LGR_R_PNETID,
   SMC_NLA_LGR_R_VLAN_ID,
   SMC_NLA_LGR_R_CONNS_NUM,
+  SMC_NLA_LGR_R_V2_COMMON,
+  SMC_NLA_LGR_R_V2,
+  SMC_NLA_LGR_R_NET_COOKIE,
+  SMC_NLA_LGR_R_PAD,
   __SMC_NLA_LGR_R_MAX,
   SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1
 };
@@ -110,7 +137,7 @@
   SMC_NLA_LGR_D_PNETID,
   SMC_NLA_LGR_D_CHID,
   SMC_NLA_LGR_D_PAD,
-  SMC_NLA_LGR_V2,
+  SMC_NLA_LGR_D_V2_COMMON,
   __SMC_NLA_LGR_D_MAX,
   SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
 };
@@ -140,4 +167,86 @@
   __SMC_NLA_DEV_MAX,
   SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
 };
+enum {
+  SMC_NLA_STATS_PLOAD_PAD,
+  SMC_NLA_STATS_PLOAD_8K,
+  SMC_NLA_STATS_PLOAD_16K,
+  SMC_NLA_STATS_PLOAD_32K,
+  SMC_NLA_STATS_PLOAD_64K,
+  SMC_NLA_STATS_PLOAD_128K,
+  SMC_NLA_STATS_PLOAD_256K,
+  SMC_NLA_STATS_PLOAD_512K,
+  SMC_NLA_STATS_PLOAD_1024K,
+  SMC_NLA_STATS_PLOAD_G_1024K,
+  __SMC_NLA_STATS_PLOAD_MAX,
+  SMC_NLA_STATS_PLOAD_MAX = __SMC_NLA_STATS_PLOAD_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_RMB_PAD,
+  SMC_NLA_STATS_RMB_SIZE_SM_PEER_CNT,
+  SMC_NLA_STATS_RMB_SIZE_SM_CNT,
+  SMC_NLA_STATS_RMB_FULL_PEER_CNT,
+  SMC_NLA_STATS_RMB_FULL_CNT,
+  SMC_NLA_STATS_RMB_REUSE_CNT,
+  SMC_NLA_STATS_RMB_ALLOC_CNT,
+  SMC_NLA_STATS_RMB_DGRADE_CNT,
+  __SMC_NLA_STATS_RMB_MAX,
+  SMC_NLA_STATS_RMB_MAX = __SMC_NLA_STATS_RMB_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_T_PAD,
+  SMC_NLA_STATS_T_TX_RMB_SIZE,
+  SMC_NLA_STATS_T_RX_RMB_SIZE,
+  SMC_NLA_STATS_T_TXPLOAD_SIZE,
+  SMC_NLA_STATS_T_RXPLOAD_SIZE,
+  SMC_NLA_STATS_T_TX_RMB_STATS,
+  SMC_NLA_STATS_T_RX_RMB_STATS,
+  SMC_NLA_STATS_T_CLNT_V1_SUCC,
+  SMC_NLA_STATS_T_CLNT_V2_SUCC,
+  SMC_NLA_STATS_T_SRV_V1_SUCC,
+  SMC_NLA_STATS_T_SRV_V2_SUCC,
+  SMC_NLA_STATS_T_SENDPAGE_CNT,
+  SMC_NLA_STATS_T_SPLICE_CNT,
+  SMC_NLA_STATS_T_CORK_CNT,
+  SMC_NLA_STATS_T_NDLY_CNT,
+  SMC_NLA_STATS_T_URG_DATA_CNT,
+  SMC_NLA_STATS_T_RX_BYTES,
+  SMC_NLA_STATS_T_TX_BYTES,
+  SMC_NLA_STATS_T_RX_CNT,
+  SMC_NLA_STATS_T_TX_CNT,
+  __SMC_NLA_STATS_T_MAX,
+  SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_PAD,
+  SMC_NLA_STATS_SMCD_TECH,
+  SMC_NLA_STATS_SMCR_TECH,
+  SMC_NLA_STATS_CLNT_HS_ERR_CNT,
+  SMC_NLA_STATS_SRV_HS_ERR_CNT,
+  __SMC_NLA_STATS_MAX,
+  SMC_NLA_STATS_MAX = __SMC_NLA_STATS_MAX - 1
+};
+enum {
+  SMC_NLA_FBACK_STATS_PAD,
+  SMC_NLA_FBACK_STATS_TYPE,
+  SMC_NLA_FBACK_STATS_SRV_CNT,
+  SMC_NLA_FBACK_STATS_CLNT_CNT,
+  SMC_NLA_FBACK_STATS_RSN_CODE,
+  SMC_NLA_FBACK_STATS_RSN_CNT,
+  __SMC_NLA_FBACK_STATS_MAX,
+  SMC_NLA_FBACK_STATS_MAX = __SMC_NLA_FBACK_STATS_MAX - 1
+};
+enum {
+  SMC_NLA_EID_TABLE_UNSPEC,
+  SMC_NLA_EID_TABLE_ENTRY,
+  __SMC_NLA_EID_TABLE_MAX,
+  SMC_NLA_EID_TABLE_MAX = __SMC_NLA_EID_TABLE_MAX - 1
+};
+enum {
+  SMC_NLA_SEID_UNSPEC,
+  SMC_NLA_SEID_ENTRY,
+  SMC_NLA_SEID_ENABLED,
+  __SMC_NLA_SEID_TABLE_MAX,
+  SMC_NLA_SEID_TABLE_MAX = __SMC_NLA_SEID_TABLE_MAX - 1
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/snmp.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/snmp.h
index 40e8fa5..a503a7e 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/snmp.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/snmp.h
@@ -257,6 +257,8 @@
   LINUX_MIB_TCPDUPLICATEDATAREHASH,
   LINUX_MIB_TCPDSACKRECVSEGS,
   LINUX_MIB_TCPDSACKIGNOREDDUBIOUS,
+  LINUX_MIB_TCPMIGRATEREQSUCCESS,
+  LINUX_MIB_TCPMIGRATEREQFAILURE,
   __LINUX_MIB_MAX
 };
 enum {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/socket.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/socket.h
index 608d31f..be16548 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/socket.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/socket.h
@@ -20,7 +20,7 @@
 #define _UAPI_LINUX_SOCKET_H
 #define _K_SS_MAXSIZE 128
 typedef unsigned short __kernel_sa_family_t;
-struct sockaddr_storage {
+struct __kernel_sockaddr_storage {
   union {
     struct {
       __kernel_sa_family_t ss_family;
@@ -29,4 +29,7 @@
     void * __align;
   };
 };
+#define SOCK_SNDBUF_LOCK 1
+#define SOCK_RCVBUF_LOCK 2
+#define SOCK_BUF_LOCK_MASK (SOCK_SNDBUF_LOCK | SOCK_RCVBUF_LOCK)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/stddef.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/stddef.h
index 2a5fd95..d5cdf80 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/stddef.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/stddef.h
@@ -20,3 +20,5 @@
 #ifndef __always_inline
 #define __always_inline inline
 #endif
+#define __struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct TAG { MEMBERS } ATTRS NAME; }
+#define __DECLARE_FLEX_ARRAY(TYPE,NAME) struct { struct { } __empty_ ##NAME; TYPE NAME[]; }
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
index 25bfd8d..2e097f0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
@@ -42,5 +42,34 @@
     __u8 __pad[6];
   } response;
 } __attribute__((__packed__));
+struct ssam_cdev_notifier_desc {
+  __s32 priority;
+  __u8 target_category;
+} __attribute__((__packed__));
+struct ssam_cdev_event_desc {
+  struct {
+    __u8 target_category;
+    __u8 target_id;
+    __u8 cid_enable;
+    __u8 cid_disable;
+  } reg;
+  struct {
+    __u8 target_category;
+    __u8 instance;
+  } id;
+  __u8 flags;
+} __attribute__((__packed__));
+struct ssam_cdev_event {
+  __u8 target_category;
+  __u8 target_id;
+  __u8 command_id;
+  __u8 instance_id;
+  __u16 length;
+  __u8 data[];
+} __attribute__((__packed__));
 #define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request)
+#define SSAM_CDEV_NOTIF_REGISTER _IOW(0xA5, 2, struct ssam_cdev_notifier_desc)
+#define SSAM_CDEV_NOTIF_UNREGISTER _IOW(0xA5, 3, struct ssam_cdev_notifier_desc)
+#define SSAM_CDEV_EVENT_ENABLE _IOW(0xA5, 4, struct ssam_cdev_event_desc)
+#define SSAM_CDEV_EVENT_DISABLE _IOW(0xA5, 5, struct ssam_cdev_event_desc)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h
new file mode 100644
index 0000000..dde5ad3
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_SURFACE_AGGREGATOR_DTX_H
+#define _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define SDTX_CATEGORY_STATUS 0x0000
+#define SDTX_CATEGORY_RUNTIME_ERROR 0x1000
+#define SDTX_CATEGORY_HARDWARE_ERROR 0x2000
+#define SDTX_CATEGORY_UNKNOWN 0xf000
+#define SDTX_CATEGORY_MASK 0xf000
+#define SDTX_CATEGORY(value) ((value) & SDTX_CATEGORY_MASK)
+#define SDTX_STATUS(code) ((code) | SDTX_CATEGORY_STATUS)
+#define SDTX_ERR_RT(code) ((code) | SDTX_CATEGORY_RUNTIME_ERROR)
+#define SDTX_ERR_HW(code) ((code) | SDTX_CATEGORY_HARDWARE_ERROR)
+#define SDTX_UNKNOWN(code) ((code) | SDTX_CATEGORY_UNKNOWN)
+#define SDTX_SUCCESS(value) (SDTX_CATEGORY(value) == SDTX_CATEGORY_STATUS)
+#define SDTX_LATCH_CLOSED SDTX_STATUS(0x00)
+#define SDTX_LATCH_OPENED SDTX_STATUS(0x01)
+#define SDTX_BASE_DETACHED SDTX_STATUS(0x00)
+#define SDTX_BASE_ATTACHED SDTX_STATUS(0x01)
+#define SDTX_DETACH_NOT_FEASIBLE SDTX_ERR_RT(0x01)
+#define SDTX_DETACH_TIMEDOUT SDTX_ERR_RT(0x02)
+#define SDTX_ERR_FAILED_TO_OPEN SDTX_ERR_HW(0x01)
+#define SDTX_ERR_FAILED_TO_REMAIN_OPEN SDTX_ERR_HW(0x02)
+#define SDTX_ERR_FAILED_TO_CLOSE SDTX_ERR_HW(0x03)
+#define SDTX_DEVICE_TYPE_HID 0x0100
+#define SDTX_DEVICE_TYPE_SSH 0x0200
+#define SDTX_DEVICE_TYPE_MASK 0x0f00
+#define SDTX_DEVICE_TYPE(value) ((value) & SDTX_DEVICE_TYPE_MASK)
+#define SDTX_BASE_TYPE_HID(id) ((id) | SDTX_DEVICE_TYPE_HID)
+#define SDTX_BASE_TYPE_SSH(id) ((id) | SDTX_DEVICE_TYPE_SSH)
+enum sdtx_device_mode {
+  SDTX_DEVICE_MODE_TABLET = 0x00,
+  SDTX_DEVICE_MODE_LAPTOP = 0x01,
+  SDTX_DEVICE_MODE_STUDIO = 0x02,
+};
+struct sdtx_event {
+  __u16 length;
+  __u16 code;
+  __u8 data[];
+} __attribute__((__packed__));
+enum sdtx_event_code {
+  SDTX_EVENT_REQUEST = 1,
+  SDTX_EVENT_CANCEL = 2,
+  SDTX_EVENT_BASE_CONNECTION = 3,
+  SDTX_EVENT_LATCH_STATUS = 4,
+  SDTX_EVENT_DEVICE_MODE = 5,
+};
+struct sdtx_base_info {
+  __u16 state;
+  __u16 base_id;
+} __attribute__((__packed__));
+#define SDTX_IOCTL_EVENTS_ENABLE _IO(0xa5, 0x21)
+#define SDTX_IOCTL_EVENTS_DISABLE _IO(0xa5, 0x22)
+#define SDTX_IOCTL_LATCH_LOCK _IO(0xa5, 0x23)
+#define SDTX_IOCTL_LATCH_UNLOCK _IO(0xa5, 0x24)
+#define SDTX_IOCTL_LATCH_REQUEST _IO(0xa5, 0x25)
+#define SDTX_IOCTL_LATCH_CONFIRM _IO(0xa5, 0x26)
+#define SDTX_IOCTL_LATCH_HEARTBEAT _IO(0xa5, 0x27)
+#define SDTX_IOCTL_LATCH_CANCEL _IO(0xa5, 0x28)
+#define SDTX_IOCTL_GET_BASE_INFO _IOR(0xa5, 0x29, struct sdtx_base_info)
+#define SDTX_IOCTL_GET_DEVICE_MODE _IOR(0xa5, 0x2a, __u16)
+#define SDTX_IOCTL_GET_LATCH_STATUS _IOR(0xa5, 0x2b, __u16)
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/sysctl.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/sysctl.h
index ebaf8a9..ae9c2ba 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/sysctl.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/sysctl.h
@@ -407,6 +407,7 @@
   NET_IPV4_CONF_PROMOTE_SECONDARIES = 20,
   NET_IPV4_CONF_ARP_ACCEPT = 21,
   NET_IPV4_CONF_ARP_NOTIFY = 22,
+  NET_IPV4_CONF_ARP_EVICT_NOCARRIER = 23,
 };
 enum {
   NET_IPV4_NF_CONNTRACK_MAX = 1,
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/target_core_user.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/target_core_user.h
index e0b9f22..dcba00e 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/target_core_user.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/target_core_user.h
@@ -26,6 +26,7 @@
 #define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0)
 #define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1)
 #define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2)
+#define TCMU_MAILBOX_FLAG_CAP_KEEP_BUF (1 << 3)
 struct tcmu_mailbox {
   __u16 version;
   __u16 flags;
@@ -45,6 +46,7 @@
   __u8 kflags;
 #define TCMU_UFLAG_UNKNOWN_OP 0x1
 #define TCMU_UFLAG_READ_LEN 0x2
+#define TCMU_UFLAG_KEEP_BUF 0x4
   __u8 uflags;
 } __packed;
 #define TCMU_OP_MASK 0x7
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/taskstats.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/taskstats.h
index 5f9d0cc..efa5b4a 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/taskstats.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/taskstats.h
@@ -19,7 +19,7 @@
 #ifndef _LINUX_TASKSTATS_H
 #define _LINUX_TASKSTATS_H
 #include <linux/types.h>
-#define TASKSTATS_VERSION 10
+#define TASKSTATS_VERSION 11
 #define TS_COMM_LEN 32
 struct taskstats {
   __u16 version;
@@ -69,6 +69,8 @@
   __u64 thrashing_count;
   __u64 thrashing_delay_total;
   __u64 ac_btime64;
+  __u64 compact_count;
+  __u64 compact_delay_total;
 };
 enum {
   TASKSTATS_CMD_UNSPEC = 0,
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
index 0a53b06..f0cd928 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
@@ -23,6 +23,7 @@
 #define SKBMOD_F_SMAC 0x2
 #define SKBMOD_F_ETYPE 0x4
 #define SKBMOD_F_SWAPMAC 0x8
+#define SKBMOD_F_ECN 0x10
 struct tc_skbmod {
   tc_gen;
   __u64 flags;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tcp.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tcp.h
index 99c5bff..c96d695 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tcp.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tcp.h
@@ -226,7 +226,7 @@
 #define TCP_MD5SIG_FLAG_PREFIX 0x1
 #define TCP_MD5SIG_FLAG_IFINDEX 0x2
 struct tcp_md5sig {
-  struct sockaddr_storage tcpm_addr;
+  struct __kernel_sockaddr_storage tcpm_addr;
   __u8 tcpm_flags;
   __u8 tcpm_prefixlen;
   __u16 tcpm_keylen;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tls.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tls.h
index c765f30..c98ea0b 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tls.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tls.h
@@ -54,6 +54,18 @@
 #define TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE 0
 #define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE 16
 #define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE 8
+#define TLS_CIPHER_SM4_GCM 55
+#define TLS_CIPHER_SM4_GCM_IV_SIZE 8
+#define TLS_CIPHER_SM4_GCM_KEY_SIZE 16
+#define TLS_CIPHER_SM4_GCM_SALT_SIZE 4
+#define TLS_CIPHER_SM4_GCM_TAG_SIZE 16
+#define TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE 8
+#define TLS_CIPHER_SM4_CCM 56
+#define TLS_CIPHER_SM4_CCM_IV_SIZE 8
+#define TLS_CIPHER_SM4_CCM_KEY_SIZE 16
+#define TLS_CIPHER_SM4_CCM_SALT_SIZE 4
+#define TLS_CIPHER_SM4_CCM_TAG_SIZE 16
+#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8
 #define TLS_SET_RECORD_TYPE 1
 #define TLS_GET_RECORD_TYPE 2
 struct tls_crypto_info {
@@ -88,6 +100,20 @@
   unsigned char salt[TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE];
   unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE];
 };
+struct tls12_crypto_info_sm4_gcm {
+  struct tls_crypto_info info;
+  unsigned char iv[TLS_CIPHER_SM4_GCM_IV_SIZE];
+  unsigned char key[TLS_CIPHER_SM4_GCM_KEY_SIZE];
+  unsigned char salt[TLS_CIPHER_SM4_GCM_SALT_SIZE];
+  unsigned char rec_seq[TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE];
+};
+struct tls12_crypto_info_sm4_ccm {
+  struct tls_crypto_info info;
+  unsigned char iv[TLS_CIPHER_SM4_CCM_IV_SIZE];
+  unsigned char key[TLS_CIPHER_SM4_CCM_KEY_SIZE];
+  unsigned char salt[TLS_CIPHER_SM4_CCM_SALT_SIZE];
+  unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
+};
 enum {
   TLS_INFO_UNSPEC,
   TLS_INFO_VERSION,
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tty.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tty.h
index 48fa908..dcce572 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tty.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tty.h
@@ -47,4 +47,5 @@
 #define N_NCI 25
 #define N_SPEAKUP 26
 #define N_NULL 27
+#define N_MCTP 28
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tty_flags.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tty_flags.h
index fe591e5..b8354cf 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tty_flags.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/tty_flags.h
@@ -36,7 +36,6 @@
 #define ASYNCB_AUTOPROBE 15
 #define ASYNCB_MAGIC_MULTIPLIER 16
 #define ASYNCB_LAST_USER 16
-#ifndef _KERNEL_
 #define ASYNCB_INITIALIZED 31
 #define ASYNCB_SUSPENDED 30
 #define ASYNCB_NORMAL_ACTIVE 29
@@ -47,7 +46,6 @@
 #define ASYNCB_SHARE_IRQ 24
 #define ASYNCB_CONS_FLOW 23
 #define ASYNCB_FIRST_KERNEL 22
-#endif
 #define ASYNC_HUP_NOTIFY (1U << ASYNCB_HUP_NOTIFY)
 #define ASYNC_SUSPENDED (1U << ASYNCB_SUSPENDED)
 #define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
@@ -67,12 +65,11 @@
 #define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE)
 #define ASYNC_MAGIC_MULTIPLIER (1U << ASYNCB_MAGIC_MULTIPLIER)
 #define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1)
-#define ASYNC_DEPRECATED (ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
+#define ASYNC_DEPRECATED (ASYNC_SPLIT_TERMIOS | ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
 #define ASYNC_USR_MASK (ASYNC_SPD_MASK | ASYNC_CALLOUT_NOHUP | ASYNC_LOW_LATENCY)
 #define ASYNC_SPD_CUST (ASYNC_SPD_HI | ASYNC_SPD_VHI)
 #define ASYNC_SPD_WARP (ASYNC_SPD_HI | ASYNC_SPD_SHI)
 #define ASYNC_SPD_MASK (ASYNC_SPD_HI | ASYNC_SPD_VHI | ASYNC_SPD_SHI)
-#ifndef _KERNEL_
 #define ASYNC_INITIALIZED (1U << ASYNCB_INITIALIZED)
 #define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE)
 #define ASYNC_BOOT_AUTOCONF (1U << ASYNCB_BOOT_AUTOCONF)
@@ -83,4 +80,3 @@
 #define ASYNC_CONS_FLOW (1U << ASYNCB_CONS_FLOW)
 #define ASYNC_INTERNAL_FLAGS (~((1U << ASYNCB_FIRST_KERNEL) - 1))
 #endif
-#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/usb/video.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/usb/video.h
index cd2ede9..b45bada 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/usb/video.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/usb/video.h
@@ -217,8 +217,9 @@
   __u8 bControlSize;
   __u8 bmControls[2];
   __u8 iProcessing;
+  __u8 bmVideoStandards;
 } __attribute__((__packed__));
-#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9 + (n))
+#define UVC_DT_PROCESSING_UNIT_SIZE(n) (10 + (n))
 struct uvc_extension_unit_descriptor {
   __u8 bLength;
   __u8 bDescriptorType;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/userfaultfd.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
index fc100ae..ca7b7a5 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
@@ -20,16 +20,18 @@
 #define _LINUX_USERFAULTFD_H
 #include <linux/types.h>
 #define UFFD_API ((__u64) 0xAA)
-#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID)
+#define UFFD_API_REGISTER_MODES (UFFDIO_REGISTER_MODE_MISSING | UFFDIO_REGISTER_MODE_WP | UFFDIO_REGISTER_MODE_MINOR)
+#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID | UFFD_FEATURE_MINOR_HUGETLBFS | UFFD_FEATURE_MINOR_SHMEM)
 #define UFFD_API_IOCTLS ((__u64) 1 << _UFFDIO_REGISTER | (__u64) 1 << _UFFDIO_UNREGISTER | (__u64) 1 << _UFFDIO_API)
-#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT)
-#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY)
+#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT | (__u64) 1 << _UFFDIO_CONTINUE)
+#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_CONTINUE)
 #define _UFFDIO_REGISTER (0x00)
 #define _UFFDIO_UNREGISTER (0x01)
 #define _UFFDIO_WAKE (0x02)
 #define _UFFDIO_COPY (0x03)
 #define _UFFDIO_ZEROPAGE (0x04)
 #define _UFFDIO_WRITEPROTECT (0x06)
+#define _UFFDIO_CONTINUE (0x07)
 #define _UFFDIO_API (0x3F)
 #define UFFDIO 0xAA
 #define UFFDIO_API _IOWR(UFFDIO, _UFFDIO_API, struct uffdio_api)
@@ -39,6 +41,7 @@
 #define UFFDIO_COPY _IOWR(UFFDIO, _UFFDIO_COPY, struct uffdio_copy)
 #define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, struct uffdio_zeropage)
 #define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, struct uffdio_writeprotect)
+#define UFFDIO_CONTINUE _IOWR(UFFDIO, _UFFDIO_CONTINUE, struct uffdio_continue)
 struct uffd_msg {
   __u8 event;
   __u8 reserved1;
@@ -78,6 +81,7 @@
 #define UFFD_EVENT_UNMAP 0x16
 #define UFFD_PAGEFAULT_FLAG_WRITE (1 << 0)
 #define UFFD_PAGEFAULT_FLAG_WP (1 << 1)
+#define UFFD_PAGEFAULT_FLAG_MINOR (1 << 2)
 struct uffdio_api {
   __u64 api;
 #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1 << 0)
@@ -89,6 +93,8 @@
 #define UFFD_FEATURE_EVENT_UNMAP (1 << 6)
 #define UFFD_FEATURE_SIGBUS (1 << 7)
 #define UFFD_FEATURE_THREAD_ID (1 << 8)
+#define UFFD_FEATURE_MINOR_HUGETLBFS (1 << 9)
+#define UFFD_FEATURE_MINOR_SHMEM (1 << 10)
   __u64 features;
   __u64 ioctls;
 };
@@ -100,6 +106,7 @@
   struct uffdio_range range;
 #define UFFDIO_REGISTER_MODE_MISSING ((__u64) 1 << 0)
 #define UFFDIO_REGISTER_MODE_WP ((__u64) 1 << 1)
+#define UFFDIO_REGISTER_MODE_MINOR ((__u64) 1 << 2)
   __u64 mode;
   __u64 ioctls;
 };
@@ -124,5 +131,11 @@
 #define UFFDIO_WRITEPROTECT_MODE_DONTWAKE ((__u64) 1 << 1)
   __u64 mode;
 };
+struct uffdio_continue {
+  struct uffdio_range range;
+#define UFFDIO_CONTINUE_MODE_DONTWAKE ((__u64) 1 << 0)
+  __u64 mode;
+  __s64 mapped;
+};
 #define UFFD_USER_MODE_ONLY 1
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
index 75e5ccd..1a11355 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef __LINUX_V4L2_CONTROLS_H
 #define __LINUX_V4L2_CONTROLS_H
+#include <linux/const.h>
 #include <linux/types.h>
 #define V4L2_CTRL_CLASS_USER 0x00980000
 #define V4L2_CTRL_CLASS_CODEC 0x00990000
@@ -32,6 +33,7 @@
 #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000
 #define V4L2_CTRL_CLASS_DETECT 0x00a30000
 #define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000
+#define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000
 #define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
 #define V4L2_CID_USER_BASE V4L2_CID_BASE
 #define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
@@ -88,6 +90,7 @@
   V4L2_COLORFX_SOLARIZATION = 13,
   V4L2_COLORFX_ANTIQUE = 14,
   V4L2_COLORFX_SET_CBCR = 15,
+  V4L2_COLORFX_SET_RGB = 16,
 };
 #define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE + 32)
 #define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE + 33)
@@ -100,7 +103,8 @@
 #define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE + 40)
 #define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE + 41)
 #define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE + 42)
-#define V4L2_CID_LASTP1 (V4L2_CID_BASE + 43)
+#define V4L2_CID_COLORFX_RGB (V4L2_CID_BASE + 43)
+#define V4L2_CID_LASTP1 (V4L2_CID_BASE + 44)
 #define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000)
 #define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010)
 #define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030)
@@ -114,6 +118,7 @@
 #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0)
 #define V4L2_CID_USER_CODA_BASE (V4L2_CID_USER_BASE + 0x10e0)
 #define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0)
+#define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170)
 #define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900)
 #define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1)
 #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE + 0)
@@ -318,6 +323,12 @@
 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE + 228)
 #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE + 229)
 #define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE + 230)
+#define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_CODEC_BASE + 231)
+#define V4L2_CID_MPEG_VIDEO_LTR_COUNT (V4L2_CID_CODEC_BASE + 232)
+#define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (V4L2_CID_CODEC_BASE + 233)
+#define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_CODEC_BASE + 234)
+#define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_CODEC_BASE + 235)
+#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (V4L2_CID_CODEC_BASE + 236)
 #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE + 270)
 enum v4l2_mpeg_video_mpeg2_level {
   V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
@@ -670,6 +681,8 @@
 #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 650)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 651)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652)
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_CODEC_BASE + 653)
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_BASE + 654)
 #define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
 #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE + 0)
 enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
@@ -926,6 +939,7 @@
 #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
 #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
 #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
+#define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9)
 #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
 #define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1)
 #define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
@@ -1158,17 +1172,17 @@
   __u32 flags;
 };
 #define V4L2_FWHT_VERSION 3
-#define V4L2_FWHT_FL_IS_INTERLACED BIT(0)
-#define V4L2_FWHT_FL_IS_BOTTOM_FIRST BIT(1)
-#define V4L2_FWHT_FL_IS_ALTERNATE BIT(2)
-#define V4L2_FWHT_FL_IS_BOTTOM_FIELD BIT(3)
-#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED BIT(4)
-#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED BIT(5)
-#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED BIT(6)
-#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT BIT(7)
-#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH BIT(8)
-#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED BIT(9)
-#define V4L2_FWHT_FL_I_FRAME BIT(10)
+#define V4L2_FWHT_FL_IS_INTERLACED _BITUL(0)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIRST _BITUL(1)
+#define V4L2_FWHT_FL_IS_ALTERNATE _BITUL(2)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIELD _BITUL(3)
+#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED _BITUL(4)
+#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED _BITUL(5)
+#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED _BITUL(6)
+#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT _BITUL(7)
+#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH _BITUL(8)
+#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED _BITUL(9)
+#define V4L2_FWHT_FL_I_FRAME _BITUL(10)
 #define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16)
 #define V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET 16
 #define V4L2_FWHT_FL_PIXENC_MSK GENMASK(20, 19)
@@ -1188,6 +1202,279 @@
   __u32 ycbcr_enc;
   __u32 quantization;
 };
+#define V4L2_VP8_SEGMENT_FLAG_ENABLED 0x01
+#define V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP 0x02
+#define V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA 0x04
+#define V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE 0x08
+struct v4l2_vp8_segment {
+  __s8 quant_update[4];
+  __s8 lf_update[4];
+  __u8 segment_probs[3];
+  __u8 padding;
+  __u32 flags;
+};
+#define V4L2_VP8_LF_ADJ_ENABLE 0x01
+#define V4L2_VP8_LF_DELTA_UPDATE 0x02
+#define V4L2_VP8_LF_FILTER_TYPE_SIMPLE 0x04
+struct v4l2_vp8_loop_filter {
+  __s8 ref_frm_delta[4];
+  __s8 mb_mode_delta[4];
+  __u8 sharpness_level;
+  __u8 level;
+  __u16 padding;
+  __u32 flags;
+};
+struct v4l2_vp8_quantization {
+  __u8 y_ac_qi;
+  __s8 y_dc_delta;
+  __s8 y2_dc_delta;
+  __s8 y2_ac_delta;
+  __s8 uv_dc_delta;
+  __s8 uv_ac_delta;
+  __u16 padding;
+};
+#define V4L2_VP8_COEFF_PROB_CNT 11
+#define V4L2_VP8_MV_PROB_CNT 19
+struct v4l2_vp8_entropy {
+  __u8 coeff_probs[4][8][3][V4L2_VP8_COEFF_PROB_CNT];
+  __u8 y_mode_probs[4];
+  __u8 uv_mode_probs[3];
+  __u8 mv_probs[2][V4L2_VP8_MV_PROB_CNT];
+  __u8 padding[3];
+};
+struct v4l2_vp8_entropy_coder_state {
+  __u8 range;
+  __u8 value;
+  __u8 bit_count;
+  __u8 padding;
+};
+#define V4L2_VP8_FRAME_FLAG_KEY_FRAME 0x01
+#define V4L2_VP8_FRAME_FLAG_EXPERIMENTAL 0x02
+#define V4L2_VP8_FRAME_FLAG_SHOW_FRAME 0x04
+#define V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF 0x08
+#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN 0x10
+#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT 0x20
+#define V4L2_VP8_FRAME_IS_KEY_FRAME(hdr) (! ! ((hdr)->flags & V4L2_VP8_FRAME_FLAG_KEY_FRAME))
+#define V4L2_CID_STATELESS_VP8_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 200)
+struct v4l2_ctrl_vp8_frame {
+  struct v4l2_vp8_segment segment;
+  struct v4l2_vp8_loop_filter lf;
+  struct v4l2_vp8_quantization quant;
+  struct v4l2_vp8_entropy entropy;
+  struct v4l2_vp8_entropy_coder_state coder_state;
+  __u16 width;
+  __u16 height;
+  __u8 horizontal_scale;
+  __u8 vertical_scale;
+  __u8 version;
+  __u8 prob_skip_false;
+  __u8 prob_intra;
+  __u8 prob_last;
+  __u8 prob_gf;
+  __u8 num_dct_parts;
+  __u32 first_part_size;
+  __u32 first_part_header_bits;
+  __u32 dct_part_sizes[8];
+  __u64 last_frame_ts;
+  __u64 golden_frame_ts;
+  __u64 alt_frame_ts;
+  __u64 flags;
+};
+#define V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE 0x01
+#define V4L2_CID_STATELESS_MPEG2_SEQUENCE (V4L2_CID_CODEC_STATELESS_BASE + 220)
+struct v4l2_ctrl_mpeg2_sequence {
+  __u16 horizontal_size;
+  __u16 vertical_size;
+  __u32 vbv_buffer_size;
+  __u16 profile_and_level_indication;
+  __u8 chroma_format;
+  __u8 flags;
+};
+#define V4L2_MPEG2_PIC_CODING_TYPE_I 1
+#define V4L2_MPEG2_PIC_CODING_TYPE_P 2
+#define V4L2_MPEG2_PIC_CODING_TYPE_B 3
+#define V4L2_MPEG2_PIC_CODING_TYPE_D 4
+#define V4L2_MPEG2_PIC_TOP_FIELD 0x1
+#define V4L2_MPEG2_PIC_BOTTOM_FIELD 0x2
+#define V4L2_MPEG2_PIC_FRAME 0x3
+#define V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST 0x0001
+#define V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT 0x0002
+#define V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV 0x0004
+#define V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE 0x0008
+#define V4L2_MPEG2_PIC_FLAG_INTRA_VLC 0x0010
+#define V4L2_MPEG2_PIC_FLAG_ALT_SCAN 0x0020
+#define V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST 0x0040
+#define V4L2_MPEG2_PIC_FLAG_PROGRESSIVE 0x0080
+#define V4L2_CID_STATELESS_MPEG2_PICTURE (V4L2_CID_CODEC_STATELESS_BASE + 221)
+struct v4l2_ctrl_mpeg2_picture {
+  __u64 backward_ref_ts;
+  __u64 forward_ref_ts;
+  __u32 flags;
+  __u8 f_code[2][2];
+  __u8 picture_coding_type;
+  __u8 picture_structure;
+  __u8 intra_dc_precision;
+  __u8 reserved[5];
+};
+#define V4L2_CID_STATELESS_MPEG2_QUANTISATION (V4L2_CID_CODEC_STATELESS_BASE + 222)
+struct v4l2_ctrl_mpeg2_quantisation {
+  __u8 intra_quantiser_matrix[64];
+  __u8 non_intra_quantiser_matrix[64];
+  __u8 chroma_intra_quantiser_matrix[64];
+  __u8 chroma_non_intra_quantiser_matrix[64];
+};
+#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
+#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
+#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
+struct v4l2_ctrl_hdr10_cll_info {
+  __u16 max_content_light_level;
+  __u16 max_pic_average_light_level;
+};
+#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000
+#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000
+#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000
+#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1
+#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000
+struct v4l2_ctrl_hdr10_mastering_display {
+  __u16 display_primaries_x[3];
+  __u16 display_primaries_y[3];
+  __u16 white_point_x;
+  __u16 white_point_y;
+  __u32 max_display_mastering_luminance;
+  __u32 min_display_mastering_luminance;
+};
+#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1
+#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2
+struct v4l2_vp9_loop_filter {
+  __s8 ref_deltas[4];
+  __s8 mode_deltas[2];
+  __u8 level;
+  __u8 sharpness;
+  __u8 flags;
+  __u8 reserved[7];
+};
+struct v4l2_vp9_quantization {
+  __u8 base_q_idx;
+  __s8 delta_q_y_dc;
+  __s8 delta_q_uv_dc;
+  __s8 delta_q_uv_ac;
+  __u8 reserved[4];
+};
+#define V4L2_VP9_SEGMENTATION_FLAG_ENABLED 0x01
+#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP 0x02
+#define V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE 0x04
+#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA 0x08
+#define V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE 0x10
+#define V4L2_VP9_SEG_LVL_ALT_Q 0
+#define V4L2_VP9_SEG_LVL_ALT_L 1
+#define V4L2_VP9_SEG_LVL_REF_FRAME 2
+#define V4L2_VP9_SEG_LVL_SKIP 3
+#define V4L2_VP9_SEG_LVL_MAX 4
+#define V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) (1 << (id))
+#define V4L2_VP9_SEGMENT_FEATURE_ENABLED_MASK 0xf
+struct v4l2_vp9_segmentation {
+  __s16 feature_data[8][4];
+  __u8 feature_enabled[8];
+  __u8 tree_probs[7];
+  __u8 pred_probs[3];
+  __u8 flags;
+  __u8 reserved[5];
+};
+#define V4L2_VP9_FRAME_FLAG_KEY_FRAME 0x001
+#define V4L2_VP9_FRAME_FLAG_SHOW_FRAME 0x002
+#define V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT 0x004
+#define V4L2_VP9_FRAME_FLAG_INTRA_ONLY 0x008
+#define V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV 0x010
+#define V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX 0x020
+#define V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE 0x040
+#define V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING 0x080
+#define V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING 0x100
+#define V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING 0x200
+#define V4L2_VP9_SIGN_BIAS_LAST 0x1
+#define V4L2_VP9_SIGN_BIAS_GOLDEN 0x2
+#define V4L2_VP9_SIGN_BIAS_ALT 0x4
+#define V4L2_VP9_RESET_FRAME_CTX_NONE 0
+#define V4L2_VP9_RESET_FRAME_CTX_SPEC 1
+#define V4L2_VP9_RESET_FRAME_CTX_ALL 2
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP 0
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH 1
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP 2
+#define V4L2_VP9_INTERP_FILTER_BILINEAR 3
+#define V4L2_VP9_INTERP_FILTER_SWITCHABLE 4
+#define V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE 0
+#define V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE 1
+#define V4L2_VP9_REFERENCE_MODE_SELECT 2
+#define V4L2_VP9_PROFILE_MAX 3
+#define V4L2_CID_STATELESS_VP9_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 300)
+struct v4l2_ctrl_vp9_frame {
+  struct v4l2_vp9_loop_filter lf;
+  struct v4l2_vp9_quantization quant;
+  struct v4l2_vp9_segmentation seg;
+  __u32 flags;
+  __u16 compressed_header_size;
+  __u16 uncompressed_header_size;
+  __u16 frame_width_minus_1;
+  __u16 frame_height_minus_1;
+  __u16 render_width_minus_1;
+  __u16 render_height_minus_1;
+  __u64 last_frame_ts;
+  __u64 golden_frame_ts;
+  __u64 alt_frame_ts;
+  __u8 ref_frame_sign_bias;
+  __u8 reset_frame_context;
+  __u8 frame_context_idx;
+  __u8 profile;
+  __u8 bit_depth;
+  __u8 interpolation_filter;
+  __u8 tile_cols_log2;
+  __u8 tile_rows_log2;
+  __u8 reference_mode;
+  __u8 reserved[7];
+};
+#define V4L2_VP9_NUM_FRAME_CTX 4
+struct v4l2_vp9_mv_probs {
+  __u8 joint[3];
+  __u8 sign[2];
+  __u8 classes[2][10];
+  __u8 class0_bit[2];
+  __u8 bits[2][10];
+  __u8 class0_fr[2][2][3];
+  __u8 fr[2][3];
+  __u8 class0_hp[2];
+  __u8 hp[2];
+};
+#define V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (V4L2_CID_CODEC_STATELESS_BASE + 301)
+#define V4L2_VP9_TX_MODE_ONLY_4X4 0
+#define V4L2_VP9_TX_MODE_ALLOW_8X8 1
+#define V4L2_VP9_TX_MODE_ALLOW_16X16 2
+#define V4L2_VP9_TX_MODE_ALLOW_32X32 3
+#define V4L2_VP9_TX_MODE_SELECT 4
+struct v4l2_ctrl_vp9_compressed_hdr {
+  __u8 tx_mode;
+  __u8 tx8[2][1];
+  __u8 tx16[2][2];
+  __u8 tx32[2][3];
+  __u8 coef[4][2][2][6][6][3];
+  __u8 skip[3];
+  __u8 inter_mode[7][3];
+  __u8 interp_filter[4][2];
+  __u8 is_inter[4];
+  __u8 comp_mode[5];
+  __u8 single_ref[5][2];
+  __u8 comp_ref[5];
+  __u8 y_mode[4][9];
+  __u8 uv_mode[10][9];
+  __u8 partition[16][3];
+  struct v4l2_vp9_mv_probs mv;
+};
 #define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC
 #define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS
 #define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vdpa.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vdpa.h
index bee6618..b3e5d39 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vdpa.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vdpa.h
@@ -27,9 +27,11 @@
   VDPA_CMD_DEV_NEW,
   VDPA_CMD_DEV_DEL,
   VDPA_CMD_DEV_GET,
+  VDPA_CMD_DEV_CONFIG_GET,
 };
 enum vdpa_attr {
   VDPA_ATTR_UNSPEC,
+  VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC,
   VDPA_ATTR_MGMTDEV_BUS_NAME,
   VDPA_ATTR_MGMTDEV_DEV_NAME,
   VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES,
@@ -38,6 +40,14 @@
   VDPA_ATTR_DEV_VENDOR_ID,
   VDPA_ATTR_DEV_MAX_VQS,
   VDPA_ATTR_DEV_MAX_VQ_SIZE,
+  VDPA_ATTR_DEV_MIN_VQ_SIZE,
+  VDPA_ATTR_DEV_NET_CFG_MACADDR,
+  VDPA_ATTR_DEV_NET_STATUS,
+  VDPA_ATTR_DEV_NET_CFG_MAX_VQP,
+  VDPA_ATTR_DEV_NET_CFG_MTU,
+  VDPA_ATTR_DEV_NEGOTIATED_FEATURES,
+  VDPA_ATTR_DEV_MGMTDEV_MAX_VQS,
+  VDPA_ATTR_DEV_SUPPORTED_FEATURES,
   VDPA_ATTR_MAX,
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vduse.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vduse.h
new file mode 100644
index 0000000..2dc8c82
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vduse.h
@@ -0,0 +1,134 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VDUSE_H_
+#define _UAPI_VDUSE_H_
+#include <linux/types.h>
+#define VDUSE_BASE 0x81
+#define VDUSE_API_VERSION 0
+#define VDUSE_GET_API_VERSION _IOR(VDUSE_BASE, 0x00, __u64)
+#define VDUSE_SET_API_VERSION _IOW(VDUSE_BASE, 0x01, __u64)
+struct vduse_dev_config {
+#define VDUSE_NAME_MAX 256
+  char name[VDUSE_NAME_MAX];
+  __u32 vendor_id;
+  __u32 device_id;
+  __u64 features;
+  __u32 vq_num;
+  __u32 vq_align;
+  __u32 reserved[13];
+  __u32 config_size;
+  __u8 config[];
+};
+#define VDUSE_CREATE_DEV _IOW(VDUSE_BASE, 0x02, struct vduse_dev_config)
+#define VDUSE_DESTROY_DEV _IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX])
+struct vduse_iotlb_entry {
+  __u64 offset;
+  __u64 start;
+  __u64 last;
+#define VDUSE_ACCESS_RO 0x1
+#define VDUSE_ACCESS_WO 0x2
+#define VDUSE_ACCESS_RW 0x3
+  __u8 perm;
+};
+#define VDUSE_IOTLB_GET_FD _IOWR(VDUSE_BASE, 0x10, struct vduse_iotlb_entry)
+#define VDUSE_DEV_GET_FEATURES _IOR(VDUSE_BASE, 0x11, __u64)
+struct vduse_config_data {
+  __u32 offset;
+  __u32 length;
+  __u8 buffer[];
+};
+#define VDUSE_DEV_SET_CONFIG _IOW(VDUSE_BASE, 0x12, struct vduse_config_data)
+#define VDUSE_DEV_INJECT_CONFIG_IRQ _IO(VDUSE_BASE, 0x13)
+struct vduse_vq_config {
+  __u32 index;
+  __u16 max_size;
+  __u16 reserved[13];
+};
+#define VDUSE_VQ_SETUP _IOW(VDUSE_BASE, 0x14, struct vduse_vq_config)
+struct vduse_vq_state_split {
+  __u16 avail_index;
+};
+struct vduse_vq_state_packed {
+  __u16 last_avail_counter;
+  __u16 last_avail_idx;
+  __u16 last_used_counter;
+  __u16 last_used_idx;
+};
+struct vduse_vq_info {
+  __u32 index;
+  __u32 num;
+  __u64 desc_addr;
+  __u64 driver_addr;
+  __u64 device_addr;
+  union {
+    struct vduse_vq_state_split split;
+    struct vduse_vq_state_packed packed;
+  };
+  __u8 ready;
+};
+#define VDUSE_VQ_GET_INFO _IOWR(VDUSE_BASE, 0x15, struct vduse_vq_info)
+struct vduse_vq_eventfd {
+  __u32 index;
+#define VDUSE_EVENTFD_DEASSIGN - 1
+  int fd;
+};
+#define VDUSE_VQ_SETUP_KICKFD _IOW(VDUSE_BASE, 0x16, struct vduse_vq_eventfd)
+#define VDUSE_VQ_INJECT_IRQ _IOW(VDUSE_BASE, 0x17, __u32)
+enum vduse_req_type {
+  VDUSE_GET_VQ_STATE,
+  VDUSE_SET_STATUS,
+  VDUSE_UPDATE_IOTLB,
+};
+struct vduse_vq_state {
+  __u32 index;
+  union {
+    struct vduse_vq_state_split split;
+    struct vduse_vq_state_packed packed;
+  };
+};
+struct vduse_dev_status {
+  __u8 status;
+};
+struct vduse_iova_range {
+  __u64 start;
+  __u64 last;
+};
+struct vduse_dev_request {
+  __u32 type;
+  __u32 request_id;
+  __u32 reserved[4];
+  union {
+    struct vduse_vq_state vq_state;
+    struct vduse_dev_status s;
+    struct vduse_iova_range iova;
+    __u32 padding[32];
+  };
+};
+struct vduse_dev_response {
+  __u32 request_id;
+#define VDUSE_REQ_RESULT_OK 0x00
+#define VDUSE_REQ_RESULT_FAILED 0x01
+  __u32 result;
+  __u32 reserved[4];
+  union {
+    struct vduse_vq_state vq_state;
+    __u32 padding[32];
+  };
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/version.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/version.h
index 86c0070..2dfd696 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/version.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/version.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#define LINUX_VERSION_CODE 330752
+#define LINUX_VERSION_CODE 332032
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
 #define LINUX_VERSION_MAJOR 5
-#define LINUX_VERSION_PATCHLEVEL 12
+#define LINUX_VERSION_PATCHLEVEL 17
 #define LINUX_VERSION_SUBLEVEL 0
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/videodev2.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/videodev2.h
index 76d9af9..1cae711 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/videodev2.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/videodev2.h
@@ -24,7 +24,7 @@
 #include <linux/types.h>
 #include <linux/v4l2-common.h>
 #include <linux/v4l2-controls.h>
-#define VIDEO_MAX_FRAME 64
+#define VIDEO_MAX_FRAME 32
 #define VIDEO_MAX_PLANES 8
 #define v4l2_fourcc(a,b,c,d) ((__u32) (a) | ((__u32) (b) << 8) | ((__u32) (c) << 16) | ((__u32) (d) << 24))
 #define v4l2_fourcc_be(a,b,c,d) (v4l2_fourcc(a, b, c, d) | (1U << 31))
@@ -266,6 +266,7 @@
 #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4')
 #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O')
 #define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P')
+#define V4L2_PIX_FMT_YUV24 v4l2_fourcc('Y', 'U', 'V', '3')
 #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4')
 #define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V')
 #define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V')
@@ -278,13 +279,10 @@
 #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1')
 #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4')
 #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2')
-#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1')
 #define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6')
 #define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1')
-#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
-#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9')
 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9')
 #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P')
@@ -297,6 +295,11 @@
 #define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1')
 #define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4')
 #define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2')
+#define V4L2_PIX_FMT_NV12_4L4 v4l2_fourcc('V', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2')
+#define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
+#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1')
 #define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G')
 #define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G')
@@ -355,7 +358,9 @@
 #define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G')
 #define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L')
 #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0')
+#define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F')
 #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0')
+#define V4L2_PIX_FMT_VP9_FRAME v4l2_fourcc('V', 'P', '9', 'F')
 #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C')
 #define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T')
 #define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H')
@@ -390,8 +395,8 @@
 #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I')
 #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
 #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1')
+#define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1')
 #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I')
-#define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2')
 #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4')
 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4')
 #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b')
@@ -526,8 +531,10 @@
   __u32 type;
   __u32 memory;
   __u32 capabilities;
-  __u32 reserved[1];
+  __u8 flags;
+  __u8 reserved[3];
 };
+#define V4L2_MEMORY_FLAG_NON_COHERENT (1 << 0)
 #define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
 #define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
 #define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)
@@ -888,6 +895,12 @@
     struct v4l2_ctrl_h264_slice_params __user * p_h264_slice_params;
     struct v4l2_ctrl_h264_decode_params __user * p_h264_decode_params;
     struct v4l2_ctrl_fwht_params __user * p_fwht_params;
+    struct v4l2_ctrl_vp8_frame __user * p_vp8_frame;
+    struct v4l2_ctrl_mpeg2_sequence __user * p_mpeg2_sequence;
+    struct v4l2_ctrl_mpeg2_picture __user * p_mpeg2_picture;
+    struct v4l2_ctrl_mpeg2_quantisation __user * p_mpeg2_quantisation;
+    struct v4l2_ctrl_vp9_compressed_hdr __user * p_vp9_compressed_hdr_probs;
+    struct v4l2_ctrl_vp9_frame __user * p_vp9_frame;
     void __user * ptr;
   };
 } __attribute__((packed));
@@ -925,6 +938,8 @@
   V4L2_CTRL_TYPE_U16 = 0x0101,
   V4L2_CTRL_TYPE_U32 = 0x0102,
   V4L2_CTRL_TYPE_AREA = 0x0106,
+  V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110,
+  V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111,
   V4L2_CTRL_TYPE_H264_SPS = 0x0200,
   V4L2_CTRL_TYPE_H264_PPS = 0x0201,
   V4L2_CTRL_TYPE_H264_SCALING_MATRIX = 0x0202,
@@ -932,6 +947,12 @@
   V4L2_CTRL_TYPE_H264_DECODE_PARAMS = 0x0204,
   V4L2_CTRL_TYPE_H264_PRED_WEIGHTS = 0x0205,
   V4L2_CTRL_TYPE_FWHT_PARAMS = 0x0220,
+  V4L2_CTRL_TYPE_VP8_FRAME = 0x0240,
+  V4L2_CTRL_TYPE_MPEG2_QUANTISATION = 0x0250,
+  V4L2_CTRL_TYPE_MPEG2_SEQUENCE = 0x0251,
+  V4L2_CTRL_TYPE_MPEG2_PICTURE = 0x0252,
+  V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR = 0x0260,
+  V4L2_CTRL_TYPE_VP9_FRAME = 0x0261,
 };
 struct v4l2_queryctrl {
   __u32 id;
@@ -1365,7 +1386,8 @@
   __u32 memory;
   struct v4l2_format format;
   __u32 capabilities;
-  __u32 reserved[7];
+  __u32 flags;
+  __u32 reserved[6];
 };
 #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
 #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
@@ -1450,4 +1472,6 @@
 #define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
 #define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
 #define BASE_VIDIOC_PRIVATE 192
+#define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16
+#define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
similarity index 63%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
index bb45c3d..7e29eaa 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
@@ -16,14 +16,25 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_LINUX_VIRTIO_BT_H
+#define _UAPI_LINUX_VIRTIO_BT_H
+#include <linux/virtio_types.h>
+#define VIRTIO_BT_F_VND_HCI 0
+#define VIRTIO_BT_F_MSFT_EXT 1
+#define VIRTIO_BT_F_AOSP_EXT 2
+enum virtio_bt_config_type {
+  VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
+  VIRTIO_BT_CONFIG_TYPE_AMP = 1,
 };
+enum virtio_bt_config_vendor {
+  VIRTIO_BT_CONFIG_VENDOR_NONE = 0,
+  VIRTIO_BT_CONFIG_VENDOR_ZEPHYR = 1,
+  VIRTIO_BT_CONFIG_VENDOR_INTEL = 2,
+  VIRTIO_BT_CONFIG_VENDOR_REALTEK = 3,
+};
+struct virtio_bt_config {
+  __u8 type;
+  __u16 vendor;
+  __u16 msft_opcode;
+} __attribute__((packed));
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h
new file mode 100644
index 0000000..543fe76
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VIRTIO_GPIO_H
+#define _LINUX_VIRTIO_GPIO_H
+#include <linux/types.h>
+#define VIRTIO_GPIO_F_IRQ 0
+#define VIRTIO_GPIO_MSG_GET_NAMES 0x0001
+#define VIRTIO_GPIO_MSG_GET_DIRECTION 0x0002
+#define VIRTIO_GPIO_MSG_SET_DIRECTION 0x0003
+#define VIRTIO_GPIO_MSG_GET_VALUE 0x0004
+#define VIRTIO_GPIO_MSG_SET_VALUE 0x0005
+#define VIRTIO_GPIO_MSG_IRQ_TYPE 0x0006
+#define VIRTIO_GPIO_STATUS_OK 0x0
+#define VIRTIO_GPIO_STATUS_ERR 0x1
+#define VIRTIO_GPIO_DIRECTION_NONE 0x00
+#define VIRTIO_GPIO_DIRECTION_OUT 0x01
+#define VIRTIO_GPIO_DIRECTION_IN 0x02
+#define VIRTIO_GPIO_IRQ_TYPE_NONE 0x00
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_RISING 0x01
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_FALLING 0x02
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_BOTH 0x03
+#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_HIGH 0x04
+#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_LOW 0x08
+struct virtio_gpio_config {
+  __le16 ngpio;
+  __u8 padding[2];
+  __le32 gpio_names_size;
+};
+struct virtio_gpio_request {
+  __le16 type;
+  __le16 gpio;
+  __le32 value;
+};
+struct virtio_gpio_response {
+  __u8 status;
+  __u8 value;
+};
+struct virtio_gpio_response_get_names {
+  __u8 status;
+  __u8 value[];
+};
+struct virtio_gpio_irq_request {
+  __le16 gpio;
+};
+struct virtio_gpio_irq_response {
+  __u8 status;
+};
+#define VIRTIO_GPIO_IRQ_STATUS_INVALID 0x0
+#define VIRTIO_GPIO_IRQ_STATUS_VALID 0x1
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
index 83ad5a7..8a21afd 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
@@ -23,6 +23,7 @@
 #define VIRTIO_GPU_F_EDID 1
 #define VIRTIO_GPU_F_RESOURCE_UUID 2
 #define VIRTIO_GPU_F_RESOURCE_BLOB 3
+#define VIRTIO_GPU_F_CONTEXT_INIT 4
 enum virtio_gpu_ctrl_type {
   VIRTIO_GPU_UNDEFINED = 0,
   VIRTIO_GPU_CMD_GET_DISPLAY_INFO = 0x0100,
@@ -70,12 +71,14 @@
   VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1
 };
 #define VIRTIO_GPU_FLAG_FENCE (1 << 0)
+#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1 << 1)
 struct virtio_gpu_ctrl_hdr {
   __le32 type;
   __le32 flags;
   __le64 fence_id;
   __le32 ctx_id;
-  __le32 padding;
+  __u8 ring_idx;
+  __u8 padding[3];
 };
 struct virtio_gpu_cursor_pos {
   __le32 scanout_id;
@@ -181,10 +184,11 @@
   __le32 flags;
   __le32 padding;
 };
+#define VIRTIO_GPU_CONTEXT_INIT_CAPSET_ID_MASK 0x000000ff
 struct virtio_gpu_ctx_create {
   struct virtio_gpu_ctrl_hdr hdr;
   __le32 nlen;
-  __le32 padding;
+  __le32 context_init;
   char debug_name[64];
 };
 struct virtio_gpu_ctx_destroy {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
similarity index 71%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
index bb45c3d..9540f26 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
@@ -16,14 +16,21 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _UAPI_LINUX_VIRTIO_I2C_H
+#define _UAPI_LINUX_VIRTIO_I2C_H
+#include <linux/const.h>
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST 0
+#define VIRTIO_I2C_FLAGS_FAIL_NEXT _BITUL(0)
+#define VIRTIO_I2C_FLAGS_M_RD _BITUL(1)
+struct virtio_i2c_out_hdr {
+  __le16 addr;
+  __le16 padding;
+  __le32 flags;
 };
+struct virtio_i2c_in_hdr {
+  __u8 status;
+};
+#define VIRTIO_I2C_MSG_OK 0
+#define VIRTIO_I2C_MSG_ERR 1
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_ids.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
index bae26a0..2894700 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
@@ -40,7 +40,28 @@
 #define VIRTIO_ID_PSTORE 22
 #define VIRTIO_ID_IOMMU 23
 #define VIRTIO_ID_MEM 24
+#define VIRTIO_ID_SOUND 25
 #define VIRTIO_ID_FS 26
 #define VIRTIO_ID_PMEM 27
+#define VIRTIO_ID_RPMB 28
 #define VIRTIO_ID_MAC80211_HWSIM 29
+#define VIRTIO_ID_VIDEO_ENCODER 30
+#define VIRTIO_ID_VIDEO_DECODER 31
+#define VIRTIO_ID_SCMI 32
+#define VIRTIO_ID_NITRO_SEC_MOD 33
+#define VIRTIO_ID_I2C_ADAPTER 34
+#define VIRTIO_ID_WATCHDOG 35
+#define VIRTIO_ID_CAN 36
+#define VIRTIO_ID_DMABUF 37
+#define VIRTIO_ID_PARAM_SERV 38
+#define VIRTIO_ID_AUDIO_POLICY 39
+#define VIRTIO_ID_BT 40
+#define VIRTIO_ID_GPIO 41
+#define VIRTIO_TRANS_ID_NET 1000
+#define VIRTIO_TRANS_ID_BLOCK 1001
+#define VIRTIO_TRANS_ID_BALLOON 1002
+#define VIRTIO_TRANS_ID_CONSOLE 1003
+#define VIRTIO_TRANS_ID_SCSI 1004
+#define VIRTIO_TRANS_ID_RNG 1005
+#define VIRTIO_TRANS_ID_9P 1009
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
index b08de57..ec8def8 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
@@ -25,6 +25,7 @@
 #define VIRTIO_IOMMU_F_BYPASS 3
 #define VIRTIO_IOMMU_F_PROBE 4
 #define VIRTIO_IOMMU_F_MMIO 5
+#define VIRTIO_IOMMU_F_BYPASS_CONFIG 6
 struct virtio_iommu_range_64 {
   __le64 start;
   __le64 end;
@@ -38,6 +39,8 @@
   struct virtio_iommu_range_64 input_range;
   struct virtio_iommu_range_32 domain_range;
   __le32 probe_size;
+  __u8 bypass;
+  __u8 reserved[3];
 };
 #define VIRTIO_IOMMU_T_ATTACH 0x01
 #define VIRTIO_IOMMU_T_DETACH 0x02
@@ -61,11 +64,13 @@
   __u8 status;
   __u8 reserved[3];
 };
+#define VIRTIO_IOMMU_ATTACH_F_BYPASS (1 << 0)
 struct virtio_iommu_req_attach {
   struct virtio_iommu_req_head head;
   __le32 domain;
   __le32 endpoint;
-  __u8 reserved[8];
+  __le32 flags;
+  __u8 reserved[4];
   struct virtio_iommu_req_tail tail;
 };
 struct virtio_iommu_req_detach {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_mem.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
index d6542b7..66ffce1 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
@@ -23,6 +23,7 @@
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
 #define VIRTIO_MEM_F_ACPI_PXM 0
+#define VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE 1
 #define VIRTIO_MEM_REQ_PLUG 0
 #define VIRTIO_MEM_REQ_UNPLUG 1
 #define VIRTIO_MEM_REQ_UNPLUG_ALL 2
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
similarity index 68%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
index bb45c3d..01c5869 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
@@ -16,14 +16,26 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _UAPI_LINUX_VIRTIO_PCIDEV_H
+#define _UAPI_LINUX_VIRTIO_PCIDEV_H
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+enum virtio_pcidev_ops {
+  VIRTIO_PCIDEV_OP_RESERVED = 0,
+  VIRTIO_PCIDEV_OP_CFG_READ,
+  VIRTIO_PCIDEV_OP_CFG_WRITE,
+  VIRTIO_PCIDEV_OP_MMIO_READ,
+  VIRTIO_PCIDEV_OP_MMIO_WRITE,
+  VIRTIO_PCIDEV_OP_MMIO_MEMSET,
+  VIRTIO_PCIDEV_OP_INT,
+  VIRTIO_PCIDEV_OP_MSI,
+  VIRTIO_PCIDEV_OP_PME,
+};
+struct virtio_pcidev_msg {
+  __u8 op;
+  __u8 bar;
+  __u16 reserved;
+  __u32 size;
+  __u64 addr;
+  __u8 data[];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
similarity index 78%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
index bb45c3d..7907ed4 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
@@ -16,14 +16,12 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#ifndef _UAPI_LINUX_VIRTIO_SCMI_H
+#define _UAPI_LINUX_VIRTIO_SCMI_H
+#include <linux/virtio_types.h>
+#define VIRTIO_SCMI_F_P2A_CHANNELS 0
+#define VIRTIO_SCMI_F_SHARED_MEMORY 1
+#define VIRTIO_SCMI_VQ_TX 0
+#define VIRTIO_SCMI_VQ_RX 1
+#define VIRTIO_SCMI_VQ_MAX_CNT 2
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_snd.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_snd.h
new file mode 100644
index 0000000..60dfa62
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_snd.h
@@ -0,0 +1,224 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 VIRTIO_SND_IF_H
+#define VIRTIO_SND_IF_H
+#include <linux/virtio_types.h>
+struct virtio_snd_config {
+  __le32 jacks;
+  __le32 streams;
+  __le32 chmaps;
+};
+enum {
+  VIRTIO_SND_VQ_CONTROL = 0,
+  VIRTIO_SND_VQ_EVENT,
+  VIRTIO_SND_VQ_TX,
+  VIRTIO_SND_VQ_RX,
+  VIRTIO_SND_VQ_MAX
+};
+enum {
+  VIRTIO_SND_D_OUTPUT = 0,
+  VIRTIO_SND_D_INPUT
+};
+enum {
+  VIRTIO_SND_R_JACK_INFO = 1,
+  VIRTIO_SND_R_JACK_REMAP,
+  VIRTIO_SND_R_PCM_INFO = 0x0100,
+  VIRTIO_SND_R_PCM_SET_PARAMS,
+  VIRTIO_SND_R_PCM_PREPARE,
+  VIRTIO_SND_R_PCM_RELEASE,
+  VIRTIO_SND_R_PCM_START,
+  VIRTIO_SND_R_PCM_STOP,
+  VIRTIO_SND_R_CHMAP_INFO = 0x0200,
+  VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
+  VIRTIO_SND_EVT_JACK_DISCONNECTED,
+  VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
+  VIRTIO_SND_EVT_PCM_XRUN,
+  VIRTIO_SND_S_OK = 0x8000,
+  VIRTIO_SND_S_BAD_MSG,
+  VIRTIO_SND_S_NOT_SUPP,
+  VIRTIO_SND_S_IO_ERR
+};
+struct virtio_snd_hdr {
+  __le32 code;
+};
+struct virtio_snd_event {
+  struct virtio_snd_hdr hdr;
+  __le32 data;
+};
+struct virtio_snd_query_info {
+  struct virtio_snd_hdr hdr;
+  __le32 start_id;
+  __le32 count;
+  __le32 size;
+};
+struct virtio_snd_info {
+  __le32 hda_fn_nid;
+};
+struct virtio_snd_jack_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 jack_id;
+};
+enum {
+  VIRTIO_SND_JACK_F_REMAP = 0
+};
+struct virtio_snd_jack_info {
+  struct virtio_snd_info hdr;
+  __le32 features;
+  __le32 hda_reg_defconf;
+  __le32 hda_reg_caps;
+  __u8 connected;
+  __u8 padding[7];
+};
+struct virtio_snd_jack_remap {
+  struct virtio_snd_jack_hdr hdr;
+  __le32 association;
+  __le32 sequence;
+};
+struct virtio_snd_pcm_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 stream_id;
+};
+enum {
+  VIRTIO_SND_PCM_F_SHMEM_HOST = 0,
+  VIRTIO_SND_PCM_F_SHMEM_GUEST,
+  VIRTIO_SND_PCM_F_MSG_POLLING,
+  VIRTIO_SND_PCM_F_EVT_SHMEM_PERIODS,
+  VIRTIO_SND_PCM_F_EVT_XRUNS
+};
+enum {
+  VIRTIO_SND_PCM_FMT_IMA_ADPCM = 0,
+  VIRTIO_SND_PCM_FMT_MU_LAW,
+  VIRTIO_SND_PCM_FMT_A_LAW,
+  VIRTIO_SND_PCM_FMT_S8,
+  VIRTIO_SND_PCM_FMT_U8,
+  VIRTIO_SND_PCM_FMT_S16,
+  VIRTIO_SND_PCM_FMT_U16,
+  VIRTIO_SND_PCM_FMT_S18_3,
+  VIRTIO_SND_PCM_FMT_U18_3,
+  VIRTIO_SND_PCM_FMT_S20_3,
+  VIRTIO_SND_PCM_FMT_U20_3,
+  VIRTIO_SND_PCM_FMT_S24_3,
+  VIRTIO_SND_PCM_FMT_U24_3,
+  VIRTIO_SND_PCM_FMT_S20,
+  VIRTIO_SND_PCM_FMT_U20,
+  VIRTIO_SND_PCM_FMT_S24,
+  VIRTIO_SND_PCM_FMT_U24,
+  VIRTIO_SND_PCM_FMT_S32,
+  VIRTIO_SND_PCM_FMT_U32,
+  VIRTIO_SND_PCM_FMT_FLOAT,
+  VIRTIO_SND_PCM_FMT_FLOAT64,
+  VIRTIO_SND_PCM_FMT_DSD_U8,
+  VIRTIO_SND_PCM_FMT_DSD_U16,
+  VIRTIO_SND_PCM_FMT_DSD_U32,
+  VIRTIO_SND_PCM_FMT_IEC958_SUBFRAME
+};
+enum {
+  VIRTIO_SND_PCM_RATE_5512 = 0,
+  VIRTIO_SND_PCM_RATE_8000,
+  VIRTIO_SND_PCM_RATE_11025,
+  VIRTIO_SND_PCM_RATE_16000,
+  VIRTIO_SND_PCM_RATE_22050,
+  VIRTIO_SND_PCM_RATE_32000,
+  VIRTIO_SND_PCM_RATE_44100,
+  VIRTIO_SND_PCM_RATE_48000,
+  VIRTIO_SND_PCM_RATE_64000,
+  VIRTIO_SND_PCM_RATE_88200,
+  VIRTIO_SND_PCM_RATE_96000,
+  VIRTIO_SND_PCM_RATE_176400,
+  VIRTIO_SND_PCM_RATE_192000,
+  VIRTIO_SND_PCM_RATE_384000
+};
+struct virtio_snd_pcm_info {
+  struct virtio_snd_info hdr;
+  __le32 features;
+  __le64 formats;
+  __le64 rates;
+  __u8 direction;
+  __u8 channels_min;
+  __u8 channels_max;
+  __u8 padding[5];
+};
+struct virtio_snd_pcm_set_params {
+  struct virtio_snd_pcm_hdr hdr;
+  __le32 buffer_bytes;
+  __le32 period_bytes;
+  __le32 features;
+  __u8 channels;
+  __u8 format;
+  __u8 rate;
+  __u8 padding;
+};
+struct virtio_snd_pcm_xfer {
+  __le32 stream_id;
+};
+struct virtio_snd_pcm_status {
+  __le32 status;
+  __le32 latency_bytes;
+};
+struct virtio_snd_chmap_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 chmap_id;
+};
+enum {
+  VIRTIO_SND_CHMAP_NONE = 0,
+  VIRTIO_SND_CHMAP_NA,
+  VIRTIO_SND_CHMAP_MONO,
+  VIRTIO_SND_CHMAP_FL,
+  VIRTIO_SND_CHMAP_FR,
+  VIRTIO_SND_CHMAP_RL,
+  VIRTIO_SND_CHMAP_RR,
+  VIRTIO_SND_CHMAP_FC,
+  VIRTIO_SND_CHMAP_LFE,
+  VIRTIO_SND_CHMAP_SL,
+  VIRTIO_SND_CHMAP_SR,
+  VIRTIO_SND_CHMAP_RC,
+  VIRTIO_SND_CHMAP_FLC,
+  VIRTIO_SND_CHMAP_FRC,
+  VIRTIO_SND_CHMAP_RLC,
+  VIRTIO_SND_CHMAP_RRC,
+  VIRTIO_SND_CHMAP_FLW,
+  VIRTIO_SND_CHMAP_FRW,
+  VIRTIO_SND_CHMAP_FLH,
+  VIRTIO_SND_CHMAP_FCH,
+  VIRTIO_SND_CHMAP_FRH,
+  VIRTIO_SND_CHMAP_TC,
+  VIRTIO_SND_CHMAP_TFL,
+  VIRTIO_SND_CHMAP_TFR,
+  VIRTIO_SND_CHMAP_TFC,
+  VIRTIO_SND_CHMAP_TRL,
+  VIRTIO_SND_CHMAP_TRR,
+  VIRTIO_SND_CHMAP_TRC,
+  VIRTIO_SND_CHMAP_TFLC,
+  VIRTIO_SND_CHMAP_TFRC,
+  VIRTIO_SND_CHMAP_TSL,
+  VIRTIO_SND_CHMAP_TSR,
+  VIRTIO_SND_CHMAP_LLFE,
+  VIRTIO_SND_CHMAP_RLFE,
+  VIRTIO_SND_CHMAP_BC,
+  VIRTIO_SND_CHMAP_BLC,
+  VIRTIO_SND_CHMAP_BRC
+};
+#define VIRTIO_SND_CHMAP_MAX_SIZE 18
+struct virtio_snd_chmap_info {
+  struct virtio_snd_info hdr;
+  __u8 direction;
+  __u8 channels;
+  __u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE];
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
index 7a9e259..73b5d49 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
@@ -21,6 +21,7 @@
 #include <linux/types.h>
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
+#define VIRTIO_VSOCK_F_SEQPACKET 1
 struct virtio_vsock_config {
   __le64 guest_cid;
 } __attribute__((packed));
@@ -44,6 +45,7 @@
 } __attribute__((packed));
 enum virtio_vsock_type {
   VIRTIO_VSOCK_TYPE_STREAM = 1,
+  VIRTIO_VSOCK_TYPE_SEQPACKET = 2,
 };
 enum virtio_vsock_op {
   VIRTIO_VSOCK_OP_INVALID = 0,
@@ -59,4 +61,8 @@
   VIRTIO_VSOCK_SHUTDOWN_RCV = 1,
   VIRTIO_VSOCK_SHUTDOWN_SEND = 2,
 };
+enum virtio_vsock_rw {
+  VIRTIO_VSOCK_SEQ_EOM = 1,
+  VIRTIO_VSOCK_SEQ_EOR = 2,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vm_sockets.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
index 50e8456..58f720d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
@@ -25,8 +25,14 @@
 #define SO_VM_SOCKETS_BUFFER_MAX_SIZE 2
 #define SO_VM_SOCKETS_PEER_HOST_VM_ID 3
 #define SO_VM_SOCKETS_TRUSTED 5
-#define SO_VM_SOCKETS_CONNECT_TIMEOUT 6
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD 6
 #define SO_VM_SOCKETS_NONBLOCK_TXRX 7
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW 8
+#if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD
+#else
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD : SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW)
+#endif
 #define VMADDR_CID_ANY - 1U
 #define VMADDR_PORT_ANY - 1U
 #define VMADDR_CID_HYPERVISOR 0
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/wwan.h
similarity index 81%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/wwan.h
index bb45c3d..9f68713 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/wwan.h
@@ -16,14 +16,12 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_WWAN_H_
+#define _UAPI_WWAN_H_
+enum {
+  IFLA_WWAN_UNSPEC,
+  IFLA_WWAN_LINK_ID,
+  __IFLA_WWAN_MAX
 };
+#define IFLA_WWAN_MAX (__IFLA_WWAN_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/xfrm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/xfrm.h
index b0e930c..f4df95f 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/xfrm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/xfrm.h
@@ -182,6 +182,10 @@
 #define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO
   XFRM_MSG_MAPPING,
 #define XFRM_MSG_MAPPING XFRM_MSG_MAPPING
+  XFRM_MSG_SETDEFAULT,
+#define XFRM_MSG_SETDEFAULT XFRM_MSG_SETDEFAULT
+  XFRM_MSG_GETDEFAULT,
+#define XFRM_MSG_GETDEFAULT XFRM_MSG_GETDEFAULT
   __XFRM_MSG_MAX
 };
 #define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1)
@@ -261,6 +265,7 @@
   XFRMA_SET_MARK,
   XFRMA_SET_MARK_MASK,
   XFRMA_IF_ID,
+  XFRMA_MTIMER_THRESH,
   __XFRMA_MAX
 #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK
 #define XFRMA_MAX (__XFRMA_MAX - 1)
@@ -430,6 +435,14 @@
 };
 #define XFRM_OFFLOAD_IPV6 1
 #define XFRM_OFFLOAD_INBOUND 2
+struct xfrm_userpolicy_default {
+#define XFRM_USERPOLICY_UNSPEC 0
+#define XFRM_USERPOLICY_BLOCK 1
+#define XFRM_USERPOLICY_ACCEPT 2
+  __u8 in;
+  __u8 fwd;
+  __u8 out;
+};
 #define XFRMGRP_ACQUIRE 1
 #define XFRMGRP_EXPIRE 2
 #define XFRMGRP_SA 4
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/misc/habanalabs.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/misc/habanalabs.h
index b009023..6e3439a 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/misc/habanalabs.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/misc/habanalabs.h
@@ -208,11 +208,43 @@
   GAUDI_ENGINE_ID_NIC_9,
   GAUDI_ENGINE_ID_SIZE
 };
+enum hl_goya_pll_index {
+  HL_GOYA_CPU_PLL = 0,
+  HL_GOYA_IC_PLL,
+  HL_GOYA_MC_PLL,
+  HL_GOYA_MME_PLL,
+  HL_GOYA_PCI_PLL,
+  HL_GOYA_EMMC_PLL,
+  HL_GOYA_TPC_PLL,
+  HL_GOYA_PLL_MAX
+};
+enum hl_gaudi_pll_index {
+  HL_GAUDI_CPU_PLL = 0,
+  HL_GAUDI_PCI_PLL,
+  HL_GAUDI_SRAM_PLL,
+  HL_GAUDI_HBM_PLL,
+  HL_GAUDI_NIC_PLL,
+  HL_GAUDI_DMA_PLL,
+  HL_GAUDI_MESH_PLL,
+  HL_GAUDI_MME_PLL,
+  HL_GAUDI_TPC_PLL,
+  HL_GAUDI_IF_PLL,
+  HL_GAUDI_PLL_MAX
+};
 enum hl_device_status {
   HL_DEVICE_STATUS_OPERATIONAL,
   HL_DEVICE_STATUS_IN_RESET,
   HL_DEVICE_STATUS_MALFUNCTION,
-  HL_DEVICE_STATUS_NEEDS_RESET
+  HL_DEVICE_STATUS_NEEDS_RESET,
+  HL_DEVICE_STATUS_IN_DEVICE_CREATION,
+  HL_DEVICE_STATUS_LAST = HL_DEVICE_STATUS_IN_DEVICE_CREATION
+};
+enum hl_server_type {
+  HL_SERVER_TYPE_UNKNOWN = 0,
+  HL_SERVER_GAUDI_HLS1 = 1,
+  HL_SERVER_GAUDI_HLS1H = 2,
+  HL_SERVER_GAUDI_TYPE1 = 3,
+  HL_SERVER_GAUDI_TYPE2 = 4
 };
 #define HL_INFO_HW_IP_INFO 0
 #define HL_INFO_HW_EVENTS 1
@@ -230,6 +262,13 @@
 #define HL_INFO_SYNC_MANAGER 14
 #define HL_INFO_TOTAL_ENERGY 15
 #define HL_INFO_PLL_FREQUENCY 16
+#define HL_INFO_POWER 17
+#define HL_INFO_OPEN_STATS 18
+#define HL_INFO_DRAM_REPLACED_ROWS 21
+#define HL_INFO_DRAM_PENDING_ROWS 22
+#define HL_INFO_LAST_ERR_OPEN_DEV_TIME 23
+#define HL_INFO_CS_TIMEOUT_EVENT 24
+#define HL_INFO_RAZWI_EVENT 25
 #define HL_INFO_VERSION_MAX_LEN 128
 #define HL_INFO_CARD_NAME_MAX_LEN 16
 struct hl_info_hw_ip_info {
@@ -242,7 +281,7 @@
   __u32 module_id;
   __u32 reserved;
   __u16 first_available_interrupt_id;
-  __u16 reserved2;
+  __u16 server_type;
   __u32 cpld_version;
   __u32 psoc_pci_pll_nr;
   __u32 psoc_pci_pll_nf;
@@ -253,7 +292,7 @@
   __u8 pad[2];
   __u8 cpucp_version[HL_INFO_VERSION_MAX_LEN];
   __u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
-  __u64 reserved3;
+  __u64 reserved2;
   __u64 dram_page_size;
 };
 struct hl_info_dram_usage {
@@ -291,10 +330,18 @@
   __u64 tx_throughput;
   __u64 replay_cnt;
 };
-#define HL_CLK_THROTTLE_POWER 0x1
-#define HL_CLK_THROTTLE_THERMAL 0x2
+enum hl_clk_throttling_type {
+  HL_CLK_THROTTLE_TYPE_POWER,
+  HL_CLK_THROTTLE_TYPE_THERMAL,
+  HL_CLK_THROTTLE_TYPE_MAX
+};
+#define HL_CLK_THROTTLE_POWER (1 << HL_CLK_THROTTLE_TYPE_POWER)
+#define HL_CLK_THROTTLE_THERMAL (1 << HL_CLK_THROTTLE_TYPE_THERMAL)
 struct hl_info_clk_throttle {
   __u32 clk_throttling_reason;
+  __u32 pad;
+  __u64 clk_throttling_timestamp_us[HL_CLK_THROTTLE_TYPE_MAX];
+  __u64 clk_throttling_duration_ns[HL_CLK_THROTTLE_TYPE_MAX];
 };
 struct hl_info_energy {
   __u64 total_energy_consumption;
@@ -303,6 +350,13 @@
 struct hl_pll_frequency_info {
   __u16 output[HL_PLL_NUM_OUTPUTS];
 };
+struct hl_open_stats_info {
+  __u64 open_counter;
+  __u64 last_open_period_ms;
+};
+struct hl_power_info {
+  __u64 power;
+};
 struct hl_info_sync_manager {
   __u32 first_available_sync_object;
   __u32 first_available_monitor;
@@ -323,6 +377,24 @@
   __u64 total_validation_drop_cnt;
   __u64 ctx_validation_drop_cnt;
 };
+struct hl_info_last_err_open_dev_time {
+  __s64 timestamp;
+};
+struct hl_info_cs_timeout_event {
+  __s64 timestamp;
+  __u64 seq;
+};
+#define HL_RAZWI_PAGE_FAULT 0
+#define HL_RAZWI_MMU_ACCESS_ERROR 1
+struct hl_info_razwi_event {
+  __s64 timestamp;
+  __u64 addr;
+  __u16 engine_id_1;
+  __u16 engine_id_2;
+  __u8 no_engine_id;
+  __u8 error_type;
+  __u8 pad[2];
+};
 enum gaudi_dcores {
   HL_GAUDI_WS_DCORE,
   HL_GAUDI_WN_DCORE,
@@ -346,6 +418,7 @@
 #define HL_CB_OP_INFO 2
 #define HL_MAX_CB_SIZE (0x200000 - 32)
 #define HL_CB_FLAGS_MAP 0x1
+#define HL_CB_FLAGS_GET_DEVICE_VA 0x2
 struct hl_cb_in {
   __u64 cb_handle;
   __u32 op;
@@ -356,9 +429,12 @@
 struct hl_cb_out {
   union {
     __u64 cb_handle;
-    struct {
-      __u32 usage_cnt;
-      __u32 pad;
+    union {
+      struct {
+        __u32 usage_cnt;
+        __u32 pad;
+      };
+      __u64 device_va;
     };
   };
 };
@@ -371,11 +447,13 @@
   union {
     __u64 cb_handle;
     __u64 signal_seq_arr;
+    __u64 encaps_signal_seq;
   };
   __u32 queue_index;
   union {
     __u32 cb_size;
     __u32 num_signal_seq_arr;
+    __u32 encaps_signal_offset;
   };
   __u32 cs_chunk_flags;
   __u32 collective_engine_id;
@@ -389,47 +467,89 @@
 #define HL_CS_FLAGS_STAGED_SUBMISSION 0x40
 #define HL_CS_FLAGS_STAGED_SUBMISSION_FIRST 0x80
 #define HL_CS_FLAGS_STAGED_SUBMISSION_LAST 0x100
+#define HL_CS_FLAGS_CUSTOM_TIMEOUT 0x200
+#define HL_CS_FLAGS_SKIP_RESET_ON_TIMEOUT 0x400
+#define HL_CS_FLAGS_ENCAP_SIGNALS 0x800
+#define HL_CS_FLAGS_RESERVE_SIGNALS_ONLY 0x1000
+#define HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY 0x2000
 #define HL_CS_STATUS_SUCCESS 0
 #define HL_MAX_JOBS_PER_CS 512
 struct hl_cs_in {
   __u64 chunks_restore;
   __u64 chunks_execute;
   union {
-    __u64 chunks_store;
     __u64 seq;
+    __u32 encaps_sig_handle_id;
+    struct {
+      __u32 encaps_signals_count;
+      __u32 encaps_signals_q_idx;
+    };
   };
   __u32 num_chunks_restore;
   __u32 num_chunks_execute;
-  __u32 num_chunks_store;
+  __u32 timeout;
   __u32 cs_flags;
   __u32 ctx_id;
 };
 struct hl_cs_out {
-  __u64 seq;
+  union {
+    __u64 seq;
+    struct {
+      __u32 handle_id;
+      __u32 count;
+    };
+  };
   __u32 status;
-  __u32 pad;
+  __u32 sob_base_addr_offset;
+  __u16 sob_count_before_submission;
+  __u16 pad[3];
 };
 union hl_cs_args {
   struct hl_cs_in in;
   struct hl_cs_out out;
 };
+#define HL_WAIT_CS_FLAGS_INTERRUPT 0x2
+#define HL_WAIT_CS_FLAGS_INTERRUPT_MASK 0xFFF00000
+#define HL_WAIT_CS_FLAGS_MULTI_CS 0x4
+#define HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ 0x10
+#define HL_WAIT_MULTI_CS_LIST_MAX_LEN 32
 struct hl_wait_cs_in {
-  __u64 seq;
-  __u64 timeout_us;
+  union {
+    struct {
+      __u64 seq;
+      __u64 timeout_us;
+    };
+    struct {
+      union {
+        __u64 addr;
+        __u64 cq_counters_handle;
+      };
+      __u64 target;
+    };
+  };
   __u32 ctx_id;
-  __u32 pad;
+  __u32 flags;
+  union {
+    struct {
+      __u8 seq_arr_len;
+      __u8 pad[7];
+    };
+    __u64 interrupt_timeout_us;
+  };
+  __u64 cq_counters_offset;
 };
 #define HL_WAIT_CS_STATUS_COMPLETED 0
 #define HL_WAIT_CS_STATUS_BUSY 1
 #define HL_WAIT_CS_STATUS_TIMEDOUT 2
 #define HL_WAIT_CS_STATUS_ABORTED 3
-#define HL_WAIT_CS_STATUS_INTERRUPTED 4
 #define HL_WAIT_CS_STATUS_FLAG_GONE 0x1
 #define HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD 0x2
 struct hl_wait_cs_out {
   __u32 status;
   __u32 flags;
   __s64 timestamp_nsec;
+  __u32 cs_completion_map;
+  __u32 pad;
 };
 union hl_wait_cs_args {
   struct hl_wait_cs_in in;
@@ -440,9 +560,11 @@
 #define HL_MEM_OP_MAP 2
 #define HL_MEM_OP_UNMAP 3
 #define HL_MEM_OP_MAP_BLOCK 4
+#define HL_MEM_OP_EXPORT_DMABUF_FD 5
 #define HL_MEM_CONTIGUOUS 0x1
 #define HL_MEM_SHARED 0x2
 #define HL_MEM_USERPTR 0x4
+#define HL_MEM_FORCE_HINT 0x8
 struct hl_mem_in {
   union {
     struct {
@@ -466,6 +588,10 @@
     struct {
       __u64 device_virt_addr;
     } unmap;
+    struct {
+      __u64 handle;
+      __u64 mem_size;
+    } export_dmabuf_fd;
   };
   __u32 op;
   __u32 flags;
@@ -481,6 +607,7 @@
       __u32 block_size;
       __u32 pad;
     };
+    __s32 fd;
   };
 };
 union hl_mem_args {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
index 49d9f6a..87757a9 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
@@ -25,5 +25,6 @@
 };
 #define HISI_QM_API_VER_BASE "hisi_qm_v1"
 #define HISI_QM_API_VER2_BASE "hisi_qm_v2"
+#define HISI_QM_API_VER3_BASE "hisi_qm_v3"
 #define UACCE_CMD_QM_SET_QP_CTX _IOWR('H', 10, struct hisi_qp_ctx)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
index 680ac1e..50ae565 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
@@ -121,6 +121,7 @@
 #define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64)
 #define MEMISLOCKED _IOR('M', 23, struct erase_info_user)
 #define MEMWRITE _IOWR('M', 24, struct mtd_write_req)
+#define OTPERASE _IOW('M', 25, struct otp_info)
 struct nand_oobinfo {
   __u32 useecc;
   __u32 eccbytes;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
index 3e45dc3..62ba685 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
@@ -24,7 +24,13 @@
 #define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
 #define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
 enum {
-  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
+  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL,
+  BNXT_RE_UCNTX_CMASK_HAVE_MODE = 0x02ULL,
+};
+enum bnxt_re_wqe_mode {
+  BNXT_QPLIB_WQE_MODE_STATIC = 0x00,
+  BNXT_QPLIB_WQE_MODE_VARIABLE = 0x01,
+  BNXT_QPLIB_WQE_MODE_INVALID = 0x02,
 };
 struct bnxt_re_uctx_resp {
   __u32 dev_id;
@@ -36,6 +42,8 @@
   __aligned_u64 comp_mask;
   __u32 chip_id0;
   __u32 chip_id1;
+  __u32 mode;
+  __u32 rsvd1;
 };
 struct bnxt_re_pd_resp {
   __u32 pdid;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/efa-abi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
index f20e3e0..4b6842b 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
@@ -47,11 +47,18 @@
   __u16 pdn;
   __u8 reserved_30[2];
 };
+enum {
+  EFA_CREATE_CQ_WITH_COMPLETION_CHANNEL = 1 << 0,
+};
 struct efa_ibv_create_cq {
   __u32 comp_mask;
   __u32 cq_entry_size;
   __u16 num_sub_cqs;
-  __u8 reserved_50[6];
+  __u8 flags;
+  __u8 reserved_58[5];
+};
+enum {
+  EFA_CREATE_CQ_RESP_DB_OFF = 1 << 0,
 };
 struct efa_ibv_create_cq_resp {
   __u32 comp_mask;
@@ -59,7 +66,9 @@
   __aligned_u64 q_mmap_key;
   __aligned_u64 q_mmap_size;
   __u16 cq_idx;
-  __u8 reserved_d0[6];
+  __u8 reserved_d0[2];
+  __u32 db_off;
+  __aligned_u64 db_mmap_key;
 };
 enum {
   EFA_QP_DRIVER_TYPE_SRD = 0,
@@ -92,6 +101,7 @@
 enum {
   EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
   EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1,
+  EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2,
 };
 struct efa_ibv_ex_query_device_resp {
   __u32 comp_mask;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/hns-abi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
index ad3e460..9c8d028 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
@@ -54,13 +54,17 @@
   HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0,
   HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1,
   HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2,
+  HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5,
 };
 struct hns_roce_ib_create_qp_resp {
   __aligned_u64 cap_flags;
+  __aligned_u64 dwqe_mmap_key;
 };
 struct hns_roce_ib_alloc_ucontext_resp {
   __u32 qp_tab_size;
   __u32 cqe_size;
+  __u32 srq_tab_size;
+  __u32 reserved;
 };
 struct hns_roce_ib_alloc_pd_resp {
   __u32 pdn;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h
deleted file mode 100644
index 60a17f5..0000000
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h
+++ /dev/null
@@ -1,75 +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 I40IW_ABI_H
-#define I40IW_ABI_H
-#include <linux/types.h>
-#define I40IW_ABI_VER 5
-struct i40iw_alloc_ucontext_req {
-  __u32 reserved32;
-  __u8 userspace_ver;
-  __u8 reserved8[3];
-};
-struct i40iw_alloc_ucontext_resp {
-  __u32 max_pds;
-  __u32 max_qps;
-  __u32 wq_size;
-  __u8 kernel_ver;
-  __u8 reserved[3];
-};
-struct i40iw_alloc_pd_resp {
-  __u32 pd_id;
-  __u8 reserved[4];
-};
-struct i40iw_create_cq_req {
-  __aligned_u64 user_cq_buffer;
-  __aligned_u64 user_shadow_area;
-};
-struct i40iw_create_qp_req {
-  __aligned_u64 user_wqe_buffers;
-  __aligned_u64 user_compl_ctx;
-  __aligned_u64 user_sq_phb;
-  __aligned_u64 user_rq_phb;
-};
-enum i40iw_memreg_type {
-  IW_MEMREG_TYPE_MEM = 0x0000,
-  IW_MEMREG_TYPE_QP = 0x0001,
-  IW_MEMREG_TYPE_CQ = 0x0002,
-};
-struct i40iw_mem_reg_req {
-  __u16 reg_type;
-  __u16 cq_pages;
-  __u16 rq_pages;
-  __u16 sq_pages;
-};
-struct i40iw_create_cq_resp {
-  __u32 cq_id;
-  __u32 cq_size;
-  __u32 mmap_db_index;
-  __u32 reserved;
-};
-struct i40iw_create_qp_resp {
-  __u32 qp_id;
-  __u32 actual_sq_size;
-  __u32 actual_rq_size;
-  __u32 i40iw_drv_opt;
-  __u16 push_idx;
-  __u8 lsmm;
-  __u8 rsvd2;
-};
-#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
index c443738..3b94907 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
@@ -181,6 +181,7 @@
   RDMA_DRIVER_OCRDMA,
   RDMA_DRIVER_NES,
   RDMA_DRIVER_I40IW,
+  RDMA_DRIVER_IRDMA = RDMA_DRIVER_I40IW,
   RDMA_DRIVER_VMW_PVRDMA,
   RDMA_DRIVER_QEDR,
   RDMA_DRIVER_HNS,
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
index dadb590..04b9f08 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
@@ -61,7 +61,7 @@
 };
 struct ib_user_mad {
   struct ib_user_mad_hdr hdr;
-  __aligned_u64 data[0];
+  __aligned_u64 data[];
 };
 typedef unsigned long __attribute__((aligned(4))) packed_ulong;
 #define IB_USER_MAD_LONGS_PER_METHOD_MASK (128 / (8 * sizeof(long)))
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h
new file mode 100644
index 0000000..b6840cf
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h
@@ -0,0 +1,103 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 IRDMA_ABI_H
+#define IRDMA_ABI_H
+#include <linux/types.h>
+#define IRDMA_ABI_VER 5
+enum irdma_memreg_type {
+  IRDMA_MEMREG_TYPE_MEM = 0,
+  IRDMA_MEMREG_TYPE_QP = 1,
+  IRDMA_MEMREG_TYPE_CQ = 2,
+};
+struct irdma_alloc_ucontext_req {
+  __u32 rsvd32;
+  __u8 userspace_ver;
+  __u8 rsvd8[3];
+};
+struct irdma_alloc_ucontext_resp {
+  __u32 max_pds;
+  __u32 max_qps;
+  __u32 wq_size;
+  __u8 kernel_ver;
+  __u8 rsvd[3];
+  __aligned_u64 feature_flags;
+  __aligned_u64 db_mmap_key;
+  __u32 max_hw_wq_frags;
+  __u32 max_hw_read_sges;
+  __u32 max_hw_inline;
+  __u32 max_hw_rq_quanta;
+  __u32 max_hw_wq_quanta;
+  __u32 min_hw_cq_size;
+  __u32 max_hw_cq_size;
+  __u16 max_hw_sq_chunk;
+  __u8 hw_rev;
+  __u8 rsvd2;
+};
+struct irdma_alloc_pd_resp {
+  __u32 pd_id;
+  __u8 rsvd[4];
+};
+struct irdma_resize_cq_req {
+  __aligned_u64 user_cq_buffer;
+};
+struct irdma_create_cq_req {
+  __aligned_u64 user_cq_buf;
+  __aligned_u64 user_shadow_area;
+};
+struct irdma_create_qp_req {
+  __aligned_u64 user_wqe_bufs;
+  __aligned_u64 user_compl_ctx;
+};
+struct irdma_mem_reg_req {
+  __u16 reg_type;
+  __u16 cq_pages;
+  __u16 rq_pages;
+  __u16 sq_pages;
+};
+struct irdma_modify_qp_req {
+  __u8 sq_flush;
+  __u8 rq_flush;
+  __u8 rsvd[6];
+};
+struct irdma_create_cq_resp {
+  __u32 cq_id;
+  __u32 cq_size;
+};
+struct irdma_create_qp_resp {
+  __u32 qp_id;
+  __u32 actual_sq_size;
+  __u32 actual_rq_size;
+  __u32 irdma_drv_opt;
+  __u16 push_idx;
+  __u8 lsmm;
+  __u8 rsvd;
+  __u32 qp_caps;
+};
+struct irdma_modify_qp_resp {
+  __aligned_u64 push_wqe_mmap_key;
+  __aligned_u64 push_db_mmap_key;
+  __u16 push_offset;
+  __u8 push_valid;
+  __u8 rsvd[5];
+};
+struct irdma_create_ah_resp {
+  __u32 ah_id;
+  __u8 rsvd[4];
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
index 59a9f53..aadb20e 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
@@ -33,6 +33,7 @@
   MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
   MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9,
   MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10,
+  MLX5_QP_FLAG_DCI_STREAM = 1 << 11,
 };
 enum {
   MLX5_SRQ_FLAG_SIGNATURE = 1 << 0,
@@ -67,6 +68,8 @@
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1,
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2,
+  MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3,
+  MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4,
 };
 enum mlx5_user_cmds_supp_uhw {
   MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0,
@@ -163,6 +166,10 @@
   __u32 supported_qpts;
   __u32 reserved;
 };
+struct mlx5_ib_dci_streams_caps {
+  __u8 max_log_num_concurent;
+  __u8 max_log_num_errored;
+};
 enum mlx5_ib_query_dev_resp_flags {
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1,
@@ -188,11 +195,13 @@
   struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
   struct mlx5_ib_striding_rq_caps striding_rq_caps;
   __u32 tunnel_offloads_caps;
-  __u32 reserved;
+  struct mlx5_ib_dci_streams_caps dci_streams_caps;
+  __u16 reserved;
 };
 enum mlx5_ib_create_cq_flags {
   MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
   MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1,
+  MLX5_IB_CREATE_CQ_FLAGS_REAL_TIME_TS = 1 << 2,
 };
 struct mlx5_ib_create_cq {
   __aligned_u64 buf_addr;
@@ -227,6 +236,10 @@
   __u32 srqn;
   __u32 reserved;
 };
+struct mlx5_ib_create_qp_dci_streams {
+  __u8 log_num_concurent;
+  __u8 log_num_errored;
+};
 struct mlx5_ib_create_qp {
   __aligned_u64 buf_addr;
   __aligned_u64 db_addr;
@@ -241,7 +254,8 @@
     __aligned_u64 access_key;
   };
   __u32 ece_options;
-  __u32 reserved;
+  struct mlx5_ib_create_qp_dci_streams dci_streams;
+  __u16 reserved;
 };
 enum mlx5_rx_hash_function_flags {
   MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
index 804a90b..862abcb 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -23,6 +23,22 @@
 enum mlx5_ib_create_flow_action_attrs {
   MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_dm_methods {
+  MLX5_IB_METHOD_DM_MAP_OP_ADDR = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_METHOD_DM_QUERY,
+};
+enum mlx5_ib_dm_map_op_addr_attrs {
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_OP,
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_START_OFFSET,
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_PAGE_INDEX,
+};
+enum mlx5_ib_query_dm_attrs {
+  MLX5_IB_ATTR_QUERY_DM_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_QUERY_DM_RESP_START_OFFSET,
+  MLX5_IB_ATTR_QUERY_DM_RESP_PAGE_INDEX,
+  MLX5_IB_ATTR_QUERY_DM_RESP_LENGTH,
+};
 enum mlx5_ib_alloc_dm_attrs {
   MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
   MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
@@ -118,6 +134,7 @@
   MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
   MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
   MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
+  MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP,
 };
 enum mlx5_ib_devx_umem_dereg_attrs {
   MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
@@ -181,7 +198,7 @@
 enum mlx5_ib_device_query_context_attrs {
   MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
 };
-#define MLX5_IB_DW_MATCH_PARAM 0x90
+#define MLX5_IB_DW_MATCH_PARAM 0xA0
 struct mlx5_ib_match_params {
   __u32 match_params[MLX5_IB_DW_MATCH_PARAM];
 };
@@ -236,4 +253,11 @@
 enum mlx5_ib_pd_methods {
   MLX5_IB_METHOD_PD_QUERY = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_device_methods {
+  MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum mlx5_ib_query_port_attrs {
+  MLX5_IB_ATTR_QUERY_PORT_PORT_NUM = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_QUERY_PORT,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
index bfbfd76..c3c3f89 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -58,4 +58,26 @@
   MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF = 0x0,
   MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1,
 };
+enum mlx5_ib_uapi_query_port_flags {
+  MLX5_IB_UAPI_QUERY_PORT_VPORT = 1 << 0,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_VHCA_ID = 1 << 1,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_RX = 1 << 2,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_TX = 1 << 3,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_REG_C0 = 1 << 4,
+  MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID = 1 << 5,
+};
+struct mlx5_ib_uapi_reg {
+  __u32 value;
+  __u32 mask;
+};
+struct mlx5_ib_uapi_query_port {
+  __aligned_u64 flags;
+  __u16 vport;
+  __u16 vport_vhca_id;
+  __u16 esw_owner_vhca_id;
+  __u16 rsvd0;
+  __aligned_u64 vport_steering_icm_rx;
+  __aligned_u64 vport_steering_icm_tx;
+  struct mlx5_ib_uapi_reg reg_c0;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
index 48444da..bdb5fdd 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
@@ -207,6 +207,9 @@
   RDMA_NLDEV_CMD_RES_QP_GET_RAW,
   RDMA_NLDEV_CMD_RES_CQ_GET_RAW,
   RDMA_NLDEV_CMD_RES_MR_GET_RAW,
+  RDMA_NLDEV_CMD_RES_CTX_GET,
+  RDMA_NLDEV_CMD_RES_SRQ_GET,
+  RDMA_NLDEV_CMD_STAT_GET_STATUS,
   RDMA_NLDEV_NUM_OPS
 };
 enum rdma_nldev_print_type {
@@ -301,6 +304,16 @@
   RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY_VALUE,
   RDMA_NLDEV_ATTR_DEV_DIM,
   RDMA_NLDEV_ATTR_RES_RAW,
+  RDMA_NLDEV_ATTR_RES_CTX,
+  RDMA_NLDEV_ATTR_RES_CTX_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SRQ,
+  RDMA_NLDEV_ATTR_RES_SRQ_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SRQN,
+  RDMA_NLDEV_ATTR_MIN_RANGE,
+  RDMA_NLDEV_ATTR_MAX_RANGE,
+  RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK,
+  RDMA_NLDEV_ATTR_STAT_HWCOUNTER_INDEX,
+  RDMA_NLDEV_ATTR_STAT_HWCOUNTER_DYNAMIC,
   RDMA_NLDEV_ATTR_MAX
 };
 enum rdma_nl_counter_mode {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
index 9618734..7b1f7ee 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
@@ -88,7 +88,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 reserved;
-  struct sockaddr_storage addr;
+  struct __kernel_sockaddr_storage addr;
 };
 struct rdma_ucm_resolve_ip {
   struct sockaddr_in6 src_addr;
@@ -102,8 +102,8 @@
   __u16 src_size;
   __u16 dst_size;
   __u32 reserved;
-  struct sockaddr_storage src_addr;
-  struct sockaddr_storage dst_addr;
+  struct __kernel_sockaddr_storage src_addr;
+  struct __kernel_sockaddr_storage dst_addr;
 };
 struct rdma_ucm_resolve_route {
   __u32 id;
@@ -137,8 +137,8 @@
   __u16 pkey;
   __u16 src_size;
   __u16 dst_size;
-  struct sockaddr_storage src_addr;
-  struct sockaddr_storage dst_addr;
+  struct __kernel_sockaddr_storage src_addr;
+  struct __kernel_sockaddr_storage dst_addr;
   __u32 ibdev_index;
   __u32 reserved1;
 };
@@ -225,7 +225,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 join_flags;
-  struct sockaddr_storage addr;
+  struct __kernel_sockaddr_storage addr;
 };
 struct rdma_ucm_get_event {
   __aligned_u64 response;
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
index 9fd21d7..cdb00c7 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
@@ -76,15 +76,19 @@
       __u32 remote_qpn;
       __u32 remote_qkey;
       __u16 pkey_index;
+      __u16 reserved;
+      __u32 ah_num;
+      __u32 pad[4];
+      struct rxe_av av;
     } ud;
     struct {
-      union {
-        struct ib_mr * mr;
-        __aligned_u64 reserved;
-      };
-      __u32 key;
+      __aligned_u64 addr;
+      __aligned_u64 length;
+      __u32 mr_lkey;
+      __u32 mw_rkey;
+      __u32 rkey;
       __u32 access;
-    } reg;
+    } mw;
   } wr;
 };
 struct rxe_sge {
@@ -105,13 +109,12 @@
   __u32 sge_offset;
   __u32 reserved;
   union {
-    __u8 inline_data[0];
-    struct rxe_sge sge[0];
+    __DECLARE_FLEX_ARRAY(__u8, inline_data);
+    __DECLARE_FLEX_ARRAY(struct rxe_sge, sge);
   };
 };
 struct rxe_send_wqe {
   struct rxe_send_wr wr;
-  struct rxe_av av;
   __u32 status;
   __u32 state;
   __aligned_u64 iova;
@@ -129,6 +132,10 @@
   __u32 padding;
   struct rxe_dma_info dma;
 };
+struct rxe_create_ah_resp {
+  __u32 ah_num;
+  __u32 reserved;
+};
 struct rxe_create_cq_resp {
   struct mminfo mi;
 };
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
index f31e764..04ae5b8 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
@@ -42,6 +42,7 @@
   ELS_REC = 0x13,
   ELS_SRR = 0x14,
   ELS_FPIN = 0x16,
+  ELS_EDC = 0x17,
   ELS_RDP = 0x18,
   ELS_RDF = 0x19,
   ELS_PRLI = 0x20,
@@ -85,7 +86,7 @@
   ELS_LKA = 0x80,
   ELS_AUTH_ELS = 0x90,
 };
-#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_RDP] = "RDP",[ELS_RDF] = "RDF",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \
+#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_EDC] = "EDC",[ELS_RDP] = "RDP",[ELS_RDF] = "RDF",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \
 }
 struct fc_els_ls_acc {
   __u8 la_cmd;
@@ -128,13 +129,15 @@
 };
 enum fc_ls_tlv_dtag {
   ELS_DTAG_LS_REQ_INFO = 0x00000001,
+  ELS_DTAG_LNK_FAULT_CAP = 0x0001000D,
+  ELS_DTAG_CG_SIGNAL_CAP = 0x0001000F,
   ELS_DTAG_LNK_INTEGRITY = 0x00020001,
   ELS_DTAG_DELIVERY = 0x00020002,
   ELS_DTAG_PEER_CONGEST = 0x00020003,
   ELS_DTAG_CONGESTION = 0x00020004,
   ELS_DTAG_FPIN_REGISTER = 0x00030001,
 };
-#define FC_LS_TLV_DTAG_INIT { { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, { ELS_DTAG_CONGESTION, "Congestion Notification" }, { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
+#define FC_LS_TLV_DTAG_INIT { { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, { ELS_DTAG_LNK_FAULT_CAP, "Link Fault Capability" }, { ELS_DTAG_CG_SIGNAL_CAP, "Congestion Signaling Capability" }, { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, { ELS_DTAG_CONGESTION, "Congestion Notification" }, { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
 }
 struct fc_tlv_desc {
   __be32 desc_tag;
@@ -668,4 +671,48 @@
   struct fc_els_lsri_desc lsri;
   struct fc_tlv_desc desc[0];
 };
+struct fc_diag_lnkflt_desc {
+  __be32 desc_tag;
+  __be32 desc_len;
+  __be32 degrade_activate_threshold;
+  __be32 degrade_deactivate_threshold;
+  __be32 fec_degrade_interval;
+};
+enum fc_edc_cg_signal_cap_types {
+  EDC_CG_SIG_NOTSUPPORTED = 0x00,
+  EDC_CG_SIG_WARN_ONLY = 0x01,
+  EDC_CG_SIG_WARN_ALARM = 0x02,
+};
+#define FC_EDC_CG_SIGNAL_CAP_TYPES_INIT { { EDC_CG_SIG_NOTSUPPORTED, "Signaling Not Supported" }, { EDC_CG_SIG_WARN_ONLY, "Warning Signal" }, { EDC_CG_SIG_WARN_ALARM, "Warning and Alarm Signals" }, \
+}
+enum fc_diag_cg_sig_freq_types {
+  EDC_CG_SIGFREQ_CNT_MIN = 1,
+  EDC_CG_SIGFREQ_CNT_MAX = 999,
+  EDC_CG_SIGFREQ_SEC = 0x1,
+  EDC_CG_SIGFREQ_MSEC = 0x2,
+};
+struct fc_diag_cg_sig_freq {
+  __be16 count;
+  __be16 units;
+};
+struct fc_diag_cg_sig_desc {
+  __be32 desc_tag;
+  __be32 desc_len;
+  __be32 xmt_signal_capability;
+  struct fc_diag_cg_sig_freq xmt_signal_frequency;
+  __be32 rcv_signal_capability;
+  struct fc_diag_cg_sig_freq rcv_signal_frequency;
+};
+struct fc_els_edc {
+  __u8 edc_cmd;
+  __u8 edc_zero[3];
+  __be32 desc_len;
+  struct fc_tlv_desc desc[0];
+};
+struct fc_els_edc_resp {
+  struct fc_els_ls_acc acc_hdr;
+  __be32 desc_list_len;
+  struct fc_els_lsri_desc lsri;
+  struct fc_tlv_desc desc[0];
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/asoc.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/asoc.h
index c962603..eeb12b0 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/asoc.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/asoc.h
@@ -157,8 +157,8 @@
 struct snd_soc_tplg_private {
   __le32 size;
   union {
-    char data[0];
-    struct snd_soc_tplg_vendor_array array[0];
+    __DECLARE_FLEX_ARRAY(char, data);
+    __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_array, array);
   };
 } __attribute__((packed));
 struct snd_soc_tplg_tlv_dbscale {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/asound.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/asound.h
index 397cccc..b0e47c1 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/asound.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/asound.h
@@ -32,8 +32,9 @@
 #define SNDRV_PROTOCOL_MINOR(version) (((version) >> 8) & 0xff)
 #define SNDRV_PROTOCOL_MICRO(version) ((version) & 0xff)
 #define SNDRV_PROTOCOL_INCOMPATIBLE(kversion,uversion) (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion)))
+#define AES_IEC958_STATUS_SIZE 24
 struct snd_aes_iec958 {
-  unsigned char status[24];
+  unsigned char status[AES_IEC958_STATUS_SIZE];
   unsigned char subcode[147];
   unsigned char pad;
   unsigned char dig_subframe[4];
@@ -234,6 +235,8 @@
 #define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME 0x02000000
 #define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME 0x04000000
 #define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000
+#define SNDRV_PCM_INFO_EXPLICIT_SYNC 0x10000000
+#define SNDRV_PCM_INFO_NO_REWINDS 0x20000000
 #define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000
 #define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000
 #if __BITS_PER_LONG == 32 && defined(__USE_TIME_BITS64)
@@ -562,7 +565,7 @@
 #define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern)
 #define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int)
 #define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61)
-#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 1)
+#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 2)
 enum {
   SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
   SNDRV_RAWMIDI_STREAM_INPUT,
@@ -584,12 +587,32 @@
   unsigned int subdevices_avail;
   unsigned char reserved[64];
 };
+#define SNDRV_RAWMIDI_MODE_FRAMING_MASK (7 << 0)
+#define SNDRV_RAWMIDI_MODE_FRAMING_SHIFT 0
+#define SNDRV_RAWMIDI_MODE_FRAMING_NONE (0 << 0)
+#define SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP (1 << 0)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MASK (7 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_SHIFT 3
+#define SNDRV_RAWMIDI_MODE_CLOCK_NONE (0 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_REALTIME (1 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC (2 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC_RAW (3 << 3)
+#define SNDRV_RAWMIDI_FRAMING_DATA_LENGTH 16
+struct snd_rawmidi_framing_tstamp {
+  __u8 frame_type;
+  __u8 length;
+  __u8 reserved[2];
+  __u32 tv_nsec;
+  __u64 tv_sec;
+  __u8 data[SNDRV_RAWMIDI_FRAMING_DATA_LENGTH];
+} __packed;
 struct snd_rawmidi_params {
   int stream;
   size_t buffer_size;
   size_t avail_min;
   unsigned int no_active_sensing : 1;
-  unsigned char reserved[16];
+  unsigned int mode;
+  unsigned char reserved[12];
 };
 struct snd_rawmidi_status {
   int stream;
@@ -601,6 +624,7 @@
 };
 #define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
 #define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
+#define SNDRV_RAWMIDI_IOCTL_USER_PVERSION _IOW('W', 0x02, int)
 #define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params)
 #define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status)
 #define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/firewire.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/firewire.h
index 67c010b..198a8f4 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/firewire.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/firewire.h
@@ -26,6 +26,7 @@
 #define SNDRV_FIREWIRE_EVENT_DIGI00X_MESSAGE 0x746e736c
 #define SNDRV_FIREWIRE_EVENT_MOTU_NOTIFICATION 0x64776479
 #define SNDRV_FIREWIRE_EVENT_TASCAM_CONTROL 0x7473636d
+#define SNDRV_FIREWIRE_EVENT_MOTU_REGISTER_DSP_CHANGE 0x4d545244
 struct snd_firewire_event_common {
   unsigned int type;
 };
@@ -68,6 +69,11 @@
   unsigned int type;
   struct snd_firewire_tascam_change changes[0];
 };
+struct snd_firewire_event_motu_register_dsp_change {
+  unsigned int type;
+  __u32 count;
+  __u32 changes[];
+};
 union snd_firewire_event {
   struct snd_firewire_event_common common;
   struct snd_firewire_event_lock_status lock_status;
@@ -76,11 +82,15 @@
   struct snd_firewire_event_digi00x_message digi00x_message;
   struct snd_firewire_event_tascam_control tascam_control;
   struct snd_firewire_event_motu_notification motu_notification;
+  struct snd_firewire_event_motu_register_dsp_change motu_register_dsp_change;
 };
 #define SNDRV_FIREWIRE_IOCTL_GET_INFO _IOR('H', 0xf8, struct snd_firewire_get_info)
 #define SNDRV_FIREWIRE_IOCTL_LOCK _IO('H', 0xf9)
 #define SNDRV_FIREWIRE_IOCTL_UNLOCK _IO('H', 0xfa)
 #define SNDRV_FIREWIRE_IOCTL_TASCAM_STATE _IOR('H', 0xfb, struct snd_firewire_tascam_state)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_METER _IOR('H', 0xfc, struct snd_firewire_motu_register_dsp_meter)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_COMMAND_DSP_METER _IOR('H', 0xfd, struct snd_firewire_motu_command_dsp_meter)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_PARAMETER _IOR('H', 0xfe, struct snd_firewire_motu_register_dsp_parameter)
 #define SNDRV_FIREWIRE_TYPE_DICE 1
 #define SNDRV_FIREWIRE_TYPE_FIREWORKS 2
 #define SNDRV_FIREWIRE_TYPE_BEBOB 3
@@ -99,4 +109,49 @@
 struct snd_firewire_tascam_state {
   __be32 data[SNDRV_FIREWIRE_TASCAM_STATE_COUNT];
 };
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT 24
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT 24
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT + SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT)
+struct snd_firewire_motu_register_dsp_meter {
+  __u8 data[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT];
+};
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT 4
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT 20
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT 10
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT + 2)
+struct snd_firewire_motu_register_dsp_parameter {
+  struct {
+    struct {
+      __u8 gain[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 pan[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 paired_balance[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 paired_width[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+    } source[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+    struct {
+      __u8 paired_volume[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+      __u8 paired_flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+    } output;
+  } mixer;
+  struct {
+    __u8 main_paired_volume;
+    __u8 hp_paired_volume;
+    __u8 hp_paired_assignment;
+    __u8 reserved[5];
+  } output;
+  struct {
+    __u8 boost_flag;
+    __u8 nominal_level_flag;
+    __u8 reserved[6];
+  } line_input;
+  struct {
+    __u8 gain_and_invert[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
+    __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
+  } input;
+  __u8 reserved[64];
+};
+#define SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT 400
+struct snd_firewire_motu_command_dsp_meter {
+  float data[SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT];
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h
new file mode 100644
index 0000000..39c0684
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __SND_AR_TOKENS_H__
+#define __SND_AR_TOKENS_H__
+#define APM_SUB_GRAPH_PERF_MODE_LOW_POWER 0x1
+#define APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY 0x2
+#define APM_SUB_GRAPH_DIRECTION_TX 0x1
+#define APM_SUB_GRAPH_DIRECTION_RX 0x2
+#define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK 0x1
+#define APM_SUB_GRAPH_SID_AUDIO_RECORD 0x2
+#define APM_SUB_GRAPH_SID_VOICE_CALL 0x3
+#define APM_CONTAINER_CAP_ID_PP 0x1
+#define APM_CONTAINER_CAP_ID_CD 0x2
+#define APM_CONTAINER_CAP_ID_EP 0x3
+#define APM_CONTAINER_CAP_ID_OLC 0x4
+#define APM_CONT_GRAPH_POS_STREAM 0x1
+#define APM_CONT_GRAPH_POS_PER_STR_PER_DEV 0x2
+#define APM_CONT_GRAPH_POS_STR_DEV 0x3
+#define APM_CONT_GRAPH_POS_GLOBAL_DEV 0x4
+#define APM_PROC_DOMAIN_ID_MDSP 0x1
+#define APM_PROC_DOMAIN_ID_ADSP 0x2
+#define APM_PROC_DOMAIN_ID_SDSP 0x4
+#define APM_PROC_DOMAIN_ID_CDSP 0x5
+#define PCM_INTERLEAVED 1
+#define PCM_DEINTERLEAVED_PACKED 2
+#define PCM_DEINTERLEAVED_UNPACKED 3
+#define AR_I2S_WS_SRC_EXTERNAL 0
+#define AR_I2S_WS_SRC_INTERNAL 1
+enum ar_event_types {
+  AR_EVENT_NONE = 0,
+  AR_PGA_DAPM_EVENT
+};
+#define SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX 256
+#define SND_SOC_AR_TPLG_VOL_CTL 257
+#define AR_TKN_DAI_INDEX 1
+#define AR_TKN_U32_SUB_GRAPH_INSTANCE_ID 2
+#define AR_TKN_U32_SUB_GRAPH_PERF_MODE 3
+#define AR_TKN_U32_SUB_GRAPH_DIRECTION 4
+#define AR_TKN_U32_SUB_GRAPH_SCENARIO_ID 5
+#define AR_TKN_U32_CONTAINER_INSTANCE_ID 100
+#define AR_TKN_U32_CONTAINER_CAPABILITY_ID 101
+#define AR_TKN_U32_CONTAINER_STACK_SIZE 102
+#define AR_TKN_U32_CONTAINER_GRAPH_POS 103
+#define AR_TKN_U32_CONTAINER_PROC_DOMAIN 104
+#define AR_TKN_U32_MODULE_ID 200
+#define AR_TKN_U32_MODULE_INSTANCE_ID 201
+#define AR_TKN_U32_MODULE_MAX_IP_PORTS 202
+#define AR_TKN_U32_MODULE_MAX_OP_PORTS 203
+#define AR_TKN_U32_MODULE_IN_PORTS 204
+#define AR_TKN_U32_MODULE_OUT_PORTS 205
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID 206
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID 207
+#define AR_TKN_U32_MODULE_SRC_INSTANCE_ID 208
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID 209
+#define AR_TKN_U32_MODULE_HW_IF_IDX 250
+#define AR_TKN_U32_MODULE_HW_IF_TYPE 251
+#define AR_TKN_U32_MODULE_FMT_INTERLEAVE 252
+#define AR_TKN_U32_MODULE_FMT_DATA 253
+#define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE 254
+#define AR_TKN_U32_MODULE_FMT_BIT_DEPTH 255
+#define AR_TKN_U32_MODULE_SD_LINE_IDX 256
+#define AR_TKN_U32_MODULE_WS_SRC 257
+#define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR 258
+#define AR_TKN_U32_MODULE_LOG_CODE 259
+#define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID 260
+#define AR_TKN_U32_MODULE_LOG_MODE 261
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
index 85a99c7..bf012fa 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
@@ -97,6 +97,7 @@
   SKL_TKN_U32_ASTATE_COUNT,
   SKL_TKN_U32_ASTATE_KCPS,
   SKL_TKN_U32_ASTATE_CLK_SRC,
-  SKL_TKN_MAX = SKL_TKN_U32_ASTATE_CLK_SRC,
+  SKL_TKN_U32_FMT_CFG_IDX = 96,
+  SKL_TKN_MAX = SKL_TKN_U32_FMT_CFG_IDX,
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/sof/tokens.h b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
index ef62372..856281a 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
+++ b/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
@@ -36,6 +36,7 @@
 #define SOF_TKN_SCHED_CORE 203
 #define SOF_TKN_SCHED_FRAMES 204
 #define SOF_TKN_SCHED_TIME_DOMAIN 205
+#define SOF_TKN_SCHED_DYNAMIC_PIPELINE 206
 #define SOF_TKN_VOLUME_RAMP_STEP_TYPE 250
 #define SOF_TKN_VOLUME_RAMP_STEP_MS 251
 #define SOF_TKN_SRC_RATE_IN 300
@@ -86,4 +87,7 @@
 #define SOF_TKN_INTEL_ALH_CH 1401
 #define SOF_TKN_INTEL_HDA_RATE 1500
 #define SOF_TKN_INTEL_HDA_CH 1501
+#define SOF_TKN_MEDIATEK_AFE_RATE 1600
+#define SOF_TKN_MEDIATEK_AFE_CH 1601
+#define SOF_TKN_MEDIATEK_AFE_FORMAT 1602
 #endif
diff --git a/mainline/runtime/sdk/android/arm/lib/crtbegin_dynamic.o b/mainline/runtime/sdk/android/arm/lib/crtbegin_dynamic.o
index cf54f50..d25f281 100644
--- a/mainline/runtime/sdk/android/arm/lib/crtbegin_dynamic.o
+++ b/mainline/runtime/sdk/android/arm/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm/lib/crtbegin_so.o b/mainline/runtime/sdk/android/arm/lib/crtbegin_so.o
index b89fa8d..11a7c4d 100644
--- a/mainline/runtime/sdk/android/arm/lib/crtbegin_so.o
+++ b/mainline/runtime/sdk/android/arm/lib/crtbegin_so.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm/lib/crtend.o b/mainline/runtime/sdk/android/arm/lib/crtend.o
index 8216612..a940626 100644
--- a/mainline/runtime/sdk/android/arm/lib/crtend.o
+++ b/mainline/runtime/sdk/android/arm/lib/crtend.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm/lib/crtend_so.o b/mainline/runtime/sdk/android/arm/lib/crtend_so.o
index e3a599d..7c4a231 100644
--- a/mainline/runtime/sdk/android/arm/lib/crtend_so.o
+++ b/mainline/runtime/sdk/android/arm/lib/crtend_so.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm/lib/libasync_safe.a b/mainline/runtime/sdk/android/arm/lib/libasync_safe.a
index 16e68b6..8fc377b 100644
--- a/mainline/runtime/sdk/android/arm/lib/libasync_safe.a
+++ b/mainline/runtime/sdk/android/arm/lib/libasync_safe.a
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm/lib/libc.so b/mainline/runtime/sdk/android/arm/lib/libc.so
index 1629b56..5e6ecbc 100755
--- a/mainline/runtime/sdk/android/arm/lib/libc.so
+++ b/mainline/runtime/sdk/android/arm/lib/libc.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm/lib/libdl.so b/mainline/runtime/sdk/android/arm/lib/libdl.so
index 61852fc..0cf15ee 100755
--- a/mainline/runtime/sdk/android/arm/lib/libdl.so
+++ b/mainline/runtime/sdk/android/arm/lib/libdl.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm/lib/libdl_android.so b/mainline/runtime/sdk/android/arm/lib/libdl_android.so
index 6d56968..eac9139 100755
--- a/mainline/runtime/sdk/android/arm/lib/libdl_android.so
+++ b/mainline/runtime/sdk/android/arm/lib/libdl_android.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm/lib/libm.so b/mainline/runtime/sdk/android/arm/lib/libm.so
index 9ceeab3..a7fdd50 100755
--- a/mainline/runtime/sdk/android/arm/lib/libm.so
+++ b/mainline/runtime/sdk/android/arm/lib/libm.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/api-level.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/api-level.h
index 40846fb..ecf318d 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/api-level.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/api-level.h
@@ -151,6 +151,9 @@
 /** Names the "S" API level (31), for comparison against `__ANDROID_API__`. */
 #define __ANDROID_API_S__ 31
 
+/** Names the "T" API level (33), for comparison against `__ANDROID_API__`. */
+#define __ANDROID_API_T__ 33
+
 /* This file is included in <features.h>, and might be used from .S files. */
 #if !defined(__ASSEMBLY__)
 
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/legacy_signal_inlines.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/legacy_signal_inlines.h
index 95c2320..f2bdcf6 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/legacy_signal_inlines.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/legacy_signal_inlines.h
@@ -89,7 +89,7 @@
     errno = EINVAL;
     return -1;
   }
-  return (int)((local_set[bit / LONG_BIT] >> (bit % LONG_BIT)) & 1);
+  return (int)((local_set[bit / (8 * sizeof(long))] >> (bit % (8 * sizeof(long)))) & 1);
 }
 
 static __inline int sigaddset(sigset_t *set, int signum) {
@@ -100,7 +100,7 @@
     errno = EINVAL;
     return -1;
   }
-  local_set[bit / LONG_BIT] |= 1UL << (bit % LONG_BIT);
+  local_set[bit / (8 * sizeof(long))] |= 1UL << (bit % (8 * sizeof(long)));
   return 0;
 }
 
@@ -112,7 +112,7 @@
     errno = EINVAL;
     return -1;
   }
-  local_set[bit / LONG_BIT] &= ~(1UL << (bit % LONG_BIT));
+  local_set[bit / (8 * sizeof(long))] &= ~(1UL << (bit % (8 * sizeof(long))));
   return 0;
 }
 
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/versioning.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/versioning.h
index 214acf2..efe4354 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/versioning.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/android/versioning.h
@@ -51,7 +51,7 @@
 // those APIs will still cause a link error.
 #if defined(__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__)
 #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,__what)))
-#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
+#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN(api_level)
 #define __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
 #else
 #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what)))
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/fortify/stdio.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/fortify/stdio.h
index 42698dd..77bdbb4 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/fortify/stdio.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/fortify/stdio.h
@@ -40,6 +40,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE __printflike(3, 0)
 int vsnprintf(char* const __pass_object_size dest, size_t size, const char* format, va_list ap)
+        __diagnose_as_builtin(__builtin_vsnprintf, 1, 2, 3, 4)
         __overloadable {
     return __builtin___vsnprintf_chk(dest, size, 0, __bos(dest), format, ap);
 }
@@ -70,6 +71,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_VARIADIC __printflike(3, 4)
 int snprintf(char* const __pass_object_size dest, size_t size, const char* format, ...)
+        __diagnose_as_builtin(__builtin_snprintf, 1, 2, 3)
         __overloadable {
     va_list va;
     va_start(va, format);
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/fortify/string.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/fortify/string.h
index beb5ff5..08bce2d 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/fortify/string.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/fortify/string.h
@@ -44,13 +44,16 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 void* memcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+        __diagnose_as_builtin(__builtin_memcpy, 1, 2, 3)
         __overloadable {
     return __builtin___memcpy_chk(dst, src, copy_amount, __bos0(dst));
 }
 
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-void* memmove(void* const dst __pass_object_size0, const void* src, size_t len) __overloadable {
+void* memmove(void* const dst __pass_object_size0, const void* src, size_t len)
+        __diagnose_as_builtin(__builtin_memmove, 1, 2, 3)
+        __overloadable {
     return __builtin___memmove_chk(dst, src, len, __bos0(dst));
 }
 #endif
@@ -59,6 +62,7 @@
 #if __ANDROID_API__ >= 30
 __BIONIC_FORTIFY_INLINE
 void* mempcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+        __diagnose_as_builtin(__builtin_mempcpy, 1, 2, 3)
         __overloadable
         __clang_error_if(__bos_unevaluated_lt(__bos0(dst), copy_amount),
                          "'mempcpy' called with size bigger than buffer") {
@@ -87,6 +91,7 @@
 
 __BIONIC_FORTIFY_INLINE
 char* strcpy(char* const dst __pass_object_size, const char* src)
+        __diagnose_as_builtin(__builtin_strcpy, 1, 2)
         __overloadable
         __clang_error_if(__bos_unevaluated_le(__bos(dst), __builtin_strlen(src)),
                          "'strcpy' called with string bigger than buffer") {
@@ -112,7 +117,9 @@
 #if __ANDROID_API__ >= 17 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-char* strncat(char* const dst __pass_object_size, const char* src, size_t n) __overloadable {
+char* strncat(char* const dst __pass_object_size, const char* src, size_t n)
+       __diagnose_as_builtin(__builtin_strncat, 1, 2, 3)
+       __overloadable {
     return __builtin___strncat_chk(dst, src, n, __bos(dst));
 }
 #endif
@@ -120,6 +127,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 void* memset(void* const s __pass_object_size0, int c, size_t n) __overloadable
+        __diagnose_as_builtin(__builtin_memset, 1, 2, 3)
         /* If you're a user who wants this warning to go away: use `(&memset)(foo, bar, baz)`. */
         __clang_warning_if(c && !n, "'memset' will set 0 bytes; maybe the arguments got flipped?") {
 #if __ANDROID_API__ >= 17 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
@@ -157,6 +165,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 char* stpncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+        __diagnose_as_builtin(__builtin_stpncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
     size_t bos_src = __bos(src);
@@ -172,6 +181,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 char* strncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+        __diagnose_as_builtin(__builtin_strncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
     size_t bos_src = __bos(src);
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/glibc-syscalls.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/glibc-syscalls.h
index fbda7fe..c144919 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/glibc-syscalls.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/glibc-syscalls.h
@@ -303,6 +303,9 @@
 #if defined(__NR_futex_time64)
   #define SYS_futex_time64 __NR_futex_time64
 #endif
+#if defined(__NR_futex_waitv)
+  #define SYS_futex_waitv __NR_futex_waitv
+#endif
 #if defined(__NR_futimesat)
   #define SYS_futimesat __NR_futimesat
 #endif
@@ -507,6 +510,15 @@
 #if defined(__NR_kill)
   #define SYS_kill __NR_kill
 #endif
+#if defined(__NR_landlock_add_rule)
+  #define SYS_landlock_add_rule __NR_landlock_add_rule
+#endif
+#if defined(__NR_landlock_create_ruleset)
+  #define SYS_landlock_create_ruleset __NR_landlock_create_ruleset
+#endif
+#if defined(__NR_landlock_restrict_self)
+  #define SYS_landlock_restrict_self __NR_landlock_restrict_self
+#endif
 #if defined(__NR_lchown)
   #define SYS_lchown __NR_lchown
 #endif
@@ -567,6 +579,9 @@
 #if defined(__NR_memfd_create)
   #define SYS_memfd_create __NR_memfd_create
 #endif
+#if defined(__NR_memfd_secret)
+  #define SYS_memfd_secret __NR_memfd_secret
+#endif
 #if defined(__NR_migrate_pages)
   #define SYS_migrate_pages __NR_migrate_pages
 #endif
@@ -789,6 +804,9 @@
 #if defined(__NR_process_madvise)
   #define SYS_process_madvise __NR_process_madvise
 #endif
+#if defined(__NR_process_mrelease)
+  #define SYS_process_mrelease __NR_process_mrelease
+#endif
 #if defined(__NR_process_vm_readv)
   #define SYS_process_vm_readv __NR_process_vm_readv
 #endif
@@ -828,6 +846,9 @@
 #if defined(__NR_quotactl)
   #define SYS_quotactl __NR_quotactl
 #endif
+#if defined(__NR_quotactl_fd)
+  #define SYS_quotactl_fd __NR_quotactl_fd
+#endif
 #if defined(__NR_read)
   #define SYS_read __NR_read
 #endif
@@ -1002,6 +1023,9 @@
 #if defined(__NR_set_mempolicy)
   #define SYS_set_mempolicy __NR_set_mempolicy
 #endif
+#if defined(__NR_set_mempolicy_home_node)
+  #define SYS_set_mempolicy_home_node __NR_set_mempolicy_home_node
+#endif
 #if defined(__NR_set_robust_list)
   #define SYS_set_robust_list __NR_set_robust_list
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/signal_types.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/signal_types.h
index e1a155f..699e257 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/signal_types.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/bits/signal_types.h
@@ -61,7 +61,7 @@
 #if defined(__LP64__)
 typedef sigset_t sigset64_t;
 #else
-typedef struct { unsigned long __bits[_KERNEL__NSIG/LONG_BIT]; } sigset64_t;
+typedef struct { unsigned long __bits[_KERNEL__NSIG/(8*sizeof(long))]; } sigset64_t;
 #endif
 
 #if defined(__LP64__)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/execinfo.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/execinfo.h
new file mode 100644
index 0000000..347ae92
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/execinfo.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#pragma once
+
+#include <sys/cdefs.h>
+
+/**
+ * @file execinfo.h
+ * @brief Functions to do in process backtracing.
+ */
+
+__BEGIN_DECLS
+
+/**
+ * [backtrace(3)](https://man7.org/linux/man-pages/man3/backtrace.3.html)
+ * Saves a backtrace for the current call in the array pointed to by buffer.
+ * "size" indicates the maximum number of void* pointers that can be set.
+ *
+ * Returns the number of addresses stored in "buffer", which is not greater
+ * than "size". If the return value is equal to "size" then the number of
+ * addresses may have been truncated.
+ *
+ * Available since API level 33.
+ */
+int backtrace(void** buffer, int size) __INTRODUCED_IN(33);
+
+/**
+ * [backtrace_symbols(3)](https://man7.org/linux/man-pages/man3/backtrace_symbols.3.html)
+ * Given an array of void* pointers, translate the addresses into an array
+ * of strings that represent the backtrace.
+ *
+ * Returns a pointer to allocated memory, on error NULL is returned. It is
+ * the responsibility of the caller to free the returned memory.
+ *
+ * Available since API level 33.
+ */
+char** backtrace_symbols(void* const* buffer, int size) __INTRODUCED_IN(33);
+
+/**
+ * [backtrace_symbols_fd(3)](https://man7.org/linux/man-pages/man3/backtrace_symbols_fd.3.html)
+ * Given an array of void* pointers, translate the addresses into an array
+ * of strings that represent the backtrace and write to the file represented
+ * by "fd". The file is written such that one line equals one void* address.
+ *
+ * Available since API level 33.
+ */
+void backtrace_symbols_fd(void* const* buffer, int size, int fd) __INTRODUCED_IN(33);
+
+__END_DECLS
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/malloc.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/malloc.h
index bae1f68..40786fa 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/malloc.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/malloc.h
@@ -97,30 +97,31 @@
  */
 size_t malloc_usable_size(const void* __ptr) __INTRODUCED_IN(17);
 
+#define __MALLINFO_BODY \
+  /** Total number of non-mmapped bytes currently allocated from OS. */ \
+  size_t arena; \
+  /** Number of free chunks. */ \
+  size_t ordblks; \
+  /** (Unused.) */ \
+  size_t smblks; \
+  /** (Unused.) */ \
+  size_t hblks; \
+  /** Total number of bytes in mmapped regions. */ \
+  size_t hblkhd; \
+  /** Maximum total allocated space; greater than total if trimming has occurred. */ \
+  size_t usmblks; \
+  /** (Unused.) */ \
+  size_t fsmblks; \
+  /** Total allocated space (normal or mmapped.) */ \
+  size_t uordblks; \
+  /** Total free space. */ \
+  size_t fordblks; \
+  /** Upper bound on number of bytes releasable by a trim operation. */ \
+  size_t keepcost;
+
 #ifndef STRUCT_MALLINFO_DECLARED
 #define STRUCT_MALLINFO_DECLARED 1
-struct mallinfo {
-  /** Total number of non-mmapped bytes currently allocated from OS. */
-  size_t arena;
-  /** Number of free chunks. */
-  size_t ordblks;
-  /** (Unused.) */
-  size_t smblks;
-  /** (Unused.) */
-  size_t hblks;
-  /** Total number of bytes in mmapped regions. */
-  size_t hblkhd;
-  /** Maximum total allocated space; greater than total if trimming has occurred. */
-  size_t usmblks;
-  /** (Unused.) */
-  size_t fsmblks;
-  /** Total allocated space (normal or mmapped.) */
-  size_t uordblks;
-  /** Total free space. */
-  size_t fordblks;
-  /** Upper bound on number of bytes releasable by a trim operation. */
-  size_t keepcost;
-};
+struct mallinfo { __MALLINFO_BODY };
 #endif
 
 /**
@@ -131,6 +132,18 @@
 struct mallinfo mallinfo(void);
 
 /**
+ * On Android the struct mallinfo and struct mallinfo2 are the same.
+ */
+struct mallinfo2 { __MALLINFO_BODY };
+
+/**
+ * [mallinfo2(3)](http://man7.org/linux/man-pages/man3/mallinfo2.3.html) returns
+ * information about the current state of the heap. Note that mallinfo2() is
+ * inherently unreliable and consider using malloc_info() instead.
+ */
+struct mallinfo2 mallinfo2(void) __RENAME(mallinfo);
+
+/**
  * [malloc_info(3)](http://man7.org/linux/man-pages/man3/malloc_info.3.html)
  * writes information about the current state of the heap to the given stream.
  *
@@ -170,7 +183,45 @@
  * Available since API level 28.
  */
 #define M_PURGE (-101)
-/*
+
+
+/**
+ * mallopt() option to tune the allocator's choice of memory tags to
+ * make it more likely that a certain class of memory errors will be
+ * detected. This is only relevant if MTE is enabled in this process
+ * and ignored otherwise. The value argument should be one of the
+ * M_MEMTAG_TUNING_* flags.
+ * NOTE: This is only available in scudo.
+ *
+ * Available since API level 31.
+ */
+#define M_MEMTAG_TUNING (-102)
+
+/**
+ * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables
+ * deterministic detection of linear buffer overflow and underflow
+ * bugs by assigning distinct tag values to adjacent allocations. This
+ * mode has a slightly reduced chance to detect use-after-free bugs
+ * because only half of the possible tag values are available for each
+ * memory location.
+ *
+ * Please keep in mind that MTE can not detect overflow within the
+ * same tag granule (16-byte aligned chunk), and can miss small
+ * overflows even in this mode. Such overflow can not be the cause of
+ * a memory corruption, because the memory within one granule is never
+ * used for multiple allocations.
+ */
+#define M_MEMTAG_TUNING_BUFFER_OVERFLOW 0
+
+/**
+ * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables
+ * independently randomized tags for uniform ~93% probability of
+ * detecting both spatial (buffer overflow) and temporal (use after
+ * free) bugs.
+ */
+#define M_MEMTAG_TUNING_UAF 1
+
+/**
  * mallopt() option for per-thread memory initialization tuning.
  * The value argument should be one of:
  * 1: Disable automatic heap initialization and, where possible, memory tagging,
@@ -210,7 +261,7 @@
  * should not be zero-initialized, any other value indicates to initialize heap
  * memory to zero.
  *
- * Note that this memory mitigations is only implemented in scudo and therefore
+ * Note that this memory mitigation is only implemented in scudo and therefore
  * this will have no effect when using another allocator (such as jemalloc on
  * Android Go devices).
  *
@@ -222,6 +273,7 @@
  * mallopt() option to change the heap tagging state. May be called at any
  * time, including when multiple threads are running.
  * The value must be one of the M_HEAP_TAGGING_LEVEL_ constants.
+ * NOTE: This is only available in scudo.
  *
  * Available since API level 31.
  */
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/netinet/in.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/netinet/in.h
index 7f00a7a..46e3543 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/netinet/in.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/netinet/in.h
@@ -33,7 +33,18 @@
 #include <sys/cdefs.h>
 #include <sys/socket.h>
 
+// Include linux/socket.h first to trigger the header guard without
+// the__kernel_sockaddr_storage define, so its definition uses the
+// kernel name.
+#include <linux/socket.h>
+
+// Redefine __kernel_sockaddr_storage to sockaddr_storage so that
+// the structs defined in linux/in.h use the sockaddr_storage defined
+// in sys/sockets.h.
+#define __kernel_sockaddr_storage sockaddr_storage
 #include <linux/in.h>
+#undef __kernel_sockaddr_storage
+
 #include <linux/in6.h>
 #include <linux/ipv6.h>
 
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sched.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sched.h
index 3260231..364ca10 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sched.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sched.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SCHED_H_
-#define _SCHED_H_
+#pragma once
+
+/**
+ * @file sched.h
+ * @brief Thread execution scheduling.
+ */
 
 #include <bits/timespec.h>
 #include <linux/sched.h>
@@ -35,29 +39,170 @@
 
 __BEGIN_DECLS
 
-/* This name is used by glibc, but not by the kernel. */
+/*
+ * @def SCHED_NORMAL
+ * The standard (as opposed to real-time) round-robin scheduling policy.
+ *
+ * (Linux's name for POSIX's SCHED_OTHER.)
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_FIFO
+ * The real-time first-in/first-out scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_RR
+ * The real-time round-robin policy. (See also SCHED_NORMAL/SCHED_OTHER.)
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_BATCH
+ * The batch scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_IDLE
+ * The low priority "only when otherwise idle" scheduling priority.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_DEADLINE
+ * The deadline scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * The standard (as opposed to real-time) round-robin scheduling policy.
+ *
+ * (POSIX's name for Linux's SCHED_NORMAL.)
+ */
 #define SCHED_OTHER SCHED_NORMAL
 
+/**
+ * See sched_getparam()/sched_setparam() and
+ * sched_getscheduler()/sched_setscheduler().
+ */
 struct sched_param {
   int sched_priority;
 };
 
+/**
+ * [sched_setscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * sets the scheduling policy and associated parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setscheduler(pid_t __pid, int __policy, const struct sched_param* __param);
+
+/**
+ * [sched_getscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * gets the scheduling policy for the given thread.
+ *
+ * Returns a non-negative thread policy on success and returns -1 and sets
+ * `errno` on failure.
+ */
 int sched_getscheduler(pid_t __pid);
+
+/**
+ * [sched_yield(2)](http://man7.org/linux/man-pages/man2/sched_yield.2.html)
+ * voluntarily gives up using the CPU so that another thread can run.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_yield(void);
+
+/**
+ * [sched_get_priority_max(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_max.2.html)
+ * gets the maximum priority value allowed for the given scheduling policy.
+ *
+ * Returns a priority on success and returns -1 and sets `errno` on failure.
+ */
 int sched_get_priority_max(int __policy);
+
+/**
+ * [sched_get_priority_min(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_min.2.html)
+ * gets the minimum priority value allowed for the given scheduling policy.
+ *
+ * Returns a priority on success and returns -1 and sets `errno` on failure.
+ */
 int sched_get_priority_min(int __policy);
+
+/**
+ * [sched_setparam(2)](http://man7.org/linux/man-pages/man2/sched_setparam.2.html)
+ * sets the scheduling parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setparam(pid_t __pid, const struct sched_param* __param);
+
+/**
+ * [sched_getparam(2)](http://man7.org/linux/man-pages/man2/sched_getparam.2.html)
+ * gets the scheduling parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_getparam(pid_t __pid, struct sched_param* __param);
+
+/**
+ * [sched_rr_get_interval(2)](http://man7.org/linux/man-pages/man2/sched_rr_get_interval.2.html)
+ * queries the round-robin time quantum for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_rr_get_interval(pid_t __pid, struct timespec* __quantum);
 
 #if defined(__USE_GNU)
 
+/**
+ * [clone(2)](http://man7.org/linux/man-pages/man2/clone.2.html)
+ * creates a new child process.
+ *
+ * Returns the pid of the child to the caller on success and
+ * returns -1 and sets `errno` on failure.
+ */
 int clone(int (*__fn)(void*), void* __child_stack, int __flags, void* __arg, ...) __INTRODUCED_IN_ARM(9) __INTRODUCED_IN_X86(17);
+
+/**
+ * [unshare(2)](http://man7.org/linux/man-pages/man2/unshare.2.html)
+ * disassociates part of the caller's execution context.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 17.
+ */
 int unshare(int __flags) __INTRODUCED_IN(17);
-int sched_getcpu(void);
+
+/**
+ * [setns(2)](http://man7.org/linux/man-pages/man2/setns.2.html)
+ * reassociates a thread with a different namespace.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 21.
+ */
 int setns(int __fd, int __ns_type) __INTRODUCED_IN(21);
 
+/**
+ * [sched_getcpu(3)](http://man7.org/linux/man-pages/man3/sched_getcpu.3.html)
+ * reports which CPU the caller is running on.
+ *
+ * Returns a non-negative CPU number on success and returns -1 and sets
+ * `errno` on failure.
+ */
+int sched_getcpu(void);
+
 #ifdef __LP64__
 #define CPU_SETSIZE 1024
 #else
@@ -69,39 +214,50 @@
 #define __CPU_ELT(x)   ((x) / __CPU_BITS)
 #define __CPU_MASK(x)  ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
 
+/**
+ * [cpu_set_t](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) is a
+ * statically-sized CPU set. See `CPU_ALLOC` for dynamically-sized CPU sets.
+ */
 typedef struct {
   __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
 } cpu_set_t;
 
+/**
+ * [sched_setaffinity(2)](http://man7.org/linux/man-pages/man2/sched_setaffinity.2.html)
+ * sets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setaffinity(pid_t __pid, size_t __set_size, const cpu_set_t* __set);
+
+/**
+ * [sched_getaffinity(2)](http://man7.org/linux/man-pages/man2/sched_getaffinity.2.html)
+ * gets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_getaffinity(pid_t __pid, size_t __set_size, cpu_set_t* __set);
 
+/**
+ * [CPU_ZERO](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all
+ * bits in a static CPU set.
+ */
 #define CPU_ZERO(set)          CPU_ZERO_S(sizeof(cpu_set_t), set)
-#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
-#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
-
-#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
-#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
-#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
-
-#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
-
-/* Support for dynamically-allocated cpu_set_t */
-
-#define CPU_ALLOC_SIZE(count) \
-  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
-
-#define CPU_ALLOC(count)  __sched_cpualloc((count))
-#define CPU_FREE(set)     __sched_cpufree((set))
-
-cpu_set_t* __sched_cpualloc(size_t __count);
-void __sched_cpufree(cpu_set_t* __set);
-
+/**
+ * [CPU_ZERO_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all
+ * bits in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_ZERO_S(setsize, set)  __builtin_memset(set, 0, setsize)
 
+/**
+ * [CPU_SET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one
+ * bit in a static CPU set.
+ */
+#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_SET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one
+ * bit in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_SET_S(cpu, setsize, set) \
   do { \
     size_t __cpu = (cpu); \
@@ -109,6 +265,15 @@
       (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
   } while (0)
 
+/**
+ * [CPU_CLR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one
+ * bit in a static CPU set.
+ */
+#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_CLR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one
+ * bit in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_CLR_S(cpu, setsize, set) \
   do { \
     size_t __cpu = (cpu); \
@@ -116,6 +281,15 @@
       (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
   } while (0)
 
+/**
+ * [CPU_ISSET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether the given bit is set in a static CPU set.
+ */
+#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_ISSET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether the given bit is set in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_ISSET_S(cpu, setsize, set) \
   (__extension__ ({ \
     size_t __cpu = (cpu); \
@@ -124,12 +298,65 @@
       : 0; \
   }))
 
+/**
+ * [CPU_COUNT](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts
+ * how many bits are set in a static CPU set.
+ */
+#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
+/**
+ * [CPU_COUNT_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts
+ * how many bits are set in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
+#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
+int __sched_cpucount(size_t __set_size, const cpu_set_t* __set);
+
+/**
+ * [CPU_EQUAL](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether two static CPU sets have the same bits set and cleared as each other.
+ */
+#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
+/**
+ * [CPU_EQUAL_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether two dynamic CPU sets allocated by `CPU_ALLOC` have the same bits
+ * set and cleared as each other.
+ */
 #define CPU_EQUAL_S(setsize, set1, set2)  (__builtin_memcmp(set1, set2, setsize) == 0)
 
+/**
+ * [CPU_AND](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two
+ * static CPU sets.
+ */
+#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
+/**
+ * [CPU_AND_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two
+ * dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_AND_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, &)
+
+/**
+ * [CPU_OR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two
+ * static CPU sets.
+ */
+#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
+/**
+ * [CPU_OR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two
+ * dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_OR_S(setsize, dst, set1, set2)   __CPU_OP_S(setsize, dst, set1, set2, |)
+
+/**
+ * [CPU_XOR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * exclusive-ors two static CPU sets.
+ */
+#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
+/**
+ * [CPU_XOR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * exclusive-ors two dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_XOR_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, ^)
 
+#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
+
 #define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
   do { \
     cpu_set_t* __dst = (dstset); \
@@ -140,12 +367,27 @@
       (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
   } while (0)
 
-#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
+/**
+ * [CPU_ALLOC_SIZE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * returns the size of a CPU set large enough for CPUs in the range 0..count-1.
+ */
+#define CPU_ALLOC_SIZE(count) \
+  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
 
-int __sched_cpucount(size_t __set_size, const cpu_set_t* __set);
+/**
+ * [CPU_ALLOC](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * allocates a CPU set large enough for CPUs in the range 0..count-1.
+ */
+#define CPU_ALLOC(count)  __sched_cpualloc((count))
+cpu_set_t* __sched_cpualloc(size_t __count);
+
+/**
+ * [CPU_FREE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * deallocates a CPU set allocated by `CPU_ALLOC`.
+ */
+#define CPU_FREE(set)     __sched_cpufree((set))
+void __sched_cpufree(cpu_set_t* __set);
 
 #endif /* __USE_GNU */
 
 __END_DECLS
-
-#endif /* _SCHED_H_ */
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/stdlib.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/stdlib.h
index 583287f..4aa27f9 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/stdlib.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/stdlib.h
@@ -161,11 +161,11 @@
 void setprogname(const char* __name) __INTRODUCED_IN(21);
 
 int mblen(const char* __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(26);
-size_t mbstowcs(wchar_t* __dst, const char* __src, size_t __n);
+size_t mbstowcs(wchar_t* __dst, const char* __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 int mbtowc(wchar_t* __wc_ptr, const char* __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 int wctomb(char* __dst, wchar_t __wc) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
-size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n);
+size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
 #if __ANDROID_API__ >= 21
 size_t __ctype_get_mb_cur_max(void) __INTRODUCED_IN(21);
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/cdefs.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/cdefs.h
index 2556d11..5b9d99b 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/cdefs.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/cdefs.h
@@ -327,6 +327,8 @@
 
 #define __overloadable __attribute__((overloadable))
 
+#define __diagnose_as_builtin(...) __attribute__((diagnose_as_builtin(__VA_ARGS__)))
+
 /* Used to tag non-static symbols that are private and never exposed by the shared library. */
 #define __LIBC_HIDDEN__ __attribute__((visibility("hidden")))
 
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/select.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/select.h
index 79fc28d..65571eb 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/select.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/select.h
@@ -101,31 +101,37 @@
 
 /**
  * [select(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use poll() instead.
+ * set of file descriptors.
+ *
+ * Use poll() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  */
-int select(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, struct timeval* __timeout);
+int select(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, struct timeval* __timeout);
 
 /**
  * [pselect(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use ppoll() instead.
+ * set of file descriptors.
+ *
+ * Use ppoll() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  */
-int pselect(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset_t* __mask);
+int pselect(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset_t* __mask);
 
 /**
  * [pselect64(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use ppoll64() instead.
+ * set of file descriptors.
+ *
+ * Use ppoll64() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  *
  * Available since API level 28.
  */
-int pselect64(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset64_t* __mask) __INTRODUCED_IN(28);
+int pselect64(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset64_t* __mask) __INTRODUCED_IN(28);
 
 __END_DECLS
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/socket.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/socket.h
index 3ecbcce..f33f112 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/socket.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/socket.h
@@ -31,7 +31,6 @@
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
-#include <linux/socket.h>
 
 #include <asm/fcntl.h>
 #include <asm/socket.h>
@@ -71,6 +70,16 @@
   char sa_data[14];
 };
 
+struct sockaddr_storage {
+  union {
+    struct {
+      sa_family_t ss_family;
+      char __data[128 - sizeof(sa_family_t)];
+    };
+    void* __align;
+  };
+};
+
 struct linger {
   int l_onoff;
   int l_linger;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/uio.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/uio.h
index 37961e3..583cfc6 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/uio.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/include/sys/uio.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SYS_UIO_H_
-#define _SYS_UIO_H_
+#pragma once
+
+/**
+ * @file sys/uio.h
+ * @brief Multi-buffer ("vector") I/O operations using `struct iovec`.
+ */
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
@@ -35,21 +39,124 @@
 
 __BEGIN_DECLS
 
+/**
+ * [readv(2)](http://man7.org/linux/man-pages/man2/readv.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ */
 ssize_t readv(int __fd, const struct iovec* __iov, int __count);
+
+/**
+ * [writev(2)](http://man7.org/linux/man-pages/man2/writev.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ */
 ssize_t writev(int __fd, const struct iovec* __iov, int __count);
 
 #if defined(__USE_GNU)
-ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
-ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
-ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
-ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
-#endif
 
-#if defined(__USE_GNU)
+/**
+ * [preadv(2)](http://man7.org/linux/man-pages/man2/preadv.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`, starting at
+ * offset `__offset` into the file.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 24.
+ */
+ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
+
+/**
+ * [pwritev(2)](http://man7.org/linux/man-pages/man2/pwritev.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`, starting at offset
+ * `__offset` into the file.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 24.
+ */
+ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
+
+/**
+ * Like preadv() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 24.
+ */
+ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+
+/**
+ * Like pwritev() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 24.
+ */
+ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+
+/**
+ * [preadv2(2)](http://man7.org/linux/man-pages/man2/preadv2.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`, starting at
+ * offset `__offset` into the file, with the given flags.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 33.
+ */
+ssize_t preadv2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(preadv64v2) __INTRODUCED_IN(33);
+
+/**
+ * [pwritev2(2)](http://man7.org/linux/man-pages/man2/pwritev2.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`, starting at offset
+ * `__offset` into the file, with the given flags.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 33.
+ */
+ssize_t pwritev2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(pwritev64v2) __INTRODUCED_IN(33);
+
+/**
+ * Like preadv2() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 33.
+ */
+ssize_t preadv64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+
+/**
+ * Like pwritev2() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 33.
+ */
+ssize_t pwritev64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+
+/**
+ * [process_vm_readv(2)](http://man7.org/linux/man-pages/man2/process_vm_readv.2.html)
+ * reads from the address space of another process.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 23.
+ */
 ssize_t process_vm_readv(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
+/**
+ * [process_vm_writev(2)](http://man7.org/linux/man-pages/man2/process_vm_writev.2.html)
+ * writes to the address space of another process.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 23.
+ */
 ssize_t process_vm_writev(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
 #endif
 
 __END_DECLS
-
-#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
index 2ea16a3..6d89fa9 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
@@ -20,6 +20,7 @@
 #define _SCSI_SCSI_H
 #include <linux/types.h>
 #include <scsi/scsi_proto.h>
+#include <scsi/scsi_status.h>
 struct ccs_modesel_head {
   __u8 _r1;
   __u8 medium;
@@ -34,40 +35,12 @@
   __u8 block_length_med;
   __u8 block_length_lo;
 };
-#define COMMAND_COMPLETE 0x00
-#define EXTENDED_MESSAGE 0x01
 #define EXTENDED_MODIFY_DATA_POINTER 0x00
 #define EXTENDED_SDTR 0x01
 #define EXTENDED_EXTENDED_IDENTIFY 0x02
 #define EXTENDED_WDTR 0x03
 #define EXTENDED_PPR 0x04
 #define EXTENDED_MODIFY_BIDI_DATA_PTR 0x05
-#define SAVE_POINTERS 0x02
-#define RESTORE_POINTERS 0x03
-#define DISCONNECT 0x04
-#define INITIATOR_ERROR 0x05
-#define ABORT_TASK_SET 0x06
-#define MESSAGE_REJECT 0x07
-#define NOP 0x08
-#define MSG_PARITY_ERROR 0x09
-#define LINKED_CMD_COMPLETE 0x0a
-#define LINKED_FLG_CMD_COMPLETE 0x0b
-#define TARGET_RESET 0x0c
-#define ABORT_TASK 0x0d
-#define CLEAR_TASK_SET 0x0e
-#define INITIATE_RECOVERY 0x0f
-#define RELEASE_RECOVERY 0x10
-#define TERMINATE_IO_PROC 0x11
-#define CLEAR_ACA 0x16
-#define LOGICAL_UNIT_RESET 0x17
-#define SIMPLE_QUEUE_TAG 0x20
-#define HEAD_OF_QUEUE_TAG 0x21
-#define ORDERED_QUEUE_TAG 0x22
-#define IGNORE_WIDE_RESIDUE 0x23
-#define ACA 0x24
-#define QAS_REQUEST 0x55
-#define BUS_DEVICE_RESET TARGET_RESET
-#define ABORT ABORT_TASK_SET
 #define SCSI_IOCTL_GET_IDLUN 0x5382
 #define SCSI_IOCTL_PROBE_HOST 0x5385
 #define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
index a77eded..eea87a0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
@@ -124,17 +124,6 @@
 #define SERVICE_ACTION_BIDIRECTIONAL 0x9d
 #define SERVICE_ACTION_IN_16 0x9e
 #define SERVICE_ACTION_OUT_16 0x9f
-#define GOOD 0x00
-#define CHECK_CONDITION 0x01
-#define CONDITION_GOOD 0x02
-#define BUSY 0x04
-#define INTERMEDIATE_GOOD 0x08
-#define INTERMEDIATE_C_GOOD 0x0a
-#define RESERVATION_CONFLICT 0x0c
-#define COMMAND_TERMINATED 0x11
-#define QUEUE_FULL 0x14
-#define ACA_ACTIVE 0x18
-#define TASK_ABORTED 0x20
 #define STATUS_MASK 0xfe
 #define NO_SENSE 0x00
 #define RECOVERED_ERROR 0x01
@@ -205,4 +194,14 @@
   ZBC_ZONE_COND_FULL = 0xe,
   ZBC_ZONE_COND_OFFLINE = 0xf,
 };
+enum scsi_version_descriptor {
+  SCSI_VERSION_DESCRIPTOR_FCP4 = 0x0a40,
+  SCSI_VERSION_DESCRIPTOR_ISCSI = 0x0960,
+  SCSI_VERSION_DESCRIPTOR_SAM5 = 0x00a0,
+  SCSI_VERSION_DESCRIPTOR_SAS3 = 0x0c60,
+  SCSI_VERSION_DESCRIPTOR_SBC3 = 0x04c0,
+  SCSI_VERSION_DESCRIPTOR_SBP3 = 0x0980,
+  SCSI_VERSION_DESCRIPTOR_SPC4 = 0x0460,
+  SCSI_VERSION_DESCRIPTOR_SRP = 0x0940
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
similarity index 82%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
index bb45c3d..6a7fc10 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
@@ -16,14 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _SCSI_SCSI_STATUS_H
+#define _SCSI_SCSI_STATUS_H
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#include <scsi/scsi_proto.h>
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/sg.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/sg.h
index 828b2c6..a7a1944 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/sg.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/android/scsi/scsi/sg.h
@@ -66,6 +66,20 @@
 #define SG_INFO_INDIRECT_IO 0x0
 #define SG_INFO_DIRECT_IO 0x2
 #define SG_INFO_MIXED_IO 0x4
+#define DRIVER_SENSE 0x08
+#define driver_byte(result) (((result) >> 24) & 0xff)
+#define GOOD 0x00
+#define CHECK_CONDITION 0x01
+#define CONDITION_GOOD 0x02
+#define BUSY 0x04
+#define INTERMEDIATE_GOOD 0x08
+#define INTERMEDIATE_C_GOOD 0x0a
+#define RESERVATION_CONFLICT 0x0c
+#define COMMAND_TERMINATED 0x11
+#define QUEUE_FULL 0x14
+#define ACA_ACTIVE 0x18
+#define TASK_ABORTED 0x20
+#define status_byte(result) (((result) >> 1) & 0x7f)
 typedef struct sg_scsi_id {
   int host_no;
   int channel;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
index b4da2d1..672a72a 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
@@ -19,7 +19,7 @@
 #ifndef _UAPI__ASMARM_SETUP_H
 #define _UAPI__ASMARM_SETUP_H
 #include <linux/types.h>
-#define COMMAND_LINE_SIZE 2048
+#define COMMAND_LINE_SIZE 1024
 #define ATAG_NONE 0x00000000
 struct tag_header {
   __u32 size;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h
deleted file mode 100644
index 070c77b..0000000
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h
+++ /dev/null
@@ -1,417 +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_ASM_ARM_UNISTD_COMMON_H
-#define _UAPI_ASM_ARM_UNISTD_COMMON_H 1
-#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
-#define __NR_exit (__NR_SYSCALL_BASE + 1)
-#define __NR_fork (__NR_SYSCALL_BASE + 2)
-#define __NR_read (__NR_SYSCALL_BASE + 3)
-#define __NR_write (__NR_SYSCALL_BASE + 4)
-#define __NR_open (__NR_SYSCALL_BASE + 5)
-#define __NR_close (__NR_SYSCALL_BASE + 6)
-#define __NR_creat (__NR_SYSCALL_BASE + 8)
-#define __NR_link (__NR_SYSCALL_BASE + 9)
-#define __NR_unlink (__NR_SYSCALL_BASE + 10)
-#define __NR_execve (__NR_SYSCALL_BASE + 11)
-#define __NR_chdir (__NR_SYSCALL_BASE + 12)
-#define __NR_mknod (__NR_SYSCALL_BASE + 14)
-#define __NR_chmod (__NR_SYSCALL_BASE + 15)
-#define __NR_lchown (__NR_SYSCALL_BASE + 16)
-#define __NR_lseek (__NR_SYSCALL_BASE + 19)
-#define __NR_getpid (__NR_SYSCALL_BASE + 20)
-#define __NR_mount (__NR_SYSCALL_BASE + 21)
-#define __NR_setuid (__NR_SYSCALL_BASE + 23)
-#define __NR_getuid (__NR_SYSCALL_BASE + 24)
-#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
-#define __NR_pause (__NR_SYSCALL_BASE + 29)
-#define __NR_access (__NR_SYSCALL_BASE + 33)
-#define __NR_nice (__NR_SYSCALL_BASE + 34)
-#define __NR_sync (__NR_SYSCALL_BASE + 36)
-#define __NR_kill (__NR_SYSCALL_BASE + 37)
-#define __NR_rename (__NR_SYSCALL_BASE + 38)
-#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
-#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
-#define __NR_dup (__NR_SYSCALL_BASE + 41)
-#define __NR_pipe (__NR_SYSCALL_BASE + 42)
-#define __NR_times (__NR_SYSCALL_BASE + 43)
-#define __NR_brk (__NR_SYSCALL_BASE + 45)
-#define __NR_setgid (__NR_SYSCALL_BASE + 46)
-#define __NR_getgid (__NR_SYSCALL_BASE + 47)
-#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
-#define __NR_getegid (__NR_SYSCALL_BASE + 50)
-#define __NR_acct (__NR_SYSCALL_BASE + 51)
-#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
-#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
-#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
-#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
-#define __NR_umask (__NR_SYSCALL_BASE + 60)
-#define __NR_chroot (__NR_SYSCALL_BASE + 61)
-#define __NR_ustat (__NR_SYSCALL_BASE + 62)
-#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
-#define __NR_getppid (__NR_SYSCALL_BASE + 64)
-#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
-#define __NR_setsid (__NR_SYSCALL_BASE + 66)
-#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
-#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
-#define __NR_setregid (__NR_SYSCALL_BASE + 71)
-#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
-#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
-#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
-#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
-#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
-#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
-#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
-#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
-#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
-#define __NR_symlink (__NR_SYSCALL_BASE + 83)
-#define __NR_readlink (__NR_SYSCALL_BASE + 85)
-#define __NR_uselib (__NR_SYSCALL_BASE + 86)
-#define __NR_swapon (__NR_SYSCALL_BASE + 87)
-#define __NR_reboot (__NR_SYSCALL_BASE + 88)
-#define __NR_munmap (__NR_SYSCALL_BASE + 91)
-#define __NR_truncate (__NR_SYSCALL_BASE + 92)
-#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
-#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
-#define __NR_fchown (__NR_SYSCALL_BASE + 95)
-#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
-#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
-#define __NR_statfs (__NR_SYSCALL_BASE + 99)
-#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
-#define __NR_syslog (__NR_SYSCALL_BASE + 103)
-#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
-#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
-#define __NR_stat (__NR_SYSCALL_BASE + 106)
-#define __NR_lstat (__NR_SYSCALL_BASE + 107)
-#define __NR_fstat (__NR_SYSCALL_BASE + 108)
-#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
-#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
-#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
-#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
-#define __NR_fsync (__NR_SYSCALL_BASE + 118)
-#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
-#define __NR_clone (__NR_SYSCALL_BASE + 120)
-#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
-#define __NR_uname (__NR_SYSCALL_BASE + 122)
-#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
-#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
-#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
-#define __NR_init_module (__NR_SYSCALL_BASE + 128)
-#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
-#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
-#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
-#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
-#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
-#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
-#define __NR_personality (__NR_SYSCALL_BASE + 136)
-#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
-#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
-#define __NR__llseek (__NR_SYSCALL_BASE + 140)
-#define __NR_getdents (__NR_SYSCALL_BASE + 141)
-#define __NR__newselect (__NR_SYSCALL_BASE + 142)
-#define __NR_flock (__NR_SYSCALL_BASE + 143)
-#define __NR_msync (__NR_SYSCALL_BASE + 144)
-#define __NR_readv (__NR_SYSCALL_BASE + 145)
-#define __NR_writev (__NR_SYSCALL_BASE + 146)
-#define __NR_getsid (__NR_SYSCALL_BASE + 147)
-#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
-#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
-#define __NR_mlock (__NR_SYSCALL_BASE + 150)
-#define __NR_munlock (__NR_SYSCALL_BASE + 151)
-#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
-#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
-#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
-#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
-#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
-#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
-#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
-#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
-#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
-#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
-#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
-#define __NR_mremap (__NR_SYSCALL_BASE + 163)
-#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
-#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
-#define __NR_poll (__NR_SYSCALL_BASE + 168)
-#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
-#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
-#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
-#define __NR_prctl (__NR_SYSCALL_BASE + 172)
-#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
-#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
-#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
-#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
-#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
-#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
-#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
-#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
-#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
-#define __NR_chown (__NR_SYSCALL_BASE + 182)
-#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
-#define __NR_capget (__NR_SYSCALL_BASE + 184)
-#define __NR_capset (__NR_SYSCALL_BASE + 185)
-#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
-#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
-#define __NR_vfork (__NR_SYSCALL_BASE + 190)
-#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
-#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
-#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
-#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
-#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
-#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
-#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
-#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
-#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
-#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
-#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
-#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
-#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
-#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
-#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
-#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
-#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
-#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
-#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
-#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
-#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
-#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
-#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
-#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
-#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
-#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
-#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
-#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
-#define __NR_mincore (__NR_SYSCALL_BASE + 219)
-#define __NR_madvise (__NR_SYSCALL_BASE + 220)
-#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
-#define __NR_gettid (__NR_SYSCALL_BASE + 224)
-#define __NR_readahead (__NR_SYSCALL_BASE + 225)
-#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
-#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
-#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
-#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
-#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
-#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
-#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
-#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
-#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
-#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
-#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
-#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
-#define __NR_tkill (__NR_SYSCALL_BASE + 238)
-#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
-#define __NR_futex (__NR_SYSCALL_BASE + 240)
-#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
-#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
-#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
-#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
-#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
-#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
-#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
-#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
-#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
-#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
-#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
-#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
-#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
-#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
-#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
-#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
-#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
-#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
-#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
-#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
-#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
-#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
-#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
-#define __NR_utimes (__NR_SYSCALL_BASE + 269)
-#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
-#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
-#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
-#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
-#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
-#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
-#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
-#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
-#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
-#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
-#define __NR_waitid (__NR_SYSCALL_BASE + 280)
-#define __NR_socket (__NR_SYSCALL_BASE + 281)
-#define __NR_bind (__NR_SYSCALL_BASE + 282)
-#define __NR_connect (__NR_SYSCALL_BASE + 283)
-#define __NR_listen (__NR_SYSCALL_BASE + 284)
-#define __NR_accept (__NR_SYSCALL_BASE + 285)
-#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
-#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
-#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
-#define __NR_send (__NR_SYSCALL_BASE + 289)
-#define __NR_sendto (__NR_SYSCALL_BASE + 290)
-#define __NR_recv (__NR_SYSCALL_BASE + 291)
-#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
-#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
-#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
-#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
-#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
-#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
-#define __NR_semop (__NR_SYSCALL_BASE + 298)
-#define __NR_semget (__NR_SYSCALL_BASE + 299)
-#define __NR_semctl (__NR_SYSCALL_BASE + 300)
-#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
-#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
-#define __NR_msgget (__NR_SYSCALL_BASE + 303)
-#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
-#define __NR_shmat (__NR_SYSCALL_BASE + 305)
-#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
-#define __NR_shmget (__NR_SYSCALL_BASE + 307)
-#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
-#define __NR_add_key (__NR_SYSCALL_BASE + 309)
-#define __NR_request_key (__NR_SYSCALL_BASE + 310)
-#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
-#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
-#define __NR_vserver (__NR_SYSCALL_BASE + 313)
-#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
-#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
-#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
-#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
-#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
-#define __NR_mbind (__NR_SYSCALL_BASE + 319)
-#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
-#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
-#define __NR_openat (__NR_SYSCALL_BASE + 322)
-#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
-#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
-#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
-#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
-#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
-#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
-#define __NR_renameat (__NR_SYSCALL_BASE + 329)
-#define __NR_linkat (__NR_SYSCALL_BASE + 330)
-#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
-#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
-#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
-#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
-#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
-#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
-#define __NR_unshare (__NR_SYSCALL_BASE + 337)
-#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
-#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
-#define __NR_splice (__NR_SYSCALL_BASE + 340)
-#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
-#define __NR_tee (__NR_SYSCALL_BASE + 342)
-#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
-#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
-#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
-#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
-#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
-#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
-#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
-#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
-#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
-#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
-#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
-#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
-#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
-#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
-#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
-#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
-#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
-#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
-#define __NR_preadv (__NR_SYSCALL_BASE + 361)
-#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
-#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
-#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
-#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
-#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
-#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
-#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
-#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
-#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
-#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
-#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
-#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
-#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
-#define __NR_setns (__NR_SYSCALL_BASE + 375)
-#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
-#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
-#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
-#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
-#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
-#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
-#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
-#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
-#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
-#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
-#define __NR_bpf (__NR_SYSCALL_BASE + 386)
-#define __NR_execveat (__NR_SYSCALL_BASE + 387)
-#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
-#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
-#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
-#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
-#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
-#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
-#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
-#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
-#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
-#define __NR_statx (__NR_SYSCALL_BASE + 397)
-#define __NR_rseq (__NR_SYSCALL_BASE + 398)
-#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
-#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
-#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
-#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
-#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
-#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
-#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
-#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
-#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
-#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
-#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
-#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
-#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
-#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
-#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
-#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
-#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
-#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
-#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
-#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
-#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
-#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
-#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
-#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
-#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
-#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
-#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
-#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
-#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
-#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
-#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
-#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
-#define __NR_fspick (__NR_SYSCALL_BASE + 433)
-#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
-#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
-#define __NR_close_range (__NR_SYSCALL_BASE + 436)
-#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
-#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
-#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
-#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
-#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
-#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
-#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
index 54e1867..71b25e7 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
@@ -16,6 +16,409 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _UAPI_ASM_ARM_UNISTD_EABI_H
-#define _UAPI_ASM_ARM_UNISTD_EABI_H 1
+#ifndef _UAPI_ASM_UNISTD_EABI_H
+#define _UAPI_ASM_UNISTD_EABI_H
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
+#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
+#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
+#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
+#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
+#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
+#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
index d2633e8..08b3b9a 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
@@ -16,18 +16,421 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _UAPI_ASM_ARM_UNISTD_OABI_H
-#define _UAPI_ASM_ARM_UNISTD_OABI_H 1
+#ifndef _UAPI_ASM_UNISTD_OABI_H
+#define _UAPI_ASM_UNISTD_OABI_H
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
 #define __NR_time (__NR_SYSCALL_BASE + 13)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
 #define __NR_umount (__NR_SYSCALL_BASE + 22)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
 #define __NR_stime (__NR_SYSCALL_BASE + 25)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
 #define __NR_alarm (__NR_SYSCALL_BASE + 27)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
 #define __NR_utime (__NR_SYSCALL_BASE + 30)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
 #define __NR_getrlimit (__NR_SYSCALL_BASE + 76)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
 #define __NR_select (__NR_SYSCALL_BASE + 82)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
 #define __NR_readdir (__NR_SYSCALL_BASE + 89)
 #define __NR_mmap (__NR_SYSCALL_BASE + 90)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
 #define __NR_socketcall (__NR_SYSCALL_BASE + 102)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
 #define __NR_syscall (__NR_SYSCALL_BASE + 113)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
 #define __NR_ipc (__NR_SYSCALL_BASE + 117)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
+#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
+#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
+#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
+#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
+#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
+#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
index f4b1f3a..8bb0f58 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
@@ -19,9 +19,9 @@
 #ifndef _UAPI__ASM_ARM_UNISTD_H
 #define _UAPI__ASM_ARM_UNISTD_H
 #define __NR_OABI_SYSCALL_BASE 0x900000
+#define __NR_SYSCALL_MASK 0x0fffff
 #define __NR_SYSCALL_BASE 0
 #include <asm/unistd-eabi.h>
-#include <asm/unistd-common.h>
 #define __NR_sync_file_range2 __NR_arm_sync_file_range
 #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0x0f0000)
 #define __ARM_NR_breakpoint (__ARM_NR_BASE + 1)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
index 8a70a52..4316724 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
@@ -69,4 +69,7 @@
 #define HWCAP2_RNG (1 << 16)
 #define HWCAP2_BTI (1 << 17)
 #define HWCAP2_MTE (1 << 18)
+#define HWCAP2_ECV (1 << 19)
+#define HWCAP2_AFP (1 << 20)
+#define HWCAP2_RPRES (1 << 21)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
index 014504a..c53ee87 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
@@ -115,6 +115,15 @@
   } exception;
   __u32 reserved[12];
 };
+struct kvm_arm_copy_mte_tags {
+  __u64 guest_ipa;
+  __u64 length;
+  void __user * addr;
+  __u64 flags;
+  __u64 reserved[2];
+};
+#define KVM_ARM_TAGS_TO_GUEST 0
+#define KVM_ARM_TAGS_FROM_GUEST 1
 #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
 #define KVM_REG_ARM_COPROC_SHIFT 16
 #define KVM_REG_ARM_CORE (0x0010 << KVM_REG_ARM_COPROC_SHIFT)
@@ -158,6 +167,10 @@
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL 2
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED 3
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED (1U << 4)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3 KVM_REG_ARM_FW_REG(3)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL 0
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL 1
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED 2
 #define KVM_REG_ARM64_SVE (0x15 << KVM_REG_ARM_COPROC_SHIFT)
 #define KVM_REG_ARM64_SVE_ZREG_BASE 0
 #define KVM_REG_ARM64_SVE_PREG_BASE 0x400
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
index e93f3f1..06b85ed 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
@@ -21,4 +21,5 @@
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
 #define __ARCH_WANT_SYS_CLONE3
+#define __ARCH_WANT_MEMFD_SECRET
 #include <asm-generic/unistd.h>
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
index a088ce5..9440576 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
@@ -60,6 +60,8 @@
 #define MADV_KEEPONFORK 19
 #define MADV_COLD 20
 #define MADV_PAGEOUT 21
+#define MADV_POPULATE_READ 22
+#define MADV_POPULATE_WRITE 23
 #define MAP_FILE 0
 #define PKEY_DISABLE_ACCESS 0x1
 #define PKEY_DISABLE_WRITE 0x2
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
index 8bcbabb..f9199e5 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
@@ -59,9 +59,6 @@
   } _sigchld;
   struct {
     void __user * _addr;
-#ifdef __ARCH_SI_TRAPNO
-    int _trapno;
-#endif
 #ifdef __ia64__
     int _imm;
     unsigned int _flags;
@@ -69,6 +66,7 @@
 #endif
 #define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? sizeof(short) : __alignof__(void *))
     union {
+      int _trapno;
       short _addr_lsb;
       struct {
         char _dummy_bnd[__ADDR_BND_PKEY_PAD];
@@ -79,6 +77,10 @@
         char _dummy_pkey[__ADDR_BND_PKEY_PAD];
         __u32 _pkey;
       } _addr_pkey;
+      struct {
+        unsigned long _data;
+        __u32 _type;
+      } _perf;
     };
   } _sigfault;
   struct {
@@ -116,13 +118,13 @@
 #define si_int _sifields._rt._sigval.sival_int
 #define si_ptr _sifields._rt._sigval.sival_ptr
 #define si_addr _sifields._sigfault._addr
-#ifdef __ARCH_SI_TRAPNO
 #define si_trapno _sifields._sigfault._trapno
-#endif
 #define si_addr_lsb _sifields._sigfault._addr_lsb
 #define si_lower _sifields._sigfault._addr_bnd._lower
 #define si_upper _sifields._sigfault._addr_bnd._upper
 #define si_pkey _sifields._sigfault._addr_pkey._pkey
+#define si_perf_data _sifields._sigfault._perf._data
+#define si_perf_type _sifields._sigfault._perf._type
 #define si_band _sifields._sigpoll._band
 #define si_fd _sifields._sigpoll._fd
 #define si_call_addr _sifields._sigsys._call_addr
@@ -193,7 +195,8 @@
 #define TRAP_BRANCH 3
 #define TRAP_HWBKPT 4
 #define TRAP_UNK 5
-#define NSIGTRAP 5
+#define TRAP_PERF 6
+#define NSIGTRAP 6
 #define CLD_EXITED 1
 #define CLD_KILLED 2
 #define CLD_DUMPED 3
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/socket.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/socket.h
index 7372be8..6767993 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/socket.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/socket.h
@@ -97,6 +97,9 @@
 #define SO_DETACH_REUSEPORT_BPF 68
 #define SO_PREFER_BUSY_POLL 69
 #define SO_BUSY_POLL_BUDGET 70
+#define SO_NETNS_COOKIE 71
+#define SO_BUF_LOCK 72
+#define SO_RESERVE_MEM 73
 #if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
 #define SO_TIMESTAMP SO_TIMESTAMP_OLD
 #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/unistd.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
index 1409701..4b9f174 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
@@ -403,8 +403,18 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#ifdef __ARCH_WANT_MEMFD_SECRET
+#define __NR_memfd_secret 447
+#endif
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #undef __NR_syscalls
-#define __NR_syscalls 443
+#define __NR_syscalls 451
 #if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
 #define __NR_fcntl __NR3264_fcntl
 #define __NR_statfs __NR3264_statfs
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
index 4fd53f0..dd86783 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
@@ -22,5 +22,5 @@
 #define AT_SYSINFO 32
 #endif
 #define AT_SYSINFO_EHDR 33
-#define AT_VECTOR_SIZE_ARCH 2
+#define AT_VECTOR_SIZE_ARCH 3
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
index aeb8b02..360f432 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
@@ -28,6 +28,7 @@
 #define DR_TRAP2 (0x4)
 #define DR_TRAP3 (0x8)
 #define DR_TRAP_BITS (DR_TRAP0 | DR_TRAP1 | DR_TRAP2 | DR_TRAP3)
+#define DR_BUS_LOCK (0x800)
 #define DR_STEP (0x4000)
 #define DR_SWITCH (0x8000)
 #define DR_CONTROL_SHIFT 16
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
index a6dbfb9..9f715c9 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef _ASM_X86_HWCAP2_H
 #define _ASM_X86_HWCAP2_H
-#define HWCAP2_RING3MWAIT (1 << 0)
-#define HWCAP2_FSGSBASE BIT(1)
+#include <linux/const.h>
+#define HWCAP2_RING3MWAIT _BITUL(0)
+#define HWCAP2_FSGSBASE _BITUL(1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
index 0d82c5d..caf8fc0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
@@ -146,6 +146,17 @@
   __u64 apic_base;
   __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64];
 };
+struct kvm_sregs2 {
+  struct kvm_segment cs, ds, es, fs, gs, ss;
+  struct kvm_segment tr, ldt;
+  struct kvm_dtable gdt, idt;
+  __u64 cr0, cr2, cr3, cr4, cr8;
+  __u64 efer;
+  __u64 apic_base;
+  __u64 flags;
+  __u64 pdptrs[4];
+};
+#define KVM_SREGS2_FLAGS_PDPTRS_VALID 1
 struct kvm_fpu {
   __u8 fpr[8][16];
   __u16 fcw;
@@ -246,6 +257,7 @@
 #define KVM_GUESTDBG_USE_HW_BP 0x00020000
 #define KVM_GUESTDBG_INJECT_DB 0x00040000
 #define KVM_GUESTDBG_INJECT_BP 0x00080000
+#define KVM_GUESTDBG_BLOCKIRQ 0x00100000
 struct kvm_guest_debug_arch {
   __u64 debugreg[8];
 };
@@ -310,6 +322,7 @@
 };
 struct kvm_xsave {
   __u32 region[1024];
+  __u32 extra[0];
 };
 #define KVM_MAX_XCRS 16
 struct kvm_xcr {
@@ -349,6 +362,7 @@
 #define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000
 #define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000
 #define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001
+#define KVM_X86_XCOMP_GUEST_SUPP 0
 struct kvm_vmx_nested_state_data {
   __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
   __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
@@ -359,6 +373,7 @@
   struct {
     __u16 flags;
   } smm;
+  __u16 pad;
   __u32 flags;
   __u64 preemption_timer_deadline;
 };
@@ -392,4 +407,6 @@
 };
 #define KVM_PMU_EVENT_ALLOW 0
 #define KVM_PMU_EVENT_DENY 1
+#define KVM_VCPU_TSC_CTRL 0
+#define KVM_VCPU_TSC_OFFSET 0
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
index 091fb27..dd72af0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
@@ -20,6 +20,7 @@
 #define _UAPI_ASM_X86_KVM_PARA_H
 #include <linux/types.h>
 #define KVM_CPUID_SIGNATURE 0x40000000
+#define KVM_SIGNATURE "KVMKVMKVM\0\0\0"
 #define KVM_CPUID_FEATURES 0x40000001
 #define KVM_FEATURE_CLOCKSOURCE 0
 #define KVM_FEATURE_NOP_IO_DELAY 1
@@ -36,6 +37,8 @@
 #define KVM_FEATURE_PV_SCHED_YIELD 13
 #define KVM_FEATURE_ASYNC_PF_INT 14
 #define KVM_FEATURE_MSI_EXT_DEST_ID 15
+#define KVM_FEATURE_HC_MAP_GPA_RANGE 16
+#define KVM_FEATURE_MIGRATION_CONTROL 17
 #define KVM_HINTS_REALTIME 0
 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24
 #define MSR_KVM_WALL_CLOCK 0x11
@@ -49,6 +52,7 @@
 #define MSR_KVM_POLL_CONTROL 0x4b564d05
 #define MSR_KVM_ASYNC_PF_INT 0x4b564d06
 #define MSR_KVM_ASYNC_PF_ACK 0x4b564d07
+#define MSR_KVM_MIGRATION_CONTROL 0x4b564d08
 struct kvm_steal_time {
   __u64 steal;
   __u32 version;
@@ -76,6 +80,13 @@
 #define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2)
 #define KVM_ASYNC_PF_DELIVERY_AS_INT (1 << 3)
 #define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0)
+#define KVM_MIGRATION_READY (1 << 0)
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_4K 0
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_2M (1 << 0)
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_1G (1 << 1)
+#define KVM_MAP_GPA_RANGE_ENC_STAT(n) (n << 4)
+#define KVM_MAP_GPA_RANGE_ENCRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(1)
+#define KVM_MAP_GPA_RANGE_DECRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(0)
 #define KVM_MMU_OP_WRITE_PTE 1
 #define KVM_MMU_OP_FLUSH_TLB 2
 #define KVM_MMU_OP_RELEASE_PT 3
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
index 0e6bed9..c5ba2d6 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
@@ -24,6 +24,11 @@
 #define ARCH_GET_GS 0x1004
 #define ARCH_GET_CPUID 0x1011
 #define ARCH_SET_CPUID 0x1012
+#define ARCH_GET_XCOMP_SUPP 0x1021
+#define ARCH_GET_XCOMP_PERM 0x1022
+#define ARCH_REQ_XCOMP_PERM 0x1023
+#define ARCH_GET_XCOMP_GUEST_PERM 0x1024
+#define ARCH_REQ_XCOMP_GUEST_PERM 0x1025
 #define ARCH_MAP_VDSO_X32 0x2001
 #define ARCH_MAP_VDSO_32 0x2002
 #define ARCH_MAP_VDSO_64 0x2003
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
index 349791a..1874b78 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
@@ -28,6 +28,7 @@
 #define SGX_IOC_ENCLAVE_ADD_PAGES _IOWR(SGX_MAGIC, 0x01, struct sgx_enclave_add_pages)
 #define SGX_IOC_ENCLAVE_INIT _IOW(SGX_MAGIC, 0x02, struct sgx_enclave_init)
 #define SGX_IOC_ENCLAVE_PROVISION _IOW(SGX_MAGIC, 0x03, struct sgx_enclave_provision)
+#define SGX_IOC_VEPC_REMOVE_ALL _IO(SGX_MAGIC, 0x04)
 struct sgx_enclave_create {
   __u64 src;
 };
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
index db9918b..d051481 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
@@ -123,6 +123,7 @@
 #define SVM_VMGEXIT_SET_AP_JUMP_TABLE 0
 #define SVM_VMGEXIT_GET_AP_JUMP_TABLE 1
 #define SVM_VMGEXIT_UNSUPPORTED_EVENT 0x8000ffff
+#define SVM_EXIT_SW 0xf0000000
 #define SVM_EXIT_ERR - 1
 #define SVM_EXIT_REASONS { SVM_EXIT_READ_CR0, "read_cr0" }, { SVM_EXIT_READ_CR2, "read_cr2" }, { SVM_EXIT_READ_CR3, "read_cr3" }, { SVM_EXIT_READ_CR4, "read_cr4" }, { SVM_EXIT_READ_CR8, "read_cr8" }, { SVM_EXIT_WRITE_CR0, "write_cr0" }, { SVM_EXIT_WRITE_CR2, "write_cr2" }, { SVM_EXIT_WRITE_CR3, "write_cr3" }, { SVM_EXIT_WRITE_CR4, "write_cr4" }, { SVM_EXIT_WRITE_CR8, "write_cr8" }, { SVM_EXIT_READ_DR0, "read_dr0" }, { SVM_EXIT_READ_DR1, "read_dr1" }, { SVM_EXIT_READ_DR2, "read_dr2" }, { SVM_EXIT_READ_DR3, "read_dr3" }, { SVM_EXIT_READ_DR4, "read_dr4" }, { SVM_EXIT_READ_DR5, "read_dr5" }, { SVM_EXIT_READ_DR6, "read_dr6" }, { SVM_EXIT_READ_DR7, "read_dr7" }, { SVM_EXIT_WRITE_DR0, "write_dr0" }, { SVM_EXIT_WRITE_DR1, "write_dr1" }, { SVM_EXIT_WRITE_DR2, "write_dr2" }, { SVM_EXIT_WRITE_DR3, "write_dr3" }, { SVM_EXIT_WRITE_DR4, "write_dr4" }, { SVM_EXIT_WRITE_DR5, "write_dr5" }, { SVM_EXIT_WRITE_DR6, "write_dr6" }, { SVM_EXIT_WRITE_DR7, "write_dr7" }, { SVM_EXIT_EXCP_BASE + DE_VECTOR, "DE excp" }, { SVM_EXIT_EXCP_BASE + DB_VECTOR, "DB excp" }, { SVM_EXIT_EXCP_BASE + BP_VECTOR, "BP excp" }, { SVM_EXIT_EXCP_BASE + OF_VECTOR, "OF excp" }, { SVM_EXIT_EXCP_BASE + BR_VECTOR, "BR excp" }, { SVM_EXIT_EXCP_BASE + UD_VECTOR, "UD excp" }, { SVM_EXIT_EXCP_BASE + NM_VECTOR, "NM excp" }, { SVM_EXIT_EXCP_BASE + DF_VECTOR, "DF excp" }, { SVM_EXIT_EXCP_BASE + TS_VECTOR, "TS excp" }, { SVM_EXIT_EXCP_BASE + NP_VECTOR, "NP excp" }, { SVM_EXIT_EXCP_BASE + SS_VECTOR, "SS excp" }, { SVM_EXIT_EXCP_BASE + GP_VECTOR, "GP excp" }, { SVM_EXIT_EXCP_BASE + PF_VECTOR, "PF excp" }, { SVM_EXIT_EXCP_BASE + MF_VECTOR, "MF excp" }, { SVM_EXIT_EXCP_BASE + AC_VECTOR, "AC excp" }, { SVM_EXIT_EXCP_BASE + MC_VECTOR, "MC excp" }, { SVM_EXIT_EXCP_BASE + XM_VECTOR, "XF excp" }, { SVM_EXIT_INTR, "interrupt" }, { SVM_EXIT_NMI, "nmi" }, { SVM_EXIT_SMI, "smi" }, { SVM_EXIT_INIT, "init" }, { SVM_EXIT_VINTR, "vintr" }, { SVM_EXIT_CR0_SEL_WRITE, "cr0_sel_write" }, { SVM_EXIT_IDTR_READ, "read_idtr" }, { SVM_EXIT_GDTR_READ, "read_gdtr" }, { SVM_EXIT_LDTR_READ, "read_ldtr" }, { SVM_EXIT_TR_READ, "read_rt" }, { SVM_EXIT_IDTR_WRITE, "write_idtr" }, { SVM_EXIT_GDTR_WRITE, "write_gdtr" }, { SVM_EXIT_LDTR_WRITE, "write_ldtr" }, { SVM_EXIT_TR_WRITE, "write_rt" }, { SVM_EXIT_RDTSC, "rdtsc" }, { SVM_EXIT_RDPMC, "rdpmc" }, { SVM_EXIT_PUSHF, "pushf" }, { SVM_EXIT_POPF, "popf" }, { SVM_EXIT_CPUID, "cpuid" }, { SVM_EXIT_RSM, "rsm" }, { SVM_EXIT_IRET, "iret" }, { SVM_EXIT_SWINT, "swint" }, { SVM_EXIT_INVD, "invd" }, { SVM_EXIT_PAUSE, "pause" }, { SVM_EXIT_HLT, "hlt" }, { SVM_EXIT_INVLPG, "invlpg" }, { SVM_EXIT_INVLPGA, "invlpga" }, { SVM_EXIT_IOIO, "io" }, { SVM_EXIT_MSR, "msr" }, { SVM_EXIT_TASK_SWITCH, "task_switch" }, { SVM_EXIT_FERR_FREEZE, "ferr_freeze" }, { SVM_EXIT_SHUTDOWN, "shutdown" }, { SVM_EXIT_VMRUN, "vmrun" }, { SVM_EXIT_VMMCALL, "hypercall" }, { SVM_EXIT_VMLOAD, "vmload" }, { SVM_EXIT_VMSAVE, "vmsave" }, { SVM_EXIT_STGI, "stgi" }, { SVM_EXIT_CLGI, "clgi" }, { SVM_EXIT_SKINIT, "skinit" }, { SVM_EXIT_RDTSCP, "rdtscp" }, { SVM_EXIT_ICEBP, "icebp" }, { SVM_EXIT_WBINVD, "wbinvd" }, { SVM_EXIT_MONITOR, "monitor" }, { SVM_EXIT_MWAIT, "mwait" }, { SVM_EXIT_XSETBV, "xsetbv" }, { SVM_EXIT_EFER_WRITE_TRAP, "write_efer_trap" }, { SVM_EXIT_CR0_WRITE_TRAP, "write_cr0_trap" }, { SVM_EXIT_CR4_WRITE_TRAP, "write_cr4_trap" }, { SVM_EXIT_CR8_WRITE_TRAP, "write_cr8_trap" }, { SVM_EXIT_INVPCID, "invpcid" }, { SVM_EXIT_NPF, "npf" }, { SVM_EXIT_AVIC_INCOMPLETE_IPI, "avic_incomplete_ipi" }, { SVM_EXIT_AVIC_UNACCELERATED_ACCESS, "avic_unaccelerated_access" }, { SVM_EXIT_VMGEXIT, "vmgexit" }, { SVM_VMGEXIT_MMIO_READ, "vmgexit_mmio_read" }, { SVM_VMGEXIT_MMIO_WRITE, "vmgexit_mmio_write" }, { SVM_VMGEXIT_NMI_COMPLETE, "vmgexit_nmi_complete" }, { SVM_VMGEXIT_AP_HLT_LOOP, "vmgexit_ap_hlt_loop" }, { SVM_VMGEXIT_AP_JUMP_TABLE, "vmgexit_ap_jump_table" }, { SVM_EXIT_ERR, "invalid_guest_state" }
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
index 7fe2421..8e57516 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_32_H
-#define _ASM_X86_UNISTD_32_H 1
+#ifndef _UAPI_ASM_UNISTD_32_H
+#define _UAPI_ASM_UNISTD_32_H
 #define __NR_restart_syscall 0
 #define __NR_exit 1
 #define __NR_fork 2
@@ -450,4 +450,12 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
index 7e3c924..54ff16f 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_64_H
-#define _ASM_X86_UNISTD_64_H 1
+#ifndef _UAPI_ASM_UNISTD_64_H
+#define _UAPI_ASM_UNISTD_64_H
 #define __NR_read 0
 #define __NR_write 1
 #define __NR_open 2
@@ -372,4 +372,12 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
index 529ded3..1e05d75 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_X32_H
-#define _ASM_X86_UNISTD_X32_H 1
+#ifndef _UAPI_ASM_UNISTD_X32_H
+#define _UAPI_ASM_UNISTD_X32_H
 #define __NR_read (__X32_SYSCALL_BIT + 0)
 #define __NR_write (__X32_SYSCALL_BIT + 1)
 #define __NR_open (__X32_SYSCALL_BIT + 2)
@@ -325,6 +325,14 @@
 #define __NR_process_madvise (__X32_SYSCALL_BIT + 440)
 #define __NR_epoll_pwait2 (__X32_SYSCALL_BIT + 441)
 #define __NR_mount_setattr (__X32_SYSCALL_BIT + 442)
+#define __NR_quotactl_fd (__X32_SYSCALL_BIT + 443)
+#define __NR_landlock_create_ruleset (__X32_SYSCALL_BIT + 444)
+#define __NR_landlock_add_rule (__X32_SYSCALL_BIT + 445)
+#define __NR_landlock_restrict_self (__X32_SYSCALL_BIT + 446)
+#define __NR_memfd_secret (__X32_SYSCALL_BIT + 447)
+#define __NR_process_mrelease (__X32_SYSCALL_BIT + 448)
+#define __NR_futex_waitv (__X32_SYSCALL_BIT + 449)
+#define __NR_set_mempolicy_home_node (__X32_SYSCALL_BIT + 450)
 #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
 #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
 #define __NR_ioctl (__X32_SYSCALL_BIT + 514)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
index 1771faa..6c07d4c 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
@@ -19,6 +19,7 @@
 #ifndef _UAPIVMX_H
 #define _UAPIVMX_H
 #define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000
+#define VMX_EXIT_REASONS_SGX_ENCLAVE_MODE 0x08000000
 #define EXIT_REASON_EXCEPTION_NMI 0
 #define EXIT_REASON_EXTERNAL_INTERRUPT 1
 #define EXIT_REASON_TRIPLE_FAULT 2
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
index f8eb023..3764d51 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
@@ -65,13 +65,13 @@
 #define AMDGPU_GEM_CREATE_NO_CPU_ACCESS (1 << 1)
 #define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2)
 #define AMDGPU_GEM_CREATE_VRAM_CLEARED (1 << 3)
-#define AMDGPU_GEM_CREATE_SHADOW (1 << 4)
 #define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5)
 #define AMDGPU_GEM_CREATE_VM_ALWAYS_VALID (1 << 6)
 #define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7)
 #define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8)
 #define AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE (1 << 9)
 #define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10)
+#define AMDGPU_GEM_CREATE_PREEMPTIBLE (1 << 11)
 struct drm_amdgpu_gem_create_in {
   __u64 bo_size;
   __u64 alignment;
@@ -452,6 +452,7 @@
 #define AMDGPU_INFO_VBIOS 0x1B
 #define AMDGPU_INFO_VBIOS_SIZE 0x1
 #define AMDGPU_INFO_VBIOS_IMAGE 0x2
+#define AMDGPU_INFO_VBIOS_INFO 0x3
 #define AMDGPU_INFO_NUM_HANDLES 0x1C
 #define AMDGPU_INFO_SENSOR 0x1D
 #define AMDGPU_INFO_SENSOR_GFX_SCLK 0x1
@@ -480,6 +481,9 @@
 #define AMDGPU_INFO_RAS_ENABLED_MP0 (1 << 11)
 #define AMDGPU_INFO_RAS_ENABLED_MP1 (1 << 12)
 #define AMDGPU_INFO_RAS_ENABLED_FUSE (1 << 13)
+#define AMDGPU_INFO_VIDEO_CAPS 0x21
+#define AMDGPU_INFO_VIDEO_CAPS_DECODE 0
+#define AMDGPU_INFO_VIDEO_CAPS_ENCODE 1
 #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
 #define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
 #define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8
@@ -517,6 +521,9 @@
     struct {
       __u32 type;
     } sensor_info;
+    struct {
+      __u32 type;
+    } video_cap;
   };
 };
 struct drm_amdgpu_info_gds {
@@ -549,6 +556,14 @@
   __u32 ver;
   __u32 feature;
 };
+struct drm_amdgpu_info_vbios {
+  __u8 name[64];
+  __u8 vbios_pn[64];
+  __u32 version;
+  __u32 pad;
+  __u8 vbios_ver_str[32];
+  __u8 date[32];
+};
 #define AMDGPU_VRAM_TYPE_UNKNOWN 0
 #define AMDGPU_VRAM_TYPE_GDDR1 1
 #define AMDGPU_VRAM_TYPE_DDR2 2
@@ -636,6 +651,26 @@
   __u32 num_valid_entries;
   __u32 pad;
 };
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2 0
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4 1
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1 2
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC 3
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC 4
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG 5
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9 6
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_AV1 7
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT 8
+struct drm_amdgpu_info_video_codec_info {
+  __u32 valid;
+  __u32 max_width;
+  __u32 max_height;
+  __u32 max_pixels_per_frame;
+  __u32 max_level;
+  __u32 pad;
+};
+struct drm_amdgpu_info_video_caps {
+  struct drm_amdgpu_info_video_codec_info codec_info[AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT];
+};
 #define AMDGPU_FAMILY_UNKNOWN 0
 #define AMDGPU_FAMILY_SI 110
 #define AMDGPU_FAMILY_CI 120
@@ -646,6 +681,7 @@
 #define AMDGPU_FAMILY_RV 142
 #define AMDGPU_FAMILY_NV 143
 #define AMDGPU_FAMILY_VGH 144
+#define AMDGPU_FAMILY_YC 146
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
index 4574c1c..e845c8c 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
@@ -27,6 +27,8 @@
 #define DRM_FORMAT_INVALID 0
 #define DRM_FORMAT_C8 fourcc_code('C', '8', ' ', ' ')
 #define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ')
+#define DRM_FORMAT_R10 fourcc_code('R', '1', '0', ' ')
+#define DRM_FORMAT_R12 fourcc_code('R', '1', '2', ' ')
 #define DRM_FORMAT_R16 fourcc_code('R', '1', '6', ' ')
 #define DRM_FORMAT_RG88 fourcc_code('R', 'G', '8', '8')
 #define DRM_FORMAT_GR88 fourcc_code('G', 'R', '8', '8')
@@ -70,6 +72,10 @@
 #define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0')
 #define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0')
 #define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0')
+#define DRM_FORMAT_XRGB16161616 fourcc_code('X', 'R', '4', '8')
+#define DRM_FORMAT_XBGR16161616 fourcc_code('X', 'B', '4', '8')
+#define DRM_FORMAT_ARGB16161616 fourcc_code('A', 'R', '4', '8')
+#define DRM_FORMAT_ABGR16161616 fourcc_code('A', 'B', '4', '8')
 #define DRM_FORMAT_XRGB16161616F fourcc_code('X', 'R', '4', 'H')
 #define DRM_FORMAT_XBGR16161616F fourcc_code('X', 'B', '4', 'H')
 #define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H')
@@ -117,6 +123,7 @@
 #define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0')
 #define DRM_FORMAT_P012 fourcc_code('P', '0', '1', '2')
 #define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6')
+#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0')
 #define DRM_FORMAT_Q410 fourcc_code('Q', '4', '1', '0')
 #define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1')
 #define DRM_FORMAT_YUV410 fourcc_code('Y', 'U', 'V', '9')
@@ -141,6 +148,8 @@
 #define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
 #define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
 #define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
+#define fourcc_mod_get_vendor(modifier) (((modifier) >> 56) & 0xff)
+#define fourcc_mod_is_vendor(modifier,vendor) (fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_ ##vendor)
 #define fourcc_mod_code(vendor,val) ((((__u64) DRM_FORMAT_MOD_VENDOR_ ##vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
 #define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE
 #define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
@@ -203,6 +212,15 @@
 #define AFBC_FORMAT_MOD_DB (1ULL << 10)
 #define AFBC_FORMAT_MOD_BCH (1ULL << 11)
 #define AFBC_FORMAT_MOD_USM (1ULL << 12)
+#define DRM_FORMAT_MOD_ARM_TYPE_AFRC 0x02
+#define DRM_FORMAT_MOD_ARM_AFRC(__afrc_mode) DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFRC, __afrc_mode)
+#define AFRC_FORMAT_MOD_CU_SIZE_MASK 0xf
+#define AFRC_FORMAT_MOD_CU_SIZE_16 (1ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_24 (2ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_32 (3ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_P0(__afrc_cu_size) (__afrc_cu_size)
+#define AFRC_FORMAT_MOD_CU_SIZE_P12(__afrc_cu_size) ((__afrc_cu_size) << 4)
+#define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8)
 #define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
 #define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1)
 #define __fourcc_mod_amlogic_layout_mask 0xff
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/drm_mode.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/drm_mode.h
index 643ae98..9a6a6d9 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/drm_mode.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/drm_mode.h
@@ -223,6 +223,7 @@
 #define DRM_MODE_CONNECTOR_DPI 17
 #define DRM_MODE_CONNECTOR_WRITEBACK 18
 #define DRM_MODE_CONNECTOR_SPI 19
+#define DRM_MODE_CONNECTOR_USB 20
 struct drm_mode_get_connector {
   __u64 encoders_ptr;
   __u64 modes_ptr;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
index c92d110..7f8d5fa 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
@@ -53,6 +53,9 @@
 #define ETNAVIV_PARAM_GPU_NUM_CONSTANTS 0x19
 #define ETNAVIV_PARAM_GPU_NUM_VARYINGS 0x1a
 #define ETNAVIV_PARAM_SOFTPIN_START_ADDR 0x1b
+#define ETNAVIV_PARAM_GPU_PRODUCT_ID 0x1c
+#define ETNAVIV_PARAM_GPU_CUSTOMER_ID 0x1d
+#define ETNAVIV_PARAM_GPU_ECO_ID 0x1e
 #define ETNA_MAX_PIPES 4
 struct drm_etnaviv_param {
   __u32 pipe;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/i915_drm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/i915_drm.h
index f265d92..52bfad2 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/i915_drm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/i915_drm.h
@@ -217,6 +217,7 @@
 #define DRM_I915_QUERY 0x39
 #define DRM_I915_GEM_VM_CREATE 0x3a
 #define DRM_I915_GEM_VM_DESTROY 0x3b
+#define DRM_I915_GEM_CREATE_EXT 0x3c
 #define DRM_IOCTL_I915_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
 #define DRM_IOCTL_I915_FLUSH DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLUSH)
 #define DRM_IOCTL_I915_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLIP)
@@ -247,6 +248,7 @@
 #define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
 #define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
 #define DRM_IOCTL_I915_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create)
+#define DRM_IOCTL_I915_GEM_CREATE_EXT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE_EXT, struct drm_i915_gem_create_ext)
 #define DRM_IOCTL_I915_GEM_PREAD DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
 #define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
 #define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
@@ -349,6 +351,7 @@
 #define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2)
 #define I915_SCHEDULER_CAP_SEMAPHORES (1ul << 3)
 #define I915_SCHEDULER_CAP_ENGINE_BUSY_STATS (1ul << 4)
+#define I915_SCHEDULER_CAP_STATIC_PRIORITY_MAP (1ul << 5)
 #define I915_PARAM_HUC_STATUS 42
 #define I915_PARAM_HAS_EXEC_ASYNC 43
 #define I915_PARAM_HAS_EXEC_FENCE 44
@@ -363,6 +366,7 @@
 #define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
 #define I915_PARAM_PERF_REVISION 54
 #define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55
+#define I915_PARAM_HAS_USERPTR_PROBE 56
 typedef struct drm_i915_getparam {
   __s32 param;
   int __user * value;
@@ -453,6 +457,7 @@
 #define I915_MMAP_OFFSET_WC 1
 #define I915_MMAP_OFFSET_WB 2
 #define I915_MMAP_OFFSET_UC 3
+#define I915_MMAP_OFFSET_FIXED 4
   __u64 extensions;
 };
 struct drm_i915_gem_set_domain {
@@ -590,11 +595,11 @@
   __u32 handle;
   __u32 busy;
 };
+struct drm_i915_gem_caching {
+  __u32 handle;
 #define I915_CACHING_NONE 0
 #define I915_CACHING_CACHED 1
 #define I915_CACHING_DISPLAY 2
-struct drm_i915_gem_caching {
-  __u32 handle;
   __u32 caching;
 };
 #define I915_TILING_NONE 0
@@ -736,6 +741,7 @@
 #define I915_CONTEXT_PARAM_ENGINES 0xa
 #define I915_CONTEXT_PARAM_PERSISTENCE 0xb
 #define I915_CONTEXT_PARAM_RINGSIZE 0xc
+#define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd
   __u64 value;
 };
 struct drm_i915_gem_context_param_sseu {
@@ -769,10 +775,23 @@
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__,N__) struct { struct i915_user_extension base; struct i915_engine_class_instance master; __u16 virtual_index; __u16 num_bonds; __u64 flags; __u64 mbz64[4]; struct i915_engine_class_instance engines[N__]; \
 } __attribute__((packed)) name__
+struct i915_context_engines_parallel_submit {
+  struct i915_user_extension base;
+  __u16 engine_index;
+  __u16 width;
+  __u16 num_siblings;
+  __u16 mbz16;
+  __u64 flags;
+  __u64 mbz64[3];
+  struct i915_engine_class_instance engines[0];
+} __packed;
+#define I915_DEFINE_CONTEXT_ENGINES_PARALLEL_SUBMIT(name__,N__) struct { struct i915_user_extension base; __u16 engine_index; __u16 width; __u16 num_siblings; __u16 mbz16; __u64 flags; __u64 mbz64[3]; struct i915_engine_class_instance engines[N__]; \
+} __attribute__((packed)) name__
 struct i915_context_param_engines {
   __u64 extensions;
 #define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0
 #define I915_CONTEXT_ENGINES_EXT_BOND 1
+#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2
   struct i915_engine_class_instance engines[0];
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_PARAM_ENGINES(name__,N__) struct { __u64 extensions; struct i915_engine_class_instance engines[N__]; \
@@ -782,20 +801,7 @@
   struct i915_user_extension base;
   struct drm_i915_gem_context_param param;
 };
-struct drm_i915_gem_context_create_ext_clone {
 #define I915_CONTEXT_CREATE_EXT_CLONE 1
-  struct i915_user_extension base;
-  __u32 clone_id;
-  __u32 flags;
-#define I915_CONTEXT_CLONE_ENGINES (1u << 0)
-#define I915_CONTEXT_CLONE_FLAGS (1u << 1)
-#define I915_CONTEXT_CLONE_SCHEDATTR (1u << 2)
-#define I915_CONTEXT_CLONE_SSEU (1u << 3)
-#define I915_CONTEXT_CLONE_TIMELINE (1u << 4)
-#define I915_CONTEXT_CLONE_VM (1u << 5)
-#define I915_CONTEXT_CLONE_UNKNOWN - (I915_CONTEXT_CLONE_VM << 1)
-  __u64 rsvd;
-};
 struct drm_i915_gem_context_destroy {
   __u32 ctx_id;
   __u32 pad;
@@ -823,6 +829,7 @@
   __u64 user_size;
   __u32 flags;
 #define I915_USERPTR_READ_ONLY 0x1
+#define I915_USERPTR_PROBE 0x2
 #define I915_USERPTR_UNSYNCHRONIZED 0x80000000
   __u32 handle;
 };
@@ -886,6 +893,7 @@
 #define DRM_I915_QUERY_TOPOLOGY_INFO 1
 #define DRM_I915_QUERY_ENGINE_INFO 2
 #define DRM_I915_QUERY_PERF_CONFIG 3
+#define DRM_I915_QUERY_MEMORY_REGIONS 4
   __s32 length;
   __u32 flags;
 #define DRM_I915_QUERY_PERF_CONFIG_LIST 1
@@ -913,10 +921,13 @@
   struct i915_engine_class_instance engine;
   __u32 rsvd0;
   __u64 flags;
+#define I915_ENGINE_INFO_HAS_LOGICAL_INSTANCE (1 << 0)
   __u64 capabilities;
 #define I915_VIDEO_CLASS_CAPABILITY_HEVC (1 << 0)
 #define I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC (1 << 1)
-  __u64 rsvd1[4];
+  __u16 logical_instance;
+  __u16 rsvd1[3];
+  __u64 rsvd2[3];
 };
 struct drm_i915_query_engine_info {
   __u32 num_engines;
@@ -932,6 +943,45 @@
   __u32 flags;
   __u8 data[];
 };
+enum drm_i915_gem_memory_class {
+  I915_MEMORY_CLASS_SYSTEM = 0,
+  I915_MEMORY_CLASS_DEVICE,
+};
+struct drm_i915_gem_memory_class_instance {
+  __u16 memory_class;
+  __u16 memory_instance;
+};
+struct drm_i915_memory_region_info {
+  struct drm_i915_gem_memory_class_instance region;
+  __u32 rsvd0;
+  __u64 probed_size;
+  __u64 unallocated_size;
+  __u64 rsvd1[8];
+};
+struct drm_i915_query_memory_regions {
+  __u32 num_regions;
+  __u32 rsvd[3];
+  struct drm_i915_memory_region_info regions[];
+};
+struct drm_i915_gem_create_ext {
+  __u64 size;
+  __u32 handle;
+  __u32 flags;
+#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0
+#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1
+  __u64 extensions;
+};
+struct drm_i915_gem_create_ext_memory_regions {
+  struct i915_user_extension base;
+  __u32 pad;
+  __u32 num_regions;
+  __u64 regions;
+};
+struct drm_i915_gem_create_ext_protected_content {
+  struct i915_user_extension base;
+  __u32 flags;
+};
+#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/mga_drm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/mga_drm.h
index 4959502..dc62961 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/mga_drm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/mga_drm.h
@@ -175,7 +175,7 @@
     MGA_CLEANUP_DMA = 0x02
   } func;
   unsigned long sarea_priv_offset;
-  int chipset;
+  __struct_group(, always32bit,, int chipset;
   int sgram;
   unsigned int maccess;
   unsigned int fb_cpp;
@@ -185,6 +185,7 @@
   unsigned int depth_offset, depth_pitch;
   unsigned int texture_offset[MGA_NR_TEX_HEAPS];
   unsigned int texture_size[MGA_NR_TEX_HEAPS];
+ );
   unsigned long fb_offset;
   unsigned long mmio_offset;
   unsigned long status_offset;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/msm_drm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/msm_drm.h
index fcfcc20..b4ba1d0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/msm_drm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/msm_drm.h
@@ -39,9 +39,11 @@
 #define MSM_PARAM_MAX_FREQ 0x04
 #define MSM_PARAM_TIMESTAMP 0x05
 #define MSM_PARAM_GMEM_BASE 0x06
-#define MSM_PARAM_NR_RINGS 0x07
+#define MSM_PARAM_PRIORITIES 0x07
 #define MSM_PARAM_PP_PGTABLE 0x08
 #define MSM_PARAM_FAULTS 0x09
+#define MSM_PARAM_SUSPENDS 0x0a
+#define MSM_PARAM_NR_RINGS MSM_PARAM_PRIORITIES
 struct drm_msm_param {
   __u32 pipe;
   __u32 param;
@@ -53,7 +55,8 @@
 #define MSM_BO_CACHED 0x00010000
 #define MSM_BO_WC 0x00020000
 #define MSM_BO_UNCACHED 0x00040000
-#define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHED | MSM_BO_WC | MSM_BO_UNCACHED)
+#define MSM_BO_CACHED_COHERENT 0x080000
+#define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHE_MASK)
 struct drm_msm_gem_new {
   __u64 size;
   __u32 flags;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
index f8b8aa1..1f4473d 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
@@ -110,6 +110,7 @@
   DRM_PANFROST_PARAM_JS_FEATURES15,
   DRM_PANFROST_PARAM_NR_CORE_GROUPS,
   DRM_PANFROST_PARAM_THREAD_TLS_ALLOC,
+  DRM_PANFROST_PARAM_AFBC_FEATURES,
 };
 struct drm_panfrost_get_param {
   __u32 param;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/tegra_drm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
index 5244a27..5e90635 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
@@ -163,6 +163,104 @@
 #define DRM_IOCTL_TEGRA_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_TILING, struct drm_tegra_gem_get_tiling)
 #define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags)
 #define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags)
+#define DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT (1 << 0)
+struct drm_tegra_channel_open {
+  __u32 host1x_class;
+  __u32 flags;
+  __u32 context;
+  __u32 version;
+  __u32 capabilities;
+  __u32 padding;
+};
+struct drm_tegra_channel_close {
+  __u32 context;
+  __u32 padding;
+};
+#define DRM_TEGRA_CHANNEL_MAP_READ (1 << 0)
+#define DRM_TEGRA_CHANNEL_MAP_WRITE (1 << 1)
+#define DRM_TEGRA_CHANNEL_MAP_READ_WRITE (DRM_TEGRA_CHANNEL_MAP_READ | DRM_TEGRA_CHANNEL_MAP_WRITE)
+struct drm_tegra_channel_map {
+  __u32 context;
+  __u32 handle;
+  __u32 flags;
+  __u32 mapping;
+};
+struct drm_tegra_channel_unmap {
+  __u32 context;
+  __u32 mapping;
+};
+#define DRM_TEGRA_SUBMIT_RELOC_SECTOR_LAYOUT (1 << 0)
+struct drm_tegra_submit_buf {
+  __u32 mapping;
+  __u32 flags;
+  struct {
+    __u64 target_offset;
+    __u32 gather_offset_words;
+    __u32 shift;
+  } reloc;
+};
+#define DRM_TEGRA_SUBMIT_CMD_GATHER_UPTR 0
+#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT 1
+#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT_RELATIVE 2
+struct drm_tegra_submit_cmd_gather_uptr {
+  __u32 words;
+  __u32 reserved[3];
+};
+struct drm_tegra_submit_cmd_wait_syncpt {
+  __u32 id;
+  __u32 value;
+  __u32 reserved[2];
+};
+struct drm_tegra_submit_cmd {
+  __u32 type;
+  __u32 flags;
+  union {
+    struct drm_tegra_submit_cmd_gather_uptr gather_uptr;
+    struct drm_tegra_submit_cmd_wait_syncpt wait_syncpt;
+    __u32 reserved[4];
+  };
+};
+struct drm_tegra_submit_syncpt {
+  __u32 id;
+  __u32 flags;
+  __u32 increments;
+  __u32 value;
+};
+struct drm_tegra_channel_submit {
+  __u32 context;
+  __u32 num_bufs;
+  __u32 num_cmds;
+  __u32 gather_data_words;
+  __u64 bufs_ptr;
+  __u64 cmds_ptr;
+  __u64 gather_data_ptr;
+  __u32 syncobj_in;
+  __u32 syncobj_out;
+  struct drm_tegra_submit_syncpt syncpt;
+};
+struct drm_tegra_syncpoint_allocate {
+  __u32 id;
+  __u32 padding;
+};
+struct drm_tegra_syncpoint_free {
+  __u32 id;
+  __u32 padding;
+};
+struct drm_tegra_syncpoint_wait {
+  __s64 timeout_ns;
+  __u32 id;
+  __u32 threshold;
+  __u32 value;
+  __u32 padding;
+};
+#define DRM_IOCTL_TEGRA_CHANNEL_OPEN DRM_IOWR(DRM_COMMAND_BASE + 0x10, struct drm_tegra_channel_open)
+#define DRM_IOCTL_TEGRA_CHANNEL_CLOSE DRM_IOWR(DRM_COMMAND_BASE + 0x11, struct drm_tegra_channel_close)
+#define DRM_IOCTL_TEGRA_CHANNEL_MAP DRM_IOWR(DRM_COMMAND_BASE + 0x12, struct drm_tegra_channel_map)
+#define DRM_IOCTL_TEGRA_CHANNEL_UNMAP DRM_IOWR(DRM_COMMAND_BASE + 0x13, struct drm_tegra_channel_unmap)
+#define DRM_IOCTL_TEGRA_CHANNEL_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + 0x14, struct drm_tegra_channel_submit)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_ALLOCATE DRM_IOWR(DRM_COMMAND_BASE + 0x20, struct drm_tegra_syncpoint_allocate)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_FREE DRM_IOWR(DRM_COMMAND_BASE + 0x21, struct drm_tegra_syncpoint_free)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_WAIT DRM_IOWR(DRM_COMMAND_BASE + 0x22, struct drm_tegra_syncpoint_wait)
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/v3d_drm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
index cdc2cf5..5887678 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
@@ -30,6 +30,9 @@
 #define DRM_V3D_GET_BO_OFFSET 0x05
 #define DRM_V3D_SUBMIT_TFU 0x06
 #define DRM_V3D_SUBMIT_CSD 0x07
+#define DRM_V3D_PERFMON_CREATE 0x08
+#define DRM_V3D_PERFMON_DESTROY 0x09
+#define DRM_V3D_PERFMON_GET_VALUES 0x0a
 #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
 #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo)
 #define DRM_IOCTL_V3D_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_CREATE_BO, struct drm_v3d_create_bo)
@@ -38,7 +41,39 @@
 #define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset)
 #define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu)
 #define DRM_IOCTL_V3D_SUBMIT_CSD DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd)
+#define DRM_IOCTL_V3D_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_CREATE, struct drm_v3d_perfmon_create)
+#define DRM_IOCTL_V3D_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_DESTROY, struct drm_v3d_perfmon_destroy)
+#define DRM_IOCTL_V3D_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_VALUES, struct drm_v3d_perfmon_get_values)
 #define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01
+#define DRM_V3D_SUBMIT_EXTENSION 0x02
+struct drm_v3d_extension {
+  __u64 next;
+  __u32 id;
+#define DRM_V3D_EXT_ID_MULTI_SYNC 0x01
+  __u32 flags;
+};
+struct drm_v3d_sem {
+  __u32 handle;
+  __u32 flags;
+  __u64 point;
+  __u64 mbz[2];
+};
+enum v3d_queue {
+  V3D_BIN,
+  V3D_RENDER,
+  V3D_TFU,
+  V3D_CSD,
+  V3D_CACHE_CLEAN,
+};
+struct drm_v3d_multi_sync {
+  struct drm_v3d_extension base;
+  __u64 in_syncs;
+  __u64 out_syncs;
+  __u32 in_sync_count;
+  __u32 out_sync_count;
+  __u32 wait_stage;
+  __u32 pad;
+};
 struct drm_v3d_submit_cl {
   __u32 bcl_start;
   __u32 bcl_end;
@@ -53,6 +88,9 @@
   __u64 bo_handles;
   __u32 bo_handle_count;
   __u32 flags;
+  __u32 perfmon_id;
+  __u32 pad;
+  __u64 extensions;
 };
 struct drm_v3d_wait_bo {
   __u32 handle;
@@ -81,6 +119,8 @@
   DRM_V3D_PARAM_SUPPORTS_TFU,
   DRM_V3D_PARAM_SUPPORTS_CSD,
   DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH,
+  DRM_V3D_PARAM_SUPPORTS_PERFMON,
+  DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT,
 };
 struct drm_v3d_get_param {
   __u32 param;
@@ -103,6 +143,8 @@
   __u32 bo_handles[4];
   __u32 in_sync;
   __u32 out_sync;
+  __u32 flags;
+  __u64 extensions;
 };
 struct drm_v3d_submit_csd {
   __u32 cfg[7];
@@ -111,6 +153,114 @@
   __u32 bo_handle_count;
   __u32 in_sync;
   __u32 out_sync;
+  __u32 perfmon_id;
+  __u64 extensions;
+  __u32 flags;
+  __u32 pad;
+};
+enum {
+  V3D_PERFCNT_FEP_VALID_PRIMTS_NO_PIXELS,
+  V3D_PERFCNT_FEP_VALID_PRIMS,
+  V3D_PERFCNT_FEP_EZ_NFCLIP_QUADS,
+  V3D_PERFCNT_FEP_VALID_QUADS,
+  V3D_PERFCNT_TLB_QUADS_STENCIL_FAIL,
+  V3D_PERFCNT_TLB_QUADS_STENCILZ_FAIL,
+  V3D_PERFCNT_TLB_QUADS_STENCILZ_PASS,
+  V3D_PERFCNT_TLB_QUADS_ZERO_COV,
+  V3D_PERFCNT_TLB_QUADS_NONZERO_COV,
+  V3D_PERFCNT_TLB_QUADS_WRITTEN,
+  V3D_PERFCNT_PTB_PRIM_VIEWPOINT_DISCARD,
+  V3D_PERFCNT_PTB_PRIM_CLIP,
+  V3D_PERFCNT_PTB_PRIM_REV,
+  V3D_PERFCNT_QPU_IDLE_CYCLES,
+  V3D_PERFCNT_QPU_ACTIVE_CYCLES_VERTEX_COORD_USER,
+  V3D_PERFCNT_QPU_ACTIVE_CYCLES_FRAG,
+  V3D_PERFCNT_QPU_CYCLES_VALID_INSTR,
+  V3D_PERFCNT_QPU_CYCLES_TMU_STALL,
+  V3D_PERFCNT_QPU_CYCLES_SCOREBOARD_STALL,
+  V3D_PERFCNT_QPU_CYCLES_VARYINGS_STALL,
+  V3D_PERFCNT_QPU_IC_HIT,
+  V3D_PERFCNT_QPU_IC_MISS,
+  V3D_PERFCNT_QPU_UC_HIT,
+  V3D_PERFCNT_QPU_UC_MISS,
+  V3D_PERFCNT_TMU_TCACHE_ACCESS,
+  V3D_PERFCNT_TMU_TCACHE_MISS,
+  V3D_PERFCNT_VPM_VDW_STALL,
+  V3D_PERFCNT_VPM_VCD_STALL,
+  V3D_PERFCNT_BIN_ACTIVE,
+  V3D_PERFCNT_RDR_ACTIVE,
+  V3D_PERFCNT_L2T_HITS,
+  V3D_PERFCNT_L2T_MISSES,
+  V3D_PERFCNT_CYCLE_COUNT,
+  V3D_PERFCNT_QPU_CYCLES_STALLED_VERTEX_COORD_USER,
+  V3D_PERFCNT_QPU_CYCLES_STALLED_FRAGMENT,
+  V3D_PERFCNT_PTB_PRIMS_BINNED,
+  V3D_PERFCNT_AXI_WRITES_WATCH_0,
+  V3D_PERFCNT_AXI_READS_WATCH_0,
+  V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_0,
+  V3D_PERFCNT_AXI_READ_STALLS_WATCH_0,
+  V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_0,
+  V3D_PERFCNT_AXI_READ_BYTES_WATCH_0,
+  V3D_PERFCNT_AXI_WRITES_WATCH_1,
+  V3D_PERFCNT_AXI_READS_WATCH_1,
+  V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_1,
+  V3D_PERFCNT_AXI_READ_STALLS_WATCH_1,
+  V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_1,
+  V3D_PERFCNT_AXI_READ_BYTES_WATCH_1,
+  V3D_PERFCNT_TLB_PARTIAL_QUADS,
+  V3D_PERFCNT_TMU_CONFIG_ACCESSES,
+  V3D_PERFCNT_L2T_NO_ID_STALL,
+  V3D_PERFCNT_L2T_COM_QUE_STALL,
+  V3D_PERFCNT_L2T_TMU_WRITES,
+  V3D_PERFCNT_TMU_ACTIVE_CYCLES,
+  V3D_PERFCNT_TMU_STALLED_CYCLES,
+  V3D_PERFCNT_CLE_ACTIVE,
+  V3D_PERFCNT_L2T_TMU_READS,
+  V3D_PERFCNT_L2T_CLE_READS,
+  V3D_PERFCNT_L2T_VCD_READS,
+  V3D_PERFCNT_L2T_TMUCFG_READS,
+  V3D_PERFCNT_L2T_SLC0_READS,
+  V3D_PERFCNT_L2T_SLC1_READS,
+  V3D_PERFCNT_L2T_SLC2_READS,
+  V3D_PERFCNT_L2T_TMU_W_MISSES,
+  V3D_PERFCNT_L2T_TMU_R_MISSES,
+  V3D_PERFCNT_L2T_CLE_MISSES,
+  V3D_PERFCNT_L2T_VCD_MISSES,
+  V3D_PERFCNT_L2T_TMUCFG_MISSES,
+  V3D_PERFCNT_L2T_SLC0_MISSES,
+  V3D_PERFCNT_L2T_SLC1_MISSES,
+  V3D_PERFCNT_L2T_SLC2_MISSES,
+  V3D_PERFCNT_CORE_MEM_WRITES,
+  V3D_PERFCNT_L2T_MEM_WRITES,
+  V3D_PERFCNT_PTB_MEM_WRITES,
+  V3D_PERFCNT_TLB_MEM_WRITES,
+  V3D_PERFCNT_CORE_MEM_READS,
+  V3D_PERFCNT_L2T_MEM_READS,
+  V3D_PERFCNT_PTB_MEM_READS,
+  V3D_PERFCNT_PSE_MEM_READS,
+  V3D_PERFCNT_TLB_MEM_READS,
+  V3D_PERFCNT_GMP_MEM_READS,
+  V3D_PERFCNT_PTB_W_MEM_WORDS,
+  V3D_PERFCNT_TLB_W_MEM_WORDS,
+  V3D_PERFCNT_PSE_R_MEM_WORDS,
+  V3D_PERFCNT_TLB_R_MEM_WORDS,
+  V3D_PERFCNT_TMU_MRU_HITS,
+  V3D_PERFCNT_COMPUTE_ACTIVE,
+  V3D_PERFCNT_NUM,
+};
+#define DRM_V3D_MAX_PERF_COUNTERS 32
+struct drm_v3d_perfmon_create {
+  __u32 id;
+  __u32 ncounters;
+  __u8 counters[DRM_V3D_MAX_PERF_COUNTERS];
+};
+struct drm_v3d_perfmon_destroy {
+  __u32 id;
+};
+struct drm_v3d_perfmon_get_values {
+  __u32 id;
+  __u32 pad;
+  __u64 values_ptr;
 };
 #ifdef __cplusplus
 }
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
index 842c1fd..342282d 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
@@ -32,9 +32,11 @@
 #define DRM_VIRTGPU_WAIT 0x08
 #define DRM_VIRTGPU_GET_CAPS 0x09
 #define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a
+#define DRM_VIRTGPU_CONTEXT_INIT 0x0b
 #define VIRTGPU_EXECBUF_FENCE_FD_IN 0x01
 #define VIRTGPU_EXECBUF_FENCE_FD_OUT 0x02
-#define VIRTGPU_EXECBUF_FLAGS (VIRTGPU_EXECBUF_FENCE_FD_IN | VIRTGPU_EXECBUF_FENCE_FD_OUT | 0)
+#define VIRTGPU_EXECBUF_RING_IDX 0x04
+#define VIRTGPU_EXECBUF_FLAGS (VIRTGPU_EXECBUF_FENCE_FD_IN | VIRTGPU_EXECBUF_FENCE_FD_OUT | VIRTGPU_EXECBUF_RING_IDX | 0)
 struct drm_virtgpu_map {
   __u64 offset;
   __u32 handle;
@@ -47,12 +49,16 @@
   __u64 bo_handles;
   __u32 num_bo_handles;
   __s32 fence_fd;
+  __u32 ring_idx;
+  __u32 pad;
 };
 #define VIRTGPU_PARAM_3D_FEATURES 1
 #define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2
 #define VIRTGPU_PARAM_RESOURCE_BLOB 3
 #define VIRTGPU_PARAM_HOST_VISIBLE 4
 #define VIRTGPU_PARAM_CROSS_DEVICE 5
+#define VIRTGPU_PARAM_CONTEXT_INIT 6
+#define VIRTGPU_PARAM_SUPPORTED_CAPSET_IDs 7
 struct drm_virtgpu_getparam {
   __u64 param;
   __u64 value;
@@ -132,6 +138,19 @@
   __u64 cmd;
   __u64 blob_id;
 };
+#define VIRTGPU_CONTEXT_PARAM_CAPSET_ID 0x0001
+#define VIRTGPU_CONTEXT_PARAM_NUM_RINGS 0x0002
+#define VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK 0x0003
+struct drm_virtgpu_context_set_param {
+  __u64 param;
+  __u64 value;
+};
+struct drm_virtgpu_context_init {
+  __u32 num_params;
+  __u32 pad;
+  __u64 ctx_set_params;
+};
+#define VIRTGPU_EVENT_FENCE_SIGNALED 0x90000000
 #define DRM_IOCTL_VIRTGPU_MAP DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map)
 #define DRM_IOCTL_VIRTGPU_EXECBUFFER DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_EXECBUFFER, struct drm_virtgpu_execbuffer)
 #define DRM_IOCTL_VIRTGPU_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GETPARAM, struct drm_virtgpu_getparam)
@@ -142,6 +161,7 @@
 #define DRM_IOCTL_VIRTGPU_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_WAIT, struct drm_virtgpu_3d_wait)
 #define DRM_IOCTL_VIRTGPU_GET_CAPS DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GET_CAPS, struct drm_virtgpu_get_caps)
 #define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB, struct drm_virtgpu_resource_create_blob)
+#define DRM_IOCTL_VIRTGPU_CONTEXT_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_CONTEXT_INIT, struct drm_virtgpu_context_init)
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
index 982b64f..395743b 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
@@ -56,6 +56,9 @@
 #define DRM_VMW_GB_SURFACE_CREATE_EXT 27
 #define DRM_VMW_GB_SURFACE_REF_EXT 28
 #define DRM_VMW_MSG 29
+#define DRM_VMW_MKSSTAT_RESET 30
+#define DRM_VMW_MKSSTAT_ADD 31
+#define DRM_VMW_MKSSTAT_REMOVE 32
 #define DRM_VMW_PARAM_NUM_STREAMS 0
 #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1
 #define DRM_VMW_PARAM_3D 2
@@ -72,6 +75,7 @@
 #define DRM_VMW_PARAM_HW_CAPS2 13
 #define DRM_VMW_PARAM_SM4_1 14
 #define DRM_VMW_PARAM_SM5 15
+#define DRM_VMW_PARAM_GL43 16
 enum drm_vmw_handle_type {
   DRM_VMW_HANDLE_LEGACY = 0,
   DRM_VMW_HANDLE_PRIME = 1
@@ -360,6 +364,19 @@
   __s32 send_only;
   __u32 receive_len;
 };
+struct drm_vmw_mksstat_add_arg {
+  __u64 stat;
+  __u64 info;
+  __u64 strs;
+  __u64 stat_len;
+  __u64 info_len;
+  __u64 strs_len;
+  __u64 description;
+  __u64 id;
+};
+struct drm_vmw_mksstat_remove_arg {
+  __u64 id;
+};
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/acrn.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/acrn.h
index 74b719a..c991ac0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/acrn.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/acrn.h
@@ -178,6 +178,7 @@
   } intx;
 };
 #define ACRN_PTDEV_QUIRK_ASSIGN (1U << 0)
+#define ACRN_MMIODEV_RES_NUM 3
 #define ACRN_PCI_NUM_BARS 6
 struct acrn_pcidev {
   __u32 type;
@@ -187,6 +188,29 @@
   __u8 intr_pin;
   __u32 bar[ACRN_PCI_NUM_BARS];
 };
+struct acrn_mmiodev {
+  __u8 name[8];
+  struct {
+    __u64 user_vm_pa;
+    __u64 service_vm_pa;
+    __u64 size;
+    __u64 mem_type;
+  } res[ACRN_MMIODEV_RES_NUM];
+};
+struct acrn_vdev {
+  union {
+    __u64 value;
+    struct {
+      __le16 vendor;
+      __le16 device;
+      __le32 legacy_id;
+    } fields;
+  } id;
+  __u64 slot;
+  __u32 io_addr[ACRN_PCI_NUM_BARS];
+  __u32 io_size[ACRN_PCI_NUM_BARS];
+  __u8 args[128];
+};
 struct acrn_msi_entry {
   __u64 msi_addr;
   __u64 msi_data;
@@ -257,6 +281,10 @@
 #define ACRN_IOCTL_RESET_PTDEV_INTR _IOW(ACRN_IOCTL_TYPE, 0x54, struct acrn_ptdev_irq)
 #define ACRN_IOCTL_ASSIGN_PCIDEV _IOW(ACRN_IOCTL_TYPE, 0x55, struct acrn_pcidev)
 #define ACRN_IOCTL_DEASSIGN_PCIDEV _IOW(ACRN_IOCTL_TYPE, 0x56, struct acrn_pcidev)
+#define ACRN_IOCTL_ASSIGN_MMIODEV _IOW(ACRN_IOCTL_TYPE, 0x57, struct acrn_mmiodev)
+#define ACRN_IOCTL_DEASSIGN_MMIODEV _IOW(ACRN_IOCTL_TYPE, 0x58, struct acrn_mmiodev)
+#define ACRN_IOCTL_CREATE_VDEV _IOW(ACRN_IOCTL_TYPE, 0x59, struct acrn_vdev)
+#define ACRN_IOCTL_DESTROY_VDEV _IOW(ACRN_IOCTL_TYPE, 0x5A, struct acrn_vdev)
 #define ACRN_IOCTL_PM_GET_CPU_STATE _IOWR(ACRN_IOCTL_TYPE, 0x60, __u64)
 #define ACRN_IOCTL_IOEVENTFD _IOW(ACRN_IOCTL_TYPE, 0x70, struct acrn_ioeventfd)
 #define ACRN_IOCTL_IRQFD _IOW(ACRN_IOCTL_TYPE, 0x71, struct acrn_irqfd)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/amt.h
similarity index 69%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/amt.h
index bb45c3d..049006d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/amt.h
@@ -16,14 +16,25 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_AMT_H_
+#define _UAPI_AMT_H_
+enum ifla_amt_mode {
+  AMT_MODE_GATEWAY = 0,
+  AMT_MODE_RELAY,
+  __AMT_MODE_MAX,
 };
+#define AMT_MODE_MAX (__AMT_MODE_MAX - 1)
+enum {
+  IFLA_AMT_UNSPEC,
+  IFLA_AMT_MODE,
+  IFLA_AMT_RELAY_PORT,
+  IFLA_AMT_GATEWAY_PORT,
+  IFLA_AMT_LINK,
+  IFLA_AMT_LOCAL_IP,
+  IFLA_AMT_REMOTE_IP,
+  IFLA_AMT_DISCOVERY_IP,
+  IFLA_AMT_MAX_TUNNELS,
+  __IFLA_AMT_MAX,
+};
+#define IFLA_AMT_MAX (__IFLA_AMT_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/android/binder.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/android/binder.h
index 5416344..ded1756 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/android/binder.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/android/binder.h
@@ -117,6 +117,16 @@
   __u32 reserved2;
   __u32 reserved3;
 };
+struct binder_freeze_info {
+  __u32 pid;
+  __u32 enable;
+  __u32 timeout_ms;
+};
+struct binder_frozen_status_info {
+  __u32 pid;
+  __u32 sync_recv;
+  __u32 async_recv;
+};
 #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read)
 #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64)
 #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32)
@@ -127,6 +137,9 @@
 #define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info)
 #define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref)
 #define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object)
+#define BINDER_FREEZE _IOW('b', 14, struct binder_freeze_info)
+#define BINDER_GET_FROZEN_INFO _IOWR('b', 15, struct binder_frozen_status_info)
+#define BINDER_ENABLE_ONEWAY_SPAM_DETECTION _IOW('b', 16, __u32)
 enum transaction_flags {
   TF_ONE_WAY = 0x01,
   TF_ROOT_OBJECT = 0x04,
@@ -199,6 +212,8 @@
   BR_DEAD_BINDER = _IOR('r', 15, binder_uintptr_t),
   BR_CLEAR_DEATH_NOTIFICATION_DONE = _IOR('r', 16, binder_uintptr_t),
   BR_FAILED_REPLY = _IO('r', 17),
+  BR_FROZEN_REPLY = _IO('r', 18),
+  BR_ONEWAY_SPAM_SUSPECT = _IO('r', 19),
 };
 enum binder_driver_command_protocol {
   BC_TRANSACTION = _IOW('c', 0, struct binder_transaction_data),
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/audit.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/audit.h
index 2c18e07..30a94af 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/audit.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/audit.h
@@ -83,6 +83,10 @@
 #define AUDIT_TIME_ADJNTPVAL 1333
 #define AUDIT_BPF 1334
 #define AUDIT_EVENT_LISTENER 1335
+#define AUDIT_URINGOP 1336
+#define AUDIT_OPENAT2 1337
+#define AUDIT_DM_CTRL 1338
+#define AUDIT_DM_EVENT 1339
 #define AUDIT_AVC 1400
 #define AUDIT_SELINUX_ERR 1401
 #define AUDIT_AVC_PATH 1402
@@ -126,7 +130,8 @@
 #define AUDIT_FILTER_EXCLUDE 0x05
 #define AUDIT_FILTER_TYPE AUDIT_FILTER_EXCLUDE
 #define AUDIT_FILTER_FS 0x06
-#define AUDIT_NR_FILTERS 7
+#define AUDIT_FILTER_URING_EXIT 0x07
+#define AUDIT_NR_FILTERS 8
 #define AUDIT_FILTER_PREPEND 0x10
 #define AUDIT_NEVER 0
 #define AUDIT_POSSIBLE 1
@@ -372,6 +377,6 @@
   __u32 values[AUDIT_MAX_FIELDS];
   __u32 fieldflags[AUDIT_MAX_FIELDS];
   __u32 buflen;
-  char buf[0];
+  char buf[];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/auxvec.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/auxvec.h
index e8c2336..c80c170 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/auxvec.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/auxvec.h
@@ -42,4 +42,7 @@
 #define AT_RANDOM 25
 #define AT_HWCAP2 26
 #define AT_EXECFN 31
+#ifndef AT_MINSIGSTKSZ
+#define AT_MINSIGSTKSZ 51
+#endif
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/bcache.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/bcache.h
deleted file mode 100644
index 25b6987..0000000
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/bcache.h
+++ /dev/null
@@ -1,221 +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_BCACHE_H
-#define _LINUX_BCACHE_H
-#include <linux/types.h>
-#define BITMASK(name,type,field,offset,size) static inline __u64 name(const type * k) \
-{ return(k->field >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(type * k, __u64 v) \
-{ k->field &= ~(~(~0ULL << size) << offset); k->field |= (v & ~(~0ULL << size)) << offset; \
-}
-struct bkey {
-  __u64 high;
-  __u64 low;
-  __u64 ptr[];
-};
-#define KEY_FIELD(name,field,offset,size) BITMASK(name, struct bkey, field, offset, size)
-#define PTR_FIELD(name,offset,size) static inline __u64 name(const struct bkey * k, unsigned int i) \
-{ return(k->ptr[i] >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(struct bkey * k, unsigned int i, __u64 v) \
-{ k->ptr[i] &= ~(~(~0ULL << size) << offset); k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \
-}
-#define KEY_SIZE_BITS 16
-#define KEY_MAX_U64S 8
-#define KEY(inode,offset,size) \
-((struct bkey) {.high = (1ULL << 63) | ((__u64) (size) << 20) | (inode),.low = (offset) \
-})
-#define ZERO_KEY KEY(0, 0, 0)
-#define MAX_KEY_INODE (~(~0 << 20))
-#define MAX_KEY_OFFSET (~0ULL >> 1)
-#define MAX_KEY KEY(MAX_KEY_INODE, MAX_KEY_OFFSET, 0)
-#define KEY_START(k) (KEY_OFFSET(k) - KEY_SIZE(k))
-#define START_KEY(k) KEY(KEY_INODE(k), KEY_START(k), 0)
-#define PTR_DEV_BITS 12
-#define PTR_CHECK_DEV ((1 << PTR_DEV_BITS) - 1)
-#define MAKE_PTR(gen,offset,dev) ((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen)
-#define bkey_copy(_dest,_src) memcpy(_dest, _src, bkey_bytes(_src))
-#define BKEY_PAD 8
-#define BKEY_PADDED(key) union { struct bkey key; __u64 key ##_pad[BKEY_PAD]; }
-#define BCACHE_SB_VERSION_CDEV 0
-#define BCACHE_SB_VERSION_BDEV 1
-#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3
-#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4
-#define BCACHE_SB_VERSION_CDEV_WITH_FEATURES 5
-#define BCACHE_SB_VERSION_BDEV_WITH_FEATURES 6
-#define BCACHE_SB_MAX_VERSION 6
-#define SB_SECTOR 8
-#define SB_OFFSET (SB_SECTOR << SECTOR_SHIFT)
-#define SB_SIZE 4096
-#define SB_LABEL_SIZE 32
-#define SB_JOURNAL_BUCKETS 256U
-#define MAX_CACHES_PER_SET 8
-#define BDEV_DATA_START_DEFAULT 16
-struct cache_sb_disk {
-  __le64 csum;
-  __le64 offset;
-  __le64 version;
-  __u8 magic[16];
-  __u8 uuid[16];
-  union {
-    __u8 set_uuid[16];
-    __le64 set_magic;
-  };
-  __u8 label[SB_LABEL_SIZE];
-  __le64 flags;
-  __le64 seq;
-  __le64 feature_compat;
-  __le64 feature_incompat;
-  __le64 feature_ro_compat;
-  __le64 pad[5];
-  union {
-    struct {
-      __le64 nbuckets;
-      __le16 block_size;
-      __le16 bucket_size;
-      __le16 nr_in_set;
-      __le16 nr_this_dev;
-    };
-    struct {
-      __le64 data_offset;
-    };
-  };
-  __le32 last_mount;
-  __le16 first_bucket;
-  union {
-    __le16 njournal_buckets;
-    __le16 keys;
-  };
-  __le64 d[SB_JOURNAL_BUCKETS];
-  __le16 obso_bucket_size_hi;
-};
-struct cache_sb {
-  __u64 offset;
-  __u64 version;
-  __u8 magic[16];
-  __u8 uuid[16];
-  union {
-    __u8 set_uuid[16];
-    __u64 set_magic;
-  };
-  __u8 label[SB_LABEL_SIZE];
-  __u64 flags;
-  __u64 seq;
-  __u64 feature_compat;
-  __u64 feature_incompat;
-  __u64 feature_ro_compat;
-  union {
-    struct {
-      __u64 nbuckets;
-      __u16 block_size;
-      __u16 nr_in_set;
-      __u16 nr_this_dev;
-      __u32 bucket_size;
-    };
-    struct {
-      __u64 data_offset;
-    };
-  };
-  __u32 last_mount;
-  __u16 first_bucket;
-  union {
-    __u16 njournal_buckets;
-    __u16 keys;
-  };
-  __u64 d[SB_JOURNAL_BUCKETS];
-};
-#define CACHE_REPLACEMENT_LRU 0U
-#define CACHE_REPLACEMENT_FIFO 1U
-#define CACHE_REPLACEMENT_RANDOM 2U
-#define CACHE_MODE_WRITETHROUGH 0U
-#define CACHE_MODE_WRITEBACK 1U
-#define CACHE_MODE_WRITEAROUND 2U
-#define CACHE_MODE_NONE 3U
-#define BDEV_STATE_NONE 0U
-#define BDEV_STATE_CLEAN 1U
-#define BDEV_STATE_DIRTY 2U
-#define BDEV_STATE_STALE 3U
-#define JSET_MAGIC 0x245235c1a3625032ULL
-#define PSET_MAGIC 0x6750e15f87337f91ULL
-#define BSET_MAGIC 0x90135c78b99e07f5ULL
-#define BCACHE_JSET_VERSION_UUIDv1 1
-#define BCACHE_JSET_VERSION_UUID 1
-#define BCACHE_JSET_VERSION 1
-struct jset {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 keys;
-  __u64 last_seq;
-  BKEY_PADDED(uuid_bucket);
-  BKEY_PADDED(btree_root);
-  __u16 btree_level;
-  __u16 pad[3];
-  __u64 prio_bucket[MAX_CACHES_PER_SET];
-  union {
-    struct bkey start[0];
-    __u64 d[0];
-  };
-};
-struct prio_set {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 pad;
-  __u64 next_bucket;
-  struct bucket_disk {
-    __u16 prio;
-    __u8 gen;
-  } __attribute((packed)) data[];
-};
-struct uuid_entry {
-  union {
-    struct {
-      __u8 uuid[16];
-      __u8 label[32];
-      __u32 first_reg;
-      __u32 last_reg;
-      __u32 invalidated;
-      __u32 flags;
-      __u64 sectors;
-    };
-    __u8 pad[128];
-  };
-};
-#define BCACHE_BSET_CSUM 1
-#define BCACHE_BSET_VERSION 1
-struct bset {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 keys;
-  union {
-    struct bkey start[0];
-    __u64 d[0];
-  };
-};
-struct uuid_entry_v0 {
-  __u8 uuid[16];
-  __u8 label[32];
-  __u32 first_reg;
-  __u32 last_reg;
-  __u32 invalidated;
-  __u32 pad;
-};
-#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/bpf.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/bpf.h
index c643ffa..d363e81 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/bpf.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/bpf.h
@@ -91,6 +91,7 @@
   BPF_PROG_ATTACH,
   BPF_PROG_DETACH,
   BPF_PROG_TEST_RUN,
+  BPF_PROG_RUN = BPF_PROG_TEST_RUN,
   BPF_PROG_GET_NEXT_ID,
   BPF_MAP_GET_NEXT_ID,
   BPF_PROG_GET_FD_BY_ID,
@@ -148,6 +149,7 @@
   BPF_MAP_TYPE_RINGBUF,
   BPF_MAP_TYPE_INODE_STORAGE,
   BPF_MAP_TYPE_TASK_STORAGE,
+  BPF_MAP_TYPE_BLOOM_FILTER,
 };
 enum bpf_prog_type {
   BPF_PROG_TYPE_UNSPEC,
@@ -181,6 +183,7 @@
   BPF_PROG_TYPE_EXT,
   BPF_PROG_TYPE_LSM,
   BPF_PROG_TYPE_SK_LOOKUP,
+  BPF_PROG_TYPE_SYSCALL,
 };
 enum bpf_attach_type {
   BPF_CGROUP_INET_INGRESS,
@@ -221,6 +224,10 @@
   BPF_XDP_CPUMAP,
   BPF_SK_LOOKUP,
   BPF_XDP,
+  BPF_SK_SKB_VERDICT,
+  BPF_SK_REUSEPORT_SELECT,
+  BPF_SK_REUSEPORT_SELECT_OR_MIGRATE,
+  BPF_PERF_EVENT,
   __MAX_BPF_ATTACH_TYPE
 };
 #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
@@ -232,6 +239,7 @@
   BPF_LINK_TYPE_ITER = 4,
   BPF_LINK_TYPE_NETNS = 5,
   BPF_LINK_TYPE_XDP = 6,
+  BPF_LINK_TYPE_PERF_EVENT = 7,
   MAX_BPF_LINK_TYPE,
 };
 #define BPF_F_ALLOW_OVERRIDE (1U << 0)
@@ -243,9 +251,13 @@
 #define BPF_F_TEST_STATE_FREQ (1U << 3)
 #define BPF_F_SLEEPABLE (1U << 4)
 #define BPF_PSEUDO_MAP_FD 1
+#define BPF_PSEUDO_MAP_IDX 5
 #define BPF_PSEUDO_MAP_VALUE 2
+#define BPF_PSEUDO_MAP_IDX_VALUE 6
 #define BPF_PSEUDO_BTF_ID 3
+#define BPF_PSEUDO_FUNC 4
 #define BPF_PSEUDO_CALL 1
+#define BPF_PSEUDO_KFUNC_CALL 2
 enum {
   BPF_ANY = 0,
   BPF_NOEXIST = 1,
@@ -302,6 +314,7 @@
     __u32 btf_key_type_id;
     __u32 btf_value_type_id;
     __u32 btf_vmlinux_value_type_id;
+    __u64 map_extra;
   };
   struct {
     __u32 map_fd;
@@ -347,6 +360,10 @@
       __u32 attach_prog_fd;
       __u32 attach_btf_obj_fd;
     };
+    __u32 core_relo_cnt;
+    __aligned_u64 fd_array;
+    __aligned_u64 core_relos;
+    __u32 core_relo_rec_size;
   };
   struct {
     __aligned_u64 pathname;
@@ -436,6 +453,9 @@
         __aligned_u64 iter_info;
         __u32 iter_info_len;
       };
+      struct {
+        __u64 bpf_cookie;
+      } perf_event;
     };
   } link_create;
   struct {
@@ -460,7 +480,7 @@
     __u32 flags;
   } prog_bind_map;
 } __attribute__((aligned(8)));
-#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu),
+#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu), FN(for_each_map_elem), FN(snprintf), FN(sys_bpf), FN(btf_find_by_name_kind), FN(sys_close), FN(timer_init), FN(timer_set_callback), FN(timer_start), FN(timer_cancel), FN(get_func_ip), FN(get_attach_cookie), FN(task_pt_regs), FN(get_branch_snapshot), FN(trace_vprintk), FN(skc_to_unix_sock), FN(kallsyms_lookup_name), FN(find_vma), FN(loop), FN(strncmp), FN(get_func_arg), FN(get_func_ret), FN(get_func_arg_cnt),
 #define __BPF_ENUM_FN(x) BPF_FUNC_ ##x
 enum bpf_func_id {
   __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID,
@@ -517,6 +537,7 @@
   BPF_F_ADJ_ROOM_ENCAP_L4_GRE = (1ULL << 3),
   BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4),
   BPF_F_ADJ_ROOM_NO_CSUM_RESET = (1ULL << 5),
+  BPF_F_ADJ_ROOM_ENCAP_L2_ETH = (1ULL << 6),
 };
 enum {
   BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff,
@@ -568,6 +589,10 @@
 enum {
   BPF_F_BPRM_SECUREEXEC = (1ULL << 0),
 };
+enum {
+  BPF_F_BROADCAST = (1ULL << 3),
+  BPF_F_EXCLUDE_INGRESS = (1ULL << 4),
+};
 #define __bpf_md_ptr(type,name) union { type name; __u64 : 64; \
 } __attribute__((aligned(8)))
 struct __sk_buff {
@@ -603,6 +628,8 @@
   __u32 gso_segs;
   __bpf_md_ptr(struct bpf_sock *, sk);
   __u32 gso_size;
+  __u32 : 32;
+  __u64 hwtstamp;
 };
 struct bpf_tunnel_key {
   __u32 tunnel_id;
@@ -749,6 +776,8 @@
   __u32 ip_protocol;
   __u32 bind_inany;
   __u32 hash;
+  __bpf_md_ptr(struct bpf_sock *, sk);
+  __bpf_md_ptr(struct bpf_sock *, migrating_sk);
 };
 #define BPF_TAG_SIZE 8
 struct bpf_prog_info {
@@ -788,6 +817,7 @@
   __u64 run_time_ns;
   __u64 run_cnt;
   __u64 recursion_misses;
+  __u32 verified_insns;
 } __attribute__((aligned(8)));
 struct bpf_map_info {
   __u32 type;
@@ -804,6 +834,8 @@
   __u32 btf_id;
   __u32 btf_key_type_id;
   __u32 btf_value_type_id;
+  __u32 : 32;
+  __u64 map_extra;
 } __attribute__((aligned(8)));
 struct bpf_btf_info {
   __aligned_u64 btf;
@@ -824,6 +856,8 @@
     } raw_tracepoint;
     struct {
       __u32 attach_type;
+      __u32 target_obj_id;
+      __u32 target_btf_id;
     } tracing;
     struct {
       __u64 cgroup_id;
@@ -1096,6 +1130,10 @@
 struct bpf_spin_lock {
   __u32 val;
 };
+struct bpf_timer {
+  __u64 : 64;
+  __u64 : 64;
+} __attribute__((aligned(8)));
 struct bpf_sysctl {
   __u32 write;
   __u32 file_pos;
@@ -1114,7 +1152,10 @@
   __u32 tgid;
 };
 struct bpf_sk_lookup {
-  __bpf_md_ptr(struct bpf_sock *, sk);
+  union {
+    __bpf_md_ptr(struct bpf_sock *, sk);
+    __u64 cookie;
+  };
   __u32 family;
   __u32 protocol;
   __u32 remote_ip4;
@@ -1123,6 +1164,7 @@
   __u32 local_ip4;
   __u32 local_ip6[4];
   __u32 local_port;
+  __u32 ingress_ifindex;
 };
 struct btf_ptr {
   void * ptr;
@@ -1135,4 +1177,24 @@
   BTF_F_PTR_RAW = (1ULL << 2),
   BTF_F_ZERO = (1ULL << 3),
 };
+enum bpf_core_relo_kind {
+  BPF_CORE_FIELD_BYTE_OFFSET = 0,
+  BPF_CORE_FIELD_BYTE_SIZE = 1,
+  BPF_CORE_FIELD_EXISTS = 2,
+  BPF_CORE_FIELD_SIGNED = 3,
+  BPF_CORE_FIELD_LSHIFT_U64 = 4,
+  BPF_CORE_FIELD_RSHIFT_U64 = 5,
+  BPF_CORE_TYPE_ID_LOCAL = 6,
+  BPF_CORE_TYPE_ID_TARGET = 7,
+  BPF_CORE_TYPE_EXISTS = 8,
+  BPF_CORE_TYPE_SIZE = 9,
+  BPF_CORE_ENUMVAL_EXISTS = 10,
+  BPF_CORE_ENUMVAL_VALUE = 11,
+};
+struct bpf_core_relo {
+  __u32 insn_off;
+  __u32 type_id;
+  __u32 access_str_off;
+  enum bpf_core_relo_kind kind;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btf.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btf.h
index f22d637..fc57d3c 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btf.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btf.h
@@ -42,27 +42,32 @@
     __u32 type;
   };
 };
-#define BTF_INFO_KIND(info) (((info) >> 24) & 0x0f)
+#define BTF_INFO_KIND(info) (((info) >> 24) & 0x1f)
 #define BTF_INFO_VLEN(info) ((info) & 0xffff)
 #define BTF_INFO_KFLAG(info) ((info) >> 31)
-#define BTF_KIND_UNKN 0
-#define BTF_KIND_INT 1
-#define BTF_KIND_PTR 2
-#define BTF_KIND_ARRAY 3
-#define BTF_KIND_STRUCT 4
-#define BTF_KIND_UNION 5
-#define BTF_KIND_ENUM 6
-#define BTF_KIND_FWD 7
-#define BTF_KIND_TYPEDEF 8
-#define BTF_KIND_VOLATILE 9
-#define BTF_KIND_CONST 10
-#define BTF_KIND_RESTRICT 11
-#define BTF_KIND_FUNC 12
-#define BTF_KIND_FUNC_PROTO 13
-#define BTF_KIND_VAR 14
-#define BTF_KIND_DATASEC 15
-#define BTF_KIND_MAX BTF_KIND_DATASEC
-#define NR_BTF_KINDS (BTF_KIND_MAX + 1)
+enum {
+  BTF_KIND_UNKN = 0,
+  BTF_KIND_INT = 1,
+  BTF_KIND_PTR = 2,
+  BTF_KIND_ARRAY = 3,
+  BTF_KIND_STRUCT = 4,
+  BTF_KIND_UNION = 5,
+  BTF_KIND_ENUM = 6,
+  BTF_KIND_FWD = 7,
+  BTF_KIND_TYPEDEF = 8,
+  BTF_KIND_VOLATILE = 9,
+  BTF_KIND_CONST = 10,
+  BTF_KIND_RESTRICT = 11,
+  BTF_KIND_FUNC = 12,
+  BTF_KIND_FUNC_PROTO = 13,
+  BTF_KIND_VAR = 14,
+  BTF_KIND_DATASEC = 15,
+  BTF_KIND_FLOAT = 16,
+  BTF_KIND_DECL_TAG = 17,
+  BTF_KIND_TYPE_TAG = 18,
+  NR_BTF_KINDS,
+  BTF_KIND_MAX = NR_BTF_KINDS - 1,
+};
 #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24)
 #define BTF_INT_OFFSET(VAL) (((VAL) & 0x00ff0000) >> 16)
 #define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff)
@@ -107,4 +112,7 @@
   __u32 offset;
   __u32 size;
 };
+struct btf_decl_tag {
+  __s32 component_idx;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btrfs.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btrfs.h
index c0a586c..08b96a3 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btrfs.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btrfs.h
@@ -175,6 +175,7 @@
 };
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE (1ULL << 0)
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID (1ULL << 1)
+#define BTRFS_FEATURE_COMPAT_RO_VERITY (1ULL << 2)
 #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0)
 #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
 #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
@@ -419,14 +420,16 @@
 #define BTRFS_SEND_FLAG_NO_FILE_DATA 0x1
 #define BTRFS_SEND_FLAG_OMIT_STREAM_HEADER 0x2
 #define BTRFS_SEND_FLAG_OMIT_END_CMD 0x4
-#define BTRFS_SEND_FLAG_MASK (BTRFS_SEND_FLAG_NO_FILE_DATA | BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | BTRFS_SEND_FLAG_OMIT_END_CMD)
+#define BTRFS_SEND_FLAG_VERSION 0x8
+#define BTRFS_SEND_FLAG_MASK (BTRFS_SEND_FLAG_NO_FILE_DATA | BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | BTRFS_SEND_FLAG_OMIT_END_CMD | BTRFS_SEND_FLAG_VERSION)
 struct btrfs_ioctl_send_args {
   __s64 send_fd;
   __u64 clone_sources_count;
   __u64 __user * clone_sources;
   __u64 parent_root;
   __u64 flags;
-  __u64 reserved[4];
+  __u32 version;
+  __u8 reserved[28];
 };
 struct btrfs_ioctl_get_subvol_info_args {
   __u64 treeid;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
index 4e36c37..0476733 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
@@ -53,6 +53,8 @@
 #define BTRFS_INODE_REF_KEY 12
 #define BTRFS_INODE_EXTREF_KEY 13
 #define BTRFS_XATTR_ITEM_KEY 24
+#define BTRFS_VERITY_DESC_ITEM_KEY 36
+#define BTRFS_VERITY_MERKLE_ITEM_KEY 37
 #define BTRFS_ORPHAN_ITEM_KEY 48
 #define BTRFS_DIR_LOG_ITEM_KEY 60
 #define BTRFS_DIR_LOG_INDEX_KEY 72
@@ -424,4 +426,9 @@
   __le64 rsv_rfer;
   __le64 rsv_excl;
 } __attribute__((__packed__));
+struct btrfs_verity_descriptor_item {
+  __le64 size;
+  __le64 reserved[2];
+  __u8 encryption;
+} __attribute__((__packed__));
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
index c0ddccc..b6c978b 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
@@ -24,6 +24,7 @@
 #ifndef __BIG_ENDIAN_BITFIELD
 #define __BIG_ENDIAN_BITFIELD
 #endif
+#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 #define __constant_htonl(x) ((__force __be32) (__u32) (x))
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
index ea00092..a272d4d 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
@@ -24,6 +24,7 @@
 #ifndef __LITTLE_ENDIAN_BITFIELD
 #define __LITTLE_ENDIAN_BITFIELD
 #endif
+#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 #define __constant_htonl(x) ((__force __be32) ___constant_swab32((x)))
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can.h
index 59fc31e..30eeca2 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can.h
@@ -48,6 +48,7 @@
 };
 #define CANFD_BRS 0x01
 #define CANFD_ESI 0x02
+#define CANFD_FDF 0x04
 struct canfd_frame {
   canid_t can_id;
   __u8 len;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can/j1939.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can/j1939.h
index 531a222..42dbf15 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can/j1939.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can/j1939.h
@@ -50,10 +50,19 @@
 enum {
   J1939_NLA_PAD,
   J1939_NLA_BYTES_ACKED,
+  J1939_NLA_TOTAL_SIZE,
+  J1939_NLA_PGN,
+  J1939_NLA_SRC_NAME,
+  J1939_NLA_DEST_NAME,
+  J1939_NLA_SRC_ADDR,
+  J1939_NLA_DEST_ADDR,
 };
 enum {
   J1939_EE_INFO_NONE,
   J1939_EE_INFO_TX_ABORT,
+  J1939_EE_INFO_RX_RTS,
+  J1939_EE_INFO_RX_DPO,
+  J1939_EE_INFO_RX_ABORT,
 };
 struct j1939_filter {
   name_t name;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can/netlink.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can/netlink.h
index 3e6551d..f4086c0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can/netlink.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/can/netlink.h
@@ -69,6 +69,8 @@
 #define CAN_CTRLMODE_PRESUME_ACK 0x40
 #define CAN_CTRLMODE_FD_NON_ISO 0x80
 #define CAN_CTRLMODE_CC_LEN8_DLC 0x100
+#define CAN_CTRLMODE_TDC_AUTO 0x200
+#define CAN_CTRLMODE_TDC_MANUAL 0x400
 struct can_device_stats {
   __u32 bus_error;
   __u32 error_warning;
@@ -94,8 +96,30 @@
   IFLA_CAN_BITRATE_CONST,
   IFLA_CAN_DATA_BITRATE_CONST,
   IFLA_CAN_BITRATE_MAX,
-  __IFLA_CAN_MAX
+  IFLA_CAN_TDC,
+  IFLA_CAN_CTRLMODE_EXT,
+  __IFLA_CAN_MAX,
+  IFLA_CAN_MAX = __IFLA_CAN_MAX - 1
 };
-#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)
+enum {
+  IFLA_CAN_TDC_UNSPEC,
+  IFLA_CAN_TDC_TDCV_MIN,
+  IFLA_CAN_TDC_TDCV_MAX,
+  IFLA_CAN_TDC_TDCO_MIN,
+  IFLA_CAN_TDC_TDCO_MAX,
+  IFLA_CAN_TDC_TDCF_MIN,
+  IFLA_CAN_TDC_TDCF_MAX,
+  IFLA_CAN_TDC_TDCV,
+  IFLA_CAN_TDC_TDCO,
+  IFLA_CAN_TDC_TDCF,
+  __IFLA_CAN_TDC,
+  IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1
+};
+enum {
+  IFLA_CAN_CTRLMODE_UNSPEC,
+  IFLA_CAN_CTRLMODE_SUPPORTED,
+  __IFLA_CAN_CTRLMODE,
+  IFLA_CAN_CTRLMODE_MAX = __IFLA_CAN_CTRLMODE - 1
+};
 #define CAN_TERMINATION_DISABLED 0
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cdrom.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cdrom.h
index 8f1c2f0..0fe0727 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cdrom.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cdrom.h
@@ -67,6 +67,7 @@
 #define CDROM_SEND_PACKET 0x5393
 #define CDROM_NEXT_WRITABLE 0x5394
 #define CDROM_LAST_WRITTEN 0x5395
+#define CDROM_TIMED_MEDIA_CHANGE 0x5396
 struct cdrom_msf0 {
   __u8 minute;
   __u8 second;
@@ -160,6 +161,11 @@
     void __user * unused;
   };
 };
+struct cdrom_timed_media_change_info {
+  __s64 last_media_change;
+  __u64 media_flags;
+};
+#define MEDIA_CHANGED_FLAG 0x1
 #define CD_MINS 74
 #define CD_SECS 60
 #define CD_FRAMES 75
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cec.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cec.h
index 238fa0a..b90dc49 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cec.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cec.h
@@ -262,7 +262,7 @@
 #define CEC_OP_REC_SEQ_WEDNESDAY 0x08
 #define CEC_OP_REC_SEQ_THURSDAY 0x10
 #define CEC_OP_REC_SEQ_FRIDAY 0x20
-#define CEC_OP_REC_SEQ_SATERDAY 0x40
+#define CEC_OP_REC_SEQ_SATURDAY 0x40
 #define CEC_OP_REC_SEQ_ONCE_ONLY 0x00
 #define CEC_MSG_CLEAR_DIGITAL_TIMER 0x99
 #define CEC_MSG_CLEAR_EXT_TIMER 0xa1
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/comedi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/comedi.h
new file mode 100644
index 0000000..e0d015a
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/comedi.h
@@ -0,0 +1,669 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 _COMEDI_H
+#define _COMEDI_H
+#define COMEDI_MAJORVERSION 0
+#define COMEDI_MINORVERSION 7
+#define COMEDI_MICROVERSION 76
+#define VERSION "0.7.76"
+#define COMEDI_MAJOR 98
+#define COMEDI_NDEVICES 16
+#define COMEDI_NDEVCONFOPTS 32
+#define COMEDI_DEVCONF_AUX_DATA3_LENGTH 25
+#define COMEDI_DEVCONF_AUX_DATA2_LENGTH 26
+#define COMEDI_DEVCONF_AUX_DATA1_LENGTH 27
+#define COMEDI_DEVCONF_AUX_DATA0_LENGTH 28
+#define COMEDI_DEVCONF_AUX_DATA_HI 29
+#define COMEDI_DEVCONF_AUX_DATA_LO 30
+#define COMEDI_DEVCONF_AUX_DATA_LENGTH 31
+#define COMEDI_NAMELEN 20
+#define CR_PACK(chan,rng,aref) ((((aref) & 0x3) << 24) | (((rng) & 0xff) << 16) | (chan))
+#define CR_PACK_FLAGS(chan,range,aref,flags) (CR_PACK(chan, range, aref) | ((flags) & CR_FLAGS_MASK))
+#define CR_CHAN(a) ((a) & 0xffff)
+#define CR_RANGE(a) (((a) >> 16) & 0xff)
+#define CR_AREF(a) (((a) >> 24) & 0x03)
+#define CR_FLAGS_MASK 0xfc000000
+#define CR_ALT_FILTER 0x04000000
+#define CR_DITHER CR_ALT_FILTER
+#define CR_DEGLITCH CR_ALT_FILTER
+#define CR_ALT_SOURCE 0x08000000
+#define CR_EDGE 0x40000000
+#define CR_INVERT 0x80000000
+#define AREF_GROUND 0x00
+#define AREF_COMMON 0x01
+#define AREF_DIFF 0x02
+#define AREF_OTHER 0x03
+#define GPCT_RESET 0x0001
+#define GPCT_SET_SOURCE 0x0002
+#define GPCT_SET_GATE 0x0004
+#define GPCT_SET_DIRECTION 0x0008
+#define GPCT_SET_OPERATION 0x0010
+#define GPCT_ARM 0x0020
+#define GPCT_DISARM 0x0040
+#define GPCT_GET_INT_CLK_FRQ 0x0080
+#define GPCT_INT_CLOCK 0x0001
+#define GPCT_EXT_PIN 0x0002
+#define GPCT_NO_GATE 0x0004
+#define GPCT_UP 0x0008
+#define GPCT_DOWN 0x0010
+#define GPCT_HWUD 0x0020
+#define GPCT_SIMPLE_EVENT 0x0040
+#define GPCT_SINGLE_PERIOD 0x0080
+#define GPCT_SINGLE_PW 0x0100
+#define GPCT_CONT_PULSE_OUT 0x0200
+#define GPCT_SINGLE_PULSE_OUT 0x0400
+#define INSN_MASK_WRITE 0x8000000
+#define INSN_MASK_READ 0x4000000
+#define INSN_MASK_SPECIAL 0x2000000
+#define INSN_READ (0 | INSN_MASK_READ)
+#define INSN_WRITE (1 | INSN_MASK_WRITE)
+#define INSN_BITS (2 | INSN_MASK_READ | INSN_MASK_WRITE)
+#define INSN_CONFIG (3 | INSN_MASK_READ | INSN_MASK_WRITE)
+#define INSN_DEVICE_CONFIG (INSN_CONFIG | INSN_MASK_SPECIAL)
+#define INSN_GTOD (4 | INSN_MASK_READ | INSN_MASK_SPECIAL)
+#define INSN_WAIT (5 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
+#define INSN_INTTRIG (6 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
+#define CMDF_BOGUS 0x00000001
+#define CMDF_PRIORITY 0x00000008
+#define CMDF_WAKE_EOS 0x00000020
+#define CMDF_WRITE 0x00000040
+#define CMDF_RAWDATA 0x00000080
+#define CMDF_ROUND_MASK 0x00030000
+#define CMDF_ROUND_NEAREST 0x00000000
+#define CMDF_ROUND_DOWN 0x00010000
+#define CMDF_ROUND_UP 0x00020000
+#define CMDF_ROUND_UP_NEXT 0x00030000
+#define COMEDI_EV_START 0x00040000
+#define COMEDI_EV_SCAN_BEGIN 0x00080000
+#define COMEDI_EV_CONVERT 0x00100000
+#define COMEDI_EV_SCAN_END 0x00200000
+#define COMEDI_EV_STOP 0x00400000
+#define TRIG_BOGUS CMDF_BOGUS
+#define TRIG_RT CMDF_PRIORITY
+#define TRIG_WAKE_EOS CMDF_WAKE_EOS
+#define TRIG_WRITE CMDF_WRITE
+#define TRIG_ROUND_MASK CMDF_ROUND_MASK
+#define TRIG_ROUND_NEAREST CMDF_ROUND_NEAREST
+#define TRIG_ROUND_DOWN CMDF_ROUND_DOWN
+#define TRIG_ROUND_UP CMDF_ROUND_UP
+#define TRIG_ROUND_UP_NEXT CMDF_ROUND_UP_NEXT
+#define TRIG_ANY 0xffffffff
+#define TRIG_INVALID 0x00000000
+#define TRIG_NONE 0x00000001
+#define TRIG_NOW 0x00000002
+#define TRIG_FOLLOW 0x00000004
+#define TRIG_TIME 0x00000008
+#define TRIG_TIMER 0x00000010
+#define TRIG_COUNT 0x00000020
+#define TRIG_EXT 0x00000040
+#define TRIG_INT 0x00000080
+#define TRIG_OTHER 0x00000100
+#define SDF_BUSY 0x0001
+#define SDF_BUSY_OWNER 0x0002
+#define SDF_LOCKED 0x0004
+#define SDF_LOCK_OWNER 0x0008
+#define SDF_MAXDATA 0x0010
+#define SDF_FLAGS 0x0020
+#define SDF_RANGETYPE 0x0040
+#define SDF_PWM_COUNTER 0x0080
+#define SDF_PWM_HBRIDGE 0x0100
+#define SDF_CMD 0x1000
+#define SDF_SOFT_CALIBRATED 0x2000
+#define SDF_CMD_WRITE 0x4000
+#define SDF_CMD_READ 0x8000
+#define SDF_READABLE 0x00010000
+#define SDF_WRITABLE 0x00020000
+#define SDF_WRITEABLE SDF_WRITABLE
+#define SDF_INTERNAL 0x00040000
+#define SDF_GROUND 0x00100000
+#define SDF_COMMON 0x00200000
+#define SDF_DIFF 0x00400000
+#define SDF_OTHER 0x00800000
+#define SDF_DITHER 0x01000000
+#define SDF_DEGLITCH 0x02000000
+#define SDF_MMAP 0x04000000
+#define SDF_RUNNING 0x08000000
+#define SDF_LSAMPL 0x10000000
+#define SDF_PACKED 0x20000000
+enum comedi_subdevice_type {
+  COMEDI_SUBD_UNUSED,
+  COMEDI_SUBD_AI,
+  COMEDI_SUBD_AO,
+  COMEDI_SUBD_DI,
+  COMEDI_SUBD_DO,
+  COMEDI_SUBD_DIO,
+  COMEDI_SUBD_COUNTER,
+  COMEDI_SUBD_TIMER,
+  COMEDI_SUBD_MEMORY,
+  COMEDI_SUBD_CALIB,
+  COMEDI_SUBD_PROC,
+  COMEDI_SUBD_SERIAL,
+  COMEDI_SUBD_PWM
+};
+enum comedi_io_direction {
+  COMEDI_INPUT = 0,
+  COMEDI_OUTPUT = 1,
+  COMEDI_OPENDRAIN = 2
+};
+enum configuration_ids {
+  INSN_CONFIG_DIO_INPUT = COMEDI_INPUT,
+  INSN_CONFIG_DIO_OUTPUT = COMEDI_OUTPUT,
+  INSN_CONFIG_DIO_OPENDRAIN = COMEDI_OPENDRAIN,
+  INSN_CONFIG_ANALOG_TRIG = 16,
+  INSN_CONFIG_ALT_SOURCE = 20,
+  INSN_CONFIG_DIGITAL_TRIG = 21,
+  INSN_CONFIG_BLOCK_SIZE = 22,
+  INSN_CONFIG_TIMER_1 = 23,
+  INSN_CONFIG_FILTER = 24,
+  INSN_CONFIG_CHANGE_NOTIFY = 25,
+  INSN_CONFIG_SERIAL_CLOCK = 26,
+  INSN_CONFIG_BIDIRECTIONAL_DATA = 27,
+  INSN_CONFIG_DIO_QUERY = 28,
+  INSN_CONFIG_PWM_OUTPUT = 29,
+  INSN_CONFIG_GET_PWM_OUTPUT = 30,
+  INSN_CONFIG_ARM = 31,
+  INSN_CONFIG_DISARM = 32,
+  INSN_CONFIG_GET_COUNTER_STATUS = 33,
+  INSN_CONFIG_RESET = 34,
+  INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR = 1001,
+  INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR = 1002,
+  INSN_CONFIG_GPCT_QUADRATURE_ENCODER = 1003,
+  INSN_CONFIG_SET_GATE_SRC = 2001,
+  INSN_CONFIG_GET_GATE_SRC = 2002,
+  INSN_CONFIG_SET_CLOCK_SRC = 2003,
+  INSN_CONFIG_GET_CLOCK_SRC = 2004,
+  INSN_CONFIG_SET_OTHER_SRC = 2005,
+  INSN_CONFIG_GET_HARDWARE_BUFFER_SIZE = 2006,
+  INSN_CONFIG_SET_COUNTER_MODE = 4097,
+  INSN_CONFIG_8254_SET_MODE = INSN_CONFIG_SET_COUNTER_MODE,
+  INSN_CONFIG_8254_READ_STATUS = 4098,
+  INSN_CONFIG_SET_ROUTING = 4099,
+  INSN_CONFIG_GET_ROUTING = 4109,
+  INSN_CONFIG_PWM_SET_PERIOD = 5000,
+  INSN_CONFIG_PWM_GET_PERIOD = 5001,
+  INSN_CONFIG_GET_PWM_STATUS = 5002,
+  INSN_CONFIG_PWM_SET_H_BRIDGE = 5003,
+  INSN_CONFIG_PWM_GET_H_BRIDGE = 5004,
+  INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS = 5005,
+};
+enum device_config_route_ids {
+  INSN_DEVICE_CONFIG_TEST_ROUTE = 0,
+  INSN_DEVICE_CONFIG_CONNECT_ROUTE = 1,
+  INSN_DEVICE_CONFIG_DISCONNECT_ROUTE = 2,
+  INSN_DEVICE_CONFIG_GET_ROUTES = 3,
+};
+enum comedi_digital_trig_op {
+  COMEDI_DIGITAL_TRIG_DISABLE = 0,
+  COMEDI_DIGITAL_TRIG_ENABLE_EDGES = 1,
+  COMEDI_DIGITAL_TRIG_ENABLE_LEVELS = 2
+};
+enum comedi_support_level {
+  COMEDI_UNKNOWN_SUPPORT = 0,
+  COMEDI_SUPPORTED,
+  COMEDI_UNSUPPORTED
+};
+enum comedi_counter_status_flags {
+  COMEDI_COUNTER_ARMED = 0x1,
+  COMEDI_COUNTER_COUNTING = 0x2,
+  COMEDI_COUNTER_TERMINAL_COUNT = 0x4,
+};
+#define CIO 'd'
+#define COMEDI_DEVCONFIG _IOW(CIO, 0, struct comedi_devconfig)
+#define COMEDI_DEVINFO _IOR(CIO, 1, struct comedi_devinfo)
+#define COMEDI_SUBDINFO _IOR(CIO, 2, struct comedi_subdinfo)
+#define COMEDI_CHANINFO _IOR(CIO, 3, struct comedi_chaninfo)
+#define COMEDI_LOCK _IO(CIO, 5)
+#define COMEDI_UNLOCK _IO(CIO, 6)
+#define COMEDI_CANCEL _IO(CIO, 7)
+#define COMEDI_RANGEINFO _IOR(CIO, 8, struct comedi_rangeinfo)
+#define COMEDI_CMD _IOR(CIO, 9, struct comedi_cmd)
+#define COMEDI_CMDTEST _IOR(CIO, 10, struct comedi_cmd)
+#define COMEDI_INSNLIST _IOR(CIO, 11, struct comedi_insnlist)
+#define COMEDI_INSN _IOR(CIO, 12, struct comedi_insn)
+#define COMEDI_BUFCONFIG _IOR(CIO, 13, struct comedi_bufconfig)
+#define COMEDI_BUFINFO _IOWR(CIO, 14, struct comedi_bufinfo)
+#define COMEDI_POLL _IO(CIO, 15)
+#define COMEDI_SETRSUBD _IO(CIO, 16)
+#define COMEDI_SETWSUBD _IO(CIO, 17)
+struct comedi_insn {
+  unsigned int insn;
+  unsigned int n;
+  unsigned int __user * data;
+  unsigned int subdev;
+  unsigned int chanspec;
+  unsigned int unused[3];
+};
+struct comedi_insnlist {
+  unsigned int n_insns;
+  struct comedi_insn __user * insns;
+};
+struct comedi_cmd {
+  unsigned int subdev;
+  unsigned int flags;
+  unsigned int start_src;
+  unsigned int start_arg;
+  unsigned int scan_begin_src;
+  unsigned int scan_begin_arg;
+  unsigned int convert_src;
+  unsigned int convert_arg;
+  unsigned int scan_end_src;
+  unsigned int scan_end_arg;
+  unsigned int stop_src;
+  unsigned int stop_arg;
+  unsigned int * chanlist;
+  unsigned int chanlist_len;
+  short __user * data;
+  unsigned int data_len;
+};
+struct comedi_chaninfo {
+  unsigned int subdev;
+  unsigned int __user * maxdata_list;
+  unsigned int __user * flaglist;
+  unsigned int __user * rangelist;
+  unsigned int unused[4];
+};
+struct comedi_rangeinfo {
+  unsigned int range_type;
+  void __user * range_ptr;
+};
+struct comedi_krange {
+  int min;
+  int max;
+  unsigned int flags;
+};
+struct comedi_subdinfo {
+  unsigned int type;
+  unsigned int n_chan;
+  unsigned int subd_flags;
+  unsigned int timer_type;
+  unsigned int len_chanlist;
+  unsigned int maxdata;
+  unsigned int flags;
+  unsigned int range_type;
+  unsigned int settling_time_0;
+  unsigned int insn_bits_support;
+  unsigned int unused[8];
+};
+struct comedi_devinfo {
+  unsigned int version_code;
+  unsigned int n_subdevs;
+  char driver_name[COMEDI_NAMELEN];
+  char board_name[COMEDI_NAMELEN];
+  int read_subdevice;
+  int write_subdevice;
+  int unused[30];
+};
+struct comedi_devconfig {
+  char board_name[COMEDI_NAMELEN];
+  int options[COMEDI_NDEVCONFOPTS];
+};
+struct comedi_bufconfig {
+  unsigned int subdevice;
+  unsigned int flags;
+  unsigned int maximum_size;
+  unsigned int size;
+  unsigned int unused[4];
+};
+struct comedi_bufinfo {
+  unsigned int subdevice;
+  unsigned int bytes_read;
+  unsigned int buf_write_ptr;
+  unsigned int buf_read_ptr;
+  unsigned int buf_write_count;
+  unsigned int buf_read_count;
+  unsigned int bytes_written;
+  unsigned int unused[4];
+};
+#define __RANGE(a,b) ((((a) & 0xffff) << 16) | ((b) & 0xffff))
+#define RANGE_OFFSET(a) (((a) >> 16) & 0xffff)
+#define RANGE_LENGTH(b) ((b) & 0xffff)
+#define RF_UNIT(flags) ((flags) & 0xff)
+#define RF_EXTERNAL 0x100
+#define UNIT_volt 0
+#define UNIT_mA 1
+#define UNIT_none 2
+#define COMEDI_MIN_SPEED 0xffffffffu
+enum i8254_mode {
+  I8254_MODE0 = (0 << 1),
+  I8254_MODE1 = (1 << 1),
+  I8254_MODE2 = (2 << 1),
+  I8254_MODE3 = (3 << 1),
+  I8254_MODE4 = (4 << 1),
+  I8254_MODE5 = (5 << 1),
+  I8254_BCD = 1,
+  I8254_BINARY = 0
+};
+#define NI_NAMES_BASE 0x8000u
+#define _TERM_N(base,n,x) ((base) + ((x) & ((n) - 1)))
+#define NI_PFI(x) _TERM_N(NI_NAMES_BASE, 64, x)
+#define TRIGGER_LINE(x) _TERM_N(NI_PFI(- 1) + 1, 8, x)
+#define NI_RTSI_BRD(x) _TERM_N(TRIGGER_LINE(- 1) + 1, 4, x)
+#define NI_MAX_COUNTERS 8
+#define NI_COUNTER_NAMES_BASE (NI_RTSI_BRD(- 1) + 1)
+#define NI_CtrSource(x) _TERM_N(NI_COUNTER_NAMES_BASE, NI_MAX_COUNTERS, x)
+#define NI_GATES_NAMES_BASE (NI_CtrSource(- 1) + 1)
+#define NI_CtrGate(x) _TERM_N(NI_GATES_NAMES_BASE, NI_MAX_COUNTERS, x)
+#define NI_CtrAux(x) _TERM_N(NI_CtrGate(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrA(x) _TERM_N(NI_CtrAux(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrB(x) _TERM_N(NI_CtrA(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrZ(x) _TERM_N(NI_CtrB(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_GATES_NAMES_MAX NI_CtrZ(- 1)
+#define NI_CtrArmStartTrigger(x) _TERM_N(NI_CtrZ(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrInternalOutput(x) _TERM_N(NI_CtrArmStartTrigger(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrOut(x) _TERM_N(NI_CtrInternalOutput(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrSampleClock(x) _TERM_N(NI_CtrOut(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_COUNTER_NAMES_MAX NI_CtrSampleClock(- 1)
+enum ni_common_signal_names {
+  PXI_Star = NI_COUNTER_NAMES_MAX + 1,
+  PXI_Clk10,
+  PXIe_Clk100,
+  NI_AI_SampleClock,
+  NI_AI_SampleClockTimebase,
+  NI_AI_StartTrigger,
+  NI_AI_ReferenceTrigger,
+  NI_AI_ConvertClock,
+  NI_AI_ConvertClockTimebase,
+  NI_AI_PauseTrigger,
+  NI_AI_HoldCompleteEvent,
+  NI_AI_HoldComplete,
+  NI_AI_ExternalMUXClock,
+  NI_AI_STOP,
+  NI_AO_SampleClock,
+  NI_AO_SampleClockTimebase,
+  NI_AO_StartTrigger,
+  NI_AO_PauseTrigger,
+  NI_DI_SampleClock,
+  NI_DI_SampleClockTimebase,
+  NI_DI_StartTrigger,
+  NI_DI_ReferenceTrigger,
+  NI_DI_PauseTrigger,
+  NI_DI_InputBufferFull,
+  NI_DI_ReadyForStartEvent,
+  NI_DI_ReadyForTransferEventBurst,
+  NI_DI_ReadyForTransferEventPipelined,
+  NI_DO_SampleClock,
+  NI_DO_SampleClockTimebase,
+  NI_DO_StartTrigger,
+  NI_DO_PauseTrigger,
+  NI_DO_OutputBufferFull,
+  NI_DO_DataActiveEvent,
+  NI_DO_ReadyForStartEvent,
+  NI_DO_ReadyForTransferEvent,
+  NI_MasterTimebase,
+  NI_20MHzTimebase,
+  NI_80MHzTimebase,
+  NI_100MHzTimebase,
+  NI_200MHzTimebase,
+  NI_100kHzTimebase,
+  NI_10MHzRefClock,
+  NI_FrequencyOutput,
+  NI_ChangeDetectionEvent,
+  NI_AnalogComparisonEvent,
+  NI_WatchdogExpiredEvent,
+  NI_WatchdogExpirationTrigger,
+  NI_SCXI_Trig1,
+  NI_LogicLow,
+  NI_LogicHigh,
+  NI_ExternalStrobe,
+  NI_PFI_DO,
+  NI_CaseGround,
+  NI_RGOUT0,
+  _NI_NAMES_MAX_PLUS_1,
+  NI_NUM_NAMES = _NI_NAMES_MAX_PLUS_1 - NI_NAMES_BASE,
+};
+#define NI_USUAL_PFI_SELECT(x) (((x) < 10) ? (0x1 + (x)) : (0xb + (x)))
+#define NI_USUAL_RTSI_SELECT(x) (((x) < 7) ? (0xb + (x)) : 0x1b)
+#define NI_GPCT_COUNTING_MODE_SHIFT 16
+#define NI_GPCT_INDEX_PHASE_BITSHIFT 20
+#define NI_GPCT_COUNTING_DIRECTION_SHIFT 24
+enum ni_gpct_mode_bits {
+  NI_GPCT_GATE_ON_BOTH_EDGES_BIT = 0x4,
+  NI_GPCT_EDGE_GATE_MODE_MASK = 0x18,
+  NI_GPCT_EDGE_GATE_STARTS_STOPS_BITS = 0x0,
+  NI_GPCT_EDGE_GATE_STOPS_STARTS_BITS = 0x8,
+  NI_GPCT_EDGE_GATE_STARTS_BITS = 0x10,
+  NI_GPCT_EDGE_GATE_NO_STARTS_NO_STOPS_BITS = 0x18,
+  NI_GPCT_STOP_MODE_MASK = 0x60,
+  NI_GPCT_STOP_ON_GATE_BITS = 0x00,
+  NI_GPCT_STOP_ON_GATE_OR_TC_BITS = 0x20,
+  NI_GPCT_STOP_ON_GATE_OR_SECOND_TC_BITS = 0x40,
+  NI_GPCT_LOAD_B_SELECT_BIT = 0x80,
+  NI_GPCT_OUTPUT_MODE_MASK = 0x300,
+  NI_GPCT_OUTPUT_TC_PULSE_BITS = 0x100,
+  NI_GPCT_OUTPUT_TC_TOGGLE_BITS = 0x200,
+  NI_GPCT_OUTPUT_TC_OR_GATE_TOGGLE_BITS = 0x300,
+  NI_GPCT_HARDWARE_DISARM_MASK = 0xc00,
+  NI_GPCT_NO_HARDWARE_DISARM_BITS = 0x000,
+  NI_GPCT_DISARM_AT_TC_BITS = 0x400,
+  NI_GPCT_DISARM_AT_GATE_BITS = 0x800,
+  NI_GPCT_DISARM_AT_TC_OR_GATE_BITS = 0xc00,
+  NI_GPCT_LOADING_ON_TC_BIT = 0x1000,
+  NI_GPCT_LOADING_ON_GATE_BIT = 0x4000,
+  NI_GPCT_COUNTING_MODE_MASK = 0x7 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_NORMAL_BITS = 0x0 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X1_BITS = 0x1 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X2_BITS = 0x2 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X4_BITS = 0x3 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_TWO_PULSE_BITS = 0x4 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_SYNC_SOURCE_BITS = 0x6 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_INDEX_PHASE_MASK = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_LOW_A_LOW_B_BITS = 0x0 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_LOW_A_HIGH_B_BITS = 0x1 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_HIGH_A_LOW_B_BITS = 0x2 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_HIGH_A_HIGH_B_BITS = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_ENABLE_BIT = 0x400000,
+  NI_GPCT_COUNTING_DIRECTION_MASK = 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_DOWN_BITS = 0x00 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_UP_BITS = 0x1 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_HW_UP_DOWN_BITS = 0x2 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_HW_GATE_BITS = 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_RELOAD_SOURCE_MASK = 0xc000000,
+  NI_GPCT_RELOAD_SOURCE_FIXED_BITS = 0x0,
+  NI_GPCT_RELOAD_SOURCE_SWITCHING_BITS = 0x4000000,
+  NI_GPCT_RELOAD_SOURCE_GATE_SELECT_BITS = 0x8000000,
+  NI_GPCT_OR_GATE_BIT = 0x10000000,
+  NI_GPCT_INVERT_OUTPUT_BIT = 0x20000000
+};
+enum ni_gpct_clock_source_bits {
+  NI_GPCT_CLOCK_SRC_SELECT_MASK = 0x3f,
+  NI_GPCT_TIMEBASE_1_CLOCK_SRC_BITS = 0x0,
+  NI_GPCT_TIMEBASE_2_CLOCK_SRC_BITS = 0x1,
+  NI_GPCT_TIMEBASE_3_CLOCK_SRC_BITS = 0x2,
+  NI_GPCT_LOGIC_LOW_CLOCK_SRC_BITS = 0x3,
+  NI_GPCT_NEXT_GATE_CLOCK_SRC_BITS = 0x4,
+  NI_GPCT_NEXT_TC_CLOCK_SRC_BITS = 0x5,
+  NI_GPCT_SOURCE_PIN_i_CLOCK_SRC_BITS = 0x6,
+  NI_GPCT_PXI10_CLOCK_SRC_BITS = 0x7,
+  NI_GPCT_PXI_STAR_TRIGGER_CLOCK_SRC_BITS = 0x8,
+  NI_GPCT_ANALOG_TRIGGER_OUT_CLOCK_SRC_BITS = 0x9,
+  NI_GPCT_PRESCALE_MODE_CLOCK_SRC_MASK = 0x30000000,
+  NI_GPCT_NO_PRESCALE_CLOCK_SRC_BITS = 0x0,
+  NI_GPCT_PRESCALE_X2_CLOCK_SRC_BITS = 0x10000000,
+  NI_GPCT_PRESCALE_X8_CLOCK_SRC_BITS = 0x20000000,
+  NI_GPCT_INVERT_CLOCK_SRC_BIT = 0x80000000
+};
+#define NI_GPCT_SOURCE_PIN_CLOCK_SRC_BITS(x) (0x10 + (x))
+#define NI_GPCT_RTSI_CLOCK_SRC_BITS(x) (0x18 + (x))
+#define NI_GPCT_PFI_CLOCK_SRC_BITS(x) (0x20 + (x))
+enum ni_gpct_gate_select {
+  NI_GPCT_TIMESTAMP_MUX_GATE_SELECT = 0x0,
+  NI_GPCT_AI_START2_GATE_SELECT = 0x12,
+  NI_GPCT_PXI_STAR_TRIGGER_GATE_SELECT = 0x13,
+  NI_GPCT_NEXT_OUT_GATE_SELECT = 0x14,
+  NI_GPCT_AI_START1_GATE_SELECT = 0x1c,
+  NI_GPCT_NEXT_SOURCE_GATE_SELECT = 0x1d,
+  NI_GPCT_ANALOG_TRIGGER_OUT_GATE_SELECT = 0x1e,
+  NI_GPCT_LOGIC_LOW_GATE_SELECT = 0x1f,
+  NI_GPCT_SOURCE_PIN_i_GATE_SELECT = 0x100,
+  NI_GPCT_GATE_PIN_i_GATE_SELECT = 0x101,
+  NI_GPCT_UP_DOWN_PIN_i_GATE_SELECT = 0x201,
+  NI_GPCT_SELECTED_GATE_GATE_SELECT = 0x21e,
+  NI_GPCT_DISABLED_GATE_SELECT = 0x8000,
+};
+#define NI_GPCT_GATE_PIN_GATE_SELECT(x) (0x102 + (x))
+#define NI_GPCT_RTSI_GATE_SELECT(x) NI_USUAL_RTSI_SELECT(x)
+#define NI_GPCT_PFI_GATE_SELECT(x) NI_USUAL_PFI_SELECT(x)
+#define NI_GPCT_UP_DOWN_PIN_GATE_SELECT(x) (0x202 + (x))
+enum ni_gpct_other_index {
+  NI_GPCT_SOURCE_ENCODER_A,
+  NI_GPCT_SOURCE_ENCODER_B,
+  NI_GPCT_SOURCE_ENCODER_Z
+};
+enum ni_gpct_other_select {
+  NI_GPCT_DISABLED_OTHER_SELECT = 0x8000,
+};
+#define NI_GPCT_PFI_OTHER_SELECT(x) NI_USUAL_PFI_SELECT(x)
+enum ni_gpct_arm_source {
+  NI_GPCT_ARM_IMMEDIATE = 0x0,
+  NI_GPCT_ARM_PAIRED_IMMEDIATE = 0x1,
+  NI_GPCT_HW_ARM = 0x1000,
+  NI_GPCT_ARM_UNKNOWN = NI_GPCT_HW_ARM,
+};
+enum ni_gpct_filter_select {
+  NI_GPCT_FILTER_OFF = 0x0,
+  NI_GPCT_FILTER_TIMEBASE_3_SYNC = 0x1,
+  NI_GPCT_FILTER_100x_TIMEBASE_1 = 0x2,
+  NI_GPCT_FILTER_20x_TIMEBASE_1 = 0x3,
+  NI_GPCT_FILTER_10x_TIMEBASE_1 = 0x4,
+  NI_GPCT_FILTER_2x_TIMEBASE_1 = 0x5,
+  NI_GPCT_FILTER_2x_TIMEBASE_3 = 0x6
+};
+enum ni_pfi_filter_select {
+  NI_PFI_FILTER_OFF = 0x0,
+  NI_PFI_FILTER_125ns = 0x1,
+  NI_PFI_FILTER_6425ns = 0x2,
+  NI_PFI_FILTER_2550us = 0x3
+};
+enum ni_mio_clock_source {
+  NI_MIO_INTERNAL_CLOCK = 0,
+  NI_MIO_RTSI_CLOCK = 1,
+  NI_MIO_PLL_PXI_STAR_TRIGGER_CLOCK = 2,
+  NI_MIO_PLL_PXI10_CLOCK = 3,
+  NI_MIO_PLL_RTSI0_CLOCK = 4
+};
+#define NI_MIO_PLL_RTSI_CLOCK(x) (NI_MIO_PLL_RTSI0_CLOCK + (x))
+enum ni_rtsi_routing {
+  NI_RTSI_OUTPUT_ADR_START1 = 0,
+  NI_RTSI_OUTPUT_ADR_START2 = 1,
+  NI_RTSI_OUTPUT_SCLKG = 2,
+  NI_RTSI_OUTPUT_DACUPDN = 3,
+  NI_RTSI_OUTPUT_DA_START1 = 4,
+  NI_RTSI_OUTPUT_G_SRC0 = 5,
+  NI_RTSI_OUTPUT_G_GATE0 = 6,
+  NI_RTSI_OUTPUT_RGOUT0 = 7,
+  NI_RTSI_OUTPUT_RTSI_BRD_0 = 8,
+  NI_RTSI_OUTPUT_RTSI_OSC = 12
+};
+#define NI_RTSI_OUTPUT_RTSI_BRD(x) (NI_RTSI_OUTPUT_RTSI_BRD_0 + (x))
+enum ni_pfi_routing {
+  NI_PFI_OUTPUT_PFI_DEFAULT = 0,
+  NI_PFI_OUTPUT_AI_START1 = 1,
+  NI_PFI_OUTPUT_AI_START2 = 2,
+  NI_PFI_OUTPUT_AI_CONVERT = 3,
+  NI_PFI_OUTPUT_G_SRC1 = 4,
+  NI_PFI_OUTPUT_G_GATE1 = 5,
+  NI_PFI_OUTPUT_AO_UPDATE_N = 6,
+  NI_PFI_OUTPUT_AO_START1 = 7,
+  NI_PFI_OUTPUT_AI_START_PULSE = 8,
+  NI_PFI_OUTPUT_G_SRC0 = 9,
+  NI_PFI_OUTPUT_G_GATE0 = 10,
+  NI_PFI_OUTPUT_EXT_STROBE = 11,
+  NI_PFI_OUTPUT_AI_EXT_MUX_CLK = 12,
+  NI_PFI_OUTPUT_GOUT0 = 13,
+  NI_PFI_OUTPUT_GOUT1 = 14,
+  NI_PFI_OUTPUT_FREQ_OUT = 15,
+  NI_PFI_OUTPUT_PFI_DO = 16,
+  NI_PFI_OUTPUT_I_ATRIG = 17,
+  NI_PFI_OUTPUT_RTSI0 = 18,
+  NI_PFI_OUTPUT_PXI_STAR_TRIGGER_IN = 26,
+  NI_PFI_OUTPUT_SCXI_TRIG1 = 27,
+  NI_PFI_OUTPUT_DIO_CHANGE_DETECT_RTSI = 28,
+  NI_PFI_OUTPUT_CDI_SAMPLE = 29,
+  NI_PFI_OUTPUT_CDO_UPDATE = 30
+};
+#define NI_PFI_OUTPUT_RTSI(x) (NI_PFI_OUTPUT_RTSI0 + (x))
+enum ni_660x_pfi_routing {
+  NI_660X_PFI_OUTPUT_COUNTER = 1,
+  NI_660X_PFI_OUTPUT_DIO = 2,
+};
+#define NI_EXT_PFI(x) (NI_USUAL_PFI_SELECT(x) - 1)
+#define NI_EXT_RTSI(x) (NI_USUAL_RTSI_SELECT(x) - 1)
+enum ni_m_series_cdio_scan_begin_src {
+  NI_CDIO_SCAN_BEGIN_SRC_GROUND = 0,
+  NI_CDIO_SCAN_BEGIN_SRC_AI_START = 18,
+  NI_CDIO_SCAN_BEGIN_SRC_AI_CONVERT = 19,
+  NI_CDIO_SCAN_BEGIN_SRC_PXI_STAR_TRIGGER = 20,
+  NI_CDIO_SCAN_BEGIN_SRC_G0_OUT = 28,
+  NI_CDIO_SCAN_BEGIN_SRC_G1_OUT = 29,
+  NI_CDIO_SCAN_BEGIN_SRC_ANALOG_TRIGGER = 30,
+  NI_CDIO_SCAN_BEGIN_SRC_AO_UPDATE = 31,
+  NI_CDIO_SCAN_BEGIN_SRC_FREQ_OUT = 32,
+  NI_CDIO_SCAN_BEGIN_SRC_DIO_CHANGE_DETECT_IRQ = 33
+};
+#define NI_CDIO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x)
+#define NI_CDIO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x)
+#define NI_AO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x)
+#define NI_AO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x)
+enum ni_freq_out_clock_source_bits {
+  NI_FREQ_OUT_TIMEBASE_1_DIV_2_CLOCK_SRC,
+  NI_FREQ_OUT_TIMEBASE_2_CLOCK_SRC
+};
+enum amplc_dio_clock_source {
+  AMPLC_DIO_CLK_CLKN,
+  AMPLC_DIO_CLK_10MHZ,
+  AMPLC_DIO_CLK_1MHZ,
+  AMPLC_DIO_CLK_100KHZ,
+  AMPLC_DIO_CLK_10KHZ,
+  AMPLC_DIO_CLK_1KHZ,
+  AMPLC_DIO_CLK_OUTNM1,
+  AMPLC_DIO_CLK_EXT,
+  AMPLC_DIO_CLK_VCC,
+  AMPLC_DIO_CLK_GND,
+  AMPLC_DIO_CLK_PAT_PRESENT,
+  AMPLC_DIO_CLK_20MHZ
+};
+enum amplc_dio_ts_clock_src {
+  AMPLC_DIO_TS_CLK_1GHZ,
+  AMPLC_DIO_TS_CLK_1MHZ,
+  AMPLC_DIO_TS_CLK_1KHZ
+};
+enum amplc_dio_gate_source {
+  AMPLC_DIO_GAT_VCC,
+  AMPLC_DIO_GAT_GND,
+  AMPLC_DIO_GAT_GATN,
+  AMPLC_DIO_GAT_NOUTNM2,
+  AMPLC_DIO_GAT_RESERVED4,
+  AMPLC_DIO_GAT_RESERVED5,
+  AMPLC_DIO_GAT_RESERVED6,
+  AMPLC_DIO_GAT_RESERVED7,
+  AMPLC_DIO_GAT_NGATN = 6,
+  AMPLC_DIO_GAT_OUTNM2,
+  AMPLC_DIO_GAT_PAT_PRESENT,
+  AMPLC_DIO_GAT_PAT_OCCURRED,
+  AMPLC_DIO_GAT_PAT_GONE,
+  AMPLC_DIO_GAT_NPAT_PRESENT,
+  AMPLC_DIO_GAT_NPAT_OCCURRED,
+  AMPLC_DIO_GAT_NPAT_GONE
+};
+enum ke_counter_clock_source {
+  KE_CLK_20MHZ,
+  KE_CLK_4MHZ,
+  KE_CLK_EXT
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/counter.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/counter.h
new file mode 100644
index 0000000..091e33d
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/counter.h
@@ -0,0 +1,93 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_COUNTER_H_
+#define _UAPI_COUNTER_H_
+#include <linux/ioctl.h>
+#include <linux/types.h>
+enum counter_component_type {
+  COUNTER_COMPONENT_NONE,
+  COUNTER_COMPONENT_SIGNAL,
+  COUNTER_COMPONENT_COUNT,
+  COUNTER_COMPONENT_FUNCTION,
+  COUNTER_COMPONENT_SYNAPSE_ACTION,
+  COUNTER_COMPONENT_EXTENSION,
+};
+enum counter_scope {
+  COUNTER_SCOPE_DEVICE,
+  COUNTER_SCOPE_SIGNAL,
+  COUNTER_SCOPE_COUNT,
+};
+struct counter_component {
+  __u8 type;
+  __u8 scope;
+  __u8 parent;
+  __u8 id;
+};
+enum counter_event_type {
+  COUNTER_EVENT_OVERFLOW,
+  COUNTER_EVENT_UNDERFLOW,
+  COUNTER_EVENT_OVERFLOW_UNDERFLOW,
+  COUNTER_EVENT_THRESHOLD,
+  COUNTER_EVENT_INDEX,
+};
+struct counter_watch {
+  struct counter_component component;
+  __u8 event;
+  __u8 channel;
+};
+#define COUNTER_ADD_WATCH_IOCTL _IOW(0x3E, 0x00, struct counter_watch)
+#define COUNTER_ENABLE_EVENTS_IOCTL _IO(0x3E, 0x01)
+#define COUNTER_DISABLE_EVENTS_IOCTL _IO(0x3E, 0x02)
+struct counter_event {
+  __aligned_u64 timestamp;
+  __aligned_u64 value;
+  struct counter_watch watch;
+  __u8 status;
+};
+enum counter_count_direction {
+  COUNTER_COUNT_DIRECTION_FORWARD,
+  COUNTER_COUNT_DIRECTION_BACKWARD,
+};
+enum counter_count_mode {
+  COUNTER_COUNT_MODE_NORMAL,
+  COUNTER_COUNT_MODE_RANGE_LIMIT,
+  COUNTER_COUNT_MODE_NON_RECYCLE,
+  COUNTER_COUNT_MODE_MODULO_N,
+};
+enum counter_function {
+  COUNTER_FUNCTION_INCREASE,
+  COUNTER_FUNCTION_DECREASE,
+  COUNTER_FUNCTION_PULSE_DIRECTION,
+  COUNTER_FUNCTION_QUADRATURE_X1_A,
+  COUNTER_FUNCTION_QUADRATURE_X1_B,
+  COUNTER_FUNCTION_QUADRATURE_X2_A,
+  COUNTER_FUNCTION_QUADRATURE_X2_B,
+  COUNTER_FUNCTION_QUADRATURE_X4,
+};
+enum counter_signal_level {
+  COUNTER_SIGNAL_LEVEL_LOW,
+  COUNTER_SIGNAL_LEVEL_HIGH,
+};
+enum counter_synapse_action {
+  COUNTER_SYNAPSE_ACTION_NONE,
+  COUNTER_SYNAPSE_ACTION_RISING_EDGE,
+  COUNTER_SYNAPSE_ACTION_FALLING_EDGE,
+  COUNTER_SYNAPSE_ACTION_BOTH_EDGES,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cxl_mem.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
index 851bd79..15e9e29 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
@@ -21,7 +21,7 @@
 #include <linux/types.h>
 #define CXL_MEM_QUERY_COMMANDS _IOR(0xCE, 1, struct cxl_mem_query_commands)
 #define CXL_MEM_SEND_COMMAND _IOWR(0xCE, 2, struct cxl_send_command)
-#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(MAX, "invalid / last command")
+#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(SET_PARTITION_INFO, "Set Partition Information"), ___C(SET_LSA, "Set Label Storage Area"), ___C(GET_ALERT_CONFIG, "Get Alert Configuration"), ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), ___C(GET_POISON, "Get Poison List"), ___C(INJECT_POISON, "Inject Poison"), ___C(CLEAR_POISON, "Clear Poison"), ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), ___C(SCAN_MEDIA, "Scan Media"), ___C(GET_SCAN_MEDIA, "Get Scan Media Results"), ___C(MAX, "invalid / last command")
 #define ___C(a,b) CXL_MEM_COMMAND_ID_ ##a
 enum {
   CXL_CMDS
@@ -30,7 +30,7 @@
 #define ___C(a,b) { b }
 static const struct {
   const char * name;
-} cxl_command_names[] = {
+} cxl_command_names[] __attribute__((__unused__)) = {
   CXL_CMDS
 };
 #undef ___C
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cyclades.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cyclades.h
index 60bc4af..c0aa7aa 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cyclades.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/cyclades.h
@@ -18,24 +18,14 @@
  ****************************************************************************/
 #ifndef _UAPI_LINUX_CYCLADES_H
 #define _UAPI_LINUX_CYCLADES_H
-#include <linux/types.h>
+#warning "Support for features provided by this header has been removed"
+#warning "Please consider updating your code"
 struct cyclades_monitor {
   unsigned long int_count;
   unsigned long char_count;
   unsigned long char_max;
   unsigned long char_last;
 };
-struct cyclades_idle_stats {
-  __kernel_old_time_t in_use;
-  __kernel_old_time_t recv_idle;
-  __kernel_old_time_t xmit_idle;
-  unsigned long recv_bytes;
-  unsigned long xmit_bytes;
-  unsigned long overruns;
-  unsigned long frame_errs;
-  unsigned long parity_errs;
-};
-#define CYCLADES_MAGIC 0x4359
 #define CYGETMON 0x435901
 #define CYGETTHRESH 0x435902
 #define CYSETTHRESH 0x435903
@@ -54,253 +44,4 @@
 #define CYGETCD1400VER 0x435910
 #define CYSETWAIT 0x435912
 #define CYGETWAIT 0x435913
-#define CZIOC ('M' << 8)
-#define CZ_NBOARDS (CZIOC | 0xfa)
-#define CZ_BOOT_START (CZIOC | 0xfb)
-#define CZ_BOOT_DATA (CZIOC | 0xfc)
-#define CZ_BOOT_END (CZIOC | 0xfd)
-#define CZ_TEST (CZIOC | 0xfe)
-#define CZ_DEF_POLL (HZ / 25)
-#define MAX_BOARD 4
-#define MAX_DEV 256
-#define CYZ_MAX_SPEED 921600
-#define CYZ_FIFO_SIZE 16
-#define CYZ_BOOT_NWORDS 0x100
-struct CYZ_BOOT_CTRL {
-  unsigned short nboard;
-  int status[MAX_BOARD];
-  int nchannel[MAX_BOARD];
-  int fw_rev[MAX_BOARD];
-  unsigned long offset;
-  unsigned long data[CYZ_BOOT_NWORDS];
-};
-#ifndef DP_WINDOW_SIZE
-#define DP_WINDOW_SIZE (0x00080000)
-#define ZE_DP_WINDOW_SIZE (0x00100000)
-#define CTRL_WINDOW_SIZE (0x00000080)
-struct CUSTOM_REG {
-  __u32 fpga_id;
-  __u32 fpga_version;
-  __u32 cpu_start;
-  __u32 cpu_stop;
-  __u32 misc_reg;
-  __u32 idt_mode;
-  __u32 uart_irq_status;
-  __u32 clear_timer0_irq;
-  __u32 clear_timer1_irq;
-  __u32 clear_timer2_irq;
-  __u32 test_register;
-  __u32 test_count;
-  __u32 timer_select;
-  __u32 pr_uart_irq_status;
-  __u32 ram_wait_state;
-  __u32 uart_wait_state;
-  __u32 timer_wait_state;
-  __u32 ack_wait_state;
-};
-struct RUNTIME_9060 {
-  __u32 loc_addr_range;
-  __u32 loc_addr_base;
-  __u32 loc_arbitr;
-  __u32 endian_descr;
-  __u32 loc_rom_range;
-  __u32 loc_rom_base;
-  __u32 loc_bus_descr;
-  __u32 loc_range_mst;
-  __u32 loc_base_mst;
-  __u32 loc_range_io;
-  __u32 pci_base_mst;
-  __u32 pci_conf_io;
-  __u32 filler1;
-  __u32 filler2;
-  __u32 filler3;
-  __u32 filler4;
-  __u32 mail_box_0;
-  __u32 mail_box_1;
-  __u32 mail_box_2;
-  __u32 mail_box_3;
-  __u32 filler5;
-  __u32 filler6;
-  __u32 filler7;
-  __u32 filler8;
-  __u32 pci_doorbell;
-  __u32 loc_doorbell;
-  __u32 intr_ctrl_stat;
-  __u32 init_ctrl;
-};
-#define WIN_RAM 0x00000001L
-#define WIN_CREG 0x14000001L
-#define TIMER_BY_1M 0x00
-#define TIMER_BY_256K 0x01
-#define TIMER_BY_128K 0x02
-#define TIMER_BY_32K 0x03
-#endif
-#ifndef ZFIRM_ID
-#define MAX_CHAN 64
-#define ID_ADDRESS 0x00000180L
-#define ZFIRM_ID 0x5557465AL
-#define ZFIRM_HLT 0x59505B5CL
-#define ZFIRM_RST 0x56040674L
-#define ZF_TINACT_DEF 1000
-#define ZF_TINACT ZF_TINACT_DEF
-struct FIRM_ID {
-  __u32 signature;
-  __u32 zfwctrl_addr;
-};
-#define C_OS_LINUX 0x00000030
-#define C_CH_DISABLE 0x00000000
-#define C_CH_TXENABLE 0x00000001
-#define C_CH_RXENABLE 0x00000002
-#define C_CH_ENABLE 0x00000003
-#define C_CH_LOOPBACK 0x00000004
-#define C_PR_NONE 0x00000000
-#define C_PR_ODD 0x00000001
-#define C_PR_EVEN 0x00000002
-#define C_PR_MARK 0x00000004
-#define C_PR_SPACE 0x00000008
-#define C_PR_PARITY 0x000000ff
-#define C_PR_DISCARD 0x00000100
-#define C_PR_IGNORE 0x00000200
-#define C_DL_CS5 0x00000001
-#define C_DL_CS6 0x00000002
-#define C_DL_CS7 0x00000004
-#define C_DL_CS8 0x00000008
-#define C_DL_CS 0x0000000f
-#define C_DL_1STOP 0x00000010
-#define C_DL_15STOP 0x00000020
-#define C_DL_2STOP 0x00000040
-#define C_DL_STOP 0x000000f0
-#define C_IN_DISABLE 0x00000000
-#define C_IN_TXBEMPTY 0x00000001
-#define C_IN_TXLOWWM 0x00000002
-#define C_IN_RXHIWM 0x00000010
-#define C_IN_RXNNDT 0x00000020
-#define C_IN_MDCD 0x00000100
-#define C_IN_MDSR 0x00000200
-#define C_IN_MRI 0x00000400
-#define C_IN_MCTS 0x00000800
-#define C_IN_RXBRK 0x00001000
-#define C_IN_PR_ERROR 0x00002000
-#define C_IN_FR_ERROR 0x00004000
-#define C_IN_OVR_ERROR 0x00008000
-#define C_IN_RXOFL 0x00010000
-#define C_IN_IOCTLW 0x00020000
-#define C_IN_MRTS 0x00040000
-#define C_IN_ICHAR 0x00080000
-#define C_FL_OXX 0x00000001
-#define C_FL_IXX 0x00000002
-#define C_FL_OIXANY 0x00000004
-#define C_FL_SWFLOW 0x0000000f
-#define C_FS_TXIDLE 0x00000000
-#define C_FS_SENDING 0x00000001
-#define C_FS_SWFLOW 0x00000002
-#define C_RS_PARAM 0x80000000
-#define C_RS_RTS 0x00000001
-#define C_RS_DTR 0x00000004
-#define C_RS_DCD 0x00000100
-#define C_RS_DSR 0x00000200
-#define C_RS_RI 0x00000400
-#define C_RS_CTS 0x00000800
-#define C_CM_RESET 0x01
-#define C_CM_IOCTL 0x02
-#define C_CM_IOCTLW 0x03
-#define C_CM_IOCTLM 0x04
-#define C_CM_SENDXOFF 0x10
-#define C_CM_SENDXON 0x11
-#define C_CM_CLFLOW 0x12
-#define C_CM_SENDBRK 0x41
-#define C_CM_INTBACK 0x42
-#define C_CM_SET_BREAK 0x43
-#define C_CM_CLR_BREAK 0x44
-#define C_CM_CMD_DONE 0x45
-#define C_CM_INTBACK2 0x46
-#define C_CM_TINACT 0x51
-#define C_CM_IRQ_ENBL 0x52
-#define C_CM_IRQ_DSBL 0x53
-#define C_CM_ACK_ENBL 0x54
-#define C_CM_ACK_DSBL 0x55
-#define C_CM_FLUSH_RX 0x56
-#define C_CM_FLUSH_TX 0x57
-#define C_CM_Q_ENABLE 0x58
-#define C_CM_Q_DISABLE 0x59
-#define C_CM_TXBEMPTY 0x60
-#define C_CM_TXLOWWM 0x61
-#define C_CM_RXHIWM 0x62
-#define C_CM_RXNNDT 0x63
-#define C_CM_TXFEMPTY 0x64
-#define C_CM_ICHAR 0x65
-#define C_CM_MDCD 0x70
-#define C_CM_MDSR 0x71
-#define C_CM_MRI 0x72
-#define C_CM_MCTS 0x73
-#define C_CM_MRTS 0x74
-#define C_CM_RXBRK 0x84
-#define C_CM_PR_ERROR 0x85
-#define C_CM_FR_ERROR 0x86
-#define C_CM_OVR_ERROR 0x87
-#define C_CM_RXOFL 0x88
-#define C_CM_CMDERROR 0x90
-#define C_CM_FATAL 0x91
-#define C_CM_HW_RESET 0x92
-struct CH_CTRL {
-  __u32 op_mode;
-  __u32 intr_enable;
-  __u32 sw_flow;
-  __u32 flow_status;
-  __u32 comm_baud;
-  __u32 comm_parity;
-  __u32 comm_data_l;
-  __u32 comm_flags;
-  __u32 hw_flow;
-  __u32 rs_control;
-  __u32 rs_status;
-  __u32 flow_xon;
-  __u32 flow_xoff;
-  __u32 hw_overflow;
-  __u32 sw_overflow;
-  __u32 comm_error;
-  __u32 ichar;
-  __u32 filler[7];
-};
-struct BUF_CTRL {
-  __u32 flag_dma;
-  __u32 tx_bufaddr;
-  __u32 tx_bufsize;
-  __u32 tx_threshold;
-  __u32 tx_get;
-  __u32 tx_put;
-  __u32 rx_bufaddr;
-  __u32 rx_bufsize;
-  __u32 rx_threshold;
-  __u32 rx_get;
-  __u32 rx_put;
-  __u32 filler[5];
-};
-struct BOARD_CTRL {
-  __u32 n_channel;
-  __u32 fw_version;
-  __u32 op_system;
-  __u32 dr_version;
-  __u32 inactivity;
-  __u32 hcmd_channel;
-  __u32 hcmd_param;
-  __u32 fwcmd_channel;
-  __u32 fwcmd_param;
-  __u32 zf_int_queue_addr;
-  __u32 filler[6];
-};
-#define QUEUE_SIZE (10 * MAX_CHAN)
-struct INT_QUEUE {
-  unsigned char intr_code[QUEUE_SIZE];
-  unsigned long channel[QUEUE_SIZE];
-  unsigned long param[QUEUE_SIZE];
-  unsigned long put;
-  unsigned long get;
-};
-struct ZFW_CTRL {
-  struct BOARD_CTRL board_ctrl;
-  struct CH_CTRL ch_ctrl[MAX_CHAN];
-  struct BUF_CTRL buf_ctrl[MAX_CHAN];
-};
-#endif
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/devlink.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/devlink.h
index e6e006f..a809306 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/devlink.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/devlink.h
@@ -99,6 +99,10 @@
   DEVLINK_CMD_TRAP_POLICER_NEW,
   DEVLINK_CMD_TRAP_POLICER_DEL,
   DEVLINK_CMD_HEALTH_REPORTER_TEST,
+  DEVLINK_CMD_RATE_GET,
+  DEVLINK_CMD_RATE_SET,
+  DEVLINK_CMD_RATE_NEW,
+  DEVLINK_CMD_RATE_DEL,
   __DEVLINK_CMD_MAX,
   DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
 };
@@ -141,6 +145,10 @@
   DEVLINK_PORT_FLAVOUR_UNUSED,
   DEVLINK_PORT_FLAVOUR_PCI_SF,
 };
+enum devlink_rate_type {
+  DEVLINK_RATE_TYPE_LEAF,
+  DEVLINK_RATE_TYPE_NODE,
+};
 enum devlink_param_cmode {
   DEVLINK_PARAM_CMODE_RUNTIME,
   DEVLINK_PARAM_CMODE_DRIVERINIT,
@@ -370,6 +378,12 @@
   DEVLINK_ATTR_RELOAD_ACTION_INFO,
   DEVLINK_ATTR_RELOAD_ACTION_STATS,
   DEVLINK_ATTR_PORT_PCI_SF_NUMBER,
+  DEVLINK_ATTR_RATE_TYPE,
+  DEVLINK_ATTR_RATE_TX_SHARE,
+  DEVLINK_ATTR_RATE_TX_MAX,
+  DEVLINK_ATTR_RATE_NODE_NAME,
+  DEVLINK_ATTR_RATE_PARENT_NODE_NAME,
+  DEVLINK_ATTR_REGION_MAX_SNAPSHOTS,
   __DEVLINK_ATTR_MAX,
   DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
 };
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dlm_device.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dlm_device.h
index 9cf41a8..5e54d2e 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dlm_device.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dlm_device.h
@@ -39,12 +39,12 @@
   void __user * bastaddr;
   struct dlm_lksb __user * lksb;
   char lvb[DLM_USER_LVB_LEN];
-  char name[0];
+  char name[];
 };
 struct dlm_lspace_params {
   __u32 flags;
   __u32 minor;
-  char name[0];
+  char name[];
 };
 struct dlm_purge_params {
   __u32 nodeid;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
index 4c0a9f0..09f8a98 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
@@ -55,6 +55,8 @@
   __u32 next;
   char name[0];
 };
+#define DM_NAME_LIST_FLAG_HAS_UUID 1
+#define DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID 2
 struct dm_target_versions {
   __u32 next;
   __u32 version[3];
@@ -104,9 +106,9 @@
 #define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
 #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
 #define DM_VERSION_MAJOR 4
-#define DM_VERSION_MINOR 44
+#define DM_VERSION_MINOR 45
 #define DM_VERSION_PATCHLEVEL 0
-#define DM_VERSION_EXTRA "-ioctl(2021-02-01)"
+#define DM_VERSION_EXTRA "-ioctl(2021-03-22)"
 #define DM_READONLY_FLAG (1 << 0)
 #define DM_SUSPEND_FLAG (1 << 1)
 #define DM_PERSISTENT_DEV_FLAG (1 << 3)
@@ -124,4 +126,5 @@
 #define DM_DATA_OUT_FLAG (1 << 16)
 #define DM_DEFERRED_REMOVE (1 << 17)
 #define DM_INTERNAL_SUSPEND_FLAG (1 << 18)
+#define DM_IMA_MEASUREMENT_FLAG (1 << 19)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
index db7c7e5..6164991 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
@@ -130,6 +130,9 @@
   __s32 qs_rtbtimelimit;
   __u16 qs_bwarnlimit;
   __u16 qs_iwarnlimit;
-  __u64 qs_pad2[8];
+  __u16 qs_rtbwarnlimit;
+  __u16 qs_pad3;
+  __u32 qs_pad4;
+  __u64 qs_pad2[7];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/elf.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/elf.h
index f9f122a..7655f12 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/elf.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/elf.h
@@ -360,6 +360,7 @@
 #define NT_ARM_PACA_KEYS 0x407
 #define NT_ARM_PACG_KEYS 0x408
 #define NT_ARM_TAGGED_ADDR_CTRL 0x409
+#define NT_ARM_PAC_ENABLED_KEYS 0x40a
 #define NT_ARC_V2 0x600
 #define NT_VMCOREDD 0x700
 #define NT_MIPS_DSP 0x800
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ethtool.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ethtool.h
index 021a69b..741ea2a 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ethtool.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ethtool.h
@@ -78,6 +78,7 @@
   ETHTOOL_RX_COPYBREAK,
   ETHTOOL_TX_COPYBREAK,
   ETHTOOL_PFC_PREVENTION_TOUT,
+  ETHTOOL_TX_COPYBREAK_BUF_SIZE,
   __ETHTOOL_TUNABLE_COUNT,
 };
 enum tunable_type_id {
@@ -207,6 +208,7 @@
   ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
   ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
   ETHTOOL_LINK_EXT_STATE_OVERHEAT,
+  ETHTOOL_LINK_EXT_STATE_MODULE,
 };
 enum ethtool_link_ext_substate_autoneg {
   ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
@@ -232,11 +234,16 @@
 enum ethtool_link_ext_substate_bad_signal_integrity {
   ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
   ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
+  ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST,
+  ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS,
 };
 enum ethtool_link_ext_substate_cable_issue {
   ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
   ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
 };
+enum ethtool_link_ext_substate_module {
+  ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
+};
 #define ETH_GSTRING_LEN 32
 enum ethtool_stringset {
   ETH_SS_TEST = 0,
@@ -255,8 +262,21 @@
   ETH_SS_TS_TX_TYPES,
   ETH_SS_TS_RX_FILTERS,
   ETH_SS_UDP_TUNNEL_TYPES,
+  ETH_SS_STATS_STD,
+  ETH_SS_STATS_ETH_PHY,
+  ETH_SS_STATS_ETH_MAC,
+  ETH_SS_STATS_ETH_CTRL,
+  ETH_SS_STATS_RMON,
   ETH_SS_COUNT
 };
+enum ethtool_module_power_mode_policy {
+  ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
+  ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO,
+};
+enum ethtool_module_power_mode {
+  ETHTOOL_MODULE_POWER_MODE_LOW = 1,
+  ETHTOOL_MODULE_POWER_MODE_HIGH,
+};
 struct ethtool_gstrings {
   __u32 cmd;
   __u32 string_set;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
index 67091a1..7dcae22 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
@@ -49,6 +49,13 @@
   ETHTOOL_MSG_CABLE_TEST_ACT,
   ETHTOOL_MSG_CABLE_TEST_TDR_ACT,
   ETHTOOL_MSG_TUNNEL_INFO_GET,
+  ETHTOOL_MSG_FEC_GET,
+  ETHTOOL_MSG_FEC_SET,
+  ETHTOOL_MSG_MODULE_EEPROM_GET,
+  ETHTOOL_MSG_STATS_GET,
+  ETHTOOL_MSG_PHC_VCLOCKS_GET,
+  ETHTOOL_MSG_MODULE_GET,
+  ETHTOOL_MSG_MODULE_SET,
   __ETHTOOL_MSG_USER_CNT,
   ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
 };
@@ -83,6 +90,13 @@
   ETHTOOL_MSG_CABLE_TEST_NTF,
   ETHTOOL_MSG_CABLE_TEST_TDR_NTF,
   ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,
+  ETHTOOL_MSG_FEC_GET_REPLY,
+  ETHTOOL_MSG_FEC_NTF,
+  ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
+  ETHTOOL_MSG_STATS_GET_REPLY,
+  ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
+  ETHTOOL_MSG_MODULE_GET_REPLY,
+  ETHTOOL_MSG_MODULE_NTF,
   __ETHTOOL_MSG_KERNEL_CNT,
   ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
 };
@@ -236,6 +250,7 @@
   ETHTOOL_A_RINGS_RX_MINI,
   ETHTOOL_A_RINGS_RX_JUMBO,
   ETHTOOL_A_RINGS_TX,
+  ETHTOOL_A_RINGS_RX_BUF_LEN,
   __ETHTOOL_A_RINGS_CNT,
   ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
 };
@@ -278,6 +293,8 @@
   ETHTOOL_A_COALESCE_TX_USECS_HIGH,
   ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH,
   ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL,
+  ETHTOOL_A_COALESCE_USE_CQE_MODE_TX,
+  ETHTOOL_A_COALESCE_USE_CQE_MODE_RX,
   __ETHTOOL_A_COALESCE_CNT,
   ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
 };
@@ -322,6 +339,14 @@
   ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
 };
 enum {
+  ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
+  ETHTOOL_A_PHC_VCLOCKS_HEADER,
+  ETHTOOL_A_PHC_VCLOCKS_NUM,
+  ETHTOOL_A_PHC_VCLOCKS_INDEX,
+  __ETHTOOL_A_PHC_VCLOCKS_CNT,
+  ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)
+};
+enum {
   ETHTOOL_A_CABLE_TEST_UNSPEC,
   ETHTOOL_A_CABLE_TEST_HEADER,
   __ETHTOOL_A_CABLE_TEST_CNT,
@@ -461,6 +486,121 @@
   __ETHTOOL_A_TUNNEL_INFO_CNT,
   ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
 };
+enum {
+  ETHTOOL_A_FEC_UNSPEC,
+  ETHTOOL_A_FEC_HEADER,
+  ETHTOOL_A_FEC_MODES,
+  ETHTOOL_A_FEC_AUTO,
+  ETHTOOL_A_FEC_ACTIVE,
+  ETHTOOL_A_FEC_STATS,
+  __ETHTOOL_A_FEC_CNT,
+  ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1)
+};
+enum {
+  ETHTOOL_A_FEC_STAT_UNSPEC,
+  ETHTOOL_A_FEC_STAT_PAD,
+  ETHTOOL_A_FEC_STAT_CORRECTED,
+  ETHTOOL_A_FEC_STAT_UNCORR,
+  ETHTOOL_A_FEC_STAT_CORR_BITS,
+  __ETHTOOL_A_FEC_STAT_CNT,
+  ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_EEPROM_UNSPEC,
+  ETHTOOL_A_MODULE_EEPROM_HEADER,
+  ETHTOOL_A_MODULE_EEPROM_OFFSET,
+  ETHTOOL_A_MODULE_EEPROM_LENGTH,
+  ETHTOOL_A_MODULE_EEPROM_PAGE,
+  ETHTOOL_A_MODULE_EEPROM_BANK,
+  ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS,
+  ETHTOOL_A_MODULE_EEPROM_DATA,
+  __ETHTOOL_A_MODULE_EEPROM_CNT,
+  ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_UNSPEC,
+  ETHTOOL_A_STATS_PAD,
+  ETHTOOL_A_STATS_HEADER,
+  ETHTOOL_A_STATS_GROUPS,
+  ETHTOOL_A_STATS_GRP,
+  __ETHTOOL_A_STATS_CNT,
+  ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+};
+enum {
+  ETHTOOL_STATS_ETH_PHY,
+  ETHTOOL_STATS_ETH_MAC,
+  ETHTOOL_STATS_ETH_CTRL,
+  ETHTOOL_STATS_RMON,
+  __ETHTOOL_STATS_CNT
+};
+enum {
+  ETHTOOL_A_STATS_GRP_UNSPEC,
+  ETHTOOL_A_STATS_GRP_PAD,
+  ETHTOOL_A_STATS_GRP_ID,
+  ETHTOOL_A_STATS_GRP_SS_ID,
+  ETHTOOL_A_STATS_GRP_STAT,
+  ETHTOOL_A_STATS_GRP_HIST_RX,
+  ETHTOOL_A_STATS_GRP_HIST_TX,
+  ETHTOOL_A_STATS_GRP_HIST_BKT_LOW,
+  ETHTOOL_A_STATS_GRP_HIST_BKT_HI,
+  ETHTOOL_A_STATS_GRP_HIST_VAL,
+  __ETHTOOL_A_STATS_GRP_CNT,
+  ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
+  __ETHTOOL_A_STATS_ETH_PHY_CNT,
+  ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
+  ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
+  ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
+  ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
+  ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
+  ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
+  ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
+  ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
+  ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
+  ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
+  ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
+  ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
+  ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
+  ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
+  ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
+  ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
+  __ETHTOOL_A_STATS_ETH_MAC_CNT,
+  ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_CTRL_3_TX,
+  ETHTOOL_A_STATS_ETH_CTRL_4_RX,
+  ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,
+  __ETHTOOL_A_STATS_ETH_CTRL_CNT,
+  ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_RMON_UNDERSIZE,
+  ETHTOOL_A_STATS_RMON_OVERSIZE,
+  ETHTOOL_A_STATS_RMON_FRAG,
+  ETHTOOL_A_STATS_RMON_JABBER,
+  __ETHTOOL_A_STATS_RMON_CNT,
+  ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_UNSPEC,
+  ETHTOOL_A_MODULE_HEADER,
+  ETHTOOL_A_MODULE_POWER_MODE_POLICY,
+  ETHTOOL_A_MODULE_POWER_MODE,
+  __ETHTOOL_A_MODULE_CNT,
+  ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
+};
 #define ETHTOOL_GENL_NAME "ethtool"
 #define ETHTOOL_GENL_VERSION 1
 #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fanotify.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fanotify.h
index c63d058..6249292 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fanotify.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fanotify.h
@@ -33,10 +33,12 @@
 #define FAN_MOVE_SELF 0x00000800
 #define FAN_OPEN_EXEC 0x00001000
 #define FAN_Q_OVERFLOW 0x00004000
+#define FAN_FS_ERROR 0x00008000
 #define FAN_OPEN_PERM 0x00010000
 #define FAN_ACCESS_PERM 0x00020000
 #define FAN_OPEN_EXEC_PERM 0x00040000
 #define FAN_EVENT_ON_CHILD 0x08000000
+#define FAN_RENAME 0x10000000
 #define FAN_ONDIR 0x40000000
 #define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE)
 #define FAN_MOVE (FAN_MOVED_FROM | FAN_MOVED_TO)
@@ -49,11 +51,14 @@
 #define FAN_UNLIMITED_QUEUE 0x00000010
 #define FAN_UNLIMITED_MARKS 0x00000020
 #define FAN_ENABLE_AUDIT 0x00000040
+#define FAN_REPORT_PIDFD 0x00000080
 #define FAN_REPORT_TID 0x00000100
 #define FAN_REPORT_FID 0x00000200
 #define FAN_REPORT_DIR_FID 0x00000400
 #define FAN_REPORT_NAME 0x00000800
+#define FAN_REPORT_TARGET_FID 0x00001000
 #define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)
+#define FAN_REPORT_DFID_NAME_TARGET (FAN_REPORT_DFID_NAME | FAN_REPORT_FID | FAN_REPORT_TARGET_FID)
 #define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS)
 #define FAN_MARK_ADD 0x00000001
 #define FAN_MARK_REMOVE 0x00000002
@@ -82,6 +87,10 @@
 #define FAN_EVENT_INFO_TYPE_FID 1
 #define FAN_EVENT_INFO_TYPE_DFID_NAME 2
 #define FAN_EVENT_INFO_TYPE_DFID 3
+#define FAN_EVENT_INFO_TYPE_PIDFD 4
+#define FAN_EVENT_INFO_TYPE_ERROR 5
+#define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10
+#define FAN_EVENT_INFO_TYPE_NEW_DFID_NAME 12
 struct fanotify_event_info_header {
   __u8 info_type;
   __u8 pad;
@@ -92,6 +101,15 @@
   __kernel_fsid_t fsid;
   unsigned char handle[0];
 };
+struct fanotify_event_info_pidfd {
+  struct fanotify_event_info_header hdr;
+  __s32 pidfd;
+};
+struct fanotify_event_info_error {
+  struct fanotify_event_info_header hdr;
+  __s32 error;
+  __u32 error_count;
+};
 struct fanotify_response {
   __s32 fd;
   __u32 response;
@@ -100,6 +118,8 @@
 #define FAN_DENY 0x02
 #define FAN_AUDIT 0x10
 #define FAN_NOFD - 1
+#define FAN_NOPIDFD FAN_NOFD
+#define FAN_EPIDFD - 2
 #define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
 #define FAN_EVENT_NEXT(meta,len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata *) (((char *) (meta)) + (meta)->event_len))
 #define FAN_EVENT_OK(meta,len) ((long) (len) >= (long) FAN_EVENT_METADATA_LEN && (long) (meta)->event_len >= (long) FAN_EVENT_METADATA_LEN && (long) (meta)->event_len <= (long) (len))
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fs.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fs.h
index 0601768..3bb4183 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fs.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fs.h
@@ -129,6 +129,7 @@
 #define BLKSECDISCARD _IO(0x12, 125)
 #define BLKROTATIONAL _IO(0x12, 126)
 #define BLKZEROOUT _IO(0x12, 127)
+#define BLKGETDISKSEQ _IOR(0x12, 128, __u64)
 #define BMAP_IOCTL 1
 #define FIBMAP _IO(0x00, 1)
 #define FIGETBSZ _IO(0x00, 2)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fuse.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fuse.h
index efb5424..144e960 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fuse.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/fuse.h
@@ -20,7 +20,7 @@
 #define _LINUX_FUSE_H
 #include <stdint.h>
 #define FUSE_KERNEL_VERSION 7
-#define FUSE_KERNEL_MINOR_VERSION 33
+#define FUSE_KERNEL_MINOR_VERSION 36
 #define FUSE_ROOT_ID 1
 struct fuse_attr {
   uint64_t ino;
@@ -75,6 +75,7 @@
 #define FOPEN_NONSEEKABLE (1 << 2)
 #define FOPEN_CACHE_DIR (1 << 3)
 #define FOPEN_STREAM (1 << 4)
+#define FOPEN_NOFLUSH (1 << 5)
 #define FUSE_ASYNC_READ (1 << 0)
 #define FUSE_POSIX_LOCKS (1 << 1)
 #define FUSE_FILE_OPS (1 << 2)
@@ -104,7 +105,16 @@
 #define FUSE_MAP_ALIGNMENT (1 << 26)
 #define FUSE_SUBMOUNTS (1 << 27)
 #define FUSE_HANDLE_KILLPRIV_V2 (1 << 28)
+#define FUSE_SETXATTR_EXT (1 << 29)
+#define FUSE_INIT_EXT (1 << 30)
+#define FUSE_INIT_RESERVED (1 << 31)
+#define FUSE_SECURITY_CTX (1ULL << 32)
+#define FUSE_HAS_INODE_DAX (1ULL << 33)
+#if FUSE_KERNEL_VERSION > 7 || FUSE_KERNEL_VERSION == 7 && FUSE_KERNEL_MINOR_VERSION >= 36
+#define FUSE_PASSTHROUGH (1ULL << 63)
+#else
 #define FUSE_PASSTHROUGH (1 << 31)
+#endif
 #define CUSE_UNRESTRICTED_IOCTL (1 << 0)
 #define FUSE_RELEASE_FLUSH (1 << 0)
 #define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1)
@@ -125,7 +135,9 @@
 #define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0)
 #define FUSE_FSYNC_FDATASYNC (1 << 0)
 #define FUSE_ATTR_SUBMOUNT (1 << 0)
+#define FUSE_ATTR_DAX (1 << 1)
 #define FUSE_OPEN_KILL_SUIDGID (1 << 0)
+#define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0)
 enum fuse_opcode {
   FUSE_LOOKUP = 1,
   FUSE_FORGET = 2,
@@ -174,6 +186,7 @@
   FUSE_COPY_FILE_RANGE = 47,
   FUSE_SETUPMAPPING = 48,
   FUSE_REMOVEMAPPING = 49,
+  FUSE_SYNCFS = 50,
   FUSE_CANONICAL_PATH = 2016,
   CUSE_INIT = 4096,
   CUSE_INIT_BSWAP_RESERVED = 1048576,
@@ -321,9 +334,12 @@
   uint32_t fsync_flags;
   uint32_t padding;
 };
+#define FUSE_COMPAT_SETXATTR_IN_SIZE 8
 struct fuse_setxattr_in {
   uint32_t size;
   uint32_t flags;
+  uint32_t setxattr_flags;
+  uint32_t padding;
 };
 struct fuse_getxattr_in {
   uint32_t size;
@@ -352,6 +368,8 @@
   uint32_t minor;
   uint32_t max_readahead;
   uint32_t flags;
+  uint32_t flags2;
+  uint32_t unused[11];
 };
 #define FUSE_COMPAT_INIT_OUT_SIZE 8
 #define FUSE_COMPAT_22_INIT_OUT_SIZE 24
@@ -366,7 +384,8 @@
   uint32_t time_gran;
   uint16_t max_pages;
   uint16_t map_alignment;
-  uint32_t unused[8];
+  uint32_t flags2;
+  uint32_t unused[7];
 };
 #define CUSE_INIT_INFO_MAX 4096
 struct cuse_init_in {
@@ -445,11 +464,6 @@
   uint32_t pid;
   uint32_t padding;
 };
-struct fuse_passthrough_out {
-  uint32_t fd;
-  uint32_t len;
-  void * vec;
-};
 struct fuse_out_header {
   uint32_t len;
   int32_t error;
@@ -462,8 +476,9 @@
   uint32_t type;
   char name[];
 };
+#define FUSE_REC_ALIGN(x) (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
 #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
-#define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
+#define FUSE_DIRENT_ALIGN(x) FUSE_REC_ALIGN(x)
 #define FUSE_DIRENT_SIZE(d) FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
 struct fuse_direntplus {
   struct fuse_entry_out entry_out;
@@ -510,7 +525,7 @@
 };
 #define FUSE_DEV_IOC_MAGIC 229
 #define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
-#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 127, struct fuse_passthrough_out)
+#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 126, uint32_t)
 struct fuse_lseek_in {
   uint64_t fh;
   uint64_t offset;
@@ -546,4 +561,15 @@
   uint64_t len;
 };
 #define FUSE_REMOVEMAPPING_MAX_ENTRY (PAGE_SIZE / sizeof(struct fuse_removemapping_one))
+struct fuse_syncfs_in {
+  uint64_t padding;
+};
+struct fuse_secctx {
+  uint32_t size;
+  uint32_t padding;
+};
+struct fuse_secctx_header {
+  uint32_t size;
+  uint32_t nr_secctx;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/futex.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/futex.h
index 6176f38..c80b90c 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/futex.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/futex.h
@@ -33,6 +33,7 @@
 #define FUTEX_WAKE_BITSET 10
 #define FUTEX_WAIT_REQUEUE_PI 11
 #define FUTEX_CMP_REQUEUE_PI 12
+#define FUTEX_LOCK_PI2 13
 #define FUTEX_PRIVATE_FLAG 128
 #define FUTEX_CLOCK_REALTIME 256
 #define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
@@ -42,12 +43,21 @@
 #define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_OP_PRIVATE (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
 #define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
+#define FUTEX_LOCK_PI2_PRIVATE (FUTEX_LOCK_PI2 | FUTEX_PRIVATE_FLAG)
 #define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
+#define FUTEX_32 2
+#define FUTEX_WAITV_MAX 128
+struct futex_waitv {
+  __u64 val;
+  __u64 uaddr;
+  __u32 flags;
+  __u32 __reserved;
+};
 struct robust_list {
   struct robust_list __user * next;
 };
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/hyperv.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/hyperv.h
index daa8fc7..4790bbf 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/hyperv.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/hyperv.h
@@ -18,7 +18,7 @@
  ****************************************************************************/
 #ifndef _UAPI_HYPERV_H
 #define _UAPI_HYPERV_H
-#include <linux/uuid.h>
+#include <linux/types.h>
 #define UTIL_FW_MINOR 0
 #define UTIL_WS2K8_FW_MAJOR 1
 #define UTIL_WS2K8_FW_VERSION (UTIL_WS2K8_FW_MAJOR << 16 | UTIL_FW_MINOR)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/icmp.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/icmp.h
index 5892d12..8847a48 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/icmp.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/icmp.h
@@ -20,6 +20,8 @@
 #define _UAPI_LINUX_ICMP_H
 #include <linux/types.h>
 #include <asm/byteorder.h>
+#include <linux/if.h>
+#include <linux/in6.h>
 #define ICMP_ECHOREPLY 0
 #define ICMP_DEST_UNREACH 3
 #define ICMP_SOURCE_QUENCH 4
@@ -57,6 +59,20 @@
 #define ICMP_REDIR_HOSTTOS 3
 #define ICMP_EXC_TTL 0
 #define ICMP_EXC_FRAGTIME 1
+#define ICMP_EXT_ECHO 42
+#define ICMP_EXT_ECHOREPLY 43
+#define ICMP_EXT_CODE_MAL_QUERY 1
+#define ICMP_EXT_CODE_NO_IF 2
+#define ICMP_EXT_CODE_NO_TABLE_ENT 3
+#define ICMP_EXT_CODE_MULT_IFS 4
+#define ICMP_EXT_ECHOREPLY_ACTIVE (1 << 2)
+#define ICMP_EXT_ECHOREPLY_IPV4 (1 << 1)
+#define ICMP_EXT_ECHOREPLY_IPV6 1
+#define ICMP_EXT_ECHO_CTYPE_NAME 1
+#define ICMP_EXT_ECHO_CTYPE_INDEX 2
+#define ICMP_EXT_ECHO_CTYPE_ADDR 3
+#define ICMP_AFI_IP 1
+#define ICMP_AFI_IP6 2
 struct icmphdr {
   __u8 type;
   __u8 code;
@@ -94,4 +110,23 @@
   __u8 class_num;
   __u8 class_type;
 };
+struct icmp_ext_echo_ctype3_hdr {
+  __be16 afi;
+  __u8 addrlen;
+  __u8 reserved;
+};
+struct icmp_ext_echo_iio {
+  struct icmp_extobj_hdr extobj_hdr;
+  union {
+    char name[IFNAMSIZ];
+    __be32 ifindex;
+    struct {
+      struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
+      union {
+        __be32 ipv4_addr;
+        struct in6_addr ipv6_addr;
+      } ip_addr;
+    } addr;
+  } ident;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/icmpv6.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/icmpv6.h
index e23fbb4..5285698 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/icmpv6.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/icmpv6.h
@@ -107,6 +107,8 @@
 #define ICMPV6_UNK_NEXTHDR 1
 #define ICMPV6_UNK_OPTION 2
 #define ICMPV6_HDR_INCOMP 3
+#define ICMPV6_EXT_ECHO_REQUEST 160
+#define ICMPV6_EXT_ECHO_REPLY 161
 #define ICMPV6_FILTER 1
 #define ICMPV6_FILTER_BLOCK 1
 #define ICMPV6_FILTER_PASS 2
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/idxd.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/idxd.h
index 4f1282e..ad9ed48 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/idxd.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/idxd.h
@@ -19,6 +19,28 @@
 #ifndef _USR_IDXD_H_
 #define _USR_IDXD_H_
 #include <stdint.h>
+enum idxd_scmd_stat {
+  IDXD_SCMD_DEV_ENABLED = 0x80000010,
+  IDXD_SCMD_DEV_NOT_ENABLED = 0x80000020,
+  IDXD_SCMD_WQ_ENABLED = 0x80000021,
+  IDXD_SCMD_DEV_DMA_ERR = 0x80020000,
+  IDXD_SCMD_WQ_NO_GRP = 0x80030000,
+  IDXD_SCMD_WQ_NO_NAME = 0x80040000,
+  IDXD_SCMD_WQ_NO_SVM = 0x80050000,
+  IDXD_SCMD_WQ_NO_THRESH = 0x80060000,
+  IDXD_SCMD_WQ_PORTAL_ERR = 0x80070000,
+  IDXD_SCMD_WQ_RES_ALLOC_ERR = 0x80080000,
+  IDXD_SCMD_PERCPU_ERR = 0x80090000,
+  IDXD_SCMD_DMA_CHAN_ERR = 0x800a0000,
+  IDXD_SCMD_CDEV_ERR = 0x800b0000,
+  IDXD_SCMD_WQ_NO_SWQ_SUPPORT = 0x800c0000,
+  IDXD_SCMD_WQ_NONE_CONFIGURED = 0x800d0000,
+  IDXD_SCMD_WQ_NO_SIZE = 0x800e0000,
+  IDXD_SCMD_WQ_NO_PRIV = 0x800f0000,
+  IDXD_SCMD_WQ_IRQ_ERR = 0x80100000,
+};
+#define IDXD_SCMD_SOFTERR_MASK 0x80000000
+#define IDXD_SCMD_SOFTERR_SHIFT 16
 #define IDXD_OP_FLAG_FENCE 0x0001
 #define IDXD_OP_FLAG_BOF 0x0002
 #define IDXD_OP_FLAG_CRAV 0x0004
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_arp.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_arp.h
index eda888f..1cd23ef 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_arp.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_arp.h
@@ -44,6 +44,7 @@
 #define ARPHRD_X25 271
 #define ARPHRD_HWX25 272
 #define ARPHRD_CAN 280
+#define ARPHRD_MCTP 290
 #define ARPHRD_PPP 512
 #define ARPHRD_CISCO 513
 #define ARPHRD_HDLC ARPHRD_CISCO
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_bridge.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_bridge.h
index 570c09e..2054fb3 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_bridge.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_bridge.h
@@ -405,9 +405,11 @@
 };
 #define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1)
 #define BRIDGE_VLANDB_DUMPF_STATS (1 << 0)
+#define BRIDGE_VLANDB_DUMPF_GLOBAL (1 << 1)
 enum {
   BRIDGE_VLANDB_UNSPEC,
   BRIDGE_VLANDB_ENTRY,
+  BRIDGE_VLANDB_GLOBAL_OPTIONS,
   __BRIDGE_VLANDB_MAX,
 };
 #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1)
@@ -418,6 +420,7 @@
   BRIDGE_VLANDB_ENTRY_STATE,
   BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
   BRIDGE_VLANDB_ENTRY_STATS,
+  BRIDGE_VLANDB_ENTRY_MCAST_ROUTER,
   __BRIDGE_VLANDB_ENTRY_MAX,
 };
 #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
@@ -439,6 +442,28 @@
 };
 #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
 enum {
+  BRIDGE_VLANDB_GOPTS_UNSPEC,
+  BRIDGE_VLANDB_GOPTS_ID,
+  BRIDGE_VLANDB_GOPTS_RANGE,
+  BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING,
+  BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION,
+  BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION,
+  BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT,
+  BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT,
+  BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL,
+  BRIDGE_VLANDB_GOPTS_PAD,
+  BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER,
+  BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE,
+  __BRIDGE_VLANDB_GOPTS_MAX
+};
+#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1)
+enum {
   MDBA_UNSPEC,
   MDBA_MDB,
   MDBA_ROUTER,
@@ -496,6 +521,9 @@
   MDBA_ROUTER_PATTR_UNSPEC,
   MDBA_ROUTER_PATTR_TIMER,
   MDBA_ROUTER_PATTR_TYPE,
+  MDBA_ROUTER_PATTR_INET_TIMER,
+  MDBA_ROUTER_PATTR_INET6_TIMER,
+  MDBA_ROUTER_PATTR_VID,
   __MDBA_ROUTER_PATTR_MAX
 };
 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
@@ -570,10 +598,23 @@
 };
 enum br_boolopt_id {
   BR_BOOLOPT_NO_LL_LEARN,
+  BR_BOOLOPT_MCAST_VLAN_SNOOPING,
   BR_BOOLOPT_MAX
 };
 struct br_boolopt_multi {
   __u32 optval;
   __u32 optmask;
 };
+enum {
+  BRIDGE_QUERIER_UNSPEC,
+  BRIDGE_QUERIER_IP_ADDRESS,
+  BRIDGE_QUERIER_IP_PORT,
+  BRIDGE_QUERIER_IP_OTHER_TIMER,
+  BRIDGE_QUERIER_PAD,
+  BRIDGE_QUERIER_IPV6_ADDRESS,
+  BRIDGE_QUERIER_IPV6_PORT,
+  BRIDGE_QUERIER_IPV6_OTHER_TIMER,
+  __BRIDGE_QUERIER_MAX
+};
+#define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_ether.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_ether.h
index 8405653..1f7f8f2 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_ether.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_ether.h
@@ -67,6 +67,7 @@
 #define ETH_P_LINK_CTL 0x886c
 #define ETH_P_ATMFATE 0x8884
 #define ETH_P_PAE 0x888E
+#define ETH_P_REALTEK 0x8899
 #define ETH_P_AOE 0x88A2
 #define ETH_P_8021AD 0x88A8
 #define ETH_P_802_EX1 0x88B5
@@ -123,6 +124,7 @@
 #define ETH_P_CAIF 0x00F7
 #define ETH_P_XDSA 0x00F8
 #define ETH_P_MAP 0x00F9
+#define ETH_P_MCTP 0x00FA
 #ifndef __UAPI_DEF_ETHHDR
 #define __UAPI_DEF_ETHHDR 1
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_link.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_link.h
index 2a5ba5a..7e413ae 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_link.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/if_link.h
@@ -148,6 +148,9 @@
   IFLA_ALT_IFNAME,
   IFLA_PERM_ADDRESS,
   IFLA_PROTO_DOWN_REASON,
+  IFLA_PARENT_DEV_NAME,
+  IFLA_PARENT_DEV_BUS_NAME,
+  IFLA_GRO_MAX_SIZE,
   __IFLA_MAX
 };
 #define IFLA_MAX (__IFLA_MAX - 1)
@@ -176,6 +179,7 @@
   IFLA_INET6_ICMP6STATS,
   IFLA_INET6_TOKEN,
   IFLA_INET6_ADDR_GEN_MODE,
+  IFLA_INET6_RA_MTU,
   __IFLA_INET6_MAX
 };
 #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
@@ -233,6 +237,7 @@
   IFLA_BR_MCAST_MLD_VERSION,
   IFLA_BR_VLAN_STATS_PER_PORT,
   IFLA_BR_MULTI_BOOLOPT,
+  IFLA_BR_MCAST_QUERIER_STATE,
   __IFLA_BR_MAX,
 };
 #define IFLA_BR_MAX (__IFLA_BR_MAX - 1)
@@ -354,6 +359,7 @@
   MACVLAN_MACADDR_SET,
 };
 #define MACVLAN_FLAG_NOPROMISC 1
+#define MACVLAN_FLAG_NODST 2
 enum {
   IFLA_VRF_UNSPEC,
   IFLA_VRF_TABLE,
@@ -550,6 +556,8 @@
   IFLA_BOND_AD_ACTOR_SYSTEM,
   IFLA_BOND_TLB_DYNAMIC_LB,
   IFLA_BOND_PEER_NOTIF_DELAY,
+  IFLA_BOND_AD_LACP_ACTIVE,
+  IFLA_BOND_MISSED_MAX,
   __IFLA_BOND_MAX,
 };
 #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
@@ -835,6 +843,8 @@
 #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
 #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
 #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
+#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4)
+#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5)
 enum {
   IFLA_RMNET_UNSPEC,
   IFLA_RMNET_MUX_ID,
@@ -846,4 +856,10 @@
   __u32 flags;
   __u32 mask;
 };
+enum {
+  IFLA_MCTP_UNSPEC,
+  IFLA_MCTP_NET,
+  __IFLA_MCTP_MAX,
+};
+#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
similarity index 80%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
index bb45c3d..ba2f5e3 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
@@ -16,14 +16,7 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#ifndef _UAPI_IIO_BUFFER_H_
+#define _UAPI_IIO_BUFFER_H_
+#define IIO_BUFFER_GET_FD_IOCTL _IOWR('i', 0x91, int)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/in.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/in.h
index e5437ca..d4060e7 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/in.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/in.h
@@ -155,21 +155,32 @@
 #define IP_MSFILTER_SIZE(numsrc) (sizeof(struct ip_msfilter) - sizeof(__u32) + (numsrc) * sizeof(__u32))
 struct group_req {
   __u32 gr_interface;
-  struct sockaddr_storage gr_group;
+  struct __kernel_sockaddr_storage gr_group;
 };
 struct group_source_req {
   __u32 gsr_interface;
-  struct sockaddr_storage gsr_group;
-  struct sockaddr_storage gsr_source;
+  struct __kernel_sockaddr_storage gsr_group;
+  struct __kernel_sockaddr_storage gsr_source;
 };
 struct group_filter {
-  __u32 gf_interface;
-  struct sockaddr_storage gf_group;
-  __u32 gf_fmode;
-  __u32 gf_numsrc;
-  struct sockaddr_storage gf_slist[1];
+  union {
+    struct {
+      __u32 gf_interface_aux;
+      struct __kernel_sockaddr_storage gf_group_aux;
+      __u32 gf_fmode_aux;
+      __u32 gf_numsrc_aux;
+      struct __kernel_sockaddr_storage gf_slist[1];
+    };
+    struct {
+      __u32 gf_interface;
+      struct __kernel_sockaddr_storage gf_group;
+      __u32 gf_fmode;
+      __u32 gf_numsrc;
+      struct __kernel_sockaddr_storage gf_slist_flex[];
+    };
+  };
 };
-#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) + (numsrc) * sizeof(struct sockaddr_storage))
+#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) + (numsrc) * sizeof(struct __kernel_sockaddr_storage))
 #endif
 #if __UAPI_DEF_IN_PKTINFO
 struct in_pktinfo {
@@ -214,6 +225,7 @@
 #define INADDR_ANY ((unsigned long int) 0x00000000)
 #define INADDR_BROADCAST ((unsigned long int) 0xffffffff)
 #define INADDR_NONE ((unsigned long int) 0xffffffff)
+#define INADDR_DUMMY ((unsigned long int) 0xc0000008)
 #define IN_LOOPBACKNET 127
 #define INADDR_LOOPBACK 0x7f000001
 #define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/in6.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/in6.h
index 8dd3238..49efe3c 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/in6.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/in6.h
@@ -105,6 +105,7 @@
 #define IPV6_TLV_PADN 1
 #define IPV6_TLV_ROUTERALERT 5
 #define IPV6_TLV_CALIPSO 7
+#define IPV6_TLV_IOAM 49
 #define IPV6_TLV_JUMBO 194
 #define IPV6_TLV_HAO 201
 #if __UAPI_DEF_IPV6_OPTIONS
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/incrementalfs.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
index 622a998..0804cc2 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
@@ -171,6 +171,8 @@
   __u64 time_us_out;
   __u32 page_out;
   __u32 errno_out;
-  __u64 reserved;
+  __u32 uid_out;
+  __u32 reserved1;
+  __u64 reserved2;
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/input-event-codes.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
index 732e9b7..34cd23c 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
@@ -248,7 +248,8 @@
 #define KEY_PAUSECD 201
 #define KEY_PROG3 202
 #define KEY_PROG4 203
-#define KEY_DASHBOARD 204
+#define KEY_ALL_APPLICATIONS 204
+#define KEY_DASHBOARD KEY_ALL_APPLICATIONS
 #define KEY_SUSPEND 205
 #define KEY_CLOSE 206
 #define KEY_PLAY 207
@@ -548,6 +549,8 @@
 #define KEY_VOICECOMMAND 0x246
 #define KEY_ASSISTANT 0x247
 #define KEY_KBD_LAYOUT_NEXT 0x248
+#define KEY_EMOJI_PICKER 0x249
+#define KEY_DICTATE 0x24a
 #define KEY_BRIGHTNESS_MIN 0x250
 #define KEY_BRIGHTNESS_MAX 0x251
 #define KEY_KBDINPUTASSIST_PREV 0x260
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/io_uring.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/io_uring.h
index fa59d39..96944f8 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/io_uring.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/io_uring.h
@@ -50,19 +50,19 @@
     __u32 splice_flags;
     __u32 rename_flags;
     __u32 unlink_flags;
+    __u32 hardlink_flags;
   };
   __u64 user_data;
   union {
-    struct {
-      union {
-        __u16 buf_index;
-        __u16 buf_group;
-      } __attribute__((packed));
-      __u16 personality;
-      __s32 splice_fd_in;
-    };
-    __u64 __pad2[3];
+    __u16 buf_index;
+    __u16 buf_group;
+  } __attribute__((packed));
+  __u16 personality;
+  union {
+    __s32 splice_fd_in;
+    __u32 file_index;
   };
+  __u64 __pad2[2];
 };
 enum {
   IOSQE_FIXED_FILE_BIT,
@@ -71,6 +71,7 @@
   IOSQE_IO_HARDLINK_BIT,
   IOSQE_ASYNC_BIT,
   IOSQE_BUFFER_SELECT_BIT,
+  IOSQE_CQE_SKIP_SUCCESS_BIT,
 };
 #define IOSQE_FIXED_FILE (1U << IOSQE_FIXED_FILE_BIT)
 #define IOSQE_IO_DRAIN (1U << IOSQE_IO_DRAIN_BIT)
@@ -78,6 +79,7 @@
 #define IOSQE_IO_HARDLINK (1U << IOSQE_IO_HARDLINK_BIT)
 #define IOSQE_ASYNC (1U << IOSQE_ASYNC_BIT)
 #define IOSQE_BUFFER_SELECT (1U << IOSQE_BUFFER_SELECT_BIT)
+#define IOSQE_CQE_SKIP_SUCCESS (1U << IOSQE_CQE_SKIP_SUCCESS_BIT)
 #define IORING_SETUP_IOPOLL (1U << 0)
 #define IORING_SETUP_SQPOLL (1U << 1)
 #define IORING_SETUP_SQ_AFF (1U << 2)
@@ -123,18 +125,31 @@
   IORING_OP_SHUTDOWN,
   IORING_OP_RENAMEAT,
   IORING_OP_UNLINKAT,
+  IORING_OP_MKDIRAT,
+  IORING_OP_SYMLINKAT,
+  IORING_OP_LINKAT,
   IORING_OP_LAST,
 };
 #define IORING_FSYNC_DATASYNC (1U << 0)
 #define IORING_TIMEOUT_ABS (1U << 0)
 #define IORING_TIMEOUT_UPDATE (1U << 1)
+#define IORING_TIMEOUT_BOOTTIME (1U << 2)
+#define IORING_TIMEOUT_REALTIME (1U << 3)
+#define IORING_LINK_TIMEOUT_UPDATE (1U << 4)
+#define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)
+#define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
+#define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
 #define SPLICE_F_FD_IN_FIXED (1U << 31)
+#define IORING_POLL_ADD_MULTI (1U << 0)
+#define IORING_POLL_UPDATE_EVENTS (1U << 1)
+#define IORING_POLL_UPDATE_USER_DATA (1U << 2)
 struct io_uring_cqe {
   __u64 user_data;
   __s32 res;
   __u32 flags;
 };
 #define IORING_CQE_F_BUFFER (1U << 0)
+#define IORING_CQE_F_MORE (1U << 1)
 enum {
   IORING_CQE_BUFFER_SHIFT = 16,
 };
@@ -192,6 +207,8 @@
 #define IORING_FEAT_SQPOLL_NONFIXED (1U << 7)
 #define IORING_FEAT_EXT_ARG (1U << 8)
 #define IORING_FEAT_NATIVE_WORKERS (1U << 9)
+#define IORING_FEAT_RSRC_TAGS (1U << 10)
+#define IORING_FEAT_CQE_SKIP (1U << 11)
 enum {
   IORING_REGISTER_BUFFERS = 0,
   IORING_UNREGISTER_BUFFERS = 1,
@@ -206,18 +223,44 @@
   IORING_UNREGISTER_PERSONALITY = 10,
   IORING_REGISTER_RESTRICTIONS = 11,
   IORING_REGISTER_ENABLE_RINGS = 12,
+  IORING_REGISTER_FILES2 = 13,
+  IORING_REGISTER_FILES_UPDATE2 = 14,
+  IORING_REGISTER_BUFFERS2 = 15,
+  IORING_REGISTER_BUFFERS_UPDATE = 16,
+  IORING_REGISTER_IOWQ_AFF = 17,
+  IORING_UNREGISTER_IOWQ_AFF = 18,
+  IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
   IORING_REGISTER_LAST
 };
+enum {
+  IO_WQ_BOUND,
+  IO_WQ_UNBOUND,
+};
 struct io_uring_files_update {
   __u32 offset;
   __u32 resv;
   __aligned_u64 fds;
 };
+struct io_uring_rsrc_register {
+  __u32 nr;
+  __u32 resv;
+  __u64 resv2;
+  __aligned_u64 data;
+  __aligned_u64 tags;
+};
 struct io_uring_rsrc_update {
   __u32 offset;
   __u32 resv;
   __aligned_u64 data;
 };
+struct io_uring_rsrc_update2 {
+  __u32 offset;
+  __u32 resv;
+  __aligned_u64 data;
+  __aligned_u64 tags;
+  __u32 nr;
+  __u32 resv2;
+};
 #define IORING_REGISTER_FILES_SKIP (- 2)
 #define IO_URING_OP_SUPPORTED (1U << 0)
 struct io_uring_probe_op {
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioam6.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioam6.h
new file mode 100644
index 0000000..e32c8e9
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioam6.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOAM6_H
+#define _UAPI_LINUX_IOAM6_H
+#include <asm/byteorder.h>
+#include <linux/types.h>
+#define IOAM6_U16_UNAVAILABLE U16_MAX
+#define IOAM6_U32_UNAVAILABLE U32_MAX
+#define IOAM6_U64_UNAVAILABLE U64_MAX
+#define IOAM6_DEFAULT_ID (IOAM6_U32_UNAVAILABLE >> 8)
+#define IOAM6_DEFAULT_ID_WIDE (IOAM6_U64_UNAVAILABLE >> 8)
+#define IOAM6_DEFAULT_IF_ID IOAM6_U16_UNAVAILABLE
+#define IOAM6_DEFAULT_IF_ID_WIDE IOAM6_U32_UNAVAILABLE
+struct ioam6_hdr {
+  __u8 opt_type;
+  __u8 opt_len;
+  __u8 : 8;
+#define IOAM6_TYPE_PREALLOC 0
+  __u8 type;
+} __attribute__((packed));
+struct ioam6_trace_hdr {
+  __be16 namespace_id;
+#ifdef __LITTLE_ENDIAN_BITFIELD
+  __u8 : 1, : 1, overflow : 1, nodelen : 5;
+  __u8 remlen : 7, : 1;
+  union {
+    __be32 type_be32;
+    struct {
+      __u32 bit7 : 1, bit6 : 1, bit5 : 1, bit4 : 1, bit3 : 1, bit2 : 1, bit1 : 1, bit0 : 1, bit15 : 1, bit14 : 1, bit13 : 1, bit12 : 1, bit11 : 1, bit10 : 1, bit9 : 1, bit8 : 1, bit23 : 1, bit22 : 1, bit21 : 1, bit20 : 1, bit19 : 1, bit18 : 1, bit17 : 1, bit16 : 1, : 8;
+    } type;
+  };
+#elif defined(__BIG_ENDIAN_BITFIELD)
+  __u8 nodelen : 5, overflow : 1, : 1, : 1;
+  __u8 : 1, remlen : 7;
+  union {
+    __be32 type_be32;
+    struct {
+      __u32 bit0 : 1, bit1 : 1, bit2 : 1, bit3 : 1, bit4 : 1, bit5 : 1, bit6 : 1, bit7 : 1, bit8 : 1, bit9 : 1, bit10 : 1, bit11 : 1, bit12 : 1, bit13 : 1, bit14 : 1, bit15 : 1, bit16 : 1, bit17 : 1, bit18 : 1, bit19 : 1, bit20 : 1, bit21 : 1, bit22 : 1, bit23 : 1, : 8;
+    } type;
+  };
+#else
+#error "Please fix <asm/byteorder.h>"
+#endif
+#define IOAM6_TRACE_DATA_SIZE_MAX 244
+  __u8 data[0];
+} __attribute__((packed));
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h
new file mode 100644
index 0000000..1d00c47
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h
@@ -0,0 +1,48 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOAM6_GENL_H
+#define _UAPI_LINUX_IOAM6_GENL_H
+#define IOAM6_GENL_NAME "IOAM6"
+#define IOAM6_GENL_VERSION 0x1
+enum {
+  IOAM6_ATTR_UNSPEC,
+  IOAM6_ATTR_NS_ID,
+  IOAM6_ATTR_NS_DATA,
+  IOAM6_ATTR_NS_DATA_WIDE,
+#define IOAM6_MAX_SCHEMA_DATA_LEN (255 * 4)
+  IOAM6_ATTR_SC_ID,
+  IOAM6_ATTR_SC_DATA,
+  IOAM6_ATTR_SC_NONE,
+  IOAM6_ATTR_PAD,
+  __IOAM6_ATTR_MAX,
+};
+#define IOAM6_ATTR_MAX (__IOAM6_ATTR_MAX - 1)
+enum {
+  IOAM6_CMD_UNSPEC,
+  IOAM6_CMD_ADD_NAMESPACE,
+  IOAM6_CMD_DEL_NAMESPACE,
+  IOAM6_CMD_DUMP_NAMESPACES,
+  IOAM6_CMD_ADD_SCHEMA,
+  IOAM6_CMD_DEL_SCHEMA,
+  IOAM6_CMD_DUMP_SCHEMAS,
+  IOAM6_CMD_NS_SET_SCHEMA,
+  __IOAM6_CMD_MAX,
+};
+#define IOAM6_CMD_MAX (__IOAM6_CMD_MAX - 1)
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
similarity index 64%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
index bb45c3d..7426225 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
@@ -16,14 +16,23 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_LINUX_IOAM6_IPTUNNEL_H
+#define _UAPI_LINUX_IOAM6_IPTUNNEL_H
+enum {
+  __IOAM6_IPTUNNEL_MODE_MIN,
+  IOAM6_IPTUNNEL_MODE_INLINE,
+  IOAM6_IPTUNNEL_MODE_ENCAP,
+  IOAM6_IPTUNNEL_MODE_AUTO,
+  __IOAM6_IPTUNNEL_MODE_MAX,
 };
+#define IOAM6_IPTUNNEL_MODE_MIN (__IOAM6_IPTUNNEL_MODE_MIN + 1)
+#define IOAM6_IPTUNNEL_MODE_MAX (__IOAM6_IPTUNNEL_MODE_MAX - 1)
+enum {
+  IOAM6_IPTUNNEL_UNSPEC,
+  IOAM6_IPTUNNEL_MODE,
+  IOAM6_IPTUNNEL_DST,
+  IOAM6_IPTUNNEL_TRACE,
+  __IOAM6_IPTUNNEL_MAX,
+};
+#define IOAM6_IPTUNNEL_MAX (__IOAM6_IPTUNNEL_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/iommu.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/iommu.h
index 1802fb4..0a0af92 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/iommu.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/iommu.h
@@ -132,7 +132,8 @@
 #define IOMMU_SVA_VTD_GPASID_PWT (1 << 3)
 #define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4)
 #define IOMMU_SVA_VTD_GPASID_CD (1 << 5)
-#define IOMMU_SVA_VTD_GPASID_LAST (1 << 6)
+#define IOMMU_SVA_VTD_GPASID_WPE (1 << 6)
+#define IOMMU_SVA_VTD_GPASID_LAST (1 << 7)
   __u64 flags;
   __u32 pat;
   __u32 emt;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioprio.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioprio.h
new file mode 100644
index 0000000..7a90d87
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ioprio.h
@@ -0,0 +1,42 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOPRIO_H
+#define _UAPI_LINUX_IOPRIO_H
+#define IOPRIO_CLASS_SHIFT 13
+#define IOPRIO_CLASS_MASK 0x07
+#define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1)
+#define IOPRIO_PRIO_CLASS(ioprio) (((ioprio) >> IOPRIO_CLASS_SHIFT) & IOPRIO_CLASS_MASK)
+#define IOPRIO_PRIO_DATA(ioprio) ((ioprio) & IOPRIO_PRIO_MASK)
+#define IOPRIO_PRIO_VALUE(class,data) ((((class) & IOPRIO_CLASS_MASK) << IOPRIO_CLASS_SHIFT) | ((data) & IOPRIO_PRIO_MASK))
+enum {
+  IOPRIO_CLASS_NONE,
+  IOPRIO_CLASS_RT,
+  IOPRIO_CLASS_BE,
+  IOPRIO_CLASS_IDLE,
+};
+#define IOPRIO_NR_LEVELS 8
+#define IOPRIO_BE_NR IOPRIO_NR_LEVELS
+enum {
+  IOPRIO_WHO_PROCESS = 1,
+  IOPRIO_WHO_PGRP,
+  IOPRIO_WHO_USER,
+};
+#define IOPRIO_NORM 4
+#define IOPRIO_BE_NORM IOPRIO_NORM
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ip.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ip.h
index 564fd8d..9571cac 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ip.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ip.h
@@ -146,6 +146,7 @@
   IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
   IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
   IPV4_DEVCONF_BC_FORWARDING,
+  IPV4_DEVCONF_ARP_EVICT_NOCARRIER,
   __IPV4_DEVCONF_MAX
 };
 #define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipmi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipmi.h
index cf9928f..dd88f2f 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipmi.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipmi.h
@@ -40,6 +40,14 @@
   unsigned char slave_addr;
   unsigned char lun;
 };
+#define IPMI_IPMB_DIRECT_ADDR_TYPE 0x81
+struct ipmi_ipmb_direct_addr {
+  int addr_type;
+  short channel;
+  unsigned char slave_addr;
+  unsigned char rs_lun;
+  unsigned char rq_lun;
+};
 #define IPMI_LAN_ADDR_TYPE 0x04
 struct ipmi_lan_addr {
   int addr_type;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipv6.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipv6.h
index 438cacc..b3db9ce 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipv6.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipv6.h
@@ -144,6 +144,10 @@
   DEVCONF_NDISC_TCLASS,
   DEVCONF_RPL_SEG_ENABLED,
   DEVCONF_RA_DEFRTR_METRIC,
+  DEVCONF_IOAM6_ENABLED,
+  DEVCONF_IOAM6_ID,
+  DEVCONF_IOAM6_ID_WIDE,
+  DEVCONF_NDISC_EVICT_NOCARRIER,
   DEVCONF_MAX
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipx.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipx.h
deleted file mode 100644
index d8a5424..0000000
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ipx.h
+++ /dev/null
@@ -1,90 +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 _IPX_H_
-#define _IPX_H_
-#include <linux/libc-compat.h>
-#include <linux/types.h>
-#include <linux/sockios.h>
-#include <linux/socket.h>
-#define IPX_NODE_LEN 6
-#define IPX_MTU 576
-#if __UAPI_DEF_SOCKADDR_IPX
-struct sockaddr_ipx {
-  __kernel_sa_family_t sipx_family;
-  __be16 sipx_port;
-  __be32 sipx_network;
-  unsigned char sipx_node[IPX_NODE_LEN];
-  __u8 sipx_type;
-  unsigned char sipx_zero;
-};
-#endif
-#define sipx_special sipx_port
-#define sipx_action sipx_zero
-#define IPX_DLTITF 0
-#define IPX_CRTITF 1
-#if __UAPI_DEF_IPX_ROUTE_DEFINITION
-struct ipx_route_definition {
-  __be32 ipx_network;
-  __be32 ipx_router_network;
-  unsigned char ipx_router_node[IPX_NODE_LEN];
-};
-#endif
-#if __UAPI_DEF_IPX_INTERFACE_DEFINITION
-struct ipx_interface_definition {
-  __be32 ipx_network;
-  unsigned char ipx_device[16];
-  unsigned char ipx_dlink_type;
-#define IPX_FRAME_NONE 0
-#define IPX_FRAME_SNAP 1
-#define IPX_FRAME_8022 2
-#define IPX_FRAME_ETHERII 3
-#define IPX_FRAME_8023 4
-#define IPX_FRAME_TR_8022 5
-  unsigned char ipx_special;
-#define IPX_SPECIAL_NONE 0
-#define IPX_PRIMARY 1
-#define IPX_INTERNAL 2
-  unsigned char ipx_node[IPX_NODE_LEN];
-};
-#endif
-#if __UAPI_DEF_IPX_CONFIG_DATA
-struct ipx_config_data {
-  unsigned char ipxcfg_auto_select_primary;
-  unsigned char ipxcfg_auto_create_interfaces;
-};
-#endif
-#if __UAPI_DEF_IPX_ROUTE_DEF
-struct ipx_route_def {
-  __be32 ipx_network;
-  __be32 ipx_router_network;
-#define IPX_ROUTE_NO_ROUTER 0
-  unsigned char ipx_router_node[IPX_NODE_LEN];
-  unsigned char ipx_device[16];
-  unsigned short ipx_flags;
-#define IPX_RT_SNAP 8
-#define IPX_RT_8022 4
-#define IPX_RT_BLUEBOOK 2
-#define IPX_RT_ROUTED 1
-};
-#endif
-#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE)
-#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1)
-#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2)
-#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3)
-#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kexec.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kexec.h
index b2dc88f..2e3bd0c 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kexec.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kexec.h
@@ -39,6 +39,7 @@
 #define KEXEC_ARCH_MIPS_LE (10 << 16)
 #define KEXEC_ARCH_MIPS (8 << 16)
 #define KEXEC_ARCH_AARCH64 (183 << 16)
+#define KEXEC_ARCH_RISCV (243 << 16)
 #define KEXEC_SEGMENT_MAX 16
 struct kexec_segment {
   const void * buf;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
index 73ef5de..c52ac64 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
@@ -21,7 +21,7 @@
 #include <drm/drm.h>
 #include <linux/ioctl.h>
 #define KFD_IOCTL_MAJOR_VERSION 1
-#define KFD_IOCTL_MINOR_VERSION 3
+#define KFD_IOCTL_MINOR_VERSION 6
 struct kfd_ioctl_get_version_args {
   __u32 major_version;
   __u32 minor_version;
@@ -244,6 +244,7 @@
 #define KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE (1 << 28)
 #define KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM (1 << 27)
 #define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT (1 << 26)
+#define KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED (1 << 25)
 struct kfd_ioctl_alloc_memory_of_gpu_args {
   __u64 va_addr;
   __u64 size;
@@ -303,6 +304,44 @@
   KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL = 0,
   KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL = 4,
 };
+#define KFD_IOCTL_SVM_FLAG_HOST_ACCESS 0x00000001
+#define KFD_IOCTL_SVM_FLAG_COHERENT 0x00000002
+#define KFD_IOCTL_SVM_FLAG_HIVE_LOCAL 0x00000004
+#define KFD_IOCTL_SVM_FLAG_GPU_RO 0x00000008
+#define KFD_IOCTL_SVM_FLAG_GPU_EXEC 0x00000010
+#define KFD_IOCTL_SVM_FLAG_GPU_READ_MOSTLY 0x00000020
+enum kfd_ioctl_svm_op {
+  KFD_IOCTL_SVM_OP_SET_ATTR,
+  KFD_IOCTL_SVM_OP_GET_ATTR
+};
+enum kfd_ioctl_svm_location {
+  KFD_IOCTL_SVM_LOCATION_SYSMEM = 0,
+  KFD_IOCTL_SVM_LOCATION_UNDEFINED = 0xffffffff
+};
+enum kfd_ioctl_svm_attr_type {
+  KFD_IOCTL_SVM_ATTR_PREFERRED_LOC,
+  KFD_IOCTL_SVM_ATTR_PREFETCH_LOC,
+  KFD_IOCTL_SVM_ATTR_ACCESS,
+  KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE,
+  KFD_IOCTL_SVM_ATTR_NO_ACCESS,
+  KFD_IOCTL_SVM_ATTR_SET_FLAGS,
+  KFD_IOCTL_SVM_ATTR_CLR_FLAGS,
+  KFD_IOCTL_SVM_ATTR_GRANULARITY
+};
+struct kfd_ioctl_svm_attribute {
+  __u32 type;
+  __u32 value;
+};
+struct kfd_ioctl_svm_args {
+  __u64 start_addr;
+  __u64 size;
+  __u32 op;
+  __u32 nattr;
+  struct kfd_ioctl_svm_attribute attrs[0];
+};
+struct kfd_ioctl_set_xnack_mode_args {
+  __s32 xnack_enabled;
+};
 #define AMDKFD_IOCTL_BASE 'K'
 #define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
 #define AMDKFD_IOR(nr,type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
@@ -339,6 +378,8 @@
 #define AMDKFD_IOC_IMPORT_DMABUF AMDKFD_IOWR(0x1D, struct kfd_ioctl_import_dmabuf_args)
 #define AMDKFD_IOC_ALLOC_QUEUE_GWS AMDKFD_IOWR(0x1E, struct kfd_ioctl_alloc_queue_gws_args)
 #define AMDKFD_IOC_SMI_EVENTS AMDKFD_IOWR(0x1F, struct kfd_ioctl_smi_events_args)
+#define AMDKFD_IOC_SVM AMDKFD_IOWR(0x20, struct kfd_ioctl_svm_args)
+#define AMDKFD_IOC_SET_XNACK_MODE AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)
 #define AMDKFD_COMMAND_START 0x01
-#define AMDKFD_COMMAND_END 0x20
+#define AMDKFD_COMMAND_END 0x22
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h
new file mode 100644
index 0000000..9604b03
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 KFD_SYSFS_H_INCLUDED
+#define KFD_SYSFS_H_INCLUDED
+#define HSA_CAP_HOT_PLUGGABLE 0x00000001
+#define HSA_CAP_ATS_PRESENT 0x00000002
+#define HSA_CAP_SHARED_WITH_GRAPHICS 0x00000004
+#define HSA_CAP_QUEUE_SIZE_POW2 0x00000008
+#define HSA_CAP_QUEUE_SIZE_32BIT 0x00000010
+#define HSA_CAP_QUEUE_IDLE_EVENT 0x00000020
+#define HSA_CAP_VA_LIMIT 0x00000040
+#define HSA_CAP_WATCH_POINTS_SUPPORTED 0x00000080
+#define HSA_CAP_WATCH_POINTS_TOTALBITS_MASK 0x00000f00
+#define HSA_CAP_WATCH_POINTS_TOTALBITS_SHIFT 8
+#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_MASK 0x00003000
+#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_SHIFT 12
+#define HSA_CAP_DOORBELL_TYPE_PRE_1_0 0x0
+#define HSA_CAP_DOORBELL_TYPE_1_0 0x1
+#define HSA_CAP_DOORBELL_TYPE_2_0 0x2
+#define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000
+#define HSA_CAP_RESERVED_WAS_SRAM_EDCSUPPORTED 0x00080000
+#define HSA_CAP_MEM_EDCSUPPORTED 0x00100000
+#define HSA_CAP_RASEVENTNOTIFY 0x00200000
+#define HSA_CAP_ASIC_REVISION_MASK 0x03c00000
+#define HSA_CAP_ASIC_REVISION_SHIFT 22
+#define HSA_CAP_SRAM_EDCSUPPORTED 0x04000000
+#define HSA_CAP_SVMAPI_SUPPORTED 0x08000000
+#define HSA_CAP_FLAGS_COHERENTHOSTACCESS 0x10000000
+#define HSA_CAP_RESERVED 0xe00f8000
+#define HSA_MEM_HEAP_TYPE_SYSTEM 0
+#define HSA_MEM_HEAP_TYPE_FB_PUBLIC 1
+#define HSA_MEM_HEAP_TYPE_FB_PRIVATE 2
+#define HSA_MEM_HEAP_TYPE_GPU_GDS 3
+#define HSA_MEM_HEAP_TYPE_GPU_LDS 4
+#define HSA_MEM_HEAP_TYPE_GPU_SCRATCH 5
+#define HSA_MEM_FLAGS_HOT_PLUGGABLE 0x00000001
+#define HSA_MEM_FLAGS_NON_VOLATILE 0x00000002
+#define HSA_MEM_FLAGS_RESERVED 0xfffffffc
+#define HSA_CACHE_TYPE_DATA 0x00000001
+#define HSA_CACHE_TYPE_INSTRUCTION 0x00000002
+#define HSA_CACHE_TYPE_CPU 0x00000004
+#define HSA_CACHE_TYPE_HSACU 0x00000008
+#define HSA_CACHE_TYPE_RESERVED 0xfffffff0
+#define HSA_IOLINK_TYPE_UNDEFINED 0
+#define HSA_IOLINK_TYPE_HYPERTRANSPORT 1
+#define HSA_IOLINK_TYPE_PCIEXPRESS 2
+#define HSA_IOLINK_TYPE_AMBA 3
+#define HSA_IOLINK_TYPE_MIPI 4
+#define HSA_IOLINK_TYPE_QPI_1_1 5
+#define HSA_IOLINK_TYPE_RESERVED1 6
+#define HSA_IOLINK_TYPE_RESERVED2 7
+#define HSA_IOLINK_TYPE_RAPID_IO 8
+#define HSA_IOLINK_TYPE_INFINIBAND 9
+#define HSA_IOLINK_TYPE_RESERVED3 10
+#define HSA_IOLINK_TYPE_XGMI 11
+#define HSA_IOLINK_TYPE_XGOP 12
+#define HSA_IOLINK_TYPE_GZ 13
+#define HSA_IOLINK_TYPE_ETHERNET_RDMA 14
+#define HSA_IOLINK_TYPE_RDMA_OTHER 15
+#define HSA_IOLINK_TYPE_OTHER 16
+#define HSA_IOLINK_FLAGS_ENABLED (1 << 0)
+#define HSA_IOLINK_FLAGS_NON_COHERENT (1 << 1)
+#define HSA_IOLINK_FLAGS_NO_ATOMICS_32_BIT (1 << 2)
+#define HSA_IOLINK_FLAGS_NO_ATOMICS_64_BIT (1 << 3)
+#define HSA_IOLINK_FLAGS_NO_PEER_TO_PEER_DMA (1 << 4)
+#define HSA_IOLINK_FLAGS_RESERVED 0xffffffe0
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kvm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kvm.h
index 81fa779..1cf7182 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kvm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kvm.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef __LINUX_KVM_H
 #define __LINUX_KVM_H
+#include <linux/const.h>
 #include <linux/types.h>
 #include <linux/compiler.h>
 #include <linux/ioctl.h>
@@ -214,10 +215,12 @@
 #define KVM_EXIT_AP_RESET_HOLD 32
 #define KVM_EXIT_X86_BUS_LOCK 33
 #define KVM_EXIT_XEN 34
+#define KVM_EXIT_RISCV_SBI 35
 #define KVM_INTERNAL_ERROR_EMULATION 1
 #define KVM_INTERNAL_ERROR_SIMUL_EX 2
 #define KVM_INTERNAL_ERROR_DELIVERY_EV 3
 #define KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON 4
+#define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0)
 struct kvm_run {
   __u8 request_interrupt_window;
   __u8 immediate_exit;
@@ -300,6 +303,17 @@
       __u64 data[16];
     } internal;
     struct {
+      __u32 suberror;
+      __u32 ndata;
+      __u64 flags;
+      union {
+        struct {
+          __u8 insn_size;
+          __u8 insn_bytes[15];
+        };
+      };
+    } emulation_failure;
+    struct {
       __u64 gprs[32];
     } osi;
     struct {
@@ -352,6 +366,12 @@
       __u64 data;
     } msr;
     struct kvm_xen_exit xen;
+    struct {
+      unsigned long extension_id;
+      unsigned long function_id;
+      unsigned long args[6];
+      unsigned long ret[2];
+    } riscv_sbi;
     char padding[256];
   };
 #define SYNC_REGS_SIZE_BYTES 2048
@@ -854,6 +874,22 @@
 #define KVM_CAP_DIRTY_LOG_RING 192
 #define KVM_CAP_X86_BUS_LOCK_EXIT 193
 #define KVM_CAP_PPC_DAWR1 194
+#define KVM_CAP_SET_GUEST_DEBUG2 195
+#define KVM_CAP_SGX_ATTRIBUTE 196
+#define KVM_CAP_VM_COPY_ENC_CONTEXT_FROM 197
+#define KVM_CAP_PTP_KVM 198
+#define KVM_CAP_HYPERV_ENFORCE_CPUID 199
+#define KVM_CAP_SREGS2 200
+#define KVM_CAP_EXIT_HYPERCALL 201
+#define KVM_CAP_PPC_RPT_INVALIDATE 202
+#define KVM_CAP_BINARY_STATS_FD 203
+#define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
+#define KVM_CAP_ARM_MTE 205
+#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206
+#define KVM_CAP_VM_GPA_BITS 207
+#define KVM_CAP_XSAVE2 208
+#define KVM_CAP_SYS_ATTRIBUTES 209
+#define KVM_CAP_PPC_AIL_MODE_3 210
 #ifdef KVM_CAP_IRQ_ROUTING
 struct kvm_irq_routing_irqchip {
   __u32 irqchip;
@@ -879,10 +915,17 @@
   __u32 vcpu;
   __u32 sint;
 };
+struct kvm_irq_routing_xen_evtchn {
+  __u32 port;
+  __u32 vcpu;
+  __u32 priority;
+};
+#define KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL ((__u32) (- 1))
 #define KVM_IRQ_ROUTING_IRQCHIP 1
 #define KVM_IRQ_ROUTING_MSI 2
 #define KVM_IRQ_ROUTING_S390_ADAPTER 3
 #define KVM_IRQ_ROUTING_HV_SINT 4
+#define KVM_IRQ_ROUTING_XEN_EVTCHN 5
 struct kvm_irq_routing_entry {
   __u32 gsi;
   __u32 type;
@@ -893,6 +936,7 @@
     struct kvm_irq_routing_msi msi;
     struct kvm_irq_routing_s390_adapter adapter;
     struct kvm_irq_routing_hv_sint hv_sint;
+    struct kvm_irq_routing_xen_evtchn xen_evtchn;
     __u32 pad[8];
   } u;
 };
@@ -918,6 +962,7 @@
 #define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1)
 #define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2)
 #define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
+#define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4)
 struct kvm_xen_hvm_config {
   __u32 flags;
   __u32 msr;
@@ -938,10 +983,15 @@
   __u8 pad[16];
 };
 #define KVM_CLOCK_TSC_STABLE 2
+#define KVM_CLOCK_REALTIME (1 << 2)
+#define KVM_CLOCK_HOST_TSC (1 << 3)
 struct kvm_clock_data {
   __u64 clock;
   __u32 flags;
-  __u32 pad[9];
+  __u32 pad0;
+  __u64 realtime;
+  __u64 host_tsc;
+  __u32 pad[4];
 };
 #define KVM_MMU_FSL_BOOKE_NOHV 0
 #define KVM_MMU_FSL_BOOKE_HV 1
@@ -1105,6 +1155,7 @@
 #define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char)
 #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
 #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3)
+#define KVM_ARM_MTE_COPY_TAGS _IOR(KVMIO, 0xb4, struct kvm_arm_copy_mte_tags)
 #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
 #define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr)
 #define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr)
@@ -1230,6 +1281,8 @@
 #define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
 #define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
 #define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
+#define KVM_GET_SREGS2 _IOR(KVMIO, 0xcc, struct kvm_sregs2)
+#define KVM_SET_SREGS2 _IOW(KVMIO, 0xcd, struct kvm_sregs2)
 struct kvm_xen_vcpu_attr {
   __u16 type;
   __u16 pad[3];
@@ -1274,6 +1327,7 @@
   KVM_SEV_DBG_ENCRYPT,
   KVM_SEV_CERT_EXPORT,
   KVM_SEV_GET_ATTESTATION_REPORT,
+  KVM_SEV_SEND_CANCEL,
   KVM_SEV_NR_MAX,
 };
 struct kvm_sev_cmd {
@@ -1321,6 +1375,41 @@
   __u64 uaddr;
   __u32 len;
 };
+struct kvm_sev_send_start {
+  __u32 policy;
+  __u64 pdh_cert_uaddr;
+  __u32 pdh_cert_len;
+  __u64 plat_certs_uaddr;
+  __u32 plat_certs_len;
+  __u64 amd_certs_uaddr;
+  __u32 amd_certs_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_send_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
+struct kvm_sev_receive_start {
+  __u32 handle;
+  __u32 policy;
+  __u64 pdh_uaddr;
+  __u32 pdh_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_receive_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
 #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
 #define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
@@ -1381,8 +1470,8 @@
 #ifndef KVM_DIRTY_LOG_PAGE_OFFSET
 #define KVM_DIRTY_LOG_PAGE_OFFSET 0
 #endif
-#define KVM_DIRTY_GFN_F_DIRTY BIT(0)
-#define KVM_DIRTY_GFN_F_RESET BIT(1)
+#define KVM_DIRTY_GFN_F_DIRTY _BITUL(0)
+#define KVM_DIRTY_GFN_F_RESET _BITUL(1)
 #define KVM_DIRTY_GFN_F_MASK 0x3
 struct kvm_dirty_gfn {
   __u32 flags;
@@ -1391,4 +1480,42 @@
 };
 #define KVM_BUS_LOCK_DETECTION_OFF (1 << 0)
 #define KVM_BUS_LOCK_DETECTION_EXIT (1 << 1)
+struct kvm_stats_header {
+  __u32 flags;
+  __u32 name_size;
+  __u32 num_desc;
+  __u32 id_offset;
+  __u32 desc_offset;
+  __u32 data_offset;
+};
+#define KVM_STATS_TYPE_SHIFT 0
+#define KVM_STATS_TYPE_MASK (0xF << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_CUMULATIVE (0x0 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_INSTANT (0x1 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_PEAK (0x2 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_LINEAR_HIST (0x3 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_LOG_HIST (0x4 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_MAX KVM_STATS_TYPE_LOG_HIST
+#define KVM_STATS_UNIT_SHIFT 4
+#define KVM_STATS_UNIT_MASK (0xF << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_NONE (0x0 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_BYTES (0x1 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_SECONDS (0x2 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_CYCLES (0x3 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_MAX KVM_STATS_UNIT_CYCLES
+#define KVM_STATS_BASE_SHIFT 8
+#define KVM_STATS_BASE_MASK (0xF << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_POW10 (0x0 << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_POW2 (0x1 << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_MAX KVM_STATS_BASE_POW2
+struct kvm_stats_desc {
+  __u32 flags;
+  __s16 exponent;
+  __u16 size;
+  __u32 offset;
+  __u32 bucket_size;
+  char name[];
+};
+#define KVM_GET_STATS_FD _IO(KVMIO, 0xce)
+#define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kvm_para.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kvm_para.h
index 9a4dd29..85084c2 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kvm_para.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/kvm_para.h
@@ -35,5 +35,6 @@
 #define KVM_HC_CLOCK_PAIRING 9
 #define KVM_HC_SEND_IPI 10
 #define KVM_HC_SCHED_YIELD 11
+#define KVM_HC_MAP_GPA_RANGE 12
 #include <asm/kvm_para.h>
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/landlock.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/landlock.h
new file mode 100644
index 0000000..50d79d8
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/landlock.h
@@ -0,0 +1,46 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_LANDLOCK_H
+#define _UAPI_LINUX_LANDLOCK_H
+#include <linux/types.h>
+struct landlock_ruleset_attr {
+  __u64 handled_access_fs;
+};
+#define LANDLOCK_CREATE_RULESET_VERSION (1U << 0)
+enum landlock_rule_type {
+  LANDLOCK_RULE_PATH_BENEATH = 1,
+};
+struct landlock_path_beneath_attr {
+  __u64 allowed_access;
+  __s32 parent_fd;
+} __attribute__((packed));
+#define LANDLOCK_ACCESS_FS_EXECUTE (1ULL << 0)
+#define LANDLOCK_ACCESS_FS_WRITE_FILE (1ULL << 1)
+#define LANDLOCK_ACCESS_FS_READ_FILE (1ULL << 2)
+#define LANDLOCK_ACCESS_FS_READ_DIR (1ULL << 3)
+#define LANDLOCK_ACCESS_FS_REMOVE_DIR (1ULL << 4)
+#define LANDLOCK_ACCESS_FS_REMOVE_FILE (1ULL << 5)
+#define LANDLOCK_ACCESS_FS_MAKE_CHAR (1ULL << 6)
+#define LANDLOCK_ACCESS_FS_MAKE_DIR (1ULL << 7)
+#define LANDLOCK_ACCESS_FS_MAKE_REG (1ULL << 8)
+#define LANDLOCK_ACCESS_FS_MAKE_SOCK (1ULL << 9)
+#define LANDLOCK_ACCESS_FS_MAKE_FIFO (1ULL << 10)
+#define LANDLOCK_ACCESS_FS_MAKE_BLOCK (1ULL << 11)
+#define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12)
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/lightnvm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/lightnvm.h
deleted file mode 100644
index b3ac317..0000000
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/lightnvm.h
+++ /dev/null
@@ -1,167 +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_LINUX_LIGHTNVM_H
-#define _UAPI_LINUX_LIGHTNVM_H
-#include <stdio.h>
-#include <sys/ioctl.h>
-#define DISK_NAME_LEN 32
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#define NVM_TTYPE_NAME_MAX 48
-#define NVM_TTYPE_MAX 63
-#define NVM_MMTYPE_LEN 8
-#define NVM_CTRL_FILE "/dev/lightnvm/control"
-struct nvm_ioctl_info_tgt {
-  __u32 version[3];
-  __u32 reserved;
-  char tgtname[NVM_TTYPE_NAME_MAX];
-};
-struct nvm_ioctl_info {
-  __u32 version[3];
-  __u16 tgtsize;
-  __u16 reserved16;
-  __u32 reserved[12];
-  struct nvm_ioctl_info_tgt tgts[NVM_TTYPE_MAX];
-};
-enum {
-  NVM_DEVICE_ACTIVE = 1 << 0,
-};
-struct nvm_ioctl_device_info {
-  char devname[DISK_NAME_LEN];
-  char bmname[NVM_TTYPE_NAME_MAX];
-  __u32 bmversion[3];
-  __u32 flags;
-  __u32 reserved[8];
-};
-struct nvm_ioctl_get_devices {
-  __u32 nr_devices;
-  __u32 reserved[31];
-  struct nvm_ioctl_device_info info[31];
-};
-struct nvm_ioctl_create_simple {
-  __u32 lun_begin;
-  __u32 lun_end;
-};
-struct nvm_ioctl_create_extended {
-  __u16 lun_begin;
-  __u16 lun_end;
-  __u16 op;
-  __u16 rsv;
-};
-enum {
-  NVM_CONFIG_TYPE_SIMPLE = 0,
-  NVM_CONFIG_TYPE_EXTENDED = 1,
-};
-struct nvm_ioctl_create_conf {
-  __u32 type;
-  union {
-    struct nvm_ioctl_create_simple s;
-    struct nvm_ioctl_create_extended e;
-  };
-};
-enum {
-  NVM_TARGET_FACTORY = 1 << 0,
-};
-struct nvm_ioctl_create {
-  char dev[DISK_NAME_LEN];
-  char tgttype[NVM_TTYPE_NAME_MAX];
-  char tgtname[DISK_NAME_LEN];
-  __u32 flags;
-  struct nvm_ioctl_create_conf conf;
-};
-struct nvm_ioctl_remove {
-  char tgtname[DISK_NAME_LEN];
-  __u32 flags;
-};
-struct nvm_ioctl_dev_init {
-  char dev[DISK_NAME_LEN];
-  char mmtype[NVM_MMTYPE_LEN];
-  __u32 flags;
-};
-enum {
-  NVM_FACTORY_ERASE_ONLY_USER = 1 << 0,
-  NVM_FACTORY_RESET_HOST_BLKS = 1 << 1,
-  NVM_FACTORY_RESET_GRWN_BBLKS = 1 << 2,
-  NVM_FACTORY_NR_BITS = 1 << 3,
-};
-struct nvm_ioctl_dev_factory {
-  char dev[DISK_NAME_LEN];
-  __u32 flags;
-};
-struct nvm_user_vio {
-  __u8 opcode;
-  __u8 flags;
-  __u16 control;
-  __u16 nppas;
-  __u16 rsvd;
-  __u64 metadata;
-  __u64 addr;
-  __u64 ppa_list;
-  __u32 metadata_len;
-  __u32 data_len;
-  __u64 status;
-  __u32 result;
-  __u32 rsvd3[3];
-};
-struct nvm_passthru_vio {
-  __u8 opcode;
-  __u8 flags;
-  __u8 rsvd[2];
-  __u32 nsid;
-  __u32 cdw2;
-  __u32 cdw3;
-  __u64 metadata;
-  __u64 addr;
-  __u32 metadata_len;
-  __u32 data_len;
-  __u64 ppa_list;
-  __u16 nppas;
-  __u16 control;
-  __u32 cdw13;
-  __u32 cdw14;
-  __u32 cdw15;
-  __u64 status;
-  __u32 result;
-  __u32 timeout_ms;
-};
-enum {
-  NVM_INFO_CMD = 0x20,
-  NVM_GET_DEVICES_CMD,
-  NVM_DEV_CREATE_CMD,
-  NVM_DEV_REMOVE_CMD,
-  NVM_DEV_INIT_CMD,
-  NVM_DEV_FACTORY_CMD,
-  NVM_DEV_VIO_ADMIN_CMD = 0x41,
-  NVM_DEV_VIO_CMD = 0x42,
-  NVM_DEV_VIO_USER_CMD = 0x43,
-};
-#define NVM_IOCTL 'L'
-#define NVM_INFO _IOWR(NVM_IOCTL, NVM_INFO_CMD, struct nvm_ioctl_info)
-#define NVM_GET_DEVICES _IOR(NVM_IOCTL, NVM_GET_DEVICES_CMD, struct nvm_ioctl_get_devices)
-#define NVM_DEV_CREATE _IOW(NVM_IOCTL, NVM_DEV_CREATE_CMD, struct nvm_ioctl_create)
-#define NVM_DEV_REMOVE _IOW(NVM_IOCTL, NVM_DEV_REMOVE_CMD, struct nvm_ioctl_remove)
-#define NVM_DEV_INIT _IOW(NVM_IOCTL, NVM_DEV_INIT_CMD, struct nvm_ioctl_dev_init)
-#define NVM_DEV_FACTORY _IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, struct nvm_ioctl_dev_factory)
-#define NVME_NVM_IOCTL_IO_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_USER_CMD, struct nvm_passthru_vio)
-#define NVME_NVM_IOCTL_ADMIN_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_ADMIN_CMD, struct nvm_passthru_vio)
-#define NVME_NVM_IOCTL_SUBMIT_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_CMD, struct nvm_user_vio)
-#define NVM_VERSION_MAJOR 1
-#define NVM_VERSION_MINOR 0
-#define NVM_VERSION_PATCHLEVEL 0
-#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/lwtunnel.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
index f472150..e6fb536 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
@@ -29,6 +29,7 @@
   LWTUNNEL_ENCAP_BPF,
   LWTUNNEL_ENCAP_SEG6_LOCAL,
   LWTUNNEL_ENCAP_RPL,
+  LWTUNNEL_ENCAP_IOAM6,
   __LWTUNNEL_ENCAP_MAX,
 };
 #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/magic.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/magic.h
index 479ae81..6563411 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/magic.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/magic.h
@@ -22,6 +22,7 @@
 #define AFFS_SUPER_MAGIC 0xadff
 #define AFS_SUPER_MAGIC 0x5346414F
 #define AUTOFS_SUPER_MAGIC 0x0187
+#define CEPH_SUPER_MAGIC 0x00c36400
 #define CODA_SUPER_MAGIC 0x73757245
 #define CRAMFS_MAGIC 0x28cd3d45
 #define CRAMFS_MAGIC_WEND 0x453dcd28
@@ -51,12 +52,14 @@
 #define EFIVARFS_MAGIC 0xde5e81e4
 #define HOSTFS_SUPER_MAGIC 0x00c0ffee
 #define OVERLAYFS_SUPER_MAGIC 0x794c7630
+#define FUSE_SUPER_MAGIC 0x65735546
 #define MINIX_SUPER_MAGIC 0x137F
 #define MINIX_SUPER_MAGIC2 0x138F
 #define MINIX2_SUPER_MAGIC 0x2468
 #define MINIX2_SUPER_MAGIC2 0x2478
 #define MINIX3_SUPER_MAGIC 0x4d5a
 #define MSDOS_SUPER_MAGIC 0x4d44
+#define EXFAT_SUPER_MAGIC 0x2011BAB0
 #define NCP_SUPER_MAGIC 0x564c
 #define NFS_SUPER_MAGIC 0x6969
 #define OCFS2_SUPER_MAGIC 0x7461636f
@@ -69,6 +72,8 @@
 #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
 #define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs"
 #define SMB_SUPER_MAGIC 0x517B
+#define CIFS_SUPER_MAGIC 0xFF534D42
+#define SMB2_SUPER_MAGIC 0xFE534D42
 #define CGROUP_SUPER_MAGIC 0x27e0eb
 #define CGROUP2_SUPER_MAGIC 0x63677270
 #define RDTGROUP_SUPER_MAGIC 0x7655821
@@ -100,4 +105,5 @@
 #define DEVMEM_MAGIC 0x454d444d
 #define Z3FOLD_MAGIC 0x33
 #define PPC_CMM_MAGIC 0xc7571590
+#define SECRETMEM_MAGIC 0x5345434d
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/major.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/major.h
index 7768d7b..f5e2cfb 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/major.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/major.h
@@ -45,8 +45,6 @@
 #define GOLDSTAR_CDROM_MAJOR 16
 #define OPTICS_CDROM_MAJOR 17
 #define SANYO_CDROM_MAJOR 18
-#define CYCLADES_MAJOR 19
-#define CYCLADESAUX_MAJOR 20
 #define MITSUMI_X_CDROM_MAJOR 20
 #define MFM_ACORN_MAJOR 21
 #define SCSI_GENERIC_MAJOR 21
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h
new file mode 100644
index 0000000..657df6c
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h
@@ -0,0 +1,56 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 MAP_TO_14SEGMENT_H
+#define MAP_TO_14SEGMENT_H
+#include <linux/errno.h>
+#include <linux/types.h>
+#include <asm/byteorder.h>
+#define BIT_SEG14_A 0
+#define BIT_SEG14_B 1
+#define BIT_SEG14_C 2
+#define BIT_SEG14_D 3
+#define BIT_SEG14_E 4
+#define BIT_SEG14_F 5
+#define BIT_SEG14_G1 6
+#define BIT_SEG14_G2 7
+#define BIT_SEG14_H 8
+#define BIT_SEG14_I 9
+#define BIT_SEG14_J 10
+#define BIT_SEG14_K 11
+#define BIT_SEG14_L 12
+#define BIT_SEG14_M 13
+#define BIT_SEG14_RESERVED1 14
+#define BIT_SEG14_RESERVED2 15
+struct seg14_conversion_map {
+  __be16 table[128];
+};
+#define SEG14_CONVERSION_MAP(_name,_map) struct seg14_conversion_map _name = {.table = { _map } }
+#define MAP_TO_SEG14_SYSFS_FILE "map_seg14"
+#define _SEG14(sym,a,b,c,d,e,f,g1,g2,h,j,k,l,m,n) __cpu_to_be16(a << BIT_SEG14_A | b << BIT_SEG14_B | c << BIT_SEG14_C | d << BIT_SEG14_D | e << BIT_SEG14_E | f << BIT_SEG14_F | g1 << BIT_SEG14_G1 | g2 << BIT_SEG14_G2 | h << BIT_SEG14_H | j << BIT_SEG14_I | k << BIT_SEG14_J | l << BIT_SEG14_K | m << BIT_SEG14_L | n << BIT_SEG14_M)
+#define _MAP_0_32_ASCII_SEG14_NON_PRINTABLE 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+#define _MAP_33_47_ASCII_SEG14_SYMBOL _SEG14('!', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('"', 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), _SEG14('#', 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14('$', 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14('%', 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('&', 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1), _SEG14('\'', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), _SEG14('(', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1), _SEG14(')', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0), _SEG14('*', 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1), _SEG14('+', 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14(',', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0), _SEG14('-', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('.', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1), _SEG14('/', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
+#define _MAP_48_57_ASCII_SEG14_NUMERIC _SEG14('0', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('1', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0), _SEG14('2', 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('3', 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0), _SEG14('4', 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('5', 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1), _SEG14('6', 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('7', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0), _SEG14('8', 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('9', 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0),
+#define _MAP_58_64_ASCII_SEG14_SYMBOL _SEG14(':', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14(';', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0), _SEG14('<', 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1), _SEG14('=', 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('>', 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0), _SEG14('?', 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0), _SEG14('@', 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0),
+#define _MAP_65_90_ASCII_SEG14_ALPHA_UPPER _SEG14('A', 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('B', 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0), _SEG14('C', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('D', 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('E', 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('F', 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('G', 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0), _SEG14('H', 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('I', 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('J', 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('K', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1), _SEG14('L', 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('M', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0), _SEG14('N', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1), _SEG14('O', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('P', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('Q', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1), _SEG14('R', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1), _SEG14('S', 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('T', 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('U', 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('V', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('W', 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('X', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1), _SEG14('Y', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0), _SEG14('Z', 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
+#define _MAP_91_96_ASCII_SEG14_SYMBOL _SEG14('[', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('\\', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), _SEG14(']', 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('^', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('_', 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('`', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0),
+#define _MAP_97_122_ASCII_SEG14_ALPHA_LOWER _SEG14('a', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('b', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1), _SEG14('c', 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('d', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0), _SEG14('e', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0), _SEG14('f', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0), _SEG14('g', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), _SEG14('h', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('i', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0), _SEG14('j', 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0), _SEG14('k', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1), _SEG14('l', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('m', 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0), _SEG14('n', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('o', 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('p', 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0), _SEG14('q', 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), _SEG14('r', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('s', 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), _SEG14('t', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('u', 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('v', 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0), _SEG14('w', 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('x', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1), _SEG14('y', 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0), _SEG14('z', 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0),
+#define _MAP_123_126_ASCII_SEG14_SYMBOL _SEG14('{', 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0), _SEG14('|', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('}', 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1), _SEG14('~', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0),
+#define MAP_ASCII14SEG_ALPHANUM _MAP_0_32_ASCII_SEG14_NON_PRINTABLE _MAP_33_47_ASCII_SEG14_SYMBOL _MAP_48_57_ASCII_SEG14_NUMERIC _MAP_58_64_ASCII_SEG14_SYMBOL _MAP_65_90_ASCII_SEG14_ALPHA_UPPER _MAP_91_96_ASCII_SEG14_SYMBOL _MAP_97_122_ASCII_SEG14_ALPHA_LOWER _MAP_123_126_ASCII_SEG14_SYMBOL
+#define SEG14_DEFAULT_MAP(_name) SEG14_CONVERSION_MAP(_name, MAP_ASCII14SEG_ALPHANUM)
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mctp.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mctp.h
new file mode 100644
index 0000000..21a9a14
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mctp.h
@@ -0,0 +1,50 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_MCTP_H
+#define __UAPI_MCTP_H
+#include <linux/types.h>
+#include <linux/socket.h>
+#include <linux/netdevice.h>
+typedef __u8 mctp_eid_t;
+struct mctp_addr {
+  mctp_eid_t s_addr;
+};
+struct sockaddr_mctp {
+  __kernel_sa_family_t smctp_family;
+  __u16 __smctp_pad0;
+  unsigned int smctp_network;
+  struct mctp_addr smctp_addr;
+  __u8 smctp_type;
+  __u8 smctp_tag;
+  __u8 __smctp_pad1;
+};
+struct sockaddr_mctp_ext {
+  struct sockaddr_mctp smctp_base;
+  int smctp_ifindex;
+  __u8 smctp_halen;
+  __u8 __smctp_pad0[3];
+  __u8 smctp_haddr[MAX_ADDR_LEN];
+};
+#define MCTP_NET_ANY 0x0
+#define MCTP_ADDR_NULL 0x00
+#define MCTP_ADDR_ANY 0xff
+#define MCTP_TAG_MASK 0x07
+#define MCTP_TAG_OWNER 0x08
+#define MCTP_OPT_ADDR_EXT 1
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mdio.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mdio.h
index a38cbfc..d5c9da8 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mdio.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mdio.h
@@ -55,9 +55,11 @@
 #define MDIO_AN_EEE_LPABLE 61
 #define MDIO_AN_EEE_ADV2 62
 #define MDIO_AN_EEE_LPABLE2 63
+#define MDIO_AN_CTRL2 64
 #define MDIO_PMA_10GBT_SWAPPOL 130
 #define MDIO_PMA_10GBT_TXPWR 131
 #define MDIO_PMA_10GBT_SNR 133
+#define MDIO_PMA_10GBR_FSRT_CSR 147
 #define MDIO_PMA_10GBR_FECABLE 170
 #define MDIO_PCS_10GBX_STAT1 24
 #define MDIO_PCS_10GBRT_STAT1 32
@@ -104,6 +106,8 @@
 #define MDIO_PMA_SPEED_100 0x0020
 #define MDIO_PMA_SPEED_10 0x0040
 #define MDIO_PCS_SPEED_10P2B 0x0002
+#define MDIO_PCS_SPEED_2_5G 0x0040
+#define MDIO_PCS_SPEED_5G 0x0080
 #define MDIO_DEVS_PRESENT(devad) (1 << (devad))
 #define MDIO_DEVS_C22PRESENT MDIO_DEVS_PRESENT(0)
 #define MDIO_DEVS_PMAPMD MDIO_DEVS_PRESENT(MDIO_MMD_PMAPMD)
@@ -197,9 +201,11 @@
 #define MDIO_PMA_10GBT_SNR_MAX 127
 #define MDIO_PMA_10GBR_FECABLE_ABLE 0x0001
 #define MDIO_PMA_10GBR_FECABLE_ERRABLE 0x0002
+#define MDIO_PMA_10GBR_FSRT_ENABLE 0x0001
 #define MDIO_PCS_10GBRT_STAT1_BLKLK 0x0001
 #define MDIO_PCS_10GBRT_STAT2_ERR 0x00ff
 #define MDIO_PCS_10GBRT_STAT2_BER 0x3f00
+#define MDIO_AN_10GBT_CTRL_ADVFSRT2_5G 0x0020
 #define MDIO_AN_10GBT_CTRL_ADV2_5G 0x0080
 #define MDIO_AN_10GBT_CTRL_ADV5G 0x0100
 #define MDIO_AN_10GBT_CTRL_ADV10G 0x1000
@@ -226,6 +232,7 @@
 #define MDIO_EEE_100GR_DS 0x2000
 #define MDIO_EEE_2_5GT 0x0001
 #define MDIO_EEE_5GT 0x0002
+#define MDIO_AN_THP_BP2_5GT 0x0008
 #define MDIO_PMA_NG_EXTABLE_2_5GBT 0x0001
 #define MDIO_PMA_NG_EXTABLE_5GBT 0x0002
 #define MDIO_PMA_LASI_RX_PHYXSLFLT 0x0001
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mempolicy.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mempolicy.h
index 5425c0e..f92970f 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mempolicy.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mempolicy.h
@@ -25,6 +25,7 @@
   MPOL_BIND,
   MPOL_INTERLEAVE,
   MPOL_LOCAL,
+  MPOL_PREFERRED_MANY,
   MPOL_MAX,
 };
 #define MPOL_F_STATIC_NODES (1 << 15)
@@ -41,7 +42,9 @@
 #define MPOL_MF_INTERNAL (1 << 4)
 #define MPOL_MF_VALID (MPOL_MF_STRICT | MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)
 #define MPOL_F_SHARED (1 << 0)
-#define MPOL_F_LOCAL (1 << 1)
 #define MPOL_F_MOF (1 << 3)
 #define MPOL_F_MORON (1 << 4)
+#define RECLAIM_ZONE (1 << 0)
+#define RECLAIM_WRITE (1 << 1)
+#define RECLAIM_UNMAP (1 << 2)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/module.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/module.h
index f08dc67..34a4c56 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/module.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/module.h
@@ -20,4 +20,5 @@
 #define _UAPI_LINUX_MODULE_H
 #define MODULE_INIT_IGNORE_MODVERSIONS 1
 #define MODULE_INIT_IGNORE_VERMAGIC 2
+#define MODULE_INIT_COMPRESSED_FILE 4
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mount.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mount.h
index 5a112c9..2099b48 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mount.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mount.h
@@ -62,7 +62,8 @@
 #define MOVE_MOUNT_T_SYMLINKS 0x00000010
 #define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020
 #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040
-#define MOVE_MOUNT__MASK 0x00000077
+#define MOVE_MOUNT_SET_GROUP 0x00000100
+#define MOVE_MOUNT__MASK 0x00000177
 #define FSOPEN_CLOEXEC 0x00000001
 #define FSPICK_CLOEXEC 0x00000001
 #define FSPICK_SYMLINK_NOFOLLOW 0x00000002
@@ -89,6 +90,7 @@
 #define MOUNT_ATTR_STRICTATIME 0x00000020
 #define MOUNT_ATTR_NODIRATIME 0x00000080
 #define MOUNT_ATTR_IDMAP 0x00100000
+#define MOUNT_ATTR_NOSYMFOLLOW 0x00200000
 struct mount_attr {
   __u64 attr_set;
   __u64 attr_clr;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mptcp.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mptcp.h
index b15adf5..67b0ce3 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mptcp.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/mptcp.h
@@ -20,6 +20,10 @@
 #define _UAPI_MPTCP_H
 #include <linux/const.h>
 #include <linux/types.h>
+#include <linux/in.h>
+#include <linux/in6.h>
+#include <linux/socket.h>
+#include <sys/socket.h>
 #define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0)
 #define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1)
 #define MPTCP_SUBFLOW_FLAG_JOIN_REM _BITUL(2)
@@ -72,6 +76,7 @@
 #define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0)
 #define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1)
 #define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2)
+#define MPTCP_PM_ADDR_FLAG_FULLMESH (1 << 3)
 enum {
   MPTCP_PM_CMD_UNSPEC,
   MPTCP_PM_CMD_ADD_ADDR,
@@ -99,6 +104,7 @@
   __u64 mptcpi_rcv_nxt;
   __u8 mptcpi_local_addr_used;
   __u8 mptcpi_local_addr_max;
+  __u8 mptcpi_csum_enabled;
 };
 enum mptcp_event_type {
   MPTCP_EVENT_UNSPEC = 0,
@@ -128,7 +134,40 @@
   MPTCP_ATTR_FLAGS,
   MPTCP_ATTR_TIMEOUT,
   MPTCP_ATTR_IF_IDX,
+  MPTCP_ATTR_RESET_REASON,
+  MPTCP_ATTR_RESET_FLAGS,
   __MPTCP_ATTR_AFTER_LAST
 };
 #define MPTCP_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1)
+#define MPTCP_RST_EUNSPEC 0
+#define MPTCP_RST_EMPTCP 1
+#define MPTCP_RST_ERESOURCE 2
+#define MPTCP_RST_EPROHIBIT 3
+#define MPTCP_RST_EWQ2BIG 4
+#define MPTCP_RST_EBADPERF 5
+#define MPTCP_RST_EMIDDLEBOX 6
+struct mptcp_subflow_data {
+  __u32 size_subflow_data;
+  __u32 num_subflows;
+  __u32 size_kernel;
+  __u32 size_user;
+} __attribute__((aligned(8)));
+struct mptcp_subflow_addrs {
+  union {
+    __kernel_sa_family_t sa_family;
+    struct sockaddr sa_local;
+    struct sockaddr_in sin_local;
+    struct sockaddr_in6 sin6_local;
+    struct __kernel_sockaddr_storage ss_local;
+  };
+  union {
+    struct sockaddr sa_remote;
+    struct sockaddr_in sin_remote;
+    struct sockaddr_in6 sin6_remote;
+    struct __kernel_sockaddr_storage ss_remote;
+  };
+};
+#define MPTCP_INFO 1
+#define MPTCP_TCPINFO 2
+#define MPTCP_SUBFLOW_ADDRS 3
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/n_r3964.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/n_r3964.h
deleted file mode 100644
index 5a7cccc..0000000
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/n_r3964.h
+++ /dev/null
@@ -1,46 +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__LINUX_N_R3964_H__
-#define _UAPI__LINUX_N_R3964_H__
-#define R3964_ENABLE_SIGNALS 0x5301
-#define R3964_SETPRIORITY 0x5302
-#define R3964_USE_BCC 0x5303
-#define R3964_READ_TELEGRAM 0x5304
-#define R3964_MASTER 0
-#define R3964_SLAVE 1
-#define R3964_SIG_ACK 0x0001
-#define R3964_SIG_DATA 0x0002
-#define R3964_SIG_ALL 0x000f
-#define R3964_SIG_NONE 0x0000
-#define R3964_USE_SIGIO 0x1000
-enum {
-  R3964_MSG_ACK = 1,
-  R3964_MSG_DATA
-};
-#define R3964_MAX_MSG_COUNT 32
-#define R3964_OK 0
-#define R3964_TX_FAIL - 1
-#define R3964_OVERFLOW - 2
-struct r3964_client_message {
-  int msg_id;
-  int arg;
-  int error_code;
-};
-#define R3964_MTU 256
-#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
index 9faf689..dffb077 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
@@ -32,6 +32,7 @@
   NBD_ATTR_SOCKETS,
   NBD_ATTR_DEAD_CONN_TIMEOUT,
   NBD_ATTR_DEVICE_LIST,
+  NBD_ATTR_BACKEND_IDENTIFIER,
   __NBD_ATTR_MAX,
 };
 #define NBD_ATTR_MAX (__NBD_ATTR_MAX - 1)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/neighbour.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/neighbour.h
index e0e84aa..278f7d1 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/neighbour.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/neighbour.h
@@ -45,17 +45,19 @@
   NDA_PROTOCOL,
   NDA_NH_ID,
   NDA_FDB_EXT_ATTRS,
+  NDA_FLAGS_EXT,
   __NDA_MAX
 };
 #define NDA_MAX (__NDA_MAX - 1)
-#define NTF_USE 0x01
-#define NTF_SELF 0x02
-#define NTF_MASTER 0x04
-#define NTF_PROXY 0x08
-#define NTF_EXT_LEARNED 0x10
-#define NTF_OFFLOADED 0x20
-#define NTF_STICKY 0x40
-#define NTF_ROUTER 0x80
+#define NTF_USE (1 << 0)
+#define NTF_SELF (1 << 1)
+#define NTF_MASTER (1 << 2)
+#define NTF_PROXY (1 << 3)
+#define NTF_EXT_LEARNED (1 << 4)
+#define NTF_OFFLOADED (1 << 5)
+#define NTF_STICKY (1 << 6)
+#define NTF_ROUTER (1 << 7)
+#define NTF_EXT_MANAGED (1 << 0)
 #define NUD_INCOMPLETE 0x01
 #define NUD_REACHABLE 0x02
 #define NUD_STALE 0x04
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/net_tstamp.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
index 373d1bb..510c0da 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
@@ -36,15 +36,26 @@
   SOF_TIMESTAMPING_OPT_STATS = (1 << 12),
   SOF_TIMESTAMPING_OPT_PKTINFO = (1 << 13),
   SOF_TIMESTAMPING_OPT_TX_SWHW = (1 << 14),
-  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW,
+  SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
+  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
   SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | SOF_TIMESTAMPING_LAST
 };
 #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | SOF_TIMESTAMPING_TX_SOFTWARE | SOF_TIMESTAMPING_TX_SCHED | SOF_TIMESTAMPING_TX_ACK)
+struct so_timestamping {
+  int flags;
+  int bind_phc;
+};
 struct hwtstamp_config {
   int flags;
   int tx_type;
   int rx_filter;
 };
+enum hwtstamp_flags {
+  HWTSTAMP_FLAG_BONDED_PHC_INDEX = (1 << 0),
+#define HWTSTAMP_FLAG_BONDED_PHC_INDEX HWTSTAMP_FLAG_BONDED_PHC_INDEX
+  HWTSTAMP_FLAG_LAST = HWTSTAMP_FLAG_BONDED_PHC_INDEX,
+  HWTSTAMP_FLAG_MASK = (HWTSTAMP_FLAG_LAST - 1) | HWTSTAMP_FLAG_LAST
+};
 enum hwtstamp_tx_types {
   HWTSTAMP_TX_OFF,
   HWTSTAMP_TX_ON,
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter.h
index 261b979..77b8a91 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter.h
@@ -47,6 +47,7 @@
 };
 enum nf_dev_hooks {
   NF_NETDEV_INGRESS,
+  NF_NETDEV_EGRESS,
   NF_NETDEV_NUMHOOKS
 };
 enum {
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
index 0023a94..441cd60 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
@@ -223,6 +223,7 @@
 #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,
@@ -385,6 +386,7 @@
   NFT_PAYLOAD_LL_HEADER,
   NFT_PAYLOAD_NETWORK_HEADER,
   NFT_PAYLOAD_TRANSPORT_HEADER,
+  NFT_PAYLOAD_INNER_HEADER,
 };
 enum nft_payload_csum_types {
   NFT_PAYLOAD_CSUM_NONE,
@@ -414,6 +416,7 @@
   NFT_EXTHDR_OP_IPV6,
   NFT_EXTHDR_OP_TCPOPT,
   NFT_EXTHDR_OP_IPV4,
+  NFT_EXTHDR_OP_SCTP,
   __NFT_EXTHDR_OP_MAX
 };
 #define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
@@ -438,7 +441,8 @@
   NFT_META_OIF,
   NFT_META_IIFNAME,
   NFT_META_OIFNAME,
-  NFT_META_IIFTYPE,
+  NFT_META_IFTYPE,
+#define NFT_META_IIFTYPE NFT_META_IFTYPE
   NFT_META_OIFTYPE,
   NFT_META_SKUID,
   NFT_META_SKGID,
@@ -465,6 +469,7 @@
   NFT_META_TIME_HOUR,
   NFT_META_SDIF,
   NFT_META_SDIFNAME,
+  __NFT_META_IIFTYPE,
 };
 enum nft_rt_keys {
   NFT_RT_CLASSID,
@@ -512,6 +517,7 @@
   NFTA_SOCKET_UNSPEC,
   NFTA_SOCKET_KEY,
   NFTA_SOCKET_DREG,
+  NFTA_SOCKET_LEVEL,
   __NFTA_SOCKET_MAX
 };
 #define NFTA_SOCKET_MAX (__NFTA_SOCKET_MAX - 1)
@@ -519,6 +525,7 @@
   NFT_SOCKET_TRANSPARENT,
   NFT_SOCKET_MARK,
   NFT_SOCKET_WILDCARD,
+  NFT_SOCKET_CGROUPV2,
   __NFT_SOCKET_MAX
 };
 #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1)
@@ -601,6 +608,14 @@
   __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,
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
index 9145552..705de74 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
@@ -64,7 +64,8 @@
 #define NFNL_SUBSYS_CTHELPER 9
 #define NFNL_SUBSYS_NFTABLES 10
 #define NFNL_SUBSYS_NFT_COMPAT 11
-#define NFNL_SUBSYS_COUNT 12
+#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 {
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
index 4501e53..200f1a0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -67,6 +67,7 @@
   CTA_LABELS_MASK,
   CTA_SYNPROXY,
   CTA_FILTER,
+  CTA_STATUS_MASK,
   __CTA_MAX
 };
 #define CTA_MAX (__CTA_MAX - 1)
@@ -249,6 +250,7 @@
   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)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
new file mode 100644
index 0000000..ce1692c
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
index 23606df..6dd8dbc 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
@@ -26,4 +26,9 @@
   __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/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netlink.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netlink.h
index da6a46b..77825cc 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netlink.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/netlink.h
@@ -80,7 +80,7 @@
 #define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
 #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
 #define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
-#define NLMSG_DATA(nlh) ((void *) (((char *) nlh) + NLMSG_LENGTH(0)))
+#define NLMSG_DATA(nlh) ((void *) (((char *) nlh) + NLMSG_HDRLEN))
 #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), (struct nlmsghdr *) (((char *) (nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
 #define NLMSG_OK(nlh,len) ((len) >= (int) sizeof(struct nlmsghdr) && (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && (nlh)->nlmsg_len <= (len))
 #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nexthop.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nexthop.h
index f99a074..4bc9ff0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nexthop.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nexthop.h
@@ -34,6 +34,7 @@
 };
 enum {
   NEXTHOP_GRP_TYPE_MPATH,
+  NEXTHOP_GRP_TYPE_RES,
   __NEXTHOP_GRP_TYPE_MAX,
 };
 #define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
@@ -50,7 +51,28 @@
   NHA_GROUPS,
   NHA_MASTER,
   NHA_FDB,
+  NHA_RES_GROUP,
+  NHA_RES_BUCKET,
   __NHA_MAX,
 };
 #define NHA_MAX (__NHA_MAX - 1)
+enum {
+  NHA_RES_GROUP_UNSPEC,
+  NHA_RES_GROUP_PAD = NHA_RES_GROUP_UNSPEC,
+  NHA_RES_GROUP_BUCKETS,
+  NHA_RES_GROUP_IDLE_TIMER,
+  NHA_RES_GROUP_UNBALANCED_TIMER,
+  NHA_RES_GROUP_UNBALANCED_TIME,
+  __NHA_RES_GROUP_MAX,
+};
+#define NHA_RES_GROUP_MAX (__NHA_RES_GROUP_MAX - 1)
+enum {
+  NHA_RES_BUCKET_UNSPEC,
+  NHA_RES_BUCKET_PAD = NHA_RES_BUCKET_UNSPEC,
+  NHA_RES_BUCKET_INDEX,
+  NHA_RES_BUCKET_IDLE_TIME,
+  NHA_RES_BUCKET_NH_ID,
+  __NHA_RES_BUCKET_MAX,
+};
+#define NHA_RES_BUCKET_MAX (__NHA_RES_BUCKET_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nfc.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nfc.h
index 72e3520..ff980f4 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nfc.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nfc.h
@@ -139,14 +139,14 @@
 #define NFC_SE_DISABLED 0x0
 #define NFC_SE_ENABLED 0x1
 struct sockaddr_nfc {
-  sa_family_t sa_family;
+  __kernel_sa_family_t sa_family;
   __u32 dev_idx;
   __u32 target_idx;
   __u32 nfc_protocol;
 };
 #define NFC_LLCP_MAX_SERVICE_NAME 63
 struct sockaddr_nfc_llcp {
-  sa_family_t sa_family;
+  __kernel_sa_family_t sa_family;
   __u32 dev_idx;
   __u32 target_idx;
   __u32 nfc_protocol;
@@ -154,7 +154,7 @@
   __u8 ssap;
   char service_name[NFC_LLCP_MAX_SERVICE_NAME];
 ;
-  size_t service_name_len;
+  __kernel_size_t service_name_len;
 };
 #define NFC_SOCKPROTO_RAW 0
 #define NFC_SOCKPROTO_LLCP 1
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h
deleted file mode 100644
index 1a805c3..0000000
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h
+++ /dev/null
@@ -1,63 +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_LINUX_NFSD_FH_H
-#define _UAPI_LINUX_NFSD_FH_H
-#include <linux/types.h>
-#include <linux/nfs.h>
-#include <linux/nfs2.h>
-#include <linux/nfs3.h>
-#include <linux/nfs4.h>
-struct nfs_fhbase_old {
-  __u32 fb_dcookie;
-  __u32 fb_ino;
-  __u32 fb_dirino;
-  __u32 fb_dev;
-  __u32 fb_xdev;
-  __u32 fb_xino;
-  __u32 fb_generation;
-};
-struct nfs_fhbase_new {
-  __u8 fb_version;
-  __u8 fb_auth_type;
-  __u8 fb_fsid_type;
-  __u8 fb_fileid_type;
-  __u32 fb_auth[1];
-};
-struct knfsd_fh {
-  unsigned int fh_size;
-  union {
-    struct nfs_fhbase_old fh_old;
-    __u32 fh_pad[NFS4_FHSIZE / 4];
-    struct nfs_fhbase_new fh_new;
-  } fh_base;
-};
-#define ofh_dcookie fh_base.fh_old.fb_dcookie
-#define ofh_ino fh_base.fh_old.fb_ino
-#define ofh_dirino fh_base.fh_old.fb_dirino
-#define ofh_dev fh_base.fh_old.fb_dev
-#define ofh_xdev fh_base.fh_old.fb_xdev
-#define ofh_xino fh_base.fh_old.fb_xino
-#define ofh_generation fh_base.fh_old.fb_generation
-#define fh_version fh_base.fh_new.fb_version
-#define fh_fsid_type fh_base.fh_new.fb_fsid_type
-#define fh_auth_type fh_base.fh_new.fb_auth_type
-#define fh_fileid_type fh_base.fh_new.fb_fileid_type
-#define fh_fsid fh_base.fh_new.fb_auth
-#define fh_auth fh_base.fh_new.fb_auth
-#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h
new file mode 100644
index 0000000..9ade75a
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __VENDOR_CMD_INTEL_H__
+#define __VENDOR_CMD_INTEL_H__
+#define INTEL_OUI 0x001735
+enum iwl_mvm_vendor_cmd {
+  IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO = 0x2d,
+  IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP = 0x30,
+  IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT = 0x32,
+};
+enum iwl_vendor_auth_akm_mode {
+  IWL_VENDOR_AUTH_OPEN,
+  IWL_VENDOR_AUTH_RSNA = 0x6,
+  IWL_VENDOR_AUTH_RSNA_PSK,
+  IWL_VENDOR_AUTH_SAE = 0x9,
+  IWL_VENDOR_AUTH_MAX,
+};
+enum iwl_mvm_vendor_attr {
+  __IWL_MVM_VENDOR_ATTR_INVALID = 0x00,
+  IWL_MVM_VENDOR_ATTR_VIF_ADDR = 0x02,
+  IWL_MVM_VENDOR_ATTR_ADDR = 0x0a,
+  IWL_MVM_VENDOR_ATTR_SSID = 0x3d,
+  IWL_MVM_VENDOR_ATTR_STA_CIPHER = 0x51,
+  IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN = 0x64,
+  IWL_MVM_VENDOR_ATTR_AUTH_MODE = 0x65,
+  IWL_MVM_VENDOR_ATTR_CHANNEL_NUM = 0x66,
+  IWL_MVM_VENDOR_ATTR_BAND = 0x69,
+  IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL = 0x70,
+  IWL_MVM_VENDOR_ATTR_COLLOC_ADDR = 0x71,
+  NUM_IWL_MVM_VENDOR_ATTR,
+  MAX_IWL_MVM_VENDOR_ATTR = NUM_IWL_MVM_VENDOR_ATTR - 1,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nl80211.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nl80211.h
index 5181160..e902178 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nl80211.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/nl80211.h
@@ -178,6 +178,13 @@
   NL80211_CMD_UNPROT_BEACON,
   NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS,
   NL80211_CMD_SET_SAR_SPECS,
+  NL80211_CMD_OBSS_COLOR_COLLISION,
+  NL80211_CMD_COLOR_CHANGE_REQUEST,
+  NL80211_CMD_COLOR_CHANGE_STARTED,
+  NL80211_CMD_COLOR_CHANGE_ABORTED,
+  NL80211_CMD_COLOR_CHANGE_COMPLETED,
+  NL80211_CMD_SET_FILS_AAD,
+  NL80211_CMD_ASSOC_COMEBACK,
   __NL80211_CMD_AFTER_LAST,
   NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
 };
@@ -496,6 +503,14 @@
   NL80211_ATTR_RECONNECT_REQUESTED,
   NL80211_ATTR_SAR_SPEC,
   NL80211_ATTR_DISABLE_HE,
+  NL80211_ATTR_OBSS_COLOR_BITMAP,
+  NL80211_ATTR_COLOR_CHANGE_COUNT,
+  NL80211_ATTR_COLOR_CHANGE_COLOR,
+  NL80211_ATTR_COLOR_CHANGE_ELEMS,
+  NL80211_ATTR_MBSSID_CONFIG,
+  NL80211_ATTR_MBSSID_ELEMS,
+  NL80211_ATTR_RADAR_BACKGROUND,
+  NL80211_ATTR_AP_SETTINGS_FLAGS,
   __NL80211_ATTR_AFTER_LAST,
   NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
   NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
@@ -738,6 +753,7 @@
   NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
   NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
   NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
+  NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
   __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
   NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1
 };
@@ -1137,6 +1153,7 @@
   NL80211_BAND_60GHZ,
   NL80211_BAND_6GHZ,
   NL80211_BAND_S1GHZ,
+  NL80211_BAND_LC,
   NUM_NL80211_BANDS,
 };
 enum nl80211_ps_state {
@@ -1359,6 +1376,9 @@
   NL80211_TDLS_ENABLE_LINK,
   NL80211_TDLS_DISABLE_LINK,
 };
+enum nl80211_ap_sme_features {
+  NL80211_AP_SME_SA_QUERY_OFFLOAD = 1 << 0,
+};
 enum nl80211_feature_flags {
   NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
   NL80211_FEATURE_HT_IBSS = 1 << 1,
@@ -1449,6 +1469,12 @@
   NL80211_EXT_FEATURE_FILS_DISCOVERY,
   NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
   NL80211_EXT_FEATURE_BEACON_RATE_HE,
+  NL80211_EXT_FEATURE_SECURE_LTF,
+  NL80211_EXT_FEATURE_SECURE_RTT,
+  NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
+  NL80211_EXT_FEATURE_BSS_COLOR,
+  NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
+  NL80211_EXT_FEATURE_RADAR_BACKGROUND,
   NUM_NL80211_EXT_FEATURES,
   MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
 };
@@ -1533,6 +1559,7 @@
   NL80211_TDLS_PEER_HT = 1 << 0,
   NL80211_TDLS_PEER_VHT = 1 << 1,
   NL80211_TDLS_PEER_WMM = 1 << 2,
+  NL80211_TDLS_PEER_HE = 1 << 3,
 };
 enum nl80211_sched_scan_plan {
   __NL80211_SCHED_SCAN_PLAN_INVALID,
@@ -1720,6 +1747,8 @@
   NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
   NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
   NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
+  NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
+  NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
   NUM_NL80211_PMSR_FTM_REQ_ATTR,
   NL80211_PMSR_FTM_REQ_ATTR_MAX = NUM_NL80211_PMSR_FTM_REQ_ATTR - 1
 };
@@ -1827,4 +1856,18 @@
   __NL80211_SAR_ATTR_SPECS_LAST,
   NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
 };
+enum nl80211_mbssid_config_attributes {
+  __NL80211_MBSSID_CONFIG_ATTR_INVALID,
+  NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
+  NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
+  NL80211_MBSSID_CONFIG_ATTR_INDEX,
+  NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
+  NL80211_MBSSID_CONFIG_ATTR_EMA,
+  __NL80211_MBSSID_CONFIG_ATTR_LAST,
+  NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
+};
+enum nl80211_ap_settings_flags {
+  NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1 << 0,
+  NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 1 << 1,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/openvswitch.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/openvswitch.h
index 7db5cd5..1f8ae17 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/openvswitch.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/openvswitch.h
@@ -43,6 +43,7 @@
   OVS_DP_ATTR_USER_FEATURES,
   OVS_DP_ATTR_PAD,
   OVS_DP_ATTR_MASKS_CACHE_SIZE,
+  OVS_DP_ATTR_PER_CPU_PIDS,
   __OVS_DP_ATTR_MAX
 };
 #define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1)
@@ -72,6 +73,7 @@
 #define OVS_DP_F_UNALIGNED (1 << 0)
 #define OVS_DP_F_VPORT_PIDS (1 << 1)
 #define OVS_DP_F_TC_RECIRC_SHARING (1 << 2)
+#define OVS_DP_F_DISPATCH_UPCALL_PER_CPU (1 << 3)
 #define OVSP_LOCAL ((__u32) 0)
 #define OVS_PACKET_FAMILY "ovs_packet"
 #define OVS_PACKET_VERSION 0x1
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pci_regs.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pci_regs.h
index 81450a7..46612da 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pci_regs.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pci_regs.h
@@ -245,21 +245,21 @@
 #define PCI_SID_ESR_NSLOTS 0x1f
 #define PCI_SID_ESR_FIC 0x20
 #define PCI_SID_CHASSIS_NR 3
-#define PCI_MSI_FLAGS 2
+#define PCI_MSI_FLAGS 0x02
 #define PCI_MSI_FLAGS_ENABLE 0x0001
 #define PCI_MSI_FLAGS_QMASK 0x000e
 #define PCI_MSI_FLAGS_QSIZE 0x0070
 #define PCI_MSI_FLAGS_64BIT 0x0080
 #define PCI_MSI_FLAGS_MASKBIT 0x0100
 #define PCI_MSI_RFU 3
-#define PCI_MSI_ADDRESS_LO 4
-#define PCI_MSI_ADDRESS_HI 8
-#define PCI_MSI_DATA_32 8
-#define PCI_MSI_MASK_32 12
-#define PCI_MSI_PENDING_32 16
-#define PCI_MSI_DATA_64 12
-#define PCI_MSI_MASK_64 16
-#define PCI_MSI_PENDING_64 20
+#define PCI_MSI_ADDRESS_LO 0x04
+#define PCI_MSI_ADDRESS_HI 0x08
+#define PCI_MSI_DATA_32 0x08
+#define PCI_MSI_MASK_32 0x0c
+#define PCI_MSI_PENDING_32 0x10
+#define PCI_MSI_DATA_64 0x0c
+#define PCI_MSI_MASK_64 0x10
+#define PCI_MSI_PENDING_64 0x14
 #define PCI_MSIX_FLAGS 2
 #define PCI_MSIX_FLAGS_QSIZE 0x07FF
 #define PCI_MSIX_FLAGS_MASKALL 0x4000
@@ -273,10 +273,10 @@
 #define PCI_MSIX_FLAGS_BIRMASK PCI_MSIX_PBA_BIR
 #define PCI_CAP_MSIX_SIZEOF 12
 #define PCI_MSIX_ENTRY_SIZE 16
-#define PCI_MSIX_ENTRY_LOWER_ADDR 0
-#define PCI_MSIX_ENTRY_UPPER_ADDR 4
-#define PCI_MSIX_ENTRY_DATA 8
-#define PCI_MSIX_ENTRY_VECTOR_CTRL 12
+#define PCI_MSIX_ENTRY_LOWER_ADDR 0x0
+#define PCI_MSIX_ENTRY_UPPER_ADDR 0x4
+#define PCI_MSIX_ENTRY_DATA 0x8
+#define PCI_MSIX_ENTRY_VECTOR_CTRL 0xc
 #define PCI_MSIX_ENTRY_CTRL_MASKBIT 0x00000001
 #define PCI_CHSWP_CSR 2
 #define PCI_CHSWP_DHA 0x01
@@ -379,7 +379,7 @@
 #define PCI_X_BRIDGE_STATUS 4
 #define PCI_SSVID_VENDOR_ID 4
 #define PCI_SSVID_DEVICE_ID 6
-#define PCI_EXP_FLAGS 2
+#define PCI_EXP_FLAGS 0x02
 #define PCI_EXP_FLAGS_VERS 0x000f
 #define PCI_EXP_FLAGS_TYPE 0x00f0
 #define PCI_EXP_TYPE_ENDPOINT 0x0
@@ -393,7 +393,7 @@
 #define PCI_EXP_TYPE_RC_EC 0xa
 #define PCI_EXP_FLAGS_SLOT 0x0100
 #define PCI_EXP_FLAGS_IRQ 0x3e00
-#define PCI_EXP_DEVCAP 4
+#define PCI_EXP_DEVCAP 0x04
 #define PCI_EXP_DEVCAP_PAYLOAD 0x00000007
 #define PCI_EXP_DEVCAP_PHANTOM 0x00000018
 #define PCI_EXP_DEVCAP_EXT_TAG 0x00000020
@@ -406,13 +406,19 @@
 #define PCI_EXP_DEVCAP_PWR_VAL 0x03fc0000
 #define PCI_EXP_DEVCAP_PWR_SCL 0x0c000000
 #define PCI_EXP_DEVCAP_FLR 0x10000000
-#define PCI_EXP_DEVCTL 8
+#define PCI_EXP_DEVCTL 0x08
 #define PCI_EXP_DEVCTL_CERE 0x0001
 #define PCI_EXP_DEVCTL_NFERE 0x0002
 #define PCI_EXP_DEVCTL_FERE 0x0004
 #define PCI_EXP_DEVCTL_URRE 0x0008
 #define PCI_EXP_DEVCTL_RELAX_EN 0x0010
 #define PCI_EXP_DEVCTL_PAYLOAD 0x00e0
+#define PCI_EXP_DEVCTL_PAYLOAD_128B 0x0000
+#define PCI_EXP_DEVCTL_PAYLOAD_256B 0x0020
+#define PCI_EXP_DEVCTL_PAYLOAD_512B 0x0040
+#define PCI_EXP_DEVCTL_PAYLOAD_1024B 0x0060
+#define PCI_EXP_DEVCTL_PAYLOAD_2048B 0x0080
+#define PCI_EXP_DEVCTL_PAYLOAD_4096B 0x00a0
 #define PCI_EXP_DEVCTL_EXT_TAG 0x0100
 #define PCI_EXP_DEVCTL_PHANTOM 0x0200
 #define PCI_EXP_DEVCTL_AUX_PME 0x0400
@@ -425,7 +431,7 @@
 #define PCI_EXP_DEVCTL_READRQ_2048B 0x4000
 #define PCI_EXP_DEVCTL_READRQ_4096B 0x5000
 #define PCI_EXP_DEVCTL_BCR_FLR 0x8000
-#define PCI_EXP_DEVSTA 10
+#define PCI_EXP_DEVSTA 0x0a
 #define PCI_EXP_DEVSTA_CED 0x0001
 #define PCI_EXP_DEVSTA_NFED 0x0002
 #define PCI_EXP_DEVSTA_FED 0x0004
@@ -433,7 +439,7 @@
 #define PCI_EXP_DEVSTA_AUXPD 0x0010
 #define PCI_EXP_DEVSTA_TRPND 0x0020
 #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12
-#define PCI_EXP_LNKCAP 12
+#define PCI_EXP_LNKCAP 0x0c
 #define PCI_EXP_LNKCAP_SLS 0x0000000f
 #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001
 #define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002
@@ -452,7 +458,7 @@
 #define PCI_EXP_LNKCAP_DLLLARC 0x00100000
 #define PCI_EXP_LNKCAP_LBNC 0x00200000
 #define PCI_EXP_LNKCAP_PN 0xff000000
-#define PCI_EXP_LNKCTL 16
+#define PCI_EXP_LNKCTL 0x10
 #define PCI_EXP_LNKCTL_ASPMC 0x0003
 #define PCI_EXP_LNKCTL_ASPM_L0S 0x0001
 #define PCI_EXP_LNKCTL_ASPM_L1 0x0002
@@ -465,7 +471,7 @@
 #define PCI_EXP_LNKCTL_HAWD 0x0200
 #define PCI_EXP_LNKCTL_LBMIE 0x0400
 #define PCI_EXP_LNKCTL_LABIE 0x0800
-#define PCI_EXP_LNKSTA 18
+#define PCI_EXP_LNKSTA 0x12
 #define PCI_EXP_LNKSTA_CLS 0x000f
 #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001
 #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002
@@ -485,7 +491,7 @@
 #define PCI_EXP_LNKSTA_LBMS 0x4000
 #define PCI_EXP_LNKSTA_LABS 0x8000
 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20
-#define PCI_EXP_SLTCAP 20
+#define PCI_EXP_SLTCAP 0x14
 #define PCI_EXP_SLTCAP_ABP 0x00000001
 #define PCI_EXP_SLTCAP_PCP 0x00000002
 #define PCI_EXP_SLTCAP_MRLSP 0x00000004
@@ -498,7 +504,7 @@
 #define PCI_EXP_SLTCAP_EIP 0x00020000
 #define PCI_EXP_SLTCAP_NCCS 0x00040000
 #define PCI_EXP_SLTCAP_PSN 0xfff80000
-#define PCI_EXP_SLTCTL 24
+#define PCI_EXP_SLTCTL 0x18
 #define PCI_EXP_SLTCTL_ABPE 0x0001
 #define PCI_EXP_SLTCTL_PFDE 0x0002
 #define PCI_EXP_SLTCTL_MRLSCE 0x0004
@@ -520,7 +526,7 @@
 #define PCI_EXP_SLTCTL_EIC 0x0800
 #define PCI_EXP_SLTCTL_DLLSCE 0x1000
 #define PCI_EXP_SLTCTL_IBPD_DISABLE 0x4000
-#define PCI_EXP_SLTSTA 26
+#define PCI_EXP_SLTSTA 0x1a
 #define PCI_EXP_SLTSTA_ABP 0x0001
 #define PCI_EXP_SLTSTA_PFD 0x0002
 #define PCI_EXP_SLTSTA_MRLSC 0x0004
@@ -530,18 +536,18 @@
 #define PCI_EXP_SLTSTA_PDS 0x0040
 #define PCI_EXP_SLTSTA_EIS 0x0080
 #define PCI_EXP_SLTSTA_DLLSC 0x0100
-#define PCI_EXP_RTCTL 28
+#define PCI_EXP_RTCTL 0x1c
 #define PCI_EXP_RTCTL_SECEE 0x0001
 #define PCI_EXP_RTCTL_SENFEE 0x0002
 #define PCI_EXP_RTCTL_SEFEE 0x0004
 #define PCI_EXP_RTCTL_PMEIE 0x0008
 #define PCI_EXP_RTCTL_CRSSVE 0x0010
-#define PCI_EXP_RTCAP 30
+#define PCI_EXP_RTCAP 0x1e
 #define PCI_EXP_RTCAP_CRSVIS 0x0001
-#define PCI_EXP_RTSTA 32
+#define PCI_EXP_RTSTA 0x20
 #define PCI_EXP_RTSTA_PME 0x00010000
 #define PCI_EXP_RTSTA_PENDING 0x00020000
-#define PCI_EXP_DEVCAP2 36
+#define PCI_EXP_DEVCAP2 0x24
 #define PCI_EXP_DEVCAP2_COMP_TMOUT_DIS 0x00000010
 #define PCI_EXP_DEVCAP2_ARI 0x00000020
 #define PCI_EXP_DEVCAP2_ATOMIC_ROUTE 0x00000040
@@ -553,7 +559,7 @@
 #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000
 #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000
 #define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000
-#define PCI_EXP_DEVCTL2 40
+#define PCI_EXP_DEVCTL2 0x28
 #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f
 #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010
 #define PCI_EXP_DEVCTL2_ARI 0x0020
@@ -565,9 +571,9 @@
 #define PCI_EXP_DEVCTL2_OBFF_MSGA_EN 0x2000
 #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000
 #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000
-#define PCI_EXP_DEVSTA2 42
-#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44
-#define PCI_EXP_LNKCAP2 44
+#define PCI_EXP_DEVSTA2 0x2a
+#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 0x2c
+#define PCI_EXP_LNKCAP2 0x2c
 #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002
 #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004
 #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008
@@ -575,7 +581,7 @@
 #define PCI_EXP_LNKCAP2_SLS_32_0GB 0x00000020
 #define PCI_EXP_LNKCAP2_SLS_64_0GB 0x00000040
 #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100
-#define PCI_EXP_LNKCTL2 48
+#define PCI_EXP_LNKCTL2 0x30
 #define PCI_EXP_LNKCTL2_TLS 0x000f
 #define PCI_EXP_LNKCTL2_TLS_2_5GT 0x0001
 #define PCI_EXP_LNKCTL2_TLS_5_0GT 0x0002
@@ -586,12 +592,12 @@
 #define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010
 #define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380
 #define PCI_EXP_LNKCTL2_HASD 0x0020
-#define PCI_EXP_LNKSTA2 50
-#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52
-#define PCI_EXP_SLTCAP2 52
+#define PCI_EXP_LNKSTA2 0x32
+#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 0x32
+#define PCI_EXP_SLTCAP2 0x34
 #define PCI_EXP_SLTCAP2_IBPD 0x00000001
-#define PCI_EXP_SLTCTL2 56
-#define PCI_EXP_SLTSTA2 58
+#define PCI_EXP_SLTCTL2 0x38
+#define PCI_EXP_SLTSTA2 0x3a
 #define PCI_EXT_CAP_ID(header) (header & 0x0000ffff)
 #define PCI_EXT_CAP_VER(header) ((header >> 16) & 0xf)
 #define PCI_EXT_CAP_NEXT(header) ((header >> 20) & 0xffc)
@@ -631,7 +637,7 @@
 #define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PL_16GT
 #define PCI_EXT_CAP_DSN_SIZEOF 12
 #define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40
-#define PCI_ERR_UNCOR_STATUS 4
+#define PCI_ERR_UNCOR_STATUS 0x04
 #define PCI_ERR_UNC_UND 0x00000001
 #define PCI_ERR_UNC_DLP 0x00000010
 #define PCI_ERR_UNC_SURPDN 0x00000020
@@ -649,9 +655,9 @@
 #define PCI_ERR_UNC_MCBTLP 0x00800000
 #define PCI_ERR_UNC_ATOMEG 0x01000000
 #define PCI_ERR_UNC_TLPPRE 0x02000000
-#define PCI_ERR_UNCOR_MASK 8
-#define PCI_ERR_UNCOR_SEVER 12
-#define PCI_ERR_COR_STATUS 16
+#define PCI_ERR_UNCOR_MASK 0x08
+#define PCI_ERR_UNCOR_SEVER 0x0c
+#define PCI_ERR_COR_STATUS 0x10
 #define PCI_ERR_COR_RCVR 0x00000001
 #define PCI_ERR_COR_BAD_TLP 0x00000040
 #define PCI_ERR_COR_BAD_DLLP 0x00000080
@@ -660,19 +666,19 @@
 #define PCI_ERR_COR_ADV_NFAT 0x00002000
 #define PCI_ERR_COR_INTERNAL 0x00004000
 #define PCI_ERR_COR_LOG_OVER 0x00008000
-#define PCI_ERR_COR_MASK 20
-#define PCI_ERR_CAP 24
-#define PCI_ERR_CAP_FEP(x) ((x) & 31)
+#define PCI_ERR_COR_MASK 0x14
+#define PCI_ERR_CAP 0x18
+#define PCI_ERR_CAP_FEP(x) ((x) & 0x1f)
 #define PCI_ERR_CAP_ECRC_GENC 0x00000020
 #define PCI_ERR_CAP_ECRC_GENE 0x00000040
 #define PCI_ERR_CAP_ECRC_CHKC 0x00000080
 #define PCI_ERR_CAP_ECRC_CHKE 0x00000100
-#define PCI_ERR_HEADER_LOG 28
-#define PCI_ERR_ROOT_COMMAND 44
+#define PCI_ERR_HEADER_LOG 0x1c
+#define PCI_ERR_ROOT_COMMAND 0x2c
 #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001
 #define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002
 #define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004
-#define PCI_ERR_ROOT_STATUS 48
+#define PCI_ERR_ROOT_STATUS 0x30
 #define PCI_ERR_ROOT_COR_RCV 0x00000001
 #define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
 #define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
@@ -681,48 +687,48 @@
 #define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020
 #define PCI_ERR_ROOT_FATAL_RCV 0x00000040
 #define PCI_ERR_ROOT_AER_IRQ 0xf8000000
-#define PCI_ERR_ROOT_ERR_SRC 52
-#define PCI_VC_PORT_CAP1 4
+#define PCI_ERR_ROOT_ERR_SRC 0x34
+#define PCI_VC_PORT_CAP1 0x04
 #define PCI_VC_CAP1_EVCC 0x00000007
 #define PCI_VC_CAP1_LPEVCC 0x00000070
 #define PCI_VC_CAP1_ARB_SIZE 0x00000c00
-#define PCI_VC_PORT_CAP2 8
+#define PCI_VC_PORT_CAP2 0x08
 #define PCI_VC_CAP2_32_PHASE 0x00000002
 #define PCI_VC_CAP2_64_PHASE 0x00000004
 #define PCI_VC_CAP2_128_PHASE 0x00000008
 #define PCI_VC_CAP2_ARB_OFF 0xff000000
-#define PCI_VC_PORT_CTRL 12
+#define PCI_VC_PORT_CTRL 0x0c
 #define PCI_VC_PORT_CTRL_LOAD_TABLE 0x00000001
-#define PCI_VC_PORT_STATUS 14
+#define PCI_VC_PORT_STATUS 0x0e
 #define PCI_VC_PORT_STATUS_TABLE 0x00000001
-#define PCI_VC_RES_CAP 16
+#define PCI_VC_RES_CAP 0x10
 #define PCI_VC_RES_CAP_32_PHASE 0x00000002
 #define PCI_VC_RES_CAP_64_PHASE 0x00000004
 #define PCI_VC_RES_CAP_128_PHASE 0x00000008
 #define PCI_VC_RES_CAP_128_PHASE_TB 0x00000010
 #define PCI_VC_RES_CAP_256_PHASE 0x00000020
 #define PCI_VC_RES_CAP_ARB_OFF 0xff000000
-#define PCI_VC_RES_CTRL 20
+#define PCI_VC_RES_CTRL 0x14
 #define PCI_VC_RES_CTRL_LOAD_TABLE 0x00010000
 #define PCI_VC_RES_CTRL_ARB_SELECT 0x000e0000
 #define PCI_VC_RES_CTRL_ID 0x07000000
 #define PCI_VC_RES_CTRL_ENABLE 0x80000000
-#define PCI_VC_RES_STATUS 26
+#define PCI_VC_RES_STATUS 0x1a
 #define PCI_VC_RES_STATUS_TABLE 0x00000001
 #define PCI_VC_RES_STATUS_NEGO 0x00000002
 #define PCI_CAP_VC_BASE_SIZEOF 0x10
-#define PCI_CAP_VC_PER_VC_SIZEOF 0x0C
-#define PCI_PWR_DSR 4
-#define PCI_PWR_DATA 8
+#define PCI_CAP_VC_PER_VC_SIZEOF 0x0c
+#define PCI_PWR_DSR 0x04
+#define PCI_PWR_DATA 0x08
 #define PCI_PWR_DATA_BASE(x) ((x) & 0xff)
 #define PCI_PWR_DATA_SCALE(x) (((x) >> 8) & 3)
 #define PCI_PWR_DATA_PM_SUB(x) (((x) >> 10) & 7)
 #define PCI_PWR_DATA_PM_STATE(x) (((x) >> 13) & 3)
 #define PCI_PWR_DATA_TYPE(x) (((x) >> 15) & 7)
 #define PCI_PWR_DATA_RAIL(x) (((x) >> 18) & 7)
-#define PCI_PWR_CAP 12
+#define PCI_PWR_CAP 0x0c
 #define PCI_PWR_CAP_BUDGET(x) ((x) & 1)
-#define PCI_EXT_CAP_PWR_SIZEOF 16
+#define PCI_EXT_CAP_PWR_SIZEOF 0x10
 #define PCI_RCEC_RCIEP_BITMAP 4
 #define PCI_RCEC_BUSN 8
 #define PCI_RCEC_BUSN_REG_VER 0x02
@@ -822,7 +828,7 @@
 #define PCI_SRIOV_VFM_MI 0x1
 #define PCI_SRIOV_VFM_MO 0x2
 #define PCI_SRIOV_VFM_AV 0x3
-#define PCI_EXT_CAP_SRIOV_SIZEOF 64
+#define PCI_EXT_CAP_SRIOV_SIZEOF 0x40
 #define PCI_LTR_MAX_SNOOP_LAT 0x4
 #define PCI_LTR_MAX_NOSNOOP_LAT 0x6
 #define PCI_LTR_VALUE_MASK 0x000003ff
@@ -865,25 +871,25 @@
 #define PCI_TPH_LOC_MSIX 0x400
 #define PCI_TPH_CAP_ST_MASK 0x07FF0000
 #define PCI_TPH_CAP_ST_SHIFT 16
-#define PCI_TPH_BASE_SIZEOF 12
-#define PCI_EXP_DPC_CAP 4
+#define PCI_TPH_BASE_SIZEOF 0xc
+#define PCI_EXP_DPC_CAP 0x04
 #define PCI_EXP_DPC_IRQ 0x001F
 #define PCI_EXP_DPC_CAP_RP_EXT 0x0020
 #define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040
 #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080
 #define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00
 #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000
-#define PCI_EXP_DPC_CTL 6
+#define PCI_EXP_DPC_CTL 0x06
 #define PCI_EXP_DPC_CTL_EN_FATAL 0x0001
 #define PCI_EXP_DPC_CTL_EN_NONFATAL 0x0002
 #define PCI_EXP_DPC_CTL_INT_EN 0x0008
-#define PCI_EXP_DPC_STATUS 8
+#define PCI_EXP_DPC_STATUS 0x08
 #define PCI_EXP_DPC_STATUS_TRIGGER 0x0001
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN 0x0006
 #define PCI_EXP_DPC_STATUS_INTERRUPT 0x0008
 #define PCI_EXP_DPC_RP_BUSY 0x0010
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT 0x0060
-#define PCI_EXP_DPC_SOURCE_ID 10
+#define PCI_EXP_DPC_SOURCE_ID 0x0A
 #define PCI_EXP_DPC_RP_PIO_STATUS 0x0C
 #define PCI_EXP_DPC_RP_PIO_MASK 0x10
 #define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14
@@ -920,7 +926,11 @@
 #define PCI_L1SS_CTL1_LTR_L12_TH_SCALE 0xe0000000
 #define PCI_L1SS_CTL2 0x0c
 #define PCI_DVSEC_HEADER1 0x4
+#define PCI_DVSEC_HEADER1_VID(x) ((x) & 0xffff)
+#define PCI_DVSEC_HEADER1_REV(x) (((x) >> 16) & 0xf)
+#define PCI_DVSEC_HEADER1_LEN(x) (((x) >> 20) & 0xfff)
 #define PCI_DVSEC_HEADER2 0x8
+#define PCI_DVSEC_HEADER2_ID(x) ((x) & 0xffff)
 #define PCI_DLF_CAP 0x04
 #define PCI_DLF_EXCHANGE_ENABLE 0x80000000
 #define PCI_PL_16GT_LE_CTRL 0x20
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/perf_event.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/perf_event.h
index b09c5d8..b022586 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/perf_event.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/perf_event.h
@@ -30,6 +30,8 @@
   PERF_TYPE_BREAKPOINT = 5,
   PERF_TYPE_MAX,
 };
+#define PERF_PMU_TYPE_SHIFT 32
+#define PERF_HW_EVENT_MASK 0xffffffff
 enum perf_hw_id {
   PERF_COUNT_HW_CPU_CYCLES = 0,
   PERF_COUNT_HW_INSTRUCTIONS = 1,
@@ -76,6 +78,7 @@
   PERF_COUNT_SW_EMULATION_FAULTS = 8,
   PERF_COUNT_SW_DUMMY = 9,
   PERF_COUNT_SW_BPF_OUTPUT = 10,
+  PERF_COUNT_SW_CGROUP_SWITCHES = 11,
   PERF_COUNT_SW_MAX,
 };
 enum perf_event_sample_format {
@@ -197,6 +200,7 @@
 #define PERF_ATTR_SIZE_VER4 104
 #define PERF_ATTR_SIZE_VER5 112
 #define PERF_ATTR_SIZE_VER6 120
+#define PERF_ATTR_SIZE_VER7 128
 struct perf_event_attr {
   __u32 type;
   __u32 size;
@@ -207,7 +211,7 @@
   };
   __u64 sample_type;
   __u64 read_format;
-  __u64 disabled : 1, inherit : 1, pinned : 1, exclusive : 1, exclude_user : 1, exclude_kernel : 1, exclude_hv : 1, exclude_idle : 1, mmap : 1, comm : 1, freq : 1, inherit_stat : 1, enable_on_exec : 1, task : 1, watermark : 1, precise_ip : 2, mmap_data : 1, sample_id_all : 1, exclude_host : 1, exclude_guest : 1, exclude_callchain_kernel : 1, exclude_callchain_user : 1, mmap2 : 1, comm_exec : 1, use_clockid : 1, context_switch : 1, write_backward : 1, namespaces : 1, ksymbol : 1, bpf_event : 1, aux_output : 1, cgroup : 1, text_poke : 1, build_id : 1, __reserved_1 : 29;
+  __u64 disabled : 1, inherit : 1, pinned : 1, exclusive : 1, exclude_user : 1, exclude_kernel : 1, exclude_hv : 1, exclude_idle : 1, mmap : 1, comm : 1, freq : 1, inherit_stat : 1, enable_on_exec : 1, task : 1, watermark : 1, precise_ip : 2, mmap_data : 1, sample_id_all : 1, exclude_host : 1, exclude_guest : 1, exclude_callchain_kernel : 1, exclude_callchain_user : 1, mmap2 : 1, comm_exec : 1, use_clockid : 1, context_switch : 1, write_backward : 1, namespaces : 1, ksymbol : 1, bpf_event : 1, aux_output : 1, cgroup : 1, text_poke : 1, build_id : 1, inherit_thread : 1, remove_on_exec : 1, sigtrap : 1, __reserved_1 : 26;
   union {
     __u32 wakeup_events;
     __u32 wakeup_watermark;
@@ -235,6 +239,7 @@
   __u16 __reserved_2;
   __u32 aux_sample_size;
   __u32 __reserved_3;
+  __u64 sig_data;
 };
 struct perf_event_query_bpf {
   __u32 ids_len;
@@ -345,6 +350,7 @@
   PERF_RECORD_BPF_EVENT = 18,
   PERF_RECORD_CGROUP = 19,
   PERF_RECORD_TEXT_POKE = 20,
+  PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
   PERF_RECORD_MAX,
 };
 enum perf_record_ksymbol_type {
@@ -375,6 +381,9 @@
 #define PERF_AUX_FLAG_OVERWRITE 0x02
 #define PERF_AUX_FLAG_PARTIAL 0x04
 #define PERF_AUX_FLAG_COLLISION 0x08
+#define PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK 0xff00
+#define PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT 0x0000
+#define PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW 0x0100
 #define PERF_FLAG_FD_NO_GROUP (1UL << 0)
 #define PERF_FLAG_FD_OUTPUT (1UL << 1)
 #define PERF_FLAG_PID_CGROUP (1UL << 2)
@@ -383,14 +392,14 @@
 union perf_mem_data_src {
   __u64 val;
   struct {
-    __u64 mem_op : 5, mem_lvl : 14, mem_snoop : 5, mem_lock : 2, mem_dtlb : 7, mem_lvl_num : 4, mem_remote : 1, mem_snoopx : 2, mem_blk : 3, mem_rsvd : 21;
+    __u64 mem_op : 5, mem_lvl : 14, mem_snoop : 5, mem_lock : 2, mem_dtlb : 7, mem_lvl_num : 4, mem_remote : 1, mem_snoopx : 2, mem_blk : 3, mem_hops : 3, mem_rsvd : 18;
   };
 };
 #elif defined(__BIG_ENDIAN_BITFIELD)
 union perf_mem_data_src {
   __u64 val;
   struct {
-    __u64 mem_rsvd : 21, mem_blk : 3, mem_snoopx : 2, mem_remote : 1, mem_lvl_num : 4, mem_dtlb : 7, mem_lock : 2, mem_snoop : 5, mem_lvl : 14, mem_op : 5;
+    __u64 mem_rsvd : 18, mem_hops : 3, mem_blk : 3, mem_snoopx : 2, mem_remote : 1, mem_lvl_num : 4, mem_dtlb : 7, mem_lock : 2, mem_snoop : 5, mem_lvl : 14, mem_op : 5;
   };
 };
 #else
@@ -452,6 +461,11 @@
 #define PERF_MEM_BLK_DATA 0x02
 #define PERF_MEM_BLK_ADDR 0x04
 #define PERF_MEM_BLK_SHIFT 40
+#define PERF_MEM_HOPS_0 0x01
+#define PERF_MEM_HOPS_1 0x02
+#define PERF_MEM_HOPS_2 0x03
+#define PERF_MEM_HOPS_3 0x04
+#define PERF_MEM_HOPS_SHIFT 43
 #define PERF_MEM_S(a,s) (((__u64) PERF_MEM_ ##a ##_ ##s) << PERF_MEM_ ##a ##_SHIFT)
 struct perf_branch_entry {
   __u64 from;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
index 8f65681..d1e5486 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
@@ -243,6 +243,7 @@
 #define SADB_X_AALG_SHA2_512HMAC 7
 #define SADB_X_AALG_RIPEMD160HMAC 8
 #define SADB_X_AALG_AES_XCBC_MAC 9
+#define SADB_X_AALG_SM3_256HMAC 10
 #define SADB_X_AALG_NULL 251
 #define SADB_AALG_MAX 251
 #define SADB_EALG_NONE 0
@@ -261,6 +262,7 @@
 #define SADB_X_EALG_AES_GCM_ICV16 20
 #define SADB_X_EALG_CAMELLIACBC 22
 #define SADB_X_EALG_NULL_AES_GMAC 23
+#define SADB_X_EALG_SM4CBC 24
 #define SADB_EALG_MAX 253
 #define SADB_X_EALG_SERPENTCBC 252
 #define SADB_X_EALG_TWOFISHCBC 253
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pfrut.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pfrut.h
new file mode 100644
index 0000000..14f713f
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pfrut.h
@@ -0,0 +1,95 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __PFRUT_H__
+#define __PFRUT_H__
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define PFRUT_IOCTL_MAGIC 0xEE
+#define PFRU_IOC_SET_REV _IOW(PFRUT_IOCTL_MAGIC, 0x01, unsigned int)
+#define PFRU_IOC_STAGE _IOW(PFRUT_IOCTL_MAGIC, 0x02, unsigned int)
+#define PFRU_IOC_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x03, unsigned int)
+#define PFRU_IOC_STAGE_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x04, unsigned int)
+#define PFRU_IOC_QUERY_CAP _IOR(PFRUT_IOCTL_MAGIC, 0x05, struct pfru_update_cap_info)
+struct pfru_payload_hdr {
+  __u32 sig;
+  __u32 hdr_version;
+  __u32 hdr_size;
+  __u32 hw_ver;
+  __u32 rt_ver;
+  __u8 platform_id[16];
+};
+enum pfru_dsm_status {
+  DSM_SUCCEED = 0,
+  DSM_FUNC_NOT_SUPPORT = 1,
+  DSM_INVAL_INPUT = 2,
+  DSM_HARDWARE_ERR = 3,
+  DSM_RETRY_SUGGESTED = 4,
+  DSM_UNKNOWN = 5,
+  DSM_FUNC_SPEC_ERR = 6,
+};
+struct pfru_update_cap_info {
+  __u32 status;
+  __u32 update_cap;
+  __u8 code_type[16];
+  __u32 fw_version;
+  __u32 code_rt_version;
+  __u8 drv_type[16];
+  __u32 drv_rt_version;
+  __u32 drv_svn;
+  __u8 platform_id[16];
+  __u8 oem_id[16];
+  __u32 oem_info_len;
+};
+struct pfru_com_buf_info {
+  __u32 status;
+  __u32 ext_status;
+  __u64 addr_lo;
+  __u64 addr_hi;
+  __u32 buf_size;
+};
+struct pfru_updated_result {
+  __u32 status;
+  __u32 ext_status;
+  __u64 low_auth_time;
+  __u64 high_auth_time;
+  __u64 low_exec_time;
+  __u64 high_exec_time;
+};
+struct pfrt_log_data_info {
+  __u32 status;
+  __u32 ext_status;
+  __u64 chunk1_addr_lo;
+  __u64 chunk1_addr_hi;
+  __u64 chunk2_addr_lo;
+  __u64 chunk2_addr_hi;
+  __u32 max_data_size;
+  __u32 chunk1_size;
+  __u32 chunk2_size;
+  __u32 rollover_cnt;
+  __u32 reset_cnt;
+};
+struct pfrt_log_info {
+  __u32 log_level;
+  __u32 log_type;
+  __u32 log_revid;
+};
+#define PFRT_LOG_IOC_SET_INFO _IOW(PFRUT_IOCTL_MAGIC, 0x06, struct pfrt_log_info)
+#define PFRT_LOG_IOC_GET_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x07, struct pfrt_log_info)
+#define PFRT_LOG_IOC_GET_DATA_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x08, struct pfrt_log_data_info)
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pkt_cls.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
index 45dca35..9fd89e0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
@@ -32,9 +32,12 @@
   TCA_ACT_FLAGS,
   TCA_ACT_HW_STATS,
   TCA_ACT_USED_HW_STATS,
+  TCA_ACT_IN_HW_COUNT,
   __TCA_ACT_MAX
 };
-#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1
+#define TCA_ACT_FLAGS_NO_PERCPU_STATS (1 << 0)
+#define TCA_ACT_FLAGS_SKIP_HW (1 << 1)
+#define TCA_ACT_FLAGS_SKIP_SW (1 << 2)
 #define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0)
 #define TCA_ACT_HW_STATS_DELAYED (1 << 1)
 #define TCA_ACT_MAX __TCA_ACT_MAX
@@ -146,6 +149,8 @@
   TCA_POLICE_PAD,
   TCA_POLICE_RATE64,
   TCA_POLICE_PEAKRATE64,
+  TCA_POLICE_PKTRATE64,
+  TCA_POLICE_PKTBURST64,
   __TCA_POLICE_MAX
 #define TCA_POLICE_RESULT TCA_POLICE_RESULT
 };
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pkt_sched.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
index d0541fc..e298b74 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
@@ -613,6 +613,7 @@
   __u32 dropping;
   __u32 ce_mark;
 };
+#define FQ_CODEL_QUANTUM_MAX (1 << 20)
 enum {
   TCA_FQ_CODEL_UNSPEC,
   TCA_FQ_CODEL_TARGET,
@@ -624,6 +625,8 @@
   TCA_FQ_CODEL_CE_THRESHOLD,
   TCA_FQ_CODEL_DROP_BATCH_SIZE,
   TCA_FQ_CODEL_MEMORY_LIMIT,
+  TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
+  TCA_FQ_CODEL_CE_THRESHOLD_MASK,
   __TCA_FQ_CODEL_MAX
 };
 #define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/prctl.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/prctl.h
index 6095881..9b4c695 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/prctl.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/prctl.h
@@ -138,6 +138,7 @@
 #define PR_SET_SPECULATION_CTRL 53
 #define PR_SPEC_STORE_BYPASS 0
 #define PR_SPEC_INDIRECT_BRANCH 1
+#define PR_SPEC_L1D_FLUSH 2
 #define PR_SPEC_NOT_AFFECTED 0
 #define PR_SPEC_PRCTL (1UL << 0)
 #define PR_SPEC_ENABLE (1UL << 1)
@@ -153,13 +154,13 @@
 #define PR_SET_TAGGED_ADDR_CTRL 55
 #define PR_GET_TAGGED_ADDR_CTRL 56
 #define PR_TAGGED_ADDR_ENABLE (1UL << 0)
-#define PR_MTE_TCF_SHIFT 1
-#define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT)
+#define PR_MTE_TCF_NONE 0UL
+#define PR_MTE_TCF_SYNC (1UL << 1)
+#define PR_MTE_TCF_ASYNC (1UL << 2)
+#define PR_MTE_TCF_MASK (PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC)
 #define PR_MTE_TAG_SHIFT 3
 #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
+#define PR_MTE_TCF_SHIFT 1
 #define PR_SET_IO_FLUSHER 57
 #define PR_GET_IO_FLUSHER 58
 #define PR_SET_SYSCALL_USER_DISPATCH 59
@@ -167,6 +168,17 @@
 #define PR_SYS_DISPATCH_ON 1
 #define SYSCALL_DISPATCH_FILTER_ALLOW 0
 #define SYSCALL_DISPATCH_FILTER_BLOCK 1
+#define PR_PAC_SET_ENABLED_KEYS 60
+#define PR_PAC_GET_ENABLED_KEYS 61
+#define PR_SCHED_CORE 62
+#define PR_SCHED_CORE_GET 0
+#define PR_SCHED_CORE_CREATE 1
+#define PR_SCHED_CORE_SHARE_TO 2
+#define PR_SCHED_CORE_SHARE_FROM 3
+#define PR_SCHED_CORE_MAX 4
+#define PR_SCHED_CORE_SCOPE_THREAD 0
+#define PR_SCHED_CORE_SCOPE_THREAD_GROUP 1
+#define PR_SCHED_CORE_SCOPE_PROCESS_GROUP 2
 #define PR_SET_VMA 0x53564d41
 #define PR_SET_VMA_ANON_NAME 0
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/psample.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/psample.h
index dc67445..efb1c24 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/psample.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/psample.h
@@ -28,6 +28,12 @@
   PSAMPLE_ATTR_DATA,
   PSAMPLE_ATTR_GROUP_REFCOUNT,
   PSAMPLE_ATTR_TUNNEL,
+  PSAMPLE_ATTR_PAD,
+  PSAMPLE_ATTR_OUT_TC,
+  PSAMPLE_ATTR_OUT_TC_OCC,
+  PSAMPLE_ATTR_LATENCY,
+  PSAMPLE_ATTR_TIMESTAMP,
+  PSAMPLE_ATTR_PROTO,
   __PSAMPLE_ATTR_MAX
 };
 enum psample_command {
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ptrace.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ptrace.h
index 5de0998..4bfa59a 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ptrace.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/ptrace.h
@@ -82,6 +82,14 @@
     } seccomp;
   };
 };
+#define PTRACE_GET_RSEQ_CONFIGURATION 0x420f
+struct ptrace_rseq_configuration {
+  __u64 rseq_abi_pointer;
+  __u32 rseq_abi_size;
+  __u32 signature;
+  __u32 flags;
+  __u32 pad;
+};
 #define PTRACE_EVENTMSG_SYSCALL_ENTRY 1
 #define PTRACE_EVENTMSG_SYSCALL_EXIT 2
 #define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rds.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rds.h
index bc29233..7006c87 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rds.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rds.h
@@ -217,7 +217,7 @@
   __u64 flags;
 };
 struct rds_get_mr_for_dest_args {
-  struct sockaddr_storage dest_addr;
+  struct __kernel_sockaddr_storage dest_addr;
   struct rds_iovec vec;
   __u64 cookie_addr;
   __u64 flags;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/resource.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/resource.h
index d76c273..6f531a0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/resource.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/resource.h
@@ -57,6 +57,6 @@
 #define PRIO_PGRP 1
 #define PRIO_USER 2
 #define _STK_LIM (8 * 1024 * 1024)
-#define MLOCK_LIMIT ((PAGE_SIZE > 64 * 1024) ? PAGE_SIZE : 64 * 1024)
+#define MLOCK_LIMIT (8 * 1024 * 1024)
 #include <asm/resource.h>
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rpmsg.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rpmsg.h
index 77f05e6..c5b5a76 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rpmsg.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rpmsg.h
@@ -20,6 +20,7 @@
 #define _UAPI_RPMSG_H_
 #include <linux/ioctl.h>
 #include <linux/types.h>
+#define RPMSG_ADDR_ANY 0xFFFFFFFF
 struct rpmsg_endpoint_info {
   char name[32];
   __u32 src;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rtc.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rtc.h
index 7f38483..cf5f22a 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rtc.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rtc.h
@@ -20,6 +20,7 @@
 #define _UAPI_LINUX_RTC_H_
 #include <linux/const.h>
 #include <linux/ioctl.h>
+#include <linux/types.h>
 struct rtc_time {
   int tm_sec;
   int tm_min;
@@ -45,6 +46,16 @@
   int pll_negmult;
   long pll_clock;
 };
+struct rtc_param {
+  __u64 param;
+  union {
+    __u64 uvalue;
+    __s64 svalue;
+    __u64 ptr;
+  };
+  __u32 index;
+  __u32 __pad;
+};
 #define RTC_AIE_ON _IO('p', 0x01)
 #define RTC_AIE_OFF _IO('p', 0x02)
 #define RTC_UIE_ON _IO('p', 0x03)
@@ -65,6 +76,8 @@
 #define RTC_WKALM_RD _IOR('p', 0x10, struct rtc_wkalrm)
 #define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info)
 #define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info)
+#define RTC_PARAM_GET _IOW('p', 0x13, struct rtc_param)
+#define RTC_PARAM_SET _IOW('p', 0x14, struct rtc_param)
 #define RTC_VL_DATA_INVALID _BITUL(0)
 #define RTC_VL_BACKUP_LOW _BITUL(1)
 #define RTC_VL_BACKUP_EMPTY _BITUL(2)
@@ -79,6 +92,17 @@
 #define RTC_FEATURE_ALARM 0
 #define RTC_FEATURE_ALARM_RES_MINUTE 1
 #define RTC_FEATURE_NEED_WEEK_DAY 2
-#define RTC_FEATURE_CNT 3
+#define RTC_FEATURE_ALARM_RES_2S 3
+#define RTC_FEATURE_UPDATE_INTERRUPT 4
+#define RTC_FEATURE_CORRECTION 5
+#define RTC_FEATURE_BACKUP_SWITCH_MODE 6
+#define RTC_FEATURE_CNT 7
+#define RTC_PARAM_FEATURES 0
+#define RTC_PARAM_CORRECTION 1
+#define RTC_PARAM_BACKUP_SWITCH_MODE 2
+#define RTC_BSM_DISABLED 0
+#define RTC_BSM_DIRECT 1
+#define RTC_BSM_LEVEL 2
+#define RTC_BSM_STANDBY 3
 #define RTC_MAX_FREQ 8192
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rtnetlink.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
index 22f8f1c..91c3ee4 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
@@ -157,6 +157,12 @@
 #define RTM_DELVLAN RTM_DELVLAN
   RTM_GETVLAN,
 #define RTM_GETVLAN RTM_GETVLAN
+  RTM_NEWNEXTHOPBUCKET = 116,
+#define RTM_NEWNEXTHOPBUCKET RTM_NEWNEXTHOPBUCKET
+  RTM_DELNEXTHOPBUCKET,
+#define RTM_DELNEXTHOPBUCKET RTM_DELNEXTHOPBUCKET
+  RTM_GETNEXTHOPBUCKET,
+#define RTM_GETNEXTHOPBUCKET RTM_GETNEXTHOPBUCKET
   __RTM_MAX,
 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
 };
@@ -219,6 +225,7 @@
 #define RTPROT_MROUTED 17
 #define RTPROT_KEEPALIVED 18
 #define RTPROT_BABEL 42
+#define RTPROT_OPENR 99
 #define RTPROT_BGP 186
 #define RTPROT_ISIS 187
 #define RTPROT_OSPF 188
@@ -552,6 +559,8 @@
 #define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP
   RTNLGRP_BRVLAN,
 #define RTNLGRP_BRVLAN RTNLGRP_BRVLAN
+  RTNLGRP_MCTP_IFADDR,
+#define RTNLGRP_MCTP_IFADDR RTNLGRP_MCTP_IFADDR
   __RTNLGRP_MAX
 };
 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/sctp.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/sctp.h
index 883920b..765d6c9 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/sctp.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/sctp.h
@@ -94,6 +94,7 @@
 #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
 #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
 #define SCTP_REMOTE_UDP_ENCAPS_PORT 132
+#define SCTP_PLPMTUD_PROBE_INTERVAL 133
 #define SCTP_PR_SCTP_NONE 0x0000
 #define SCTP_PR_SCTP_TTL 0x0010
 #define SCTP_PR_SCTP_RTX 0x0020
@@ -710,4 +711,9 @@
   SCTP_SS_RR,
   SCTP_SS_MAX = SCTP_SS_RR
 };
+struct sctp_probeinterval {
+  sctp_assoc_t spi_assoc_id;
+  struct sockaddr_storage spi_address;
+  __u32 spi_interval;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/seccomp.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/seccomp.h
index 0ae0e12..e58b421 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/seccomp.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/seccomp.h
@@ -69,6 +69,7 @@
   __u32 flags;
 };
 #define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0)
+#define SECCOMP_ADDFD_FLAG_SEND (1UL << 1)
 struct seccomp_notif_addfd {
   __u64 id;
   __u32 flags;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/seg6_local.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/seg6_local.h
index 9508eca..61a8d97 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/seg6_local.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/seg6_local.h
@@ -30,6 +30,7 @@
   SEG6_LOCAL_OIF,
   SEG6_LOCAL_BPF,
   SEG6_LOCAL_VRFTABLE,
+  SEG6_LOCAL_COUNTERS,
   __SEG6_LOCAL_MAX,
 };
 #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
@@ -50,6 +51,7 @@
   SEG6_LOCAL_ACTION_END_AS = 13,
   SEG6_LOCAL_ACTION_END_AM = 14,
   SEG6_LOCAL_ACTION_END_BPF = 15,
+  SEG6_LOCAL_ACTION_END_DT46 = 16,
   __SEG6_LOCAL_ACTION_MAX,
 };
 #define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1)
@@ -60,4 +62,13 @@
   __SEG6_LOCAL_BPF_PROG_MAX,
 };
 #define SEG6_LOCAL_BPF_PROG_MAX (__SEG6_LOCAL_BPF_PROG_MAX - 1)
+enum {
+  SEG6_LOCAL_CNT_UNSPEC,
+  SEG6_LOCAL_CNT_PAD,
+  SEG6_LOCAL_CNT_PACKETS,
+  SEG6_LOCAL_CNT_BYTES,
+  SEG6_LOCAL_CNT_ERRORS,
+  __SEG6_LOCAL_CNT_MAX,
+};
+#define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/smc.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/smc.h
index 88eef62..01494da 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/smc.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/smc.h
@@ -38,6 +38,9 @@
 #define SMC_GENL_FAMILY_NAME "SMC_GEN_NETLINK"
 #define SMC_GENL_FAMILY_VERSION 1
 #define SMC_PCI_ID_STR_LEN 16
+#define SMC_MAX_HOSTNAME_LEN 32
+#define SMC_MAX_UEID 4
+#define SMC_MAX_EID_LEN 32
 enum {
   SMC_NETLINK_GET_SYS_INFO = 1,
   SMC_NETLINK_GET_LGR_SMCR,
@@ -45,6 +48,15 @@
   SMC_NETLINK_GET_LGR_SMCD,
   SMC_NETLINK_GET_DEV_SMCD,
   SMC_NETLINK_GET_DEV_SMCR,
+  SMC_NETLINK_GET_STATS,
+  SMC_NETLINK_GET_FBACK_STATS,
+  SMC_NETLINK_DUMP_UEID,
+  SMC_NETLINK_ADD_UEID,
+  SMC_NETLINK_REMOVE_UEID,
+  SMC_NETLINK_FLUSH_UEID,
+  SMC_NETLINK_DUMP_SEID,
+  SMC_NETLINK_ENABLE_SEID,
+  SMC_NETLINK_DISABLE_SEID,
 };
 enum {
   SMC_GEN_UNSPEC,
@@ -54,6 +66,8 @@
   SMC_GEN_LGR_SMCD,
   SMC_GEN_DEV_SMCD,
   SMC_GEN_DEV_SMCR,
+  SMC_GEN_STATS,
+  SMC_GEN_FBACK_STATS,
   __SMC_GEN_MAX,
   SMC_GEN_MAX = __SMC_GEN_MAX - 1
 };
@@ -64,6 +78,7 @@
   SMC_NLA_SYS_IS_ISM_V2,
   SMC_NLA_SYS_LOCAL_HOST,
   SMC_NLA_SYS_SEID,
+  SMC_NLA_SYS_IS_SMCR_V2,
   __SMC_NLA_SYS_MAX,
   SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1
 };
@@ -73,6 +88,14 @@
   SMC_NLA_LGR_V2_OS,
   SMC_NLA_LGR_V2_NEG_EID,
   SMC_NLA_LGR_V2_PEER_HOST,
+  __SMC_NLA_LGR_V2_MAX,
+  SMC_NLA_LGR_V2_MAX = __SMC_NLA_LGR_V2_MAX - 1
+};
+enum {
+  SMC_NLA_LGR_R_V2_UNSPEC,
+  SMC_NLA_LGR_R_V2_DIRECT,
+  __SMC_NLA_LGR_R_V2_MAX,
+  SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1
 };
 enum {
   SMC_NLA_LGR_R_UNSPEC,
@@ -82,6 +105,10 @@
   SMC_NLA_LGR_R_PNETID,
   SMC_NLA_LGR_R_VLAN_ID,
   SMC_NLA_LGR_R_CONNS_NUM,
+  SMC_NLA_LGR_R_V2_COMMON,
+  SMC_NLA_LGR_R_V2,
+  SMC_NLA_LGR_R_NET_COOKIE,
+  SMC_NLA_LGR_R_PAD,
   __SMC_NLA_LGR_R_MAX,
   SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1
 };
@@ -110,7 +137,7 @@
   SMC_NLA_LGR_D_PNETID,
   SMC_NLA_LGR_D_CHID,
   SMC_NLA_LGR_D_PAD,
-  SMC_NLA_LGR_V2,
+  SMC_NLA_LGR_D_V2_COMMON,
   __SMC_NLA_LGR_D_MAX,
   SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
 };
@@ -140,4 +167,86 @@
   __SMC_NLA_DEV_MAX,
   SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
 };
+enum {
+  SMC_NLA_STATS_PLOAD_PAD,
+  SMC_NLA_STATS_PLOAD_8K,
+  SMC_NLA_STATS_PLOAD_16K,
+  SMC_NLA_STATS_PLOAD_32K,
+  SMC_NLA_STATS_PLOAD_64K,
+  SMC_NLA_STATS_PLOAD_128K,
+  SMC_NLA_STATS_PLOAD_256K,
+  SMC_NLA_STATS_PLOAD_512K,
+  SMC_NLA_STATS_PLOAD_1024K,
+  SMC_NLA_STATS_PLOAD_G_1024K,
+  __SMC_NLA_STATS_PLOAD_MAX,
+  SMC_NLA_STATS_PLOAD_MAX = __SMC_NLA_STATS_PLOAD_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_RMB_PAD,
+  SMC_NLA_STATS_RMB_SIZE_SM_PEER_CNT,
+  SMC_NLA_STATS_RMB_SIZE_SM_CNT,
+  SMC_NLA_STATS_RMB_FULL_PEER_CNT,
+  SMC_NLA_STATS_RMB_FULL_CNT,
+  SMC_NLA_STATS_RMB_REUSE_CNT,
+  SMC_NLA_STATS_RMB_ALLOC_CNT,
+  SMC_NLA_STATS_RMB_DGRADE_CNT,
+  __SMC_NLA_STATS_RMB_MAX,
+  SMC_NLA_STATS_RMB_MAX = __SMC_NLA_STATS_RMB_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_T_PAD,
+  SMC_NLA_STATS_T_TX_RMB_SIZE,
+  SMC_NLA_STATS_T_RX_RMB_SIZE,
+  SMC_NLA_STATS_T_TXPLOAD_SIZE,
+  SMC_NLA_STATS_T_RXPLOAD_SIZE,
+  SMC_NLA_STATS_T_TX_RMB_STATS,
+  SMC_NLA_STATS_T_RX_RMB_STATS,
+  SMC_NLA_STATS_T_CLNT_V1_SUCC,
+  SMC_NLA_STATS_T_CLNT_V2_SUCC,
+  SMC_NLA_STATS_T_SRV_V1_SUCC,
+  SMC_NLA_STATS_T_SRV_V2_SUCC,
+  SMC_NLA_STATS_T_SENDPAGE_CNT,
+  SMC_NLA_STATS_T_SPLICE_CNT,
+  SMC_NLA_STATS_T_CORK_CNT,
+  SMC_NLA_STATS_T_NDLY_CNT,
+  SMC_NLA_STATS_T_URG_DATA_CNT,
+  SMC_NLA_STATS_T_RX_BYTES,
+  SMC_NLA_STATS_T_TX_BYTES,
+  SMC_NLA_STATS_T_RX_CNT,
+  SMC_NLA_STATS_T_TX_CNT,
+  __SMC_NLA_STATS_T_MAX,
+  SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_PAD,
+  SMC_NLA_STATS_SMCD_TECH,
+  SMC_NLA_STATS_SMCR_TECH,
+  SMC_NLA_STATS_CLNT_HS_ERR_CNT,
+  SMC_NLA_STATS_SRV_HS_ERR_CNT,
+  __SMC_NLA_STATS_MAX,
+  SMC_NLA_STATS_MAX = __SMC_NLA_STATS_MAX - 1
+};
+enum {
+  SMC_NLA_FBACK_STATS_PAD,
+  SMC_NLA_FBACK_STATS_TYPE,
+  SMC_NLA_FBACK_STATS_SRV_CNT,
+  SMC_NLA_FBACK_STATS_CLNT_CNT,
+  SMC_NLA_FBACK_STATS_RSN_CODE,
+  SMC_NLA_FBACK_STATS_RSN_CNT,
+  __SMC_NLA_FBACK_STATS_MAX,
+  SMC_NLA_FBACK_STATS_MAX = __SMC_NLA_FBACK_STATS_MAX - 1
+};
+enum {
+  SMC_NLA_EID_TABLE_UNSPEC,
+  SMC_NLA_EID_TABLE_ENTRY,
+  __SMC_NLA_EID_TABLE_MAX,
+  SMC_NLA_EID_TABLE_MAX = __SMC_NLA_EID_TABLE_MAX - 1
+};
+enum {
+  SMC_NLA_SEID_UNSPEC,
+  SMC_NLA_SEID_ENTRY,
+  SMC_NLA_SEID_ENABLED,
+  __SMC_NLA_SEID_TABLE_MAX,
+  SMC_NLA_SEID_TABLE_MAX = __SMC_NLA_SEID_TABLE_MAX - 1
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/snmp.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/snmp.h
index 40e8fa5..a503a7e 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/snmp.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/snmp.h
@@ -257,6 +257,8 @@
   LINUX_MIB_TCPDUPLICATEDATAREHASH,
   LINUX_MIB_TCPDSACKRECVSEGS,
   LINUX_MIB_TCPDSACKIGNOREDDUBIOUS,
+  LINUX_MIB_TCPMIGRATEREQSUCCESS,
+  LINUX_MIB_TCPMIGRATEREQFAILURE,
   __LINUX_MIB_MAX
 };
 enum {
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/socket.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/socket.h
index 608d31f..be16548 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/socket.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/socket.h
@@ -20,7 +20,7 @@
 #define _UAPI_LINUX_SOCKET_H
 #define _K_SS_MAXSIZE 128
 typedef unsigned short __kernel_sa_family_t;
-struct sockaddr_storage {
+struct __kernel_sockaddr_storage {
   union {
     struct {
       __kernel_sa_family_t ss_family;
@@ -29,4 +29,7 @@
     void * __align;
   };
 };
+#define SOCK_SNDBUF_LOCK 1
+#define SOCK_RCVBUF_LOCK 2
+#define SOCK_BUF_LOCK_MASK (SOCK_SNDBUF_LOCK | SOCK_RCVBUF_LOCK)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/stddef.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/stddef.h
index 2a5fd95..d5cdf80 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/stddef.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/stddef.h
@@ -20,3 +20,5 @@
 #ifndef __always_inline
 #define __always_inline inline
 #endif
+#define __struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct TAG { MEMBERS } ATTRS NAME; }
+#define __DECLARE_FLEX_ARRAY(TYPE,NAME) struct { struct { } __empty_ ##NAME; TYPE NAME[]; }
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
index 25bfd8d..2e097f0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
@@ -42,5 +42,34 @@
     __u8 __pad[6];
   } response;
 } __attribute__((__packed__));
+struct ssam_cdev_notifier_desc {
+  __s32 priority;
+  __u8 target_category;
+} __attribute__((__packed__));
+struct ssam_cdev_event_desc {
+  struct {
+    __u8 target_category;
+    __u8 target_id;
+    __u8 cid_enable;
+    __u8 cid_disable;
+  } reg;
+  struct {
+    __u8 target_category;
+    __u8 instance;
+  } id;
+  __u8 flags;
+} __attribute__((__packed__));
+struct ssam_cdev_event {
+  __u8 target_category;
+  __u8 target_id;
+  __u8 command_id;
+  __u8 instance_id;
+  __u16 length;
+  __u8 data[];
+} __attribute__((__packed__));
 #define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request)
+#define SSAM_CDEV_NOTIF_REGISTER _IOW(0xA5, 2, struct ssam_cdev_notifier_desc)
+#define SSAM_CDEV_NOTIF_UNREGISTER _IOW(0xA5, 3, struct ssam_cdev_notifier_desc)
+#define SSAM_CDEV_EVENT_ENABLE _IOW(0xA5, 4, struct ssam_cdev_event_desc)
+#define SSAM_CDEV_EVENT_DISABLE _IOW(0xA5, 5, struct ssam_cdev_event_desc)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h
new file mode 100644
index 0000000..dde5ad3
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_SURFACE_AGGREGATOR_DTX_H
+#define _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define SDTX_CATEGORY_STATUS 0x0000
+#define SDTX_CATEGORY_RUNTIME_ERROR 0x1000
+#define SDTX_CATEGORY_HARDWARE_ERROR 0x2000
+#define SDTX_CATEGORY_UNKNOWN 0xf000
+#define SDTX_CATEGORY_MASK 0xf000
+#define SDTX_CATEGORY(value) ((value) & SDTX_CATEGORY_MASK)
+#define SDTX_STATUS(code) ((code) | SDTX_CATEGORY_STATUS)
+#define SDTX_ERR_RT(code) ((code) | SDTX_CATEGORY_RUNTIME_ERROR)
+#define SDTX_ERR_HW(code) ((code) | SDTX_CATEGORY_HARDWARE_ERROR)
+#define SDTX_UNKNOWN(code) ((code) | SDTX_CATEGORY_UNKNOWN)
+#define SDTX_SUCCESS(value) (SDTX_CATEGORY(value) == SDTX_CATEGORY_STATUS)
+#define SDTX_LATCH_CLOSED SDTX_STATUS(0x00)
+#define SDTX_LATCH_OPENED SDTX_STATUS(0x01)
+#define SDTX_BASE_DETACHED SDTX_STATUS(0x00)
+#define SDTX_BASE_ATTACHED SDTX_STATUS(0x01)
+#define SDTX_DETACH_NOT_FEASIBLE SDTX_ERR_RT(0x01)
+#define SDTX_DETACH_TIMEDOUT SDTX_ERR_RT(0x02)
+#define SDTX_ERR_FAILED_TO_OPEN SDTX_ERR_HW(0x01)
+#define SDTX_ERR_FAILED_TO_REMAIN_OPEN SDTX_ERR_HW(0x02)
+#define SDTX_ERR_FAILED_TO_CLOSE SDTX_ERR_HW(0x03)
+#define SDTX_DEVICE_TYPE_HID 0x0100
+#define SDTX_DEVICE_TYPE_SSH 0x0200
+#define SDTX_DEVICE_TYPE_MASK 0x0f00
+#define SDTX_DEVICE_TYPE(value) ((value) & SDTX_DEVICE_TYPE_MASK)
+#define SDTX_BASE_TYPE_HID(id) ((id) | SDTX_DEVICE_TYPE_HID)
+#define SDTX_BASE_TYPE_SSH(id) ((id) | SDTX_DEVICE_TYPE_SSH)
+enum sdtx_device_mode {
+  SDTX_DEVICE_MODE_TABLET = 0x00,
+  SDTX_DEVICE_MODE_LAPTOP = 0x01,
+  SDTX_DEVICE_MODE_STUDIO = 0x02,
+};
+struct sdtx_event {
+  __u16 length;
+  __u16 code;
+  __u8 data[];
+} __attribute__((__packed__));
+enum sdtx_event_code {
+  SDTX_EVENT_REQUEST = 1,
+  SDTX_EVENT_CANCEL = 2,
+  SDTX_EVENT_BASE_CONNECTION = 3,
+  SDTX_EVENT_LATCH_STATUS = 4,
+  SDTX_EVENT_DEVICE_MODE = 5,
+};
+struct sdtx_base_info {
+  __u16 state;
+  __u16 base_id;
+} __attribute__((__packed__));
+#define SDTX_IOCTL_EVENTS_ENABLE _IO(0xa5, 0x21)
+#define SDTX_IOCTL_EVENTS_DISABLE _IO(0xa5, 0x22)
+#define SDTX_IOCTL_LATCH_LOCK _IO(0xa5, 0x23)
+#define SDTX_IOCTL_LATCH_UNLOCK _IO(0xa5, 0x24)
+#define SDTX_IOCTL_LATCH_REQUEST _IO(0xa5, 0x25)
+#define SDTX_IOCTL_LATCH_CONFIRM _IO(0xa5, 0x26)
+#define SDTX_IOCTL_LATCH_HEARTBEAT _IO(0xa5, 0x27)
+#define SDTX_IOCTL_LATCH_CANCEL _IO(0xa5, 0x28)
+#define SDTX_IOCTL_GET_BASE_INFO _IOR(0xa5, 0x29, struct sdtx_base_info)
+#define SDTX_IOCTL_GET_DEVICE_MODE _IOR(0xa5, 0x2a, __u16)
+#define SDTX_IOCTL_GET_LATCH_STATUS _IOR(0xa5, 0x2b, __u16)
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/sysctl.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/sysctl.h
index ebaf8a9..ae9c2ba 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/sysctl.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/sysctl.h
@@ -407,6 +407,7 @@
   NET_IPV4_CONF_PROMOTE_SECONDARIES = 20,
   NET_IPV4_CONF_ARP_ACCEPT = 21,
   NET_IPV4_CONF_ARP_NOTIFY = 22,
+  NET_IPV4_CONF_ARP_EVICT_NOCARRIER = 23,
 };
 enum {
   NET_IPV4_NF_CONNTRACK_MAX = 1,
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/target_core_user.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/target_core_user.h
index e0b9f22..dcba00e 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/target_core_user.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/target_core_user.h
@@ -26,6 +26,7 @@
 #define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0)
 #define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1)
 #define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2)
+#define TCMU_MAILBOX_FLAG_CAP_KEEP_BUF (1 << 3)
 struct tcmu_mailbox {
   __u16 version;
   __u16 flags;
@@ -45,6 +46,7 @@
   __u8 kflags;
 #define TCMU_UFLAG_UNKNOWN_OP 0x1
 #define TCMU_UFLAG_READ_LEN 0x2
+#define TCMU_UFLAG_KEEP_BUF 0x4
   __u8 uflags;
 } __packed;
 #define TCMU_OP_MASK 0x7
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/taskstats.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/taskstats.h
index 5f9d0cc..efa5b4a 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/taskstats.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/taskstats.h
@@ -19,7 +19,7 @@
 #ifndef _LINUX_TASKSTATS_H
 #define _LINUX_TASKSTATS_H
 #include <linux/types.h>
-#define TASKSTATS_VERSION 10
+#define TASKSTATS_VERSION 11
 #define TS_COMM_LEN 32
 struct taskstats {
   __u16 version;
@@ -69,6 +69,8 @@
   __u64 thrashing_count;
   __u64 thrashing_delay_total;
   __u64 ac_btime64;
+  __u64 compact_count;
+  __u64 compact_delay_total;
 };
 enum {
   TASKSTATS_CMD_UNSPEC = 0,
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
index 0a53b06..f0cd928 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
@@ -23,6 +23,7 @@
 #define SKBMOD_F_SMAC 0x2
 #define SKBMOD_F_ETYPE 0x4
 #define SKBMOD_F_SWAPMAC 0x8
+#define SKBMOD_F_ECN 0x10
 struct tc_skbmod {
   tc_gen;
   __u64 flags;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tcp.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tcp.h
index 99c5bff..c96d695 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tcp.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tcp.h
@@ -226,7 +226,7 @@
 #define TCP_MD5SIG_FLAG_PREFIX 0x1
 #define TCP_MD5SIG_FLAG_IFINDEX 0x2
 struct tcp_md5sig {
-  struct sockaddr_storage tcpm_addr;
+  struct __kernel_sockaddr_storage tcpm_addr;
   __u8 tcpm_flags;
   __u8 tcpm_prefixlen;
   __u16 tcpm_keylen;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tls.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tls.h
index c765f30..c98ea0b 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tls.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tls.h
@@ -54,6 +54,18 @@
 #define TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE 0
 #define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE 16
 #define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE 8
+#define TLS_CIPHER_SM4_GCM 55
+#define TLS_CIPHER_SM4_GCM_IV_SIZE 8
+#define TLS_CIPHER_SM4_GCM_KEY_SIZE 16
+#define TLS_CIPHER_SM4_GCM_SALT_SIZE 4
+#define TLS_CIPHER_SM4_GCM_TAG_SIZE 16
+#define TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE 8
+#define TLS_CIPHER_SM4_CCM 56
+#define TLS_CIPHER_SM4_CCM_IV_SIZE 8
+#define TLS_CIPHER_SM4_CCM_KEY_SIZE 16
+#define TLS_CIPHER_SM4_CCM_SALT_SIZE 4
+#define TLS_CIPHER_SM4_CCM_TAG_SIZE 16
+#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8
 #define TLS_SET_RECORD_TYPE 1
 #define TLS_GET_RECORD_TYPE 2
 struct tls_crypto_info {
@@ -88,6 +100,20 @@
   unsigned char salt[TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE];
   unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE];
 };
+struct tls12_crypto_info_sm4_gcm {
+  struct tls_crypto_info info;
+  unsigned char iv[TLS_CIPHER_SM4_GCM_IV_SIZE];
+  unsigned char key[TLS_CIPHER_SM4_GCM_KEY_SIZE];
+  unsigned char salt[TLS_CIPHER_SM4_GCM_SALT_SIZE];
+  unsigned char rec_seq[TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE];
+};
+struct tls12_crypto_info_sm4_ccm {
+  struct tls_crypto_info info;
+  unsigned char iv[TLS_CIPHER_SM4_CCM_IV_SIZE];
+  unsigned char key[TLS_CIPHER_SM4_CCM_KEY_SIZE];
+  unsigned char salt[TLS_CIPHER_SM4_CCM_SALT_SIZE];
+  unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
+};
 enum {
   TLS_INFO_UNSPEC,
   TLS_INFO_VERSION,
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tty.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tty.h
index 48fa908..dcce572 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tty.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tty.h
@@ -47,4 +47,5 @@
 #define N_NCI 25
 #define N_SPEAKUP 26
 #define N_NULL 27
+#define N_MCTP 28
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tty_flags.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tty_flags.h
index fe591e5..b8354cf 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tty_flags.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/tty_flags.h
@@ -36,7 +36,6 @@
 #define ASYNCB_AUTOPROBE 15
 #define ASYNCB_MAGIC_MULTIPLIER 16
 #define ASYNCB_LAST_USER 16
-#ifndef _KERNEL_
 #define ASYNCB_INITIALIZED 31
 #define ASYNCB_SUSPENDED 30
 #define ASYNCB_NORMAL_ACTIVE 29
@@ -47,7 +46,6 @@
 #define ASYNCB_SHARE_IRQ 24
 #define ASYNCB_CONS_FLOW 23
 #define ASYNCB_FIRST_KERNEL 22
-#endif
 #define ASYNC_HUP_NOTIFY (1U << ASYNCB_HUP_NOTIFY)
 #define ASYNC_SUSPENDED (1U << ASYNCB_SUSPENDED)
 #define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
@@ -67,12 +65,11 @@
 #define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE)
 #define ASYNC_MAGIC_MULTIPLIER (1U << ASYNCB_MAGIC_MULTIPLIER)
 #define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1)
-#define ASYNC_DEPRECATED (ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
+#define ASYNC_DEPRECATED (ASYNC_SPLIT_TERMIOS | ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
 #define ASYNC_USR_MASK (ASYNC_SPD_MASK | ASYNC_CALLOUT_NOHUP | ASYNC_LOW_LATENCY)
 #define ASYNC_SPD_CUST (ASYNC_SPD_HI | ASYNC_SPD_VHI)
 #define ASYNC_SPD_WARP (ASYNC_SPD_HI | ASYNC_SPD_SHI)
 #define ASYNC_SPD_MASK (ASYNC_SPD_HI | ASYNC_SPD_VHI | ASYNC_SPD_SHI)
-#ifndef _KERNEL_
 #define ASYNC_INITIALIZED (1U << ASYNCB_INITIALIZED)
 #define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE)
 #define ASYNC_BOOT_AUTOCONF (1U << ASYNCB_BOOT_AUTOCONF)
@@ -83,4 +80,3 @@
 #define ASYNC_CONS_FLOW (1U << ASYNCB_CONS_FLOW)
 #define ASYNC_INTERNAL_FLAGS (~((1U << ASYNCB_FIRST_KERNEL) - 1))
 #endif
-#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/usb/video.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/usb/video.h
index cd2ede9..b45bada 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/usb/video.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/usb/video.h
@@ -217,8 +217,9 @@
   __u8 bControlSize;
   __u8 bmControls[2];
   __u8 iProcessing;
+  __u8 bmVideoStandards;
 } __attribute__((__packed__));
-#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9 + (n))
+#define UVC_DT_PROCESSING_UNIT_SIZE(n) (10 + (n))
 struct uvc_extension_unit_descriptor {
   __u8 bLength;
   __u8 bDescriptorType;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/userfaultfd.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
index fc100ae..ca7b7a5 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
@@ -20,16 +20,18 @@
 #define _LINUX_USERFAULTFD_H
 #include <linux/types.h>
 #define UFFD_API ((__u64) 0xAA)
-#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID)
+#define UFFD_API_REGISTER_MODES (UFFDIO_REGISTER_MODE_MISSING | UFFDIO_REGISTER_MODE_WP | UFFDIO_REGISTER_MODE_MINOR)
+#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID | UFFD_FEATURE_MINOR_HUGETLBFS | UFFD_FEATURE_MINOR_SHMEM)
 #define UFFD_API_IOCTLS ((__u64) 1 << _UFFDIO_REGISTER | (__u64) 1 << _UFFDIO_UNREGISTER | (__u64) 1 << _UFFDIO_API)
-#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT)
-#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY)
+#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT | (__u64) 1 << _UFFDIO_CONTINUE)
+#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_CONTINUE)
 #define _UFFDIO_REGISTER (0x00)
 #define _UFFDIO_UNREGISTER (0x01)
 #define _UFFDIO_WAKE (0x02)
 #define _UFFDIO_COPY (0x03)
 #define _UFFDIO_ZEROPAGE (0x04)
 #define _UFFDIO_WRITEPROTECT (0x06)
+#define _UFFDIO_CONTINUE (0x07)
 #define _UFFDIO_API (0x3F)
 #define UFFDIO 0xAA
 #define UFFDIO_API _IOWR(UFFDIO, _UFFDIO_API, struct uffdio_api)
@@ -39,6 +41,7 @@
 #define UFFDIO_COPY _IOWR(UFFDIO, _UFFDIO_COPY, struct uffdio_copy)
 #define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, struct uffdio_zeropage)
 #define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, struct uffdio_writeprotect)
+#define UFFDIO_CONTINUE _IOWR(UFFDIO, _UFFDIO_CONTINUE, struct uffdio_continue)
 struct uffd_msg {
   __u8 event;
   __u8 reserved1;
@@ -78,6 +81,7 @@
 #define UFFD_EVENT_UNMAP 0x16
 #define UFFD_PAGEFAULT_FLAG_WRITE (1 << 0)
 #define UFFD_PAGEFAULT_FLAG_WP (1 << 1)
+#define UFFD_PAGEFAULT_FLAG_MINOR (1 << 2)
 struct uffdio_api {
   __u64 api;
 #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1 << 0)
@@ -89,6 +93,8 @@
 #define UFFD_FEATURE_EVENT_UNMAP (1 << 6)
 #define UFFD_FEATURE_SIGBUS (1 << 7)
 #define UFFD_FEATURE_THREAD_ID (1 << 8)
+#define UFFD_FEATURE_MINOR_HUGETLBFS (1 << 9)
+#define UFFD_FEATURE_MINOR_SHMEM (1 << 10)
   __u64 features;
   __u64 ioctls;
 };
@@ -100,6 +106,7 @@
   struct uffdio_range range;
 #define UFFDIO_REGISTER_MODE_MISSING ((__u64) 1 << 0)
 #define UFFDIO_REGISTER_MODE_WP ((__u64) 1 << 1)
+#define UFFDIO_REGISTER_MODE_MINOR ((__u64) 1 << 2)
   __u64 mode;
   __u64 ioctls;
 };
@@ -124,5 +131,11 @@
 #define UFFDIO_WRITEPROTECT_MODE_DONTWAKE ((__u64) 1 << 1)
   __u64 mode;
 };
+struct uffdio_continue {
+  struct uffdio_range range;
+#define UFFDIO_CONTINUE_MODE_DONTWAKE ((__u64) 1 << 0)
+  __u64 mode;
+  __s64 mapped;
+};
 #define UFFD_USER_MODE_ONLY 1
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
index 75e5ccd..1a11355 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef __LINUX_V4L2_CONTROLS_H
 #define __LINUX_V4L2_CONTROLS_H
+#include <linux/const.h>
 #include <linux/types.h>
 #define V4L2_CTRL_CLASS_USER 0x00980000
 #define V4L2_CTRL_CLASS_CODEC 0x00990000
@@ -32,6 +33,7 @@
 #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000
 #define V4L2_CTRL_CLASS_DETECT 0x00a30000
 #define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000
+#define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000
 #define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
 #define V4L2_CID_USER_BASE V4L2_CID_BASE
 #define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
@@ -88,6 +90,7 @@
   V4L2_COLORFX_SOLARIZATION = 13,
   V4L2_COLORFX_ANTIQUE = 14,
   V4L2_COLORFX_SET_CBCR = 15,
+  V4L2_COLORFX_SET_RGB = 16,
 };
 #define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE + 32)
 #define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE + 33)
@@ -100,7 +103,8 @@
 #define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE + 40)
 #define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE + 41)
 #define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE + 42)
-#define V4L2_CID_LASTP1 (V4L2_CID_BASE + 43)
+#define V4L2_CID_COLORFX_RGB (V4L2_CID_BASE + 43)
+#define V4L2_CID_LASTP1 (V4L2_CID_BASE + 44)
 #define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000)
 #define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010)
 #define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030)
@@ -114,6 +118,7 @@
 #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0)
 #define V4L2_CID_USER_CODA_BASE (V4L2_CID_USER_BASE + 0x10e0)
 #define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0)
+#define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170)
 #define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900)
 #define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1)
 #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE + 0)
@@ -318,6 +323,12 @@
 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE + 228)
 #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE + 229)
 #define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE + 230)
+#define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_CODEC_BASE + 231)
+#define V4L2_CID_MPEG_VIDEO_LTR_COUNT (V4L2_CID_CODEC_BASE + 232)
+#define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (V4L2_CID_CODEC_BASE + 233)
+#define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_CODEC_BASE + 234)
+#define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_CODEC_BASE + 235)
+#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (V4L2_CID_CODEC_BASE + 236)
 #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE + 270)
 enum v4l2_mpeg_video_mpeg2_level {
   V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
@@ -670,6 +681,8 @@
 #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 650)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 651)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652)
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_CODEC_BASE + 653)
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_BASE + 654)
 #define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
 #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE + 0)
 enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
@@ -926,6 +939,7 @@
 #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
 #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
 #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
+#define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9)
 #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
 #define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1)
 #define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
@@ -1158,17 +1172,17 @@
   __u32 flags;
 };
 #define V4L2_FWHT_VERSION 3
-#define V4L2_FWHT_FL_IS_INTERLACED BIT(0)
-#define V4L2_FWHT_FL_IS_BOTTOM_FIRST BIT(1)
-#define V4L2_FWHT_FL_IS_ALTERNATE BIT(2)
-#define V4L2_FWHT_FL_IS_BOTTOM_FIELD BIT(3)
-#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED BIT(4)
-#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED BIT(5)
-#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED BIT(6)
-#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT BIT(7)
-#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH BIT(8)
-#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED BIT(9)
-#define V4L2_FWHT_FL_I_FRAME BIT(10)
+#define V4L2_FWHT_FL_IS_INTERLACED _BITUL(0)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIRST _BITUL(1)
+#define V4L2_FWHT_FL_IS_ALTERNATE _BITUL(2)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIELD _BITUL(3)
+#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED _BITUL(4)
+#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED _BITUL(5)
+#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED _BITUL(6)
+#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT _BITUL(7)
+#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH _BITUL(8)
+#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED _BITUL(9)
+#define V4L2_FWHT_FL_I_FRAME _BITUL(10)
 #define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16)
 #define V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET 16
 #define V4L2_FWHT_FL_PIXENC_MSK GENMASK(20, 19)
@@ -1188,6 +1202,279 @@
   __u32 ycbcr_enc;
   __u32 quantization;
 };
+#define V4L2_VP8_SEGMENT_FLAG_ENABLED 0x01
+#define V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP 0x02
+#define V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA 0x04
+#define V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE 0x08
+struct v4l2_vp8_segment {
+  __s8 quant_update[4];
+  __s8 lf_update[4];
+  __u8 segment_probs[3];
+  __u8 padding;
+  __u32 flags;
+};
+#define V4L2_VP8_LF_ADJ_ENABLE 0x01
+#define V4L2_VP8_LF_DELTA_UPDATE 0x02
+#define V4L2_VP8_LF_FILTER_TYPE_SIMPLE 0x04
+struct v4l2_vp8_loop_filter {
+  __s8 ref_frm_delta[4];
+  __s8 mb_mode_delta[4];
+  __u8 sharpness_level;
+  __u8 level;
+  __u16 padding;
+  __u32 flags;
+};
+struct v4l2_vp8_quantization {
+  __u8 y_ac_qi;
+  __s8 y_dc_delta;
+  __s8 y2_dc_delta;
+  __s8 y2_ac_delta;
+  __s8 uv_dc_delta;
+  __s8 uv_ac_delta;
+  __u16 padding;
+};
+#define V4L2_VP8_COEFF_PROB_CNT 11
+#define V4L2_VP8_MV_PROB_CNT 19
+struct v4l2_vp8_entropy {
+  __u8 coeff_probs[4][8][3][V4L2_VP8_COEFF_PROB_CNT];
+  __u8 y_mode_probs[4];
+  __u8 uv_mode_probs[3];
+  __u8 mv_probs[2][V4L2_VP8_MV_PROB_CNT];
+  __u8 padding[3];
+};
+struct v4l2_vp8_entropy_coder_state {
+  __u8 range;
+  __u8 value;
+  __u8 bit_count;
+  __u8 padding;
+};
+#define V4L2_VP8_FRAME_FLAG_KEY_FRAME 0x01
+#define V4L2_VP8_FRAME_FLAG_EXPERIMENTAL 0x02
+#define V4L2_VP8_FRAME_FLAG_SHOW_FRAME 0x04
+#define V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF 0x08
+#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN 0x10
+#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT 0x20
+#define V4L2_VP8_FRAME_IS_KEY_FRAME(hdr) (! ! ((hdr)->flags & V4L2_VP8_FRAME_FLAG_KEY_FRAME))
+#define V4L2_CID_STATELESS_VP8_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 200)
+struct v4l2_ctrl_vp8_frame {
+  struct v4l2_vp8_segment segment;
+  struct v4l2_vp8_loop_filter lf;
+  struct v4l2_vp8_quantization quant;
+  struct v4l2_vp8_entropy entropy;
+  struct v4l2_vp8_entropy_coder_state coder_state;
+  __u16 width;
+  __u16 height;
+  __u8 horizontal_scale;
+  __u8 vertical_scale;
+  __u8 version;
+  __u8 prob_skip_false;
+  __u8 prob_intra;
+  __u8 prob_last;
+  __u8 prob_gf;
+  __u8 num_dct_parts;
+  __u32 first_part_size;
+  __u32 first_part_header_bits;
+  __u32 dct_part_sizes[8];
+  __u64 last_frame_ts;
+  __u64 golden_frame_ts;
+  __u64 alt_frame_ts;
+  __u64 flags;
+};
+#define V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE 0x01
+#define V4L2_CID_STATELESS_MPEG2_SEQUENCE (V4L2_CID_CODEC_STATELESS_BASE + 220)
+struct v4l2_ctrl_mpeg2_sequence {
+  __u16 horizontal_size;
+  __u16 vertical_size;
+  __u32 vbv_buffer_size;
+  __u16 profile_and_level_indication;
+  __u8 chroma_format;
+  __u8 flags;
+};
+#define V4L2_MPEG2_PIC_CODING_TYPE_I 1
+#define V4L2_MPEG2_PIC_CODING_TYPE_P 2
+#define V4L2_MPEG2_PIC_CODING_TYPE_B 3
+#define V4L2_MPEG2_PIC_CODING_TYPE_D 4
+#define V4L2_MPEG2_PIC_TOP_FIELD 0x1
+#define V4L2_MPEG2_PIC_BOTTOM_FIELD 0x2
+#define V4L2_MPEG2_PIC_FRAME 0x3
+#define V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST 0x0001
+#define V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT 0x0002
+#define V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV 0x0004
+#define V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE 0x0008
+#define V4L2_MPEG2_PIC_FLAG_INTRA_VLC 0x0010
+#define V4L2_MPEG2_PIC_FLAG_ALT_SCAN 0x0020
+#define V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST 0x0040
+#define V4L2_MPEG2_PIC_FLAG_PROGRESSIVE 0x0080
+#define V4L2_CID_STATELESS_MPEG2_PICTURE (V4L2_CID_CODEC_STATELESS_BASE + 221)
+struct v4l2_ctrl_mpeg2_picture {
+  __u64 backward_ref_ts;
+  __u64 forward_ref_ts;
+  __u32 flags;
+  __u8 f_code[2][2];
+  __u8 picture_coding_type;
+  __u8 picture_structure;
+  __u8 intra_dc_precision;
+  __u8 reserved[5];
+};
+#define V4L2_CID_STATELESS_MPEG2_QUANTISATION (V4L2_CID_CODEC_STATELESS_BASE + 222)
+struct v4l2_ctrl_mpeg2_quantisation {
+  __u8 intra_quantiser_matrix[64];
+  __u8 non_intra_quantiser_matrix[64];
+  __u8 chroma_intra_quantiser_matrix[64];
+  __u8 chroma_non_intra_quantiser_matrix[64];
+};
+#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
+#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
+#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
+struct v4l2_ctrl_hdr10_cll_info {
+  __u16 max_content_light_level;
+  __u16 max_pic_average_light_level;
+};
+#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000
+#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000
+#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000
+#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1
+#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000
+struct v4l2_ctrl_hdr10_mastering_display {
+  __u16 display_primaries_x[3];
+  __u16 display_primaries_y[3];
+  __u16 white_point_x;
+  __u16 white_point_y;
+  __u32 max_display_mastering_luminance;
+  __u32 min_display_mastering_luminance;
+};
+#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1
+#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2
+struct v4l2_vp9_loop_filter {
+  __s8 ref_deltas[4];
+  __s8 mode_deltas[2];
+  __u8 level;
+  __u8 sharpness;
+  __u8 flags;
+  __u8 reserved[7];
+};
+struct v4l2_vp9_quantization {
+  __u8 base_q_idx;
+  __s8 delta_q_y_dc;
+  __s8 delta_q_uv_dc;
+  __s8 delta_q_uv_ac;
+  __u8 reserved[4];
+};
+#define V4L2_VP9_SEGMENTATION_FLAG_ENABLED 0x01
+#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP 0x02
+#define V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE 0x04
+#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA 0x08
+#define V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE 0x10
+#define V4L2_VP9_SEG_LVL_ALT_Q 0
+#define V4L2_VP9_SEG_LVL_ALT_L 1
+#define V4L2_VP9_SEG_LVL_REF_FRAME 2
+#define V4L2_VP9_SEG_LVL_SKIP 3
+#define V4L2_VP9_SEG_LVL_MAX 4
+#define V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) (1 << (id))
+#define V4L2_VP9_SEGMENT_FEATURE_ENABLED_MASK 0xf
+struct v4l2_vp9_segmentation {
+  __s16 feature_data[8][4];
+  __u8 feature_enabled[8];
+  __u8 tree_probs[7];
+  __u8 pred_probs[3];
+  __u8 flags;
+  __u8 reserved[5];
+};
+#define V4L2_VP9_FRAME_FLAG_KEY_FRAME 0x001
+#define V4L2_VP9_FRAME_FLAG_SHOW_FRAME 0x002
+#define V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT 0x004
+#define V4L2_VP9_FRAME_FLAG_INTRA_ONLY 0x008
+#define V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV 0x010
+#define V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX 0x020
+#define V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE 0x040
+#define V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING 0x080
+#define V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING 0x100
+#define V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING 0x200
+#define V4L2_VP9_SIGN_BIAS_LAST 0x1
+#define V4L2_VP9_SIGN_BIAS_GOLDEN 0x2
+#define V4L2_VP9_SIGN_BIAS_ALT 0x4
+#define V4L2_VP9_RESET_FRAME_CTX_NONE 0
+#define V4L2_VP9_RESET_FRAME_CTX_SPEC 1
+#define V4L2_VP9_RESET_FRAME_CTX_ALL 2
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP 0
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH 1
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP 2
+#define V4L2_VP9_INTERP_FILTER_BILINEAR 3
+#define V4L2_VP9_INTERP_FILTER_SWITCHABLE 4
+#define V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE 0
+#define V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE 1
+#define V4L2_VP9_REFERENCE_MODE_SELECT 2
+#define V4L2_VP9_PROFILE_MAX 3
+#define V4L2_CID_STATELESS_VP9_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 300)
+struct v4l2_ctrl_vp9_frame {
+  struct v4l2_vp9_loop_filter lf;
+  struct v4l2_vp9_quantization quant;
+  struct v4l2_vp9_segmentation seg;
+  __u32 flags;
+  __u16 compressed_header_size;
+  __u16 uncompressed_header_size;
+  __u16 frame_width_minus_1;
+  __u16 frame_height_minus_1;
+  __u16 render_width_minus_1;
+  __u16 render_height_minus_1;
+  __u64 last_frame_ts;
+  __u64 golden_frame_ts;
+  __u64 alt_frame_ts;
+  __u8 ref_frame_sign_bias;
+  __u8 reset_frame_context;
+  __u8 frame_context_idx;
+  __u8 profile;
+  __u8 bit_depth;
+  __u8 interpolation_filter;
+  __u8 tile_cols_log2;
+  __u8 tile_rows_log2;
+  __u8 reference_mode;
+  __u8 reserved[7];
+};
+#define V4L2_VP9_NUM_FRAME_CTX 4
+struct v4l2_vp9_mv_probs {
+  __u8 joint[3];
+  __u8 sign[2];
+  __u8 classes[2][10];
+  __u8 class0_bit[2];
+  __u8 bits[2][10];
+  __u8 class0_fr[2][2][3];
+  __u8 fr[2][3];
+  __u8 class0_hp[2];
+  __u8 hp[2];
+};
+#define V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (V4L2_CID_CODEC_STATELESS_BASE + 301)
+#define V4L2_VP9_TX_MODE_ONLY_4X4 0
+#define V4L2_VP9_TX_MODE_ALLOW_8X8 1
+#define V4L2_VP9_TX_MODE_ALLOW_16X16 2
+#define V4L2_VP9_TX_MODE_ALLOW_32X32 3
+#define V4L2_VP9_TX_MODE_SELECT 4
+struct v4l2_ctrl_vp9_compressed_hdr {
+  __u8 tx_mode;
+  __u8 tx8[2][1];
+  __u8 tx16[2][2];
+  __u8 tx32[2][3];
+  __u8 coef[4][2][2][6][6][3];
+  __u8 skip[3];
+  __u8 inter_mode[7][3];
+  __u8 interp_filter[4][2];
+  __u8 is_inter[4];
+  __u8 comp_mode[5];
+  __u8 single_ref[5][2];
+  __u8 comp_ref[5];
+  __u8 y_mode[4][9];
+  __u8 uv_mode[10][9];
+  __u8 partition[16][3];
+  struct v4l2_vp9_mv_probs mv;
+};
 #define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC
 #define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS
 #define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vdpa.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vdpa.h
index bee6618..b3e5d39 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vdpa.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vdpa.h
@@ -27,9 +27,11 @@
   VDPA_CMD_DEV_NEW,
   VDPA_CMD_DEV_DEL,
   VDPA_CMD_DEV_GET,
+  VDPA_CMD_DEV_CONFIG_GET,
 };
 enum vdpa_attr {
   VDPA_ATTR_UNSPEC,
+  VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC,
   VDPA_ATTR_MGMTDEV_BUS_NAME,
   VDPA_ATTR_MGMTDEV_DEV_NAME,
   VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES,
@@ -38,6 +40,14 @@
   VDPA_ATTR_DEV_VENDOR_ID,
   VDPA_ATTR_DEV_MAX_VQS,
   VDPA_ATTR_DEV_MAX_VQ_SIZE,
+  VDPA_ATTR_DEV_MIN_VQ_SIZE,
+  VDPA_ATTR_DEV_NET_CFG_MACADDR,
+  VDPA_ATTR_DEV_NET_STATUS,
+  VDPA_ATTR_DEV_NET_CFG_MAX_VQP,
+  VDPA_ATTR_DEV_NET_CFG_MTU,
+  VDPA_ATTR_DEV_NEGOTIATED_FEATURES,
+  VDPA_ATTR_DEV_MGMTDEV_MAX_VQS,
+  VDPA_ATTR_DEV_SUPPORTED_FEATURES,
   VDPA_ATTR_MAX,
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vduse.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vduse.h
new file mode 100644
index 0000000..2dc8c82
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vduse.h
@@ -0,0 +1,134 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VDUSE_H_
+#define _UAPI_VDUSE_H_
+#include <linux/types.h>
+#define VDUSE_BASE 0x81
+#define VDUSE_API_VERSION 0
+#define VDUSE_GET_API_VERSION _IOR(VDUSE_BASE, 0x00, __u64)
+#define VDUSE_SET_API_VERSION _IOW(VDUSE_BASE, 0x01, __u64)
+struct vduse_dev_config {
+#define VDUSE_NAME_MAX 256
+  char name[VDUSE_NAME_MAX];
+  __u32 vendor_id;
+  __u32 device_id;
+  __u64 features;
+  __u32 vq_num;
+  __u32 vq_align;
+  __u32 reserved[13];
+  __u32 config_size;
+  __u8 config[];
+};
+#define VDUSE_CREATE_DEV _IOW(VDUSE_BASE, 0x02, struct vduse_dev_config)
+#define VDUSE_DESTROY_DEV _IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX])
+struct vduse_iotlb_entry {
+  __u64 offset;
+  __u64 start;
+  __u64 last;
+#define VDUSE_ACCESS_RO 0x1
+#define VDUSE_ACCESS_WO 0x2
+#define VDUSE_ACCESS_RW 0x3
+  __u8 perm;
+};
+#define VDUSE_IOTLB_GET_FD _IOWR(VDUSE_BASE, 0x10, struct vduse_iotlb_entry)
+#define VDUSE_DEV_GET_FEATURES _IOR(VDUSE_BASE, 0x11, __u64)
+struct vduse_config_data {
+  __u32 offset;
+  __u32 length;
+  __u8 buffer[];
+};
+#define VDUSE_DEV_SET_CONFIG _IOW(VDUSE_BASE, 0x12, struct vduse_config_data)
+#define VDUSE_DEV_INJECT_CONFIG_IRQ _IO(VDUSE_BASE, 0x13)
+struct vduse_vq_config {
+  __u32 index;
+  __u16 max_size;
+  __u16 reserved[13];
+};
+#define VDUSE_VQ_SETUP _IOW(VDUSE_BASE, 0x14, struct vduse_vq_config)
+struct vduse_vq_state_split {
+  __u16 avail_index;
+};
+struct vduse_vq_state_packed {
+  __u16 last_avail_counter;
+  __u16 last_avail_idx;
+  __u16 last_used_counter;
+  __u16 last_used_idx;
+};
+struct vduse_vq_info {
+  __u32 index;
+  __u32 num;
+  __u64 desc_addr;
+  __u64 driver_addr;
+  __u64 device_addr;
+  union {
+    struct vduse_vq_state_split split;
+    struct vduse_vq_state_packed packed;
+  };
+  __u8 ready;
+};
+#define VDUSE_VQ_GET_INFO _IOWR(VDUSE_BASE, 0x15, struct vduse_vq_info)
+struct vduse_vq_eventfd {
+  __u32 index;
+#define VDUSE_EVENTFD_DEASSIGN - 1
+  int fd;
+};
+#define VDUSE_VQ_SETUP_KICKFD _IOW(VDUSE_BASE, 0x16, struct vduse_vq_eventfd)
+#define VDUSE_VQ_INJECT_IRQ _IOW(VDUSE_BASE, 0x17, __u32)
+enum vduse_req_type {
+  VDUSE_GET_VQ_STATE,
+  VDUSE_SET_STATUS,
+  VDUSE_UPDATE_IOTLB,
+};
+struct vduse_vq_state {
+  __u32 index;
+  union {
+    struct vduse_vq_state_split split;
+    struct vduse_vq_state_packed packed;
+  };
+};
+struct vduse_dev_status {
+  __u8 status;
+};
+struct vduse_iova_range {
+  __u64 start;
+  __u64 last;
+};
+struct vduse_dev_request {
+  __u32 type;
+  __u32 request_id;
+  __u32 reserved[4];
+  union {
+    struct vduse_vq_state vq_state;
+    struct vduse_dev_status s;
+    struct vduse_iova_range iova;
+    __u32 padding[32];
+  };
+};
+struct vduse_dev_response {
+  __u32 request_id;
+#define VDUSE_REQ_RESULT_OK 0x00
+#define VDUSE_REQ_RESULT_FAILED 0x01
+  __u32 result;
+  __u32 reserved[4];
+  union {
+    struct vduse_vq_state vq_state;
+    __u32 padding[32];
+  };
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/version.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/version.h
index 86c0070..2dfd696 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/version.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/version.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#define LINUX_VERSION_CODE 330752
+#define LINUX_VERSION_CODE 332032
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
 #define LINUX_VERSION_MAJOR 5
-#define LINUX_VERSION_PATCHLEVEL 12
+#define LINUX_VERSION_PATCHLEVEL 17
 #define LINUX_VERSION_SUBLEVEL 0
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/videodev2.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/videodev2.h
index 76d9af9..1cae711 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/videodev2.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/videodev2.h
@@ -24,7 +24,7 @@
 #include <linux/types.h>
 #include <linux/v4l2-common.h>
 #include <linux/v4l2-controls.h>
-#define VIDEO_MAX_FRAME 64
+#define VIDEO_MAX_FRAME 32
 #define VIDEO_MAX_PLANES 8
 #define v4l2_fourcc(a,b,c,d) ((__u32) (a) | ((__u32) (b) << 8) | ((__u32) (c) << 16) | ((__u32) (d) << 24))
 #define v4l2_fourcc_be(a,b,c,d) (v4l2_fourcc(a, b, c, d) | (1U << 31))
@@ -266,6 +266,7 @@
 #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4')
 #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O')
 #define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P')
+#define V4L2_PIX_FMT_YUV24 v4l2_fourcc('Y', 'U', 'V', '3')
 #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4')
 #define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V')
 #define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V')
@@ -278,13 +279,10 @@
 #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1')
 #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4')
 #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2')
-#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1')
 #define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6')
 #define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1')
-#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
-#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9')
 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9')
 #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P')
@@ -297,6 +295,11 @@
 #define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1')
 #define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4')
 #define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2')
+#define V4L2_PIX_FMT_NV12_4L4 v4l2_fourcc('V', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2')
+#define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
+#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1')
 #define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G')
 #define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G')
@@ -355,7 +358,9 @@
 #define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G')
 #define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L')
 #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0')
+#define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F')
 #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0')
+#define V4L2_PIX_FMT_VP9_FRAME v4l2_fourcc('V', 'P', '9', 'F')
 #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C')
 #define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T')
 #define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H')
@@ -390,8 +395,8 @@
 #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I')
 #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
 #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1')
+#define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1')
 #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I')
-#define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2')
 #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4')
 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4')
 #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b')
@@ -526,8 +531,10 @@
   __u32 type;
   __u32 memory;
   __u32 capabilities;
-  __u32 reserved[1];
+  __u8 flags;
+  __u8 reserved[3];
 };
+#define V4L2_MEMORY_FLAG_NON_COHERENT (1 << 0)
 #define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
 #define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
 #define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)
@@ -888,6 +895,12 @@
     struct v4l2_ctrl_h264_slice_params __user * p_h264_slice_params;
     struct v4l2_ctrl_h264_decode_params __user * p_h264_decode_params;
     struct v4l2_ctrl_fwht_params __user * p_fwht_params;
+    struct v4l2_ctrl_vp8_frame __user * p_vp8_frame;
+    struct v4l2_ctrl_mpeg2_sequence __user * p_mpeg2_sequence;
+    struct v4l2_ctrl_mpeg2_picture __user * p_mpeg2_picture;
+    struct v4l2_ctrl_mpeg2_quantisation __user * p_mpeg2_quantisation;
+    struct v4l2_ctrl_vp9_compressed_hdr __user * p_vp9_compressed_hdr_probs;
+    struct v4l2_ctrl_vp9_frame __user * p_vp9_frame;
     void __user * ptr;
   };
 } __attribute__((packed));
@@ -925,6 +938,8 @@
   V4L2_CTRL_TYPE_U16 = 0x0101,
   V4L2_CTRL_TYPE_U32 = 0x0102,
   V4L2_CTRL_TYPE_AREA = 0x0106,
+  V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110,
+  V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111,
   V4L2_CTRL_TYPE_H264_SPS = 0x0200,
   V4L2_CTRL_TYPE_H264_PPS = 0x0201,
   V4L2_CTRL_TYPE_H264_SCALING_MATRIX = 0x0202,
@@ -932,6 +947,12 @@
   V4L2_CTRL_TYPE_H264_DECODE_PARAMS = 0x0204,
   V4L2_CTRL_TYPE_H264_PRED_WEIGHTS = 0x0205,
   V4L2_CTRL_TYPE_FWHT_PARAMS = 0x0220,
+  V4L2_CTRL_TYPE_VP8_FRAME = 0x0240,
+  V4L2_CTRL_TYPE_MPEG2_QUANTISATION = 0x0250,
+  V4L2_CTRL_TYPE_MPEG2_SEQUENCE = 0x0251,
+  V4L2_CTRL_TYPE_MPEG2_PICTURE = 0x0252,
+  V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR = 0x0260,
+  V4L2_CTRL_TYPE_VP9_FRAME = 0x0261,
 };
 struct v4l2_queryctrl {
   __u32 id;
@@ -1365,7 +1386,8 @@
   __u32 memory;
   struct v4l2_format format;
   __u32 capabilities;
-  __u32 reserved[7];
+  __u32 flags;
+  __u32 reserved[6];
 };
 #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
 #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
@@ -1450,4 +1472,6 @@
 #define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
 #define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
 #define BASE_VIDIOC_PRIVATE 192
+#define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16
+#define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
similarity index 63%
copy from mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
index bb45c3d..7e29eaa 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
@@ -16,14 +16,25 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_LINUX_VIRTIO_BT_H
+#define _UAPI_LINUX_VIRTIO_BT_H
+#include <linux/virtio_types.h>
+#define VIRTIO_BT_F_VND_HCI 0
+#define VIRTIO_BT_F_MSFT_EXT 1
+#define VIRTIO_BT_F_AOSP_EXT 2
+enum virtio_bt_config_type {
+  VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
+  VIRTIO_BT_CONFIG_TYPE_AMP = 1,
 };
+enum virtio_bt_config_vendor {
+  VIRTIO_BT_CONFIG_VENDOR_NONE = 0,
+  VIRTIO_BT_CONFIG_VENDOR_ZEPHYR = 1,
+  VIRTIO_BT_CONFIG_VENDOR_INTEL = 2,
+  VIRTIO_BT_CONFIG_VENDOR_REALTEK = 3,
+};
+struct virtio_bt_config {
+  __u8 type;
+  __u16 vendor;
+  __u16 msft_opcode;
+} __attribute__((packed));
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h
new file mode 100644
index 0000000..543fe76
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VIRTIO_GPIO_H
+#define _LINUX_VIRTIO_GPIO_H
+#include <linux/types.h>
+#define VIRTIO_GPIO_F_IRQ 0
+#define VIRTIO_GPIO_MSG_GET_NAMES 0x0001
+#define VIRTIO_GPIO_MSG_GET_DIRECTION 0x0002
+#define VIRTIO_GPIO_MSG_SET_DIRECTION 0x0003
+#define VIRTIO_GPIO_MSG_GET_VALUE 0x0004
+#define VIRTIO_GPIO_MSG_SET_VALUE 0x0005
+#define VIRTIO_GPIO_MSG_IRQ_TYPE 0x0006
+#define VIRTIO_GPIO_STATUS_OK 0x0
+#define VIRTIO_GPIO_STATUS_ERR 0x1
+#define VIRTIO_GPIO_DIRECTION_NONE 0x00
+#define VIRTIO_GPIO_DIRECTION_OUT 0x01
+#define VIRTIO_GPIO_DIRECTION_IN 0x02
+#define VIRTIO_GPIO_IRQ_TYPE_NONE 0x00
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_RISING 0x01
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_FALLING 0x02
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_BOTH 0x03
+#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_HIGH 0x04
+#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_LOW 0x08
+struct virtio_gpio_config {
+  __le16 ngpio;
+  __u8 padding[2];
+  __le32 gpio_names_size;
+};
+struct virtio_gpio_request {
+  __le16 type;
+  __le16 gpio;
+  __le32 value;
+};
+struct virtio_gpio_response {
+  __u8 status;
+  __u8 value;
+};
+struct virtio_gpio_response_get_names {
+  __u8 status;
+  __u8 value[];
+};
+struct virtio_gpio_irq_request {
+  __le16 gpio;
+};
+struct virtio_gpio_irq_response {
+  __u8 status;
+};
+#define VIRTIO_GPIO_IRQ_STATUS_INVALID 0x0
+#define VIRTIO_GPIO_IRQ_STATUS_VALID 0x1
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
index 83ad5a7..8a21afd 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
@@ -23,6 +23,7 @@
 #define VIRTIO_GPU_F_EDID 1
 #define VIRTIO_GPU_F_RESOURCE_UUID 2
 #define VIRTIO_GPU_F_RESOURCE_BLOB 3
+#define VIRTIO_GPU_F_CONTEXT_INIT 4
 enum virtio_gpu_ctrl_type {
   VIRTIO_GPU_UNDEFINED = 0,
   VIRTIO_GPU_CMD_GET_DISPLAY_INFO = 0x0100,
@@ -70,12 +71,14 @@
   VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1
 };
 #define VIRTIO_GPU_FLAG_FENCE (1 << 0)
+#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1 << 1)
 struct virtio_gpu_ctrl_hdr {
   __le32 type;
   __le32 flags;
   __le64 fence_id;
   __le32 ctx_id;
-  __le32 padding;
+  __u8 ring_idx;
+  __u8 padding[3];
 };
 struct virtio_gpu_cursor_pos {
   __le32 scanout_id;
@@ -181,10 +184,11 @@
   __le32 flags;
   __le32 padding;
 };
+#define VIRTIO_GPU_CONTEXT_INIT_CAPSET_ID_MASK 0x000000ff
 struct virtio_gpu_ctx_create {
   struct virtio_gpu_ctrl_hdr hdr;
   __le32 nlen;
-  __le32 padding;
+  __le32 context_init;
   char debug_name[64];
 };
 struct virtio_gpu_ctx_destroy {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
similarity index 71%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
index bb45c3d..9540f26 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
@@ -16,14 +16,21 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _UAPI_LINUX_VIRTIO_I2C_H
+#define _UAPI_LINUX_VIRTIO_I2C_H
+#include <linux/const.h>
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST 0
+#define VIRTIO_I2C_FLAGS_FAIL_NEXT _BITUL(0)
+#define VIRTIO_I2C_FLAGS_M_RD _BITUL(1)
+struct virtio_i2c_out_hdr {
+  __le16 addr;
+  __le16 padding;
+  __le32 flags;
 };
+struct virtio_i2c_in_hdr {
+  __u8 status;
+};
+#define VIRTIO_I2C_MSG_OK 0
+#define VIRTIO_I2C_MSG_ERR 1
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_ids.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
index bae26a0..2894700 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
@@ -40,7 +40,28 @@
 #define VIRTIO_ID_PSTORE 22
 #define VIRTIO_ID_IOMMU 23
 #define VIRTIO_ID_MEM 24
+#define VIRTIO_ID_SOUND 25
 #define VIRTIO_ID_FS 26
 #define VIRTIO_ID_PMEM 27
+#define VIRTIO_ID_RPMB 28
 #define VIRTIO_ID_MAC80211_HWSIM 29
+#define VIRTIO_ID_VIDEO_ENCODER 30
+#define VIRTIO_ID_VIDEO_DECODER 31
+#define VIRTIO_ID_SCMI 32
+#define VIRTIO_ID_NITRO_SEC_MOD 33
+#define VIRTIO_ID_I2C_ADAPTER 34
+#define VIRTIO_ID_WATCHDOG 35
+#define VIRTIO_ID_CAN 36
+#define VIRTIO_ID_DMABUF 37
+#define VIRTIO_ID_PARAM_SERV 38
+#define VIRTIO_ID_AUDIO_POLICY 39
+#define VIRTIO_ID_BT 40
+#define VIRTIO_ID_GPIO 41
+#define VIRTIO_TRANS_ID_NET 1000
+#define VIRTIO_TRANS_ID_BLOCK 1001
+#define VIRTIO_TRANS_ID_BALLOON 1002
+#define VIRTIO_TRANS_ID_CONSOLE 1003
+#define VIRTIO_TRANS_ID_SCSI 1004
+#define VIRTIO_TRANS_ID_RNG 1005
+#define VIRTIO_TRANS_ID_9P 1009
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
index b08de57..ec8def8 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
@@ -25,6 +25,7 @@
 #define VIRTIO_IOMMU_F_BYPASS 3
 #define VIRTIO_IOMMU_F_PROBE 4
 #define VIRTIO_IOMMU_F_MMIO 5
+#define VIRTIO_IOMMU_F_BYPASS_CONFIG 6
 struct virtio_iommu_range_64 {
   __le64 start;
   __le64 end;
@@ -38,6 +39,8 @@
   struct virtio_iommu_range_64 input_range;
   struct virtio_iommu_range_32 domain_range;
   __le32 probe_size;
+  __u8 bypass;
+  __u8 reserved[3];
 };
 #define VIRTIO_IOMMU_T_ATTACH 0x01
 #define VIRTIO_IOMMU_T_DETACH 0x02
@@ -61,11 +64,13 @@
   __u8 status;
   __u8 reserved[3];
 };
+#define VIRTIO_IOMMU_ATTACH_F_BYPASS (1 << 0)
 struct virtio_iommu_req_attach {
   struct virtio_iommu_req_head head;
   __le32 domain;
   __le32 endpoint;
-  __u8 reserved[8];
+  __le32 flags;
+  __u8 reserved[4];
   struct virtio_iommu_req_tail tail;
 };
 struct virtio_iommu_req_detach {
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_mem.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
index d6542b7..66ffce1 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
@@ -23,6 +23,7 @@
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
 #define VIRTIO_MEM_F_ACPI_PXM 0
+#define VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE 1
 #define VIRTIO_MEM_REQ_PLUG 0
 #define VIRTIO_MEM_REQ_UNPLUG 1
 #define VIRTIO_MEM_REQ_UNPLUG_ALL 2
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
similarity index 68%
rename from mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/raw.h
rename to mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
index bb45c3d..01c5869 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
@@ -16,14 +16,26 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _UAPI_LINUX_VIRTIO_PCIDEV_H
+#define _UAPI_LINUX_VIRTIO_PCIDEV_H
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+enum virtio_pcidev_ops {
+  VIRTIO_PCIDEV_OP_RESERVED = 0,
+  VIRTIO_PCIDEV_OP_CFG_READ,
+  VIRTIO_PCIDEV_OP_CFG_WRITE,
+  VIRTIO_PCIDEV_OP_MMIO_READ,
+  VIRTIO_PCIDEV_OP_MMIO_WRITE,
+  VIRTIO_PCIDEV_OP_MMIO_MEMSET,
+  VIRTIO_PCIDEV_OP_INT,
+  VIRTIO_PCIDEV_OP_MSI,
+  VIRTIO_PCIDEV_OP_PME,
+};
+struct virtio_pcidev_msg {
+  __u8 op;
+  __u8 bar;
+  __u16 reserved;
+  __u32 size;
+  __u64 addr;
+  __u8 data[];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
similarity index 78%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
index bb45c3d..7907ed4 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
@@ -16,14 +16,12 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#ifndef _UAPI_LINUX_VIRTIO_SCMI_H
+#define _UAPI_LINUX_VIRTIO_SCMI_H
+#include <linux/virtio_types.h>
+#define VIRTIO_SCMI_F_P2A_CHANNELS 0
+#define VIRTIO_SCMI_F_SHARED_MEMORY 1
+#define VIRTIO_SCMI_VQ_TX 0
+#define VIRTIO_SCMI_VQ_RX 1
+#define VIRTIO_SCMI_VQ_MAX_CNT 2
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_snd.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_snd.h
new file mode 100644
index 0000000..60dfa62
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_snd.h
@@ -0,0 +1,224 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 VIRTIO_SND_IF_H
+#define VIRTIO_SND_IF_H
+#include <linux/virtio_types.h>
+struct virtio_snd_config {
+  __le32 jacks;
+  __le32 streams;
+  __le32 chmaps;
+};
+enum {
+  VIRTIO_SND_VQ_CONTROL = 0,
+  VIRTIO_SND_VQ_EVENT,
+  VIRTIO_SND_VQ_TX,
+  VIRTIO_SND_VQ_RX,
+  VIRTIO_SND_VQ_MAX
+};
+enum {
+  VIRTIO_SND_D_OUTPUT = 0,
+  VIRTIO_SND_D_INPUT
+};
+enum {
+  VIRTIO_SND_R_JACK_INFO = 1,
+  VIRTIO_SND_R_JACK_REMAP,
+  VIRTIO_SND_R_PCM_INFO = 0x0100,
+  VIRTIO_SND_R_PCM_SET_PARAMS,
+  VIRTIO_SND_R_PCM_PREPARE,
+  VIRTIO_SND_R_PCM_RELEASE,
+  VIRTIO_SND_R_PCM_START,
+  VIRTIO_SND_R_PCM_STOP,
+  VIRTIO_SND_R_CHMAP_INFO = 0x0200,
+  VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
+  VIRTIO_SND_EVT_JACK_DISCONNECTED,
+  VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
+  VIRTIO_SND_EVT_PCM_XRUN,
+  VIRTIO_SND_S_OK = 0x8000,
+  VIRTIO_SND_S_BAD_MSG,
+  VIRTIO_SND_S_NOT_SUPP,
+  VIRTIO_SND_S_IO_ERR
+};
+struct virtio_snd_hdr {
+  __le32 code;
+};
+struct virtio_snd_event {
+  struct virtio_snd_hdr hdr;
+  __le32 data;
+};
+struct virtio_snd_query_info {
+  struct virtio_snd_hdr hdr;
+  __le32 start_id;
+  __le32 count;
+  __le32 size;
+};
+struct virtio_snd_info {
+  __le32 hda_fn_nid;
+};
+struct virtio_snd_jack_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 jack_id;
+};
+enum {
+  VIRTIO_SND_JACK_F_REMAP = 0
+};
+struct virtio_snd_jack_info {
+  struct virtio_snd_info hdr;
+  __le32 features;
+  __le32 hda_reg_defconf;
+  __le32 hda_reg_caps;
+  __u8 connected;
+  __u8 padding[7];
+};
+struct virtio_snd_jack_remap {
+  struct virtio_snd_jack_hdr hdr;
+  __le32 association;
+  __le32 sequence;
+};
+struct virtio_snd_pcm_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 stream_id;
+};
+enum {
+  VIRTIO_SND_PCM_F_SHMEM_HOST = 0,
+  VIRTIO_SND_PCM_F_SHMEM_GUEST,
+  VIRTIO_SND_PCM_F_MSG_POLLING,
+  VIRTIO_SND_PCM_F_EVT_SHMEM_PERIODS,
+  VIRTIO_SND_PCM_F_EVT_XRUNS
+};
+enum {
+  VIRTIO_SND_PCM_FMT_IMA_ADPCM = 0,
+  VIRTIO_SND_PCM_FMT_MU_LAW,
+  VIRTIO_SND_PCM_FMT_A_LAW,
+  VIRTIO_SND_PCM_FMT_S8,
+  VIRTIO_SND_PCM_FMT_U8,
+  VIRTIO_SND_PCM_FMT_S16,
+  VIRTIO_SND_PCM_FMT_U16,
+  VIRTIO_SND_PCM_FMT_S18_3,
+  VIRTIO_SND_PCM_FMT_U18_3,
+  VIRTIO_SND_PCM_FMT_S20_3,
+  VIRTIO_SND_PCM_FMT_U20_3,
+  VIRTIO_SND_PCM_FMT_S24_3,
+  VIRTIO_SND_PCM_FMT_U24_3,
+  VIRTIO_SND_PCM_FMT_S20,
+  VIRTIO_SND_PCM_FMT_U20,
+  VIRTIO_SND_PCM_FMT_S24,
+  VIRTIO_SND_PCM_FMT_U24,
+  VIRTIO_SND_PCM_FMT_S32,
+  VIRTIO_SND_PCM_FMT_U32,
+  VIRTIO_SND_PCM_FMT_FLOAT,
+  VIRTIO_SND_PCM_FMT_FLOAT64,
+  VIRTIO_SND_PCM_FMT_DSD_U8,
+  VIRTIO_SND_PCM_FMT_DSD_U16,
+  VIRTIO_SND_PCM_FMT_DSD_U32,
+  VIRTIO_SND_PCM_FMT_IEC958_SUBFRAME
+};
+enum {
+  VIRTIO_SND_PCM_RATE_5512 = 0,
+  VIRTIO_SND_PCM_RATE_8000,
+  VIRTIO_SND_PCM_RATE_11025,
+  VIRTIO_SND_PCM_RATE_16000,
+  VIRTIO_SND_PCM_RATE_22050,
+  VIRTIO_SND_PCM_RATE_32000,
+  VIRTIO_SND_PCM_RATE_44100,
+  VIRTIO_SND_PCM_RATE_48000,
+  VIRTIO_SND_PCM_RATE_64000,
+  VIRTIO_SND_PCM_RATE_88200,
+  VIRTIO_SND_PCM_RATE_96000,
+  VIRTIO_SND_PCM_RATE_176400,
+  VIRTIO_SND_PCM_RATE_192000,
+  VIRTIO_SND_PCM_RATE_384000
+};
+struct virtio_snd_pcm_info {
+  struct virtio_snd_info hdr;
+  __le32 features;
+  __le64 formats;
+  __le64 rates;
+  __u8 direction;
+  __u8 channels_min;
+  __u8 channels_max;
+  __u8 padding[5];
+};
+struct virtio_snd_pcm_set_params {
+  struct virtio_snd_pcm_hdr hdr;
+  __le32 buffer_bytes;
+  __le32 period_bytes;
+  __le32 features;
+  __u8 channels;
+  __u8 format;
+  __u8 rate;
+  __u8 padding;
+};
+struct virtio_snd_pcm_xfer {
+  __le32 stream_id;
+};
+struct virtio_snd_pcm_status {
+  __le32 status;
+  __le32 latency_bytes;
+};
+struct virtio_snd_chmap_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 chmap_id;
+};
+enum {
+  VIRTIO_SND_CHMAP_NONE = 0,
+  VIRTIO_SND_CHMAP_NA,
+  VIRTIO_SND_CHMAP_MONO,
+  VIRTIO_SND_CHMAP_FL,
+  VIRTIO_SND_CHMAP_FR,
+  VIRTIO_SND_CHMAP_RL,
+  VIRTIO_SND_CHMAP_RR,
+  VIRTIO_SND_CHMAP_FC,
+  VIRTIO_SND_CHMAP_LFE,
+  VIRTIO_SND_CHMAP_SL,
+  VIRTIO_SND_CHMAP_SR,
+  VIRTIO_SND_CHMAP_RC,
+  VIRTIO_SND_CHMAP_FLC,
+  VIRTIO_SND_CHMAP_FRC,
+  VIRTIO_SND_CHMAP_RLC,
+  VIRTIO_SND_CHMAP_RRC,
+  VIRTIO_SND_CHMAP_FLW,
+  VIRTIO_SND_CHMAP_FRW,
+  VIRTIO_SND_CHMAP_FLH,
+  VIRTIO_SND_CHMAP_FCH,
+  VIRTIO_SND_CHMAP_FRH,
+  VIRTIO_SND_CHMAP_TC,
+  VIRTIO_SND_CHMAP_TFL,
+  VIRTIO_SND_CHMAP_TFR,
+  VIRTIO_SND_CHMAP_TFC,
+  VIRTIO_SND_CHMAP_TRL,
+  VIRTIO_SND_CHMAP_TRR,
+  VIRTIO_SND_CHMAP_TRC,
+  VIRTIO_SND_CHMAP_TFLC,
+  VIRTIO_SND_CHMAP_TFRC,
+  VIRTIO_SND_CHMAP_TSL,
+  VIRTIO_SND_CHMAP_TSR,
+  VIRTIO_SND_CHMAP_LLFE,
+  VIRTIO_SND_CHMAP_RLFE,
+  VIRTIO_SND_CHMAP_BC,
+  VIRTIO_SND_CHMAP_BLC,
+  VIRTIO_SND_CHMAP_BRC
+};
+#define VIRTIO_SND_CHMAP_MAX_SIZE 18
+struct virtio_snd_chmap_info {
+  struct virtio_snd_info hdr;
+  __u8 direction;
+  __u8 channels;
+  __u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE];
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
index 7a9e259..73b5d49 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
@@ -21,6 +21,7 @@
 #include <linux/types.h>
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
+#define VIRTIO_VSOCK_F_SEQPACKET 1
 struct virtio_vsock_config {
   __le64 guest_cid;
 } __attribute__((packed));
@@ -44,6 +45,7 @@
 } __attribute__((packed));
 enum virtio_vsock_type {
   VIRTIO_VSOCK_TYPE_STREAM = 1,
+  VIRTIO_VSOCK_TYPE_SEQPACKET = 2,
 };
 enum virtio_vsock_op {
   VIRTIO_VSOCK_OP_INVALID = 0,
@@ -59,4 +61,8 @@
   VIRTIO_VSOCK_SHUTDOWN_RCV = 1,
   VIRTIO_VSOCK_SHUTDOWN_SEND = 2,
 };
+enum virtio_vsock_rw {
+  VIRTIO_VSOCK_SEQ_EOM = 1,
+  VIRTIO_VSOCK_SEQ_EOR = 2,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vm_sockets.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
index 50e8456..58f720d 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
@@ -25,8 +25,14 @@
 #define SO_VM_SOCKETS_BUFFER_MAX_SIZE 2
 #define SO_VM_SOCKETS_PEER_HOST_VM_ID 3
 #define SO_VM_SOCKETS_TRUSTED 5
-#define SO_VM_SOCKETS_CONNECT_TIMEOUT 6
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD 6
 #define SO_VM_SOCKETS_NONBLOCK_TXRX 7
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW 8
+#if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD
+#else
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD : SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW)
+#endif
 #define VMADDR_CID_ANY - 1U
 #define VMADDR_PORT_ANY - 1U
 #define VMADDR_CID_HYPERVISOR 0
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/wwan.h
similarity index 81%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/wwan.h
index bb45c3d..9f68713 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/wwan.h
@@ -16,14 +16,12 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_WWAN_H_
+#define _UAPI_WWAN_H_
+enum {
+  IFLA_WWAN_UNSPEC,
+  IFLA_WWAN_LINK_ID,
+  __IFLA_WWAN_MAX
 };
+#define IFLA_WWAN_MAX (__IFLA_WWAN_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/xfrm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/xfrm.h
index b0e930c..f4df95f 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/xfrm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/linux/xfrm.h
@@ -182,6 +182,10 @@
 #define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO
   XFRM_MSG_MAPPING,
 #define XFRM_MSG_MAPPING XFRM_MSG_MAPPING
+  XFRM_MSG_SETDEFAULT,
+#define XFRM_MSG_SETDEFAULT XFRM_MSG_SETDEFAULT
+  XFRM_MSG_GETDEFAULT,
+#define XFRM_MSG_GETDEFAULT XFRM_MSG_GETDEFAULT
   __XFRM_MSG_MAX
 };
 #define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1)
@@ -261,6 +265,7 @@
   XFRMA_SET_MARK,
   XFRMA_SET_MARK_MASK,
   XFRMA_IF_ID,
+  XFRMA_MTIMER_THRESH,
   __XFRMA_MAX
 #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK
 #define XFRMA_MAX (__XFRMA_MAX - 1)
@@ -430,6 +435,14 @@
 };
 #define XFRM_OFFLOAD_IPV6 1
 #define XFRM_OFFLOAD_INBOUND 2
+struct xfrm_userpolicy_default {
+#define XFRM_USERPOLICY_UNSPEC 0
+#define XFRM_USERPOLICY_BLOCK 1
+#define XFRM_USERPOLICY_ACCEPT 2
+  __u8 in;
+  __u8 fwd;
+  __u8 out;
+};
 #define XFRMGRP_ACQUIRE 1
 #define XFRMGRP_EXPIRE 2
 #define XFRMGRP_SA 4
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/misc/habanalabs.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/misc/habanalabs.h
index b009023..6e3439a 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/misc/habanalabs.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/misc/habanalabs.h
@@ -208,11 +208,43 @@
   GAUDI_ENGINE_ID_NIC_9,
   GAUDI_ENGINE_ID_SIZE
 };
+enum hl_goya_pll_index {
+  HL_GOYA_CPU_PLL = 0,
+  HL_GOYA_IC_PLL,
+  HL_GOYA_MC_PLL,
+  HL_GOYA_MME_PLL,
+  HL_GOYA_PCI_PLL,
+  HL_GOYA_EMMC_PLL,
+  HL_GOYA_TPC_PLL,
+  HL_GOYA_PLL_MAX
+};
+enum hl_gaudi_pll_index {
+  HL_GAUDI_CPU_PLL = 0,
+  HL_GAUDI_PCI_PLL,
+  HL_GAUDI_SRAM_PLL,
+  HL_GAUDI_HBM_PLL,
+  HL_GAUDI_NIC_PLL,
+  HL_GAUDI_DMA_PLL,
+  HL_GAUDI_MESH_PLL,
+  HL_GAUDI_MME_PLL,
+  HL_GAUDI_TPC_PLL,
+  HL_GAUDI_IF_PLL,
+  HL_GAUDI_PLL_MAX
+};
 enum hl_device_status {
   HL_DEVICE_STATUS_OPERATIONAL,
   HL_DEVICE_STATUS_IN_RESET,
   HL_DEVICE_STATUS_MALFUNCTION,
-  HL_DEVICE_STATUS_NEEDS_RESET
+  HL_DEVICE_STATUS_NEEDS_RESET,
+  HL_DEVICE_STATUS_IN_DEVICE_CREATION,
+  HL_DEVICE_STATUS_LAST = HL_DEVICE_STATUS_IN_DEVICE_CREATION
+};
+enum hl_server_type {
+  HL_SERVER_TYPE_UNKNOWN = 0,
+  HL_SERVER_GAUDI_HLS1 = 1,
+  HL_SERVER_GAUDI_HLS1H = 2,
+  HL_SERVER_GAUDI_TYPE1 = 3,
+  HL_SERVER_GAUDI_TYPE2 = 4
 };
 #define HL_INFO_HW_IP_INFO 0
 #define HL_INFO_HW_EVENTS 1
@@ -230,6 +262,13 @@
 #define HL_INFO_SYNC_MANAGER 14
 #define HL_INFO_TOTAL_ENERGY 15
 #define HL_INFO_PLL_FREQUENCY 16
+#define HL_INFO_POWER 17
+#define HL_INFO_OPEN_STATS 18
+#define HL_INFO_DRAM_REPLACED_ROWS 21
+#define HL_INFO_DRAM_PENDING_ROWS 22
+#define HL_INFO_LAST_ERR_OPEN_DEV_TIME 23
+#define HL_INFO_CS_TIMEOUT_EVENT 24
+#define HL_INFO_RAZWI_EVENT 25
 #define HL_INFO_VERSION_MAX_LEN 128
 #define HL_INFO_CARD_NAME_MAX_LEN 16
 struct hl_info_hw_ip_info {
@@ -242,7 +281,7 @@
   __u32 module_id;
   __u32 reserved;
   __u16 first_available_interrupt_id;
-  __u16 reserved2;
+  __u16 server_type;
   __u32 cpld_version;
   __u32 psoc_pci_pll_nr;
   __u32 psoc_pci_pll_nf;
@@ -253,7 +292,7 @@
   __u8 pad[2];
   __u8 cpucp_version[HL_INFO_VERSION_MAX_LEN];
   __u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
-  __u64 reserved3;
+  __u64 reserved2;
   __u64 dram_page_size;
 };
 struct hl_info_dram_usage {
@@ -291,10 +330,18 @@
   __u64 tx_throughput;
   __u64 replay_cnt;
 };
-#define HL_CLK_THROTTLE_POWER 0x1
-#define HL_CLK_THROTTLE_THERMAL 0x2
+enum hl_clk_throttling_type {
+  HL_CLK_THROTTLE_TYPE_POWER,
+  HL_CLK_THROTTLE_TYPE_THERMAL,
+  HL_CLK_THROTTLE_TYPE_MAX
+};
+#define HL_CLK_THROTTLE_POWER (1 << HL_CLK_THROTTLE_TYPE_POWER)
+#define HL_CLK_THROTTLE_THERMAL (1 << HL_CLK_THROTTLE_TYPE_THERMAL)
 struct hl_info_clk_throttle {
   __u32 clk_throttling_reason;
+  __u32 pad;
+  __u64 clk_throttling_timestamp_us[HL_CLK_THROTTLE_TYPE_MAX];
+  __u64 clk_throttling_duration_ns[HL_CLK_THROTTLE_TYPE_MAX];
 };
 struct hl_info_energy {
   __u64 total_energy_consumption;
@@ -303,6 +350,13 @@
 struct hl_pll_frequency_info {
   __u16 output[HL_PLL_NUM_OUTPUTS];
 };
+struct hl_open_stats_info {
+  __u64 open_counter;
+  __u64 last_open_period_ms;
+};
+struct hl_power_info {
+  __u64 power;
+};
 struct hl_info_sync_manager {
   __u32 first_available_sync_object;
   __u32 first_available_monitor;
@@ -323,6 +377,24 @@
   __u64 total_validation_drop_cnt;
   __u64 ctx_validation_drop_cnt;
 };
+struct hl_info_last_err_open_dev_time {
+  __s64 timestamp;
+};
+struct hl_info_cs_timeout_event {
+  __s64 timestamp;
+  __u64 seq;
+};
+#define HL_RAZWI_PAGE_FAULT 0
+#define HL_RAZWI_MMU_ACCESS_ERROR 1
+struct hl_info_razwi_event {
+  __s64 timestamp;
+  __u64 addr;
+  __u16 engine_id_1;
+  __u16 engine_id_2;
+  __u8 no_engine_id;
+  __u8 error_type;
+  __u8 pad[2];
+};
 enum gaudi_dcores {
   HL_GAUDI_WS_DCORE,
   HL_GAUDI_WN_DCORE,
@@ -346,6 +418,7 @@
 #define HL_CB_OP_INFO 2
 #define HL_MAX_CB_SIZE (0x200000 - 32)
 #define HL_CB_FLAGS_MAP 0x1
+#define HL_CB_FLAGS_GET_DEVICE_VA 0x2
 struct hl_cb_in {
   __u64 cb_handle;
   __u32 op;
@@ -356,9 +429,12 @@
 struct hl_cb_out {
   union {
     __u64 cb_handle;
-    struct {
-      __u32 usage_cnt;
-      __u32 pad;
+    union {
+      struct {
+        __u32 usage_cnt;
+        __u32 pad;
+      };
+      __u64 device_va;
     };
   };
 };
@@ -371,11 +447,13 @@
   union {
     __u64 cb_handle;
     __u64 signal_seq_arr;
+    __u64 encaps_signal_seq;
   };
   __u32 queue_index;
   union {
     __u32 cb_size;
     __u32 num_signal_seq_arr;
+    __u32 encaps_signal_offset;
   };
   __u32 cs_chunk_flags;
   __u32 collective_engine_id;
@@ -389,47 +467,89 @@
 #define HL_CS_FLAGS_STAGED_SUBMISSION 0x40
 #define HL_CS_FLAGS_STAGED_SUBMISSION_FIRST 0x80
 #define HL_CS_FLAGS_STAGED_SUBMISSION_LAST 0x100
+#define HL_CS_FLAGS_CUSTOM_TIMEOUT 0x200
+#define HL_CS_FLAGS_SKIP_RESET_ON_TIMEOUT 0x400
+#define HL_CS_FLAGS_ENCAP_SIGNALS 0x800
+#define HL_CS_FLAGS_RESERVE_SIGNALS_ONLY 0x1000
+#define HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY 0x2000
 #define HL_CS_STATUS_SUCCESS 0
 #define HL_MAX_JOBS_PER_CS 512
 struct hl_cs_in {
   __u64 chunks_restore;
   __u64 chunks_execute;
   union {
-    __u64 chunks_store;
     __u64 seq;
+    __u32 encaps_sig_handle_id;
+    struct {
+      __u32 encaps_signals_count;
+      __u32 encaps_signals_q_idx;
+    };
   };
   __u32 num_chunks_restore;
   __u32 num_chunks_execute;
-  __u32 num_chunks_store;
+  __u32 timeout;
   __u32 cs_flags;
   __u32 ctx_id;
 };
 struct hl_cs_out {
-  __u64 seq;
+  union {
+    __u64 seq;
+    struct {
+      __u32 handle_id;
+      __u32 count;
+    };
+  };
   __u32 status;
-  __u32 pad;
+  __u32 sob_base_addr_offset;
+  __u16 sob_count_before_submission;
+  __u16 pad[3];
 };
 union hl_cs_args {
   struct hl_cs_in in;
   struct hl_cs_out out;
 };
+#define HL_WAIT_CS_FLAGS_INTERRUPT 0x2
+#define HL_WAIT_CS_FLAGS_INTERRUPT_MASK 0xFFF00000
+#define HL_WAIT_CS_FLAGS_MULTI_CS 0x4
+#define HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ 0x10
+#define HL_WAIT_MULTI_CS_LIST_MAX_LEN 32
 struct hl_wait_cs_in {
-  __u64 seq;
-  __u64 timeout_us;
+  union {
+    struct {
+      __u64 seq;
+      __u64 timeout_us;
+    };
+    struct {
+      union {
+        __u64 addr;
+        __u64 cq_counters_handle;
+      };
+      __u64 target;
+    };
+  };
   __u32 ctx_id;
-  __u32 pad;
+  __u32 flags;
+  union {
+    struct {
+      __u8 seq_arr_len;
+      __u8 pad[7];
+    };
+    __u64 interrupt_timeout_us;
+  };
+  __u64 cq_counters_offset;
 };
 #define HL_WAIT_CS_STATUS_COMPLETED 0
 #define HL_WAIT_CS_STATUS_BUSY 1
 #define HL_WAIT_CS_STATUS_TIMEDOUT 2
 #define HL_WAIT_CS_STATUS_ABORTED 3
-#define HL_WAIT_CS_STATUS_INTERRUPTED 4
 #define HL_WAIT_CS_STATUS_FLAG_GONE 0x1
 #define HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD 0x2
 struct hl_wait_cs_out {
   __u32 status;
   __u32 flags;
   __s64 timestamp_nsec;
+  __u32 cs_completion_map;
+  __u32 pad;
 };
 union hl_wait_cs_args {
   struct hl_wait_cs_in in;
@@ -440,9 +560,11 @@
 #define HL_MEM_OP_MAP 2
 #define HL_MEM_OP_UNMAP 3
 #define HL_MEM_OP_MAP_BLOCK 4
+#define HL_MEM_OP_EXPORT_DMABUF_FD 5
 #define HL_MEM_CONTIGUOUS 0x1
 #define HL_MEM_SHARED 0x2
 #define HL_MEM_USERPTR 0x4
+#define HL_MEM_FORCE_HINT 0x8
 struct hl_mem_in {
   union {
     struct {
@@ -466,6 +588,10 @@
     struct {
       __u64 device_virt_addr;
     } unmap;
+    struct {
+      __u64 handle;
+      __u64 mem_size;
+    } export_dmabuf_fd;
   };
   __u32 op;
   __u32 flags;
@@ -481,6 +607,7 @@
       __u32 block_size;
       __u32 pad;
     };
+    __s32 fd;
   };
 };
 union hl_mem_args {
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
index 49d9f6a..87757a9 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
@@ -25,5 +25,6 @@
 };
 #define HISI_QM_API_VER_BASE "hisi_qm_v1"
 #define HISI_QM_API_VER2_BASE "hisi_qm_v2"
+#define HISI_QM_API_VER3_BASE "hisi_qm_v3"
 #define UACCE_CMD_QM_SET_QP_CTX _IOWR('H', 10, struct hisi_qp_ctx)
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
index 680ac1e..50ae565 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
@@ -121,6 +121,7 @@
 #define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64)
 #define MEMISLOCKED _IOR('M', 23, struct erase_info_user)
 #define MEMWRITE _IOWR('M', 24, struct mtd_write_req)
+#define OTPERASE _IOW('M', 25, struct otp_info)
 struct nand_oobinfo {
   __u32 useecc;
   __u32 eccbytes;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
index 3e45dc3..62ba685 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
@@ -24,7 +24,13 @@
 #define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
 #define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
 enum {
-  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
+  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL,
+  BNXT_RE_UCNTX_CMASK_HAVE_MODE = 0x02ULL,
+};
+enum bnxt_re_wqe_mode {
+  BNXT_QPLIB_WQE_MODE_STATIC = 0x00,
+  BNXT_QPLIB_WQE_MODE_VARIABLE = 0x01,
+  BNXT_QPLIB_WQE_MODE_INVALID = 0x02,
 };
 struct bnxt_re_uctx_resp {
   __u32 dev_id;
@@ -36,6 +42,8 @@
   __aligned_u64 comp_mask;
   __u32 chip_id0;
   __u32 chip_id1;
+  __u32 mode;
+  __u32 rsvd1;
 };
 struct bnxt_re_pd_resp {
   __u32 pdid;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/efa-abi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
index f20e3e0..4b6842b 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
@@ -47,11 +47,18 @@
   __u16 pdn;
   __u8 reserved_30[2];
 };
+enum {
+  EFA_CREATE_CQ_WITH_COMPLETION_CHANNEL = 1 << 0,
+};
 struct efa_ibv_create_cq {
   __u32 comp_mask;
   __u32 cq_entry_size;
   __u16 num_sub_cqs;
-  __u8 reserved_50[6];
+  __u8 flags;
+  __u8 reserved_58[5];
+};
+enum {
+  EFA_CREATE_CQ_RESP_DB_OFF = 1 << 0,
 };
 struct efa_ibv_create_cq_resp {
   __u32 comp_mask;
@@ -59,7 +66,9 @@
   __aligned_u64 q_mmap_key;
   __aligned_u64 q_mmap_size;
   __u16 cq_idx;
-  __u8 reserved_d0[6];
+  __u8 reserved_d0[2];
+  __u32 db_off;
+  __aligned_u64 db_mmap_key;
 };
 enum {
   EFA_QP_DRIVER_TYPE_SRD = 0,
@@ -92,6 +101,7 @@
 enum {
   EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
   EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1,
+  EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2,
 };
 struct efa_ibv_ex_query_device_resp {
   __u32 comp_mask;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/hns-abi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
index ad3e460..9c8d028 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
@@ -54,13 +54,17 @@
   HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0,
   HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1,
   HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2,
+  HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5,
 };
 struct hns_roce_ib_create_qp_resp {
   __aligned_u64 cap_flags;
+  __aligned_u64 dwqe_mmap_key;
 };
 struct hns_roce_ib_alloc_ucontext_resp {
   __u32 qp_tab_size;
   __u32 cqe_size;
+  __u32 srq_tab_size;
+  __u32 reserved;
 };
 struct hns_roce_ib_alloc_pd_resp {
   __u32 pdn;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h
deleted file mode 100644
index 60a17f5..0000000
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h
+++ /dev/null
@@ -1,75 +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 I40IW_ABI_H
-#define I40IW_ABI_H
-#include <linux/types.h>
-#define I40IW_ABI_VER 5
-struct i40iw_alloc_ucontext_req {
-  __u32 reserved32;
-  __u8 userspace_ver;
-  __u8 reserved8[3];
-};
-struct i40iw_alloc_ucontext_resp {
-  __u32 max_pds;
-  __u32 max_qps;
-  __u32 wq_size;
-  __u8 kernel_ver;
-  __u8 reserved[3];
-};
-struct i40iw_alloc_pd_resp {
-  __u32 pd_id;
-  __u8 reserved[4];
-};
-struct i40iw_create_cq_req {
-  __aligned_u64 user_cq_buffer;
-  __aligned_u64 user_shadow_area;
-};
-struct i40iw_create_qp_req {
-  __aligned_u64 user_wqe_buffers;
-  __aligned_u64 user_compl_ctx;
-  __aligned_u64 user_sq_phb;
-  __aligned_u64 user_rq_phb;
-};
-enum i40iw_memreg_type {
-  IW_MEMREG_TYPE_MEM = 0x0000,
-  IW_MEMREG_TYPE_QP = 0x0001,
-  IW_MEMREG_TYPE_CQ = 0x0002,
-};
-struct i40iw_mem_reg_req {
-  __u16 reg_type;
-  __u16 cq_pages;
-  __u16 rq_pages;
-  __u16 sq_pages;
-};
-struct i40iw_create_cq_resp {
-  __u32 cq_id;
-  __u32 cq_size;
-  __u32 mmap_db_index;
-  __u32 reserved;
-};
-struct i40iw_create_qp_resp {
-  __u32 qp_id;
-  __u32 actual_sq_size;
-  __u32 actual_rq_size;
-  __u32 i40iw_drv_opt;
-  __u16 push_idx;
-  __u8 lsmm;
-  __u8 rsvd2;
-};
-#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
index c443738..3b94907 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
@@ -181,6 +181,7 @@
   RDMA_DRIVER_OCRDMA,
   RDMA_DRIVER_NES,
   RDMA_DRIVER_I40IW,
+  RDMA_DRIVER_IRDMA = RDMA_DRIVER_I40IW,
   RDMA_DRIVER_VMW_PVRDMA,
   RDMA_DRIVER_QEDR,
   RDMA_DRIVER_HNS,
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
index dadb590..04b9f08 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
@@ -61,7 +61,7 @@
 };
 struct ib_user_mad {
   struct ib_user_mad_hdr hdr;
-  __aligned_u64 data[0];
+  __aligned_u64 data[];
 };
 typedef unsigned long __attribute__((aligned(4))) packed_ulong;
 #define IB_USER_MAD_LONGS_PER_METHOD_MASK (128 / (8 * sizeof(long)))
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h
new file mode 100644
index 0000000..b6840cf
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h
@@ -0,0 +1,103 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 IRDMA_ABI_H
+#define IRDMA_ABI_H
+#include <linux/types.h>
+#define IRDMA_ABI_VER 5
+enum irdma_memreg_type {
+  IRDMA_MEMREG_TYPE_MEM = 0,
+  IRDMA_MEMREG_TYPE_QP = 1,
+  IRDMA_MEMREG_TYPE_CQ = 2,
+};
+struct irdma_alloc_ucontext_req {
+  __u32 rsvd32;
+  __u8 userspace_ver;
+  __u8 rsvd8[3];
+};
+struct irdma_alloc_ucontext_resp {
+  __u32 max_pds;
+  __u32 max_qps;
+  __u32 wq_size;
+  __u8 kernel_ver;
+  __u8 rsvd[3];
+  __aligned_u64 feature_flags;
+  __aligned_u64 db_mmap_key;
+  __u32 max_hw_wq_frags;
+  __u32 max_hw_read_sges;
+  __u32 max_hw_inline;
+  __u32 max_hw_rq_quanta;
+  __u32 max_hw_wq_quanta;
+  __u32 min_hw_cq_size;
+  __u32 max_hw_cq_size;
+  __u16 max_hw_sq_chunk;
+  __u8 hw_rev;
+  __u8 rsvd2;
+};
+struct irdma_alloc_pd_resp {
+  __u32 pd_id;
+  __u8 rsvd[4];
+};
+struct irdma_resize_cq_req {
+  __aligned_u64 user_cq_buffer;
+};
+struct irdma_create_cq_req {
+  __aligned_u64 user_cq_buf;
+  __aligned_u64 user_shadow_area;
+};
+struct irdma_create_qp_req {
+  __aligned_u64 user_wqe_bufs;
+  __aligned_u64 user_compl_ctx;
+};
+struct irdma_mem_reg_req {
+  __u16 reg_type;
+  __u16 cq_pages;
+  __u16 rq_pages;
+  __u16 sq_pages;
+};
+struct irdma_modify_qp_req {
+  __u8 sq_flush;
+  __u8 rq_flush;
+  __u8 rsvd[6];
+};
+struct irdma_create_cq_resp {
+  __u32 cq_id;
+  __u32 cq_size;
+};
+struct irdma_create_qp_resp {
+  __u32 qp_id;
+  __u32 actual_sq_size;
+  __u32 actual_rq_size;
+  __u32 irdma_drv_opt;
+  __u16 push_idx;
+  __u8 lsmm;
+  __u8 rsvd;
+  __u32 qp_caps;
+};
+struct irdma_modify_qp_resp {
+  __aligned_u64 push_wqe_mmap_key;
+  __aligned_u64 push_db_mmap_key;
+  __u16 push_offset;
+  __u8 push_valid;
+  __u8 rsvd[5];
+};
+struct irdma_create_ah_resp {
+  __u32 ah_id;
+  __u8 rsvd[4];
+};
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
index 59a9f53..aadb20e 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
@@ -33,6 +33,7 @@
   MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
   MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9,
   MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10,
+  MLX5_QP_FLAG_DCI_STREAM = 1 << 11,
 };
 enum {
   MLX5_SRQ_FLAG_SIGNATURE = 1 << 0,
@@ -67,6 +68,8 @@
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1,
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2,
+  MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3,
+  MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4,
 };
 enum mlx5_user_cmds_supp_uhw {
   MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0,
@@ -163,6 +166,10 @@
   __u32 supported_qpts;
   __u32 reserved;
 };
+struct mlx5_ib_dci_streams_caps {
+  __u8 max_log_num_concurent;
+  __u8 max_log_num_errored;
+};
 enum mlx5_ib_query_dev_resp_flags {
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1,
@@ -188,11 +195,13 @@
   struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
   struct mlx5_ib_striding_rq_caps striding_rq_caps;
   __u32 tunnel_offloads_caps;
-  __u32 reserved;
+  struct mlx5_ib_dci_streams_caps dci_streams_caps;
+  __u16 reserved;
 };
 enum mlx5_ib_create_cq_flags {
   MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
   MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1,
+  MLX5_IB_CREATE_CQ_FLAGS_REAL_TIME_TS = 1 << 2,
 };
 struct mlx5_ib_create_cq {
   __aligned_u64 buf_addr;
@@ -227,6 +236,10 @@
   __u32 srqn;
   __u32 reserved;
 };
+struct mlx5_ib_create_qp_dci_streams {
+  __u8 log_num_concurent;
+  __u8 log_num_errored;
+};
 struct mlx5_ib_create_qp {
   __aligned_u64 buf_addr;
   __aligned_u64 db_addr;
@@ -241,7 +254,8 @@
     __aligned_u64 access_key;
   };
   __u32 ece_options;
-  __u32 reserved;
+  struct mlx5_ib_create_qp_dci_streams dci_streams;
+  __u16 reserved;
 };
 enum mlx5_rx_hash_function_flags {
   MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
index 804a90b..862abcb 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -23,6 +23,22 @@
 enum mlx5_ib_create_flow_action_attrs {
   MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_dm_methods {
+  MLX5_IB_METHOD_DM_MAP_OP_ADDR = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_METHOD_DM_QUERY,
+};
+enum mlx5_ib_dm_map_op_addr_attrs {
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_OP,
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_START_OFFSET,
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_PAGE_INDEX,
+};
+enum mlx5_ib_query_dm_attrs {
+  MLX5_IB_ATTR_QUERY_DM_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_QUERY_DM_RESP_START_OFFSET,
+  MLX5_IB_ATTR_QUERY_DM_RESP_PAGE_INDEX,
+  MLX5_IB_ATTR_QUERY_DM_RESP_LENGTH,
+};
 enum mlx5_ib_alloc_dm_attrs {
   MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
   MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
@@ -118,6 +134,7 @@
   MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
   MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
   MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
+  MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP,
 };
 enum mlx5_ib_devx_umem_dereg_attrs {
   MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
@@ -181,7 +198,7 @@
 enum mlx5_ib_device_query_context_attrs {
   MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
 };
-#define MLX5_IB_DW_MATCH_PARAM 0x90
+#define MLX5_IB_DW_MATCH_PARAM 0xA0
 struct mlx5_ib_match_params {
   __u32 match_params[MLX5_IB_DW_MATCH_PARAM];
 };
@@ -236,4 +253,11 @@
 enum mlx5_ib_pd_methods {
   MLX5_IB_METHOD_PD_QUERY = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_device_methods {
+  MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum mlx5_ib_query_port_attrs {
+  MLX5_IB_ATTR_QUERY_PORT_PORT_NUM = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_QUERY_PORT,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
index bfbfd76..c3c3f89 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -58,4 +58,26 @@
   MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF = 0x0,
   MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1,
 };
+enum mlx5_ib_uapi_query_port_flags {
+  MLX5_IB_UAPI_QUERY_PORT_VPORT = 1 << 0,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_VHCA_ID = 1 << 1,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_RX = 1 << 2,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_TX = 1 << 3,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_REG_C0 = 1 << 4,
+  MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID = 1 << 5,
+};
+struct mlx5_ib_uapi_reg {
+  __u32 value;
+  __u32 mask;
+};
+struct mlx5_ib_uapi_query_port {
+  __aligned_u64 flags;
+  __u16 vport;
+  __u16 vport_vhca_id;
+  __u16 esw_owner_vhca_id;
+  __u16 rsvd0;
+  __aligned_u64 vport_steering_icm_rx;
+  __aligned_u64 vport_steering_icm_tx;
+  struct mlx5_ib_uapi_reg reg_c0;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
index 48444da..bdb5fdd 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
@@ -207,6 +207,9 @@
   RDMA_NLDEV_CMD_RES_QP_GET_RAW,
   RDMA_NLDEV_CMD_RES_CQ_GET_RAW,
   RDMA_NLDEV_CMD_RES_MR_GET_RAW,
+  RDMA_NLDEV_CMD_RES_CTX_GET,
+  RDMA_NLDEV_CMD_RES_SRQ_GET,
+  RDMA_NLDEV_CMD_STAT_GET_STATUS,
   RDMA_NLDEV_NUM_OPS
 };
 enum rdma_nldev_print_type {
@@ -301,6 +304,16 @@
   RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY_VALUE,
   RDMA_NLDEV_ATTR_DEV_DIM,
   RDMA_NLDEV_ATTR_RES_RAW,
+  RDMA_NLDEV_ATTR_RES_CTX,
+  RDMA_NLDEV_ATTR_RES_CTX_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SRQ,
+  RDMA_NLDEV_ATTR_RES_SRQ_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SRQN,
+  RDMA_NLDEV_ATTR_MIN_RANGE,
+  RDMA_NLDEV_ATTR_MAX_RANGE,
+  RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK,
+  RDMA_NLDEV_ATTR_STAT_HWCOUNTER_INDEX,
+  RDMA_NLDEV_ATTR_STAT_HWCOUNTER_DYNAMIC,
   RDMA_NLDEV_ATTR_MAX
 };
 enum rdma_nl_counter_mode {
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
index 9618734..7b1f7ee 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
@@ -88,7 +88,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 reserved;
-  struct sockaddr_storage addr;
+  struct __kernel_sockaddr_storage addr;
 };
 struct rdma_ucm_resolve_ip {
   struct sockaddr_in6 src_addr;
@@ -102,8 +102,8 @@
   __u16 src_size;
   __u16 dst_size;
   __u32 reserved;
-  struct sockaddr_storage src_addr;
-  struct sockaddr_storage dst_addr;
+  struct __kernel_sockaddr_storage src_addr;
+  struct __kernel_sockaddr_storage dst_addr;
 };
 struct rdma_ucm_resolve_route {
   __u32 id;
@@ -137,8 +137,8 @@
   __u16 pkey;
   __u16 src_size;
   __u16 dst_size;
-  struct sockaddr_storage src_addr;
-  struct sockaddr_storage dst_addr;
+  struct __kernel_sockaddr_storage src_addr;
+  struct __kernel_sockaddr_storage dst_addr;
   __u32 ibdev_index;
   __u32 reserved1;
 };
@@ -225,7 +225,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 join_flags;
-  struct sockaddr_storage addr;
+  struct __kernel_sockaddr_storage addr;
 };
 struct rdma_ucm_get_event {
   __aligned_u64 response;
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
index 9fd21d7..cdb00c7 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
@@ -76,15 +76,19 @@
       __u32 remote_qpn;
       __u32 remote_qkey;
       __u16 pkey_index;
+      __u16 reserved;
+      __u32 ah_num;
+      __u32 pad[4];
+      struct rxe_av av;
     } ud;
     struct {
-      union {
-        struct ib_mr * mr;
-        __aligned_u64 reserved;
-      };
-      __u32 key;
+      __aligned_u64 addr;
+      __aligned_u64 length;
+      __u32 mr_lkey;
+      __u32 mw_rkey;
+      __u32 rkey;
       __u32 access;
-    } reg;
+    } mw;
   } wr;
 };
 struct rxe_sge {
@@ -105,13 +109,12 @@
   __u32 sge_offset;
   __u32 reserved;
   union {
-    __u8 inline_data[0];
-    struct rxe_sge sge[0];
+    __DECLARE_FLEX_ARRAY(__u8, inline_data);
+    __DECLARE_FLEX_ARRAY(struct rxe_sge, sge);
   };
 };
 struct rxe_send_wqe {
   struct rxe_send_wr wr;
-  struct rxe_av av;
   __u32 status;
   __u32 state;
   __aligned_u64 iova;
@@ -129,6 +132,10 @@
   __u32 padding;
   struct rxe_dma_info dma;
 };
+struct rxe_create_ah_resp {
+  __u32 ah_num;
+  __u32 reserved;
+};
 struct rxe_create_cq_resp {
   struct mminfo mi;
 };
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
index f31e764..04ae5b8 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
@@ -42,6 +42,7 @@
   ELS_REC = 0x13,
   ELS_SRR = 0x14,
   ELS_FPIN = 0x16,
+  ELS_EDC = 0x17,
   ELS_RDP = 0x18,
   ELS_RDF = 0x19,
   ELS_PRLI = 0x20,
@@ -85,7 +86,7 @@
   ELS_LKA = 0x80,
   ELS_AUTH_ELS = 0x90,
 };
-#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_RDP] = "RDP",[ELS_RDF] = "RDF",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \
+#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_EDC] = "EDC",[ELS_RDP] = "RDP",[ELS_RDF] = "RDF",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \
 }
 struct fc_els_ls_acc {
   __u8 la_cmd;
@@ -128,13 +129,15 @@
 };
 enum fc_ls_tlv_dtag {
   ELS_DTAG_LS_REQ_INFO = 0x00000001,
+  ELS_DTAG_LNK_FAULT_CAP = 0x0001000D,
+  ELS_DTAG_CG_SIGNAL_CAP = 0x0001000F,
   ELS_DTAG_LNK_INTEGRITY = 0x00020001,
   ELS_DTAG_DELIVERY = 0x00020002,
   ELS_DTAG_PEER_CONGEST = 0x00020003,
   ELS_DTAG_CONGESTION = 0x00020004,
   ELS_DTAG_FPIN_REGISTER = 0x00030001,
 };
-#define FC_LS_TLV_DTAG_INIT { { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, { ELS_DTAG_CONGESTION, "Congestion Notification" }, { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
+#define FC_LS_TLV_DTAG_INIT { { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, { ELS_DTAG_LNK_FAULT_CAP, "Link Fault Capability" }, { ELS_DTAG_CG_SIGNAL_CAP, "Congestion Signaling Capability" }, { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, { ELS_DTAG_CONGESTION, "Congestion Notification" }, { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
 }
 struct fc_tlv_desc {
   __be32 desc_tag;
@@ -668,4 +671,48 @@
   struct fc_els_lsri_desc lsri;
   struct fc_tlv_desc desc[0];
 };
+struct fc_diag_lnkflt_desc {
+  __be32 desc_tag;
+  __be32 desc_len;
+  __be32 degrade_activate_threshold;
+  __be32 degrade_deactivate_threshold;
+  __be32 fec_degrade_interval;
+};
+enum fc_edc_cg_signal_cap_types {
+  EDC_CG_SIG_NOTSUPPORTED = 0x00,
+  EDC_CG_SIG_WARN_ONLY = 0x01,
+  EDC_CG_SIG_WARN_ALARM = 0x02,
+};
+#define FC_EDC_CG_SIGNAL_CAP_TYPES_INIT { { EDC_CG_SIG_NOTSUPPORTED, "Signaling Not Supported" }, { EDC_CG_SIG_WARN_ONLY, "Warning Signal" }, { EDC_CG_SIG_WARN_ALARM, "Warning and Alarm Signals" }, \
+}
+enum fc_diag_cg_sig_freq_types {
+  EDC_CG_SIGFREQ_CNT_MIN = 1,
+  EDC_CG_SIGFREQ_CNT_MAX = 999,
+  EDC_CG_SIGFREQ_SEC = 0x1,
+  EDC_CG_SIGFREQ_MSEC = 0x2,
+};
+struct fc_diag_cg_sig_freq {
+  __be16 count;
+  __be16 units;
+};
+struct fc_diag_cg_sig_desc {
+  __be32 desc_tag;
+  __be32 desc_len;
+  __be32 xmt_signal_capability;
+  struct fc_diag_cg_sig_freq xmt_signal_frequency;
+  __be32 rcv_signal_capability;
+  struct fc_diag_cg_sig_freq rcv_signal_frequency;
+};
+struct fc_els_edc {
+  __u8 edc_cmd;
+  __u8 edc_zero[3];
+  __be32 desc_len;
+  struct fc_tlv_desc desc[0];
+};
+struct fc_els_edc_resp {
+  struct fc_els_ls_acc acc_hdr;
+  __be32 desc_list_len;
+  struct fc_els_lsri_desc lsri;
+  struct fc_tlv_desc desc[0];
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/asoc.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/asoc.h
index c962603..eeb12b0 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/asoc.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/asoc.h
@@ -157,8 +157,8 @@
 struct snd_soc_tplg_private {
   __le32 size;
   union {
-    char data[0];
-    struct snd_soc_tplg_vendor_array array[0];
+    __DECLARE_FLEX_ARRAY(char, data);
+    __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_array, array);
   };
 } __attribute__((packed));
 struct snd_soc_tplg_tlv_dbscale {
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/asound.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/asound.h
index 397cccc..b0e47c1 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/asound.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/asound.h
@@ -32,8 +32,9 @@
 #define SNDRV_PROTOCOL_MINOR(version) (((version) >> 8) & 0xff)
 #define SNDRV_PROTOCOL_MICRO(version) ((version) & 0xff)
 #define SNDRV_PROTOCOL_INCOMPATIBLE(kversion,uversion) (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion)))
+#define AES_IEC958_STATUS_SIZE 24
 struct snd_aes_iec958 {
-  unsigned char status[24];
+  unsigned char status[AES_IEC958_STATUS_SIZE];
   unsigned char subcode[147];
   unsigned char pad;
   unsigned char dig_subframe[4];
@@ -234,6 +235,8 @@
 #define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME 0x02000000
 #define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME 0x04000000
 #define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000
+#define SNDRV_PCM_INFO_EXPLICIT_SYNC 0x10000000
+#define SNDRV_PCM_INFO_NO_REWINDS 0x20000000
 #define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000
 #define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000
 #if __BITS_PER_LONG == 32 && defined(__USE_TIME_BITS64)
@@ -562,7 +565,7 @@
 #define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern)
 #define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int)
 #define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61)
-#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 1)
+#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 2)
 enum {
   SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
   SNDRV_RAWMIDI_STREAM_INPUT,
@@ -584,12 +587,32 @@
   unsigned int subdevices_avail;
   unsigned char reserved[64];
 };
+#define SNDRV_RAWMIDI_MODE_FRAMING_MASK (7 << 0)
+#define SNDRV_RAWMIDI_MODE_FRAMING_SHIFT 0
+#define SNDRV_RAWMIDI_MODE_FRAMING_NONE (0 << 0)
+#define SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP (1 << 0)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MASK (7 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_SHIFT 3
+#define SNDRV_RAWMIDI_MODE_CLOCK_NONE (0 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_REALTIME (1 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC (2 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC_RAW (3 << 3)
+#define SNDRV_RAWMIDI_FRAMING_DATA_LENGTH 16
+struct snd_rawmidi_framing_tstamp {
+  __u8 frame_type;
+  __u8 length;
+  __u8 reserved[2];
+  __u32 tv_nsec;
+  __u64 tv_sec;
+  __u8 data[SNDRV_RAWMIDI_FRAMING_DATA_LENGTH];
+} __packed;
 struct snd_rawmidi_params {
   int stream;
   size_t buffer_size;
   size_t avail_min;
   unsigned int no_active_sensing : 1;
-  unsigned char reserved[16];
+  unsigned int mode;
+  unsigned char reserved[12];
 };
 struct snd_rawmidi_status {
   int stream;
@@ -601,6 +624,7 @@
 };
 #define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
 #define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
+#define SNDRV_RAWMIDI_IOCTL_USER_PVERSION _IOW('W', 0x02, int)
 #define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params)
 #define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status)
 #define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int)
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/firewire.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/firewire.h
index 67c010b..198a8f4 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/firewire.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/firewire.h
@@ -26,6 +26,7 @@
 #define SNDRV_FIREWIRE_EVENT_DIGI00X_MESSAGE 0x746e736c
 #define SNDRV_FIREWIRE_EVENT_MOTU_NOTIFICATION 0x64776479
 #define SNDRV_FIREWIRE_EVENT_TASCAM_CONTROL 0x7473636d
+#define SNDRV_FIREWIRE_EVENT_MOTU_REGISTER_DSP_CHANGE 0x4d545244
 struct snd_firewire_event_common {
   unsigned int type;
 };
@@ -68,6 +69,11 @@
   unsigned int type;
   struct snd_firewire_tascam_change changes[0];
 };
+struct snd_firewire_event_motu_register_dsp_change {
+  unsigned int type;
+  __u32 count;
+  __u32 changes[];
+};
 union snd_firewire_event {
   struct snd_firewire_event_common common;
   struct snd_firewire_event_lock_status lock_status;
@@ -76,11 +82,15 @@
   struct snd_firewire_event_digi00x_message digi00x_message;
   struct snd_firewire_event_tascam_control tascam_control;
   struct snd_firewire_event_motu_notification motu_notification;
+  struct snd_firewire_event_motu_register_dsp_change motu_register_dsp_change;
 };
 #define SNDRV_FIREWIRE_IOCTL_GET_INFO _IOR('H', 0xf8, struct snd_firewire_get_info)
 #define SNDRV_FIREWIRE_IOCTL_LOCK _IO('H', 0xf9)
 #define SNDRV_FIREWIRE_IOCTL_UNLOCK _IO('H', 0xfa)
 #define SNDRV_FIREWIRE_IOCTL_TASCAM_STATE _IOR('H', 0xfb, struct snd_firewire_tascam_state)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_METER _IOR('H', 0xfc, struct snd_firewire_motu_register_dsp_meter)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_COMMAND_DSP_METER _IOR('H', 0xfd, struct snd_firewire_motu_command_dsp_meter)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_PARAMETER _IOR('H', 0xfe, struct snd_firewire_motu_register_dsp_parameter)
 #define SNDRV_FIREWIRE_TYPE_DICE 1
 #define SNDRV_FIREWIRE_TYPE_FIREWORKS 2
 #define SNDRV_FIREWIRE_TYPE_BEBOB 3
@@ -99,4 +109,49 @@
 struct snd_firewire_tascam_state {
   __be32 data[SNDRV_FIREWIRE_TASCAM_STATE_COUNT];
 };
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT 24
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT 24
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT + SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT)
+struct snd_firewire_motu_register_dsp_meter {
+  __u8 data[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT];
+};
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT 4
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT 20
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT 10
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT + 2)
+struct snd_firewire_motu_register_dsp_parameter {
+  struct {
+    struct {
+      __u8 gain[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 pan[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 paired_balance[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 paired_width[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+    } source[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+    struct {
+      __u8 paired_volume[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+      __u8 paired_flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+    } output;
+  } mixer;
+  struct {
+    __u8 main_paired_volume;
+    __u8 hp_paired_volume;
+    __u8 hp_paired_assignment;
+    __u8 reserved[5];
+  } output;
+  struct {
+    __u8 boost_flag;
+    __u8 nominal_level_flag;
+    __u8 reserved[6];
+  } line_input;
+  struct {
+    __u8 gain_and_invert[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
+    __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
+  } input;
+  __u8 reserved[64];
+};
+#define SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT 400
+struct snd_firewire_motu_command_dsp_meter {
+  float data[SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT];
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h
new file mode 100644
index 0000000..39c0684
--- /dev/null
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __SND_AR_TOKENS_H__
+#define __SND_AR_TOKENS_H__
+#define APM_SUB_GRAPH_PERF_MODE_LOW_POWER 0x1
+#define APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY 0x2
+#define APM_SUB_GRAPH_DIRECTION_TX 0x1
+#define APM_SUB_GRAPH_DIRECTION_RX 0x2
+#define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK 0x1
+#define APM_SUB_GRAPH_SID_AUDIO_RECORD 0x2
+#define APM_SUB_GRAPH_SID_VOICE_CALL 0x3
+#define APM_CONTAINER_CAP_ID_PP 0x1
+#define APM_CONTAINER_CAP_ID_CD 0x2
+#define APM_CONTAINER_CAP_ID_EP 0x3
+#define APM_CONTAINER_CAP_ID_OLC 0x4
+#define APM_CONT_GRAPH_POS_STREAM 0x1
+#define APM_CONT_GRAPH_POS_PER_STR_PER_DEV 0x2
+#define APM_CONT_GRAPH_POS_STR_DEV 0x3
+#define APM_CONT_GRAPH_POS_GLOBAL_DEV 0x4
+#define APM_PROC_DOMAIN_ID_MDSP 0x1
+#define APM_PROC_DOMAIN_ID_ADSP 0x2
+#define APM_PROC_DOMAIN_ID_SDSP 0x4
+#define APM_PROC_DOMAIN_ID_CDSP 0x5
+#define PCM_INTERLEAVED 1
+#define PCM_DEINTERLEAVED_PACKED 2
+#define PCM_DEINTERLEAVED_UNPACKED 3
+#define AR_I2S_WS_SRC_EXTERNAL 0
+#define AR_I2S_WS_SRC_INTERNAL 1
+enum ar_event_types {
+  AR_EVENT_NONE = 0,
+  AR_PGA_DAPM_EVENT
+};
+#define SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX 256
+#define SND_SOC_AR_TPLG_VOL_CTL 257
+#define AR_TKN_DAI_INDEX 1
+#define AR_TKN_U32_SUB_GRAPH_INSTANCE_ID 2
+#define AR_TKN_U32_SUB_GRAPH_PERF_MODE 3
+#define AR_TKN_U32_SUB_GRAPH_DIRECTION 4
+#define AR_TKN_U32_SUB_GRAPH_SCENARIO_ID 5
+#define AR_TKN_U32_CONTAINER_INSTANCE_ID 100
+#define AR_TKN_U32_CONTAINER_CAPABILITY_ID 101
+#define AR_TKN_U32_CONTAINER_STACK_SIZE 102
+#define AR_TKN_U32_CONTAINER_GRAPH_POS 103
+#define AR_TKN_U32_CONTAINER_PROC_DOMAIN 104
+#define AR_TKN_U32_MODULE_ID 200
+#define AR_TKN_U32_MODULE_INSTANCE_ID 201
+#define AR_TKN_U32_MODULE_MAX_IP_PORTS 202
+#define AR_TKN_U32_MODULE_MAX_OP_PORTS 203
+#define AR_TKN_U32_MODULE_IN_PORTS 204
+#define AR_TKN_U32_MODULE_OUT_PORTS 205
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID 206
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID 207
+#define AR_TKN_U32_MODULE_SRC_INSTANCE_ID 208
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID 209
+#define AR_TKN_U32_MODULE_HW_IF_IDX 250
+#define AR_TKN_U32_MODULE_HW_IF_TYPE 251
+#define AR_TKN_U32_MODULE_FMT_INTERLEAVE 252
+#define AR_TKN_U32_MODULE_FMT_DATA 253
+#define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE 254
+#define AR_TKN_U32_MODULE_FMT_BIT_DEPTH 255
+#define AR_TKN_U32_MODULE_SD_LINE_IDX 256
+#define AR_TKN_U32_MODULE_WS_SRC 257
+#define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR 258
+#define AR_TKN_U32_MODULE_LOG_CODE 259
+#define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID 260
+#define AR_TKN_U32_MODULE_LOG_MODE 261
+#endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
index 85a99c7..bf012fa 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
@@ -97,6 +97,7 @@
   SKL_TKN_U32_ASTATE_COUNT,
   SKL_TKN_U32_ASTATE_KCPS,
   SKL_TKN_U32_ASTATE_CLK_SRC,
-  SKL_TKN_MAX = SKL_TKN_U32_ASTATE_CLK_SRC,
+  SKL_TKN_U32_FMT_CFG_IDX = 96,
+  SKL_TKN_MAX = SKL_TKN_U32_FMT_CFG_IDX,
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/sof/tokens.h b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
index ef62372..856281a 100644
--- a/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
+++ b/mainline/runtime/sdk/android/arm64/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
@@ -36,6 +36,7 @@
 #define SOF_TKN_SCHED_CORE 203
 #define SOF_TKN_SCHED_FRAMES 204
 #define SOF_TKN_SCHED_TIME_DOMAIN 205
+#define SOF_TKN_SCHED_DYNAMIC_PIPELINE 206
 #define SOF_TKN_VOLUME_RAMP_STEP_TYPE 250
 #define SOF_TKN_VOLUME_RAMP_STEP_MS 251
 #define SOF_TKN_SRC_RATE_IN 300
@@ -86,4 +87,7 @@
 #define SOF_TKN_INTEL_ALH_CH 1401
 #define SOF_TKN_INTEL_HDA_RATE 1500
 #define SOF_TKN_INTEL_HDA_CH 1501
+#define SOF_TKN_MEDIATEK_AFE_RATE 1600
+#define SOF_TKN_MEDIATEK_AFE_CH 1601
+#define SOF_TKN_MEDIATEK_AFE_FORMAT 1602
 #endif
diff --git a/mainline/runtime/sdk/android/arm64/lib/crtbegin_dynamic.o b/mainline/runtime/sdk/android/arm64/lib/crtbegin_dynamic.o
index a3ceeb6..258d0d4 100644
--- a/mainline/runtime/sdk/android/arm64/lib/crtbegin_dynamic.o
+++ b/mainline/runtime/sdk/android/arm64/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/lib/crtbegin_so.o b/mainline/runtime/sdk/android/arm64/lib/crtbegin_so.o
index f835f01..02905a6 100644
--- a/mainline/runtime/sdk/android/arm64/lib/crtbegin_so.o
+++ b/mainline/runtime/sdk/android/arm64/lib/crtbegin_so.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/lib/crtend.o b/mainline/runtime/sdk/android/arm64/lib/crtend.o
index 3b536d9..e682831 100644
--- a/mainline/runtime/sdk/android/arm64/lib/crtend.o
+++ b/mainline/runtime/sdk/android/arm64/lib/crtend.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/lib/crtend_so.o b/mainline/runtime/sdk/android/arm64/lib/crtend_so.o
index d1442d2..bee60d9 100644
--- a/mainline/runtime/sdk/android/arm64/lib/crtend_so.o
+++ b/mainline/runtime/sdk/android/arm64/lib/crtend_so.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/lib/libasync_safe.a b/mainline/runtime/sdk/android/arm64/lib/libasync_safe.a
index a55492d..89c3386 100644
--- a/mainline/runtime/sdk/android/arm64/lib/libasync_safe.a
+++ b/mainline/runtime/sdk/android/arm64/lib/libasync_safe.a
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/lib/libc.so b/mainline/runtime/sdk/android/arm64/lib/libc.so
index 239be77..3998a8e 100755
--- a/mainline/runtime/sdk/android/arm64/lib/libc.so
+++ b/mainline/runtime/sdk/android/arm64/lib/libc.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/lib/libdl.so b/mainline/runtime/sdk/android/arm64/lib/libdl.so
index 3ef2eb1..4021572 100755
--- a/mainline/runtime/sdk/android/arm64/lib/libdl.so
+++ b/mainline/runtime/sdk/android/arm64/lib/libdl.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/lib/libdl_android.so b/mainline/runtime/sdk/android/arm64/lib/libdl_android.so
index 790921c..112c53c 100755
--- a/mainline/runtime/sdk/android/arm64/lib/libdl_android.so
+++ b/mainline/runtime/sdk/android/arm64/lib/libdl_android.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/lib/libm.so b/mainline/runtime/sdk/android/arm64/lib/libm.so
index 6c61cce..309ad58 100755
--- a/mainline/runtime/sdk/android/arm64/lib/libm.so
+++ b/mainline/runtime/sdk/android/arm64/lib/libm.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/lib/note_memtag_heap_async.a b/mainline/runtime/sdk/android/arm64/lib/note_memtag_heap_async.a
index fb391b3..587a9b4 100644
--- a/mainline/runtime/sdk/android/arm64/lib/note_memtag_heap_async.a
+++ b/mainline/runtime/sdk/android/arm64/lib/note_memtag_heap_async.a
Binary files differ
diff --git a/mainline/runtime/sdk/android/arm64/lib/note_memtag_heap_sync.a b/mainline/runtime/sdk/android/arm64/lib/note_memtag_heap_sync.a
index bfc6d07..e3d409e 100644
--- a/mainline/runtime/sdk/android/arm64/lib/note_memtag_heap_sync.a
+++ b/mainline/runtime/sdk/android/arm64/lib/note_memtag_heap_sync.a
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/api-level.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/api-level.h
index 40846fb..ecf318d 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/api-level.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/api-level.h
@@ -151,6 +151,9 @@
 /** Names the "S" API level (31), for comparison against `__ANDROID_API__`. */
 #define __ANDROID_API_S__ 31
 
+/** Names the "T" API level (33), for comparison against `__ANDROID_API__`. */
+#define __ANDROID_API_T__ 33
+
 /* This file is included in <features.h>, and might be used from .S files. */
 #if !defined(__ASSEMBLY__)
 
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/legacy_signal_inlines.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/legacy_signal_inlines.h
index 95c2320..f2bdcf6 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/legacy_signal_inlines.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/legacy_signal_inlines.h
@@ -89,7 +89,7 @@
     errno = EINVAL;
     return -1;
   }
-  return (int)((local_set[bit / LONG_BIT] >> (bit % LONG_BIT)) & 1);
+  return (int)((local_set[bit / (8 * sizeof(long))] >> (bit % (8 * sizeof(long)))) & 1);
 }
 
 static __inline int sigaddset(sigset_t *set, int signum) {
@@ -100,7 +100,7 @@
     errno = EINVAL;
     return -1;
   }
-  local_set[bit / LONG_BIT] |= 1UL << (bit % LONG_BIT);
+  local_set[bit / (8 * sizeof(long))] |= 1UL << (bit % (8 * sizeof(long)));
   return 0;
 }
 
@@ -112,7 +112,7 @@
     errno = EINVAL;
     return -1;
   }
-  local_set[bit / LONG_BIT] &= ~(1UL << (bit % LONG_BIT));
+  local_set[bit / (8 * sizeof(long))] &= ~(1UL << (bit % (8 * sizeof(long))));
   return 0;
 }
 
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/versioning.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/versioning.h
index 214acf2..efe4354 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/versioning.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/android/versioning.h
@@ -51,7 +51,7 @@
 // those APIs will still cause a link error.
 #if defined(__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__)
 #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,__what)))
-#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
+#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN(api_level)
 #define __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
 #else
 #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what)))
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/fortify/stdio.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/fortify/stdio.h
index 42698dd..77bdbb4 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/fortify/stdio.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/fortify/stdio.h
@@ -40,6 +40,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE __printflike(3, 0)
 int vsnprintf(char* const __pass_object_size dest, size_t size, const char* format, va_list ap)
+        __diagnose_as_builtin(__builtin_vsnprintf, 1, 2, 3, 4)
         __overloadable {
     return __builtin___vsnprintf_chk(dest, size, 0, __bos(dest), format, ap);
 }
@@ -70,6 +71,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_VARIADIC __printflike(3, 4)
 int snprintf(char* const __pass_object_size dest, size_t size, const char* format, ...)
+        __diagnose_as_builtin(__builtin_snprintf, 1, 2, 3)
         __overloadable {
     va_list va;
     va_start(va, format);
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/fortify/string.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/fortify/string.h
index beb5ff5..08bce2d 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/fortify/string.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/fortify/string.h
@@ -44,13 +44,16 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 void* memcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+        __diagnose_as_builtin(__builtin_memcpy, 1, 2, 3)
         __overloadable {
     return __builtin___memcpy_chk(dst, src, copy_amount, __bos0(dst));
 }
 
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-void* memmove(void* const dst __pass_object_size0, const void* src, size_t len) __overloadable {
+void* memmove(void* const dst __pass_object_size0, const void* src, size_t len)
+        __diagnose_as_builtin(__builtin_memmove, 1, 2, 3)
+        __overloadable {
     return __builtin___memmove_chk(dst, src, len, __bos0(dst));
 }
 #endif
@@ -59,6 +62,7 @@
 #if __ANDROID_API__ >= 30
 __BIONIC_FORTIFY_INLINE
 void* mempcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+        __diagnose_as_builtin(__builtin_mempcpy, 1, 2, 3)
         __overloadable
         __clang_error_if(__bos_unevaluated_lt(__bos0(dst), copy_amount),
                          "'mempcpy' called with size bigger than buffer") {
@@ -87,6 +91,7 @@
 
 __BIONIC_FORTIFY_INLINE
 char* strcpy(char* const dst __pass_object_size, const char* src)
+        __diagnose_as_builtin(__builtin_strcpy, 1, 2)
         __overloadable
         __clang_error_if(__bos_unevaluated_le(__bos(dst), __builtin_strlen(src)),
                          "'strcpy' called with string bigger than buffer") {
@@ -112,7 +117,9 @@
 #if __ANDROID_API__ >= 17 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-char* strncat(char* const dst __pass_object_size, const char* src, size_t n) __overloadable {
+char* strncat(char* const dst __pass_object_size, const char* src, size_t n)
+       __diagnose_as_builtin(__builtin_strncat, 1, 2, 3)
+       __overloadable {
     return __builtin___strncat_chk(dst, src, n, __bos(dst));
 }
 #endif
@@ -120,6 +127,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 void* memset(void* const s __pass_object_size0, int c, size_t n) __overloadable
+        __diagnose_as_builtin(__builtin_memset, 1, 2, 3)
         /* If you're a user who wants this warning to go away: use `(&memset)(foo, bar, baz)`. */
         __clang_warning_if(c && !n, "'memset' will set 0 bytes; maybe the arguments got flipped?") {
 #if __ANDROID_API__ >= 17 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
@@ -157,6 +165,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 char* stpncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+        __diagnose_as_builtin(__builtin_stpncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
     size_t bos_src = __bos(src);
@@ -172,6 +181,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 char* strncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+        __diagnose_as_builtin(__builtin_strncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
     size_t bos_src = __bos(src);
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/glibc-syscalls.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/glibc-syscalls.h
index fbda7fe..c144919 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/glibc-syscalls.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/glibc-syscalls.h
@@ -303,6 +303,9 @@
 #if defined(__NR_futex_time64)
   #define SYS_futex_time64 __NR_futex_time64
 #endif
+#if defined(__NR_futex_waitv)
+  #define SYS_futex_waitv __NR_futex_waitv
+#endif
 #if defined(__NR_futimesat)
   #define SYS_futimesat __NR_futimesat
 #endif
@@ -507,6 +510,15 @@
 #if defined(__NR_kill)
   #define SYS_kill __NR_kill
 #endif
+#if defined(__NR_landlock_add_rule)
+  #define SYS_landlock_add_rule __NR_landlock_add_rule
+#endif
+#if defined(__NR_landlock_create_ruleset)
+  #define SYS_landlock_create_ruleset __NR_landlock_create_ruleset
+#endif
+#if defined(__NR_landlock_restrict_self)
+  #define SYS_landlock_restrict_self __NR_landlock_restrict_self
+#endif
 #if defined(__NR_lchown)
   #define SYS_lchown __NR_lchown
 #endif
@@ -567,6 +579,9 @@
 #if defined(__NR_memfd_create)
   #define SYS_memfd_create __NR_memfd_create
 #endif
+#if defined(__NR_memfd_secret)
+  #define SYS_memfd_secret __NR_memfd_secret
+#endif
 #if defined(__NR_migrate_pages)
   #define SYS_migrate_pages __NR_migrate_pages
 #endif
@@ -789,6 +804,9 @@
 #if defined(__NR_process_madvise)
   #define SYS_process_madvise __NR_process_madvise
 #endif
+#if defined(__NR_process_mrelease)
+  #define SYS_process_mrelease __NR_process_mrelease
+#endif
 #if defined(__NR_process_vm_readv)
   #define SYS_process_vm_readv __NR_process_vm_readv
 #endif
@@ -828,6 +846,9 @@
 #if defined(__NR_quotactl)
   #define SYS_quotactl __NR_quotactl
 #endif
+#if defined(__NR_quotactl_fd)
+  #define SYS_quotactl_fd __NR_quotactl_fd
+#endif
 #if defined(__NR_read)
   #define SYS_read __NR_read
 #endif
@@ -1002,6 +1023,9 @@
 #if defined(__NR_set_mempolicy)
   #define SYS_set_mempolicy __NR_set_mempolicy
 #endif
+#if defined(__NR_set_mempolicy_home_node)
+  #define SYS_set_mempolicy_home_node __NR_set_mempolicy_home_node
+#endif
 #if defined(__NR_set_robust_list)
   #define SYS_set_robust_list __NR_set_robust_list
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/signal_types.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/signal_types.h
index e1a155f..699e257 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/signal_types.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/bits/signal_types.h
@@ -61,7 +61,7 @@
 #if defined(__LP64__)
 typedef sigset_t sigset64_t;
 #else
-typedef struct { unsigned long __bits[_KERNEL__NSIG/LONG_BIT]; } sigset64_t;
+typedef struct { unsigned long __bits[_KERNEL__NSIG/(8*sizeof(long))]; } sigset64_t;
 #endif
 
 #if defined(__LP64__)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/execinfo.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/execinfo.h
new file mode 100644
index 0000000..347ae92
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/execinfo.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#pragma once
+
+#include <sys/cdefs.h>
+
+/**
+ * @file execinfo.h
+ * @brief Functions to do in process backtracing.
+ */
+
+__BEGIN_DECLS
+
+/**
+ * [backtrace(3)](https://man7.org/linux/man-pages/man3/backtrace.3.html)
+ * Saves a backtrace for the current call in the array pointed to by buffer.
+ * "size" indicates the maximum number of void* pointers that can be set.
+ *
+ * Returns the number of addresses stored in "buffer", which is not greater
+ * than "size". If the return value is equal to "size" then the number of
+ * addresses may have been truncated.
+ *
+ * Available since API level 33.
+ */
+int backtrace(void** buffer, int size) __INTRODUCED_IN(33);
+
+/**
+ * [backtrace_symbols(3)](https://man7.org/linux/man-pages/man3/backtrace_symbols.3.html)
+ * Given an array of void* pointers, translate the addresses into an array
+ * of strings that represent the backtrace.
+ *
+ * Returns a pointer to allocated memory, on error NULL is returned. It is
+ * the responsibility of the caller to free the returned memory.
+ *
+ * Available since API level 33.
+ */
+char** backtrace_symbols(void* const* buffer, int size) __INTRODUCED_IN(33);
+
+/**
+ * [backtrace_symbols_fd(3)](https://man7.org/linux/man-pages/man3/backtrace_symbols_fd.3.html)
+ * Given an array of void* pointers, translate the addresses into an array
+ * of strings that represent the backtrace and write to the file represented
+ * by "fd". The file is written such that one line equals one void* address.
+ *
+ * Available since API level 33.
+ */
+void backtrace_symbols_fd(void* const* buffer, int size, int fd) __INTRODUCED_IN(33);
+
+__END_DECLS
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/malloc.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/malloc.h
index bae1f68..40786fa 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/malloc.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/malloc.h
@@ -97,30 +97,31 @@
  */
 size_t malloc_usable_size(const void* __ptr) __INTRODUCED_IN(17);
 
+#define __MALLINFO_BODY \
+  /** Total number of non-mmapped bytes currently allocated from OS. */ \
+  size_t arena; \
+  /** Number of free chunks. */ \
+  size_t ordblks; \
+  /** (Unused.) */ \
+  size_t smblks; \
+  /** (Unused.) */ \
+  size_t hblks; \
+  /** Total number of bytes in mmapped regions. */ \
+  size_t hblkhd; \
+  /** Maximum total allocated space; greater than total if trimming has occurred. */ \
+  size_t usmblks; \
+  /** (Unused.) */ \
+  size_t fsmblks; \
+  /** Total allocated space (normal or mmapped.) */ \
+  size_t uordblks; \
+  /** Total free space. */ \
+  size_t fordblks; \
+  /** Upper bound on number of bytes releasable by a trim operation. */ \
+  size_t keepcost;
+
 #ifndef STRUCT_MALLINFO_DECLARED
 #define STRUCT_MALLINFO_DECLARED 1
-struct mallinfo {
-  /** Total number of non-mmapped bytes currently allocated from OS. */
-  size_t arena;
-  /** Number of free chunks. */
-  size_t ordblks;
-  /** (Unused.) */
-  size_t smblks;
-  /** (Unused.) */
-  size_t hblks;
-  /** Total number of bytes in mmapped regions. */
-  size_t hblkhd;
-  /** Maximum total allocated space; greater than total if trimming has occurred. */
-  size_t usmblks;
-  /** (Unused.) */
-  size_t fsmblks;
-  /** Total allocated space (normal or mmapped.) */
-  size_t uordblks;
-  /** Total free space. */
-  size_t fordblks;
-  /** Upper bound on number of bytes releasable by a trim operation. */
-  size_t keepcost;
-};
+struct mallinfo { __MALLINFO_BODY };
 #endif
 
 /**
@@ -131,6 +132,18 @@
 struct mallinfo mallinfo(void);
 
 /**
+ * On Android the struct mallinfo and struct mallinfo2 are the same.
+ */
+struct mallinfo2 { __MALLINFO_BODY };
+
+/**
+ * [mallinfo2(3)](http://man7.org/linux/man-pages/man3/mallinfo2.3.html) returns
+ * information about the current state of the heap. Note that mallinfo2() is
+ * inherently unreliable and consider using malloc_info() instead.
+ */
+struct mallinfo2 mallinfo2(void) __RENAME(mallinfo);
+
+/**
  * [malloc_info(3)](http://man7.org/linux/man-pages/man3/malloc_info.3.html)
  * writes information about the current state of the heap to the given stream.
  *
@@ -170,7 +183,45 @@
  * Available since API level 28.
  */
 #define M_PURGE (-101)
-/*
+
+
+/**
+ * mallopt() option to tune the allocator's choice of memory tags to
+ * make it more likely that a certain class of memory errors will be
+ * detected. This is only relevant if MTE is enabled in this process
+ * and ignored otherwise. The value argument should be one of the
+ * M_MEMTAG_TUNING_* flags.
+ * NOTE: This is only available in scudo.
+ *
+ * Available since API level 31.
+ */
+#define M_MEMTAG_TUNING (-102)
+
+/**
+ * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables
+ * deterministic detection of linear buffer overflow and underflow
+ * bugs by assigning distinct tag values to adjacent allocations. This
+ * mode has a slightly reduced chance to detect use-after-free bugs
+ * because only half of the possible tag values are available for each
+ * memory location.
+ *
+ * Please keep in mind that MTE can not detect overflow within the
+ * same tag granule (16-byte aligned chunk), and can miss small
+ * overflows even in this mode. Such overflow can not be the cause of
+ * a memory corruption, because the memory within one granule is never
+ * used for multiple allocations.
+ */
+#define M_MEMTAG_TUNING_BUFFER_OVERFLOW 0
+
+/**
+ * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables
+ * independently randomized tags for uniform ~93% probability of
+ * detecting both spatial (buffer overflow) and temporal (use after
+ * free) bugs.
+ */
+#define M_MEMTAG_TUNING_UAF 1
+
+/**
  * mallopt() option for per-thread memory initialization tuning.
  * The value argument should be one of:
  * 1: Disable automatic heap initialization and, where possible, memory tagging,
@@ -210,7 +261,7 @@
  * should not be zero-initialized, any other value indicates to initialize heap
  * memory to zero.
  *
- * Note that this memory mitigations is only implemented in scudo and therefore
+ * Note that this memory mitigation is only implemented in scudo and therefore
  * this will have no effect when using another allocator (such as jemalloc on
  * Android Go devices).
  *
@@ -222,6 +273,7 @@
  * mallopt() option to change the heap tagging state. May be called at any
  * time, including when multiple threads are running.
  * The value must be one of the M_HEAP_TAGGING_LEVEL_ constants.
+ * NOTE: This is only available in scudo.
  *
  * Available since API level 31.
  */
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/netinet/in.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/netinet/in.h
index 7f00a7a..46e3543 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/netinet/in.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/netinet/in.h
@@ -33,7 +33,18 @@
 #include <sys/cdefs.h>
 #include <sys/socket.h>
 
+// Include linux/socket.h first to trigger the header guard without
+// the__kernel_sockaddr_storage define, so its definition uses the
+// kernel name.
+#include <linux/socket.h>
+
+// Redefine __kernel_sockaddr_storage to sockaddr_storage so that
+// the structs defined in linux/in.h use the sockaddr_storage defined
+// in sys/sockets.h.
+#define __kernel_sockaddr_storage sockaddr_storage
 #include <linux/in.h>
+#undef __kernel_sockaddr_storage
+
 #include <linux/in6.h>
 #include <linux/ipv6.h>
 
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sched.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sched.h
index 3260231..364ca10 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sched.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sched.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SCHED_H_
-#define _SCHED_H_
+#pragma once
+
+/**
+ * @file sched.h
+ * @brief Thread execution scheduling.
+ */
 
 #include <bits/timespec.h>
 #include <linux/sched.h>
@@ -35,29 +39,170 @@
 
 __BEGIN_DECLS
 
-/* This name is used by glibc, but not by the kernel. */
+/*
+ * @def SCHED_NORMAL
+ * The standard (as opposed to real-time) round-robin scheduling policy.
+ *
+ * (Linux's name for POSIX's SCHED_OTHER.)
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_FIFO
+ * The real-time first-in/first-out scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_RR
+ * The real-time round-robin policy. (See also SCHED_NORMAL/SCHED_OTHER.)
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_BATCH
+ * The batch scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_IDLE
+ * The low priority "only when otherwise idle" scheduling priority.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_DEADLINE
+ * The deadline scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * The standard (as opposed to real-time) round-robin scheduling policy.
+ *
+ * (POSIX's name for Linux's SCHED_NORMAL.)
+ */
 #define SCHED_OTHER SCHED_NORMAL
 
+/**
+ * See sched_getparam()/sched_setparam() and
+ * sched_getscheduler()/sched_setscheduler().
+ */
 struct sched_param {
   int sched_priority;
 };
 
+/**
+ * [sched_setscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * sets the scheduling policy and associated parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setscheduler(pid_t __pid, int __policy, const struct sched_param* __param);
+
+/**
+ * [sched_getscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * gets the scheduling policy for the given thread.
+ *
+ * Returns a non-negative thread policy on success and returns -1 and sets
+ * `errno` on failure.
+ */
 int sched_getscheduler(pid_t __pid);
+
+/**
+ * [sched_yield(2)](http://man7.org/linux/man-pages/man2/sched_yield.2.html)
+ * voluntarily gives up using the CPU so that another thread can run.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_yield(void);
+
+/**
+ * [sched_get_priority_max(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_max.2.html)
+ * gets the maximum priority value allowed for the given scheduling policy.
+ *
+ * Returns a priority on success and returns -1 and sets `errno` on failure.
+ */
 int sched_get_priority_max(int __policy);
+
+/**
+ * [sched_get_priority_min(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_min.2.html)
+ * gets the minimum priority value allowed for the given scheduling policy.
+ *
+ * Returns a priority on success and returns -1 and sets `errno` on failure.
+ */
 int sched_get_priority_min(int __policy);
+
+/**
+ * [sched_setparam(2)](http://man7.org/linux/man-pages/man2/sched_setparam.2.html)
+ * sets the scheduling parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setparam(pid_t __pid, const struct sched_param* __param);
+
+/**
+ * [sched_getparam(2)](http://man7.org/linux/man-pages/man2/sched_getparam.2.html)
+ * gets the scheduling parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_getparam(pid_t __pid, struct sched_param* __param);
+
+/**
+ * [sched_rr_get_interval(2)](http://man7.org/linux/man-pages/man2/sched_rr_get_interval.2.html)
+ * queries the round-robin time quantum for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_rr_get_interval(pid_t __pid, struct timespec* __quantum);
 
 #if defined(__USE_GNU)
 
+/**
+ * [clone(2)](http://man7.org/linux/man-pages/man2/clone.2.html)
+ * creates a new child process.
+ *
+ * Returns the pid of the child to the caller on success and
+ * returns -1 and sets `errno` on failure.
+ */
 int clone(int (*__fn)(void*), void* __child_stack, int __flags, void* __arg, ...) __INTRODUCED_IN_ARM(9) __INTRODUCED_IN_X86(17);
+
+/**
+ * [unshare(2)](http://man7.org/linux/man-pages/man2/unshare.2.html)
+ * disassociates part of the caller's execution context.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 17.
+ */
 int unshare(int __flags) __INTRODUCED_IN(17);
-int sched_getcpu(void);
+
+/**
+ * [setns(2)](http://man7.org/linux/man-pages/man2/setns.2.html)
+ * reassociates a thread with a different namespace.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 21.
+ */
 int setns(int __fd, int __ns_type) __INTRODUCED_IN(21);
 
+/**
+ * [sched_getcpu(3)](http://man7.org/linux/man-pages/man3/sched_getcpu.3.html)
+ * reports which CPU the caller is running on.
+ *
+ * Returns a non-negative CPU number on success and returns -1 and sets
+ * `errno` on failure.
+ */
+int sched_getcpu(void);
+
 #ifdef __LP64__
 #define CPU_SETSIZE 1024
 #else
@@ -69,39 +214,50 @@
 #define __CPU_ELT(x)   ((x) / __CPU_BITS)
 #define __CPU_MASK(x)  ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
 
+/**
+ * [cpu_set_t](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) is a
+ * statically-sized CPU set. See `CPU_ALLOC` for dynamically-sized CPU sets.
+ */
 typedef struct {
   __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
 } cpu_set_t;
 
+/**
+ * [sched_setaffinity(2)](http://man7.org/linux/man-pages/man2/sched_setaffinity.2.html)
+ * sets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setaffinity(pid_t __pid, size_t __set_size, const cpu_set_t* __set);
+
+/**
+ * [sched_getaffinity(2)](http://man7.org/linux/man-pages/man2/sched_getaffinity.2.html)
+ * gets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_getaffinity(pid_t __pid, size_t __set_size, cpu_set_t* __set);
 
+/**
+ * [CPU_ZERO](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all
+ * bits in a static CPU set.
+ */
 #define CPU_ZERO(set)          CPU_ZERO_S(sizeof(cpu_set_t), set)
-#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
-#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
-
-#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
-#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
-#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
-
-#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
-
-/* Support for dynamically-allocated cpu_set_t */
-
-#define CPU_ALLOC_SIZE(count) \
-  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
-
-#define CPU_ALLOC(count)  __sched_cpualloc((count))
-#define CPU_FREE(set)     __sched_cpufree((set))
-
-cpu_set_t* __sched_cpualloc(size_t __count);
-void __sched_cpufree(cpu_set_t* __set);
-
+/**
+ * [CPU_ZERO_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all
+ * bits in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_ZERO_S(setsize, set)  __builtin_memset(set, 0, setsize)
 
+/**
+ * [CPU_SET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one
+ * bit in a static CPU set.
+ */
+#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_SET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one
+ * bit in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_SET_S(cpu, setsize, set) \
   do { \
     size_t __cpu = (cpu); \
@@ -109,6 +265,15 @@
       (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
   } while (0)
 
+/**
+ * [CPU_CLR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one
+ * bit in a static CPU set.
+ */
+#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_CLR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one
+ * bit in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_CLR_S(cpu, setsize, set) \
   do { \
     size_t __cpu = (cpu); \
@@ -116,6 +281,15 @@
       (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
   } while (0)
 
+/**
+ * [CPU_ISSET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether the given bit is set in a static CPU set.
+ */
+#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_ISSET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether the given bit is set in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_ISSET_S(cpu, setsize, set) \
   (__extension__ ({ \
     size_t __cpu = (cpu); \
@@ -124,12 +298,65 @@
       : 0; \
   }))
 
+/**
+ * [CPU_COUNT](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts
+ * how many bits are set in a static CPU set.
+ */
+#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
+/**
+ * [CPU_COUNT_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts
+ * how many bits are set in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
+#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
+int __sched_cpucount(size_t __set_size, const cpu_set_t* __set);
+
+/**
+ * [CPU_EQUAL](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether two static CPU sets have the same bits set and cleared as each other.
+ */
+#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
+/**
+ * [CPU_EQUAL_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether two dynamic CPU sets allocated by `CPU_ALLOC` have the same bits
+ * set and cleared as each other.
+ */
 #define CPU_EQUAL_S(setsize, set1, set2)  (__builtin_memcmp(set1, set2, setsize) == 0)
 
+/**
+ * [CPU_AND](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two
+ * static CPU sets.
+ */
+#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
+/**
+ * [CPU_AND_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two
+ * dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_AND_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, &)
+
+/**
+ * [CPU_OR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two
+ * static CPU sets.
+ */
+#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
+/**
+ * [CPU_OR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two
+ * dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_OR_S(setsize, dst, set1, set2)   __CPU_OP_S(setsize, dst, set1, set2, |)
+
+/**
+ * [CPU_XOR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * exclusive-ors two static CPU sets.
+ */
+#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
+/**
+ * [CPU_XOR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * exclusive-ors two dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_XOR_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, ^)
 
+#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
+
 #define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
   do { \
     cpu_set_t* __dst = (dstset); \
@@ -140,12 +367,27 @@
       (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
   } while (0)
 
-#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
+/**
+ * [CPU_ALLOC_SIZE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * returns the size of a CPU set large enough for CPUs in the range 0..count-1.
+ */
+#define CPU_ALLOC_SIZE(count) \
+  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
 
-int __sched_cpucount(size_t __set_size, const cpu_set_t* __set);
+/**
+ * [CPU_ALLOC](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * allocates a CPU set large enough for CPUs in the range 0..count-1.
+ */
+#define CPU_ALLOC(count)  __sched_cpualloc((count))
+cpu_set_t* __sched_cpualloc(size_t __count);
+
+/**
+ * [CPU_FREE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * deallocates a CPU set allocated by `CPU_ALLOC`.
+ */
+#define CPU_FREE(set)     __sched_cpufree((set))
+void __sched_cpufree(cpu_set_t* __set);
 
 #endif /* __USE_GNU */
 
 __END_DECLS
-
-#endif /* _SCHED_H_ */
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/stdlib.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/stdlib.h
index 583287f..4aa27f9 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/stdlib.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/stdlib.h
@@ -161,11 +161,11 @@
 void setprogname(const char* __name) __INTRODUCED_IN(21);
 
 int mblen(const char* __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(26);
-size_t mbstowcs(wchar_t* __dst, const char* __src, size_t __n);
+size_t mbstowcs(wchar_t* __dst, const char* __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 int mbtowc(wchar_t* __wc_ptr, const char* __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 int wctomb(char* __dst, wchar_t __wc) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
-size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n);
+size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
 #if __ANDROID_API__ >= 21
 size_t __ctype_get_mb_cur_max(void) __INTRODUCED_IN(21);
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/cdefs.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/cdefs.h
index 2556d11..5b9d99b 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/cdefs.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/cdefs.h
@@ -327,6 +327,8 @@
 
 #define __overloadable __attribute__((overloadable))
 
+#define __diagnose_as_builtin(...) __attribute__((diagnose_as_builtin(__VA_ARGS__)))
+
 /* Used to tag non-static symbols that are private and never exposed by the shared library. */
 #define __LIBC_HIDDEN__ __attribute__((visibility("hidden")))
 
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/select.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/select.h
index 79fc28d..65571eb 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/select.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/select.h
@@ -101,31 +101,37 @@
 
 /**
  * [select(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use poll() instead.
+ * set of file descriptors.
+ *
+ * Use poll() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  */
-int select(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, struct timeval* __timeout);
+int select(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, struct timeval* __timeout);
 
 /**
  * [pselect(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use ppoll() instead.
+ * set of file descriptors.
+ *
+ * Use ppoll() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  */
-int pselect(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset_t* __mask);
+int pselect(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset_t* __mask);
 
 /**
  * [pselect64(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use ppoll64() instead.
+ * set of file descriptors.
+ *
+ * Use ppoll64() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  *
  * Available since API level 28.
  */
-int pselect64(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset64_t* __mask) __INTRODUCED_IN(28);
+int pselect64(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset64_t* __mask) __INTRODUCED_IN(28);
 
 __END_DECLS
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/socket.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/socket.h
index 3ecbcce..f33f112 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/socket.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/socket.h
@@ -31,7 +31,6 @@
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
-#include <linux/socket.h>
 
 #include <asm/fcntl.h>
 #include <asm/socket.h>
@@ -71,6 +70,16 @@
   char sa_data[14];
 };
 
+struct sockaddr_storage {
+  union {
+    struct {
+      sa_family_t ss_family;
+      char __data[128 - sizeof(sa_family_t)];
+    };
+    void* __align;
+  };
+};
+
 struct linger {
   int l_onoff;
   int l_linger;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/uio.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/uio.h
index 37961e3..583cfc6 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/uio.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/include/sys/uio.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SYS_UIO_H_
-#define _SYS_UIO_H_
+#pragma once
+
+/**
+ * @file sys/uio.h
+ * @brief Multi-buffer ("vector") I/O operations using `struct iovec`.
+ */
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
@@ -35,21 +39,124 @@
 
 __BEGIN_DECLS
 
+/**
+ * [readv(2)](http://man7.org/linux/man-pages/man2/readv.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ */
 ssize_t readv(int __fd, const struct iovec* __iov, int __count);
+
+/**
+ * [writev(2)](http://man7.org/linux/man-pages/man2/writev.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ */
 ssize_t writev(int __fd, const struct iovec* __iov, int __count);
 
 #if defined(__USE_GNU)
-ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
-ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
-ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
-ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
-#endif
 
-#if defined(__USE_GNU)
+/**
+ * [preadv(2)](http://man7.org/linux/man-pages/man2/preadv.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`, starting at
+ * offset `__offset` into the file.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 24.
+ */
+ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
+
+/**
+ * [pwritev(2)](http://man7.org/linux/man-pages/man2/pwritev.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`, starting at offset
+ * `__offset` into the file.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 24.
+ */
+ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
+
+/**
+ * Like preadv() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 24.
+ */
+ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+
+/**
+ * Like pwritev() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 24.
+ */
+ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+
+/**
+ * [preadv2(2)](http://man7.org/linux/man-pages/man2/preadv2.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`, starting at
+ * offset `__offset` into the file, with the given flags.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 33.
+ */
+ssize_t preadv2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(preadv64v2) __INTRODUCED_IN(33);
+
+/**
+ * [pwritev2(2)](http://man7.org/linux/man-pages/man2/pwritev2.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`, starting at offset
+ * `__offset` into the file, with the given flags.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 33.
+ */
+ssize_t pwritev2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(pwritev64v2) __INTRODUCED_IN(33);
+
+/**
+ * Like preadv2() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 33.
+ */
+ssize_t preadv64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+
+/**
+ * Like pwritev2() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 33.
+ */
+ssize_t pwritev64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+
+/**
+ * [process_vm_readv(2)](http://man7.org/linux/man-pages/man2/process_vm_readv.2.html)
+ * reads from the address space of another process.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 23.
+ */
 ssize_t process_vm_readv(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
+/**
+ * [process_vm_writev(2)](http://man7.org/linux/man-pages/man2/process_vm_writev.2.html)
+ * writes to the address space of another process.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 23.
+ */
 ssize_t process_vm_writev(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
 #endif
 
 __END_DECLS
-
-#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
index 2ea16a3..6d89fa9 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
@@ -20,6 +20,7 @@
 #define _SCSI_SCSI_H
 #include <linux/types.h>
 #include <scsi/scsi_proto.h>
+#include <scsi/scsi_status.h>
 struct ccs_modesel_head {
   __u8 _r1;
   __u8 medium;
@@ -34,40 +35,12 @@
   __u8 block_length_med;
   __u8 block_length_lo;
 };
-#define COMMAND_COMPLETE 0x00
-#define EXTENDED_MESSAGE 0x01
 #define EXTENDED_MODIFY_DATA_POINTER 0x00
 #define EXTENDED_SDTR 0x01
 #define EXTENDED_EXTENDED_IDENTIFY 0x02
 #define EXTENDED_WDTR 0x03
 #define EXTENDED_PPR 0x04
 #define EXTENDED_MODIFY_BIDI_DATA_PTR 0x05
-#define SAVE_POINTERS 0x02
-#define RESTORE_POINTERS 0x03
-#define DISCONNECT 0x04
-#define INITIATOR_ERROR 0x05
-#define ABORT_TASK_SET 0x06
-#define MESSAGE_REJECT 0x07
-#define NOP 0x08
-#define MSG_PARITY_ERROR 0x09
-#define LINKED_CMD_COMPLETE 0x0a
-#define LINKED_FLG_CMD_COMPLETE 0x0b
-#define TARGET_RESET 0x0c
-#define ABORT_TASK 0x0d
-#define CLEAR_TASK_SET 0x0e
-#define INITIATE_RECOVERY 0x0f
-#define RELEASE_RECOVERY 0x10
-#define TERMINATE_IO_PROC 0x11
-#define CLEAR_ACA 0x16
-#define LOGICAL_UNIT_RESET 0x17
-#define SIMPLE_QUEUE_TAG 0x20
-#define HEAD_OF_QUEUE_TAG 0x21
-#define ORDERED_QUEUE_TAG 0x22
-#define IGNORE_WIDE_RESIDUE 0x23
-#define ACA 0x24
-#define QAS_REQUEST 0x55
-#define BUS_DEVICE_RESET TARGET_RESET
-#define ABORT ABORT_TASK_SET
 #define SCSI_IOCTL_GET_IDLUN 0x5382
 #define SCSI_IOCTL_PROBE_HOST 0x5385
 #define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
index a77eded..eea87a0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
@@ -124,17 +124,6 @@
 #define SERVICE_ACTION_BIDIRECTIONAL 0x9d
 #define SERVICE_ACTION_IN_16 0x9e
 #define SERVICE_ACTION_OUT_16 0x9f
-#define GOOD 0x00
-#define CHECK_CONDITION 0x01
-#define CONDITION_GOOD 0x02
-#define BUSY 0x04
-#define INTERMEDIATE_GOOD 0x08
-#define INTERMEDIATE_C_GOOD 0x0a
-#define RESERVATION_CONFLICT 0x0c
-#define COMMAND_TERMINATED 0x11
-#define QUEUE_FULL 0x14
-#define ACA_ACTIVE 0x18
-#define TASK_ABORTED 0x20
 #define STATUS_MASK 0xfe
 #define NO_SENSE 0x00
 #define RECOVERED_ERROR 0x01
@@ -205,4 +194,14 @@
   ZBC_ZONE_COND_FULL = 0xe,
   ZBC_ZONE_COND_OFFLINE = 0xf,
 };
+enum scsi_version_descriptor {
+  SCSI_VERSION_DESCRIPTOR_FCP4 = 0x0a40,
+  SCSI_VERSION_DESCRIPTOR_ISCSI = 0x0960,
+  SCSI_VERSION_DESCRIPTOR_SAM5 = 0x00a0,
+  SCSI_VERSION_DESCRIPTOR_SAS3 = 0x0c60,
+  SCSI_VERSION_DESCRIPTOR_SBC3 = 0x04c0,
+  SCSI_VERSION_DESCRIPTOR_SBP3 = 0x0980,
+  SCSI_VERSION_DESCRIPTOR_SPC4 = 0x0460,
+  SCSI_VERSION_DESCRIPTOR_SRP = 0x0940
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
similarity index 82%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
index bb45c3d..6a7fc10 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
@@ -16,14 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _SCSI_SCSI_STATUS_H
+#define _SCSI_SCSI_STATUS_H
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#include <scsi/scsi_proto.h>
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/sg.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/sg.h
index 828b2c6..a7a1944 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/sg.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/android/scsi/scsi/sg.h
@@ -66,6 +66,20 @@
 #define SG_INFO_INDIRECT_IO 0x0
 #define SG_INFO_DIRECT_IO 0x2
 #define SG_INFO_MIXED_IO 0x4
+#define DRIVER_SENSE 0x08
+#define driver_byte(result) (((result) >> 24) & 0xff)
+#define GOOD 0x00
+#define CHECK_CONDITION 0x01
+#define CONDITION_GOOD 0x02
+#define BUSY 0x04
+#define INTERMEDIATE_GOOD 0x08
+#define INTERMEDIATE_C_GOOD 0x0a
+#define RESERVATION_CONFLICT 0x0c
+#define COMMAND_TERMINATED 0x11
+#define QUEUE_FULL 0x14
+#define ACA_ACTIVE 0x18
+#define TASK_ABORTED 0x20
+#define status_byte(result) (((result) >> 1) & 0x7f)
 typedef struct sg_scsi_id {
   int host_no;
   int channel;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
index b4da2d1..672a72a 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
@@ -19,7 +19,7 @@
 #ifndef _UAPI__ASMARM_SETUP_H
 #define _UAPI__ASMARM_SETUP_H
 #include <linux/types.h>
-#define COMMAND_LINE_SIZE 2048
+#define COMMAND_LINE_SIZE 1024
 #define ATAG_NONE 0x00000000
 struct tag_header {
   __u32 size;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h
deleted file mode 100644
index 070c77b..0000000
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h
+++ /dev/null
@@ -1,417 +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_ASM_ARM_UNISTD_COMMON_H
-#define _UAPI_ASM_ARM_UNISTD_COMMON_H 1
-#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
-#define __NR_exit (__NR_SYSCALL_BASE + 1)
-#define __NR_fork (__NR_SYSCALL_BASE + 2)
-#define __NR_read (__NR_SYSCALL_BASE + 3)
-#define __NR_write (__NR_SYSCALL_BASE + 4)
-#define __NR_open (__NR_SYSCALL_BASE + 5)
-#define __NR_close (__NR_SYSCALL_BASE + 6)
-#define __NR_creat (__NR_SYSCALL_BASE + 8)
-#define __NR_link (__NR_SYSCALL_BASE + 9)
-#define __NR_unlink (__NR_SYSCALL_BASE + 10)
-#define __NR_execve (__NR_SYSCALL_BASE + 11)
-#define __NR_chdir (__NR_SYSCALL_BASE + 12)
-#define __NR_mknod (__NR_SYSCALL_BASE + 14)
-#define __NR_chmod (__NR_SYSCALL_BASE + 15)
-#define __NR_lchown (__NR_SYSCALL_BASE + 16)
-#define __NR_lseek (__NR_SYSCALL_BASE + 19)
-#define __NR_getpid (__NR_SYSCALL_BASE + 20)
-#define __NR_mount (__NR_SYSCALL_BASE + 21)
-#define __NR_setuid (__NR_SYSCALL_BASE + 23)
-#define __NR_getuid (__NR_SYSCALL_BASE + 24)
-#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
-#define __NR_pause (__NR_SYSCALL_BASE + 29)
-#define __NR_access (__NR_SYSCALL_BASE + 33)
-#define __NR_nice (__NR_SYSCALL_BASE + 34)
-#define __NR_sync (__NR_SYSCALL_BASE + 36)
-#define __NR_kill (__NR_SYSCALL_BASE + 37)
-#define __NR_rename (__NR_SYSCALL_BASE + 38)
-#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
-#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
-#define __NR_dup (__NR_SYSCALL_BASE + 41)
-#define __NR_pipe (__NR_SYSCALL_BASE + 42)
-#define __NR_times (__NR_SYSCALL_BASE + 43)
-#define __NR_brk (__NR_SYSCALL_BASE + 45)
-#define __NR_setgid (__NR_SYSCALL_BASE + 46)
-#define __NR_getgid (__NR_SYSCALL_BASE + 47)
-#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
-#define __NR_getegid (__NR_SYSCALL_BASE + 50)
-#define __NR_acct (__NR_SYSCALL_BASE + 51)
-#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
-#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
-#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
-#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
-#define __NR_umask (__NR_SYSCALL_BASE + 60)
-#define __NR_chroot (__NR_SYSCALL_BASE + 61)
-#define __NR_ustat (__NR_SYSCALL_BASE + 62)
-#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
-#define __NR_getppid (__NR_SYSCALL_BASE + 64)
-#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
-#define __NR_setsid (__NR_SYSCALL_BASE + 66)
-#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
-#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
-#define __NR_setregid (__NR_SYSCALL_BASE + 71)
-#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
-#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
-#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
-#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
-#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
-#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
-#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
-#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
-#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
-#define __NR_symlink (__NR_SYSCALL_BASE + 83)
-#define __NR_readlink (__NR_SYSCALL_BASE + 85)
-#define __NR_uselib (__NR_SYSCALL_BASE + 86)
-#define __NR_swapon (__NR_SYSCALL_BASE + 87)
-#define __NR_reboot (__NR_SYSCALL_BASE + 88)
-#define __NR_munmap (__NR_SYSCALL_BASE + 91)
-#define __NR_truncate (__NR_SYSCALL_BASE + 92)
-#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
-#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
-#define __NR_fchown (__NR_SYSCALL_BASE + 95)
-#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
-#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
-#define __NR_statfs (__NR_SYSCALL_BASE + 99)
-#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
-#define __NR_syslog (__NR_SYSCALL_BASE + 103)
-#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
-#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
-#define __NR_stat (__NR_SYSCALL_BASE + 106)
-#define __NR_lstat (__NR_SYSCALL_BASE + 107)
-#define __NR_fstat (__NR_SYSCALL_BASE + 108)
-#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
-#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
-#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
-#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
-#define __NR_fsync (__NR_SYSCALL_BASE + 118)
-#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
-#define __NR_clone (__NR_SYSCALL_BASE + 120)
-#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
-#define __NR_uname (__NR_SYSCALL_BASE + 122)
-#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
-#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
-#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
-#define __NR_init_module (__NR_SYSCALL_BASE + 128)
-#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
-#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
-#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
-#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
-#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
-#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
-#define __NR_personality (__NR_SYSCALL_BASE + 136)
-#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
-#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
-#define __NR__llseek (__NR_SYSCALL_BASE + 140)
-#define __NR_getdents (__NR_SYSCALL_BASE + 141)
-#define __NR__newselect (__NR_SYSCALL_BASE + 142)
-#define __NR_flock (__NR_SYSCALL_BASE + 143)
-#define __NR_msync (__NR_SYSCALL_BASE + 144)
-#define __NR_readv (__NR_SYSCALL_BASE + 145)
-#define __NR_writev (__NR_SYSCALL_BASE + 146)
-#define __NR_getsid (__NR_SYSCALL_BASE + 147)
-#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
-#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
-#define __NR_mlock (__NR_SYSCALL_BASE + 150)
-#define __NR_munlock (__NR_SYSCALL_BASE + 151)
-#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
-#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
-#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
-#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
-#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
-#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
-#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
-#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
-#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
-#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
-#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
-#define __NR_mremap (__NR_SYSCALL_BASE + 163)
-#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
-#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
-#define __NR_poll (__NR_SYSCALL_BASE + 168)
-#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
-#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
-#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
-#define __NR_prctl (__NR_SYSCALL_BASE + 172)
-#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
-#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
-#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
-#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
-#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
-#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
-#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
-#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
-#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
-#define __NR_chown (__NR_SYSCALL_BASE + 182)
-#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
-#define __NR_capget (__NR_SYSCALL_BASE + 184)
-#define __NR_capset (__NR_SYSCALL_BASE + 185)
-#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
-#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
-#define __NR_vfork (__NR_SYSCALL_BASE + 190)
-#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
-#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
-#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
-#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
-#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
-#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
-#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
-#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
-#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
-#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
-#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
-#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
-#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
-#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
-#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
-#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
-#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
-#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
-#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
-#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
-#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
-#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
-#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
-#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
-#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
-#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
-#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
-#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
-#define __NR_mincore (__NR_SYSCALL_BASE + 219)
-#define __NR_madvise (__NR_SYSCALL_BASE + 220)
-#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
-#define __NR_gettid (__NR_SYSCALL_BASE + 224)
-#define __NR_readahead (__NR_SYSCALL_BASE + 225)
-#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
-#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
-#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
-#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
-#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
-#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
-#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
-#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
-#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
-#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
-#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
-#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
-#define __NR_tkill (__NR_SYSCALL_BASE + 238)
-#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
-#define __NR_futex (__NR_SYSCALL_BASE + 240)
-#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
-#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
-#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
-#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
-#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
-#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
-#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
-#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
-#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
-#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
-#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
-#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
-#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
-#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
-#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
-#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
-#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
-#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
-#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
-#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
-#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
-#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
-#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
-#define __NR_utimes (__NR_SYSCALL_BASE + 269)
-#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
-#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
-#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
-#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
-#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
-#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
-#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
-#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
-#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
-#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
-#define __NR_waitid (__NR_SYSCALL_BASE + 280)
-#define __NR_socket (__NR_SYSCALL_BASE + 281)
-#define __NR_bind (__NR_SYSCALL_BASE + 282)
-#define __NR_connect (__NR_SYSCALL_BASE + 283)
-#define __NR_listen (__NR_SYSCALL_BASE + 284)
-#define __NR_accept (__NR_SYSCALL_BASE + 285)
-#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
-#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
-#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
-#define __NR_send (__NR_SYSCALL_BASE + 289)
-#define __NR_sendto (__NR_SYSCALL_BASE + 290)
-#define __NR_recv (__NR_SYSCALL_BASE + 291)
-#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
-#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
-#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
-#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
-#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
-#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
-#define __NR_semop (__NR_SYSCALL_BASE + 298)
-#define __NR_semget (__NR_SYSCALL_BASE + 299)
-#define __NR_semctl (__NR_SYSCALL_BASE + 300)
-#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
-#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
-#define __NR_msgget (__NR_SYSCALL_BASE + 303)
-#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
-#define __NR_shmat (__NR_SYSCALL_BASE + 305)
-#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
-#define __NR_shmget (__NR_SYSCALL_BASE + 307)
-#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
-#define __NR_add_key (__NR_SYSCALL_BASE + 309)
-#define __NR_request_key (__NR_SYSCALL_BASE + 310)
-#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
-#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
-#define __NR_vserver (__NR_SYSCALL_BASE + 313)
-#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
-#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
-#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
-#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
-#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
-#define __NR_mbind (__NR_SYSCALL_BASE + 319)
-#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
-#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
-#define __NR_openat (__NR_SYSCALL_BASE + 322)
-#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
-#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
-#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
-#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
-#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
-#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
-#define __NR_renameat (__NR_SYSCALL_BASE + 329)
-#define __NR_linkat (__NR_SYSCALL_BASE + 330)
-#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
-#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
-#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
-#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
-#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
-#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
-#define __NR_unshare (__NR_SYSCALL_BASE + 337)
-#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
-#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
-#define __NR_splice (__NR_SYSCALL_BASE + 340)
-#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
-#define __NR_tee (__NR_SYSCALL_BASE + 342)
-#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
-#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
-#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
-#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
-#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
-#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
-#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
-#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
-#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
-#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
-#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
-#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
-#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
-#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
-#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
-#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
-#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
-#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
-#define __NR_preadv (__NR_SYSCALL_BASE + 361)
-#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
-#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
-#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
-#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
-#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
-#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
-#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
-#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
-#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
-#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
-#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
-#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
-#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
-#define __NR_setns (__NR_SYSCALL_BASE + 375)
-#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
-#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
-#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
-#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
-#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
-#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
-#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
-#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
-#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
-#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
-#define __NR_bpf (__NR_SYSCALL_BASE + 386)
-#define __NR_execveat (__NR_SYSCALL_BASE + 387)
-#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
-#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
-#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
-#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
-#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
-#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
-#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
-#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
-#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
-#define __NR_statx (__NR_SYSCALL_BASE + 397)
-#define __NR_rseq (__NR_SYSCALL_BASE + 398)
-#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
-#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
-#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
-#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
-#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
-#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
-#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
-#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
-#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
-#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
-#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
-#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
-#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
-#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
-#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
-#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
-#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
-#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
-#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
-#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
-#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
-#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
-#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
-#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
-#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
-#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
-#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
-#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
-#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
-#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
-#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
-#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
-#define __NR_fspick (__NR_SYSCALL_BASE + 433)
-#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
-#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
-#define __NR_close_range (__NR_SYSCALL_BASE + 436)
-#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
-#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
-#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
-#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
-#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
-#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
-#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
index 54e1867..71b25e7 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
@@ -16,6 +16,409 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _UAPI_ASM_ARM_UNISTD_EABI_H
-#define _UAPI_ASM_ARM_UNISTD_EABI_H 1
+#ifndef _UAPI_ASM_UNISTD_EABI_H
+#define _UAPI_ASM_UNISTD_EABI_H
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
+#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
+#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
+#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
+#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
+#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
+#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
index d2633e8..08b3b9a 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
@@ -16,18 +16,421 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _UAPI_ASM_ARM_UNISTD_OABI_H
-#define _UAPI_ASM_ARM_UNISTD_OABI_H 1
+#ifndef _UAPI_ASM_UNISTD_OABI_H
+#define _UAPI_ASM_UNISTD_OABI_H
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
 #define __NR_time (__NR_SYSCALL_BASE + 13)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
 #define __NR_umount (__NR_SYSCALL_BASE + 22)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
 #define __NR_stime (__NR_SYSCALL_BASE + 25)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
 #define __NR_alarm (__NR_SYSCALL_BASE + 27)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
 #define __NR_utime (__NR_SYSCALL_BASE + 30)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
 #define __NR_getrlimit (__NR_SYSCALL_BASE + 76)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
 #define __NR_select (__NR_SYSCALL_BASE + 82)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
 #define __NR_readdir (__NR_SYSCALL_BASE + 89)
 #define __NR_mmap (__NR_SYSCALL_BASE + 90)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
 #define __NR_socketcall (__NR_SYSCALL_BASE + 102)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
 #define __NR_syscall (__NR_SYSCALL_BASE + 113)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
 #define __NR_ipc (__NR_SYSCALL_BASE + 117)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
+#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
+#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
+#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
+#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
+#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
+#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
index f4b1f3a..8bb0f58 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
@@ -19,9 +19,9 @@
 #ifndef _UAPI__ASM_ARM_UNISTD_H
 #define _UAPI__ASM_ARM_UNISTD_H
 #define __NR_OABI_SYSCALL_BASE 0x900000
+#define __NR_SYSCALL_MASK 0x0fffff
 #define __NR_SYSCALL_BASE 0
 #include <asm/unistd-eabi.h>
-#include <asm/unistd-common.h>
 #define __NR_sync_file_range2 __NR_arm_sync_file_range
 #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0x0f0000)
 #define __ARM_NR_breakpoint (__ARM_NR_BASE + 1)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
index 8a70a52..4316724 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
@@ -69,4 +69,7 @@
 #define HWCAP2_RNG (1 << 16)
 #define HWCAP2_BTI (1 << 17)
 #define HWCAP2_MTE (1 << 18)
+#define HWCAP2_ECV (1 << 19)
+#define HWCAP2_AFP (1 << 20)
+#define HWCAP2_RPRES (1 << 21)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
index 014504a..c53ee87 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
@@ -115,6 +115,15 @@
   } exception;
   __u32 reserved[12];
 };
+struct kvm_arm_copy_mte_tags {
+  __u64 guest_ipa;
+  __u64 length;
+  void __user * addr;
+  __u64 flags;
+  __u64 reserved[2];
+};
+#define KVM_ARM_TAGS_TO_GUEST 0
+#define KVM_ARM_TAGS_FROM_GUEST 1
 #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
 #define KVM_REG_ARM_COPROC_SHIFT 16
 #define KVM_REG_ARM_CORE (0x0010 << KVM_REG_ARM_COPROC_SHIFT)
@@ -158,6 +167,10 @@
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL 2
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED 3
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED (1U << 4)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3 KVM_REG_ARM_FW_REG(3)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL 0
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL 1
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED 2
 #define KVM_REG_ARM64_SVE (0x15 << KVM_REG_ARM_COPROC_SHIFT)
 #define KVM_REG_ARM64_SVE_ZREG_BASE 0
 #define KVM_REG_ARM64_SVE_PREG_BASE 0x400
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
index e93f3f1..06b85ed 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
@@ -21,4 +21,5 @@
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
 #define __ARCH_WANT_SYS_CLONE3
+#define __ARCH_WANT_MEMFD_SECRET
 #include <asm-generic/unistd.h>
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
index a088ce5..9440576 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
@@ -60,6 +60,8 @@
 #define MADV_KEEPONFORK 19
 #define MADV_COLD 20
 #define MADV_PAGEOUT 21
+#define MADV_POPULATE_READ 22
+#define MADV_POPULATE_WRITE 23
 #define MAP_FILE 0
 #define PKEY_DISABLE_ACCESS 0x1
 #define PKEY_DISABLE_WRITE 0x2
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
index 8bcbabb..f9199e5 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
@@ -59,9 +59,6 @@
   } _sigchld;
   struct {
     void __user * _addr;
-#ifdef __ARCH_SI_TRAPNO
-    int _trapno;
-#endif
 #ifdef __ia64__
     int _imm;
     unsigned int _flags;
@@ -69,6 +66,7 @@
 #endif
 #define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? sizeof(short) : __alignof__(void *))
     union {
+      int _trapno;
       short _addr_lsb;
       struct {
         char _dummy_bnd[__ADDR_BND_PKEY_PAD];
@@ -79,6 +77,10 @@
         char _dummy_pkey[__ADDR_BND_PKEY_PAD];
         __u32 _pkey;
       } _addr_pkey;
+      struct {
+        unsigned long _data;
+        __u32 _type;
+      } _perf;
     };
   } _sigfault;
   struct {
@@ -116,13 +118,13 @@
 #define si_int _sifields._rt._sigval.sival_int
 #define si_ptr _sifields._rt._sigval.sival_ptr
 #define si_addr _sifields._sigfault._addr
-#ifdef __ARCH_SI_TRAPNO
 #define si_trapno _sifields._sigfault._trapno
-#endif
 #define si_addr_lsb _sifields._sigfault._addr_lsb
 #define si_lower _sifields._sigfault._addr_bnd._lower
 #define si_upper _sifields._sigfault._addr_bnd._upper
 #define si_pkey _sifields._sigfault._addr_pkey._pkey
+#define si_perf_data _sifields._sigfault._perf._data
+#define si_perf_type _sifields._sigfault._perf._type
 #define si_band _sifields._sigpoll._band
 #define si_fd _sifields._sigpoll._fd
 #define si_call_addr _sifields._sigsys._call_addr
@@ -193,7 +195,8 @@
 #define TRAP_BRANCH 3
 #define TRAP_HWBKPT 4
 #define TRAP_UNK 5
-#define NSIGTRAP 5
+#define TRAP_PERF 6
+#define NSIGTRAP 6
 #define CLD_EXITED 1
 #define CLD_KILLED 2
 #define CLD_DUMPED 3
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/socket.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/socket.h
index 7372be8..6767993 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/socket.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/socket.h
@@ -97,6 +97,9 @@
 #define SO_DETACH_REUSEPORT_BPF 68
 #define SO_PREFER_BUSY_POLL 69
 #define SO_BUSY_POLL_BUDGET 70
+#define SO_NETNS_COOKIE 71
+#define SO_BUF_LOCK 72
+#define SO_RESERVE_MEM 73
 #if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
 #define SO_TIMESTAMP SO_TIMESTAMP_OLD
 #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/unistd.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
index 1409701..4b9f174 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
@@ -403,8 +403,18 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#ifdef __ARCH_WANT_MEMFD_SECRET
+#define __NR_memfd_secret 447
+#endif
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #undef __NR_syscalls
-#define __NR_syscalls 443
+#define __NR_syscalls 451
 #if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
 #define __NR_fcntl __NR3264_fcntl
 #define __NR_statfs __NR3264_statfs
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
index 4fd53f0..dd86783 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
@@ -22,5 +22,5 @@
 #define AT_SYSINFO 32
 #endif
 #define AT_SYSINFO_EHDR 33
-#define AT_VECTOR_SIZE_ARCH 2
+#define AT_VECTOR_SIZE_ARCH 3
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
index aeb8b02..360f432 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
@@ -28,6 +28,7 @@
 #define DR_TRAP2 (0x4)
 #define DR_TRAP3 (0x8)
 #define DR_TRAP_BITS (DR_TRAP0 | DR_TRAP1 | DR_TRAP2 | DR_TRAP3)
+#define DR_BUS_LOCK (0x800)
 #define DR_STEP (0x4000)
 #define DR_SWITCH (0x8000)
 #define DR_CONTROL_SHIFT 16
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
index a6dbfb9..9f715c9 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef _ASM_X86_HWCAP2_H
 #define _ASM_X86_HWCAP2_H
-#define HWCAP2_RING3MWAIT (1 << 0)
-#define HWCAP2_FSGSBASE BIT(1)
+#include <linux/const.h>
+#define HWCAP2_RING3MWAIT _BITUL(0)
+#define HWCAP2_FSGSBASE _BITUL(1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
index 0d82c5d..caf8fc0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
@@ -146,6 +146,17 @@
   __u64 apic_base;
   __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64];
 };
+struct kvm_sregs2 {
+  struct kvm_segment cs, ds, es, fs, gs, ss;
+  struct kvm_segment tr, ldt;
+  struct kvm_dtable gdt, idt;
+  __u64 cr0, cr2, cr3, cr4, cr8;
+  __u64 efer;
+  __u64 apic_base;
+  __u64 flags;
+  __u64 pdptrs[4];
+};
+#define KVM_SREGS2_FLAGS_PDPTRS_VALID 1
 struct kvm_fpu {
   __u8 fpr[8][16];
   __u16 fcw;
@@ -246,6 +257,7 @@
 #define KVM_GUESTDBG_USE_HW_BP 0x00020000
 #define KVM_GUESTDBG_INJECT_DB 0x00040000
 #define KVM_GUESTDBG_INJECT_BP 0x00080000
+#define KVM_GUESTDBG_BLOCKIRQ 0x00100000
 struct kvm_guest_debug_arch {
   __u64 debugreg[8];
 };
@@ -310,6 +322,7 @@
 };
 struct kvm_xsave {
   __u32 region[1024];
+  __u32 extra[0];
 };
 #define KVM_MAX_XCRS 16
 struct kvm_xcr {
@@ -349,6 +362,7 @@
 #define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000
 #define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000
 #define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001
+#define KVM_X86_XCOMP_GUEST_SUPP 0
 struct kvm_vmx_nested_state_data {
   __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
   __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
@@ -359,6 +373,7 @@
   struct {
     __u16 flags;
   } smm;
+  __u16 pad;
   __u32 flags;
   __u64 preemption_timer_deadline;
 };
@@ -392,4 +407,6 @@
 };
 #define KVM_PMU_EVENT_ALLOW 0
 #define KVM_PMU_EVENT_DENY 1
+#define KVM_VCPU_TSC_CTRL 0
+#define KVM_VCPU_TSC_OFFSET 0
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
index 091fb27..dd72af0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
@@ -20,6 +20,7 @@
 #define _UAPI_ASM_X86_KVM_PARA_H
 #include <linux/types.h>
 #define KVM_CPUID_SIGNATURE 0x40000000
+#define KVM_SIGNATURE "KVMKVMKVM\0\0\0"
 #define KVM_CPUID_FEATURES 0x40000001
 #define KVM_FEATURE_CLOCKSOURCE 0
 #define KVM_FEATURE_NOP_IO_DELAY 1
@@ -36,6 +37,8 @@
 #define KVM_FEATURE_PV_SCHED_YIELD 13
 #define KVM_FEATURE_ASYNC_PF_INT 14
 #define KVM_FEATURE_MSI_EXT_DEST_ID 15
+#define KVM_FEATURE_HC_MAP_GPA_RANGE 16
+#define KVM_FEATURE_MIGRATION_CONTROL 17
 #define KVM_HINTS_REALTIME 0
 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24
 #define MSR_KVM_WALL_CLOCK 0x11
@@ -49,6 +52,7 @@
 #define MSR_KVM_POLL_CONTROL 0x4b564d05
 #define MSR_KVM_ASYNC_PF_INT 0x4b564d06
 #define MSR_KVM_ASYNC_PF_ACK 0x4b564d07
+#define MSR_KVM_MIGRATION_CONTROL 0x4b564d08
 struct kvm_steal_time {
   __u64 steal;
   __u32 version;
@@ -76,6 +80,13 @@
 #define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2)
 #define KVM_ASYNC_PF_DELIVERY_AS_INT (1 << 3)
 #define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0)
+#define KVM_MIGRATION_READY (1 << 0)
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_4K 0
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_2M (1 << 0)
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_1G (1 << 1)
+#define KVM_MAP_GPA_RANGE_ENC_STAT(n) (n << 4)
+#define KVM_MAP_GPA_RANGE_ENCRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(1)
+#define KVM_MAP_GPA_RANGE_DECRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(0)
 #define KVM_MMU_OP_WRITE_PTE 1
 #define KVM_MMU_OP_FLUSH_TLB 2
 #define KVM_MMU_OP_RELEASE_PT 3
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
index 0e6bed9..c5ba2d6 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
@@ -24,6 +24,11 @@
 #define ARCH_GET_GS 0x1004
 #define ARCH_GET_CPUID 0x1011
 #define ARCH_SET_CPUID 0x1012
+#define ARCH_GET_XCOMP_SUPP 0x1021
+#define ARCH_GET_XCOMP_PERM 0x1022
+#define ARCH_REQ_XCOMP_PERM 0x1023
+#define ARCH_GET_XCOMP_GUEST_PERM 0x1024
+#define ARCH_REQ_XCOMP_GUEST_PERM 0x1025
 #define ARCH_MAP_VDSO_X32 0x2001
 #define ARCH_MAP_VDSO_32 0x2002
 #define ARCH_MAP_VDSO_64 0x2003
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
index 349791a..1874b78 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
@@ -28,6 +28,7 @@
 #define SGX_IOC_ENCLAVE_ADD_PAGES _IOWR(SGX_MAGIC, 0x01, struct sgx_enclave_add_pages)
 #define SGX_IOC_ENCLAVE_INIT _IOW(SGX_MAGIC, 0x02, struct sgx_enclave_init)
 #define SGX_IOC_ENCLAVE_PROVISION _IOW(SGX_MAGIC, 0x03, struct sgx_enclave_provision)
+#define SGX_IOC_VEPC_REMOVE_ALL _IO(SGX_MAGIC, 0x04)
 struct sgx_enclave_create {
   __u64 src;
 };
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
index db9918b..d051481 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
@@ -123,6 +123,7 @@
 #define SVM_VMGEXIT_SET_AP_JUMP_TABLE 0
 #define SVM_VMGEXIT_GET_AP_JUMP_TABLE 1
 #define SVM_VMGEXIT_UNSUPPORTED_EVENT 0x8000ffff
+#define SVM_EXIT_SW 0xf0000000
 #define SVM_EXIT_ERR - 1
 #define SVM_EXIT_REASONS { SVM_EXIT_READ_CR0, "read_cr0" }, { SVM_EXIT_READ_CR2, "read_cr2" }, { SVM_EXIT_READ_CR3, "read_cr3" }, { SVM_EXIT_READ_CR4, "read_cr4" }, { SVM_EXIT_READ_CR8, "read_cr8" }, { SVM_EXIT_WRITE_CR0, "write_cr0" }, { SVM_EXIT_WRITE_CR2, "write_cr2" }, { SVM_EXIT_WRITE_CR3, "write_cr3" }, { SVM_EXIT_WRITE_CR4, "write_cr4" }, { SVM_EXIT_WRITE_CR8, "write_cr8" }, { SVM_EXIT_READ_DR0, "read_dr0" }, { SVM_EXIT_READ_DR1, "read_dr1" }, { SVM_EXIT_READ_DR2, "read_dr2" }, { SVM_EXIT_READ_DR3, "read_dr3" }, { SVM_EXIT_READ_DR4, "read_dr4" }, { SVM_EXIT_READ_DR5, "read_dr5" }, { SVM_EXIT_READ_DR6, "read_dr6" }, { SVM_EXIT_READ_DR7, "read_dr7" }, { SVM_EXIT_WRITE_DR0, "write_dr0" }, { SVM_EXIT_WRITE_DR1, "write_dr1" }, { SVM_EXIT_WRITE_DR2, "write_dr2" }, { SVM_EXIT_WRITE_DR3, "write_dr3" }, { SVM_EXIT_WRITE_DR4, "write_dr4" }, { SVM_EXIT_WRITE_DR5, "write_dr5" }, { SVM_EXIT_WRITE_DR6, "write_dr6" }, { SVM_EXIT_WRITE_DR7, "write_dr7" }, { SVM_EXIT_EXCP_BASE + DE_VECTOR, "DE excp" }, { SVM_EXIT_EXCP_BASE + DB_VECTOR, "DB excp" }, { SVM_EXIT_EXCP_BASE + BP_VECTOR, "BP excp" }, { SVM_EXIT_EXCP_BASE + OF_VECTOR, "OF excp" }, { SVM_EXIT_EXCP_BASE + BR_VECTOR, "BR excp" }, { SVM_EXIT_EXCP_BASE + UD_VECTOR, "UD excp" }, { SVM_EXIT_EXCP_BASE + NM_VECTOR, "NM excp" }, { SVM_EXIT_EXCP_BASE + DF_VECTOR, "DF excp" }, { SVM_EXIT_EXCP_BASE + TS_VECTOR, "TS excp" }, { SVM_EXIT_EXCP_BASE + NP_VECTOR, "NP excp" }, { SVM_EXIT_EXCP_BASE + SS_VECTOR, "SS excp" }, { SVM_EXIT_EXCP_BASE + GP_VECTOR, "GP excp" }, { SVM_EXIT_EXCP_BASE + PF_VECTOR, "PF excp" }, { SVM_EXIT_EXCP_BASE + MF_VECTOR, "MF excp" }, { SVM_EXIT_EXCP_BASE + AC_VECTOR, "AC excp" }, { SVM_EXIT_EXCP_BASE + MC_VECTOR, "MC excp" }, { SVM_EXIT_EXCP_BASE + XM_VECTOR, "XF excp" }, { SVM_EXIT_INTR, "interrupt" }, { SVM_EXIT_NMI, "nmi" }, { SVM_EXIT_SMI, "smi" }, { SVM_EXIT_INIT, "init" }, { SVM_EXIT_VINTR, "vintr" }, { SVM_EXIT_CR0_SEL_WRITE, "cr0_sel_write" }, { SVM_EXIT_IDTR_READ, "read_idtr" }, { SVM_EXIT_GDTR_READ, "read_gdtr" }, { SVM_EXIT_LDTR_READ, "read_ldtr" }, { SVM_EXIT_TR_READ, "read_rt" }, { SVM_EXIT_IDTR_WRITE, "write_idtr" }, { SVM_EXIT_GDTR_WRITE, "write_gdtr" }, { SVM_EXIT_LDTR_WRITE, "write_ldtr" }, { SVM_EXIT_TR_WRITE, "write_rt" }, { SVM_EXIT_RDTSC, "rdtsc" }, { SVM_EXIT_RDPMC, "rdpmc" }, { SVM_EXIT_PUSHF, "pushf" }, { SVM_EXIT_POPF, "popf" }, { SVM_EXIT_CPUID, "cpuid" }, { SVM_EXIT_RSM, "rsm" }, { SVM_EXIT_IRET, "iret" }, { SVM_EXIT_SWINT, "swint" }, { SVM_EXIT_INVD, "invd" }, { SVM_EXIT_PAUSE, "pause" }, { SVM_EXIT_HLT, "hlt" }, { SVM_EXIT_INVLPG, "invlpg" }, { SVM_EXIT_INVLPGA, "invlpga" }, { SVM_EXIT_IOIO, "io" }, { SVM_EXIT_MSR, "msr" }, { SVM_EXIT_TASK_SWITCH, "task_switch" }, { SVM_EXIT_FERR_FREEZE, "ferr_freeze" }, { SVM_EXIT_SHUTDOWN, "shutdown" }, { SVM_EXIT_VMRUN, "vmrun" }, { SVM_EXIT_VMMCALL, "hypercall" }, { SVM_EXIT_VMLOAD, "vmload" }, { SVM_EXIT_VMSAVE, "vmsave" }, { SVM_EXIT_STGI, "stgi" }, { SVM_EXIT_CLGI, "clgi" }, { SVM_EXIT_SKINIT, "skinit" }, { SVM_EXIT_RDTSCP, "rdtscp" }, { SVM_EXIT_ICEBP, "icebp" }, { SVM_EXIT_WBINVD, "wbinvd" }, { SVM_EXIT_MONITOR, "monitor" }, { SVM_EXIT_MWAIT, "mwait" }, { SVM_EXIT_XSETBV, "xsetbv" }, { SVM_EXIT_EFER_WRITE_TRAP, "write_efer_trap" }, { SVM_EXIT_CR0_WRITE_TRAP, "write_cr0_trap" }, { SVM_EXIT_CR4_WRITE_TRAP, "write_cr4_trap" }, { SVM_EXIT_CR8_WRITE_TRAP, "write_cr8_trap" }, { SVM_EXIT_INVPCID, "invpcid" }, { SVM_EXIT_NPF, "npf" }, { SVM_EXIT_AVIC_INCOMPLETE_IPI, "avic_incomplete_ipi" }, { SVM_EXIT_AVIC_UNACCELERATED_ACCESS, "avic_unaccelerated_access" }, { SVM_EXIT_VMGEXIT, "vmgexit" }, { SVM_VMGEXIT_MMIO_READ, "vmgexit_mmio_read" }, { SVM_VMGEXIT_MMIO_WRITE, "vmgexit_mmio_write" }, { SVM_VMGEXIT_NMI_COMPLETE, "vmgexit_nmi_complete" }, { SVM_VMGEXIT_AP_HLT_LOOP, "vmgexit_ap_hlt_loop" }, { SVM_VMGEXIT_AP_JUMP_TABLE, "vmgexit_ap_jump_table" }, { SVM_EXIT_ERR, "invalid_guest_state" }
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
index 7fe2421..8e57516 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_32_H
-#define _ASM_X86_UNISTD_32_H 1
+#ifndef _UAPI_ASM_UNISTD_32_H
+#define _UAPI_ASM_UNISTD_32_H
 #define __NR_restart_syscall 0
 #define __NR_exit 1
 #define __NR_fork 2
@@ -450,4 +450,12 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
index 7e3c924..54ff16f 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_64_H
-#define _ASM_X86_UNISTD_64_H 1
+#ifndef _UAPI_ASM_UNISTD_64_H
+#define _UAPI_ASM_UNISTD_64_H
 #define __NR_read 0
 #define __NR_write 1
 #define __NR_open 2
@@ -372,4 +372,12 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
index 529ded3..1e05d75 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_X32_H
-#define _ASM_X86_UNISTD_X32_H 1
+#ifndef _UAPI_ASM_UNISTD_X32_H
+#define _UAPI_ASM_UNISTD_X32_H
 #define __NR_read (__X32_SYSCALL_BIT + 0)
 #define __NR_write (__X32_SYSCALL_BIT + 1)
 #define __NR_open (__X32_SYSCALL_BIT + 2)
@@ -325,6 +325,14 @@
 #define __NR_process_madvise (__X32_SYSCALL_BIT + 440)
 #define __NR_epoll_pwait2 (__X32_SYSCALL_BIT + 441)
 #define __NR_mount_setattr (__X32_SYSCALL_BIT + 442)
+#define __NR_quotactl_fd (__X32_SYSCALL_BIT + 443)
+#define __NR_landlock_create_ruleset (__X32_SYSCALL_BIT + 444)
+#define __NR_landlock_add_rule (__X32_SYSCALL_BIT + 445)
+#define __NR_landlock_restrict_self (__X32_SYSCALL_BIT + 446)
+#define __NR_memfd_secret (__X32_SYSCALL_BIT + 447)
+#define __NR_process_mrelease (__X32_SYSCALL_BIT + 448)
+#define __NR_futex_waitv (__X32_SYSCALL_BIT + 449)
+#define __NR_set_mempolicy_home_node (__X32_SYSCALL_BIT + 450)
 #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
 #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
 #define __NR_ioctl (__X32_SYSCALL_BIT + 514)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
index 1771faa..6c07d4c 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
@@ -19,6 +19,7 @@
 #ifndef _UAPIVMX_H
 #define _UAPIVMX_H
 #define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000
+#define VMX_EXIT_REASONS_SGX_ENCLAVE_MODE 0x08000000
 #define EXIT_REASON_EXCEPTION_NMI 0
 #define EXIT_REASON_EXTERNAL_INTERRUPT 1
 #define EXIT_REASON_TRIPLE_FAULT 2
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
index f8eb023..3764d51 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
@@ -65,13 +65,13 @@
 #define AMDGPU_GEM_CREATE_NO_CPU_ACCESS (1 << 1)
 #define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2)
 #define AMDGPU_GEM_CREATE_VRAM_CLEARED (1 << 3)
-#define AMDGPU_GEM_CREATE_SHADOW (1 << 4)
 #define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5)
 #define AMDGPU_GEM_CREATE_VM_ALWAYS_VALID (1 << 6)
 #define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7)
 #define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8)
 #define AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE (1 << 9)
 #define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10)
+#define AMDGPU_GEM_CREATE_PREEMPTIBLE (1 << 11)
 struct drm_amdgpu_gem_create_in {
   __u64 bo_size;
   __u64 alignment;
@@ -452,6 +452,7 @@
 #define AMDGPU_INFO_VBIOS 0x1B
 #define AMDGPU_INFO_VBIOS_SIZE 0x1
 #define AMDGPU_INFO_VBIOS_IMAGE 0x2
+#define AMDGPU_INFO_VBIOS_INFO 0x3
 #define AMDGPU_INFO_NUM_HANDLES 0x1C
 #define AMDGPU_INFO_SENSOR 0x1D
 #define AMDGPU_INFO_SENSOR_GFX_SCLK 0x1
@@ -480,6 +481,9 @@
 #define AMDGPU_INFO_RAS_ENABLED_MP0 (1 << 11)
 #define AMDGPU_INFO_RAS_ENABLED_MP1 (1 << 12)
 #define AMDGPU_INFO_RAS_ENABLED_FUSE (1 << 13)
+#define AMDGPU_INFO_VIDEO_CAPS 0x21
+#define AMDGPU_INFO_VIDEO_CAPS_DECODE 0
+#define AMDGPU_INFO_VIDEO_CAPS_ENCODE 1
 #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
 #define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
 #define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8
@@ -517,6 +521,9 @@
     struct {
       __u32 type;
     } sensor_info;
+    struct {
+      __u32 type;
+    } video_cap;
   };
 };
 struct drm_amdgpu_info_gds {
@@ -549,6 +556,14 @@
   __u32 ver;
   __u32 feature;
 };
+struct drm_amdgpu_info_vbios {
+  __u8 name[64];
+  __u8 vbios_pn[64];
+  __u32 version;
+  __u32 pad;
+  __u8 vbios_ver_str[32];
+  __u8 date[32];
+};
 #define AMDGPU_VRAM_TYPE_UNKNOWN 0
 #define AMDGPU_VRAM_TYPE_GDDR1 1
 #define AMDGPU_VRAM_TYPE_DDR2 2
@@ -636,6 +651,26 @@
   __u32 num_valid_entries;
   __u32 pad;
 };
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2 0
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4 1
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1 2
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC 3
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC 4
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG 5
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9 6
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_AV1 7
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT 8
+struct drm_amdgpu_info_video_codec_info {
+  __u32 valid;
+  __u32 max_width;
+  __u32 max_height;
+  __u32 max_pixels_per_frame;
+  __u32 max_level;
+  __u32 pad;
+};
+struct drm_amdgpu_info_video_caps {
+  struct drm_amdgpu_info_video_codec_info codec_info[AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT];
+};
 #define AMDGPU_FAMILY_UNKNOWN 0
 #define AMDGPU_FAMILY_SI 110
 #define AMDGPU_FAMILY_CI 120
@@ -646,6 +681,7 @@
 #define AMDGPU_FAMILY_RV 142
 #define AMDGPU_FAMILY_NV 143
 #define AMDGPU_FAMILY_VGH 144
+#define AMDGPU_FAMILY_YC 146
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
index 4574c1c..e845c8c 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
@@ -27,6 +27,8 @@
 #define DRM_FORMAT_INVALID 0
 #define DRM_FORMAT_C8 fourcc_code('C', '8', ' ', ' ')
 #define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ')
+#define DRM_FORMAT_R10 fourcc_code('R', '1', '0', ' ')
+#define DRM_FORMAT_R12 fourcc_code('R', '1', '2', ' ')
 #define DRM_FORMAT_R16 fourcc_code('R', '1', '6', ' ')
 #define DRM_FORMAT_RG88 fourcc_code('R', 'G', '8', '8')
 #define DRM_FORMAT_GR88 fourcc_code('G', 'R', '8', '8')
@@ -70,6 +72,10 @@
 #define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0')
 #define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0')
 #define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0')
+#define DRM_FORMAT_XRGB16161616 fourcc_code('X', 'R', '4', '8')
+#define DRM_FORMAT_XBGR16161616 fourcc_code('X', 'B', '4', '8')
+#define DRM_FORMAT_ARGB16161616 fourcc_code('A', 'R', '4', '8')
+#define DRM_FORMAT_ABGR16161616 fourcc_code('A', 'B', '4', '8')
 #define DRM_FORMAT_XRGB16161616F fourcc_code('X', 'R', '4', 'H')
 #define DRM_FORMAT_XBGR16161616F fourcc_code('X', 'B', '4', 'H')
 #define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H')
@@ -117,6 +123,7 @@
 #define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0')
 #define DRM_FORMAT_P012 fourcc_code('P', '0', '1', '2')
 #define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6')
+#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0')
 #define DRM_FORMAT_Q410 fourcc_code('Q', '4', '1', '0')
 #define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1')
 #define DRM_FORMAT_YUV410 fourcc_code('Y', 'U', 'V', '9')
@@ -141,6 +148,8 @@
 #define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
 #define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
 #define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
+#define fourcc_mod_get_vendor(modifier) (((modifier) >> 56) & 0xff)
+#define fourcc_mod_is_vendor(modifier,vendor) (fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_ ##vendor)
 #define fourcc_mod_code(vendor,val) ((((__u64) DRM_FORMAT_MOD_VENDOR_ ##vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
 #define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE
 #define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
@@ -203,6 +212,15 @@
 #define AFBC_FORMAT_MOD_DB (1ULL << 10)
 #define AFBC_FORMAT_MOD_BCH (1ULL << 11)
 #define AFBC_FORMAT_MOD_USM (1ULL << 12)
+#define DRM_FORMAT_MOD_ARM_TYPE_AFRC 0x02
+#define DRM_FORMAT_MOD_ARM_AFRC(__afrc_mode) DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFRC, __afrc_mode)
+#define AFRC_FORMAT_MOD_CU_SIZE_MASK 0xf
+#define AFRC_FORMAT_MOD_CU_SIZE_16 (1ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_24 (2ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_32 (3ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_P0(__afrc_cu_size) (__afrc_cu_size)
+#define AFRC_FORMAT_MOD_CU_SIZE_P12(__afrc_cu_size) ((__afrc_cu_size) << 4)
+#define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8)
 #define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
 #define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1)
 #define __fourcc_mod_amlogic_layout_mask 0xff
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/drm_mode.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/drm_mode.h
index 643ae98..9a6a6d9 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/drm_mode.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/drm_mode.h
@@ -223,6 +223,7 @@
 #define DRM_MODE_CONNECTOR_DPI 17
 #define DRM_MODE_CONNECTOR_WRITEBACK 18
 #define DRM_MODE_CONNECTOR_SPI 19
+#define DRM_MODE_CONNECTOR_USB 20
 struct drm_mode_get_connector {
   __u64 encoders_ptr;
   __u64 modes_ptr;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
index c92d110..7f8d5fa 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
@@ -53,6 +53,9 @@
 #define ETNAVIV_PARAM_GPU_NUM_CONSTANTS 0x19
 #define ETNAVIV_PARAM_GPU_NUM_VARYINGS 0x1a
 #define ETNAVIV_PARAM_SOFTPIN_START_ADDR 0x1b
+#define ETNAVIV_PARAM_GPU_PRODUCT_ID 0x1c
+#define ETNAVIV_PARAM_GPU_CUSTOMER_ID 0x1d
+#define ETNAVIV_PARAM_GPU_ECO_ID 0x1e
 #define ETNA_MAX_PIPES 4
 struct drm_etnaviv_param {
   __u32 pipe;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/i915_drm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/i915_drm.h
index f265d92..52bfad2 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/i915_drm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/i915_drm.h
@@ -217,6 +217,7 @@
 #define DRM_I915_QUERY 0x39
 #define DRM_I915_GEM_VM_CREATE 0x3a
 #define DRM_I915_GEM_VM_DESTROY 0x3b
+#define DRM_I915_GEM_CREATE_EXT 0x3c
 #define DRM_IOCTL_I915_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
 #define DRM_IOCTL_I915_FLUSH DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLUSH)
 #define DRM_IOCTL_I915_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLIP)
@@ -247,6 +248,7 @@
 #define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
 #define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
 #define DRM_IOCTL_I915_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create)
+#define DRM_IOCTL_I915_GEM_CREATE_EXT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE_EXT, struct drm_i915_gem_create_ext)
 #define DRM_IOCTL_I915_GEM_PREAD DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
 #define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
 #define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
@@ -349,6 +351,7 @@
 #define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2)
 #define I915_SCHEDULER_CAP_SEMAPHORES (1ul << 3)
 #define I915_SCHEDULER_CAP_ENGINE_BUSY_STATS (1ul << 4)
+#define I915_SCHEDULER_CAP_STATIC_PRIORITY_MAP (1ul << 5)
 #define I915_PARAM_HUC_STATUS 42
 #define I915_PARAM_HAS_EXEC_ASYNC 43
 #define I915_PARAM_HAS_EXEC_FENCE 44
@@ -363,6 +366,7 @@
 #define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
 #define I915_PARAM_PERF_REVISION 54
 #define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55
+#define I915_PARAM_HAS_USERPTR_PROBE 56
 typedef struct drm_i915_getparam {
   __s32 param;
   int __user * value;
@@ -453,6 +457,7 @@
 #define I915_MMAP_OFFSET_WC 1
 #define I915_MMAP_OFFSET_WB 2
 #define I915_MMAP_OFFSET_UC 3
+#define I915_MMAP_OFFSET_FIXED 4
   __u64 extensions;
 };
 struct drm_i915_gem_set_domain {
@@ -590,11 +595,11 @@
   __u32 handle;
   __u32 busy;
 };
+struct drm_i915_gem_caching {
+  __u32 handle;
 #define I915_CACHING_NONE 0
 #define I915_CACHING_CACHED 1
 #define I915_CACHING_DISPLAY 2
-struct drm_i915_gem_caching {
-  __u32 handle;
   __u32 caching;
 };
 #define I915_TILING_NONE 0
@@ -736,6 +741,7 @@
 #define I915_CONTEXT_PARAM_ENGINES 0xa
 #define I915_CONTEXT_PARAM_PERSISTENCE 0xb
 #define I915_CONTEXT_PARAM_RINGSIZE 0xc
+#define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd
   __u64 value;
 };
 struct drm_i915_gem_context_param_sseu {
@@ -769,10 +775,23 @@
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__,N__) struct { struct i915_user_extension base; struct i915_engine_class_instance master; __u16 virtual_index; __u16 num_bonds; __u64 flags; __u64 mbz64[4]; struct i915_engine_class_instance engines[N__]; \
 } __attribute__((packed)) name__
+struct i915_context_engines_parallel_submit {
+  struct i915_user_extension base;
+  __u16 engine_index;
+  __u16 width;
+  __u16 num_siblings;
+  __u16 mbz16;
+  __u64 flags;
+  __u64 mbz64[3];
+  struct i915_engine_class_instance engines[0];
+} __packed;
+#define I915_DEFINE_CONTEXT_ENGINES_PARALLEL_SUBMIT(name__,N__) struct { struct i915_user_extension base; __u16 engine_index; __u16 width; __u16 num_siblings; __u16 mbz16; __u64 flags; __u64 mbz64[3]; struct i915_engine_class_instance engines[N__]; \
+} __attribute__((packed)) name__
 struct i915_context_param_engines {
   __u64 extensions;
 #define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0
 #define I915_CONTEXT_ENGINES_EXT_BOND 1
+#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2
   struct i915_engine_class_instance engines[0];
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_PARAM_ENGINES(name__,N__) struct { __u64 extensions; struct i915_engine_class_instance engines[N__]; \
@@ -782,20 +801,7 @@
   struct i915_user_extension base;
   struct drm_i915_gem_context_param param;
 };
-struct drm_i915_gem_context_create_ext_clone {
 #define I915_CONTEXT_CREATE_EXT_CLONE 1
-  struct i915_user_extension base;
-  __u32 clone_id;
-  __u32 flags;
-#define I915_CONTEXT_CLONE_ENGINES (1u << 0)
-#define I915_CONTEXT_CLONE_FLAGS (1u << 1)
-#define I915_CONTEXT_CLONE_SCHEDATTR (1u << 2)
-#define I915_CONTEXT_CLONE_SSEU (1u << 3)
-#define I915_CONTEXT_CLONE_TIMELINE (1u << 4)
-#define I915_CONTEXT_CLONE_VM (1u << 5)
-#define I915_CONTEXT_CLONE_UNKNOWN - (I915_CONTEXT_CLONE_VM << 1)
-  __u64 rsvd;
-};
 struct drm_i915_gem_context_destroy {
   __u32 ctx_id;
   __u32 pad;
@@ -823,6 +829,7 @@
   __u64 user_size;
   __u32 flags;
 #define I915_USERPTR_READ_ONLY 0x1
+#define I915_USERPTR_PROBE 0x2
 #define I915_USERPTR_UNSYNCHRONIZED 0x80000000
   __u32 handle;
 };
@@ -886,6 +893,7 @@
 #define DRM_I915_QUERY_TOPOLOGY_INFO 1
 #define DRM_I915_QUERY_ENGINE_INFO 2
 #define DRM_I915_QUERY_PERF_CONFIG 3
+#define DRM_I915_QUERY_MEMORY_REGIONS 4
   __s32 length;
   __u32 flags;
 #define DRM_I915_QUERY_PERF_CONFIG_LIST 1
@@ -913,10 +921,13 @@
   struct i915_engine_class_instance engine;
   __u32 rsvd0;
   __u64 flags;
+#define I915_ENGINE_INFO_HAS_LOGICAL_INSTANCE (1 << 0)
   __u64 capabilities;
 #define I915_VIDEO_CLASS_CAPABILITY_HEVC (1 << 0)
 #define I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC (1 << 1)
-  __u64 rsvd1[4];
+  __u16 logical_instance;
+  __u16 rsvd1[3];
+  __u64 rsvd2[3];
 };
 struct drm_i915_query_engine_info {
   __u32 num_engines;
@@ -932,6 +943,45 @@
   __u32 flags;
   __u8 data[];
 };
+enum drm_i915_gem_memory_class {
+  I915_MEMORY_CLASS_SYSTEM = 0,
+  I915_MEMORY_CLASS_DEVICE,
+};
+struct drm_i915_gem_memory_class_instance {
+  __u16 memory_class;
+  __u16 memory_instance;
+};
+struct drm_i915_memory_region_info {
+  struct drm_i915_gem_memory_class_instance region;
+  __u32 rsvd0;
+  __u64 probed_size;
+  __u64 unallocated_size;
+  __u64 rsvd1[8];
+};
+struct drm_i915_query_memory_regions {
+  __u32 num_regions;
+  __u32 rsvd[3];
+  struct drm_i915_memory_region_info regions[];
+};
+struct drm_i915_gem_create_ext {
+  __u64 size;
+  __u32 handle;
+  __u32 flags;
+#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0
+#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1
+  __u64 extensions;
+};
+struct drm_i915_gem_create_ext_memory_regions {
+  struct i915_user_extension base;
+  __u32 pad;
+  __u32 num_regions;
+  __u64 regions;
+};
+struct drm_i915_gem_create_ext_protected_content {
+  struct i915_user_extension base;
+  __u32 flags;
+};
+#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/mga_drm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/mga_drm.h
index 4959502..dc62961 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/mga_drm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/mga_drm.h
@@ -175,7 +175,7 @@
     MGA_CLEANUP_DMA = 0x02
   } func;
   unsigned long sarea_priv_offset;
-  int chipset;
+  __struct_group(, always32bit,, int chipset;
   int sgram;
   unsigned int maccess;
   unsigned int fb_cpp;
@@ -185,6 +185,7 @@
   unsigned int depth_offset, depth_pitch;
   unsigned int texture_offset[MGA_NR_TEX_HEAPS];
   unsigned int texture_size[MGA_NR_TEX_HEAPS];
+ );
   unsigned long fb_offset;
   unsigned long mmio_offset;
   unsigned long status_offset;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/msm_drm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/msm_drm.h
index fcfcc20..b4ba1d0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/msm_drm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/msm_drm.h
@@ -39,9 +39,11 @@
 #define MSM_PARAM_MAX_FREQ 0x04
 #define MSM_PARAM_TIMESTAMP 0x05
 #define MSM_PARAM_GMEM_BASE 0x06
-#define MSM_PARAM_NR_RINGS 0x07
+#define MSM_PARAM_PRIORITIES 0x07
 #define MSM_PARAM_PP_PGTABLE 0x08
 #define MSM_PARAM_FAULTS 0x09
+#define MSM_PARAM_SUSPENDS 0x0a
+#define MSM_PARAM_NR_RINGS MSM_PARAM_PRIORITIES
 struct drm_msm_param {
   __u32 pipe;
   __u32 param;
@@ -53,7 +55,8 @@
 #define MSM_BO_CACHED 0x00010000
 #define MSM_BO_WC 0x00020000
 #define MSM_BO_UNCACHED 0x00040000
-#define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHED | MSM_BO_WC | MSM_BO_UNCACHED)
+#define MSM_BO_CACHED_COHERENT 0x080000
+#define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHE_MASK)
 struct drm_msm_gem_new {
   __u64 size;
   __u32 flags;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
index f8b8aa1..1f4473d 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
@@ -110,6 +110,7 @@
   DRM_PANFROST_PARAM_JS_FEATURES15,
   DRM_PANFROST_PARAM_NR_CORE_GROUPS,
   DRM_PANFROST_PARAM_THREAD_TLS_ALLOC,
+  DRM_PANFROST_PARAM_AFBC_FEATURES,
 };
 struct drm_panfrost_get_param {
   __u32 param;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/tegra_drm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
index 5244a27..5e90635 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
@@ -163,6 +163,104 @@
 #define DRM_IOCTL_TEGRA_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_TILING, struct drm_tegra_gem_get_tiling)
 #define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags)
 #define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags)
+#define DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT (1 << 0)
+struct drm_tegra_channel_open {
+  __u32 host1x_class;
+  __u32 flags;
+  __u32 context;
+  __u32 version;
+  __u32 capabilities;
+  __u32 padding;
+};
+struct drm_tegra_channel_close {
+  __u32 context;
+  __u32 padding;
+};
+#define DRM_TEGRA_CHANNEL_MAP_READ (1 << 0)
+#define DRM_TEGRA_CHANNEL_MAP_WRITE (1 << 1)
+#define DRM_TEGRA_CHANNEL_MAP_READ_WRITE (DRM_TEGRA_CHANNEL_MAP_READ | DRM_TEGRA_CHANNEL_MAP_WRITE)
+struct drm_tegra_channel_map {
+  __u32 context;
+  __u32 handle;
+  __u32 flags;
+  __u32 mapping;
+};
+struct drm_tegra_channel_unmap {
+  __u32 context;
+  __u32 mapping;
+};
+#define DRM_TEGRA_SUBMIT_RELOC_SECTOR_LAYOUT (1 << 0)
+struct drm_tegra_submit_buf {
+  __u32 mapping;
+  __u32 flags;
+  struct {
+    __u64 target_offset;
+    __u32 gather_offset_words;
+    __u32 shift;
+  } reloc;
+};
+#define DRM_TEGRA_SUBMIT_CMD_GATHER_UPTR 0
+#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT 1
+#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT_RELATIVE 2
+struct drm_tegra_submit_cmd_gather_uptr {
+  __u32 words;
+  __u32 reserved[3];
+};
+struct drm_tegra_submit_cmd_wait_syncpt {
+  __u32 id;
+  __u32 value;
+  __u32 reserved[2];
+};
+struct drm_tegra_submit_cmd {
+  __u32 type;
+  __u32 flags;
+  union {
+    struct drm_tegra_submit_cmd_gather_uptr gather_uptr;
+    struct drm_tegra_submit_cmd_wait_syncpt wait_syncpt;
+    __u32 reserved[4];
+  };
+};
+struct drm_tegra_submit_syncpt {
+  __u32 id;
+  __u32 flags;
+  __u32 increments;
+  __u32 value;
+};
+struct drm_tegra_channel_submit {
+  __u32 context;
+  __u32 num_bufs;
+  __u32 num_cmds;
+  __u32 gather_data_words;
+  __u64 bufs_ptr;
+  __u64 cmds_ptr;
+  __u64 gather_data_ptr;
+  __u32 syncobj_in;
+  __u32 syncobj_out;
+  struct drm_tegra_submit_syncpt syncpt;
+};
+struct drm_tegra_syncpoint_allocate {
+  __u32 id;
+  __u32 padding;
+};
+struct drm_tegra_syncpoint_free {
+  __u32 id;
+  __u32 padding;
+};
+struct drm_tegra_syncpoint_wait {
+  __s64 timeout_ns;
+  __u32 id;
+  __u32 threshold;
+  __u32 value;
+  __u32 padding;
+};
+#define DRM_IOCTL_TEGRA_CHANNEL_OPEN DRM_IOWR(DRM_COMMAND_BASE + 0x10, struct drm_tegra_channel_open)
+#define DRM_IOCTL_TEGRA_CHANNEL_CLOSE DRM_IOWR(DRM_COMMAND_BASE + 0x11, struct drm_tegra_channel_close)
+#define DRM_IOCTL_TEGRA_CHANNEL_MAP DRM_IOWR(DRM_COMMAND_BASE + 0x12, struct drm_tegra_channel_map)
+#define DRM_IOCTL_TEGRA_CHANNEL_UNMAP DRM_IOWR(DRM_COMMAND_BASE + 0x13, struct drm_tegra_channel_unmap)
+#define DRM_IOCTL_TEGRA_CHANNEL_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + 0x14, struct drm_tegra_channel_submit)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_ALLOCATE DRM_IOWR(DRM_COMMAND_BASE + 0x20, struct drm_tegra_syncpoint_allocate)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_FREE DRM_IOWR(DRM_COMMAND_BASE + 0x21, struct drm_tegra_syncpoint_free)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_WAIT DRM_IOWR(DRM_COMMAND_BASE + 0x22, struct drm_tegra_syncpoint_wait)
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/v3d_drm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
index cdc2cf5..5887678 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
@@ -30,6 +30,9 @@
 #define DRM_V3D_GET_BO_OFFSET 0x05
 #define DRM_V3D_SUBMIT_TFU 0x06
 #define DRM_V3D_SUBMIT_CSD 0x07
+#define DRM_V3D_PERFMON_CREATE 0x08
+#define DRM_V3D_PERFMON_DESTROY 0x09
+#define DRM_V3D_PERFMON_GET_VALUES 0x0a
 #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
 #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo)
 #define DRM_IOCTL_V3D_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_CREATE_BO, struct drm_v3d_create_bo)
@@ -38,7 +41,39 @@
 #define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset)
 #define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu)
 #define DRM_IOCTL_V3D_SUBMIT_CSD DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd)
+#define DRM_IOCTL_V3D_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_CREATE, struct drm_v3d_perfmon_create)
+#define DRM_IOCTL_V3D_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_DESTROY, struct drm_v3d_perfmon_destroy)
+#define DRM_IOCTL_V3D_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_VALUES, struct drm_v3d_perfmon_get_values)
 #define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01
+#define DRM_V3D_SUBMIT_EXTENSION 0x02
+struct drm_v3d_extension {
+  __u64 next;
+  __u32 id;
+#define DRM_V3D_EXT_ID_MULTI_SYNC 0x01
+  __u32 flags;
+};
+struct drm_v3d_sem {
+  __u32 handle;
+  __u32 flags;
+  __u64 point;
+  __u64 mbz[2];
+};
+enum v3d_queue {
+  V3D_BIN,
+  V3D_RENDER,
+  V3D_TFU,
+  V3D_CSD,
+  V3D_CACHE_CLEAN,
+};
+struct drm_v3d_multi_sync {
+  struct drm_v3d_extension base;
+  __u64 in_syncs;
+  __u64 out_syncs;
+  __u32 in_sync_count;
+  __u32 out_sync_count;
+  __u32 wait_stage;
+  __u32 pad;
+};
 struct drm_v3d_submit_cl {
   __u32 bcl_start;
   __u32 bcl_end;
@@ -53,6 +88,9 @@
   __u64 bo_handles;
   __u32 bo_handle_count;
   __u32 flags;
+  __u32 perfmon_id;
+  __u32 pad;
+  __u64 extensions;
 };
 struct drm_v3d_wait_bo {
   __u32 handle;
@@ -81,6 +119,8 @@
   DRM_V3D_PARAM_SUPPORTS_TFU,
   DRM_V3D_PARAM_SUPPORTS_CSD,
   DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH,
+  DRM_V3D_PARAM_SUPPORTS_PERFMON,
+  DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT,
 };
 struct drm_v3d_get_param {
   __u32 param;
@@ -103,6 +143,8 @@
   __u32 bo_handles[4];
   __u32 in_sync;
   __u32 out_sync;
+  __u32 flags;
+  __u64 extensions;
 };
 struct drm_v3d_submit_csd {
   __u32 cfg[7];
@@ -111,6 +153,114 @@
   __u32 bo_handle_count;
   __u32 in_sync;
   __u32 out_sync;
+  __u32 perfmon_id;
+  __u64 extensions;
+  __u32 flags;
+  __u32 pad;
+};
+enum {
+  V3D_PERFCNT_FEP_VALID_PRIMTS_NO_PIXELS,
+  V3D_PERFCNT_FEP_VALID_PRIMS,
+  V3D_PERFCNT_FEP_EZ_NFCLIP_QUADS,
+  V3D_PERFCNT_FEP_VALID_QUADS,
+  V3D_PERFCNT_TLB_QUADS_STENCIL_FAIL,
+  V3D_PERFCNT_TLB_QUADS_STENCILZ_FAIL,
+  V3D_PERFCNT_TLB_QUADS_STENCILZ_PASS,
+  V3D_PERFCNT_TLB_QUADS_ZERO_COV,
+  V3D_PERFCNT_TLB_QUADS_NONZERO_COV,
+  V3D_PERFCNT_TLB_QUADS_WRITTEN,
+  V3D_PERFCNT_PTB_PRIM_VIEWPOINT_DISCARD,
+  V3D_PERFCNT_PTB_PRIM_CLIP,
+  V3D_PERFCNT_PTB_PRIM_REV,
+  V3D_PERFCNT_QPU_IDLE_CYCLES,
+  V3D_PERFCNT_QPU_ACTIVE_CYCLES_VERTEX_COORD_USER,
+  V3D_PERFCNT_QPU_ACTIVE_CYCLES_FRAG,
+  V3D_PERFCNT_QPU_CYCLES_VALID_INSTR,
+  V3D_PERFCNT_QPU_CYCLES_TMU_STALL,
+  V3D_PERFCNT_QPU_CYCLES_SCOREBOARD_STALL,
+  V3D_PERFCNT_QPU_CYCLES_VARYINGS_STALL,
+  V3D_PERFCNT_QPU_IC_HIT,
+  V3D_PERFCNT_QPU_IC_MISS,
+  V3D_PERFCNT_QPU_UC_HIT,
+  V3D_PERFCNT_QPU_UC_MISS,
+  V3D_PERFCNT_TMU_TCACHE_ACCESS,
+  V3D_PERFCNT_TMU_TCACHE_MISS,
+  V3D_PERFCNT_VPM_VDW_STALL,
+  V3D_PERFCNT_VPM_VCD_STALL,
+  V3D_PERFCNT_BIN_ACTIVE,
+  V3D_PERFCNT_RDR_ACTIVE,
+  V3D_PERFCNT_L2T_HITS,
+  V3D_PERFCNT_L2T_MISSES,
+  V3D_PERFCNT_CYCLE_COUNT,
+  V3D_PERFCNT_QPU_CYCLES_STALLED_VERTEX_COORD_USER,
+  V3D_PERFCNT_QPU_CYCLES_STALLED_FRAGMENT,
+  V3D_PERFCNT_PTB_PRIMS_BINNED,
+  V3D_PERFCNT_AXI_WRITES_WATCH_0,
+  V3D_PERFCNT_AXI_READS_WATCH_0,
+  V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_0,
+  V3D_PERFCNT_AXI_READ_STALLS_WATCH_0,
+  V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_0,
+  V3D_PERFCNT_AXI_READ_BYTES_WATCH_0,
+  V3D_PERFCNT_AXI_WRITES_WATCH_1,
+  V3D_PERFCNT_AXI_READS_WATCH_1,
+  V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_1,
+  V3D_PERFCNT_AXI_READ_STALLS_WATCH_1,
+  V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_1,
+  V3D_PERFCNT_AXI_READ_BYTES_WATCH_1,
+  V3D_PERFCNT_TLB_PARTIAL_QUADS,
+  V3D_PERFCNT_TMU_CONFIG_ACCESSES,
+  V3D_PERFCNT_L2T_NO_ID_STALL,
+  V3D_PERFCNT_L2T_COM_QUE_STALL,
+  V3D_PERFCNT_L2T_TMU_WRITES,
+  V3D_PERFCNT_TMU_ACTIVE_CYCLES,
+  V3D_PERFCNT_TMU_STALLED_CYCLES,
+  V3D_PERFCNT_CLE_ACTIVE,
+  V3D_PERFCNT_L2T_TMU_READS,
+  V3D_PERFCNT_L2T_CLE_READS,
+  V3D_PERFCNT_L2T_VCD_READS,
+  V3D_PERFCNT_L2T_TMUCFG_READS,
+  V3D_PERFCNT_L2T_SLC0_READS,
+  V3D_PERFCNT_L2T_SLC1_READS,
+  V3D_PERFCNT_L2T_SLC2_READS,
+  V3D_PERFCNT_L2T_TMU_W_MISSES,
+  V3D_PERFCNT_L2T_TMU_R_MISSES,
+  V3D_PERFCNT_L2T_CLE_MISSES,
+  V3D_PERFCNT_L2T_VCD_MISSES,
+  V3D_PERFCNT_L2T_TMUCFG_MISSES,
+  V3D_PERFCNT_L2T_SLC0_MISSES,
+  V3D_PERFCNT_L2T_SLC1_MISSES,
+  V3D_PERFCNT_L2T_SLC2_MISSES,
+  V3D_PERFCNT_CORE_MEM_WRITES,
+  V3D_PERFCNT_L2T_MEM_WRITES,
+  V3D_PERFCNT_PTB_MEM_WRITES,
+  V3D_PERFCNT_TLB_MEM_WRITES,
+  V3D_PERFCNT_CORE_MEM_READS,
+  V3D_PERFCNT_L2T_MEM_READS,
+  V3D_PERFCNT_PTB_MEM_READS,
+  V3D_PERFCNT_PSE_MEM_READS,
+  V3D_PERFCNT_TLB_MEM_READS,
+  V3D_PERFCNT_GMP_MEM_READS,
+  V3D_PERFCNT_PTB_W_MEM_WORDS,
+  V3D_PERFCNT_TLB_W_MEM_WORDS,
+  V3D_PERFCNT_PSE_R_MEM_WORDS,
+  V3D_PERFCNT_TLB_R_MEM_WORDS,
+  V3D_PERFCNT_TMU_MRU_HITS,
+  V3D_PERFCNT_COMPUTE_ACTIVE,
+  V3D_PERFCNT_NUM,
+};
+#define DRM_V3D_MAX_PERF_COUNTERS 32
+struct drm_v3d_perfmon_create {
+  __u32 id;
+  __u32 ncounters;
+  __u8 counters[DRM_V3D_MAX_PERF_COUNTERS];
+};
+struct drm_v3d_perfmon_destroy {
+  __u32 id;
+};
+struct drm_v3d_perfmon_get_values {
+  __u32 id;
+  __u32 pad;
+  __u64 values_ptr;
 };
 #ifdef __cplusplus
 }
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
index 842c1fd..342282d 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
@@ -32,9 +32,11 @@
 #define DRM_VIRTGPU_WAIT 0x08
 #define DRM_VIRTGPU_GET_CAPS 0x09
 #define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a
+#define DRM_VIRTGPU_CONTEXT_INIT 0x0b
 #define VIRTGPU_EXECBUF_FENCE_FD_IN 0x01
 #define VIRTGPU_EXECBUF_FENCE_FD_OUT 0x02
-#define VIRTGPU_EXECBUF_FLAGS (VIRTGPU_EXECBUF_FENCE_FD_IN | VIRTGPU_EXECBUF_FENCE_FD_OUT | 0)
+#define VIRTGPU_EXECBUF_RING_IDX 0x04
+#define VIRTGPU_EXECBUF_FLAGS (VIRTGPU_EXECBUF_FENCE_FD_IN | VIRTGPU_EXECBUF_FENCE_FD_OUT | VIRTGPU_EXECBUF_RING_IDX | 0)
 struct drm_virtgpu_map {
   __u64 offset;
   __u32 handle;
@@ -47,12 +49,16 @@
   __u64 bo_handles;
   __u32 num_bo_handles;
   __s32 fence_fd;
+  __u32 ring_idx;
+  __u32 pad;
 };
 #define VIRTGPU_PARAM_3D_FEATURES 1
 #define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2
 #define VIRTGPU_PARAM_RESOURCE_BLOB 3
 #define VIRTGPU_PARAM_HOST_VISIBLE 4
 #define VIRTGPU_PARAM_CROSS_DEVICE 5
+#define VIRTGPU_PARAM_CONTEXT_INIT 6
+#define VIRTGPU_PARAM_SUPPORTED_CAPSET_IDs 7
 struct drm_virtgpu_getparam {
   __u64 param;
   __u64 value;
@@ -132,6 +138,19 @@
   __u64 cmd;
   __u64 blob_id;
 };
+#define VIRTGPU_CONTEXT_PARAM_CAPSET_ID 0x0001
+#define VIRTGPU_CONTEXT_PARAM_NUM_RINGS 0x0002
+#define VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK 0x0003
+struct drm_virtgpu_context_set_param {
+  __u64 param;
+  __u64 value;
+};
+struct drm_virtgpu_context_init {
+  __u32 num_params;
+  __u32 pad;
+  __u64 ctx_set_params;
+};
+#define VIRTGPU_EVENT_FENCE_SIGNALED 0x90000000
 #define DRM_IOCTL_VIRTGPU_MAP DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map)
 #define DRM_IOCTL_VIRTGPU_EXECBUFFER DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_EXECBUFFER, struct drm_virtgpu_execbuffer)
 #define DRM_IOCTL_VIRTGPU_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GETPARAM, struct drm_virtgpu_getparam)
@@ -142,6 +161,7 @@
 #define DRM_IOCTL_VIRTGPU_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_WAIT, struct drm_virtgpu_3d_wait)
 #define DRM_IOCTL_VIRTGPU_GET_CAPS DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GET_CAPS, struct drm_virtgpu_get_caps)
 #define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB, struct drm_virtgpu_resource_create_blob)
+#define DRM_IOCTL_VIRTGPU_CONTEXT_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_CONTEXT_INIT, struct drm_virtgpu_context_init)
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
index 982b64f..395743b 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
@@ -56,6 +56,9 @@
 #define DRM_VMW_GB_SURFACE_CREATE_EXT 27
 #define DRM_VMW_GB_SURFACE_REF_EXT 28
 #define DRM_VMW_MSG 29
+#define DRM_VMW_MKSSTAT_RESET 30
+#define DRM_VMW_MKSSTAT_ADD 31
+#define DRM_VMW_MKSSTAT_REMOVE 32
 #define DRM_VMW_PARAM_NUM_STREAMS 0
 #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1
 #define DRM_VMW_PARAM_3D 2
@@ -72,6 +75,7 @@
 #define DRM_VMW_PARAM_HW_CAPS2 13
 #define DRM_VMW_PARAM_SM4_1 14
 #define DRM_VMW_PARAM_SM5 15
+#define DRM_VMW_PARAM_GL43 16
 enum drm_vmw_handle_type {
   DRM_VMW_HANDLE_LEGACY = 0,
   DRM_VMW_HANDLE_PRIME = 1
@@ -360,6 +364,19 @@
   __s32 send_only;
   __u32 receive_len;
 };
+struct drm_vmw_mksstat_add_arg {
+  __u64 stat;
+  __u64 info;
+  __u64 strs;
+  __u64 stat_len;
+  __u64 info_len;
+  __u64 strs_len;
+  __u64 description;
+  __u64 id;
+};
+struct drm_vmw_mksstat_remove_arg {
+  __u64 id;
+};
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/acrn.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/acrn.h
index 74b719a..c991ac0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/acrn.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/acrn.h
@@ -178,6 +178,7 @@
   } intx;
 };
 #define ACRN_PTDEV_QUIRK_ASSIGN (1U << 0)
+#define ACRN_MMIODEV_RES_NUM 3
 #define ACRN_PCI_NUM_BARS 6
 struct acrn_pcidev {
   __u32 type;
@@ -187,6 +188,29 @@
   __u8 intr_pin;
   __u32 bar[ACRN_PCI_NUM_BARS];
 };
+struct acrn_mmiodev {
+  __u8 name[8];
+  struct {
+    __u64 user_vm_pa;
+    __u64 service_vm_pa;
+    __u64 size;
+    __u64 mem_type;
+  } res[ACRN_MMIODEV_RES_NUM];
+};
+struct acrn_vdev {
+  union {
+    __u64 value;
+    struct {
+      __le16 vendor;
+      __le16 device;
+      __le32 legacy_id;
+    } fields;
+  } id;
+  __u64 slot;
+  __u32 io_addr[ACRN_PCI_NUM_BARS];
+  __u32 io_size[ACRN_PCI_NUM_BARS];
+  __u8 args[128];
+};
 struct acrn_msi_entry {
   __u64 msi_addr;
   __u64 msi_data;
@@ -257,6 +281,10 @@
 #define ACRN_IOCTL_RESET_PTDEV_INTR _IOW(ACRN_IOCTL_TYPE, 0x54, struct acrn_ptdev_irq)
 #define ACRN_IOCTL_ASSIGN_PCIDEV _IOW(ACRN_IOCTL_TYPE, 0x55, struct acrn_pcidev)
 #define ACRN_IOCTL_DEASSIGN_PCIDEV _IOW(ACRN_IOCTL_TYPE, 0x56, struct acrn_pcidev)
+#define ACRN_IOCTL_ASSIGN_MMIODEV _IOW(ACRN_IOCTL_TYPE, 0x57, struct acrn_mmiodev)
+#define ACRN_IOCTL_DEASSIGN_MMIODEV _IOW(ACRN_IOCTL_TYPE, 0x58, struct acrn_mmiodev)
+#define ACRN_IOCTL_CREATE_VDEV _IOW(ACRN_IOCTL_TYPE, 0x59, struct acrn_vdev)
+#define ACRN_IOCTL_DESTROY_VDEV _IOW(ACRN_IOCTL_TYPE, 0x5A, struct acrn_vdev)
 #define ACRN_IOCTL_PM_GET_CPU_STATE _IOWR(ACRN_IOCTL_TYPE, 0x60, __u64)
 #define ACRN_IOCTL_IOEVENTFD _IOW(ACRN_IOCTL_TYPE, 0x70, struct acrn_ioeventfd)
 #define ACRN_IOCTL_IRQFD _IOW(ACRN_IOCTL_TYPE, 0x71, struct acrn_irqfd)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/amt.h
similarity index 69%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/amt.h
index bb45c3d..049006d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/amt.h
@@ -16,14 +16,25 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_AMT_H_
+#define _UAPI_AMT_H_
+enum ifla_amt_mode {
+  AMT_MODE_GATEWAY = 0,
+  AMT_MODE_RELAY,
+  __AMT_MODE_MAX,
 };
+#define AMT_MODE_MAX (__AMT_MODE_MAX - 1)
+enum {
+  IFLA_AMT_UNSPEC,
+  IFLA_AMT_MODE,
+  IFLA_AMT_RELAY_PORT,
+  IFLA_AMT_GATEWAY_PORT,
+  IFLA_AMT_LINK,
+  IFLA_AMT_LOCAL_IP,
+  IFLA_AMT_REMOTE_IP,
+  IFLA_AMT_DISCOVERY_IP,
+  IFLA_AMT_MAX_TUNNELS,
+  __IFLA_AMT_MAX,
+};
+#define IFLA_AMT_MAX (__IFLA_AMT_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/android/binder.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/android/binder.h
index 5416344..ded1756 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/android/binder.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/android/binder.h
@@ -117,6 +117,16 @@
   __u32 reserved2;
   __u32 reserved3;
 };
+struct binder_freeze_info {
+  __u32 pid;
+  __u32 enable;
+  __u32 timeout_ms;
+};
+struct binder_frozen_status_info {
+  __u32 pid;
+  __u32 sync_recv;
+  __u32 async_recv;
+};
 #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read)
 #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64)
 #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32)
@@ -127,6 +137,9 @@
 #define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info)
 #define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref)
 #define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object)
+#define BINDER_FREEZE _IOW('b', 14, struct binder_freeze_info)
+#define BINDER_GET_FROZEN_INFO _IOWR('b', 15, struct binder_frozen_status_info)
+#define BINDER_ENABLE_ONEWAY_SPAM_DETECTION _IOW('b', 16, __u32)
 enum transaction_flags {
   TF_ONE_WAY = 0x01,
   TF_ROOT_OBJECT = 0x04,
@@ -199,6 +212,8 @@
   BR_DEAD_BINDER = _IOR('r', 15, binder_uintptr_t),
   BR_CLEAR_DEATH_NOTIFICATION_DONE = _IOR('r', 16, binder_uintptr_t),
   BR_FAILED_REPLY = _IO('r', 17),
+  BR_FROZEN_REPLY = _IO('r', 18),
+  BR_ONEWAY_SPAM_SUSPECT = _IO('r', 19),
 };
 enum binder_driver_command_protocol {
   BC_TRANSACTION = _IOW('c', 0, struct binder_transaction_data),
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/audit.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/audit.h
index 2c18e07..30a94af 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/audit.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/audit.h
@@ -83,6 +83,10 @@
 #define AUDIT_TIME_ADJNTPVAL 1333
 #define AUDIT_BPF 1334
 #define AUDIT_EVENT_LISTENER 1335
+#define AUDIT_URINGOP 1336
+#define AUDIT_OPENAT2 1337
+#define AUDIT_DM_CTRL 1338
+#define AUDIT_DM_EVENT 1339
 #define AUDIT_AVC 1400
 #define AUDIT_SELINUX_ERR 1401
 #define AUDIT_AVC_PATH 1402
@@ -126,7 +130,8 @@
 #define AUDIT_FILTER_EXCLUDE 0x05
 #define AUDIT_FILTER_TYPE AUDIT_FILTER_EXCLUDE
 #define AUDIT_FILTER_FS 0x06
-#define AUDIT_NR_FILTERS 7
+#define AUDIT_FILTER_URING_EXIT 0x07
+#define AUDIT_NR_FILTERS 8
 #define AUDIT_FILTER_PREPEND 0x10
 #define AUDIT_NEVER 0
 #define AUDIT_POSSIBLE 1
@@ -372,6 +377,6 @@
   __u32 values[AUDIT_MAX_FIELDS];
   __u32 fieldflags[AUDIT_MAX_FIELDS];
   __u32 buflen;
-  char buf[0];
+  char buf[];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/auxvec.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/auxvec.h
index e8c2336..c80c170 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/auxvec.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/auxvec.h
@@ -42,4 +42,7 @@
 #define AT_RANDOM 25
 #define AT_HWCAP2 26
 #define AT_EXECFN 31
+#ifndef AT_MINSIGSTKSZ
+#define AT_MINSIGSTKSZ 51
+#endif
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/bcache.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/bcache.h
deleted file mode 100644
index 25b6987..0000000
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/bcache.h
+++ /dev/null
@@ -1,221 +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_BCACHE_H
-#define _LINUX_BCACHE_H
-#include <linux/types.h>
-#define BITMASK(name,type,field,offset,size) static inline __u64 name(const type * k) \
-{ return(k->field >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(type * k, __u64 v) \
-{ k->field &= ~(~(~0ULL << size) << offset); k->field |= (v & ~(~0ULL << size)) << offset; \
-}
-struct bkey {
-  __u64 high;
-  __u64 low;
-  __u64 ptr[];
-};
-#define KEY_FIELD(name,field,offset,size) BITMASK(name, struct bkey, field, offset, size)
-#define PTR_FIELD(name,offset,size) static inline __u64 name(const struct bkey * k, unsigned int i) \
-{ return(k->ptr[i] >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(struct bkey * k, unsigned int i, __u64 v) \
-{ k->ptr[i] &= ~(~(~0ULL << size) << offset); k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \
-}
-#define KEY_SIZE_BITS 16
-#define KEY_MAX_U64S 8
-#define KEY(inode,offset,size) \
-((struct bkey) {.high = (1ULL << 63) | ((__u64) (size) << 20) | (inode),.low = (offset) \
-})
-#define ZERO_KEY KEY(0, 0, 0)
-#define MAX_KEY_INODE (~(~0 << 20))
-#define MAX_KEY_OFFSET (~0ULL >> 1)
-#define MAX_KEY KEY(MAX_KEY_INODE, MAX_KEY_OFFSET, 0)
-#define KEY_START(k) (KEY_OFFSET(k) - KEY_SIZE(k))
-#define START_KEY(k) KEY(KEY_INODE(k), KEY_START(k), 0)
-#define PTR_DEV_BITS 12
-#define PTR_CHECK_DEV ((1 << PTR_DEV_BITS) - 1)
-#define MAKE_PTR(gen,offset,dev) ((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen)
-#define bkey_copy(_dest,_src) memcpy(_dest, _src, bkey_bytes(_src))
-#define BKEY_PAD 8
-#define BKEY_PADDED(key) union { struct bkey key; __u64 key ##_pad[BKEY_PAD]; }
-#define BCACHE_SB_VERSION_CDEV 0
-#define BCACHE_SB_VERSION_BDEV 1
-#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3
-#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4
-#define BCACHE_SB_VERSION_CDEV_WITH_FEATURES 5
-#define BCACHE_SB_VERSION_BDEV_WITH_FEATURES 6
-#define BCACHE_SB_MAX_VERSION 6
-#define SB_SECTOR 8
-#define SB_OFFSET (SB_SECTOR << SECTOR_SHIFT)
-#define SB_SIZE 4096
-#define SB_LABEL_SIZE 32
-#define SB_JOURNAL_BUCKETS 256U
-#define MAX_CACHES_PER_SET 8
-#define BDEV_DATA_START_DEFAULT 16
-struct cache_sb_disk {
-  __le64 csum;
-  __le64 offset;
-  __le64 version;
-  __u8 magic[16];
-  __u8 uuid[16];
-  union {
-    __u8 set_uuid[16];
-    __le64 set_magic;
-  };
-  __u8 label[SB_LABEL_SIZE];
-  __le64 flags;
-  __le64 seq;
-  __le64 feature_compat;
-  __le64 feature_incompat;
-  __le64 feature_ro_compat;
-  __le64 pad[5];
-  union {
-    struct {
-      __le64 nbuckets;
-      __le16 block_size;
-      __le16 bucket_size;
-      __le16 nr_in_set;
-      __le16 nr_this_dev;
-    };
-    struct {
-      __le64 data_offset;
-    };
-  };
-  __le32 last_mount;
-  __le16 first_bucket;
-  union {
-    __le16 njournal_buckets;
-    __le16 keys;
-  };
-  __le64 d[SB_JOURNAL_BUCKETS];
-  __le16 obso_bucket_size_hi;
-};
-struct cache_sb {
-  __u64 offset;
-  __u64 version;
-  __u8 magic[16];
-  __u8 uuid[16];
-  union {
-    __u8 set_uuid[16];
-    __u64 set_magic;
-  };
-  __u8 label[SB_LABEL_SIZE];
-  __u64 flags;
-  __u64 seq;
-  __u64 feature_compat;
-  __u64 feature_incompat;
-  __u64 feature_ro_compat;
-  union {
-    struct {
-      __u64 nbuckets;
-      __u16 block_size;
-      __u16 nr_in_set;
-      __u16 nr_this_dev;
-      __u32 bucket_size;
-    };
-    struct {
-      __u64 data_offset;
-    };
-  };
-  __u32 last_mount;
-  __u16 first_bucket;
-  union {
-    __u16 njournal_buckets;
-    __u16 keys;
-  };
-  __u64 d[SB_JOURNAL_BUCKETS];
-};
-#define CACHE_REPLACEMENT_LRU 0U
-#define CACHE_REPLACEMENT_FIFO 1U
-#define CACHE_REPLACEMENT_RANDOM 2U
-#define CACHE_MODE_WRITETHROUGH 0U
-#define CACHE_MODE_WRITEBACK 1U
-#define CACHE_MODE_WRITEAROUND 2U
-#define CACHE_MODE_NONE 3U
-#define BDEV_STATE_NONE 0U
-#define BDEV_STATE_CLEAN 1U
-#define BDEV_STATE_DIRTY 2U
-#define BDEV_STATE_STALE 3U
-#define JSET_MAGIC 0x245235c1a3625032ULL
-#define PSET_MAGIC 0x6750e15f87337f91ULL
-#define BSET_MAGIC 0x90135c78b99e07f5ULL
-#define BCACHE_JSET_VERSION_UUIDv1 1
-#define BCACHE_JSET_VERSION_UUID 1
-#define BCACHE_JSET_VERSION 1
-struct jset {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 keys;
-  __u64 last_seq;
-  BKEY_PADDED(uuid_bucket);
-  BKEY_PADDED(btree_root);
-  __u16 btree_level;
-  __u16 pad[3];
-  __u64 prio_bucket[MAX_CACHES_PER_SET];
-  union {
-    struct bkey start[0];
-    __u64 d[0];
-  };
-};
-struct prio_set {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 pad;
-  __u64 next_bucket;
-  struct bucket_disk {
-    __u16 prio;
-    __u8 gen;
-  } __attribute((packed)) data[];
-};
-struct uuid_entry {
-  union {
-    struct {
-      __u8 uuid[16];
-      __u8 label[32];
-      __u32 first_reg;
-      __u32 last_reg;
-      __u32 invalidated;
-      __u32 flags;
-      __u64 sectors;
-    };
-    __u8 pad[128];
-  };
-};
-#define BCACHE_BSET_CSUM 1
-#define BCACHE_BSET_VERSION 1
-struct bset {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 keys;
-  union {
-    struct bkey start[0];
-    __u64 d[0];
-  };
-};
-struct uuid_entry_v0 {
-  __u8 uuid[16];
-  __u8 label[32];
-  __u32 first_reg;
-  __u32 last_reg;
-  __u32 invalidated;
-  __u32 pad;
-};
-#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/bpf.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/bpf.h
index c643ffa..d363e81 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/bpf.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/bpf.h
@@ -91,6 +91,7 @@
   BPF_PROG_ATTACH,
   BPF_PROG_DETACH,
   BPF_PROG_TEST_RUN,
+  BPF_PROG_RUN = BPF_PROG_TEST_RUN,
   BPF_PROG_GET_NEXT_ID,
   BPF_MAP_GET_NEXT_ID,
   BPF_PROG_GET_FD_BY_ID,
@@ -148,6 +149,7 @@
   BPF_MAP_TYPE_RINGBUF,
   BPF_MAP_TYPE_INODE_STORAGE,
   BPF_MAP_TYPE_TASK_STORAGE,
+  BPF_MAP_TYPE_BLOOM_FILTER,
 };
 enum bpf_prog_type {
   BPF_PROG_TYPE_UNSPEC,
@@ -181,6 +183,7 @@
   BPF_PROG_TYPE_EXT,
   BPF_PROG_TYPE_LSM,
   BPF_PROG_TYPE_SK_LOOKUP,
+  BPF_PROG_TYPE_SYSCALL,
 };
 enum bpf_attach_type {
   BPF_CGROUP_INET_INGRESS,
@@ -221,6 +224,10 @@
   BPF_XDP_CPUMAP,
   BPF_SK_LOOKUP,
   BPF_XDP,
+  BPF_SK_SKB_VERDICT,
+  BPF_SK_REUSEPORT_SELECT,
+  BPF_SK_REUSEPORT_SELECT_OR_MIGRATE,
+  BPF_PERF_EVENT,
   __MAX_BPF_ATTACH_TYPE
 };
 #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
@@ -232,6 +239,7 @@
   BPF_LINK_TYPE_ITER = 4,
   BPF_LINK_TYPE_NETNS = 5,
   BPF_LINK_TYPE_XDP = 6,
+  BPF_LINK_TYPE_PERF_EVENT = 7,
   MAX_BPF_LINK_TYPE,
 };
 #define BPF_F_ALLOW_OVERRIDE (1U << 0)
@@ -243,9 +251,13 @@
 #define BPF_F_TEST_STATE_FREQ (1U << 3)
 #define BPF_F_SLEEPABLE (1U << 4)
 #define BPF_PSEUDO_MAP_FD 1
+#define BPF_PSEUDO_MAP_IDX 5
 #define BPF_PSEUDO_MAP_VALUE 2
+#define BPF_PSEUDO_MAP_IDX_VALUE 6
 #define BPF_PSEUDO_BTF_ID 3
+#define BPF_PSEUDO_FUNC 4
 #define BPF_PSEUDO_CALL 1
+#define BPF_PSEUDO_KFUNC_CALL 2
 enum {
   BPF_ANY = 0,
   BPF_NOEXIST = 1,
@@ -302,6 +314,7 @@
     __u32 btf_key_type_id;
     __u32 btf_value_type_id;
     __u32 btf_vmlinux_value_type_id;
+    __u64 map_extra;
   };
   struct {
     __u32 map_fd;
@@ -347,6 +360,10 @@
       __u32 attach_prog_fd;
       __u32 attach_btf_obj_fd;
     };
+    __u32 core_relo_cnt;
+    __aligned_u64 fd_array;
+    __aligned_u64 core_relos;
+    __u32 core_relo_rec_size;
   };
   struct {
     __aligned_u64 pathname;
@@ -436,6 +453,9 @@
         __aligned_u64 iter_info;
         __u32 iter_info_len;
       };
+      struct {
+        __u64 bpf_cookie;
+      } perf_event;
     };
   } link_create;
   struct {
@@ -460,7 +480,7 @@
     __u32 flags;
   } prog_bind_map;
 } __attribute__((aligned(8)));
-#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu),
+#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu), FN(for_each_map_elem), FN(snprintf), FN(sys_bpf), FN(btf_find_by_name_kind), FN(sys_close), FN(timer_init), FN(timer_set_callback), FN(timer_start), FN(timer_cancel), FN(get_func_ip), FN(get_attach_cookie), FN(task_pt_regs), FN(get_branch_snapshot), FN(trace_vprintk), FN(skc_to_unix_sock), FN(kallsyms_lookup_name), FN(find_vma), FN(loop), FN(strncmp), FN(get_func_arg), FN(get_func_ret), FN(get_func_arg_cnt),
 #define __BPF_ENUM_FN(x) BPF_FUNC_ ##x
 enum bpf_func_id {
   __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID,
@@ -517,6 +537,7 @@
   BPF_F_ADJ_ROOM_ENCAP_L4_GRE = (1ULL << 3),
   BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4),
   BPF_F_ADJ_ROOM_NO_CSUM_RESET = (1ULL << 5),
+  BPF_F_ADJ_ROOM_ENCAP_L2_ETH = (1ULL << 6),
 };
 enum {
   BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff,
@@ -568,6 +589,10 @@
 enum {
   BPF_F_BPRM_SECUREEXEC = (1ULL << 0),
 };
+enum {
+  BPF_F_BROADCAST = (1ULL << 3),
+  BPF_F_EXCLUDE_INGRESS = (1ULL << 4),
+};
 #define __bpf_md_ptr(type,name) union { type name; __u64 : 64; \
 } __attribute__((aligned(8)))
 struct __sk_buff {
@@ -603,6 +628,8 @@
   __u32 gso_segs;
   __bpf_md_ptr(struct bpf_sock *, sk);
   __u32 gso_size;
+  __u32 : 32;
+  __u64 hwtstamp;
 };
 struct bpf_tunnel_key {
   __u32 tunnel_id;
@@ -749,6 +776,8 @@
   __u32 ip_protocol;
   __u32 bind_inany;
   __u32 hash;
+  __bpf_md_ptr(struct bpf_sock *, sk);
+  __bpf_md_ptr(struct bpf_sock *, migrating_sk);
 };
 #define BPF_TAG_SIZE 8
 struct bpf_prog_info {
@@ -788,6 +817,7 @@
   __u64 run_time_ns;
   __u64 run_cnt;
   __u64 recursion_misses;
+  __u32 verified_insns;
 } __attribute__((aligned(8)));
 struct bpf_map_info {
   __u32 type;
@@ -804,6 +834,8 @@
   __u32 btf_id;
   __u32 btf_key_type_id;
   __u32 btf_value_type_id;
+  __u32 : 32;
+  __u64 map_extra;
 } __attribute__((aligned(8)));
 struct bpf_btf_info {
   __aligned_u64 btf;
@@ -824,6 +856,8 @@
     } raw_tracepoint;
     struct {
       __u32 attach_type;
+      __u32 target_obj_id;
+      __u32 target_btf_id;
     } tracing;
     struct {
       __u64 cgroup_id;
@@ -1096,6 +1130,10 @@
 struct bpf_spin_lock {
   __u32 val;
 };
+struct bpf_timer {
+  __u64 : 64;
+  __u64 : 64;
+} __attribute__((aligned(8)));
 struct bpf_sysctl {
   __u32 write;
   __u32 file_pos;
@@ -1114,7 +1152,10 @@
   __u32 tgid;
 };
 struct bpf_sk_lookup {
-  __bpf_md_ptr(struct bpf_sock *, sk);
+  union {
+    __bpf_md_ptr(struct bpf_sock *, sk);
+    __u64 cookie;
+  };
   __u32 family;
   __u32 protocol;
   __u32 remote_ip4;
@@ -1123,6 +1164,7 @@
   __u32 local_ip4;
   __u32 local_ip6[4];
   __u32 local_port;
+  __u32 ingress_ifindex;
 };
 struct btf_ptr {
   void * ptr;
@@ -1135,4 +1177,24 @@
   BTF_F_PTR_RAW = (1ULL << 2),
   BTF_F_ZERO = (1ULL << 3),
 };
+enum bpf_core_relo_kind {
+  BPF_CORE_FIELD_BYTE_OFFSET = 0,
+  BPF_CORE_FIELD_BYTE_SIZE = 1,
+  BPF_CORE_FIELD_EXISTS = 2,
+  BPF_CORE_FIELD_SIGNED = 3,
+  BPF_CORE_FIELD_LSHIFT_U64 = 4,
+  BPF_CORE_FIELD_RSHIFT_U64 = 5,
+  BPF_CORE_TYPE_ID_LOCAL = 6,
+  BPF_CORE_TYPE_ID_TARGET = 7,
+  BPF_CORE_TYPE_EXISTS = 8,
+  BPF_CORE_TYPE_SIZE = 9,
+  BPF_CORE_ENUMVAL_EXISTS = 10,
+  BPF_CORE_ENUMVAL_VALUE = 11,
+};
+struct bpf_core_relo {
+  __u32 insn_off;
+  __u32 type_id;
+  __u32 access_str_off;
+  enum bpf_core_relo_kind kind;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btf.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btf.h
index f22d637..fc57d3c 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btf.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btf.h
@@ -42,27 +42,32 @@
     __u32 type;
   };
 };
-#define BTF_INFO_KIND(info) (((info) >> 24) & 0x0f)
+#define BTF_INFO_KIND(info) (((info) >> 24) & 0x1f)
 #define BTF_INFO_VLEN(info) ((info) & 0xffff)
 #define BTF_INFO_KFLAG(info) ((info) >> 31)
-#define BTF_KIND_UNKN 0
-#define BTF_KIND_INT 1
-#define BTF_KIND_PTR 2
-#define BTF_KIND_ARRAY 3
-#define BTF_KIND_STRUCT 4
-#define BTF_KIND_UNION 5
-#define BTF_KIND_ENUM 6
-#define BTF_KIND_FWD 7
-#define BTF_KIND_TYPEDEF 8
-#define BTF_KIND_VOLATILE 9
-#define BTF_KIND_CONST 10
-#define BTF_KIND_RESTRICT 11
-#define BTF_KIND_FUNC 12
-#define BTF_KIND_FUNC_PROTO 13
-#define BTF_KIND_VAR 14
-#define BTF_KIND_DATASEC 15
-#define BTF_KIND_MAX BTF_KIND_DATASEC
-#define NR_BTF_KINDS (BTF_KIND_MAX + 1)
+enum {
+  BTF_KIND_UNKN = 0,
+  BTF_KIND_INT = 1,
+  BTF_KIND_PTR = 2,
+  BTF_KIND_ARRAY = 3,
+  BTF_KIND_STRUCT = 4,
+  BTF_KIND_UNION = 5,
+  BTF_KIND_ENUM = 6,
+  BTF_KIND_FWD = 7,
+  BTF_KIND_TYPEDEF = 8,
+  BTF_KIND_VOLATILE = 9,
+  BTF_KIND_CONST = 10,
+  BTF_KIND_RESTRICT = 11,
+  BTF_KIND_FUNC = 12,
+  BTF_KIND_FUNC_PROTO = 13,
+  BTF_KIND_VAR = 14,
+  BTF_KIND_DATASEC = 15,
+  BTF_KIND_FLOAT = 16,
+  BTF_KIND_DECL_TAG = 17,
+  BTF_KIND_TYPE_TAG = 18,
+  NR_BTF_KINDS,
+  BTF_KIND_MAX = NR_BTF_KINDS - 1,
+};
 #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24)
 #define BTF_INT_OFFSET(VAL) (((VAL) & 0x00ff0000) >> 16)
 #define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff)
@@ -107,4 +112,7 @@
   __u32 offset;
   __u32 size;
 };
+struct btf_decl_tag {
+  __s32 component_idx;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btrfs.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btrfs.h
index c0a586c..08b96a3 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btrfs.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btrfs.h
@@ -175,6 +175,7 @@
 };
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE (1ULL << 0)
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID (1ULL << 1)
+#define BTRFS_FEATURE_COMPAT_RO_VERITY (1ULL << 2)
 #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0)
 #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
 #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
@@ -419,14 +420,16 @@
 #define BTRFS_SEND_FLAG_NO_FILE_DATA 0x1
 #define BTRFS_SEND_FLAG_OMIT_STREAM_HEADER 0x2
 #define BTRFS_SEND_FLAG_OMIT_END_CMD 0x4
-#define BTRFS_SEND_FLAG_MASK (BTRFS_SEND_FLAG_NO_FILE_DATA | BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | BTRFS_SEND_FLAG_OMIT_END_CMD)
+#define BTRFS_SEND_FLAG_VERSION 0x8
+#define BTRFS_SEND_FLAG_MASK (BTRFS_SEND_FLAG_NO_FILE_DATA | BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | BTRFS_SEND_FLAG_OMIT_END_CMD | BTRFS_SEND_FLAG_VERSION)
 struct btrfs_ioctl_send_args {
   __s64 send_fd;
   __u64 clone_sources_count;
   __u64 __user * clone_sources;
   __u64 parent_root;
   __u64 flags;
-  __u64 reserved[4];
+  __u32 version;
+  __u8 reserved[28];
 };
 struct btrfs_ioctl_get_subvol_info_args {
   __u64 treeid;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
index 4e36c37..0476733 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
@@ -53,6 +53,8 @@
 #define BTRFS_INODE_REF_KEY 12
 #define BTRFS_INODE_EXTREF_KEY 13
 #define BTRFS_XATTR_ITEM_KEY 24
+#define BTRFS_VERITY_DESC_ITEM_KEY 36
+#define BTRFS_VERITY_MERKLE_ITEM_KEY 37
 #define BTRFS_ORPHAN_ITEM_KEY 48
 #define BTRFS_DIR_LOG_ITEM_KEY 60
 #define BTRFS_DIR_LOG_INDEX_KEY 72
@@ -424,4 +426,9 @@
   __le64 rsv_rfer;
   __le64 rsv_excl;
 } __attribute__((__packed__));
+struct btrfs_verity_descriptor_item {
+  __le64 size;
+  __le64 reserved[2];
+  __u8 encryption;
+} __attribute__((__packed__));
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
index c0ddccc..b6c978b 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
@@ -24,6 +24,7 @@
 #ifndef __BIG_ENDIAN_BITFIELD
 #define __BIG_ENDIAN_BITFIELD
 #endif
+#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 #define __constant_htonl(x) ((__force __be32) (__u32) (x))
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
index ea00092..a272d4d 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
@@ -24,6 +24,7 @@
 #ifndef __LITTLE_ENDIAN_BITFIELD
 #define __LITTLE_ENDIAN_BITFIELD
 #endif
+#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 #define __constant_htonl(x) ((__force __be32) ___constant_swab32((x)))
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can.h
index 59fc31e..30eeca2 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can.h
@@ -48,6 +48,7 @@
 };
 #define CANFD_BRS 0x01
 #define CANFD_ESI 0x02
+#define CANFD_FDF 0x04
 struct canfd_frame {
   canid_t can_id;
   __u8 len;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can/j1939.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can/j1939.h
index 531a222..42dbf15 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can/j1939.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can/j1939.h
@@ -50,10 +50,19 @@
 enum {
   J1939_NLA_PAD,
   J1939_NLA_BYTES_ACKED,
+  J1939_NLA_TOTAL_SIZE,
+  J1939_NLA_PGN,
+  J1939_NLA_SRC_NAME,
+  J1939_NLA_DEST_NAME,
+  J1939_NLA_SRC_ADDR,
+  J1939_NLA_DEST_ADDR,
 };
 enum {
   J1939_EE_INFO_NONE,
   J1939_EE_INFO_TX_ABORT,
+  J1939_EE_INFO_RX_RTS,
+  J1939_EE_INFO_RX_DPO,
+  J1939_EE_INFO_RX_ABORT,
 };
 struct j1939_filter {
   name_t name;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can/netlink.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can/netlink.h
index 3e6551d..f4086c0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can/netlink.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/can/netlink.h
@@ -69,6 +69,8 @@
 #define CAN_CTRLMODE_PRESUME_ACK 0x40
 #define CAN_CTRLMODE_FD_NON_ISO 0x80
 #define CAN_CTRLMODE_CC_LEN8_DLC 0x100
+#define CAN_CTRLMODE_TDC_AUTO 0x200
+#define CAN_CTRLMODE_TDC_MANUAL 0x400
 struct can_device_stats {
   __u32 bus_error;
   __u32 error_warning;
@@ -94,8 +96,30 @@
   IFLA_CAN_BITRATE_CONST,
   IFLA_CAN_DATA_BITRATE_CONST,
   IFLA_CAN_BITRATE_MAX,
-  __IFLA_CAN_MAX
+  IFLA_CAN_TDC,
+  IFLA_CAN_CTRLMODE_EXT,
+  __IFLA_CAN_MAX,
+  IFLA_CAN_MAX = __IFLA_CAN_MAX - 1
 };
-#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)
+enum {
+  IFLA_CAN_TDC_UNSPEC,
+  IFLA_CAN_TDC_TDCV_MIN,
+  IFLA_CAN_TDC_TDCV_MAX,
+  IFLA_CAN_TDC_TDCO_MIN,
+  IFLA_CAN_TDC_TDCO_MAX,
+  IFLA_CAN_TDC_TDCF_MIN,
+  IFLA_CAN_TDC_TDCF_MAX,
+  IFLA_CAN_TDC_TDCV,
+  IFLA_CAN_TDC_TDCO,
+  IFLA_CAN_TDC_TDCF,
+  __IFLA_CAN_TDC,
+  IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1
+};
+enum {
+  IFLA_CAN_CTRLMODE_UNSPEC,
+  IFLA_CAN_CTRLMODE_SUPPORTED,
+  __IFLA_CAN_CTRLMODE,
+  IFLA_CAN_CTRLMODE_MAX = __IFLA_CAN_CTRLMODE - 1
+};
 #define CAN_TERMINATION_DISABLED 0
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cdrom.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cdrom.h
index 8f1c2f0..0fe0727 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cdrom.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cdrom.h
@@ -67,6 +67,7 @@
 #define CDROM_SEND_PACKET 0x5393
 #define CDROM_NEXT_WRITABLE 0x5394
 #define CDROM_LAST_WRITTEN 0x5395
+#define CDROM_TIMED_MEDIA_CHANGE 0x5396
 struct cdrom_msf0 {
   __u8 minute;
   __u8 second;
@@ -160,6 +161,11 @@
     void __user * unused;
   };
 };
+struct cdrom_timed_media_change_info {
+  __s64 last_media_change;
+  __u64 media_flags;
+};
+#define MEDIA_CHANGED_FLAG 0x1
 #define CD_MINS 74
 #define CD_SECS 60
 #define CD_FRAMES 75
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cec.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cec.h
index 238fa0a..b90dc49 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cec.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cec.h
@@ -262,7 +262,7 @@
 #define CEC_OP_REC_SEQ_WEDNESDAY 0x08
 #define CEC_OP_REC_SEQ_THURSDAY 0x10
 #define CEC_OP_REC_SEQ_FRIDAY 0x20
-#define CEC_OP_REC_SEQ_SATERDAY 0x40
+#define CEC_OP_REC_SEQ_SATURDAY 0x40
 #define CEC_OP_REC_SEQ_ONCE_ONLY 0x00
 #define CEC_MSG_CLEAR_DIGITAL_TIMER 0x99
 #define CEC_MSG_CLEAR_EXT_TIMER 0xa1
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/comedi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/comedi.h
new file mode 100644
index 0000000..e0d015a
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/comedi.h
@@ -0,0 +1,669 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 _COMEDI_H
+#define _COMEDI_H
+#define COMEDI_MAJORVERSION 0
+#define COMEDI_MINORVERSION 7
+#define COMEDI_MICROVERSION 76
+#define VERSION "0.7.76"
+#define COMEDI_MAJOR 98
+#define COMEDI_NDEVICES 16
+#define COMEDI_NDEVCONFOPTS 32
+#define COMEDI_DEVCONF_AUX_DATA3_LENGTH 25
+#define COMEDI_DEVCONF_AUX_DATA2_LENGTH 26
+#define COMEDI_DEVCONF_AUX_DATA1_LENGTH 27
+#define COMEDI_DEVCONF_AUX_DATA0_LENGTH 28
+#define COMEDI_DEVCONF_AUX_DATA_HI 29
+#define COMEDI_DEVCONF_AUX_DATA_LO 30
+#define COMEDI_DEVCONF_AUX_DATA_LENGTH 31
+#define COMEDI_NAMELEN 20
+#define CR_PACK(chan,rng,aref) ((((aref) & 0x3) << 24) | (((rng) & 0xff) << 16) | (chan))
+#define CR_PACK_FLAGS(chan,range,aref,flags) (CR_PACK(chan, range, aref) | ((flags) & CR_FLAGS_MASK))
+#define CR_CHAN(a) ((a) & 0xffff)
+#define CR_RANGE(a) (((a) >> 16) & 0xff)
+#define CR_AREF(a) (((a) >> 24) & 0x03)
+#define CR_FLAGS_MASK 0xfc000000
+#define CR_ALT_FILTER 0x04000000
+#define CR_DITHER CR_ALT_FILTER
+#define CR_DEGLITCH CR_ALT_FILTER
+#define CR_ALT_SOURCE 0x08000000
+#define CR_EDGE 0x40000000
+#define CR_INVERT 0x80000000
+#define AREF_GROUND 0x00
+#define AREF_COMMON 0x01
+#define AREF_DIFF 0x02
+#define AREF_OTHER 0x03
+#define GPCT_RESET 0x0001
+#define GPCT_SET_SOURCE 0x0002
+#define GPCT_SET_GATE 0x0004
+#define GPCT_SET_DIRECTION 0x0008
+#define GPCT_SET_OPERATION 0x0010
+#define GPCT_ARM 0x0020
+#define GPCT_DISARM 0x0040
+#define GPCT_GET_INT_CLK_FRQ 0x0080
+#define GPCT_INT_CLOCK 0x0001
+#define GPCT_EXT_PIN 0x0002
+#define GPCT_NO_GATE 0x0004
+#define GPCT_UP 0x0008
+#define GPCT_DOWN 0x0010
+#define GPCT_HWUD 0x0020
+#define GPCT_SIMPLE_EVENT 0x0040
+#define GPCT_SINGLE_PERIOD 0x0080
+#define GPCT_SINGLE_PW 0x0100
+#define GPCT_CONT_PULSE_OUT 0x0200
+#define GPCT_SINGLE_PULSE_OUT 0x0400
+#define INSN_MASK_WRITE 0x8000000
+#define INSN_MASK_READ 0x4000000
+#define INSN_MASK_SPECIAL 0x2000000
+#define INSN_READ (0 | INSN_MASK_READ)
+#define INSN_WRITE (1 | INSN_MASK_WRITE)
+#define INSN_BITS (2 | INSN_MASK_READ | INSN_MASK_WRITE)
+#define INSN_CONFIG (3 | INSN_MASK_READ | INSN_MASK_WRITE)
+#define INSN_DEVICE_CONFIG (INSN_CONFIG | INSN_MASK_SPECIAL)
+#define INSN_GTOD (4 | INSN_MASK_READ | INSN_MASK_SPECIAL)
+#define INSN_WAIT (5 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
+#define INSN_INTTRIG (6 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
+#define CMDF_BOGUS 0x00000001
+#define CMDF_PRIORITY 0x00000008
+#define CMDF_WAKE_EOS 0x00000020
+#define CMDF_WRITE 0x00000040
+#define CMDF_RAWDATA 0x00000080
+#define CMDF_ROUND_MASK 0x00030000
+#define CMDF_ROUND_NEAREST 0x00000000
+#define CMDF_ROUND_DOWN 0x00010000
+#define CMDF_ROUND_UP 0x00020000
+#define CMDF_ROUND_UP_NEXT 0x00030000
+#define COMEDI_EV_START 0x00040000
+#define COMEDI_EV_SCAN_BEGIN 0x00080000
+#define COMEDI_EV_CONVERT 0x00100000
+#define COMEDI_EV_SCAN_END 0x00200000
+#define COMEDI_EV_STOP 0x00400000
+#define TRIG_BOGUS CMDF_BOGUS
+#define TRIG_RT CMDF_PRIORITY
+#define TRIG_WAKE_EOS CMDF_WAKE_EOS
+#define TRIG_WRITE CMDF_WRITE
+#define TRIG_ROUND_MASK CMDF_ROUND_MASK
+#define TRIG_ROUND_NEAREST CMDF_ROUND_NEAREST
+#define TRIG_ROUND_DOWN CMDF_ROUND_DOWN
+#define TRIG_ROUND_UP CMDF_ROUND_UP
+#define TRIG_ROUND_UP_NEXT CMDF_ROUND_UP_NEXT
+#define TRIG_ANY 0xffffffff
+#define TRIG_INVALID 0x00000000
+#define TRIG_NONE 0x00000001
+#define TRIG_NOW 0x00000002
+#define TRIG_FOLLOW 0x00000004
+#define TRIG_TIME 0x00000008
+#define TRIG_TIMER 0x00000010
+#define TRIG_COUNT 0x00000020
+#define TRIG_EXT 0x00000040
+#define TRIG_INT 0x00000080
+#define TRIG_OTHER 0x00000100
+#define SDF_BUSY 0x0001
+#define SDF_BUSY_OWNER 0x0002
+#define SDF_LOCKED 0x0004
+#define SDF_LOCK_OWNER 0x0008
+#define SDF_MAXDATA 0x0010
+#define SDF_FLAGS 0x0020
+#define SDF_RANGETYPE 0x0040
+#define SDF_PWM_COUNTER 0x0080
+#define SDF_PWM_HBRIDGE 0x0100
+#define SDF_CMD 0x1000
+#define SDF_SOFT_CALIBRATED 0x2000
+#define SDF_CMD_WRITE 0x4000
+#define SDF_CMD_READ 0x8000
+#define SDF_READABLE 0x00010000
+#define SDF_WRITABLE 0x00020000
+#define SDF_WRITEABLE SDF_WRITABLE
+#define SDF_INTERNAL 0x00040000
+#define SDF_GROUND 0x00100000
+#define SDF_COMMON 0x00200000
+#define SDF_DIFF 0x00400000
+#define SDF_OTHER 0x00800000
+#define SDF_DITHER 0x01000000
+#define SDF_DEGLITCH 0x02000000
+#define SDF_MMAP 0x04000000
+#define SDF_RUNNING 0x08000000
+#define SDF_LSAMPL 0x10000000
+#define SDF_PACKED 0x20000000
+enum comedi_subdevice_type {
+  COMEDI_SUBD_UNUSED,
+  COMEDI_SUBD_AI,
+  COMEDI_SUBD_AO,
+  COMEDI_SUBD_DI,
+  COMEDI_SUBD_DO,
+  COMEDI_SUBD_DIO,
+  COMEDI_SUBD_COUNTER,
+  COMEDI_SUBD_TIMER,
+  COMEDI_SUBD_MEMORY,
+  COMEDI_SUBD_CALIB,
+  COMEDI_SUBD_PROC,
+  COMEDI_SUBD_SERIAL,
+  COMEDI_SUBD_PWM
+};
+enum comedi_io_direction {
+  COMEDI_INPUT = 0,
+  COMEDI_OUTPUT = 1,
+  COMEDI_OPENDRAIN = 2
+};
+enum configuration_ids {
+  INSN_CONFIG_DIO_INPUT = COMEDI_INPUT,
+  INSN_CONFIG_DIO_OUTPUT = COMEDI_OUTPUT,
+  INSN_CONFIG_DIO_OPENDRAIN = COMEDI_OPENDRAIN,
+  INSN_CONFIG_ANALOG_TRIG = 16,
+  INSN_CONFIG_ALT_SOURCE = 20,
+  INSN_CONFIG_DIGITAL_TRIG = 21,
+  INSN_CONFIG_BLOCK_SIZE = 22,
+  INSN_CONFIG_TIMER_1 = 23,
+  INSN_CONFIG_FILTER = 24,
+  INSN_CONFIG_CHANGE_NOTIFY = 25,
+  INSN_CONFIG_SERIAL_CLOCK = 26,
+  INSN_CONFIG_BIDIRECTIONAL_DATA = 27,
+  INSN_CONFIG_DIO_QUERY = 28,
+  INSN_CONFIG_PWM_OUTPUT = 29,
+  INSN_CONFIG_GET_PWM_OUTPUT = 30,
+  INSN_CONFIG_ARM = 31,
+  INSN_CONFIG_DISARM = 32,
+  INSN_CONFIG_GET_COUNTER_STATUS = 33,
+  INSN_CONFIG_RESET = 34,
+  INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR = 1001,
+  INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR = 1002,
+  INSN_CONFIG_GPCT_QUADRATURE_ENCODER = 1003,
+  INSN_CONFIG_SET_GATE_SRC = 2001,
+  INSN_CONFIG_GET_GATE_SRC = 2002,
+  INSN_CONFIG_SET_CLOCK_SRC = 2003,
+  INSN_CONFIG_GET_CLOCK_SRC = 2004,
+  INSN_CONFIG_SET_OTHER_SRC = 2005,
+  INSN_CONFIG_GET_HARDWARE_BUFFER_SIZE = 2006,
+  INSN_CONFIG_SET_COUNTER_MODE = 4097,
+  INSN_CONFIG_8254_SET_MODE = INSN_CONFIG_SET_COUNTER_MODE,
+  INSN_CONFIG_8254_READ_STATUS = 4098,
+  INSN_CONFIG_SET_ROUTING = 4099,
+  INSN_CONFIG_GET_ROUTING = 4109,
+  INSN_CONFIG_PWM_SET_PERIOD = 5000,
+  INSN_CONFIG_PWM_GET_PERIOD = 5001,
+  INSN_CONFIG_GET_PWM_STATUS = 5002,
+  INSN_CONFIG_PWM_SET_H_BRIDGE = 5003,
+  INSN_CONFIG_PWM_GET_H_BRIDGE = 5004,
+  INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS = 5005,
+};
+enum device_config_route_ids {
+  INSN_DEVICE_CONFIG_TEST_ROUTE = 0,
+  INSN_DEVICE_CONFIG_CONNECT_ROUTE = 1,
+  INSN_DEVICE_CONFIG_DISCONNECT_ROUTE = 2,
+  INSN_DEVICE_CONFIG_GET_ROUTES = 3,
+};
+enum comedi_digital_trig_op {
+  COMEDI_DIGITAL_TRIG_DISABLE = 0,
+  COMEDI_DIGITAL_TRIG_ENABLE_EDGES = 1,
+  COMEDI_DIGITAL_TRIG_ENABLE_LEVELS = 2
+};
+enum comedi_support_level {
+  COMEDI_UNKNOWN_SUPPORT = 0,
+  COMEDI_SUPPORTED,
+  COMEDI_UNSUPPORTED
+};
+enum comedi_counter_status_flags {
+  COMEDI_COUNTER_ARMED = 0x1,
+  COMEDI_COUNTER_COUNTING = 0x2,
+  COMEDI_COUNTER_TERMINAL_COUNT = 0x4,
+};
+#define CIO 'd'
+#define COMEDI_DEVCONFIG _IOW(CIO, 0, struct comedi_devconfig)
+#define COMEDI_DEVINFO _IOR(CIO, 1, struct comedi_devinfo)
+#define COMEDI_SUBDINFO _IOR(CIO, 2, struct comedi_subdinfo)
+#define COMEDI_CHANINFO _IOR(CIO, 3, struct comedi_chaninfo)
+#define COMEDI_LOCK _IO(CIO, 5)
+#define COMEDI_UNLOCK _IO(CIO, 6)
+#define COMEDI_CANCEL _IO(CIO, 7)
+#define COMEDI_RANGEINFO _IOR(CIO, 8, struct comedi_rangeinfo)
+#define COMEDI_CMD _IOR(CIO, 9, struct comedi_cmd)
+#define COMEDI_CMDTEST _IOR(CIO, 10, struct comedi_cmd)
+#define COMEDI_INSNLIST _IOR(CIO, 11, struct comedi_insnlist)
+#define COMEDI_INSN _IOR(CIO, 12, struct comedi_insn)
+#define COMEDI_BUFCONFIG _IOR(CIO, 13, struct comedi_bufconfig)
+#define COMEDI_BUFINFO _IOWR(CIO, 14, struct comedi_bufinfo)
+#define COMEDI_POLL _IO(CIO, 15)
+#define COMEDI_SETRSUBD _IO(CIO, 16)
+#define COMEDI_SETWSUBD _IO(CIO, 17)
+struct comedi_insn {
+  unsigned int insn;
+  unsigned int n;
+  unsigned int __user * data;
+  unsigned int subdev;
+  unsigned int chanspec;
+  unsigned int unused[3];
+};
+struct comedi_insnlist {
+  unsigned int n_insns;
+  struct comedi_insn __user * insns;
+};
+struct comedi_cmd {
+  unsigned int subdev;
+  unsigned int flags;
+  unsigned int start_src;
+  unsigned int start_arg;
+  unsigned int scan_begin_src;
+  unsigned int scan_begin_arg;
+  unsigned int convert_src;
+  unsigned int convert_arg;
+  unsigned int scan_end_src;
+  unsigned int scan_end_arg;
+  unsigned int stop_src;
+  unsigned int stop_arg;
+  unsigned int * chanlist;
+  unsigned int chanlist_len;
+  short __user * data;
+  unsigned int data_len;
+};
+struct comedi_chaninfo {
+  unsigned int subdev;
+  unsigned int __user * maxdata_list;
+  unsigned int __user * flaglist;
+  unsigned int __user * rangelist;
+  unsigned int unused[4];
+};
+struct comedi_rangeinfo {
+  unsigned int range_type;
+  void __user * range_ptr;
+};
+struct comedi_krange {
+  int min;
+  int max;
+  unsigned int flags;
+};
+struct comedi_subdinfo {
+  unsigned int type;
+  unsigned int n_chan;
+  unsigned int subd_flags;
+  unsigned int timer_type;
+  unsigned int len_chanlist;
+  unsigned int maxdata;
+  unsigned int flags;
+  unsigned int range_type;
+  unsigned int settling_time_0;
+  unsigned int insn_bits_support;
+  unsigned int unused[8];
+};
+struct comedi_devinfo {
+  unsigned int version_code;
+  unsigned int n_subdevs;
+  char driver_name[COMEDI_NAMELEN];
+  char board_name[COMEDI_NAMELEN];
+  int read_subdevice;
+  int write_subdevice;
+  int unused[30];
+};
+struct comedi_devconfig {
+  char board_name[COMEDI_NAMELEN];
+  int options[COMEDI_NDEVCONFOPTS];
+};
+struct comedi_bufconfig {
+  unsigned int subdevice;
+  unsigned int flags;
+  unsigned int maximum_size;
+  unsigned int size;
+  unsigned int unused[4];
+};
+struct comedi_bufinfo {
+  unsigned int subdevice;
+  unsigned int bytes_read;
+  unsigned int buf_write_ptr;
+  unsigned int buf_read_ptr;
+  unsigned int buf_write_count;
+  unsigned int buf_read_count;
+  unsigned int bytes_written;
+  unsigned int unused[4];
+};
+#define __RANGE(a,b) ((((a) & 0xffff) << 16) | ((b) & 0xffff))
+#define RANGE_OFFSET(a) (((a) >> 16) & 0xffff)
+#define RANGE_LENGTH(b) ((b) & 0xffff)
+#define RF_UNIT(flags) ((flags) & 0xff)
+#define RF_EXTERNAL 0x100
+#define UNIT_volt 0
+#define UNIT_mA 1
+#define UNIT_none 2
+#define COMEDI_MIN_SPEED 0xffffffffu
+enum i8254_mode {
+  I8254_MODE0 = (0 << 1),
+  I8254_MODE1 = (1 << 1),
+  I8254_MODE2 = (2 << 1),
+  I8254_MODE3 = (3 << 1),
+  I8254_MODE4 = (4 << 1),
+  I8254_MODE5 = (5 << 1),
+  I8254_BCD = 1,
+  I8254_BINARY = 0
+};
+#define NI_NAMES_BASE 0x8000u
+#define _TERM_N(base,n,x) ((base) + ((x) & ((n) - 1)))
+#define NI_PFI(x) _TERM_N(NI_NAMES_BASE, 64, x)
+#define TRIGGER_LINE(x) _TERM_N(NI_PFI(- 1) + 1, 8, x)
+#define NI_RTSI_BRD(x) _TERM_N(TRIGGER_LINE(- 1) + 1, 4, x)
+#define NI_MAX_COUNTERS 8
+#define NI_COUNTER_NAMES_BASE (NI_RTSI_BRD(- 1) + 1)
+#define NI_CtrSource(x) _TERM_N(NI_COUNTER_NAMES_BASE, NI_MAX_COUNTERS, x)
+#define NI_GATES_NAMES_BASE (NI_CtrSource(- 1) + 1)
+#define NI_CtrGate(x) _TERM_N(NI_GATES_NAMES_BASE, NI_MAX_COUNTERS, x)
+#define NI_CtrAux(x) _TERM_N(NI_CtrGate(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrA(x) _TERM_N(NI_CtrAux(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrB(x) _TERM_N(NI_CtrA(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrZ(x) _TERM_N(NI_CtrB(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_GATES_NAMES_MAX NI_CtrZ(- 1)
+#define NI_CtrArmStartTrigger(x) _TERM_N(NI_CtrZ(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrInternalOutput(x) _TERM_N(NI_CtrArmStartTrigger(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrOut(x) _TERM_N(NI_CtrInternalOutput(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrSampleClock(x) _TERM_N(NI_CtrOut(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_COUNTER_NAMES_MAX NI_CtrSampleClock(- 1)
+enum ni_common_signal_names {
+  PXI_Star = NI_COUNTER_NAMES_MAX + 1,
+  PXI_Clk10,
+  PXIe_Clk100,
+  NI_AI_SampleClock,
+  NI_AI_SampleClockTimebase,
+  NI_AI_StartTrigger,
+  NI_AI_ReferenceTrigger,
+  NI_AI_ConvertClock,
+  NI_AI_ConvertClockTimebase,
+  NI_AI_PauseTrigger,
+  NI_AI_HoldCompleteEvent,
+  NI_AI_HoldComplete,
+  NI_AI_ExternalMUXClock,
+  NI_AI_STOP,
+  NI_AO_SampleClock,
+  NI_AO_SampleClockTimebase,
+  NI_AO_StartTrigger,
+  NI_AO_PauseTrigger,
+  NI_DI_SampleClock,
+  NI_DI_SampleClockTimebase,
+  NI_DI_StartTrigger,
+  NI_DI_ReferenceTrigger,
+  NI_DI_PauseTrigger,
+  NI_DI_InputBufferFull,
+  NI_DI_ReadyForStartEvent,
+  NI_DI_ReadyForTransferEventBurst,
+  NI_DI_ReadyForTransferEventPipelined,
+  NI_DO_SampleClock,
+  NI_DO_SampleClockTimebase,
+  NI_DO_StartTrigger,
+  NI_DO_PauseTrigger,
+  NI_DO_OutputBufferFull,
+  NI_DO_DataActiveEvent,
+  NI_DO_ReadyForStartEvent,
+  NI_DO_ReadyForTransferEvent,
+  NI_MasterTimebase,
+  NI_20MHzTimebase,
+  NI_80MHzTimebase,
+  NI_100MHzTimebase,
+  NI_200MHzTimebase,
+  NI_100kHzTimebase,
+  NI_10MHzRefClock,
+  NI_FrequencyOutput,
+  NI_ChangeDetectionEvent,
+  NI_AnalogComparisonEvent,
+  NI_WatchdogExpiredEvent,
+  NI_WatchdogExpirationTrigger,
+  NI_SCXI_Trig1,
+  NI_LogicLow,
+  NI_LogicHigh,
+  NI_ExternalStrobe,
+  NI_PFI_DO,
+  NI_CaseGround,
+  NI_RGOUT0,
+  _NI_NAMES_MAX_PLUS_1,
+  NI_NUM_NAMES = _NI_NAMES_MAX_PLUS_1 - NI_NAMES_BASE,
+};
+#define NI_USUAL_PFI_SELECT(x) (((x) < 10) ? (0x1 + (x)) : (0xb + (x)))
+#define NI_USUAL_RTSI_SELECT(x) (((x) < 7) ? (0xb + (x)) : 0x1b)
+#define NI_GPCT_COUNTING_MODE_SHIFT 16
+#define NI_GPCT_INDEX_PHASE_BITSHIFT 20
+#define NI_GPCT_COUNTING_DIRECTION_SHIFT 24
+enum ni_gpct_mode_bits {
+  NI_GPCT_GATE_ON_BOTH_EDGES_BIT = 0x4,
+  NI_GPCT_EDGE_GATE_MODE_MASK = 0x18,
+  NI_GPCT_EDGE_GATE_STARTS_STOPS_BITS = 0x0,
+  NI_GPCT_EDGE_GATE_STOPS_STARTS_BITS = 0x8,
+  NI_GPCT_EDGE_GATE_STARTS_BITS = 0x10,
+  NI_GPCT_EDGE_GATE_NO_STARTS_NO_STOPS_BITS = 0x18,
+  NI_GPCT_STOP_MODE_MASK = 0x60,
+  NI_GPCT_STOP_ON_GATE_BITS = 0x00,
+  NI_GPCT_STOP_ON_GATE_OR_TC_BITS = 0x20,
+  NI_GPCT_STOP_ON_GATE_OR_SECOND_TC_BITS = 0x40,
+  NI_GPCT_LOAD_B_SELECT_BIT = 0x80,
+  NI_GPCT_OUTPUT_MODE_MASK = 0x300,
+  NI_GPCT_OUTPUT_TC_PULSE_BITS = 0x100,
+  NI_GPCT_OUTPUT_TC_TOGGLE_BITS = 0x200,
+  NI_GPCT_OUTPUT_TC_OR_GATE_TOGGLE_BITS = 0x300,
+  NI_GPCT_HARDWARE_DISARM_MASK = 0xc00,
+  NI_GPCT_NO_HARDWARE_DISARM_BITS = 0x000,
+  NI_GPCT_DISARM_AT_TC_BITS = 0x400,
+  NI_GPCT_DISARM_AT_GATE_BITS = 0x800,
+  NI_GPCT_DISARM_AT_TC_OR_GATE_BITS = 0xc00,
+  NI_GPCT_LOADING_ON_TC_BIT = 0x1000,
+  NI_GPCT_LOADING_ON_GATE_BIT = 0x4000,
+  NI_GPCT_COUNTING_MODE_MASK = 0x7 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_NORMAL_BITS = 0x0 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X1_BITS = 0x1 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X2_BITS = 0x2 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X4_BITS = 0x3 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_TWO_PULSE_BITS = 0x4 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_SYNC_SOURCE_BITS = 0x6 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_INDEX_PHASE_MASK = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_LOW_A_LOW_B_BITS = 0x0 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_LOW_A_HIGH_B_BITS = 0x1 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_HIGH_A_LOW_B_BITS = 0x2 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_HIGH_A_HIGH_B_BITS = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_ENABLE_BIT = 0x400000,
+  NI_GPCT_COUNTING_DIRECTION_MASK = 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_DOWN_BITS = 0x00 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_UP_BITS = 0x1 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_HW_UP_DOWN_BITS = 0x2 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_HW_GATE_BITS = 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_RELOAD_SOURCE_MASK = 0xc000000,
+  NI_GPCT_RELOAD_SOURCE_FIXED_BITS = 0x0,
+  NI_GPCT_RELOAD_SOURCE_SWITCHING_BITS = 0x4000000,
+  NI_GPCT_RELOAD_SOURCE_GATE_SELECT_BITS = 0x8000000,
+  NI_GPCT_OR_GATE_BIT = 0x10000000,
+  NI_GPCT_INVERT_OUTPUT_BIT = 0x20000000
+};
+enum ni_gpct_clock_source_bits {
+  NI_GPCT_CLOCK_SRC_SELECT_MASK = 0x3f,
+  NI_GPCT_TIMEBASE_1_CLOCK_SRC_BITS = 0x0,
+  NI_GPCT_TIMEBASE_2_CLOCK_SRC_BITS = 0x1,
+  NI_GPCT_TIMEBASE_3_CLOCK_SRC_BITS = 0x2,
+  NI_GPCT_LOGIC_LOW_CLOCK_SRC_BITS = 0x3,
+  NI_GPCT_NEXT_GATE_CLOCK_SRC_BITS = 0x4,
+  NI_GPCT_NEXT_TC_CLOCK_SRC_BITS = 0x5,
+  NI_GPCT_SOURCE_PIN_i_CLOCK_SRC_BITS = 0x6,
+  NI_GPCT_PXI10_CLOCK_SRC_BITS = 0x7,
+  NI_GPCT_PXI_STAR_TRIGGER_CLOCK_SRC_BITS = 0x8,
+  NI_GPCT_ANALOG_TRIGGER_OUT_CLOCK_SRC_BITS = 0x9,
+  NI_GPCT_PRESCALE_MODE_CLOCK_SRC_MASK = 0x30000000,
+  NI_GPCT_NO_PRESCALE_CLOCK_SRC_BITS = 0x0,
+  NI_GPCT_PRESCALE_X2_CLOCK_SRC_BITS = 0x10000000,
+  NI_GPCT_PRESCALE_X8_CLOCK_SRC_BITS = 0x20000000,
+  NI_GPCT_INVERT_CLOCK_SRC_BIT = 0x80000000
+};
+#define NI_GPCT_SOURCE_PIN_CLOCK_SRC_BITS(x) (0x10 + (x))
+#define NI_GPCT_RTSI_CLOCK_SRC_BITS(x) (0x18 + (x))
+#define NI_GPCT_PFI_CLOCK_SRC_BITS(x) (0x20 + (x))
+enum ni_gpct_gate_select {
+  NI_GPCT_TIMESTAMP_MUX_GATE_SELECT = 0x0,
+  NI_GPCT_AI_START2_GATE_SELECT = 0x12,
+  NI_GPCT_PXI_STAR_TRIGGER_GATE_SELECT = 0x13,
+  NI_GPCT_NEXT_OUT_GATE_SELECT = 0x14,
+  NI_GPCT_AI_START1_GATE_SELECT = 0x1c,
+  NI_GPCT_NEXT_SOURCE_GATE_SELECT = 0x1d,
+  NI_GPCT_ANALOG_TRIGGER_OUT_GATE_SELECT = 0x1e,
+  NI_GPCT_LOGIC_LOW_GATE_SELECT = 0x1f,
+  NI_GPCT_SOURCE_PIN_i_GATE_SELECT = 0x100,
+  NI_GPCT_GATE_PIN_i_GATE_SELECT = 0x101,
+  NI_GPCT_UP_DOWN_PIN_i_GATE_SELECT = 0x201,
+  NI_GPCT_SELECTED_GATE_GATE_SELECT = 0x21e,
+  NI_GPCT_DISABLED_GATE_SELECT = 0x8000,
+};
+#define NI_GPCT_GATE_PIN_GATE_SELECT(x) (0x102 + (x))
+#define NI_GPCT_RTSI_GATE_SELECT(x) NI_USUAL_RTSI_SELECT(x)
+#define NI_GPCT_PFI_GATE_SELECT(x) NI_USUAL_PFI_SELECT(x)
+#define NI_GPCT_UP_DOWN_PIN_GATE_SELECT(x) (0x202 + (x))
+enum ni_gpct_other_index {
+  NI_GPCT_SOURCE_ENCODER_A,
+  NI_GPCT_SOURCE_ENCODER_B,
+  NI_GPCT_SOURCE_ENCODER_Z
+};
+enum ni_gpct_other_select {
+  NI_GPCT_DISABLED_OTHER_SELECT = 0x8000,
+};
+#define NI_GPCT_PFI_OTHER_SELECT(x) NI_USUAL_PFI_SELECT(x)
+enum ni_gpct_arm_source {
+  NI_GPCT_ARM_IMMEDIATE = 0x0,
+  NI_GPCT_ARM_PAIRED_IMMEDIATE = 0x1,
+  NI_GPCT_HW_ARM = 0x1000,
+  NI_GPCT_ARM_UNKNOWN = NI_GPCT_HW_ARM,
+};
+enum ni_gpct_filter_select {
+  NI_GPCT_FILTER_OFF = 0x0,
+  NI_GPCT_FILTER_TIMEBASE_3_SYNC = 0x1,
+  NI_GPCT_FILTER_100x_TIMEBASE_1 = 0x2,
+  NI_GPCT_FILTER_20x_TIMEBASE_1 = 0x3,
+  NI_GPCT_FILTER_10x_TIMEBASE_1 = 0x4,
+  NI_GPCT_FILTER_2x_TIMEBASE_1 = 0x5,
+  NI_GPCT_FILTER_2x_TIMEBASE_3 = 0x6
+};
+enum ni_pfi_filter_select {
+  NI_PFI_FILTER_OFF = 0x0,
+  NI_PFI_FILTER_125ns = 0x1,
+  NI_PFI_FILTER_6425ns = 0x2,
+  NI_PFI_FILTER_2550us = 0x3
+};
+enum ni_mio_clock_source {
+  NI_MIO_INTERNAL_CLOCK = 0,
+  NI_MIO_RTSI_CLOCK = 1,
+  NI_MIO_PLL_PXI_STAR_TRIGGER_CLOCK = 2,
+  NI_MIO_PLL_PXI10_CLOCK = 3,
+  NI_MIO_PLL_RTSI0_CLOCK = 4
+};
+#define NI_MIO_PLL_RTSI_CLOCK(x) (NI_MIO_PLL_RTSI0_CLOCK + (x))
+enum ni_rtsi_routing {
+  NI_RTSI_OUTPUT_ADR_START1 = 0,
+  NI_RTSI_OUTPUT_ADR_START2 = 1,
+  NI_RTSI_OUTPUT_SCLKG = 2,
+  NI_RTSI_OUTPUT_DACUPDN = 3,
+  NI_RTSI_OUTPUT_DA_START1 = 4,
+  NI_RTSI_OUTPUT_G_SRC0 = 5,
+  NI_RTSI_OUTPUT_G_GATE0 = 6,
+  NI_RTSI_OUTPUT_RGOUT0 = 7,
+  NI_RTSI_OUTPUT_RTSI_BRD_0 = 8,
+  NI_RTSI_OUTPUT_RTSI_OSC = 12
+};
+#define NI_RTSI_OUTPUT_RTSI_BRD(x) (NI_RTSI_OUTPUT_RTSI_BRD_0 + (x))
+enum ni_pfi_routing {
+  NI_PFI_OUTPUT_PFI_DEFAULT = 0,
+  NI_PFI_OUTPUT_AI_START1 = 1,
+  NI_PFI_OUTPUT_AI_START2 = 2,
+  NI_PFI_OUTPUT_AI_CONVERT = 3,
+  NI_PFI_OUTPUT_G_SRC1 = 4,
+  NI_PFI_OUTPUT_G_GATE1 = 5,
+  NI_PFI_OUTPUT_AO_UPDATE_N = 6,
+  NI_PFI_OUTPUT_AO_START1 = 7,
+  NI_PFI_OUTPUT_AI_START_PULSE = 8,
+  NI_PFI_OUTPUT_G_SRC0 = 9,
+  NI_PFI_OUTPUT_G_GATE0 = 10,
+  NI_PFI_OUTPUT_EXT_STROBE = 11,
+  NI_PFI_OUTPUT_AI_EXT_MUX_CLK = 12,
+  NI_PFI_OUTPUT_GOUT0 = 13,
+  NI_PFI_OUTPUT_GOUT1 = 14,
+  NI_PFI_OUTPUT_FREQ_OUT = 15,
+  NI_PFI_OUTPUT_PFI_DO = 16,
+  NI_PFI_OUTPUT_I_ATRIG = 17,
+  NI_PFI_OUTPUT_RTSI0 = 18,
+  NI_PFI_OUTPUT_PXI_STAR_TRIGGER_IN = 26,
+  NI_PFI_OUTPUT_SCXI_TRIG1 = 27,
+  NI_PFI_OUTPUT_DIO_CHANGE_DETECT_RTSI = 28,
+  NI_PFI_OUTPUT_CDI_SAMPLE = 29,
+  NI_PFI_OUTPUT_CDO_UPDATE = 30
+};
+#define NI_PFI_OUTPUT_RTSI(x) (NI_PFI_OUTPUT_RTSI0 + (x))
+enum ni_660x_pfi_routing {
+  NI_660X_PFI_OUTPUT_COUNTER = 1,
+  NI_660X_PFI_OUTPUT_DIO = 2,
+};
+#define NI_EXT_PFI(x) (NI_USUAL_PFI_SELECT(x) - 1)
+#define NI_EXT_RTSI(x) (NI_USUAL_RTSI_SELECT(x) - 1)
+enum ni_m_series_cdio_scan_begin_src {
+  NI_CDIO_SCAN_BEGIN_SRC_GROUND = 0,
+  NI_CDIO_SCAN_BEGIN_SRC_AI_START = 18,
+  NI_CDIO_SCAN_BEGIN_SRC_AI_CONVERT = 19,
+  NI_CDIO_SCAN_BEGIN_SRC_PXI_STAR_TRIGGER = 20,
+  NI_CDIO_SCAN_BEGIN_SRC_G0_OUT = 28,
+  NI_CDIO_SCAN_BEGIN_SRC_G1_OUT = 29,
+  NI_CDIO_SCAN_BEGIN_SRC_ANALOG_TRIGGER = 30,
+  NI_CDIO_SCAN_BEGIN_SRC_AO_UPDATE = 31,
+  NI_CDIO_SCAN_BEGIN_SRC_FREQ_OUT = 32,
+  NI_CDIO_SCAN_BEGIN_SRC_DIO_CHANGE_DETECT_IRQ = 33
+};
+#define NI_CDIO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x)
+#define NI_CDIO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x)
+#define NI_AO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x)
+#define NI_AO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x)
+enum ni_freq_out_clock_source_bits {
+  NI_FREQ_OUT_TIMEBASE_1_DIV_2_CLOCK_SRC,
+  NI_FREQ_OUT_TIMEBASE_2_CLOCK_SRC
+};
+enum amplc_dio_clock_source {
+  AMPLC_DIO_CLK_CLKN,
+  AMPLC_DIO_CLK_10MHZ,
+  AMPLC_DIO_CLK_1MHZ,
+  AMPLC_DIO_CLK_100KHZ,
+  AMPLC_DIO_CLK_10KHZ,
+  AMPLC_DIO_CLK_1KHZ,
+  AMPLC_DIO_CLK_OUTNM1,
+  AMPLC_DIO_CLK_EXT,
+  AMPLC_DIO_CLK_VCC,
+  AMPLC_DIO_CLK_GND,
+  AMPLC_DIO_CLK_PAT_PRESENT,
+  AMPLC_DIO_CLK_20MHZ
+};
+enum amplc_dio_ts_clock_src {
+  AMPLC_DIO_TS_CLK_1GHZ,
+  AMPLC_DIO_TS_CLK_1MHZ,
+  AMPLC_DIO_TS_CLK_1KHZ
+};
+enum amplc_dio_gate_source {
+  AMPLC_DIO_GAT_VCC,
+  AMPLC_DIO_GAT_GND,
+  AMPLC_DIO_GAT_GATN,
+  AMPLC_DIO_GAT_NOUTNM2,
+  AMPLC_DIO_GAT_RESERVED4,
+  AMPLC_DIO_GAT_RESERVED5,
+  AMPLC_DIO_GAT_RESERVED6,
+  AMPLC_DIO_GAT_RESERVED7,
+  AMPLC_DIO_GAT_NGATN = 6,
+  AMPLC_DIO_GAT_OUTNM2,
+  AMPLC_DIO_GAT_PAT_PRESENT,
+  AMPLC_DIO_GAT_PAT_OCCURRED,
+  AMPLC_DIO_GAT_PAT_GONE,
+  AMPLC_DIO_GAT_NPAT_PRESENT,
+  AMPLC_DIO_GAT_NPAT_OCCURRED,
+  AMPLC_DIO_GAT_NPAT_GONE
+};
+enum ke_counter_clock_source {
+  KE_CLK_20MHZ,
+  KE_CLK_4MHZ,
+  KE_CLK_EXT
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/counter.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/counter.h
new file mode 100644
index 0000000..091e33d
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/counter.h
@@ -0,0 +1,93 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_COUNTER_H_
+#define _UAPI_COUNTER_H_
+#include <linux/ioctl.h>
+#include <linux/types.h>
+enum counter_component_type {
+  COUNTER_COMPONENT_NONE,
+  COUNTER_COMPONENT_SIGNAL,
+  COUNTER_COMPONENT_COUNT,
+  COUNTER_COMPONENT_FUNCTION,
+  COUNTER_COMPONENT_SYNAPSE_ACTION,
+  COUNTER_COMPONENT_EXTENSION,
+};
+enum counter_scope {
+  COUNTER_SCOPE_DEVICE,
+  COUNTER_SCOPE_SIGNAL,
+  COUNTER_SCOPE_COUNT,
+};
+struct counter_component {
+  __u8 type;
+  __u8 scope;
+  __u8 parent;
+  __u8 id;
+};
+enum counter_event_type {
+  COUNTER_EVENT_OVERFLOW,
+  COUNTER_EVENT_UNDERFLOW,
+  COUNTER_EVENT_OVERFLOW_UNDERFLOW,
+  COUNTER_EVENT_THRESHOLD,
+  COUNTER_EVENT_INDEX,
+};
+struct counter_watch {
+  struct counter_component component;
+  __u8 event;
+  __u8 channel;
+};
+#define COUNTER_ADD_WATCH_IOCTL _IOW(0x3E, 0x00, struct counter_watch)
+#define COUNTER_ENABLE_EVENTS_IOCTL _IO(0x3E, 0x01)
+#define COUNTER_DISABLE_EVENTS_IOCTL _IO(0x3E, 0x02)
+struct counter_event {
+  __aligned_u64 timestamp;
+  __aligned_u64 value;
+  struct counter_watch watch;
+  __u8 status;
+};
+enum counter_count_direction {
+  COUNTER_COUNT_DIRECTION_FORWARD,
+  COUNTER_COUNT_DIRECTION_BACKWARD,
+};
+enum counter_count_mode {
+  COUNTER_COUNT_MODE_NORMAL,
+  COUNTER_COUNT_MODE_RANGE_LIMIT,
+  COUNTER_COUNT_MODE_NON_RECYCLE,
+  COUNTER_COUNT_MODE_MODULO_N,
+};
+enum counter_function {
+  COUNTER_FUNCTION_INCREASE,
+  COUNTER_FUNCTION_DECREASE,
+  COUNTER_FUNCTION_PULSE_DIRECTION,
+  COUNTER_FUNCTION_QUADRATURE_X1_A,
+  COUNTER_FUNCTION_QUADRATURE_X1_B,
+  COUNTER_FUNCTION_QUADRATURE_X2_A,
+  COUNTER_FUNCTION_QUADRATURE_X2_B,
+  COUNTER_FUNCTION_QUADRATURE_X4,
+};
+enum counter_signal_level {
+  COUNTER_SIGNAL_LEVEL_LOW,
+  COUNTER_SIGNAL_LEVEL_HIGH,
+};
+enum counter_synapse_action {
+  COUNTER_SYNAPSE_ACTION_NONE,
+  COUNTER_SYNAPSE_ACTION_RISING_EDGE,
+  COUNTER_SYNAPSE_ACTION_FALLING_EDGE,
+  COUNTER_SYNAPSE_ACTION_BOTH_EDGES,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cxl_mem.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
index 851bd79..15e9e29 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
@@ -21,7 +21,7 @@
 #include <linux/types.h>
 #define CXL_MEM_QUERY_COMMANDS _IOR(0xCE, 1, struct cxl_mem_query_commands)
 #define CXL_MEM_SEND_COMMAND _IOWR(0xCE, 2, struct cxl_send_command)
-#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(MAX, "invalid / last command")
+#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(SET_PARTITION_INFO, "Set Partition Information"), ___C(SET_LSA, "Set Label Storage Area"), ___C(GET_ALERT_CONFIG, "Get Alert Configuration"), ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), ___C(GET_POISON, "Get Poison List"), ___C(INJECT_POISON, "Inject Poison"), ___C(CLEAR_POISON, "Clear Poison"), ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), ___C(SCAN_MEDIA, "Scan Media"), ___C(GET_SCAN_MEDIA, "Get Scan Media Results"), ___C(MAX, "invalid / last command")
 #define ___C(a,b) CXL_MEM_COMMAND_ID_ ##a
 enum {
   CXL_CMDS
@@ -30,7 +30,7 @@
 #define ___C(a,b) { b }
 static const struct {
   const char * name;
-} cxl_command_names[] = {
+} cxl_command_names[] __attribute__((__unused__)) = {
   CXL_CMDS
 };
 #undef ___C
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cyclades.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cyclades.h
index 60bc4af..c0aa7aa 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cyclades.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/cyclades.h
@@ -18,24 +18,14 @@
  ****************************************************************************/
 #ifndef _UAPI_LINUX_CYCLADES_H
 #define _UAPI_LINUX_CYCLADES_H
-#include <linux/types.h>
+#warning "Support for features provided by this header has been removed"
+#warning "Please consider updating your code"
 struct cyclades_monitor {
   unsigned long int_count;
   unsigned long char_count;
   unsigned long char_max;
   unsigned long char_last;
 };
-struct cyclades_idle_stats {
-  __kernel_old_time_t in_use;
-  __kernel_old_time_t recv_idle;
-  __kernel_old_time_t xmit_idle;
-  unsigned long recv_bytes;
-  unsigned long xmit_bytes;
-  unsigned long overruns;
-  unsigned long frame_errs;
-  unsigned long parity_errs;
-};
-#define CYCLADES_MAGIC 0x4359
 #define CYGETMON 0x435901
 #define CYGETTHRESH 0x435902
 #define CYSETTHRESH 0x435903
@@ -54,253 +44,4 @@
 #define CYGETCD1400VER 0x435910
 #define CYSETWAIT 0x435912
 #define CYGETWAIT 0x435913
-#define CZIOC ('M' << 8)
-#define CZ_NBOARDS (CZIOC | 0xfa)
-#define CZ_BOOT_START (CZIOC | 0xfb)
-#define CZ_BOOT_DATA (CZIOC | 0xfc)
-#define CZ_BOOT_END (CZIOC | 0xfd)
-#define CZ_TEST (CZIOC | 0xfe)
-#define CZ_DEF_POLL (HZ / 25)
-#define MAX_BOARD 4
-#define MAX_DEV 256
-#define CYZ_MAX_SPEED 921600
-#define CYZ_FIFO_SIZE 16
-#define CYZ_BOOT_NWORDS 0x100
-struct CYZ_BOOT_CTRL {
-  unsigned short nboard;
-  int status[MAX_BOARD];
-  int nchannel[MAX_BOARD];
-  int fw_rev[MAX_BOARD];
-  unsigned long offset;
-  unsigned long data[CYZ_BOOT_NWORDS];
-};
-#ifndef DP_WINDOW_SIZE
-#define DP_WINDOW_SIZE (0x00080000)
-#define ZE_DP_WINDOW_SIZE (0x00100000)
-#define CTRL_WINDOW_SIZE (0x00000080)
-struct CUSTOM_REG {
-  __u32 fpga_id;
-  __u32 fpga_version;
-  __u32 cpu_start;
-  __u32 cpu_stop;
-  __u32 misc_reg;
-  __u32 idt_mode;
-  __u32 uart_irq_status;
-  __u32 clear_timer0_irq;
-  __u32 clear_timer1_irq;
-  __u32 clear_timer2_irq;
-  __u32 test_register;
-  __u32 test_count;
-  __u32 timer_select;
-  __u32 pr_uart_irq_status;
-  __u32 ram_wait_state;
-  __u32 uart_wait_state;
-  __u32 timer_wait_state;
-  __u32 ack_wait_state;
-};
-struct RUNTIME_9060 {
-  __u32 loc_addr_range;
-  __u32 loc_addr_base;
-  __u32 loc_arbitr;
-  __u32 endian_descr;
-  __u32 loc_rom_range;
-  __u32 loc_rom_base;
-  __u32 loc_bus_descr;
-  __u32 loc_range_mst;
-  __u32 loc_base_mst;
-  __u32 loc_range_io;
-  __u32 pci_base_mst;
-  __u32 pci_conf_io;
-  __u32 filler1;
-  __u32 filler2;
-  __u32 filler3;
-  __u32 filler4;
-  __u32 mail_box_0;
-  __u32 mail_box_1;
-  __u32 mail_box_2;
-  __u32 mail_box_3;
-  __u32 filler5;
-  __u32 filler6;
-  __u32 filler7;
-  __u32 filler8;
-  __u32 pci_doorbell;
-  __u32 loc_doorbell;
-  __u32 intr_ctrl_stat;
-  __u32 init_ctrl;
-};
-#define WIN_RAM 0x00000001L
-#define WIN_CREG 0x14000001L
-#define TIMER_BY_1M 0x00
-#define TIMER_BY_256K 0x01
-#define TIMER_BY_128K 0x02
-#define TIMER_BY_32K 0x03
-#endif
-#ifndef ZFIRM_ID
-#define MAX_CHAN 64
-#define ID_ADDRESS 0x00000180L
-#define ZFIRM_ID 0x5557465AL
-#define ZFIRM_HLT 0x59505B5CL
-#define ZFIRM_RST 0x56040674L
-#define ZF_TINACT_DEF 1000
-#define ZF_TINACT ZF_TINACT_DEF
-struct FIRM_ID {
-  __u32 signature;
-  __u32 zfwctrl_addr;
-};
-#define C_OS_LINUX 0x00000030
-#define C_CH_DISABLE 0x00000000
-#define C_CH_TXENABLE 0x00000001
-#define C_CH_RXENABLE 0x00000002
-#define C_CH_ENABLE 0x00000003
-#define C_CH_LOOPBACK 0x00000004
-#define C_PR_NONE 0x00000000
-#define C_PR_ODD 0x00000001
-#define C_PR_EVEN 0x00000002
-#define C_PR_MARK 0x00000004
-#define C_PR_SPACE 0x00000008
-#define C_PR_PARITY 0x000000ff
-#define C_PR_DISCARD 0x00000100
-#define C_PR_IGNORE 0x00000200
-#define C_DL_CS5 0x00000001
-#define C_DL_CS6 0x00000002
-#define C_DL_CS7 0x00000004
-#define C_DL_CS8 0x00000008
-#define C_DL_CS 0x0000000f
-#define C_DL_1STOP 0x00000010
-#define C_DL_15STOP 0x00000020
-#define C_DL_2STOP 0x00000040
-#define C_DL_STOP 0x000000f0
-#define C_IN_DISABLE 0x00000000
-#define C_IN_TXBEMPTY 0x00000001
-#define C_IN_TXLOWWM 0x00000002
-#define C_IN_RXHIWM 0x00000010
-#define C_IN_RXNNDT 0x00000020
-#define C_IN_MDCD 0x00000100
-#define C_IN_MDSR 0x00000200
-#define C_IN_MRI 0x00000400
-#define C_IN_MCTS 0x00000800
-#define C_IN_RXBRK 0x00001000
-#define C_IN_PR_ERROR 0x00002000
-#define C_IN_FR_ERROR 0x00004000
-#define C_IN_OVR_ERROR 0x00008000
-#define C_IN_RXOFL 0x00010000
-#define C_IN_IOCTLW 0x00020000
-#define C_IN_MRTS 0x00040000
-#define C_IN_ICHAR 0x00080000
-#define C_FL_OXX 0x00000001
-#define C_FL_IXX 0x00000002
-#define C_FL_OIXANY 0x00000004
-#define C_FL_SWFLOW 0x0000000f
-#define C_FS_TXIDLE 0x00000000
-#define C_FS_SENDING 0x00000001
-#define C_FS_SWFLOW 0x00000002
-#define C_RS_PARAM 0x80000000
-#define C_RS_RTS 0x00000001
-#define C_RS_DTR 0x00000004
-#define C_RS_DCD 0x00000100
-#define C_RS_DSR 0x00000200
-#define C_RS_RI 0x00000400
-#define C_RS_CTS 0x00000800
-#define C_CM_RESET 0x01
-#define C_CM_IOCTL 0x02
-#define C_CM_IOCTLW 0x03
-#define C_CM_IOCTLM 0x04
-#define C_CM_SENDXOFF 0x10
-#define C_CM_SENDXON 0x11
-#define C_CM_CLFLOW 0x12
-#define C_CM_SENDBRK 0x41
-#define C_CM_INTBACK 0x42
-#define C_CM_SET_BREAK 0x43
-#define C_CM_CLR_BREAK 0x44
-#define C_CM_CMD_DONE 0x45
-#define C_CM_INTBACK2 0x46
-#define C_CM_TINACT 0x51
-#define C_CM_IRQ_ENBL 0x52
-#define C_CM_IRQ_DSBL 0x53
-#define C_CM_ACK_ENBL 0x54
-#define C_CM_ACK_DSBL 0x55
-#define C_CM_FLUSH_RX 0x56
-#define C_CM_FLUSH_TX 0x57
-#define C_CM_Q_ENABLE 0x58
-#define C_CM_Q_DISABLE 0x59
-#define C_CM_TXBEMPTY 0x60
-#define C_CM_TXLOWWM 0x61
-#define C_CM_RXHIWM 0x62
-#define C_CM_RXNNDT 0x63
-#define C_CM_TXFEMPTY 0x64
-#define C_CM_ICHAR 0x65
-#define C_CM_MDCD 0x70
-#define C_CM_MDSR 0x71
-#define C_CM_MRI 0x72
-#define C_CM_MCTS 0x73
-#define C_CM_MRTS 0x74
-#define C_CM_RXBRK 0x84
-#define C_CM_PR_ERROR 0x85
-#define C_CM_FR_ERROR 0x86
-#define C_CM_OVR_ERROR 0x87
-#define C_CM_RXOFL 0x88
-#define C_CM_CMDERROR 0x90
-#define C_CM_FATAL 0x91
-#define C_CM_HW_RESET 0x92
-struct CH_CTRL {
-  __u32 op_mode;
-  __u32 intr_enable;
-  __u32 sw_flow;
-  __u32 flow_status;
-  __u32 comm_baud;
-  __u32 comm_parity;
-  __u32 comm_data_l;
-  __u32 comm_flags;
-  __u32 hw_flow;
-  __u32 rs_control;
-  __u32 rs_status;
-  __u32 flow_xon;
-  __u32 flow_xoff;
-  __u32 hw_overflow;
-  __u32 sw_overflow;
-  __u32 comm_error;
-  __u32 ichar;
-  __u32 filler[7];
-};
-struct BUF_CTRL {
-  __u32 flag_dma;
-  __u32 tx_bufaddr;
-  __u32 tx_bufsize;
-  __u32 tx_threshold;
-  __u32 tx_get;
-  __u32 tx_put;
-  __u32 rx_bufaddr;
-  __u32 rx_bufsize;
-  __u32 rx_threshold;
-  __u32 rx_get;
-  __u32 rx_put;
-  __u32 filler[5];
-};
-struct BOARD_CTRL {
-  __u32 n_channel;
-  __u32 fw_version;
-  __u32 op_system;
-  __u32 dr_version;
-  __u32 inactivity;
-  __u32 hcmd_channel;
-  __u32 hcmd_param;
-  __u32 fwcmd_channel;
-  __u32 fwcmd_param;
-  __u32 zf_int_queue_addr;
-  __u32 filler[6];
-};
-#define QUEUE_SIZE (10 * MAX_CHAN)
-struct INT_QUEUE {
-  unsigned char intr_code[QUEUE_SIZE];
-  unsigned long channel[QUEUE_SIZE];
-  unsigned long param[QUEUE_SIZE];
-  unsigned long put;
-  unsigned long get;
-};
-struct ZFW_CTRL {
-  struct BOARD_CTRL board_ctrl;
-  struct CH_CTRL ch_ctrl[MAX_CHAN];
-  struct BUF_CTRL buf_ctrl[MAX_CHAN];
-};
-#endif
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/devlink.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/devlink.h
index e6e006f..a809306 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/devlink.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/devlink.h
@@ -99,6 +99,10 @@
   DEVLINK_CMD_TRAP_POLICER_NEW,
   DEVLINK_CMD_TRAP_POLICER_DEL,
   DEVLINK_CMD_HEALTH_REPORTER_TEST,
+  DEVLINK_CMD_RATE_GET,
+  DEVLINK_CMD_RATE_SET,
+  DEVLINK_CMD_RATE_NEW,
+  DEVLINK_CMD_RATE_DEL,
   __DEVLINK_CMD_MAX,
   DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
 };
@@ -141,6 +145,10 @@
   DEVLINK_PORT_FLAVOUR_UNUSED,
   DEVLINK_PORT_FLAVOUR_PCI_SF,
 };
+enum devlink_rate_type {
+  DEVLINK_RATE_TYPE_LEAF,
+  DEVLINK_RATE_TYPE_NODE,
+};
 enum devlink_param_cmode {
   DEVLINK_PARAM_CMODE_RUNTIME,
   DEVLINK_PARAM_CMODE_DRIVERINIT,
@@ -370,6 +378,12 @@
   DEVLINK_ATTR_RELOAD_ACTION_INFO,
   DEVLINK_ATTR_RELOAD_ACTION_STATS,
   DEVLINK_ATTR_PORT_PCI_SF_NUMBER,
+  DEVLINK_ATTR_RATE_TYPE,
+  DEVLINK_ATTR_RATE_TX_SHARE,
+  DEVLINK_ATTR_RATE_TX_MAX,
+  DEVLINK_ATTR_RATE_NODE_NAME,
+  DEVLINK_ATTR_RATE_PARENT_NODE_NAME,
+  DEVLINK_ATTR_REGION_MAX_SNAPSHOTS,
   __DEVLINK_ATTR_MAX,
   DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
 };
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dlm_device.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dlm_device.h
index 9cf41a8..5e54d2e 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dlm_device.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dlm_device.h
@@ -39,12 +39,12 @@
   void __user * bastaddr;
   struct dlm_lksb __user * lksb;
   char lvb[DLM_USER_LVB_LEN];
-  char name[0];
+  char name[];
 };
 struct dlm_lspace_params {
   __u32 flags;
   __u32 minor;
-  char name[0];
+  char name[];
 };
 struct dlm_purge_params {
   __u32 nodeid;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
index 4c0a9f0..09f8a98 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
@@ -55,6 +55,8 @@
   __u32 next;
   char name[0];
 };
+#define DM_NAME_LIST_FLAG_HAS_UUID 1
+#define DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID 2
 struct dm_target_versions {
   __u32 next;
   __u32 version[3];
@@ -104,9 +106,9 @@
 #define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
 #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
 #define DM_VERSION_MAJOR 4
-#define DM_VERSION_MINOR 44
+#define DM_VERSION_MINOR 45
 #define DM_VERSION_PATCHLEVEL 0
-#define DM_VERSION_EXTRA "-ioctl(2021-02-01)"
+#define DM_VERSION_EXTRA "-ioctl(2021-03-22)"
 #define DM_READONLY_FLAG (1 << 0)
 #define DM_SUSPEND_FLAG (1 << 1)
 #define DM_PERSISTENT_DEV_FLAG (1 << 3)
@@ -124,4 +126,5 @@
 #define DM_DATA_OUT_FLAG (1 << 16)
 #define DM_DEFERRED_REMOVE (1 << 17)
 #define DM_INTERNAL_SUSPEND_FLAG (1 << 18)
+#define DM_IMA_MEASUREMENT_FLAG (1 << 19)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
index db7c7e5..6164991 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
@@ -130,6 +130,9 @@
   __s32 qs_rtbtimelimit;
   __u16 qs_bwarnlimit;
   __u16 qs_iwarnlimit;
-  __u64 qs_pad2[8];
+  __u16 qs_rtbwarnlimit;
+  __u16 qs_pad3;
+  __u32 qs_pad4;
+  __u64 qs_pad2[7];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/elf.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/elf.h
index f9f122a..7655f12 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/elf.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/elf.h
@@ -360,6 +360,7 @@
 #define NT_ARM_PACA_KEYS 0x407
 #define NT_ARM_PACG_KEYS 0x408
 #define NT_ARM_TAGGED_ADDR_CTRL 0x409
+#define NT_ARM_PAC_ENABLED_KEYS 0x40a
 #define NT_ARC_V2 0x600
 #define NT_VMCOREDD 0x700
 #define NT_MIPS_DSP 0x800
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ethtool.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ethtool.h
index 021a69b..741ea2a 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ethtool.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ethtool.h
@@ -78,6 +78,7 @@
   ETHTOOL_RX_COPYBREAK,
   ETHTOOL_TX_COPYBREAK,
   ETHTOOL_PFC_PREVENTION_TOUT,
+  ETHTOOL_TX_COPYBREAK_BUF_SIZE,
   __ETHTOOL_TUNABLE_COUNT,
 };
 enum tunable_type_id {
@@ -207,6 +208,7 @@
   ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
   ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
   ETHTOOL_LINK_EXT_STATE_OVERHEAT,
+  ETHTOOL_LINK_EXT_STATE_MODULE,
 };
 enum ethtool_link_ext_substate_autoneg {
   ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
@@ -232,11 +234,16 @@
 enum ethtool_link_ext_substate_bad_signal_integrity {
   ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
   ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
+  ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST,
+  ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS,
 };
 enum ethtool_link_ext_substate_cable_issue {
   ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
   ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
 };
+enum ethtool_link_ext_substate_module {
+  ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
+};
 #define ETH_GSTRING_LEN 32
 enum ethtool_stringset {
   ETH_SS_TEST = 0,
@@ -255,8 +262,21 @@
   ETH_SS_TS_TX_TYPES,
   ETH_SS_TS_RX_FILTERS,
   ETH_SS_UDP_TUNNEL_TYPES,
+  ETH_SS_STATS_STD,
+  ETH_SS_STATS_ETH_PHY,
+  ETH_SS_STATS_ETH_MAC,
+  ETH_SS_STATS_ETH_CTRL,
+  ETH_SS_STATS_RMON,
   ETH_SS_COUNT
 };
+enum ethtool_module_power_mode_policy {
+  ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
+  ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO,
+};
+enum ethtool_module_power_mode {
+  ETHTOOL_MODULE_POWER_MODE_LOW = 1,
+  ETHTOOL_MODULE_POWER_MODE_HIGH,
+};
 struct ethtool_gstrings {
   __u32 cmd;
   __u32 string_set;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
index 67091a1..7dcae22 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
@@ -49,6 +49,13 @@
   ETHTOOL_MSG_CABLE_TEST_ACT,
   ETHTOOL_MSG_CABLE_TEST_TDR_ACT,
   ETHTOOL_MSG_TUNNEL_INFO_GET,
+  ETHTOOL_MSG_FEC_GET,
+  ETHTOOL_MSG_FEC_SET,
+  ETHTOOL_MSG_MODULE_EEPROM_GET,
+  ETHTOOL_MSG_STATS_GET,
+  ETHTOOL_MSG_PHC_VCLOCKS_GET,
+  ETHTOOL_MSG_MODULE_GET,
+  ETHTOOL_MSG_MODULE_SET,
   __ETHTOOL_MSG_USER_CNT,
   ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
 };
@@ -83,6 +90,13 @@
   ETHTOOL_MSG_CABLE_TEST_NTF,
   ETHTOOL_MSG_CABLE_TEST_TDR_NTF,
   ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,
+  ETHTOOL_MSG_FEC_GET_REPLY,
+  ETHTOOL_MSG_FEC_NTF,
+  ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
+  ETHTOOL_MSG_STATS_GET_REPLY,
+  ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
+  ETHTOOL_MSG_MODULE_GET_REPLY,
+  ETHTOOL_MSG_MODULE_NTF,
   __ETHTOOL_MSG_KERNEL_CNT,
   ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
 };
@@ -236,6 +250,7 @@
   ETHTOOL_A_RINGS_RX_MINI,
   ETHTOOL_A_RINGS_RX_JUMBO,
   ETHTOOL_A_RINGS_TX,
+  ETHTOOL_A_RINGS_RX_BUF_LEN,
   __ETHTOOL_A_RINGS_CNT,
   ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
 };
@@ -278,6 +293,8 @@
   ETHTOOL_A_COALESCE_TX_USECS_HIGH,
   ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH,
   ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL,
+  ETHTOOL_A_COALESCE_USE_CQE_MODE_TX,
+  ETHTOOL_A_COALESCE_USE_CQE_MODE_RX,
   __ETHTOOL_A_COALESCE_CNT,
   ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
 };
@@ -322,6 +339,14 @@
   ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
 };
 enum {
+  ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
+  ETHTOOL_A_PHC_VCLOCKS_HEADER,
+  ETHTOOL_A_PHC_VCLOCKS_NUM,
+  ETHTOOL_A_PHC_VCLOCKS_INDEX,
+  __ETHTOOL_A_PHC_VCLOCKS_CNT,
+  ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)
+};
+enum {
   ETHTOOL_A_CABLE_TEST_UNSPEC,
   ETHTOOL_A_CABLE_TEST_HEADER,
   __ETHTOOL_A_CABLE_TEST_CNT,
@@ -461,6 +486,121 @@
   __ETHTOOL_A_TUNNEL_INFO_CNT,
   ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
 };
+enum {
+  ETHTOOL_A_FEC_UNSPEC,
+  ETHTOOL_A_FEC_HEADER,
+  ETHTOOL_A_FEC_MODES,
+  ETHTOOL_A_FEC_AUTO,
+  ETHTOOL_A_FEC_ACTIVE,
+  ETHTOOL_A_FEC_STATS,
+  __ETHTOOL_A_FEC_CNT,
+  ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1)
+};
+enum {
+  ETHTOOL_A_FEC_STAT_UNSPEC,
+  ETHTOOL_A_FEC_STAT_PAD,
+  ETHTOOL_A_FEC_STAT_CORRECTED,
+  ETHTOOL_A_FEC_STAT_UNCORR,
+  ETHTOOL_A_FEC_STAT_CORR_BITS,
+  __ETHTOOL_A_FEC_STAT_CNT,
+  ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_EEPROM_UNSPEC,
+  ETHTOOL_A_MODULE_EEPROM_HEADER,
+  ETHTOOL_A_MODULE_EEPROM_OFFSET,
+  ETHTOOL_A_MODULE_EEPROM_LENGTH,
+  ETHTOOL_A_MODULE_EEPROM_PAGE,
+  ETHTOOL_A_MODULE_EEPROM_BANK,
+  ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS,
+  ETHTOOL_A_MODULE_EEPROM_DATA,
+  __ETHTOOL_A_MODULE_EEPROM_CNT,
+  ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_UNSPEC,
+  ETHTOOL_A_STATS_PAD,
+  ETHTOOL_A_STATS_HEADER,
+  ETHTOOL_A_STATS_GROUPS,
+  ETHTOOL_A_STATS_GRP,
+  __ETHTOOL_A_STATS_CNT,
+  ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+};
+enum {
+  ETHTOOL_STATS_ETH_PHY,
+  ETHTOOL_STATS_ETH_MAC,
+  ETHTOOL_STATS_ETH_CTRL,
+  ETHTOOL_STATS_RMON,
+  __ETHTOOL_STATS_CNT
+};
+enum {
+  ETHTOOL_A_STATS_GRP_UNSPEC,
+  ETHTOOL_A_STATS_GRP_PAD,
+  ETHTOOL_A_STATS_GRP_ID,
+  ETHTOOL_A_STATS_GRP_SS_ID,
+  ETHTOOL_A_STATS_GRP_STAT,
+  ETHTOOL_A_STATS_GRP_HIST_RX,
+  ETHTOOL_A_STATS_GRP_HIST_TX,
+  ETHTOOL_A_STATS_GRP_HIST_BKT_LOW,
+  ETHTOOL_A_STATS_GRP_HIST_BKT_HI,
+  ETHTOOL_A_STATS_GRP_HIST_VAL,
+  __ETHTOOL_A_STATS_GRP_CNT,
+  ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
+  __ETHTOOL_A_STATS_ETH_PHY_CNT,
+  ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
+  ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
+  ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
+  ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
+  ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
+  ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
+  ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
+  ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
+  ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
+  ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
+  ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
+  ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
+  ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
+  ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
+  ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
+  ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
+  __ETHTOOL_A_STATS_ETH_MAC_CNT,
+  ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_CTRL_3_TX,
+  ETHTOOL_A_STATS_ETH_CTRL_4_RX,
+  ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,
+  __ETHTOOL_A_STATS_ETH_CTRL_CNT,
+  ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_RMON_UNDERSIZE,
+  ETHTOOL_A_STATS_RMON_OVERSIZE,
+  ETHTOOL_A_STATS_RMON_FRAG,
+  ETHTOOL_A_STATS_RMON_JABBER,
+  __ETHTOOL_A_STATS_RMON_CNT,
+  ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_UNSPEC,
+  ETHTOOL_A_MODULE_HEADER,
+  ETHTOOL_A_MODULE_POWER_MODE_POLICY,
+  ETHTOOL_A_MODULE_POWER_MODE,
+  __ETHTOOL_A_MODULE_CNT,
+  ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
+};
 #define ETHTOOL_GENL_NAME "ethtool"
 #define ETHTOOL_GENL_VERSION 1
 #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fanotify.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fanotify.h
index c63d058..6249292 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fanotify.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fanotify.h
@@ -33,10 +33,12 @@
 #define FAN_MOVE_SELF 0x00000800
 #define FAN_OPEN_EXEC 0x00001000
 #define FAN_Q_OVERFLOW 0x00004000
+#define FAN_FS_ERROR 0x00008000
 #define FAN_OPEN_PERM 0x00010000
 #define FAN_ACCESS_PERM 0x00020000
 #define FAN_OPEN_EXEC_PERM 0x00040000
 #define FAN_EVENT_ON_CHILD 0x08000000
+#define FAN_RENAME 0x10000000
 #define FAN_ONDIR 0x40000000
 #define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE)
 #define FAN_MOVE (FAN_MOVED_FROM | FAN_MOVED_TO)
@@ -49,11 +51,14 @@
 #define FAN_UNLIMITED_QUEUE 0x00000010
 #define FAN_UNLIMITED_MARKS 0x00000020
 #define FAN_ENABLE_AUDIT 0x00000040
+#define FAN_REPORT_PIDFD 0x00000080
 #define FAN_REPORT_TID 0x00000100
 #define FAN_REPORT_FID 0x00000200
 #define FAN_REPORT_DIR_FID 0x00000400
 #define FAN_REPORT_NAME 0x00000800
+#define FAN_REPORT_TARGET_FID 0x00001000
 #define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)
+#define FAN_REPORT_DFID_NAME_TARGET (FAN_REPORT_DFID_NAME | FAN_REPORT_FID | FAN_REPORT_TARGET_FID)
 #define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS)
 #define FAN_MARK_ADD 0x00000001
 #define FAN_MARK_REMOVE 0x00000002
@@ -82,6 +87,10 @@
 #define FAN_EVENT_INFO_TYPE_FID 1
 #define FAN_EVENT_INFO_TYPE_DFID_NAME 2
 #define FAN_EVENT_INFO_TYPE_DFID 3
+#define FAN_EVENT_INFO_TYPE_PIDFD 4
+#define FAN_EVENT_INFO_TYPE_ERROR 5
+#define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10
+#define FAN_EVENT_INFO_TYPE_NEW_DFID_NAME 12
 struct fanotify_event_info_header {
   __u8 info_type;
   __u8 pad;
@@ -92,6 +101,15 @@
   __kernel_fsid_t fsid;
   unsigned char handle[0];
 };
+struct fanotify_event_info_pidfd {
+  struct fanotify_event_info_header hdr;
+  __s32 pidfd;
+};
+struct fanotify_event_info_error {
+  struct fanotify_event_info_header hdr;
+  __s32 error;
+  __u32 error_count;
+};
 struct fanotify_response {
   __s32 fd;
   __u32 response;
@@ -100,6 +118,8 @@
 #define FAN_DENY 0x02
 #define FAN_AUDIT 0x10
 #define FAN_NOFD - 1
+#define FAN_NOPIDFD FAN_NOFD
+#define FAN_EPIDFD - 2
 #define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
 #define FAN_EVENT_NEXT(meta,len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata *) (((char *) (meta)) + (meta)->event_len))
 #define FAN_EVENT_OK(meta,len) ((long) (len) >= (long) FAN_EVENT_METADATA_LEN && (long) (meta)->event_len >= (long) FAN_EVENT_METADATA_LEN && (long) (meta)->event_len <= (long) (len))
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fs.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fs.h
index 0601768..3bb4183 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fs.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fs.h
@@ -129,6 +129,7 @@
 #define BLKSECDISCARD _IO(0x12, 125)
 #define BLKROTATIONAL _IO(0x12, 126)
 #define BLKZEROOUT _IO(0x12, 127)
+#define BLKGETDISKSEQ _IOR(0x12, 128, __u64)
 #define BMAP_IOCTL 1
 #define FIBMAP _IO(0x00, 1)
 #define FIGETBSZ _IO(0x00, 2)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fuse.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fuse.h
index efb5424..144e960 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fuse.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/fuse.h
@@ -20,7 +20,7 @@
 #define _LINUX_FUSE_H
 #include <stdint.h>
 #define FUSE_KERNEL_VERSION 7
-#define FUSE_KERNEL_MINOR_VERSION 33
+#define FUSE_KERNEL_MINOR_VERSION 36
 #define FUSE_ROOT_ID 1
 struct fuse_attr {
   uint64_t ino;
@@ -75,6 +75,7 @@
 #define FOPEN_NONSEEKABLE (1 << 2)
 #define FOPEN_CACHE_DIR (1 << 3)
 #define FOPEN_STREAM (1 << 4)
+#define FOPEN_NOFLUSH (1 << 5)
 #define FUSE_ASYNC_READ (1 << 0)
 #define FUSE_POSIX_LOCKS (1 << 1)
 #define FUSE_FILE_OPS (1 << 2)
@@ -104,7 +105,16 @@
 #define FUSE_MAP_ALIGNMENT (1 << 26)
 #define FUSE_SUBMOUNTS (1 << 27)
 #define FUSE_HANDLE_KILLPRIV_V2 (1 << 28)
+#define FUSE_SETXATTR_EXT (1 << 29)
+#define FUSE_INIT_EXT (1 << 30)
+#define FUSE_INIT_RESERVED (1 << 31)
+#define FUSE_SECURITY_CTX (1ULL << 32)
+#define FUSE_HAS_INODE_DAX (1ULL << 33)
+#if FUSE_KERNEL_VERSION > 7 || FUSE_KERNEL_VERSION == 7 && FUSE_KERNEL_MINOR_VERSION >= 36
+#define FUSE_PASSTHROUGH (1ULL << 63)
+#else
 #define FUSE_PASSTHROUGH (1 << 31)
+#endif
 #define CUSE_UNRESTRICTED_IOCTL (1 << 0)
 #define FUSE_RELEASE_FLUSH (1 << 0)
 #define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1)
@@ -125,7 +135,9 @@
 #define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0)
 #define FUSE_FSYNC_FDATASYNC (1 << 0)
 #define FUSE_ATTR_SUBMOUNT (1 << 0)
+#define FUSE_ATTR_DAX (1 << 1)
 #define FUSE_OPEN_KILL_SUIDGID (1 << 0)
+#define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0)
 enum fuse_opcode {
   FUSE_LOOKUP = 1,
   FUSE_FORGET = 2,
@@ -174,6 +186,7 @@
   FUSE_COPY_FILE_RANGE = 47,
   FUSE_SETUPMAPPING = 48,
   FUSE_REMOVEMAPPING = 49,
+  FUSE_SYNCFS = 50,
   FUSE_CANONICAL_PATH = 2016,
   CUSE_INIT = 4096,
   CUSE_INIT_BSWAP_RESERVED = 1048576,
@@ -321,9 +334,12 @@
   uint32_t fsync_flags;
   uint32_t padding;
 };
+#define FUSE_COMPAT_SETXATTR_IN_SIZE 8
 struct fuse_setxattr_in {
   uint32_t size;
   uint32_t flags;
+  uint32_t setxattr_flags;
+  uint32_t padding;
 };
 struct fuse_getxattr_in {
   uint32_t size;
@@ -352,6 +368,8 @@
   uint32_t minor;
   uint32_t max_readahead;
   uint32_t flags;
+  uint32_t flags2;
+  uint32_t unused[11];
 };
 #define FUSE_COMPAT_INIT_OUT_SIZE 8
 #define FUSE_COMPAT_22_INIT_OUT_SIZE 24
@@ -366,7 +384,8 @@
   uint32_t time_gran;
   uint16_t max_pages;
   uint16_t map_alignment;
-  uint32_t unused[8];
+  uint32_t flags2;
+  uint32_t unused[7];
 };
 #define CUSE_INIT_INFO_MAX 4096
 struct cuse_init_in {
@@ -445,11 +464,6 @@
   uint32_t pid;
   uint32_t padding;
 };
-struct fuse_passthrough_out {
-  uint32_t fd;
-  uint32_t len;
-  void * vec;
-};
 struct fuse_out_header {
   uint32_t len;
   int32_t error;
@@ -462,8 +476,9 @@
   uint32_t type;
   char name[];
 };
+#define FUSE_REC_ALIGN(x) (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
 #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
-#define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
+#define FUSE_DIRENT_ALIGN(x) FUSE_REC_ALIGN(x)
 #define FUSE_DIRENT_SIZE(d) FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
 struct fuse_direntplus {
   struct fuse_entry_out entry_out;
@@ -510,7 +525,7 @@
 };
 #define FUSE_DEV_IOC_MAGIC 229
 #define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
-#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 127, struct fuse_passthrough_out)
+#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 126, uint32_t)
 struct fuse_lseek_in {
   uint64_t fh;
   uint64_t offset;
@@ -546,4 +561,15 @@
   uint64_t len;
 };
 #define FUSE_REMOVEMAPPING_MAX_ENTRY (PAGE_SIZE / sizeof(struct fuse_removemapping_one))
+struct fuse_syncfs_in {
+  uint64_t padding;
+};
+struct fuse_secctx {
+  uint32_t size;
+  uint32_t padding;
+};
+struct fuse_secctx_header {
+  uint32_t size;
+  uint32_t nr_secctx;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/futex.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/futex.h
index 6176f38..c80b90c 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/futex.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/futex.h
@@ -33,6 +33,7 @@
 #define FUTEX_WAKE_BITSET 10
 #define FUTEX_WAIT_REQUEUE_PI 11
 #define FUTEX_CMP_REQUEUE_PI 12
+#define FUTEX_LOCK_PI2 13
 #define FUTEX_PRIVATE_FLAG 128
 #define FUTEX_CLOCK_REALTIME 256
 #define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
@@ -42,12 +43,21 @@
 #define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_OP_PRIVATE (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
 #define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
+#define FUTEX_LOCK_PI2_PRIVATE (FUTEX_LOCK_PI2 | FUTEX_PRIVATE_FLAG)
 #define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
+#define FUTEX_32 2
+#define FUTEX_WAITV_MAX 128
+struct futex_waitv {
+  __u64 val;
+  __u64 uaddr;
+  __u32 flags;
+  __u32 __reserved;
+};
 struct robust_list {
   struct robust_list __user * next;
 };
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/hyperv.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/hyperv.h
index daa8fc7..4790bbf 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/hyperv.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/hyperv.h
@@ -18,7 +18,7 @@
  ****************************************************************************/
 #ifndef _UAPI_HYPERV_H
 #define _UAPI_HYPERV_H
-#include <linux/uuid.h>
+#include <linux/types.h>
 #define UTIL_FW_MINOR 0
 #define UTIL_WS2K8_FW_MAJOR 1
 #define UTIL_WS2K8_FW_VERSION (UTIL_WS2K8_FW_MAJOR << 16 | UTIL_FW_MINOR)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/icmp.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/icmp.h
index 5892d12..8847a48 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/icmp.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/icmp.h
@@ -20,6 +20,8 @@
 #define _UAPI_LINUX_ICMP_H
 #include <linux/types.h>
 #include <asm/byteorder.h>
+#include <linux/if.h>
+#include <linux/in6.h>
 #define ICMP_ECHOREPLY 0
 #define ICMP_DEST_UNREACH 3
 #define ICMP_SOURCE_QUENCH 4
@@ -57,6 +59,20 @@
 #define ICMP_REDIR_HOSTTOS 3
 #define ICMP_EXC_TTL 0
 #define ICMP_EXC_FRAGTIME 1
+#define ICMP_EXT_ECHO 42
+#define ICMP_EXT_ECHOREPLY 43
+#define ICMP_EXT_CODE_MAL_QUERY 1
+#define ICMP_EXT_CODE_NO_IF 2
+#define ICMP_EXT_CODE_NO_TABLE_ENT 3
+#define ICMP_EXT_CODE_MULT_IFS 4
+#define ICMP_EXT_ECHOREPLY_ACTIVE (1 << 2)
+#define ICMP_EXT_ECHOREPLY_IPV4 (1 << 1)
+#define ICMP_EXT_ECHOREPLY_IPV6 1
+#define ICMP_EXT_ECHO_CTYPE_NAME 1
+#define ICMP_EXT_ECHO_CTYPE_INDEX 2
+#define ICMP_EXT_ECHO_CTYPE_ADDR 3
+#define ICMP_AFI_IP 1
+#define ICMP_AFI_IP6 2
 struct icmphdr {
   __u8 type;
   __u8 code;
@@ -94,4 +110,23 @@
   __u8 class_num;
   __u8 class_type;
 };
+struct icmp_ext_echo_ctype3_hdr {
+  __be16 afi;
+  __u8 addrlen;
+  __u8 reserved;
+};
+struct icmp_ext_echo_iio {
+  struct icmp_extobj_hdr extobj_hdr;
+  union {
+    char name[IFNAMSIZ];
+    __be32 ifindex;
+    struct {
+      struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
+      union {
+        __be32 ipv4_addr;
+        struct in6_addr ipv6_addr;
+      } ip_addr;
+    } addr;
+  } ident;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/icmpv6.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/icmpv6.h
index e23fbb4..5285698 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/icmpv6.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/icmpv6.h
@@ -107,6 +107,8 @@
 #define ICMPV6_UNK_NEXTHDR 1
 #define ICMPV6_UNK_OPTION 2
 #define ICMPV6_HDR_INCOMP 3
+#define ICMPV6_EXT_ECHO_REQUEST 160
+#define ICMPV6_EXT_ECHO_REPLY 161
 #define ICMPV6_FILTER 1
 #define ICMPV6_FILTER_BLOCK 1
 #define ICMPV6_FILTER_PASS 2
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/idxd.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/idxd.h
index 4f1282e..ad9ed48 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/idxd.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/idxd.h
@@ -19,6 +19,28 @@
 #ifndef _USR_IDXD_H_
 #define _USR_IDXD_H_
 #include <stdint.h>
+enum idxd_scmd_stat {
+  IDXD_SCMD_DEV_ENABLED = 0x80000010,
+  IDXD_SCMD_DEV_NOT_ENABLED = 0x80000020,
+  IDXD_SCMD_WQ_ENABLED = 0x80000021,
+  IDXD_SCMD_DEV_DMA_ERR = 0x80020000,
+  IDXD_SCMD_WQ_NO_GRP = 0x80030000,
+  IDXD_SCMD_WQ_NO_NAME = 0x80040000,
+  IDXD_SCMD_WQ_NO_SVM = 0x80050000,
+  IDXD_SCMD_WQ_NO_THRESH = 0x80060000,
+  IDXD_SCMD_WQ_PORTAL_ERR = 0x80070000,
+  IDXD_SCMD_WQ_RES_ALLOC_ERR = 0x80080000,
+  IDXD_SCMD_PERCPU_ERR = 0x80090000,
+  IDXD_SCMD_DMA_CHAN_ERR = 0x800a0000,
+  IDXD_SCMD_CDEV_ERR = 0x800b0000,
+  IDXD_SCMD_WQ_NO_SWQ_SUPPORT = 0x800c0000,
+  IDXD_SCMD_WQ_NONE_CONFIGURED = 0x800d0000,
+  IDXD_SCMD_WQ_NO_SIZE = 0x800e0000,
+  IDXD_SCMD_WQ_NO_PRIV = 0x800f0000,
+  IDXD_SCMD_WQ_IRQ_ERR = 0x80100000,
+};
+#define IDXD_SCMD_SOFTERR_MASK 0x80000000
+#define IDXD_SCMD_SOFTERR_SHIFT 16
 #define IDXD_OP_FLAG_FENCE 0x0001
 #define IDXD_OP_FLAG_BOF 0x0002
 #define IDXD_OP_FLAG_CRAV 0x0004
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_arp.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_arp.h
index eda888f..1cd23ef 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_arp.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_arp.h
@@ -44,6 +44,7 @@
 #define ARPHRD_X25 271
 #define ARPHRD_HWX25 272
 #define ARPHRD_CAN 280
+#define ARPHRD_MCTP 290
 #define ARPHRD_PPP 512
 #define ARPHRD_CISCO 513
 #define ARPHRD_HDLC ARPHRD_CISCO
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_bridge.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_bridge.h
index 570c09e..2054fb3 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_bridge.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_bridge.h
@@ -405,9 +405,11 @@
 };
 #define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1)
 #define BRIDGE_VLANDB_DUMPF_STATS (1 << 0)
+#define BRIDGE_VLANDB_DUMPF_GLOBAL (1 << 1)
 enum {
   BRIDGE_VLANDB_UNSPEC,
   BRIDGE_VLANDB_ENTRY,
+  BRIDGE_VLANDB_GLOBAL_OPTIONS,
   __BRIDGE_VLANDB_MAX,
 };
 #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1)
@@ -418,6 +420,7 @@
   BRIDGE_VLANDB_ENTRY_STATE,
   BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
   BRIDGE_VLANDB_ENTRY_STATS,
+  BRIDGE_VLANDB_ENTRY_MCAST_ROUTER,
   __BRIDGE_VLANDB_ENTRY_MAX,
 };
 #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
@@ -439,6 +442,28 @@
 };
 #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
 enum {
+  BRIDGE_VLANDB_GOPTS_UNSPEC,
+  BRIDGE_VLANDB_GOPTS_ID,
+  BRIDGE_VLANDB_GOPTS_RANGE,
+  BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING,
+  BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION,
+  BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION,
+  BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT,
+  BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT,
+  BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL,
+  BRIDGE_VLANDB_GOPTS_PAD,
+  BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER,
+  BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE,
+  __BRIDGE_VLANDB_GOPTS_MAX
+};
+#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1)
+enum {
   MDBA_UNSPEC,
   MDBA_MDB,
   MDBA_ROUTER,
@@ -496,6 +521,9 @@
   MDBA_ROUTER_PATTR_UNSPEC,
   MDBA_ROUTER_PATTR_TIMER,
   MDBA_ROUTER_PATTR_TYPE,
+  MDBA_ROUTER_PATTR_INET_TIMER,
+  MDBA_ROUTER_PATTR_INET6_TIMER,
+  MDBA_ROUTER_PATTR_VID,
   __MDBA_ROUTER_PATTR_MAX
 };
 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
@@ -570,10 +598,23 @@
 };
 enum br_boolopt_id {
   BR_BOOLOPT_NO_LL_LEARN,
+  BR_BOOLOPT_MCAST_VLAN_SNOOPING,
   BR_BOOLOPT_MAX
 };
 struct br_boolopt_multi {
   __u32 optval;
   __u32 optmask;
 };
+enum {
+  BRIDGE_QUERIER_UNSPEC,
+  BRIDGE_QUERIER_IP_ADDRESS,
+  BRIDGE_QUERIER_IP_PORT,
+  BRIDGE_QUERIER_IP_OTHER_TIMER,
+  BRIDGE_QUERIER_PAD,
+  BRIDGE_QUERIER_IPV6_ADDRESS,
+  BRIDGE_QUERIER_IPV6_PORT,
+  BRIDGE_QUERIER_IPV6_OTHER_TIMER,
+  __BRIDGE_QUERIER_MAX
+};
+#define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_ether.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_ether.h
index 8405653..1f7f8f2 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_ether.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_ether.h
@@ -67,6 +67,7 @@
 #define ETH_P_LINK_CTL 0x886c
 #define ETH_P_ATMFATE 0x8884
 #define ETH_P_PAE 0x888E
+#define ETH_P_REALTEK 0x8899
 #define ETH_P_AOE 0x88A2
 #define ETH_P_8021AD 0x88A8
 #define ETH_P_802_EX1 0x88B5
@@ -123,6 +124,7 @@
 #define ETH_P_CAIF 0x00F7
 #define ETH_P_XDSA 0x00F8
 #define ETH_P_MAP 0x00F9
+#define ETH_P_MCTP 0x00FA
 #ifndef __UAPI_DEF_ETHHDR
 #define __UAPI_DEF_ETHHDR 1
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_link.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_link.h
index 2a5ba5a..7e413ae 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_link.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/if_link.h
@@ -148,6 +148,9 @@
   IFLA_ALT_IFNAME,
   IFLA_PERM_ADDRESS,
   IFLA_PROTO_DOWN_REASON,
+  IFLA_PARENT_DEV_NAME,
+  IFLA_PARENT_DEV_BUS_NAME,
+  IFLA_GRO_MAX_SIZE,
   __IFLA_MAX
 };
 #define IFLA_MAX (__IFLA_MAX - 1)
@@ -176,6 +179,7 @@
   IFLA_INET6_ICMP6STATS,
   IFLA_INET6_TOKEN,
   IFLA_INET6_ADDR_GEN_MODE,
+  IFLA_INET6_RA_MTU,
   __IFLA_INET6_MAX
 };
 #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
@@ -233,6 +237,7 @@
   IFLA_BR_MCAST_MLD_VERSION,
   IFLA_BR_VLAN_STATS_PER_PORT,
   IFLA_BR_MULTI_BOOLOPT,
+  IFLA_BR_MCAST_QUERIER_STATE,
   __IFLA_BR_MAX,
 };
 #define IFLA_BR_MAX (__IFLA_BR_MAX - 1)
@@ -354,6 +359,7 @@
   MACVLAN_MACADDR_SET,
 };
 #define MACVLAN_FLAG_NOPROMISC 1
+#define MACVLAN_FLAG_NODST 2
 enum {
   IFLA_VRF_UNSPEC,
   IFLA_VRF_TABLE,
@@ -550,6 +556,8 @@
   IFLA_BOND_AD_ACTOR_SYSTEM,
   IFLA_BOND_TLB_DYNAMIC_LB,
   IFLA_BOND_PEER_NOTIF_DELAY,
+  IFLA_BOND_AD_LACP_ACTIVE,
+  IFLA_BOND_MISSED_MAX,
   __IFLA_BOND_MAX,
 };
 #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
@@ -835,6 +843,8 @@
 #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
 #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
 #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
+#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4)
+#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5)
 enum {
   IFLA_RMNET_UNSPEC,
   IFLA_RMNET_MUX_ID,
@@ -846,4 +856,10 @@
   __u32 flags;
   __u32 mask;
 };
+enum {
+  IFLA_MCTP_UNSPEC,
+  IFLA_MCTP_NET,
+  __IFLA_MCTP_MAX,
+};
+#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
similarity index 80%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
index bb45c3d..ba2f5e3 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
@@ -16,14 +16,7 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#ifndef _UAPI_IIO_BUFFER_H_
+#define _UAPI_IIO_BUFFER_H_
+#define IIO_BUFFER_GET_FD_IOCTL _IOWR('i', 0x91, int)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/in.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/in.h
index e5437ca..d4060e7 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/in.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/in.h
@@ -155,21 +155,32 @@
 #define IP_MSFILTER_SIZE(numsrc) (sizeof(struct ip_msfilter) - sizeof(__u32) + (numsrc) * sizeof(__u32))
 struct group_req {
   __u32 gr_interface;
-  struct sockaddr_storage gr_group;
+  struct __kernel_sockaddr_storage gr_group;
 };
 struct group_source_req {
   __u32 gsr_interface;
-  struct sockaddr_storage gsr_group;
-  struct sockaddr_storage gsr_source;
+  struct __kernel_sockaddr_storage gsr_group;
+  struct __kernel_sockaddr_storage gsr_source;
 };
 struct group_filter {
-  __u32 gf_interface;
-  struct sockaddr_storage gf_group;
-  __u32 gf_fmode;
-  __u32 gf_numsrc;
-  struct sockaddr_storage gf_slist[1];
+  union {
+    struct {
+      __u32 gf_interface_aux;
+      struct __kernel_sockaddr_storage gf_group_aux;
+      __u32 gf_fmode_aux;
+      __u32 gf_numsrc_aux;
+      struct __kernel_sockaddr_storage gf_slist[1];
+    };
+    struct {
+      __u32 gf_interface;
+      struct __kernel_sockaddr_storage gf_group;
+      __u32 gf_fmode;
+      __u32 gf_numsrc;
+      struct __kernel_sockaddr_storage gf_slist_flex[];
+    };
+  };
 };
-#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) + (numsrc) * sizeof(struct sockaddr_storage))
+#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) + (numsrc) * sizeof(struct __kernel_sockaddr_storage))
 #endif
 #if __UAPI_DEF_IN_PKTINFO
 struct in_pktinfo {
@@ -214,6 +225,7 @@
 #define INADDR_ANY ((unsigned long int) 0x00000000)
 #define INADDR_BROADCAST ((unsigned long int) 0xffffffff)
 #define INADDR_NONE ((unsigned long int) 0xffffffff)
+#define INADDR_DUMMY ((unsigned long int) 0xc0000008)
 #define IN_LOOPBACKNET 127
 #define INADDR_LOOPBACK 0x7f000001
 #define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/in6.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/in6.h
index 8dd3238..49efe3c 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/in6.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/in6.h
@@ -105,6 +105,7 @@
 #define IPV6_TLV_PADN 1
 #define IPV6_TLV_ROUTERALERT 5
 #define IPV6_TLV_CALIPSO 7
+#define IPV6_TLV_IOAM 49
 #define IPV6_TLV_JUMBO 194
 #define IPV6_TLV_HAO 201
 #if __UAPI_DEF_IPV6_OPTIONS
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/incrementalfs.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
index 622a998..0804cc2 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
@@ -171,6 +171,8 @@
   __u64 time_us_out;
   __u32 page_out;
   __u32 errno_out;
-  __u64 reserved;
+  __u32 uid_out;
+  __u32 reserved1;
+  __u64 reserved2;
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/input-event-codes.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
index 732e9b7..34cd23c 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
@@ -248,7 +248,8 @@
 #define KEY_PAUSECD 201
 #define KEY_PROG3 202
 #define KEY_PROG4 203
-#define KEY_DASHBOARD 204
+#define KEY_ALL_APPLICATIONS 204
+#define KEY_DASHBOARD KEY_ALL_APPLICATIONS
 #define KEY_SUSPEND 205
 #define KEY_CLOSE 206
 #define KEY_PLAY 207
@@ -548,6 +549,8 @@
 #define KEY_VOICECOMMAND 0x246
 #define KEY_ASSISTANT 0x247
 #define KEY_KBD_LAYOUT_NEXT 0x248
+#define KEY_EMOJI_PICKER 0x249
+#define KEY_DICTATE 0x24a
 #define KEY_BRIGHTNESS_MIN 0x250
 #define KEY_BRIGHTNESS_MAX 0x251
 #define KEY_KBDINPUTASSIST_PREV 0x260
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/io_uring.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/io_uring.h
index fa59d39..96944f8 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/io_uring.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/io_uring.h
@@ -50,19 +50,19 @@
     __u32 splice_flags;
     __u32 rename_flags;
     __u32 unlink_flags;
+    __u32 hardlink_flags;
   };
   __u64 user_data;
   union {
-    struct {
-      union {
-        __u16 buf_index;
-        __u16 buf_group;
-      } __attribute__((packed));
-      __u16 personality;
-      __s32 splice_fd_in;
-    };
-    __u64 __pad2[3];
+    __u16 buf_index;
+    __u16 buf_group;
+  } __attribute__((packed));
+  __u16 personality;
+  union {
+    __s32 splice_fd_in;
+    __u32 file_index;
   };
+  __u64 __pad2[2];
 };
 enum {
   IOSQE_FIXED_FILE_BIT,
@@ -71,6 +71,7 @@
   IOSQE_IO_HARDLINK_BIT,
   IOSQE_ASYNC_BIT,
   IOSQE_BUFFER_SELECT_BIT,
+  IOSQE_CQE_SKIP_SUCCESS_BIT,
 };
 #define IOSQE_FIXED_FILE (1U << IOSQE_FIXED_FILE_BIT)
 #define IOSQE_IO_DRAIN (1U << IOSQE_IO_DRAIN_BIT)
@@ -78,6 +79,7 @@
 #define IOSQE_IO_HARDLINK (1U << IOSQE_IO_HARDLINK_BIT)
 #define IOSQE_ASYNC (1U << IOSQE_ASYNC_BIT)
 #define IOSQE_BUFFER_SELECT (1U << IOSQE_BUFFER_SELECT_BIT)
+#define IOSQE_CQE_SKIP_SUCCESS (1U << IOSQE_CQE_SKIP_SUCCESS_BIT)
 #define IORING_SETUP_IOPOLL (1U << 0)
 #define IORING_SETUP_SQPOLL (1U << 1)
 #define IORING_SETUP_SQ_AFF (1U << 2)
@@ -123,18 +125,31 @@
   IORING_OP_SHUTDOWN,
   IORING_OP_RENAMEAT,
   IORING_OP_UNLINKAT,
+  IORING_OP_MKDIRAT,
+  IORING_OP_SYMLINKAT,
+  IORING_OP_LINKAT,
   IORING_OP_LAST,
 };
 #define IORING_FSYNC_DATASYNC (1U << 0)
 #define IORING_TIMEOUT_ABS (1U << 0)
 #define IORING_TIMEOUT_UPDATE (1U << 1)
+#define IORING_TIMEOUT_BOOTTIME (1U << 2)
+#define IORING_TIMEOUT_REALTIME (1U << 3)
+#define IORING_LINK_TIMEOUT_UPDATE (1U << 4)
+#define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)
+#define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
+#define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
 #define SPLICE_F_FD_IN_FIXED (1U << 31)
+#define IORING_POLL_ADD_MULTI (1U << 0)
+#define IORING_POLL_UPDATE_EVENTS (1U << 1)
+#define IORING_POLL_UPDATE_USER_DATA (1U << 2)
 struct io_uring_cqe {
   __u64 user_data;
   __s32 res;
   __u32 flags;
 };
 #define IORING_CQE_F_BUFFER (1U << 0)
+#define IORING_CQE_F_MORE (1U << 1)
 enum {
   IORING_CQE_BUFFER_SHIFT = 16,
 };
@@ -192,6 +207,8 @@
 #define IORING_FEAT_SQPOLL_NONFIXED (1U << 7)
 #define IORING_FEAT_EXT_ARG (1U << 8)
 #define IORING_FEAT_NATIVE_WORKERS (1U << 9)
+#define IORING_FEAT_RSRC_TAGS (1U << 10)
+#define IORING_FEAT_CQE_SKIP (1U << 11)
 enum {
   IORING_REGISTER_BUFFERS = 0,
   IORING_UNREGISTER_BUFFERS = 1,
@@ -206,18 +223,44 @@
   IORING_UNREGISTER_PERSONALITY = 10,
   IORING_REGISTER_RESTRICTIONS = 11,
   IORING_REGISTER_ENABLE_RINGS = 12,
+  IORING_REGISTER_FILES2 = 13,
+  IORING_REGISTER_FILES_UPDATE2 = 14,
+  IORING_REGISTER_BUFFERS2 = 15,
+  IORING_REGISTER_BUFFERS_UPDATE = 16,
+  IORING_REGISTER_IOWQ_AFF = 17,
+  IORING_UNREGISTER_IOWQ_AFF = 18,
+  IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
   IORING_REGISTER_LAST
 };
+enum {
+  IO_WQ_BOUND,
+  IO_WQ_UNBOUND,
+};
 struct io_uring_files_update {
   __u32 offset;
   __u32 resv;
   __aligned_u64 fds;
 };
+struct io_uring_rsrc_register {
+  __u32 nr;
+  __u32 resv;
+  __u64 resv2;
+  __aligned_u64 data;
+  __aligned_u64 tags;
+};
 struct io_uring_rsrc_update {
   __u32 offset;
   __u32 resv;
   __aligned_u64 data;
 };
+struct io_uring_rsrc_update2 {
+  __u32 offset;
+  __u32 resv;
+  __aligned_u64 data;
+  __aligned_u64 tags;
+  __u32 nr;
+  __u32 resv2;
+};
 #define IORING_REGISTER_FILES_SKIP (- 2)
 #define IO_URING_OP_SUPPORTED (1U << 0)
 struct io_uring_probe_op {
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioam6.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioam6.h
new file mode 100644
index 0000000..e32c8e9
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioam6.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOAM6_H
+#define _UAPI_LINUX_IOAM6_H
+#include <asm/byteorder.h>
+#include <linux/types.h>
+#define IOAM6_U16_UNAVAILABLE U16_MAX
+#define IOAM6_U32_UNAVAILABLE U32_MAX
+#define IOAM6_U64_UNAVAILABLE U64_MAX
+#define IOAM6_DEFAULT_ID (IOAM6_U32_UNAVAILABLE >> 8)
+#define IOAM6_DEFAULT_ID_WIDE (IOAM6_U64_UNAVAILABLE >> 8)
+#define IOAM6_DEFAULT_IF_ID IOAM6_U16_UNAVAILABLE
+#define IOAM6_DEFAULT_IF_ID_WIDE IOAM6_U32_UNAVAILABLE
+struct ioam6_hdr {
+  __u8 opt_type;
+  __u8 opt_len;
+  __u8 : 8;
+#define IOAM6_TYPE_PREALLOC 0
+  __u8 type;
+} __attribute__((packed));
+struct ioam6_trace_hdr {
+  __be16 namespace_id;
+#ifdef __LITTLE_ENDIAN_BITFIELD
+  __u8 : 1, : 1, overflow : 1, nodelen : 5;
+  __u8 remlen : 7, : 1;
+  union {
+    __be32 type_be32;
+    struct {
+      __u32 bit7 : 1, bit6 : 1, bit5 : 1, bit4 : 1, bit3 : 1, bit2 : 1, bit1 : 1, bit0 : 1, bit15 : 1, bit14 : 1, bit13 : 1, bit12 : 1, bit11 : 1, bit10 : 1, bit9 : 1, bit8 : 1, bit23 : 1, bit22 : 1, bit21 : 1, bit20 : 1, bit19 : 1, bit18 : 1, bit17 : 1, bit16 : 1, : 8;
+    } type;
+  };
+#elif defined(__BIG_ENDIAN_BITFIELD)
+  __u8 nodelen : 5, overflow : 1, : 1, : 1;
+  __u8 : 1, remlen : 7;
+  union {
+    __be32 type_be32;
+    struct {
+      __u32 bit0 : 1, bit1 : 1, bit2 : 1, bit3 : 1, bit4 : 1, bit5 : 1, bit6 : 1, bit7 : 1, bit8 : 1, bit9 : 1, bit10 : 1, bit11 : 1, bit12 : 1, bit13 : 1, bit14 : 1, bit15 : 1, bit16 : 1, bit17 : 1, bit18 : 1, bit19 : 1, bit20 : 1, bit21 : 1, bit22 : 1, bit23 : 1, : 8;
+    } type;
+  };
+#else
+#error "Please fix <asm/byteorder.h>"
+#endif
+#define IOAM6_TRACE_DATA_SIZE_MAX 244
+  __u8 data[0];
+} __attribute__((packed));
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h
new file mode 100644
index 0000000..1d00c47
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h
@@ -0,0 +1,48 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOAM6_GENL_H
+#define _UAPI_LINUX_IOAM6_GENL_H
+#define IOAM6_GENL_NAME "IOAM6"
+#define IOAM6_GENL_VERSION 0x1
+enum {
+  IOAM6_ATTR_UNSPEC,
+  IOAM6_ATTR_NS_ID,
+  IOAM6_ATTR_NS_DATA,
+  IOAM6_ATTR_NS_DATA_WIDE,
+#define IOAM6_MAX_SCHEMA_DATA_LEN (255 * 4)
+  IOAM6_ATTR_SC_ID,
+  IOAM6_ATTR_SC_DATA,
+  IOAM6_ATTR_SC_NONE,
+  IOAM6_ATTR_PAD,
+  __IOAM6_ATTR_MAX,
+};
+#define IOAM6_ATTR_MAX (__IOAM6_ATTR_MAX - 1)
+enum {
+  IOAM6_CMD_UNSPEC,
+  IOAM6_CMD_ADD_NAMESPACE,
+  IOAM6_CMD_DEL_NAMESPACE,
+  IOAM6_CMD_DUMP_NAMESPACES,
+  IOAM6_CMD_ADD_SCHEMA,
+  IOAM6_CMD_DEL_SCHEMA,
+  IOAM6_CMD_DUMP_SCHEMAS,
+  IOAM6_CMD_NS_SET_SCHEMA,
+  __IOAM6_CMD_MAX,
+};
+#define IOAM6_CMD_MAX (__IOAM6_CMD_MAX - 1)
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
similarity index 64%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
index bb45c3d..7426225 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
@@ -16,14 +16,23 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_LINUX_IOAM6_IPTUNNEL_H
+#define _UAPI_LINUX_IOAM6_IPTUNNEL_H
+enum {
+  __IOAM6_IPTUNNEL_MODE_MIN,
+  IOAM6_IPTUNNEL_MODE_INLINE,
+  IOAM6_IPTUNNEL_MODE_ENCAP,
+  IOAM6_IPTUNNEL_MODE_AUTO,
+  __IOAM6_IPTUNNEL_MODE_MAX,
 };
+#define IOAM6_IPTUNNEL_MODE_MIN (__IOAM6_IPTUNNEL_MODE_MIN + 1)
+#define IOAM6_IPTUNNEL_MODE_MAX (__IOAM6_IPTUNNEL_MODE_MAX - 1)
+enum {
+  IOAM6_IPTUNNEL_UNSPEC,
+  IOAM6_IPTUNNEL_MODE,
+  IOAM6_IPTUNNEL_DST,
+  IOAM6_IPTUNNEL_TRACE,
+  __IOAM6_IPTUNNEL_MAX,
+};
+#define IOAM6_IPTUNNEL_MAX (__IOAM6_IPTUNNEL_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/iommu.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/iommu.h
index 1802fb4..0a0af92 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/iommu.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/iommu.h
@@ -132,7 +132,8 @@
 #define IOMMU_SVA_VTD_GPASID_PWT (1 << 3)
 #define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4)
 #define IOMMU_SVA_VTD_GPASID_CD (1 << 5)
-#define IOMMU_SVA_VTD_GPASID_LAST (1 << 6)
+#define IOMMU_SVA_VTD_GPASID_WPE (1 << 6)
+#define IOMMU_SVA_VTD_GPASID_LAST (1 << 7)
   __u64 flags;
   __u32 pat;
   __u32 emt;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioprio.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioprio.h
new file mode 100644
index 0000000..7a90d87
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ioprio.h
@@ -0,0 +1,42 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOPRIO_H
+#define _UAPI_LINUX_IOPRIO_H
+#define IOPRIO_CLASS_SHIFT 13
+#define IOPRIO_CLASS_MASK 0x07
+#define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1)
+#define IOPRIO_PRIO_CLASS(ioprio) (((ioprio) >> IOPRIO_CLASS_SHIFT) & IOPRIO_CLASS_MASK)
+#define IOPRIO_PRIO_DATA(ioprio) ((ioprio) & IOPRIO_PRIO_MASK)
+#define IOPRIO_PRIO_VALUE(class,data) ((((class) & IOPRIO_CLASS_MASK) << IOPRIO_CLASS_SHIFT) | ((data) & IOPRIO_PRIO_MASK))
+enum {
+  IOPRIO_CLASS_NONE,
+  IOPRIO_CLASS_RT,
+  IOPRIO_CLASS_BE,
+  IOPRIO_CLASS_IDLE,
+};
+#define IOPRIO_NR_LEVELS 8
+#define IOPRIO_BE_NR IOPRIO_NR_LEVELS
+enum {
+  IOPRIO_WHO_PROCESS = 1,
+  IOPRIO_WHO_PGRP,
+  IOPRIO_WHO_USER,
+};
+#define IOPRIO_NORM 4
+#define IOPRIO_BE_NORM IOPRIO_NORM
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ip.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ip.h
index 564fd8d..9571cac 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ip.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ip.h
@@ -146,6 +146,7 @@
   IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
   IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
   IPV4_DEVCONF_BC_FORWARDING,
+  IPV4_DEVCONF_ARP_EVICT_NOCARRIER,
   __IPV4_DEVCONF_MAX
 };
 #define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipmi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipmi.h
index cf9928f..dd88f2f 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipmi.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipmi.h
@@ -40,6 +40,14 @@
   unsigned char slave_addr;
   unsigned char lun;
 };
+#define IPMI_IPMB_DIRECT_ADDR_TYPE 0x81
+struct ipmi_ipmb_direct_addr {
+  int addr_type;
+  short channel;
+  unsigned char slave_addr;
+  unsigned char rs_lun;
+  unsigned char rq_lun;
+};
 #define IPMI_LAN_ADDR_TYPE 0x04
 struct ipmi_lan_addr {
   int addr_type;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipv6.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipv6.h
index 438cacc..b3db9ce 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipv6.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipv6.h
@@ -144,6 +144,10 @@
   DEVCONF_NDISC_TCLASS,
   DEVCONF_RPL_SEG_ENABLED,
   DEVCONF_RA_DEFRTR_METRIC,
+  DEVCONF_IOAM6_ENABLED,
+  DEVCONF_IOAM6_ID,
+  DEVCONF_IOAM6_ID_WIDE,
+  DEVCONF_NDISC_EVICT_NOCARRIER,
   DEVCONF_MAX
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipx.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipx.h
deleted file mode 100644
index d8a5424..0000000
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ipx.h
+++ /dev/null
@@ -1,90 +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 _IPX_H_
-#define _IPX_H_
-#include <linux/libc-compat.h>
-#include <linux/types.h>
-#include <linux/sockios.h>
-#include <linux/socket.h>
-#define IPX_NODE_LEN 6
-#define IPX_MTU 576
-#if __UAPI_DEF_SOCKADDR_IPX
-struct sockaddr_ipx {
-  __kernel_sa_family_t sipx_family;
-  __be16 sipx_port;
-  __be32 sipx_network;
-  unsigned char sipx_node[IPX_NODE_LEN];
-  __u8 sipx_type;
-  unsigned char sipx_zero;
-};
-#endif
-#define sipx_special sipx_port
-#define sipx_action sipx_zero
-#define IPX_DLTITF 0
-#define IPX_CRTITF 1
-#if __UAPI_DEF_IPX_ROUTE_DEFINITION
-struct ipx_route_definition {
-  __be32 ipx_network;
-  __be32 ipx_router_network;
-  unsigned char ipx_router_node[IPX_NODE_LEN];
-};
-#endif
-#if __UAPI_DEF_IPX_INTERFACE_DEFINITION
-struct ipx_interface_definition {
-  __be32 ipx_network;
-  unsigned char ipx_device[16];
-  unsigned char ipx_dlink_type;
-#define IPX_FRAME_NONE 0
-#define IPX_FRAME_SNAP 1
-#define IPX_FRAME_8022 2
-#define IPX_FRAME_ETHERII 3
-#define IPX_FRAME_8023 4
-#define IPX_FRAME_TR_8022 5
-  unsigned char ipx_special;
-#define IPX_SPECIAL_NONE 0
-#define IPX_PRIMARY 1
-#define IPX_INTERNAL 2
-  unsigned char ipx_node[IPX_NODE_LEN];
-};
-#endif
-#if __UAPI_DEF_IPX_CONFIG_DATA
-struct ipx_config_data {
-  unsigned char ipxcfg_auto_select_primary;
-  unsigned char ipxcfg_auto_create_interfaces;
-};
-#endif
-#if __UAPI_DEF_IPX_ROUTE_DEF
-struct ipx_route_def {
-  __be32 ipx_network;
-  __be32 ipx_router_network;
-#define IPX_ROUTE_NO_ROUTER 0
-  unsigned char ipx_router_node[IPX_NODE_LEN];
-  unsigned char ipx_device[16];
-  unsigned short ipx_flags;
-#define IPX_RT_SNAP 8
-#define IPX_RT_8022 4
-#define IPX_RT_BLUEBOOK 2
-#define IPX_RT_ROUTED 1
-};
-#endif
-#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE)
-#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1)
-#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2)
-#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3)
-#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kexec.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kexec.h
index b2dc88f..2e3bd0c 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kexec.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kexec.h
@@ -39,6 +39,7 @@
 #define KEXEC_ARCH_MIPS_LE (10 << 16)
 #define KEXEC_ARCH_MIPS (8 << 16)
 #define KEXEC_ARCH_AARCH64 (183 << 16)
+#define KEXEC_ARCH_RISCV (243 << 16)
 #define KEXEC_SEGMENT_MAX 16
 struct kexec_segment {
   const void * buf;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
index 73ef5de..c52ac64 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
@@ -21,7 +21,7 @@
 #include <drm/drm.h>
 #include <linux/ioctl.h>
 #define KFD_IOCTL_MAJOR_VERSION 1
-#define KFD_IOCTL_MINOR_VERSION 3
+#define KFD_IOCTL_MINOR_VERSION 6
 struct kfd_ioctl_get_version_args {
   __u32 major_version;
   __u32 minor_version;
@@ -244,6 +244,7 @@
 #define KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE (1 << 28)
 #define KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM (1 << 27)
 #define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT (1 << 26)
+#define KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED (1 << 25)
 struct kfd_ioctl_alloc_memory_of_gpu_args {
   __u64 va_addr;
   __u64 size;
@@ -303,6 +304,44 @@
   KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL = 0,
   KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL = 4,
 };
+#define KFD_IOCTL_SVM_FLAG_HOST_ACCESS 0x00000001
+#define KFD_IOCTL_SVM_FLAG_COHERENT 0x00000002
+#define KFD_IOCTL_SVM_FLAG_HIVE_LOCAL 0x00000004
+#define KFD_IOCTL_SVM_FLAG_GPU_RO 0x00000008
+#define KFD_IOCTL_SVM_FLAG_GPU_EXEC 0x00000010
+#define KFD_IOCTL_SVM_FLAG_GPU_READ_MOSTLY 0x00000020
+enum kfd_ioctl_svm_op {
+  KFD_IOCTL_SVM_OP_SET_ATTR,
+  KFD_IOCTL_SVM_OP_GET_ATTR
+};
+enum kfd_ioctl_svm_location {
+  KFD_IOCTL_SVM_LOCATION_SYSMEM = 0,
+  KFD_IOCTL_SVM_LOCATION_UNDEFINED = 0xffffffff
+};
+enum kfd_ioctl_svm_attr_type {
+  KFD_IOCTL_SVM_ATTR_PREFERRED_LOC,
+  KFD_IOCTL_SVM_ATTR_PREFETCH_LOC,
+  KFD_IOCTL_SVM_ATTR_ACCESS,
+  KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE,
+  KFD_IOCTL_SVM_ATTR_NO_ACCESS,
+  KFD_IOCTL_SVM_ATTR_SET_FLAGS,
+  KFD_IOCTL_SVM_ATTR_CLR_FLAGS,
+  KFD_IOCTL_SVM_ATTR_GRANULARITY
+};
+struct kfd_ioctl_svm_attribute {
+  __u32 type;
+  __u32 value;
+};
+struct kfd_ioctl_svm_args {
+  __u64 start_addr;
+  __u64 size;
+  __u32 op;
+  __u32 nattr;
+  struct kfd_ioctl_svm_attribute attrs[0];
+};
+struct kfd_ioctl_set_xnack_mode_args {
+  __s32 xnack_enabled;
+};
 #define AMDKFD_IOCTL_BASE 'K'
 #define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
 #define AMDKFD_IOR(nr,type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
@@ -339,6 +378,8 @@
 #define AMDKFD_IOC_IMPORT_DMABUF AMDKFD_IOWR(0x1D, struct kfd_ioctl_import_dmabuf_args)
 #define AMDKFD_IOC_ALLOC_QUEUE_GWS AMDKFD_IOWR(0x1E, struct kfd_ioctl_alloc_queue_gws_args)
 #define AMDKFD_IOC_SMI_EVENTS AMDKFD_IOWR(0x1F, struct kfd_ioctl_smi_events_args)
+#define AMDKFD_IOC_SVM AMDKFD_IOWR(0x20, struct kfd_ioctl_svm_args)
+#define AMDKFD_IOC_SET_XNACK_MODE AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)
 #define AMDKFD_COMMAND_START 0x01
-#define AMDKFD_COMMAND_END 0x20
+#define AMDKFD_COMMAND_END 0x22
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h
new file mode 100644
index 0000000..9604b03
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 KFD_SYSFS_H_INCLUDED
+#define KFD_SYSFS_H_INCLUDED
+#define HSA_CAP_HOT_PLUGGABLE 0x00000001
+#define HSA_CAP_ATS_PRESENT 0x00000002
+#define HSA_CAP_SHARED_WITH_GRAPHICS 0x00000004
+#define HSA_CAP_QUEUE_SIZE_POW2 0x00000008
+#define HSA_CAP_QUEUE_SIZE_32BIT 0x00000010
+#define HSA_CAP_QUEUE_IDLE_EVENT 0x00000020
+#define HSA_CAP_VA_LIMIT 0x00000040
+#define HSA_CAP_WATCH_POINTS_SUPPORTED 0x00000080
+#define HSA_CAP_WATCH_POINTS_TOTALBITS_MASK 0x00000f00
+#define HSA_CAP_WATCH_POINTS_TOTALBITS_SHIFT 8
+#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_MASK 0x00003000
+#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_SHIFT 12
+#define HSA_CAP_DOORBELL_TYPE_PRE_1_0 0x0
+#define HSA_CAP_DOORBELL_TYPE_1_0 0x1
+#define HSA_CAP_DOORBELL_TYPE_2_0 0x2
+#define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000
+#define HSA_CAP_RESERVED_WAS_SRAM_EDCSUPPORTED 0x00080000
+#define HSA_CAP_MEM_EDCSUPPORTED 0x00100000
+#define HSA_CAP_RASEVENTNOTIFY 0x00200000
+#define HSA_CAP_ASIC_REVISION_MASK 0x03c00000
+#define HSA_CAP_ASIC_REVISION_SHIFT 22
+#define HSA_CAP_SRAM_EDCSUPPORTED 0x04000000
+#define HSA_CAP_SVMAPI_SUPPORTED 0x08000000
+#define HSA_CAP_FLAGS_COHERENTHOSTACCESS 0x10000000
+#define HSA_CAP_RESERVED 0xe00f8000
+#define HSA_MEM_HEAP_TYPE_SYSTEM 0
+#define HSA_MEM_HEAP_TYPE_FB_PUBLIC 1
+#define HSA_MEM_HEAP_TYPE_FB_PRIVATE 2
+#define HSA_MEM_HEAP_TYPE_GPU_GDS 3
+#define HSA_MEM_HEAP_TYPE_GPU_LDS 4
+#define HSA_MEM_HEAP_TYPE_GPU_SCRATCH 5
+#define HSA_MEM_FLAGS_HOT_PLUGGABLE 0x00000001
+#define HSA_MEM_FLAGS_NON_VOLATILE 0x00000002
+#define HSA_MEM_FLAGS_RESERVED 0xfffffffc
+#define HSA_CACHE_TYPE_DATA 0x00000001
+#define HSA_CACHE_TYPE_INSTRUCTION 0x00000002
+#define HSA_CACHE_TYPE_CPU 0x00000004
+#define HSA_CACHE_TYPE_HSACU 0x00000008
+#define HSA_CACHE_TYPE_RESERVED 0xfffffff0
+#define HSA_IOLINK_TYPE_UNDEFINED 0
+#define HSA_IOLINK_TYPE_HYPERTRANSPORT 1
+#define HSA_IOLINK_TYPE_PCIEXPRESS 2
+#define HSA_IOLINK_TYPE_AMBA 3
+#define HSA_IOLINK_TYPE_MIPI 4
+#define HSA_IOLINK_TYPE_QPI_1_1 5
+#define HSA_IOLINK_TYPE_RESERVED1 6
+#define HSA_IOLINK_TYPE_RESERVED2 7
+#define HSA_IOLINK_TYPE_RAPID_IO 8
+#define HSA_IOLINK_TYPE_INFINIBAND 9
+#define HSA_IOLINK_TYPE_RESERVED3 10
+#define HSA_IOLINK_TYPE_XGMI 11
+#define HSA_IOLINK_TYPE_XGOP 12
+#define HSA_IOLINK_TYPE_GZ 13
+#define HSA_IOLINK_TYPE_ETHERNET_RDMA 14
+#define HSA_IOLINK_TYPE_RDMA_OTHER 15
+#define HSA_IOLINK_TYPE_OTHER 16
+#define HSA_IOLINK_FLAGS_ENABLED (1 << 0)
+#define HSA_IOLINK_FLAGS_NON_COHERENT (1 << 1)
+#define HSA_IOLINK_FLAGS_NO_ATOMICS_32_BIT (1 << 2)
+#define HSA_IOLINK_FLAGS_NO_ATOMICS_64_BIT (1 << 3)
+#define HSA_IOLINK_FLAGS_NO_PEER_TO_PEER_DMA (1 << 4)
+#define HSA_IOLINK_FLAGS_RESERVED 0xffffffe0
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kvm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kvm.h
index 81fa779..1cf7182 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kvm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kvm.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef __LINUX_KVM_H
 #define __LINUX_KVM_H
+#include <linux/const.h>
 #include <linux/types.h>
 #include <linux/compiler.h>
 #include <linux/ioctl.h>
@@ -214,10 +215,12 @@
 #define KVM_EXIT_AP_RESET_HOLD 32
 #define KVM_EXIT_X86_BUS_LOCK 33
 #define KVM_EXIT_XEN 34
+#define KVM_EXIT_RISCV_SBI 35
 #define KVM_INTERNAL_ERROR_EMULATION 1
 #define KVM_INTERNAL_ERROR_SIMUL_EX 2
 #define KVM_INTERNAL_ERROR_DELIVERY_EV 3
 #define KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON 4
+#define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0)
 struct kvm_run {
   __u8 request_interrupt_window;
   __u8 immediate_exit;
@@ -300,6 +303,17 @@
       __u64 data[16];
     } internal;
     struct {
+      __u32 suberror;
+      __u32 ndata;
+      __u64 flags;
+      union {
+        struct {
+          __u8 insn_size;
+          __u8 insn_bytes[15];
+        };
+      };
+    } emulation_failure;
+    struct {
       __u64 gprs[32];
     } osi;
     struct {
@@ -352,6 +366,12 @@
       __u64 data;
     } msr;
     struct kvm_xen_exit xen;
+    struct {
+      unsigned long extension_id;
+      unsigned long function_id;
+      unsigned long args[6];
+      unsigned long ret[2];
+    } riscv_sbi;
     char padding[256];
   };
 #define SYNC_REGS_SIZE_BYTES 2048
@@ -854,6 +874,22 @@
 #define KVM_CAP_DIRTY_LOG_RING 192
 #define KVM_CAP_X86_BUS_LOCK_EXIT 193
 #define KVM_CAP_PPC_DAWR1 194
+#define KVM_CAP_SET_GUEST_DEBUG2 195
+#define KVM_CAP_SGX_ATTRIBUTE 196
+#define KVM_CAP_VM_COPY_ENC_CONTEXT_FROM 197
+#define KVM_CAP_PTP_KVM 198
+#define KVM_CAP_HYPERV_ENFORCE_CPUID 199
+#define KVM_CAP_SREGS2 200
+#define KVM_CAP_EXIT_HYPERCALL 201
+#define KVM_CAP_PPC_RPT_INVALIDATE 202
+#define KVM_CAP_BINARY_STATS_FD 203
+#define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
+#define KVM_CAP_ARM_MTE 205
+#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206
+#define KVM_CAP_VM_GPA_BITS 207
+#define KVM_CAP_XSAVE2 208
+#define KVM_CAP_SYS_ATTRIBUTES 209
+#define KVM_CAP_PPC_AIL_MODE_3 210
 #ifdef KVM_CAP_IRQ_ROUTING
 struct kvm_irq_routing_irqchip {
   __u32 irqchip;
@@ -879,10 +915,17 @@
   __u32 vcpu;
   __u32 sint;
 };
+struct kvm_irq_routing_xen_evtchn {
+  __u32 port;
+  __u32 vcpu;
+  __u32 priority;
+};
+#define KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL ((__u32) (- 1))
 #define KVM_IRQ_ROUTING_IRQCHIP 1
 #define KVM_IRQ_ROUTING_MSI 2
 #define KVM_IRQ_ROUTING_S390_ADAPTER 3
 #define KVM_IRQ_ROUTING_HV_SINT 4
+#define KVM_IRQ_ROUTING_XEN_EVTCHN 5
 struct kvm_irq_routing_entry {
   __u32 gsi;
   __u32 type;
@@ -893,6 +936,7 @@
     struct kvm_irq_routing_msi msi;
     struct kvm_irq_routing_s390_adapter adapter;
     struct kvm_irq_routing_hv_sint hv_sint;
+    struct kvm_irq_routing_xen_evtchn xen_evtchn;
     __u32 pad[8];
   } u;
 };
@@ -918,6 +962,7 @@
 #define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1)
 #define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2)
 #define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
+#define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4)
 struct kvm_xen_hvm_config {
   __u32 flags;
   __u32 msr;
@@ -938,10 +983,15 @@
   __u8 pad[16];
 };
 #define KVM_CLOCK_TSC_STABLE 2
+#define KVM_CLOCK_REALTIME (1 << 2)
+#define KVM_CLOCK_HOST_TSC (1 << 3)
 struct kvm_clock_data {
   __u64 clock;
   __u32 flags;
-  __u32 pad[9];
+  __u32 pad0;
+  __u64 realtime;
+  __u64 host_tsc;
+  __u32 pad[4];
 };
 #define KVM_MMU_FSL_BOOKE_NOHV 0
 #define KVM_MMU_FSL_BOOKE_HV 1
@@ -1105,6 +1155,7 @@
 #define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char)
 #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
 #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3)
+#define KVM_ARM_MTE_COPY_TAGS _IOR(KVMIO, 0xb4, struct kvm_arm_copy_mte_tags)
 #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
 #define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr)
 #define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr)
@@ -1230,6 +1281,8 @@
 #define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
 #define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
 #define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
+#define KVM_GET_SREGS2 _IOR(KVMIO, 0xcc, struct kvm_sregs2)
+#define KVM_SET_SREGS2 _IOW(KVMIO, 0xcd, struct kvm_sregs2)
 struct kvm_xen_vcpu_attr {
   __u16 type;
   __u16 pad[3];
@@ -1274,6 +1327,7 @@
   KVM_SEV_DBG_ENCRYPT,
   KVM_SEV_CERT_EXPORT,
   KVM_SEV_GET_ATTESTATION_REPORT,
+  KVM_SEV_SEND_CANCEL,
   KVM_SEV_NR_MAX,
 };
 struct kvm_sev_cmd {
@@ -1321,6 +1375,41 @@
   __u64 uaddr;
   __u32 len;
 };
+struct kvm_sev_send_start {
+  __u32 policy;
+  __u64 pdh_cert_uaddr;
+  __u32 pdh_cert_len;
+  __u64 plat_certs_uaddr;
+  __u32 plat_certs_len;
+  __u64 amd_certs_uaddr;
+  __u32 amd_certs_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_send_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
+struct kvm_sev_receive_start {
+  __u32 handle;
+  __u32 policy;
+  __u64 pdh_uaddr;
+  __u32 pdh_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_receive_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
 #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
 #define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
@@ -1381,8 +1470,8 @@
 #ifndef KVM_DIRTY_LOG_PAGE_OFFSET
 #define KVM_DIRTY_LOG_PAGE_OFFSET 0
 #endif
-#define KVM_DIRTY_GFN_F_DIRTY BIT(0)
-#define KVM_DIRTY_GFN_F_RESET BIT(1)
+#define KVM_DIRTY_GFN_F_DIRTY _BITUL(0)
+#define KVM_DIRTY_GFN_F_RESET _BITUL(1)
 #define KVM_DIRTY_GFN_F_MASK 0x3
 struct kvm_dirty_gfn {
   __u32 flags;
@@ -1391,4 +1480,42 @@
 };
 #define KVM_BUS_LOCK_DETECTION_OFF (1 << 0)
 #define KVM_BUS_LOCK_DETECTION_EXIT (1 << 1)
+struct kvm_stats_header {
+  __u32 flags;
+  __u32 name_size;
+  __u32 num_desc;
+  __u32 id_offset;
+  __u32 desc_offset;
+  __u32 data_offset;
+};
+#define KVM_STATS_TYPE_SHIFT 0
+#define KVM_STATS_TYPE_MASK (0xF << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_CUMULATIVE (0x0 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_INSTANT (0x1 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_PEAK (0x2 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_LINEAR_HIST (0x3 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_LOG_HIST (0x4 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_MAX KVM_STATS_TYPE_LOG_HIST
+#define KVM_STATS_UNIT_SHIFT 4
+#define KVM_STATS_UNIT_MASK (0xF << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_NONE (0x0 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_BYTES (0x1 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_SECONDS (0x2 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_CYCLES (0x3 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_MAX KVM_STATS_UNIT_CYCLES
+#define KVM_STATS_BASE_SHIFT 8
+#define KVM_STATS_BASE_MASK (0xF << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_POW10 (0x0 << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_POW2 (0x1 << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_MAX KVM_STATS_BASE_POW2
+struct kvm_stats_desc {
+  __u32 flags;
+  __s16 exponent;
+  __u16 size;
+  __u32 offset;
+  __u32 bucket_size;
+  char name[];
+};
+#define KVM_GET_STATS_FD _IO(KVMIO, 0xce)
+#define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kvm_para.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kvm_para.h
index 9a4dd29..85084c2 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kvm_para.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/kvm_para.h
@@ -35,5 +35,6 @@
 #define KVM_HC_CLOCK_PAIRING 9
 #define KVM_HC_SEND_IPI 10
 #define KVM_HC_SCHED_YIELD 11
+#define KVM_HC_MAP_GPA_RANGE 12
 #include <asm/kvm_para.h>
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/landlock.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/landlock.h
new file mode 100644
index 0000000..50d79d8
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/landlock.h
@@ -0,0 +1,46 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_LANDLOCK_H
+#define _UAPI_LINUX_LANDLOCK_H
+#include <linux/types.h>
+struct landlock_ruleset_attr {
+  __u64 handled_access_fs;
+};
+#define LANDLOCK_CREATE_RULESET_VERSION (1U << 0)
+enum landlock_rule_type {
+  LANDLOCK_RULE_PATH_BENEATH = 1,
+};
+struct landlock_path_beneath_attr {
+  __u64 allowed_access;
+  __s32 parent_fd;
+} __attribute__((packed));
+#define LANDLOCK_ACCESS_FS_EXECUTE (1ULL << 0)
+#define LANDLOCK_ACCESS_FS_WRITE_FILE (1ULL << 1)
+#define LANDLOCK_ACCESS_FS_READ_FILE (1ULL << 2)
+#define LANDLOCK_ACCESS_FS_READ_DIR (1ULL << 3)
+#define LANDLOCK_ACCESS_FS_REMOVE_DIR (1ULL << 4)
+#define LANDLOCK_ACCESS_FS_REMOVE_FILE (1ULL << 5)
+#define LANDLOCK_ACCESS_FS_MAKE_CHAR (1ULL << 6)
+#define LANDLOCK_ACCESS_FS_MAKE_DIR (1ULL << 7)
+#define LANDLOCK_ACCESS_FS_MAKE_REG (1ULL << 8)
+#define LANDLOCK_ACCESS_FS_MAKE_SOCK (1ULL << 9)
+#define LANDLOCK_ACCESS_FS_MAKE_FIFO (1ULL << 10)
+#define LANDLOCK_ACCESS_FS_MAKE_BLOCK (1ULL << 11)
+#define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12)
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/lightnvm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/lightnvm.h
deleted file mode 100644
index b3ac317..0000000
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/lightnvm.h
+++ /dev/null
@@ -1,167 +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_LINUX_LIGHTNVM_H
-#define _UAPI_LINUX_LIGHTNVM_H
-#include <stdio.h>
-#include <sys/ioctl.h>
-#define DISK_NAME_LEN 32
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#define NVM_TTYPE_NAME_MAX 48
-#define NVM_TTYPE_MAX 63
-#define NVM_MMTYPE_LEN 8
-#define NVM_CTRL_FILE "/dev/lightnvm/control"
-struct nvm_ioctl_info_tgt {
-  __u32 version[3];
-  __u32 reserved;
-  char tgtname[NVM_TTYPE_NAME_MAX];
-};
-struct nvm_ioctl_info {
-  __u32 version[3];
-  __u16 tgtsize;
-  __u16 reserved16;
-  __u32 reserved[12];
-  struct nvm_ioctl_info_tgt tgts[NVM_TTYPE_MAX];
-};
-enum {
-  NVM_DEVICE_ACTIVE = 1 << 0,
-};
-struct nvm_ioctl_device_info {
-  char devname[DISK_NAME_LEN];
-  char bmname[NVM_TTYPE_NAME_MAX];
-  __u32 bmversion[3];
-  __u32 flags;
-  __u32 reserved[8];
-};
-struct nvm_ioctl_get_devices {
-  __u32 nr_devices;
-  __u32 reserved[31];
-  struct nvm_ioctl_device_info info[31];
-};
-struct nvm_ioctl_create_simple {
-  __u32 lun_begin;
-  __u32 lun_end;
-};
-struct nvm_ioctl_create_extended {
-  __u16 lun_begin;
-  __u16 lun_end;
-  __u16 op;
-  __u16 rsv;
-};
-enum {
-  NVM_CONFIG_TYPE_SIMPLE = 0,
-  NVM_CONFIG_TYPE_EXTENDED = 1,
-};
-struct nvm_ioctl_create_conf {
-  __u32 type;
-  union {
-    struct nvm_ioctl_create_simple s;
-    struct nvm_ioctl_create_extended e;
-  };
-};
-enum {
-  NVM_TARGET_FACTORY = 1 << 0,
-};
-struct nvm_ioctl_create {
-  char dev[DISK_NAME_LEN];
-  char tgttype[NVM_TTYPE_NAME_MAX];
-  char tgtname[DISK_NAME_LEN];
-  __u32 flags;
-  struct nvm_ioctl_create_conf conf;
-};
-struct nvm_ioctl_remove {
-  char tgtname[DISK_NAME_LEN];
-  __u32 flags;
-};
-struct nvm_ioctl_dev_init {
-  char dev[DISK_NAME_LEN];
-  char mmtype[NVM_MMTYPE_LEN];
-  __u32 flags;
-};
-enum {
-  NVM_FACTORY_ERASE_ONLY_USER = 1 << 0,
-  NVM_FACTORY_RESET_HOST_BLKS = 1 << 1,
-  NVM_FACTORY_RESET_GRWN_BBLKS = 1 << 2,
-  NVM_FACTORY_NR_BITS = 1 << 3,
-};
-struct nvm_ioctl_dev_factory {
-  char dev[DISK_NAME_LEN];
-  __u32 flags;
-};
-struct nvm_user_vio {
-  __u8 opcode;
-  __u8 flags;
-  __u16 control;
-  __u16 nppas;
-  __u16 rsvd;
-  __u64 metadata;
-  __u64 addr;
-  __u64 ppa_list;
-  __u32 metadata_len;
-  __u32 data_len;
-  __u64 status;
-  __u32 result;
-  __u32 rsvd3[3];
-};
-struct nvm_passthru_vio {
-  __u8 opcode;
-  __u8 flags;
-  __u8 rsvd[2];
-  __u32 nsid;
-  __u32 cdw2;
-  __u32 cdw3;
-  __u64 metadata;
-  __u64 addr;
-  __u32 metadata_len;
-  __u32 data_len;
-  __u64 ppa_list;
-  __u16 nppas;
-  __u16 control;
-  __u32 cdw13;
-  __u32 cdw14;
-  __u32 cdw15;
-  __u64 status;
-  __u32 result;
-  __u32 timeout_ms;
-};
-enum {
-  NVM_INFO_CMD = 0x20,
-  NVM_GET_DEVICES_CMD,
-  NVM_DEV_CREATE_CMD,
-  NVM_DEV_REMOVE_CMD,
-  NVM_DEV_INIT_CMD,
-  NVM_DEV_FACTORY_CMD,
-  NVM_DEV_VIO_ADMIN_CMD = 0x41,
-  NVM_DEV_VIO_CMD = 0x42,
-  NVM_DEV_VIO_USER_CMD = 0x43,
-};
-#define NVM_IOCTL 'L'
-#define NVM_INFO _IOWR(NVM_IOCTL, NVM_INFO_CMD, struct nvm_ioctl_info)
-#define NVM_GET_DEVICES _IOR(NVM_IOCTL, NVM_GET_DEVICES_CMD, struct nvm_ioctl_get_devices)
-#define NVM_DEV_CREATE _IOW(NVM_IOCTL, NVM_DEV_CREATE_CMD, struct nvm_ioctl_create)
-#define NVM_DEV_REMOVE _IOW(NVM_IOCTL, NVM_DEV_REMOVE_CMD, struct nvm_ioctl_remove)
-#define NVM_DEV_INIT _IOW(NVM_IOCTL, NVM_DEV_INIT_CMD, struct nvm_ioctl_dev_init)
-#define NVM_DEV_FACTORY _IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, struct nvm_ioctl_dev_factory)
-#define NVME_NVM_IOCTL_IO_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_USER_CMD, struct nvm_passthru_vio)
-#define NVME_NVM_IOCTL_ADMIN_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_ADMIN_CMD, struct nvm_passthru_vio)
-#define NVME_NVM_IOCTL_SUBMIT_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_CMD, struct nvm_user_vio)
-#define NVM_VERSION_MAJOR 1
-#define NVM_VERSION_MINOR 0
-#define NVM_VERSION_PATCHLEVEL 0
-#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/lwtunnel.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
index f472150..e6fb536 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
@@ -29,6 +29,7 @@
   LWTUNNEL_ENCAP_BPF,
   LWTUNNEL_ENCAP_SEG6_LOCAL,
   LWTUNNEL_ENCAP_RPL,
+  LWTUNNEL_ENCAP_IOAM6,
   __LWTUNNEL_ENCAP_MAX,
 };
 #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/magic.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/magic.h
index 479ae81..6563411 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/magic.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/magic.h
@@ -22,6 +22,7 @@
 #define AFFS_SUPER_MAGIC 0xadff
 #define AFS_SUPER_MAGIC 0x5346414F
 #define AUTOFS_SUPER_MAGIC 0x0187
+#define CEPH_SUPER_MAGIC 0x00c36400
 #define CODA_SUPER_MAGIC 0x73757245
 #define CRAMFS_MAGIC 0x28cd3d45
 #define CRAMFS_MAGIC_WEND 0x453dcd28
@@ -51,12 +52,14 @@
 #define EFIVARFS_MAGIC 0xde5e81e4
 #define HOSTFS_SUPER_MAGIC 0x00c0ffee
 #define OVERLAYFS_SUPER_MAGIC 0x794c7630
+#define FUSE_SUPER_MAGIC 0x65735546
 #define MINIX_SUPER_MAGIC 0x137F
 #define MINIX_SUPER_MAGIC2 0x138F
 #define MINIX2_SUPER_MAGIC 0x2468
 #define MINIX2_SUPER_MAGIC2 0x2478
 #define MINIX3_SUPER_MAGIC 0x4d5a
 #define MSDOS_SUPER_MAGIC 0x4d44
+#define EXFAT_SUPER_MAGIC 0x2011BAB0
 #define NCP_SUPER_MAGIC 0x564c
 #define NFS_SUPER_MAGIC 0x6969
 #define OCFS2_SUPER_MAGIC 0x7461636f
@@ -69,6 +72,8 @@
 #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
 #define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs"
 #define SMB_SUPER_MAGIC 0x517B
+#define CIFS_SUPER_MAGIC 0xFF534D42
+#define SMB2_SUPER_MAGIC 0xFE534D42
 #define CGROUP_SUPER_MAGIC 0x27e0eb
 #define CGROUP2_SUPER_MAGIC 0x63677270
 #define RDTGROUP_SUPER_MAGIC 0x7655821
@@ -100,4 +105,5 @@
 #define DEVMEM_MAGIC 0x454d444d
 #define Z3FOLD_MAGIC 0x33
 #define PPC_CMM_MAGIC 0xc7571590
+#define SECRETMEM_MAGIC 0x5345434d
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/major.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/major.h
index 7768d7b..f5e2cfb 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/major.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/major.h
@@ -45,8 +45,6 @@
 #define GOLDSTAR_CDROM_MAJOR 16
 #define OPTICS_CDROM_MAJOR 17
 #define SANYO_CDROM_MAJOR 18
-#define CYCLADES_MAJOR 19
-#define CYCLADESAUX_MAJOR 20
 #define MITSUMI_X_CDROM_MAJOR 20
 #define MFM_ACORN_MAJOR 21
 #define SCSI_GENERIC_MAJOR 21
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h
new file mode 100644
index 0000000..657df6c
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h
@@ -0,0 +1,56 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 MAP_TO_14SEGMENT_H
+#define MAP_TO_14SEGMENT_H
+#include <linux/errno.h>
+#include <linux/types.h>
+#include <asm/byteorder.h>
+#define BIT_SEG14_A 0
+#define BIT_SEG14_B 1
+#define BIT_SEG14_C 2
+#define BIT_SEG14_D 3
+#define BIT_SEG14_E 4
+#define BIT_SEG14_F 5
+#define BIT_SEG14_G1 6
+#define BIT_SEG14_G2 7
+#define BIT_SEG14_H 8
+#define BIT_SEG14_I 9
+#define BIT_SEG14_J 10
+#define BIT_SEG14_K 11
+#define BIT_SEG14_L 12
+#define BIT_SEG14_M 13
+#define BIT_SEG14_RESERVED1 14
+#define BIT_SEG14_RESERVED2 15
+struct seg14_conversion_map {
+  __be16 table[128];
+};
+#define SEG14_CONVERSION_MAP(_name,_map) struct seg14_conversion_map _name = {.table = { _map } }
+#define MAP_TO_SEG14_SYSFS_FILE "map_seg14"
+#define _SEG14(sym,a,b,c,d,e,f,g1,g2,h,j,k,l,m,n) __cpu_to_be16(a << BIT_SEG14_A | b << BIT_SEG14_B | c << BIT_SEG14_C | d << BIT_SEG14_D | e << BIT_SEG14_E | f << BIT_SEG14_F | g1 << BIT_SEG14_G1 | g2 << BIT_SEG14_G2 | h << BIT_SEG14_H | j << BIT_SEG14_I | k << BIT_SEG14_J | l << BIT_SEG14_K | m << BIT_SEG14_L | n << BIT_SEG14_M)
+#define _MAP_0_32_ASCII_SEG14_NON_PRINTABLE 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+#define _MAP_33_47_ASCII_SEG14_SYMBOL _SEG14('!', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('"', 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), _SEG14('#', 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14('$', 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14('%', 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('&', 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1), _SEG14('\'', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), _SEG14('(', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1), _SEG14(')', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0), _SEG14('*', 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1), _SEG14('+', 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14(',', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0), _SEG14('-', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('.', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1), _SEG14('/', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
+#define _MAP_48_57_ASCII_SEG14_NUMERIC _SEG14('0', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('1', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0), _SEG14('2', 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('3', 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0), _SEG14('4', 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('5', 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1), _SEG14('6', 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('7', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0), _SEG14('8', 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('9', 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0),
+#define _MAP_58_64_ASCII_SEG14_SYMBOL _SEG14(':', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14(';', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0), _SEG14('<', 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1), _SEG14('=', 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('>', 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0), _SEG14('?', 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0), _SEG14('@', 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0),
+#define _MAP_65_90_ASCII_SEG14_ALPHA_UPPER _SEG14('A', 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('B', 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0), _SEG14('C', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('D', 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('E', 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('F', 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('G', 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0), _SEG14('H', 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('I', 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('J', 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('K', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1), _SEG14('L', 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('M', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0), _SEG14('N', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1), _SEG14('O', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('P', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('Q', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1), _SEG14('R', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1), _SEG14('S', 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('T', 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('U', 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('V', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('W', 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('X', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1), _SEG14('Y', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0), _SEG14('Z', 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
+#define _MAP_91_96_ASCII_SEG14_SYMBOL _SEG14('[', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('\\', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), _SEG14(']', 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('^', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('_', 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('`', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0),
+#define _MAP_97_122_ASCII_SEG14_ALPHA_LOWER _SEG14('a', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('b', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1), _SEG14('c', 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('d', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0), _SEG14('e', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0), _SEG14('f', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0), _SEG14('g', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), _SEG14('h', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('i', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0), _SEG14('j', 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0), _SEG14('k', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1), _SEG14('l', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('m', 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0), _SEG14('n', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('o', 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('p', 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0), _SEG14('q', 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), _SEG14('r', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('s', 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), _SEG14('t', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('u', 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('v', 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0), _SEG14('w', 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('x', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1), _SEG14('y', 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0), _SEG14('z', 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0),
+#define _MAP_123_126_ASCII_SEG14_SYMBOL _SEG14('{', 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0), _SEG14('|', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('}', 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1), _SEG14('~', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0),
+#define MAP_ASCII14SEG_ALPHANUM _MAP_0_32_ASCII_SEG14_NON_PRINTABLE _MAP_33_47_ASCII_SEG14_SYMBOL _MAP_48_57_ASCII_SEG14_NUMERIC _MAP_58_64_ASCII_SEG14_SYMBOL _MAP_65_90_ASCII_SEG14_ALPHA_UPPER _MAP_91_96_ASCII_SEG14_SYMBOL _MAP_97_122_ASCII_SEG14_ALPHA_LOWER _MAP_123_126_ASCII_SEG14_SYMBOL
+#define SEG14_DEFAULT_MAP(_name) SEG14_CONVERSION_MAP(_name, MAP_ASCII14SEG_ALPHANUM)
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mctp.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mctp.h
new file mode 100644
index 0000000..21a9a14
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mctp.h
@@ -0,0 +1,50 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_MCTP_H
+#define __UAPI_MCTP_H
+#include <linux/types.h>
+#include <linux/socket.h>
+#include <linux/netdevice.h>
+typedef __u8 mctp_eid_t;
+struct mctp_addr {
+  mctp_eid_t s_addr;
+};
+struct sockaddr_mctp {
+  __kernel_sa_family_t smctp_family;
+  __u16 __smctp_pad0;
+  unsigned int smctp_network;
+  struct mctp_addr smctp_addr;
+  __u8 smctp_type;
+  __u8 smctp_tag;
+  __u8 __smctp_pad1;
+};
+struct sockaddr_mctp_ext {
+  struct sockaddr_mctp smctp_base;
+  int smctp_ifindex;
+  __u8 smctp_halen;
+  __u8 __smctp_pad0[3];
+  __u8 smctp_haddr[MAX_ADDR_LEN];
+};
+#define MCTP_NET_ANY 0x0
+#define MCTP_ADDR_NULL 0x00
+#define MCTP_ADDR_ANY 0xff
+#define MCTP_TAG_MASK 0x07
+#define MCTP_TAG_OWNER 0x08
+#define MCTP_OPT_ADDR_EXT 1
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mdio.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mdio.h
index a38cbfc..d5c9da8 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mdio.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mdio.h
@@ -55,9 +55,11 @@
 #define MDIO_AN_EEE_LPABLE 61
 #define MDIO_AN_EEE_ADV2 62
 #define MDIO_AN_EEE_LPABLE2 63
+#define MDIO_AN_CTRL2 64
 #define MDIO_PMA_10GBT_SWAPPOL 130
 #define MDIO_PMA_10GBT_TXPWR 131
 #define MDIO_PMA_10GBT_SNR 133
+#define MDIO_PMA_10GBR_FSRT_CSR 147
 #define MDIO_PMA_10GBR_FECABLE 170
 #define MDIO_PCS_10GBX_STAT1 24
 #define MDIO_PCS_10GBRT_STAT1 32
@@ -104,6 +106,8 @@
 #define MDIO_PMA_SPEED_100 0x0020
 #define MDIO_PMA_SPEED_10 0x0040
 #define MDIO_PCS_SPEED_10P2B 0x0002
+#define MDIO_PCS_SPEED_2_5G 0x0040
+#define MDIO_PCS_SPEED_5G 0x0080
 #define MDIO_DEVS_PRESENT(devad) (1 << (devad))
 #define MDIO_DEVS_C22PRESENT MDIO_DEVS_PRESENT(0)
 #define MDIO_DEVS_PMAPMD MDIO_DEVS_PRESENT(MDIO_MMD_PMAPMD)
@@ -197,9 +201,11 @@
 #define MDIO_PMA_10GBT_SNR_MAX 127
 #define MDIO_PMA_10GBR_FECABLE_ABLE 0x0001
 #define MDIO_PMA_10GBR_FECABLE_ERRABLE 0x0002
+#define MDIO_PMA_10GBR_FSRT_ENABLE 0x0001
 #define MDIO_PCS_10GBRT_STAT1_BLKLK 0x0001
 #define MDIO_PCS_10GBRT_STAT2_ERR 0x00ff
 #define MDIO_PCS_10GBRT_STAT2_BER 0x3f00
+#define MDIO_AN_10GBT_CTRL_ADVFSRT2_5G 0x0020
 #define MDIO_AN_10GBT_CTRL_ADV2_5G 0x0080
 #define MDIO_AN_10GBT_CTRL_ADV5G 0x0100
 #define MDIO_AN_10GBT_CTRL_ADV10G 0x1000
@@ -226,6 +232,7 @@
 #define MDIO_EEE_100GR_DS 0x2000
 #define MDIO_EEE_2_5GT 0x0001
 #define MDIO_EEE_5GT 0x0002
+#define MDIO_AN_THP_BP2_5GT 0x0008
 #define MDIO_PMA_NG_EXTABLE_2_5GBT 0x0001
 #define MDIO_PMA_NG_EXTABLE_5GBT 0x0002
 #define MDIO_PMA_LASI_RX_PHYXSLFLT 0x0001
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mempolicy.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mempolicy.h
index 5425c0e..f92970f 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mempolicy.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mempolicy.h
@@ -25,6 +25,7 @@
   MPOL_BIND,
   MPOL_INTERLEAVE,
   MPOL_LOCAL,
+  MPOL_PREFERRED_MANY,
   MPOL_MAX,
 };
 #define MPOL_F_STATIC_NODES (1 << 15)
@@ -41,7 +42,9 @@
 #define MPOL_MF_INTERNAL (1 << 4)
 #define MPOL_MF_VALID (MPOL_MF_STRICT | MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)
 #define MPOL_F_SHARED (1 << 0)
-#define MPOL_F_LOCAL (1 << 1)
 #define MPOL_F_MOF (1 << 3)
 #define MPOL_F_MORON (1 << 4)
+#define RECLAIM_ZONE (1 << 0)
+#define RECLAIM_WRITE (1 << 1)
+#define RECLAIM_UNMAP (1 << 2)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/module.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/module.h
index f08dc67..34a4c56 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/module.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/module.h
@@ -20,4 +20,5 @@
 #define _UAPI_LINUX_MODULE_H
 #define MODULE_INIT_IGNORE_MODVERSIONS 1
 #define MODULE_INIT_IGNORE_VERMAGIC 2
+#define MODULE_INIT_COMPRESSED_FILE 4
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mount.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mount.h
index 5a112c9..2099b48 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mount.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mount.h
@@ -62,7 +62,8 @@
 #define MOVE_MOUNT_T_SYMLINKS 0x00000010
 #define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020
 #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040
-#define MOVE_MOUNT__MASK 0x00000077
+#define MOVE_MOUNT_SET_GROUP 0x00000100
+#define MOVE_MOUNT__MASK 0x00000177
 #define FSOPEN_CLOEXEC 0x00000001
 #define FSPICK_CLOEXEC 0x00000001
 #define FSPICK_SYMLINK_NOFOLLOW 0x00000002
@@ -89,6 +90,7 @@
 #define MOUNT_ATTR_STRICTATIME 0x00000020
 #define MOUNT_ATTR_NODIRATIME 0x00000080
 #define MOUNT_ATTR_IDMAP 0x00100000
+#define MOUNT_ATTR_NOSYMFOLLOW 0x00200000
 struct mount_attr {
   __u64 attr_set;
   __u64 attr_clr;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mptcp.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mptcp.h
index b15adf5..67b0ce3 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mptcp.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/mptcp.h
@@ -20,6 +20,10 @@
 #define _UAPI_MPTCP_H
 #include <linux/const.h>
 #include <linux/types.h>
+#include <linux/in.h>
+#include <linux/in6.h>
+#include <linux/socket.h>
+#include <sys/socket.h>
 #define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0)
 #define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1)
 #define MPTCP_SUBFLOW_FLAG_JOIN_REM _BITUL(2)
@@ -72,6 +76,7 @@
 #define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0)
 #define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1)
 #define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2)
+#define MPTCP_PM_ADDR_FLAG_FULLMESH (1 << 3)
 enum {
   MPTCP_PM_CMD_UNSPEC,
   MPTCP_PM_CMD_ADD_ADDR,
@@ -99,6 +104,7 @@
   __u64 mptcpi_rcv_nxt;
   __u8 mptcpi_local_addr_used;
   __u8 mptcpi_local_addr_max;
+  __u8 mptcpi_csum_enabled;
 };
 enum mptcp_event_type {
   MPTCP_EVENT_UNSPEC = 0,
@@ -128,7 +134,40 @@
   MPTCP_ATTR_FLAGS,
   MPTCP_ATTR_TIMEOUT,
   MPTCP_ATTR_IF_IDX,
+  MPTCP_ATTR_RESET_REASON,
+  MPTCP_ATTR_RESET_FLAGS,
   __MPTCP_ATTR_AFTER_LAST
 };
 #define MPTCP_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1)
+#define MPTCP_RST_EUNSPEC 0
+#define MPTCP_RST_EMPTCP 1
+#define MPTCP_RST_ERESOURCE 2
+#define MPTCP_RST_EPROHIBIT 3
+#define MPTCP_RST_EWQ2BIG 4
+#define MPTCP_RST_EBADPERF 5
+#define MPTCP_RST_EMIDDLEBOX 6
+struct mptcp_subflow_data {
+  __u32 size_subflow_data;
+  __u32 num_subflows;
+  __u32 size_kernel;
+  __u32 size_user;
+} __attribute__((aligned(8)));
+struct mptcp_subflow_addrs {
+  union {
+    __kernel_sa_family_t sa_family;
+    struct sockaddr sa_local;
+    struct sockaddr_in sin_local;
+    struct sockaddr_in6 sin6_local;
+    struct __kernel_sockaddr_storage ss_local;
+  };
+  union {
+    struct sockaddr sa_remote;
+    struct sockaddr_in sin_remote;
+    struct sockaddr_in6 sin6_remote;
+    struct __kernel_sockaddr_storage ss_remote;
+  };
+};
+#define MPTCP_INFO 1
+#define MPTCP_TCPINFO 2
+#define MPTCP_SUBFLOW_ADDRS 3
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/n_r3964.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/n_r3964.h
deleted file mode 100644
index 5a7cccc..0000000
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/n_r3964.h
+++ /dev/null
@@ -1,46 +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__LINUX_N_R3964_H__
-#define _UAPI__LINUX_N_R3964_H__
-#define R3964_ENABLE_SIGNALS 0x5301
-#define R3964_SETPRIORITY 0x5302
-#define R3964_USE_BCC 0x5303
-#define R3964_READ_TELEGRAM 0x5304
-#define R3964_MASTER 0
-#define R3964_SLAVE 1
-#define R3964_SIG_ACK 0x0001
-#define R3964_SIG_DATA 0x0002
-#define R3964_SIG_ALL 0x000f
-#define R3964_SIG_NONE 0x0000
-#define R3964_USE_SIGIO 0x1000
-enum {
-  R3964_MSG_ACK = 1,
-  R3964_MSG_DATA
-};
-#define R3964_MAX_MSG_COUNT 32
-#define R3964_OK 0
-#define R3964_TX_FAIL - 1
-#define R3964_OVERFLOW - 2
-struct r3964_client_message {
-  int msg_id;
-  int arg;
-  int error_code;
-};
-#define R3964_MTU 256
-#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
index 9faf689..dffb077 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
@@ -32,6 +32,7 @@
   NBD_ATTR_SOCKETS,
   NBD_ATTR_DEAD_CONN_TIMEOUT,
   NBD_ATTR_DEVICE_LIST,
+  NBD_ATTR_BACKEND_IDENTIFIER,
   __NBD_ATTR_MAX,
 };
 #define NBD_ATTR_MAX (__NBD_ATTR_MAX - 1)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/neighbour.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/neighbour.h
index e0e84aa..278f7d1 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/neighbour.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/neighbour.h
@@ -45,17 +45,19 @@
   NDA_PROTOCOL,
   NDA_NH_ID,
   NDA_FDB_EXT_ATTRS,
+  NDA_FLAGS_EXT,
   __NDA_MAX
 };
 #define NDA_MAX (__NDA_MAX - 1)
-#define NTF_USE 0x01
-#define NTF_SELF 0x02
-#define NTF_MASTER 0x04
-#define NTF_PROXY 0x08
-#define NTF_EXT_LEARNED 0x10
-#define NTF_OFFLOADED 0x20
-#define NTF_STICKY 0x40
-#define NTF_ROUTER 0x80
+#define NTF_USE (1 << 0)
+#define NTF_SELF (1 << 1)
+#define NTF_MASTER (1 << 2)
+#define NTF_PROXY (1 << 3)
+#define NTF_EXT_LEARNED (1 << 4)
+#define NTF_OFFLOADED (1 << 5)
+#define NTF_STICKY (1 << 6)
+#define NTF_ROUTER (1 << 7)
+#define NTF_EXT_MANAGED (1 << 0)
 #define NUD_INCOMPLETE 0x01
 #define NUD_REACHABLE 0x02
 #define NUD_STALE 0x04
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/net_tstamp.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
index 373d1bb..510c0da 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
@@ -36,15 +36,26 @@
   SOF_TIMESTAMPING_OPT_STATS = (1 << 12),
   SOF_TIMESTAMPING_OPT_PKTINFO = (1 << 13),
   SOF_TIMESTAMPING_OPT_TX_SWHW = (1 << 14),
-  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW,
+  SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
+  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
   SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | SOF_TIMESTAMPING_LAST
 };
 #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | SOF_TIMESTAMPING_TX_SOFTWARE | SOF_TIMESTAMPING_TX_SCHED | SOF_TIMESTAMPING_TX_ACK)
+struct so_timestamping {
+  int flags;
+  int bind_phc;
+};
 struct hwtstamp_config {
   int flags;
   int tx_type;
   int rx_filter;
 };
+enum hwtstamp_flags {
+  HWTSTAMP_FLAG_BONDED_PHC_INDEX = (1 << 0),
+#define HWTSTAMP_FLAG_BONDED_PHC_INDEX HWTSTAMP_FLAG_BONDED_PHC_INDEX
+  HWTSTAMP_FLAG_LAST = HWTSTAMP_FLAG_BONDED_PHC_INDEX,
+  HWTSTAMP_FLAG_MASK = (HWTSTAMP_FLAG_LAST - 1) | HWTSTAMP_FLAG_LAST
+};
 enum hwtstamp_tx_types {
   HWTSTAMP_TX_OFF,
   HWTSTAMP_TX_ON,
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter.h
index 261b979..77b8a91 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter.h
@@ -47,6 +47,7 @@
 };
 enum nf_dev_hooks {
   NF_NETDEV_INGRESS,
+  NF_NETDEV_EGRESS,
   NF_NETDEV_NUMHOOKS
 };
 enum {
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
index 0023a94..441cd60 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
@@ -223,6 +223,7 @@
 #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,
@@ -385,6 +386,7 @@
   NFT_PAYLOAD_LL_HEADER,
   NFT_PAYLOAD_NETWORK_HEADER,
   NFT_PAYLOAD_TRANSPORT_HEADER,
+  NFT_PAYLOAD_INNER_HEADER,
 };
 enum nft_payload_csum_types {
   NFT_PAYLOAD_CSUM_NONE,
@@ -414,6 +416,7 @@
   NFT_EXTHDR_OP_IPV6,
   NFT_EXTHDR_OP_TCPOPT,
   NFT_EXTHDR_OP_IPV4,
+  NFT_EXTHDR_OP_SCTP,
   __NFT_EXTHDR_OP_MAX
 };
 #define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
@@ -438,7 +441,8 @@
   NFT_META_OIF,
   NFT_META_IIFNAME,
   NFT_META_OIFNAME,
-  NFT_META_IIFTYPE,
+  NFT_META_IFTYPE,
+#define NFT_META_IIFTYPE NFT_META_IFTYPE
   NFT_META_OIFTYPE,
   NFT_META_SKUID,
   NFT_META_SKGID,
@@ -465,6 +469,7 @@
   NFT_META_TIME_HOUR,
   NFT_META_SDIF,
   NFT_META_SDIFNAME,
+  __NFT_META_IIFTYPE,
 };
 enum nft_rt_keys {
   NFT_RT_CLASSID,
@@ -512,6 +517,7 @@
   NFTA_SOCKET_UNSPEC,
   NFTA_SOCKET_KEY,
   NFTA_SOCKET_DREG,
+  NFTA_SOCKET_LEVEL,
   __NFTA_SOCKET_MAX
 };
 #define NFTA_SOCKET_MAX (__NFTA_SOCKET_MAX - 1)
@@ -519,6 +525,7 @@
   NFT_SOCKET_TRANSPARENT,
   NFT_SOCKET_MARK,
   NFT_SOCKET_WILDCARD,
+  NFT_SOCKET_CGROUPV2,
   __NFT_SOCKET_MAX
 };
 #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1)
@@ -601,6 +608,14 @@
   __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,
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
index 9145552..705de74 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
@@ -64,7 +64,8 @@
 #define NFNL_SUBSYS_CTHELPER 9
 #define NFNL_SUBSYS_NFTABLES 10
 #define NFNL_SUBSYS_NFT_COMPAT 11
-#define NFNL_SUBSYS_COUNT 12
+#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 {
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
index 4501e53..200f1a0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -67,6 +67,7 @@
   CTA_LABELS_MASK,
   CTA_SYNPROXY,
   CTA_FILTER,
+  CTA_STATUS_MASK,
   __CTA_MAX
 };
 #define CTA_MAX (__CTA_MAX - 1)
@@ -249,6 +250,7 @@
   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)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
new file mode 100644
index 0000000..ce1692c
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
index 23606df..6dd8dbc 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
@@ -26,4 +26,9 @@
   __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/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netlink.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netlink.h
index da6a46b..77825cc 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netlink.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/netlink.h
@@ -80,7 +80,7 @@
 #define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
 #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
 #define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
-#define NLMSG_DATA(nlh) ((void *) (((char *) nlh) + NLMSG_LENGTH(0)))
+#define NLMSG_DATA(nlh) ((void *) (((char *) nlh) + NLMSG_HDRLEN))
 #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), (struct nlmsghdr *) (((char *) (nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
 #define NLMSG_OK(nlh,len) ((len) >= (int) sizeof(struct nlmsghdr) && (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && (nlh)->nlmsg_len <= (len))
 #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nexthop.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nexthop.h
index f99a074..4bc9ff0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nexthop.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nexthop.h
@@ -34,6 +34,7 @@
 };
 enum {
   NEXTHOP_GRP_TYPE_MPATH,
+  NEXTHOP_GRP_TYPE_RES,
   __NEXTHOP_GRP_TYPE_MAX,
 };
 #define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
@@ -50,7 +51,28 @@
   NHA_GROUPS,
   NHA_MASTER,
   NHA_FDB,
+  NHA_RES_GROUP,
+  NHA_RES_BUCKET,
   __NHA_MAX,
 };
 #define NHA_MAX (__NHA_MAX - 1)
+enum {
+  NHA_RES_GROUP_UNSPEC,
+  NHA_RES_GROUP_PAD = NHA_RES_GROUP_UNSPEC,
+  NHA_RES_GROUP_BUCKETS,
+  NHA_RES_GROUP_IDLE_TIMER,
+  NHA_RES_GROUP_UNBALANCED_TIMER,
+  NHA_RES_GROUP_UNBALANCED_TIME,
+  __NHA_RES_GROUP_MAX,
+};
+#define NHA_RES_GROUP_MAX (__NHA_RES_GROUP_MAX - 1)
+enum {
+  NHA_RES_BUCKET_UNSPEC,
+  NHA_RES_BUCKET_PAD = NHA_RES_BUCKET_UNSPEC,
+  NHA_RES_BUCKET_INDEX,
+  NHA_RES_BUCKET_IDLE_TIME,
+  NHA_RES_BUCKET_NH_ID,
+  __NHA_RES_BUCKET_MAX,
+};
+#define NHA_RES_BUCKET_MAX (__NHA_RES_BUCKET_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nfc.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nfc.h
index 72e3520..ff980f4 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nfc.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nfc.h
@@ -139,14 +139,14 @@
 #define NFC_SE_DISABLED 0x0
 #define NFC_SE_ENABLED 0x1
 struct sockaddr_nfc {
-  sa_family_t sa_family;
+  __kernel_sa_family_t sa_family;
   __u32 dev_idx;
   __u32 target_idx;
   __u32 nfc_protocol;
 };
 #define NFC_LLCP_MAX_SERVICE_NAME 63
 struct sockaddr_nfc_llcp {
-  sa_family_t sa_family;
+  __kernel_sa_family_t sa_family;
   __u32 dev_idx;
   __u32 target_idx;
   __u32 nfc_protocol;
@@ -154,7 +154,7 @@
   __u8 ssap;
   char service_name[NFC_LLCP_MAX_SERVICE_NAME];
 ;
-  size_t service_name_len;
+  __kernel_size_t service_name_len;
 };
 #define NFC_SOCKPROTO_RAW 0
 #define NFC_SOCKPROTO_LLCP 1
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h
deleted file mode 100644
index 1a805c3..0000000
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h
+++ /dev/null
@@ -1,63 +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_LINUX_NFSD_FH_H
-#define _UAPI_LINUX_NFSD_FH_H
-#include <linux/types.h>
-#include <linux/nfs.h>
-#include <linux/nfs2.h>
-#include <linux/nfs3.h>
-#include <linux/nfs4.h>
-struct nfs_fhbase_old {
-  __u32 fb_dcookie;
-  __u32 fb_ino;
-  __u32 fb_dirino;
-  __u32 fb_dev;
-  __u32 fb_xdev;
-  __u32 fb_xino;
-  __u32 fb_generation;
-};
-struct nfs_fhbase_new {
-  __u8 fb_version;
-  __u8 fb_auth_type;
-  __u8 fb_fsid_type;
-  __u8 fb_fileid_type;
-  __u32 fb_auth[1];
-};
-struct knfsd_fh {
-  unsigned int fh_size;
-  union {
-    struct nfs_fhbase_old fh_old;
-    __u32 fh_pad[NFS4_FHSIZE / 4];
-    struct nfs_fhbase_new fh_new;
-  } fh_base;
-};
-#define ofh_dcookie fh_base.fh_old.fb_dcookie
-#define ofh_ino fh_base.fh_old.fb_ino
-#define ofh_dirino fh_base.fh_old.fb_dirino
-#define ofh_dev fh_base.fh_old.fb_dev
-#define ofh_xdev fh_base.fh_old.fb_xdev
-#define ofh_xino fh_base.fh_old.fb_xino
-#define ofh_generation fh_base.fh_old.fb_generation
-#define fh_version fh_base.fh_new.fb_version
-#define fh_fsid_type fh_base.fh_new.fb_fsid_type
-#define fh_auth_type fh_base.fh_new.fb_auth_type
-#define fh_fileid_type fh_base.fh_new.fb_fileid_type
-#define fh_fsid fh_base.fh_new.fb_auth
-#define fh_auth fh_base.fh_new.fb_auth
-#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h
new file mode 100644
index 0000000..9ade75a
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __VENDOR_CMD_INTEL_H__
+#define __VENDOR_CMD_INTEL_H__
+#define INTEL_OUI 0x001735
+enum iwl_mvm_vendor_cmd {
+  IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO = 0x2d,
+  IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP = 0x30,
+  IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT = 0x32,
+};
+enum iwl_vendor_auth_akm_mode {
+  IWL_VENDOR_AUTH_OPEN,
+  IWL_VENDOR_AUTH_RSNA = 0x6,
+  IWL_VENDOR_AUTH_RSNA_PSK,
+  IWL_VENDOR_AUTH_SAE = 0x9,
+  IWL_VENDOR_AUTH_MAX,
+};
+enum iwl_mvm_vendor_attr {
+  __IWL_MVM_VENDOR_ATTR_INVALID = 0x00,
+  IWL_MVM_VENDOR_ATTR_VIF_ADDR = 0x02,
+  IWL_MVM_VENDOR_ATTR_ADDR = 0x0a,
+  IWL_MVM_VENDOR_ATTR_SSID = 0x3d,
+  IWL_MVM_VENDOR_ATTR_STA_CIPHER = 0x51,
+  IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN = 0x64,
+  IWL_MVM_VENDOR_ATTR_AUTH_MODE = 0x65,
+  IWL_MVM_VENDOR_ATTR_CHANNEL_NUM = 0x66,
+  IWL_MVM_VENDOR_ATTR_BAND = 0x69,
+  IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL = 0x70,
+  IWL_MVM_VENDOR_ATTR_COLLOC_ADDR = 0x71,
+  NUM_IWL_MVM_VENDOR_ATTR,
+  MAX_IWL_MVM_VENDOR_ATTR = NUM_IWL_MVM_VENDOR_ATTR - 1,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nl80211.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nl80211.h
index 5181160..e902178 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nl80211.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/nl80211.h
@@ -178,6 +178,13 @@
   NL80211_CMD_UNPROT_BEACON,
   NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS,
   NL80211_CMD_SET_SAR_SPECS,
+  NL80211_CMD_OBSS_COLOR_COLLISION,
+  NL80211_CMD_COLOR_CHANGE_REQUEST,
+  NL80211_CMD_COLOR_CHANGE_STARTED,
+  NL80211_CMD_COLOR_CHANGE_ABORTED,
+  NL80211_CMD_COLOR_CHANGE_COMPLETED,
+  NL80211_CMD_SET_FILS_AAD,
+  NL80211_CMD_ASSOC_COMEBACK,
   __NL80211_CMD_AFTER_LAST,
   NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
 };
@@ -496,6 +503,14 @@
   NL80211_ATTR_RECONNECT_REQUESTED,
   NL80211_ATTR_SAR_SPEC,
   NL80211_ATTR_DISABLE_HE,
+  NL80211_ATTR_OBSS_COLOR_BITMAP,
+  NL80211_ATTR_COLOR_CHANGE_COUNT,
+  NL80211_ATTR_COLOR_CHANGE_COLOR,
+  NL80211_ATTR_COLOR_CHANGE_ELEMS,
+  NL80211_ATTR_MBSSID_CONFIG,
+  NL80211_ATTR_MBSSID_ELEMS,
+  NL80211_ATTR_RADAR_BACKGROUND,
+  NL80211_ATTR_AP_SETTINGS_FLAGS,
   __NL80211_ATTR_AFTER_LAST,
   NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
   NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
@@ -738,6 +753,7 @@
   NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
   NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
   NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
+  NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
   __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
   NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1
 };
@@ -1137,6 +1153,7 @@
   NL80211_BAND_60GHZ,
   NL80211_BAND_6GHZ,
   NL80211_BAND_S1GHZ,
+  NL80211_BAND_LC,
   NUM_NL80211_BANDS,
 };
 enum nl80211_ps_state {
@@ -1359,6 +1376,9 @@
   NL80211_TDLS_ENABLE_LINK,
   NL80211_TDLS_DISABLE_LINK,
 };
+enum nl80211_ap_sme_features {
+  NL80211_AP_SME_SA_QUERY_OFFLOAD = 1 << 0,
+};
 enum nl80211_feature_flags {
   NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
   NL80211_FEATURE_HT_IBSS = 1 << 1,
@@ -1449,6 +1469,12 @@
   NL80211_EXT_FEATURE_FILS_DISCOVERY,
   NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
   NL80211_EXT_FEATURE_BEACON_RATE_HE,
+  NL80211_EXT_FEATURE_SECURE_LTF,
+  NL80211_EXT_FEATURE_SECURE_RTT,
+  NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
+  NL80211_EXT_FEATURE_BSS_COLOR,
+  NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
+  NL80211_EXT_FEATURE_RADAR_BACKGROUND,
   NUM_NL80211_EXT_FEATURES,
   MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
 };
@@ -1533,6 +1559,7 @@
   NL80211_TDLS_PEER_HT = 1 << 0,
   NL80211_TDLS_PEER_VHT = 1 << 1,
   NL80211_TDLS_PEER_WMM = 1 << 2,
+  NL80211_TDLS_PEER_HE = 1 << 3,
 };
 enum nl80211_sched_scan_plan {
   __NL80211_SCHED_SCAN_PLAN_INVALID,
@@ -1720,6 +1747,8 @@
   NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
   NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
   NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
+  NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
+  NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
   NUM_NL80211_PMSR_FTM_REQ_ATTR,
   NL80211_PMSR_FTM_REQ_ATTR_MAX = NUM_NL80211_PMSR_FTM_REQ_ATTR - 1
 };
@@ -1827,4 +1856,18 @@
   __NL80211_SAR_ATTR_SPECS_LAST,
   NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
 };
+enum nl80211_mbssid_config_attributes {
+  __NL80211_MBSSID_CONFIG_ATTR_INVALID,
+  NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
+  NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
+  NL80211_MBSSID_CONFIG_ATTR_INDEX,
+  NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
+  NL80211_MBSSID_CONFIG_ATTR_EMA,
+  __NL80211_MBSSID_CONFIG_ATTR_LAST,
+  NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
+};
+enum nl80211_ap_settings_flags {
+  NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1 << 0,
+  NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 1 << 1,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/openvswitch.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/openvswitch.h
index 7db5cd5..1f8ae17 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/openvswitch.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/openvswitch.h
@@ -43,6 +43,7 @@
   OVS_DP_ATTR_USER_FEATURES,
   OVS_DP_ATTR_PAD,
   OVS_DP_ATTR_MASKS_CACHE_SIZE,
+  OVS_DP_ATTR_PER_CPU_PIDS,
   __OVS_DP_ATTR_MAX
 };
 #define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1)
@@ -72,6 +73,7 @@
 #define OVS_DP_F_UNALIGNED (1 << 0)
 #define OVS_DP_F_VPORT_PIDS (1 << 1)
 #define OVS_DP_F_TC_RECIRC_SHARING (1 << 2)
+#define OVS_DP_F_DISPATCH_UPCALL_PER_CPU (1 << 3)
 #define OVSP_LOCAL ((__u32) 0)
 #define OVS_PACKET_FAMILY "ovs_packet"
 #define OVS_PACKET_VERSION 0x1
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pci_regs.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pci_regs.h
index 81450a7..46612da 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pci_regs.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pci_regs.h
@@ -245,21 +245,21 @@
 #define PCI_SID_ESR_NSLOTS 0x1f
 #define PCI_SID_ESR_FIC 0x20
 #define PCI_SID_CHASSIS_NR 3
-#define PCI_MSI_FLAGS 2
+#define PCI_MSI_FLAGS 0x02
 #define PCI_MSI_FLAGS_ENABLE 0x0001
 #define PCI_MSI_FLAGS_QMASK 0x000e
 #define PCI_MSI_FLAGS_QSIZE 0x0070
 #define PCI_MSI_FLAGS_64BIT 0x0080
 #define PCI_MSI_FLAGS_MASKBIT 0x0100
 #define PCI_MSI_RFU 3
-#define PCI_MSI_ADDRESS_LO 4
-#define PCI_MSI_ADDRESS_HI 8
-#define PCI_MSI_DATA_32 8
-#define PCI_MSI_MASK_32 12
-#define PCI_MSI_PENDING_32 16
-#define PCI_MSI_DATA_64 12
-#define PCI_MSI_MASK_64 16
-#define PCI_MSI_PENDING_64 20
+#define PCI_MSI_ADDRESS_LO 0x04
+#define PCI_MSI_ADDRESS_HI 0x08
+#define PCI_MSI_DATA_32 0x08
+#define PCI_MSI_MASK_32 0x0c
+#define PCI_MSI_PENDING_32 0x10
+#define PCI_MSI_DATA_64 0x0c
+#define PCI_MSI_MASK_64 0x10
+#define PCI_MSI_PENDING_64 0x14
 #define PCI_MSIX_FLAGS 2
 #define PCI_MSIX_FLAGS_QSIZE 0x07FF
 #define PCI_MSIX_FLAGS_MASKALL 0x4000
@@ -273,10 +273,10 @@
 #define PCI_MSIX_FLAGS_BIRMASK PCI_MSIX_PBA_BIR
 #define PCI_CAP_MSIX_SIZEOF 12
 #define PCI_MSIX_ENTRY_SIZE 16
-#define PCI_MSIX_ENTRY_LOWER_ADDR 0
-#define PCI_MSIX_ENTRY_UPPER_ADDR 4
-#define PCI_MSIX_ENTRY_DATA 8
-#define PCI_MSIX_ENTRY_VECTOR_CTRL 12
+#define PCI_MSIX_ENTRY_LOWER_ADDR 0x0
+#define PCI_MSIX_ENTRY_UPPER_ADDR 0x4
+#define PCI_MSIX_ENTRY_DATA 0x8
+#define PCI_MSIX_ENTRY_VECTOR_CTRL 0xc
 #define PCI_MSIX_ENTRY_CTRL_MASKBIT 0x00000001
 #define PCI_CHSWP_CSR 2
 #define PCI_CHSWP_DHA 0x01
@@ -379,7 +379,7 @@
 #define PCI_X_BRIDGE_STATUS 4
 #define PCI_SSVID_VENDOR_ID 4
 #define PCI_SSVID_DEVICE_ID 6
-#define PCI_EXP_FLAGS 2
+#define PCI_EXP_FLAGS 0x02
 #define PCI_EXP_FLAGS_VERS 0x000f
 #define PCI_EXP_FLAGS_TYPE 0x00f0
 #define PCI_EXP_TYPE_ENDPOINT 0x0
@@ -393,7 +393,7 @@
 #define PCI_EXP_TYPE_RC_EC 0xa
 #define PCI_EXP_FLAGS_SLOT 0x0100
 #define PCI_EXP_FLAGS_IRQ 0x3e00
-#define PCI_EXP_DEVCAP 4
+#define PCI_EXP_DEVCAP 0x04
 #define PCI_EXP_DEVCAP_PAYLOAD 0x00000007
 #define PCI_EXP_DEVCAP_PHANTOM 0x00000018
 #define PCI_EXP_DEVCAP_EXT_TAG 0x00000020
@@ -406,13 +406,19 @@
 #define PCI_EXP_DEVCAP_PWR_VAL 0x03fc0000
 #define PCI_EXP_DEVCAP_PWR_SCL 0x0c000000
 #define PCI_EXP_DEVCAP_FLR 0x10000000
-#define PCI_EXP_DEVCTL 8
+#define PCI_EXP_DEVCTL 0x08
 #define PCI_EXP_DEVCTL_CERE 0x0001
 #define PCI_EXP_DEVCTL_NFERE 0x0002
 #define PCI_EXP_DEVCTL_FERE 0x0004
 #define PCI_EXP_DEVCTL_URRE 0x0008
 #define PCI_EXP_DEVCTL_RELAX_EN 0x0010
 #define PCI_EXP_DEVCTL_PAYLOAD 0x00e0
+#define PCI_EXP_DEVCTL_PAYLOAD_128B 0x0000
+#define PCI_EXP_DEVCTL_PAYLOAD_256B 0x0020
+#define PCI_EXP_DEVCTL_PAYLOAD_512B 0x0040
+#define PCI_EXP_DEVCTL_PAYLOAD_1024B 0x0060
+#define PCI_EXP_DEVCTL_PAYLOAD_2048B 0x0080
+#define PCI_EXP_DEVCTL_PAYLOAD_4096B 0x00a0
 #define PCI_EXP_DEVCTL_EXT_TAG 0x0100
 #define PCI_EXP_DEVCTL_PHANTOM 0x0200
 #define PCI_EXP_DEVCTL_AUX_PME 0x0400
@@ -425,7 +431,7 @@
 #define PCI_EXP_DEVCTL_READRQ_2048B 0x4000
 #define PCI_EXP_DEVCTL_READRQ_4096B 0x5000
 #define PCI_EXP_DEVCTL_BCR_FLR 0x8000
-#define PCI_EXP_DEVSTA 10
+#define PCI_EXP_DEVSTA 0x0a
 #define PCI_EXP_DEVSTA_CED 0x0001
 #define PCI_EXP_DEVSTA_NFED 0x0002
 #define PCI_EXP_DEVSTA_FED 0x0004
@@ -433,7 +439,7 @@
 #define PCI_EXP_DEVSTA_AUXPD 0x0010
 #define PCI_EXP_DEVSTA_TRPND 0x0020
 #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12
-#define PCI_EXP_LNKCAP 12
+#define PCI_EXP_LNKCAP 0x0c
 #define PCI_EXP_LNKCAP_SLS 0x0000000f
 #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001
 #define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002
@@ -452,7 +458,7 @@
 #define PCI_EXP_LNKCAP_DLLLARC 0x00100000
 #define PCI_EXP_LNKCAP_LBNC 0x00200000
 #define PCI_EXP_LNKCAP_PN 0xff000000
-#define PCI_EXP_LNKCTL 16
+#define PCI_EXP_LNKCTL 0x10
 #define PCI_EXP_LNKCTL_ASPMC 0x0003
 #define PCI_EXP_LNKCTL_ASPM_L0S 0x0001
 #define PCI_EXP_LNKCTL_ASPM_L1 0x0002
@@ -465,7 +471,7 @@
 #define PCI_EXP_LNKCTL_HAWD 0x0200
 #define PCI_EXP_LNKCTL_LBMIE 0x0400
 #define PCI_EXP_LNKCTL_LABIE 0x0800
-#define PCI_EXP_LNKSTA 18
+#define PCI_EXP_LNKSTA 0x12
 #define PCI_EXP_LNKSTA_CLS 0x000f
 #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001
 #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002
@@ -485,7 +491,7 @@
 #define PCI_EXP_LNKSTA_LBMS 0x4000
 #define PCI_EXP_LNKSTA_LABS 0x8000
 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20
-#define PCI_EXP_SLTCAP 20
+#define PCI_EXP_SLTCAP 0x14
 #define PCI_EXP_SLTCAP_ABP 0x00000001
 #define PCI_EXP_SLTCAP_PCP 0x00000002
 #define PCI_EXP_SLTCAP_MRLSP 0x00000004
@@ -498,7 +504,7 @@
 #define PCI_EXP_SLTCAP_EIP 0x00020000
 #define PCI_EXP_SLTCAP_NCCS 0x00040000
 #define PCI_EXP_SLTCAP_PSN 0xfff80000
-#define PCI_EXP_SLTCTL 24
+#define PCI_EXP_SLTCTL 0x18
 #define PCI_EXP_SLTCTL_ABPE 0x0001
 #define PCI_EXP_SLTCTL_PFDE 0x0002
 #define PCI_EXP_SLTCTL_MRLSCE 0x0004
@@ -520,7 +526,7 @@
 #define PCI_EXP_SLTCTL_EIC 0x0800
 #define PCI_EXP_SLTCTL_DLLSCE 0x1000
 #define PCI_EXP_SLTCTL_IBPD_DISABLE 0x4000
-#define PCI_EXP_SLTSTA 26
+#define PCI_EXP_SLTSTA 0x1a
 #define PCI_EXP_SLTSTA_ABP 0x0001
 #define PCI_EXP_SLTSTA_PFD 0x0002
 #define PCI_EXP_SLTSTA_MRLSC 0x0004
@@ -530,18 +536,18 @@
 #define PCI_EXP_SLTSTA_PDS 0x0040
 #define PCI_EXP_SLTSTA_EIS 0x0080
 #define PCI_EXP_SLTSTA_DLLSC 0x0100
-#define PCI_EXP_RTCTL 28
+#define PCI_EXP_RTCTL 0x1c
 #define PCI_EXP_RTCTL_SECEE 0x0001
 #define PCI_EXP_RTCTL_SENFEE 0x0002
 #define PCI_EXP_RTCTL_SEFEE 0x0004
 #define PCI_EXP_RTCTL_PMEIE 0x0008
 #define PCI_EXP_RTCTL_CRSSVE 0x0010
-#define PCI_EXP_RTCAP 30
+#define PCI_EXP_RTCAP 0x1e
 #define PCI_EXP_RTCAP_CRSVIS 0x0001
-#define PCI_EXP_RTSTA 32
+#define PCI_EXP_RTSTA 0x20
 #define PCI_EXP_RTSTA_PME 0x00010000
 #define PCI_EXP_RTSTA_PENDING 0x00020000
-#define PCI_EXP_DEVCAP2 36
+#define PCI_EXP_DEVCAP2 0x24
 #define PCI_EXP_DEVCAP2_COMP_TMOUT_DIS 0x00000010
 #define PCI_EXP_DEVCAP2_ARI 0x00000020
 #define PCI_EXP_DEVCAP2_ATOMIC_ROUTE 0x00000040
@@ -553,7 +559,7 @@
 #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000
 #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000
 #define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000
-#define PCI_EXP_DEVCTL2 40
+#define PCI_EXP_DEVCTL2 0x28
 #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f
 #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010
 #define PCI_EXP_DEVCTL2_ARI 0x0020
@@ -565,9 +571,9 @@
 #define PCI_EXP_DEVCTL2_OBFF_MSGA_EN 0x2000
 #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000
 #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000
-#define PCI_EXP_DEVSTA2 42
-#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44
-#define PCI_EXP_LNKCAP2 44
+#define PCI_EXP_DEVSTA2 0x2a
+#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 0x2c
+#define PCI_EXP_LNKCAP2 0x2c
 #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002
 #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004
 #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008
@@ -575,7 +581,7 @@
 #define PCI_EXP_LNKCAP2_SLS_32_0GB 0x00000020
 #define PCI_EXP_LNKCAP2_SLS_64_0GB 0x00000040
 #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100
-#define PCI_EXP_LNKCTL2 48
+#define PCI_EXP_LNKCTL2 0x30
 #define PCI_EXP_LNKCTL2_TLS 0x000f
 #define PCI_EXP_LNKCTL2_TLS_2_5GT 0x0001
 #define PCI_EXP_LNKCTL2_TLS_5_0GT 0x0002
@@ -586,12 +592,12 @@
 #define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010
 #define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380
 #define PCI_EXP_LNKCTL2_HASD 0x0020
-#define PCI_EXP_LNKSTA2 50
-#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52
-#define PCI_EXP_SLTCAP2 52
+#define PCI_EXP_LNKSTA2 0x32
+#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 0x32
+#define PCI_EXP_SLTCAP2 0x34
 #define PCI_EXP_SLTCAP2_IBPD 0x00000001
-#define PCI_EXP_SLTCTL2 56
-#define PCI_EXP_SLTSTA2 58
+#define PCI_EXP_SLTCTL2 0x38
+#define PCI_EXP_SLTSTA2 0x3a
 #define PCI_EXT_CAP_ID(header) (header & 0x0000ffff)
 #define PCI_EXT_CAP_VER(header) ((header >> 16) & 0xf)
 #define PCI_EXT_CAP_NEXT(header) ((header >> 20) & 0xffc)
@@ -631,7 +637,7 @@
 #define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PL_16GT
 #define PCI_EXT_CAP_DSN_SIZEOF 12
 #define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40
-#define PCI_ERR_UNCOR_STATUS 4
+#define PCI_ERR_UNCOR_STATUS 0x04
 #define PCI_ERR_UNC_UND 0x00000001
 #define PCI_ERR_UNC_DLP 0x00000010
 #define PCI_ERR_UNC_SURPDN 0x00000020
@@ -649,9 +655,9 @@
 #define PCI_ERR_UNC_MCBTLP 0x00800000
 #define PCI_ERR_UNC_ATOMEG 0x01000000
 #define PCI_ERR_UNC_TLPPRE 0x02000000
-#define PCI_ERR_UNCOR_MASK 8
-#define PCI_ERR_UNCOR_SEVER 12
-#define PCI_ERR_COR_STATUS 16
+#define PCI_ERR_UNCOR_MASK 0x08
+#define PCI_ERR_UNCOR_SEVER 0x0c
+#define PCI_ERR_COR_STATUS 0x10
 #define PCI_ERR_COR_RCVR 0x00000001
 #define PCI_ERR_COR_BAD_TLP 0x00000040
 #define PCI_ERR_COR_BAD_DLLP 0x00000080
@@ -660,19 +666,19 @@
 #define PCI_ERR_COR_ADV_NFAT 0x00002000
 #define PCI_ERR_COR_INTERNAL 0x00004000
 #define PCI_ERR_COR_LOG_OVER 0x00008000
-#define PCI_ERR_COR_MASK 20
-#define PCI_ERR_CAP 24
-#define PCI_ERR_CAP_FEP(x) ((x) & 31)
+#define PCI_ERR_COR_MASK 0x14
+#define PCI_ERR_CAP 0x18
+#define PCI_ERR_CAP_FEP(x) ((x) & 0x1f)
 #define PCI_ERR_CAP_ECRC_GENC 0x00000020
 #define PCI_ERR_CAP_ECRC_GENE 0x00000040
 #define PCI_ERR_CAP_ECRC_CHKC 0x00000080
 #define PCI_ERR_CAP_ECRC_CHKE 0x00000100
-#define PCI_ERR_HEADER_LOG 28
-#define PCI_ERR_ROOT_COMMAND 44
+#define PCI_ERR_HEADER_LOG 0x1c
+#define PCI_ERR_ROOT_COMMAND 0x2c
 #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001
 #define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002
 #define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004
-#define PCI_ERR_ROOT_STATUS 48
+#define PCI_ERR_ROOT_STATUS 0x30
 #define PCI_ERR_ROOT_COR_RCV 0x00000001
 #define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
 #define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
@@ -681,48 +687,48 @@
 #define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020
 #define PCI_ERR_ROOT_FATAL_RCV 0x00000040
 #define PCI_ERR_ROOT_AER_IRQ 0xf8000000
-#define PCI_ERR_ROOT_ERR_SRC 52
-#define PCI_VC_PORT_CAP1 4
+#define PCI_ERR_ROOT_ERR_SRC 0x34
+#define PCI_VC_PORT_CAP1 0x04
 #define PCI_VC_CAP1_EVCC 0x00000007
 #define PCI_VC_CAP1_LPEVCC 0x00000070
 #define PCI_VC_CAP1_ARB_SIZE 0x00000c00
-#define PCI_VC_PORT_CAP2 8
+#define PCI_VC_PORT_CAP2 0x08
 #define PCI_VC_CAP2_32_PHASE 0x00000002
 #define PCI_VC_CAP2_64_PHASE 0x00000004
 #define PCI_VC_CAP2_128_PHASE 0x00000008
 #define PCI_VC_CAP2_ARB_OFF 0xff000000
-#define PCI_VC_PORT_CTRL 12
+#define PCI_VC_PORT_CTRL 0x0c
 #define PCI_VC_PORT_CTRL_LOAD_TABLE 0x00000001
-#define PCI_VC_PORT_STATUS 14
+#define PCI_VC_PORT_STATUS 0x0e
 #define PCI_VC_PORT_STATUS_TABLE 0x00000001
-#define PCI_VC_RES_CAP 16
+#define PCI_VC_RES_CAP 0x10
 #define PCI_VC_RES_CAP_32_PHASE 0x00000002
 #define PCI_VC_RES_CAP_64_PHASE 0x00000004
 #define PCI_VC_RES_CAP_128_PHASE 0x00000008
 #define PCI_VC_RES_CAP_128_PHASE_TB 0x00000010
 #define PCI_VC_RES_CAP_256_PHASE 0x00000020
 #define PCI_VC_RES_CAP_ARB_OFF 0xff000000
-#define PCI_VC_RES_CTRL 20
+#define PCI_VC_RES_CTRL 0x14
 #define PCI_VC_RES_CTRL_LOAD_TABLE 0x00010000
 #define PCI_VC_RES_CTRL_ARB_SELECT 0x000e0000
 #define PCI_VC_RES_CTRL_ID 0x07000000
 #define PCI_VC_RES_CTRL_ENABLE 0x80000000
-#define PCI_VC_RES_STATUS 26
+#define PCI_VC_RES_STATUS 0x1a
 #define PCI_VC_RES_STATUS_TABLE 0x00000001
 #define PCI_VC_RES_STATUS_NEGO 0x00000002
 #define PCI_CAP_VC_BASE_SIZEOF 0x10
-#define PCI_CAP_VC_PER_VC_SIZEOF 0x0C
-#define PCI_PWR_DSR 4
-#define PCI_PWR_DATA 8
+#define PCI_CAP_VC_PER_VC_SIZEOF 0x0c
+#define PCI_PWR_DSR 0x04
+#define PCI_PWR_DATA 0x08
 #define PCI_PWR_DATA_BASE(x) ((x) & 0xff)
 #define PCI_PWR_DATA_SCALE(x) (((x) >> 8) & 3)
 #define PCI_PWR_DATA_PM_SUB(x) (((x) >> 10) & 7)
 #define PCI_PWR_DATA_PM_STATE(x) (((x) >> 13) & 3)
 #define PCI_PWR_DATA_TYPE(x) (((x) >> 15) & 7)
 #define PCI_PWR_DATA_RAIL(x) (((x) >> 18) & 7)
-#define PCI_PWR_CAP 12
+#define PCI_PWR_CAP 0x0c
 #define PCI_PWR_CAP_BUDGET(x) ((x) & 1)
-#define PCI_EXT_CAP_PWR_SIZEOF 16
+#define PCI_EXT_CAP_PWR_SIZEOF 0x10
 #define PCI_RCEC_RCIEP_BITMAP 4
 #define PCI_RCEC_BUSN 8
 #define PCI_RCEC_BUSN_REG_VER 0x02
@@ -822,7 +828,7 @@
 #define PCI_SRIOV_VFM_MI 0x1
 #define PCI_SRIOV_VFM_MO 0x2
 #define PCI_SRIOV_VFM_AV 0x3
-#define PCI_EXT_CAP_SRIOV_SIZEOF 64
+#define PCI_EXT_CAP_SRIOV_SIZEOF 0x40
 #define PCI_LTR_MAX_SNOOP_LAT 0x4
 #define PCI_LTR_MAX_NOSNOOP_LAT 0x6
 #define PCI_LTR_VALUE_MASK 0x000003ff
@@ -865,25 +871,25 @@
 #define PCI_TPH_LOC_MSIX 0x400
 #define PCI_TPH_CAP_ST_MASK 0x07FF0000
 #define PCI_TPH_CAP_ST_SHIFT 16
-#define PCI_TPH_BASE_SIZEOF 12
-#define PCI_EXP_DPC_CAP 4
+#define PCI_TPH_BASE_SIZEOF 0xc
+#define PCI_EXP_DPC_CAP 0x04
 #define PCI_EXP_DPC_IRQ 0x001F
 #define PCI_EXP_DPC_CAP_RP_EXT 0x0020
 #define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040
 #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080
 #define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00
 #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000
-#define PCI_EXP_DPC_CTL 6
+#define PCI_EXP_DPC_CTL 0x06
 #define PCI_EXP_DPC_CTL_EN_FATAL 0x0001
 #define PCI_EXP_DPC_CTL_EN_NONFATAL 0x0002
 #define PCI_EXP_DPC_CTL_INT_EN 0x0008
-#define PCI_EXP_DPC_STATUS 8
+#define PCI_EXP_DPC_STATUS 0x08
 #define PCI_EXP_DPC_STATUS_TRIGGER 0x0001
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN 0x0006
 #define PCI_EXP_DPC_STATUS_INTERRUPT 0x0008
 #define PCI_EXP_DPC_RP_BUSY 0x0010
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT 0x0060
-#define PCI_EXP_DPC_SOURCE_ID 10
+#define PCI_EXP_DPC_SOURCE_ID 0x0A
 #define PCI_EXP_DPC_RP_PIO_STATUS 0x0C
 #define PCI_EXP_DPC_RP_PIO_MASK 0x10
 #define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14
@@ -920,7 +926,11 @@
 #define PCI_L1SS_CTL1_LTR_L12_TH_SCALE 0xe0000000
 #define PCI_L1SS_CTL2 0x0c
 #define PCI_DVSEC_HEADER1 0x4
+#define PCI_DVSEC_HEADER1_VID(x) ((x) & 0xffff)
+#define PCI_DVSEC_HEADER1_REV(x) (((x) >> 16) & 0xf)
+#define PCI_DVSEC_HEADER1_LEN(x) (((x) >> 20) & 0xfff)
 #define PCI_DVSEC_HEADER2 0x8
+#define PCI_DVSEC_HEADER2_ID(x) ((x) & 0xffff)
 #define PCI_DLF_CAP 0x04
 #define PCI_DLF_EXCHANGE_ENABLE 0x80000000
 #define PCI_PL_16GT_LE_CTRL 0x20
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/perf_event.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/perf_event.h
index b09c5d8..b022586 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/perf_event.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/perf_event.h
@@ -30,6 +30,8 @@
   PERF_TYPE_BREAKPOINT = 5,
   PERF_TYPE_MAX,
 };
+#define PERF_PMU_TYPE_SHIFT 32
+#define PERF_HW_EVENT_MASK 0xffffffff
 enum perf_hw_id {
   PERF_COUNT_HW_CPU_CYCLES = 0,
   PERF_COUNT_HW_INSTRUCTIONS = 1,
@@ -76,6 +78,7 @@
   PERF_COUNT_SW_EMULATION_FAULTS = 8,
   PERF_COUNT_SW_DUMMY = 9,
   PERF_COUNT_SW_BPF_OUTPUT = 10,
+  PERF_COUNT_SW_CGROUP_SWITCHES = 11,
   PERF_COUNT_SW_MAX,
 };
 enum perf_event_sample_format {
@@ -197,6 +200,7 @@
 #define PERF_ATTR_SIZE_VER4 104
 #define PERF_ATTR_SIZE_VER5 112
 #define PERF_ATTR_SIZE_VER6 120
+#define PERF_ATTR_SIZE_VER7 128
 struct perf_event_attr {
   __u32 type;
   __u32 size;
@@ -207,7 +211,7 @@
   };
   __u64 sample_type;
   __u64 read_format;
-  __u64 disabled : 1, inherit : 1, pinned : 1, exclusive : 1, exclude_user : 1, exclude_kernel : 1, exclude_hv : 1, exclude_idle : 1, mmap : 1, comm : 1, freq : 1, inherit_stat : 1, enable_on_exec : 1, task : 1, watermark : 1, precise_ip : 2, mmap_data : 1, sample_id_all : 1, exclude_host : 1, exclude_guest : 1, exclude_callchain_kernel : 1, exclude_callchain_user : 1, mmap2 : 1, comm_exec : 1, use_clockid : 1, context_switch : 1, write_backward : 1, namespaces : 1, ksymbol : 1, bpf_event : 1, aux_output : 1, cgroup : 1, text_poke : 1, build_id : 1, __reserved_1 : 29;
+  __u64 disabled : 1, inherit : 1, pinned : 1, exclusive : 1, exclude_user : 1, exclude_kernel : 1, exclude_hv : 1, exclude_idle : 1, mmap : 1, comm : 1, freq : 1, inherit_stat : 1, enable_on_exec : 1, task : 1, watermark : 1, precise_ip : 2, mmap_data : 1, sample_id_all : 1, exclude_host : 1, exclude_guest : 1, exclude_callchain_kernel : 1, exclude_callchain_user : 1, mmap2 : 1, comm_exec : 1, use_clockid : 1, context_switch : 1, write_backward : 1, namespaces : 1, ksymbol : 1, bpf_event : 1, aux_output : 1, cgroup : 1, text_poke : 1, build_id : 1, inherit_thread : 1, remove_on_exec : 1, sigtrap : 1, __reserved_1 : 26;
   union {
     __u32 wakeup_events;
     __u32 wakeup_watermark;
@@ -235,6 +239,7 @@
   __u16 __reserved_2;
   __u32 aux_sample_size;
   __u32 __reserved_3;
+  __u64 sig_data;
 };
 struct perf_event_query_bpf {
   __u32 ids_len;
@@ -345,6 +350,7 @@
   PERF_RECORD_BPF_EVENT = 18,
   PERF_RECORD_CGROUP = 19,
   PERF_RECORD_TEXT_POKE = 20,
+  PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
   PERF_RECORD_MAX,
 };
 enum perf_record_ksymbol_type {
@@ -375,6 +381,9 @@
 #define PERF_AUX_FLAG_OVERWRITE 0x02
 #define PERF_AUX_FLAG_PARTIAL 0x04
 #define PERF_AUX_FLAG_COLLISION 0x08
+#define PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK 0xff00
+#define PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT 0x0000
+#define PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW 0x0100
 #define PERF_FLAG_FD_NO_GROUP (1UL << 0)
 #define PERF_FLAG_FD_OUTPUT (1UL << 1)
 #define PERF_FLAG_PID_CGROUP (1UL << 2)
@@ -383,14 +392,14 @@
 union perf_mem_data_src {
   __u64 val;
   struct {
-    __u64 mem_op : 5, mem_lvl : 14, mem_snoop : 5, mem_lock : 2, mem_dtlb : 7, mem_lvl_num : 4, mem_remote : 1, mem_snoopx : 2, mem_blk : 3, mem_rsvd : 21;
+    __u64 mem_op : 5, mem_lvl : 14, mem_snoop : 5, mem_lock : 2, mem_dtlb : 7, mem_lvl_num : 4, mem_remote : 1, mem_snoopx : 2, mem_blk : 3, mem_hops : 3, mem_rsvd : 18;
   };
 };
 #elif defined(__BIG_ENDIAN_BITFIELD)
 union perf_mem_data_src {
   __u64 val;
   struct {
-    __u64 mem_rsvd : 21, mem_blk : 3, mem_snoopx : 2, mem_remote : 1, mem_lvl_num : 4, mem_dtlb : 7, mem_lock : 2, mem_snoop : 5, mem_lvl : 14, mem_op : 5;
+    __u64 mem_rsvd : 18, mem_hops : 3, mem_blk : 3, mem_snoopx : 2, mem_remote : 1, mem_lvl_num : 4, mem_dtlb : 7, mem_lock : 2, mem_snoop : 5, mem_lvl : 14, mem_op : 5;
   };
 };
 #else
@@ -452,6 +461,11 @@
 #define PERF_MEM_BLK_DATA 0x02
 #define PERF_MEM_BLK_ADDR 0x04
 #define PERF_MEM_BLK_SHIFT 40
+#define PERF_MEM_HOPS_0 0x01
+#define PERF_MEM_HOPS_1 0x02
+#define PERF_MEM_HOPS_2 0x03
+#define PERF_MEM_HOPS_3 0x04
+#define PERF_MEM_HOPS_SHIFT 43
 #define PERF_MEM_S(a,s) (((__u64) PERF_MEM_ ##a ##_ ##s) << PERF_MEM_ ##a ##_SHIFT)
 struct perf_branch_entry {
   __u64 from;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
index 8f65681..d1e5486 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
@@ -243,6 +243,7 @@
 #define SADB_X_AALG_SHA2_512HMAC 7
 #define SADB_X_AALG_RIPEMD160HMAC 8
 #define SADB_X_AALG_AES_XCBC_MAC 9
+#define SADB_X_AALG_SM3_256HMAC 10
 #define SADB_X_AALG_NULL 251
 #define SADB_AALG_MAX 251
 #define SADB_EALG_NONE 0
@@ -261,6 +262,7 @@
 #define SADB_X_EALG_AES_GCM_ICV16 20
 #define SADB_X_EALG_CAMELLIACBC 22
 #define SADB_X_EALG_NULL_AES_GMAC 23
+#define SADB_X_EALG_SM4CBC 24
 #define SADB_EALG_MAX 253
 #define SADB_X_EALG_SERPENTCBC 252
 #define SADB_X_EALG_TWOFISHCBC 253
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pfrut.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pfrut.h
new file mode 100644
index 0000000..14f713f
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pfrut.h
@@ -0,0 +1,95 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __PFRUT_H__
+#define __PFRUT_H__
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define PFRUT_IOCTL_MAGIC 0xEE
+#define PFRU_IOC_SET_REV _IOW(PFRUT_IOCTL_MAGIC, 0x01, unsigned int)
+#define PFRU_IOC_STAGE _IOW(PFRUT_IOCTL_MAGIC, 0x02, unsigned int)
+#define PFRU_IOC_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x03, unsigned int)
+#define PFRU_IOC_STAGE_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x04, unsigned int)
+#define PFRU_IOC_QUERY_CAP _IOR(PFRUT_IOCTL_MAGIC, 0x05, struct pfru_update_cap_info)
+struct pfru_payload_hdr {
+  __u32 sig;
+  __u32 hdr_version;
+  __u32 hdr_size;
+  __u32 hw_ver;
+  __u32 rt_ver;
+  __u8 platform_id[16];
+};
+enum pfru_dsm_status {
+  DSM_SUCCEED = 0,
+  DSM_FUNC_NOT_SUPPORT = 1,
+  DSM_INVAL_INPUT = 2,
+  DSM_HARDWARE_ERR = 3,
+  DSM_RETRY_SUGGESTED = 4,
+  DSM_UNKNOWN = 5,
+  DSM_FUNC_SPEC_ERR = 6,
+};
+struct pfru_update_cap_info {
+  __u32 status;
+  __u32 update_cap;
+  __u8 code_type[16];
+  __u32 fw_version;
+  __u32 code_rt_version;
+  __u8 drv_type[16];
+  __u32 drv_rt_version;
+  __u32 drv_svn;
+  __u8 platform_id[16];
+  __u8 oem_id[16];
+  __u32 oem_info_len;
+};
+struct pfru_com_buf_info {
+  __u32 status;
+  __u32 ext_status;
+  __u64 addr_lo;
+  __u64 addr_hi;
+  __u32 buf_size;
+};
+struct pfru_updated_result {
+  __u32 status;
+  __u32 ext_status;
+  __u64 low_auth_time;
+  __u64 high_auth_time;
+  __u64 low_exec_time;
+  __u64 high_exec_time;
+};
+struct pfrt_log_data_info {
+  __u32 status;
+  __u32 ext_status;
+  __u64 chunk1_addr_lo;
+  __u64 chunk1_addr_hi;
+  __u64 chunk2_addr_lo;
+  __u64 chunk2_addr_hi;
+  __u32 max_data_size;
+  __u32 chunk1_size;
+  __u32 chunk2_size;
+  __u32 rollover_cnt;
+  __u32 reset_cnt;
+};
+struct pfrt_log_info {
+  __u32 log_level;
+  __u32 log_type;
+  __u32 log_revid;
+};
+#define PFRT_LOG_IOC_SET_INFO _IOW(PFRUT_IOCTL_MAGIC, 0x06, struct pfrt_log_info)
+#define PFRT_LOG_IOC_GET_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x07, struct pfrt_log_info)
+#define PFRT_LOG_IOC_GET_DATA_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x08, struct pfrt_log_data_info)
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pkt_cls.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
index 45dca35..9fd89e0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
@@ -32,9 +32,12 @@
   TCA_ACT_FLAGS,
   TCA_ACT_HW_STATS,
   TCA_ACT_USED_HW_STATS,
+  TCA_ACT_IN_HW_COUNT,
   __TCA_ACT_MAX
 };
-#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1
+#define TCA_ACT_FLAGS_NO_PERCPU_STATS (1 << 0)
+#define TCA_ACT_FLAGS_SKIP_HW (1 << 1)
+#define TCA_ACT_FLAGS_SKIP_SW (1 << 2)
 #define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0)
 #define TCA_ACT_HW_STATS_DELAYED (1 << 1)
 #define TCA_ACT_MAX __TCA_ACT_MAX
@@ -146,6 +149,8 @@
   TCA_POLICE_PAD,
   TCA_POLICE_RATE64,
   TCA_POLICE_PEAKRATE64,
+  TCA_POLICE_PKTRATE64,
+  TCA_POLICE_PKTBURST64,
   __TCA_POLICE_MAX
 #define TCA_POLICE_RESULT TCA_POLICE_RESULT
 };
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pkt_sched.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
index d0541fc..e298b74 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
@@ -613,6 +613,7 @@
   __u32 dropping;
   __u32 ce_mark;
 };
+#define FQ_CODEL_QUANTUM_MAX (1 << 20)
 enum {
   TCA_FQ_CODEL_UNSPEC,
   TCA_FQ_CODEL_TARGET,
@@ -624,6 +625,8 @@
   TCA_FQ_CODEL_CE_THRESHOLD,
   TCA_FQ_CODEL_DROP_BATCH_SIZE,
   TCA_FQ_CODEL_MEMORY_LIMIT,
+  TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
+  TCA_FQ_CODEL_CE_THRESHOLD_MASK,
   __TCA_FQ_CODEL_MAX
 };
 #define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/prctl.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/prctl.h
index 6095881..9b4c695 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/prctl.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/prctl.h
@@ -138,6 +138,7 @@
 #define PR_SET_SPECULATION_CTRL 53
 #define PR_SPEC_STORE_BYPASS 0
 #define PR_SPEC_INDIRECT_BRANCH 1
+#define PR_SPEC_L1D_FLUSH 2
 #define PR_SPEC_NOT_AFFECTED 0
 #define PR_SPEC_PRCTL (1UL << 0)
 #define PR_SPEC_ENABLE (1UL << 1)
@@ -153,13 +154,13 @@
 #define PR_SET_TAGGED_ADDR_CTRL 55
 #define PR_GET_TAGGED_ADDR_CTRL 56
 #define PR_TAGGED_ADDR_ENABLE (1UL << 0)
-#define PR_MTE_TCF_SHIFT 1
-#define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT)
+#define PR_MTE_TCF_NONE 0UL
+#define PR_MTE_TCF_SYNC (1UL << 1)
+#define PR_MTE_TCF_ASYNC (1UL << 2)
+#define PR_MTE_TCF_MASK (PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC)
 #define PR_MTE_TAG_SHIFT 3
 #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
+#define PR_MTE_TCF_SHIFT 1
 #define PR_SET_IO_FLUSHER 57
 #define PR_GET_IO_FLUSHER 58
 #define PR_SET_SYSCALL_USER_DISPATCH 59
@@ -167,6 +168,17 @@
 #define PR_SYS_DISPATCH_ON 1
 #define SYSCALL_DISPATCH_FILTER_ALLOW 0
 #define SYSCALL_DISPATCH_FILTER_BLOCK 1
+#define PR_PAC_SET_ENABLED_KEYS 60
+#define PR_PAC_GET_ENABLED_KEYS 61
+#define PR_SCHED_CORE 62
+#define PR_SCHED_CORE_GET 0
+#define PR_SCHED_CORE_CREATE 1
+#define PR_SCHED_CORE_SHARE_TO 2
+#define PR_SCHED_CORE_SHARE_FROM 3
+#define PR_SCHED_CORE_MAX 4
+#define PR_SCHED_CORE_SCOPE_THREAD 0
+#define PR_SCHED_CORE_SCOPE_THREAD_GROUP 1
+#define PR_SCHED_CORE_SCOPE_PROCESS_GROUP 2
 #define PR_SET_VMA 0x53564d41
 #define PR_SET_VMA_ANON_NAME 0
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/psample.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/psample.h
index dc67445..efb1c24 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/psample.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/psample.h
@@ -28,6 +28,12 @@
   PSAMPLE_ATTR_DATA,
   PSAMPLE_ATTR_GROUP_REFCOUNT,
   PSAMPLE_ATTR_TUNNEL,
+  PSAMPLE_ATTR_PAD,
+  PSAMPLE_ATTR_OUT_TC,
+  PSAMPLE_ATTR_OUT_TC_OCC,
+  PSAMPLE_ATTR_LATENCY,
+  PSAMPLE_ATTR_TIMESTAMP,
+  PSAMPLE_ATTR_PROTO,
   __PSAMPLE_ATTR_MAX
 };
 enum psample_command {
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ptrace.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ptrace.h
index 5de0998..4bfa59a 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ptrace.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/ptrace.h
@@ -82,6 +82,14 @@
     } seccomp;
   };
 };
+#define PTRACE_GET_RSEQ_CONFIGURATION 0x420f
+struct ptrace_rseq_configuration {
+  __u64 rseq_abi_pointer;
+  __u32 rseq_abi_size;
+  __u32 signature;
+  __u32 flags;
+  __u32 pad;
+};
 #define PTRACE_EVENTMSG_SYSCALL_ENTRY 1
 #define PTRACE_EVENTMSG_SYSCALL_EXIT 2
 #define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rds.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rds.h
index bc29233..7006c87 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rds.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rds.h
@@ -217,7 +217,7 @@
   __u64 flags;
 };
 struct rds_get_mr_for_dest_args {
-  struct sockaddr_storage dest_addr;
+  struct __kernel_sockaddr_storage dest_addr;
   struct rds_iovec vec;
   __u64 cookie_addr;
   __u64 flags;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/resource.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/resource.h
index d76c273..6f531a0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/resource.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/resource.h
@@ -57,6 +57,6 @@
 #define PRIO_PGRP 1
 #define PRIO_USER 2
 #define _STK_LIM (8 * 1024 * 1024)
-#define MLOCK_LIMIT ((PAGE_SIZE > 64 * 1024) ? PAGE_SIZE : 64 * 1024)
+#define MLOCK_LIMIT (8 * 1024 * 1024)
 #include <asm/resource.h>
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rpmsg.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rpmsg.h
index 77f05e6..c5b5a76 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rpmsg.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rpmsg.h
@@ -20,6 +20,7 @@
 #define _UAPI_RPMSG_H_
 #include <linux/ioctl.h>
 #include <linux/types.h>
+#define RPMSG_ADDR_ANY 0xFFFFFFFF
 struct rpmsg_endpoint_info {
   char name[32];
   __u32 src;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rtc.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rtc.h
index 7f38483..cf5f22a 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rtc.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rtc.h
@@ -20,6 +20,7 @@
 #define _UAPI_LINUX_RTC_H_
 #include <linux/const.h>
 #include <linux/ioctl.h>
+#include <linux/types.h>
 struct rtc_time {
   int tm_sec;
   int tm_min;
@@ -45,6 +46,16 @@
   int pll_negmult;
   long pll_clock;
 };
+struct rtc_param {
+  __u64 param;
+  union {
+    __u64 uvalue;
+    __s64 svalue;
+    __u64 ptr;
+  };
+  __u32 index;
+  __u32 __pad;
+};
 #define RTC_AIE_ON _IO('p', 0x01)
 #define RTC_AIE_OFF _IO('p', 0x02)
 #define RTC_UIE_ON _IO('p', 0x03)
@@ -65,6 +76,8 @@
 #define RTC_WKALM_RD _IOR('p', 0x10, struct rtc_wkalrm)
 #define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info)
 #define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info)
+#define RTC_PARAM_GET _IOW('p', 0x13, struct rtc_param)
+#define RTC_PARAM_SET _IOW('p', 0x14, struct rtc_param)
 #define RTC_VL_DATA_INVALID _BITUL(0)
 #define RTC_VL_BACKUP_LOW _BITUL(1)
 #define RTC_VL_BACKUP_EMPTY _BITUL(2)
@@ -79,6 +92,17 @@
 #define RTC_FEATURE_ALARM 0
 #define RTC_FEATURE_ALARM_RES_MINUTE 1
 #define RTC_FEATURE_NEED_WEEK_DAY 2
-#define RTC_FEATURE_CNT 3
+#define RTC_FEATURE_ALARM_RES_2S 3
+#define RTC_FEATURE_UPDATE_INTERRUPT 4
+#define RTC_FEATURE_CORRECTION 5
+#define RTC_FEATURE_BACKUP_SWITCH_MODE 6
+#define RTC_FEATURE_CNT 7
+#define RTC_PARAM_FEATURES 0
+#define RTC_PARAM_CORRECTION 1
+#define RTC_PARAM_BACKUP_SWITCH_MODE 2
+#define RTC_BSM_DISABLED 0
+#define RTC_BSM_DIRECT 1
+#define RTC_BSM_LEVEL 2
+#define RTC_BSM_STANDBY 3
 #define RTC_MAX_FREQ 8192
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rtnetlink.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
index 22f8f1c..91c3ee4 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
@@ -157,6 +157,12 @@
 #define RTM_DELVLAN RTM_DELVLAN
   RTM_GETVLAN,
 #define RTM_GETVLAN RTM_GETVLAN
+  RTM_NEWNEXTHOPBUCKET = 116,
+#define RTM_NEWNEXTHOPBUCKET RTM_NEWNEXTHOPBUCKET
+  RTM_DELNEXTHOPBUCKET,
+#define RTM_DELNEXTHOPBUCKET RTM_DELNEXTHOPBUCKET
+  RTM_GETNEXTHOPBUCKET,
+#define RTM_GETNEXTHOPBUCKET RTM_GETNEXTHOPBUCKET
   __RTM_MAX,
 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
 };
@@ -219,6 +225,7 @@
 #define RTPROT_MROUTED 17
 #define RTPROT_KEEPALIVED 18
 #define RTPROT_BABEL 42
+#define RTPROT_OPENR 99
 #define RTPROT_BGP 186
 #define RTPROT_ISIS 187
 #define RTPROT_OSPF 188
@@ -552,6 +559,8 @@
 #define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP
   RTNLGRP_BRVLAN,
 #define RTNLGRP_BRVLAN RTNLGRP_BRVLAN
+  RTNLGRP_MCTP_IFADDR,
+#define RTNLGRP_MCTP_IFADDR RTNLGRP_MCTP_IFADDR
   __RTNLGRP_MAX
 };
 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/sctp.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/sctp.h
index 883920b..765d6c9 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/sctp.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/sctp.h
@@ -94,6 +94,7 @@
 #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
 #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
 #define SCTP_REMOTE_UDP_ENCAPS_PORT 132
+#define SCTP_PLPMTUD_PROBE_INTERVAL 133
 #define SCTP_PR_SCTP_NONE 0x0000
 #define SCTP_PR_SCTP_TTL 0x0010
 #define SCTP_PR_SCTP_RTX 0x0020
@@ -710,4 +711,9 @@
   SCTP_SS_RR,
   SCTP_SS_MAX = SCTP_SS_RR
 };
+struct sctp_probeinterval {
+  sctp_assoc_t spi_assoc_id;
+  struct sockaddr_storage spi_address;
+  __u32 spi_interval;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/seccomp.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/seccomp.h
index 0ae0e12..e58b421 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/seccomp.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/seccomp.h
@@ -69,6 +69,7 @@
   __u32 flags;
 };
 #define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0)
+#define SECCOMP_ADDFD_FLAG_SEND (1UL << 1)
 struct seccomp_notif_addfd {
   __u64 id;
   __u32 flags;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/seg6_local.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/seg6_local.h
index 9508eca..61a8d97 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/seg6_local.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/seg6_local.h
@@ -30,6 +30,7 @@
   SEG6_LOCAL_OIF,
   SEG6_LOCAL_BPF,
   SEG6_LOCAL_VRFTABLE,
+  SEG6_LOCAL_COUNTERS,
   __SEG6_LOCAL_MAX,
 };
 #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
@@ -50,6 +51,7 @@
   SEG6_LOCAL_ACTION_END_AS = 13,
   SEG6_LOCAL_ACTION_END_AM = 14,
   SEG6_LOCAL_ACTION_END_BPF = 15,
+  SEG6_LOCAL_ACTION_END_DT46 = 16,
   __SEG6_LOCAL_ACTION_MAX,
 };
 #define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1)
@@ -60,4 +62,13 @@
   __SEG6_LOCAL_BPF_PROG_MAX,
 };
 #define SEG6_LOCAL_BPF_PROG_MAX (__SEG6_LOCAL_BPF_PROG_MAX - 1)
+enum {
+  SEG6_LOCAL_CNT_UNSPEC,
+  SEG6_LOCAL_CNT_PAD,
+  SEG6_LOCAL_CNT_PACKETS,
+  SEG6_LOCAL_CNT_BYTES,
+  SEG6_LOCAL_CNT_ERRORS,
+  __SEG6_LOCAL_CNT_MAX,
+};
+#define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/smc.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/smc.h
index 88eef62..01494da 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/smc.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/smc.h
@@ -38,6 +38,9 @@
 #define SMC_GENL_FAMILY_NAME "SMC_GEN_NETLINK"
 #define SMC_GENL_FAMILY_VERSION 1
 #define SMC_PCI_ID_STR_LEN 16
+#define SMC_MAX_HOSTNAME_LEN 32
+#define SMC_MAX_UEID 4
+#define SMC_MAX_EID_LEN 32
 enum {
   SMC_NETLINK_GET_SYS_INFO = 1,
   SMC_NETLINK_GET_LGR_SMCR,
@@ -45,6 +48,15 @@
   SMC_NETLINK_GET_LGR_SMCD,
   SMC_NETLINK_GET_DEV_SMCD,
   SMC_NETLINK_GET_DEV_SMCR,
+  SMC_NETLINK_GET_STATS,
+  SMC_NETLINK_GET_FBACK_STATS,
+  SMC_NETLINK_DUMP_UEID,
+  SMC_NETLINK_ADD_UEID,
+  SMC_NETLINK_REMOVE_UEID,
+  SMC_NETLINK_FLUSH_UEID,
+  SMC_NETLINK_DUMP_SEID,
+  SMC_NETLINK_ENABLE_SEID,
+  SMC_NETLINK_DISABLE_SEID,
 };
 enum {
   SMC_GEN_UNSPEC,
@@ -54,6 +66,8 @@
   SMC_GEN_LGR_SMCD,
   SMC_GEN_DEV_SMCD,
   SMC_GEN_DEV_SMCR,
+  SMC_GEN_STATS,
+  SMC_GEN_FBACK_STATS,
   __SMC_GEN_MAX,
   SMC_GEN_MAX = __SMC_GEN_MAX - 1
 };
@@ -64,6 +78,7 @@
   SMC_NLA_SYS_IS_ISM_V2,
   SMC_NLA_SYS_LOCAL_HOST,
   SMC_NLA_SYS_SEID,
+  SMC_NLA_SYS_IS_SMCR_V2,
   __SMC_NLA_SYS_MAX,
   SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1
 };
@@ -73,6 +88,14 @@
   SMC_NLA_LGR_V2_OS,
   SMC_NLA_LGR_V2_NEG_EID,
   SMC_NLA_LGR_V2_PEER_HOST,
+  __SMC_NLA_LGR_V2_MAX,
+  SMC_NLA_LGR_V2_MAX = __SMC_NLA_LGR_V2_MAX - 1
+};
+enum {
+  SMC_NLA_LGR_R_V2_UNSPEC,
+  SMC_NLA_LGR_R_V2_DIRECT,
+  __SMC_NLA_LGR_R_V2_MAX,
+  SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1
 };
 enum {
   SMC_NLA_LGR_R_UNSPEC,
@@ -82,6 +105,10 @@
   SMC_NLA_LGR_R_PNETID,
   SMC_NLA_LGR_R_VLAN_ID,
   SMC_NLA_LGR_R_CONNS_NUM,
+  SMC_NLA_LGR_R_V2_COMMON,
+  SMC_NLA_LGR_R_V2,
+  SMC_NLA_LGR_R_NET_COOKIE,
+  SMC_NLA_LGR_R_PAD,
   __SMC_NLA_LGR_R_MAX,
   SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1
 };
@@ -110,7 +137,7 @@
   SMC_NLA_LGR_D_PNETID,
   SMC_NLA_LGR_D_CHID,
   SMC_NLA_LGR_D_PAD,
-  SMC_NLA_LGR_V2,
+  SMC_NLA_LGR_D_V2_COMMON,
   __SMC_NLA_LGR_D_MAX,
   SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
 };
@@ -140,4 +167,86 @@
   __SMC_NLA_DEV_MAX,
   SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
 };
+enum {
+  SMC_NLA_STATS_PLOAD_PAD,
+  SMC_NLA_STATS_PLOAD_8K,
+  SMC_NLA_STATS_PLOAD_16K,
+  SMC_NLA_STATS_PLOAD_32K,
+  SMC_NLA_STATS_PLOAD_64K,
+  SMC_NLA_STATS_PLOAD_128K,
+  SMC_NLA_STATS_PLOAD_256K,
+  SMC_NLA_STATS_PLOAD_512K,
+  SMC_NLA_STATS_PLOAD_1024K,
+  SMC_NLA_STATS_PLOAD_G_1024K,
+  __SMC_NLA_STATS_PLOAD_MAX,
+  SMC_NLA_STATS_PLOAD_MAX = __SMC_NLA_STATS_PLOAD_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_RMB_PAD,
+  SMC_NLA_STATS_RMB_SIZE_SM_PEER_CNT,
+  SMC_NLA_STATS_RMB_SIZE_SM_CNT,
+  SMC_NLA_STATS_RMB_FULL_PEER_CNT,
+  SMC_NLA_STATS_RMB_FULL_CNT,
+  SMC_NLA_STATS_RMB_REUSE_CNT,
+  SMC_NLA_STATS_RMB_ALLOC_CNT,
+  SMC_NLA_STATS_RMB_DGRADE_CNT,
+  __SMC_NLA_STATS_RMB_MAX,
+  SMC_NLA_STATS_RMB_MAX = __SMC_NLA_STATS_RMB_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_T_PAD,
+  SMC_NLA_STATS_T_TX_RMB_SIZE,
+  SMC_NLA_STATS_T_RX_RMB_SIZE,
+  SMC_NLA_STATS_T_TXPLOAD_SIZE,
+  SMC_NLA_STATS_T_RXPLOAD_SIZE,
+  SMC_NLA_STATS_T_TX_RMB_STATS,
+  SMC_NLA_STATS_T_RX_RMB_STATS,
+  SMC_NLA_STATS_T_CLNT_V1_SUCC,
+  SMC_NLA_STATS_T_CLNT_V2_SUCC,
+  SMC_NLA_STATS_T_SRV_V1_SUCC,
+  SMC_NLA_STATS_T_SRV_V2_SUCC,
+  SMC_NLA_STATS_T_SENDPAGE_CNT,
+  SMC_NLA_STATS_T_SPLICE_CNT,
+  SMC_NLA_STATS_T_CORK_CNT,
+  SMC_NLA_STATS_T_NDLY_CNT,
+  SMC_NLA_STATS_T_URG_DATA_CNT,
+  SMC_NLA_STATS_T_RX_BYTES,
+  SMC_NLA_STATS_T_TX_BYTES,
+  SMC_NLA_STATS_T_RX_CNT,
+  SMC_NLA_STATS_T_TX_CNT,
+  __SMC_NLA_STATS_T_MAX,
+  SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_PAD,
+  SMC_NLA_STATS_SMCD_TECH,
+  SMC_NLA_STATS_SMCR_TECH,
+  SMC_NLA_STATS_CLNT_HS_ERR_CNT,
+  SMC_NLA_STATS_SRV_HS_ERR_CNT,
+  __SMC_NLA_STATS_MAX,
+  SMC_NLA_STATS_MAX = __SMC_NLA_STATS_MAX - 1
+};
+enum {
+  SMC_NLA_FBACK_STATS_PAD,
+  SMC_NLA_FBACK_STATS_TYPE,
+  SMC_NLA_FBACK_STATS_SRV_CNT,
+  SMC_NLA_FBACK_STATS_CLNT_CNT,
+  SMC_NLA_FBACK_STATS_RSN_CODE,
+  SMC_NLA_FBACK_STATS_RSN_CNT,
+  __SMC_NLA_FBACK_STATS_MAX,
+  SMC_NLA_FBACK_STATS_MAX = __SMC_NLA_FBACK_STATS_MAX - 1
+};
+enum {
+  SMC_NLA_EID_TABLE_UNSPEC,
+  SMC_NLA_EID_TABLE_ENTRY,
+  __SMC_NLA_EID_TABLE_MAX,
+  SMC_NLA_EID_TABLE_MAX = __SMC_NLA_EID_TABLE_MAX - 1
+};
+enum {
+  SMC_NLA_SEID_UNSPEC,
+  SMC_NLA_SEID_ENTRY,
+  SMC_NLA_SEID_ENABLED,
+  __SMC_NLA_SEID_TABLE_MAX,
+  SMC_NLA_SEID_TABLE_MAX = __SMC_NLA_SEID_TABLE_MAX - 1
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/snmp.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/snmp.h
index 40e8fa5..a503a7e 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/snmp.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/snmp.h
@@ -257,6 +257,8 @@
   LINUX_MIB_TCPDUPLICATEDATAREHASH,
   LINUX_MIB_TCPDSACKRECVSEGS,
   LINUX_MIB_TCPDSACKIGNOREDDUBIOUS,
+  LINUX_MIB_TCPMIGRATEREQSUCCESS,
+  LINUX_MIB_TCPMIGRATEREQFAILURE,
   __LINUX_MIB_MAX
 };
 enum {
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/socket.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/socket.h
index 608d31f..be16548 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/socket.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/socket.h
@@ -20,7 +20,7 @@
 #define _UAPI_LINUX_SOCKET_H
 #define _K_SS_MAXSIZE 128
 typedef unsigned short __kernel_sa_family_t;
-struct sockaddr_storage {
+struct __kernel_sockaddr_storage {
   union {
     struct {
       __kernel_sa_family_t ss_family;
@@ -29,4 +29,7 @@
     void * __align;
   };
 };
+#define SOCK_SNDBUF_LOCK 1
+#define SOCK_RCVBUF_LOCK 2
+#define SOCK_BUF_LOCK_MASK (SOCK_SNDBUF_LOCK | SOCK_RCVBUF_LOCK)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/stddef.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/stddef.h
index 2a5fd95..d5cdf80 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/stddef.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/stddef.h
@@ -20,3 +20,5 @@
 #ifndef __always_inline
 #define __always_inline inline
 #endif
+#define __struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct TAG { MEMBERS } ATTRS NAME; }
+#define __DECLARE_FLEX_ARRAY(TYPE,NAME) struct { struct { } __empty_ ##NAME; TYPE NAME[]; }
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
index 25bfd8d..2e097f0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
@@ -42,5 +42,34 @@
     __u8 __pad[6];
   } response;
 } __attribute__((__packed__));
+struct ssam_cdev_notifier_desc {
+  __s32 priority;
+  __u8 target_category;
+} __attribute__((__packed__));
+struct ssam_cdev_event_desc {
+  struct {
+    __u8 target_category;
+    __u8 target_id;
+    __u8 cid_enable;
+    __u8 cid_disable;
+  } reg;
+  struct {
+    __u8 target_category;
+    __u8 instance;
+  } id;
+  __u8 flags;
+} __attribute__((__packed__));
+struct ssam_cdev_event {
+  __u8 target_category;
+  __u8 target_id;
+  __u8 command_id;
+  __u8 instance_id;
+  __u16 length;
+  __u8 data[];
+} __attribute__((__packed__));
 #define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request)
+#define SSAM_CDEV_NOTIF_REGISTER _IOW(0xA5, 2, struct ssam_cdev_notifier_desc)
+#define SSAM_CDEV_NOTIF_UNREGISTER _IOW(0xA5, 3, struct ssam_cdev_notifier_desc)
+#define SSAM_CDEV_EVENT_ENABLE _IOW(0xA5, 4, struct ssam_cdev_event_desc)
+#define SSAM_CDEV_EVENT_DISABLE _IOW(0xA5, 5, struct ssam_cdev_event_desc)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h
new file mode 100644
index 0000000..dde5ad3
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_SURFACE_AGGREGATOR_DTX_H
+#define _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define SDTX_CATEGORY_STATUS 0x0000
+#define SDTX_CATEGORY_RUNTIME_ERROR 0x1000
+#define SDTX_CATEGORY_HARDWARE_ERROR 0x2000
+#define SDTX_CATEGORY_UNKNOWN 0xf000
+#define SDTX_CATEGORY_MASK 0xf000
+#define SDTX_CATEGORY(value) ((value) & SDTX_CATEGORY_MASK)
+#define SDTX_STATUS(code) ((code) | SDTX_CATEGORY_STATUS)
+#define SDTX_ERR_RT(code) ((code) | SDTX_CATEGORY_RUNTIME_ERROR)
+#define SDTX_ERR_HW(code) ((code) | SDTX_CATEGORY_HARDWARE_ERROR)
+#define SDTX_UNKNOWN(code) ((code) | SDTX_CATEGORY_UNKNOWN)
+#define SDTX_SUCCESS(value) (SDTX_CATEGORY(value) == SDTX_CATEGORY_STATUS)
+#define SDTX_LATCH_CLOSED SDTX_STATUS(0x00)
+#define SDTX_LATCH_OPENED SDTX_STATUS(0x01)
+#define SDTX_BASE_DETACHED SDTX_STATUS(0x00)
+#define SDTX_BASE_ATTACHED SDTX_STATUS(0x01)
+#define SDTX_DETACH_NOT_FEASIBLE SDTX_ERR_RT(0x01)
+#define SDTX_DETACH_TIMEDOUT SDTX_ERR_RT(0x02)
+#define SDTX_ERR_FAILED_TO_OPEN SDTX_ERR_HW(0x01)
+#define SDTX_ERR_FAILED_TO_REMAIN_OPEN SDTX_ERR_HW(0x02)
+#define SDTX_ERR_FAILED_TO_CLOSE SDTX_ERR_HW(0x03)
+#define SDTX_DEVICE_TYPE_HID 0x0100
+#define SDTX_DEVICE_TYPE_SSH 0x0200
+#define SDTX_DEVICE_TYPE_MASK 0x0f00
+#define SDTX_DEVICE_TYPE(value) ((value) & SDTX_DEVICE_TYPE_MASK)
+#define SDTX_BASE_TYPE_HID(id) ((id) | SDTX_DEVICE_TYPE_HID)
+#define SDTX_BASE_TYPE_SSH(id) ((id) | SDTX_DEVICE_TYPE_SSH)
+enum sdtx_device_mode {
+  SDTX_DEVICE_MODE_TABLET = 0x00,
+  SDTX_DEVICE_MODE_LAPTOP = 0x01,
+  SDTX_DEVICE_MODE_STUDIO = 0x02,
+};
+struct sdtx_event {
+  __u16 length;
+  __u16 code;
+  __u8 data[];
+} __attribute__((__packed__));
+enum sdtx_event_code {
+  SDTX_EVENT_REQUEST = 1,
+  SDTX_EVENT_CANCEL = 2,
+  SDTX_EVENT_BASE_CONNECTION = 3,
+  SDTX_EVENT_LATCH_STATUS = 4,
+  SDTX_EVENT_DEVICE_MODE = 5,
+};
+struct sdtx_base_info {
+  __u16 state;
+  __u16 base_id;
+} __attribute__((__packed__));
+#define SDTX_IOCTL_EVENTS_ENABLE _IO(0xa5, 0x21)
+#define SDTX_IOCTL_EVENTS_DISABLE _IO(0xa5, 0x22)
+#define SDTX_IOCTL_LATCH_LOCK _IO(0xa5, 0x23)
+#define SDTX_IOCTL_LATCH_UNLOCK _IO(0xa5, 0x24)
+#define SDTX_IOCTL_LATCH_REQUEST _IO(0xa5, 0x25)
+#define SDTX_IOCTL_LATCH_CONFIRM _IO(0xa5, 0x26)
+#define SDTX_IOCTL_LATCH_HEARTBEAT _IO(0xa5, 0x27)
+#define SDTX_IOCTL_LATCH_CANCEL _IO(0xa5, 0x28)
+#define SDTX_IOCTL_GET_BASE_INFO _IOR(0xa5, 0x29, struct sdtx_base_info)
+#define SDTX_IOCTL_GET_DEVICE_MODE _IOR(0xa5, 0x2a, __u16)
+#define SDTX_IOCTL_GET_LATCH_STATUS _IOR(0xa5, 0x2b, __u16)
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/sysctl.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/sysctl.h
index ebaf8a9..ae9c2ba 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/sysctl.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/sysctl.h
@@ -407,6 +407,7 @@
   NET_IPV4_CONF_PROMOTE_SECONDARIES = 20,
   NET_IPV4_CONF_ARP_ACCEPT = 21,
   NET_IPV4_CONF_ARP_NOTIFY = 22,
+  NET_IPV4_CONF_ARP_EVICT_NOCARRIER = 23,
 };
 enum {
   NET_IPV4_NF_CONNTRACK_MAX = 1,
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/target_core_user.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/target_core_user.h
index e0b9f22..dcba00e 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/target_core_user.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/target_core_user.h
@@ -26,6 +26,7 @@
 #define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0)
 #define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1)
 #define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2)
+#define TCMU_MAILBOX_FLAG_CAP_KEEP_BUF (1 << 3)
 struct tcmu_mailbox {
   __u16 version;
   __u16 flags;
@@ -45,6 +46,7 @@
   __u8 kflags;
 #define TCMU_UFLAG_UNKNOWN_OP 0x1
 #define TCMU_UFLAG_READ_LEN 0x2
+#define TCMU_UFLAG_KEEP_BUF 0x4
   __u8 uflags;
 } __packed;
 #define TCMU_OP_MASK 0x7
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/taskstats.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/taskstats.h
index 5f9d0cc..efa5b4a 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/taskstats.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/taskstats.h
@@ -19,7 +19,7 @@
 #ifndef _LINUX_TASKSTATS_H
 #define _LINUX_TASKSTATS_H
 #include <linux/types.h>
-#define TASKSTATS_VERSION 10
+#define TASKSTATS_VERSION 11
 #define TS_COMM_LEN 32
 struct taskstats {
   __u16 version;
@@ -69,6 +69,8 @@
   __u64 thrashing_count;
   __u64 thrashing_delay_total;
   __u64 ac_btime64;
+  __u64 compact_count;
+  __u64 compact_delay_total;
 };
 enum {
   TASKSTATS_CMD_UNSPEC = 0,
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
index 0a53b06..f0cd928 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
@@ -23,6 +23,7 @@
 #define SKBMOD_F_SMAC 0x2
 #define SKBMOD_F_ETYPE 0x4
 #define SKBMOD_F_SWAPMAC 0x8
+#define SKBMOD_F_ECN 0x10
 struct tc_skbmod {
   tc_gen;
   __u64 flags;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tcp.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tcp.h
index 99c5bff..c96d695 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tcp.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tcp.h
@@ -226,7 +226,7 @@
 #define TCP_MD5SIG_FLAG_PREFIX 0x1
 #define TCP_MD5SIG_FLAG_IFINDEX 0x2
 struct tcp_md5sig {
-  struct sockaddr_storage tcpm_addr;
+  struct __kernel_sockaddr_storage tcpm_addr;
   __u8 tcpm_flags;
   __u8 tcpm_prefixlen;
   __u16 tcpm_keylen;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tls.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tls.h
index c765f30..c98ea0b 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tls.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tls.h
@@ -54,6 +54,18 @@
 #define TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE 0
 #define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE 16
 #define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE 8
+#define TLS_CIPHER_SM4_GCM 55
+#define TLS_CIPHER_SM4_GCM_IV_SIZE 8
+#define TLS_CIPHER_SM4_GCM_KEY_SIZE 16
+#define TLS_CIPHER_SM4_GCM_SALT_SIZE 4
+#define TLS_CIPHER_SM4_GCM_TAG_SIZE 16
+#define TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE 8
+#define TLS_CIPHER_SM4_CCM 56
+#define TLS_CIPHER_SM4_CCM_IV_SIZE 8
+#define TLS_CIPHER_SM4_CCM_KEY_SIZE 16
+#define TLS_CIPHER_SM4_CCM_SALT_SIZE 4
+#define TLS_CIPHER_SM4_CCM_TAG_SIZE 16
+#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8
 #define TLS_SET_RECORD_TYPE 1
 #define TLS_GET_RECORD_TYPE 2
 struct tls_crypto_info {
@@ -88,6 +100,20 @@
   unsigned char salt[TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE];
   unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE];
 };
+struct tls12_crypto_info_sm4_gcm {
+  struct tls_crypto_info info;
+  unsigned char iv[TLS_CIPHER_SM4_GCM_IV_SIZE];
+  unsigned char key[TLS_CIPHER_SM4_GCM_KEY_SIZE];
+  unsigned char salt[TLS_CIPHER_SM4_GCM_SALT_SIZE];
+  unsigned char rec_seq[TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE];
+};
+struct tls12_crypto_info_sm4_ccm {
+  struct tls_crypto_info info;
+  unsigned char iv[TLS_CIPHER_SM4_CCM_IV_SIZE];
+  unsigned char key[TLS_CIPHER_SM4_CCM_KEY_SIZE];
+  unsigned char salt[TLS_CIPHER_SM4_CCM_SALT_SIZE];
+  unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
+};
 enum {
   TLS_INFO_UNSPEC,
   TLS_INFO_VERSION,
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tty.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tty.h
index 48fa908..dcce572 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tty.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tty.h
@@ -47,4 +47,5 @@
 #define N_NCI 25
 #define N_SPEAKUP 26
 #define N_NULL 27
+#define N_MCTP 28
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tty_flags.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tty_flags.h
index fe591e5..b8354cf 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tty_flags.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/tty_flags.h
@@ -36,7 +36,6 @@
 #define ASYNCB_AUTOPROBE 15
 #define ASYNCB_MAGIC_MULTIPLIER 16
 #define ASYNCB_LAST_USER 16
-#ifndef _KERNEL_
 #define ASYNCB_INITIALIZED 31
 #define ASYNCB_SUSPENDED 30
 #define ASYNCB_NORMAL_ACTIVE 29
@@ -47,7 +46,6 @@
 #define ASYNCB_SHARE_IRQ 24
 #define ASYNCB_CONS_FLOW 23
 #define ASYNCB_FIRST_KERNEL 22
-#endif
 #define ASYNC_HUP_NOTIFY (1U << ASYNCB_HUP_NOTIFY)
 #define ASYNC_SUSPENDED (1U << ASYNCB_SUSPENDED)
 #define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
@@ -67,12 +65,11 @@
 #define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE)
 #define ASYNC_MAGIC_MULTIPLIER (1U << ASYNCB_MAGIC_MULTIPLIER)
 #define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1)
-#define ASYNC_DEPRECATED (ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
+#define ASYNC_DEPRECATED (ASYNC_SPLIT_TERMIOS | ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
 #define ASYNC_USR_MASK (ASYNC_SPD_MASK | ASYNC_CALLOUT_NOHUP | ASYNC_LOW_LATENCY)
 #define ASYNC_SPD_CUST (ASYNC_SPD_HI | ASYNC_SPD_VHI)
 #define ASYNC_SPD_WARP (ASYNC_SPD_HI | ASYNC_SPD_SHI)
 #define ASYNC_SPD_MASK (ASYNC_SPD_HI | ASYNC_SPD_VHI | ASYNC_SPD_SHI)
-#ifndef _KERNEL_
 #define ASYNC_INITIALIZED (1U << ASYNCB_INITIALIZED)
 #define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE)
 #define ASYNC_BOOT_AUTOCONF (1U << ASYNCB_BOOT_AUTOCONF)
@@ -83,4 +80,3 @@
 #define ASYNC_CONS_FLOW (1U << ASYNCB_CONS_FLOW)
 #define ASYNC_INTERNAL_FLAGS (~((1U << ASYNCB_FIRST_KERNEL) - 1))
 #endif
-#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/usb/video.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/usb/video.h
index cd2ede9..b45bada 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/usb/video.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/usb/video.h
@@ -217,8 +217,9 @@
   __u8 bControlSize;
   __u8 bmControls[2];
   __u8 iProcessing;
+  __u8 bmVideoStandards;
 } __attribute__((__packed__));
-#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9 + (n))
+#define UVC_DT_PROCESSING_UNIT_SIZE(n) (10 + (n))
 struct uvc_extension_unit_descriptor {
   __u8 bLength;
   __u8 bDescriptorType;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/userfaultfd.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
index fc100ae..ca7b7a5 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
@@ -20,16 +20,18 @@
 #define _LINUX_USERFAULTFD_H
 #include <linux/types.h>
 #define UFFD_API ((__u64) 0xAA)
-#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID)
+#define UFFD_API_REGISTER_MODES (UFFDIO_REGISTER_MODE_MISSING | UFFDIO_REGISTER_MODE_WP | UFFDIO_REGISTER_MODE_MINOR)
+#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID | UFFD_FEATURE_MINOR_HUGETLBFS | UFFD_FEATURE_MINOR_SHMEM)
 #define UFFD_API_IOCTLS ((__u64) 1 << _UFFDIO_REGISTER | (__u64) 1 << _UFFDIO_UNREGISTER | (__u64) 1 << _UFFDIO_API)
-#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT)
-#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY)
+#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT | (__u64) 1 << _UFFDIO_CONTINUE)
+#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_CONTINUE)
 #define _UFFDIO_REGISTER (0x00)
 #define _UFFDIO_UNREGISTER (0x01)
 #define _UFFDIO_WAKE (0x02)
 #define _UFFDIO_COPY (0x03)
 #define _UFFDIO_ZEROPAGE (0x04)
 #define _UFFDIO_WRITEPROTECT (0x06)
+#define _UFFDIO_CONTINUE (0x07)
 #define _UFFDIO_API (0x3F)
 #define UFFDIO 0xAA
 #define UFFDIO_API _IOWR(UFFDIO, _UFFDIO_API, struct uffdio_api)
@@ -39,6 +41,7 @@
 #define UFFDIO_COPY _IOWR(UFFDIO, _UFFDIO_COPY, struct uffdio_copy)
 #define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, struct uffdio_zeropage)
 #define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, struct uffdio_writeprotect)
+#define UFFDIO_CONTINUE _IOWR(UFFDIO, _UFFDIO_CONTINUE, struct uffdio_continue)
 struct uffd_msg {
   __u8 event;
   __u8 reserved1;
@@ -78,6 +81,7 @@
 #define UFFD_EVENT_UNMAP 0x16
 #define UFFD_PAGEFAULT_FLAG_WRITE (1 << 0)
 #define UFFD_PAGEFAULT_FLAG_WP (1 << 1)
+#define UFFD_PAGEFAULT_FLAG_MINOR (1 << 2)
 struct uffdio_api {
   __u64 api;
 #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1 << 0)
@@ -89,6 +93,8 @@
 #define UFFD_FEATURE_EVENT_UNMAP (1 << 6)
 #define UFFD_FEATURE_SIGBUS (1 << 7)
 #define UFFD_FEATURE_THREAD_ID (1 << 8)
+#define UFFD_FEATURE_MINOR_HUGETLBFS (1 << 9)
+#define UFFD_FEATURE_MINOR_SHMEM (1 << 10)
   __u64 features;
   __u64 ioctls;
 };
@@ -100,6 +106,7 @@
   struct uffdio_range range;
 #define UFFDIO_REGISTER_MODE_MISSING ((__u64) 1 << 0)
 #define UFFDIO_REGISTER_MODE_WP ((__u64) 1 << 1)
+#define UFFDIO_REGISTER_MODE_MINOR ((__u64) 1 << 2)
   __u64 mode;
   __u64 ioctls;
 };
@@ -124,5 +131,11 @@
 #define UFFDIO_WRITEPROTECT_MODE_DONTWAKE ((__u64) 1 << 1)
   __u64 mode;
 };
+struct uffdio_continue {
+  struct uffdio_range range;
+#define UFFDIO_CONTINUE_MODE_DONTWAKE ((__u64) 1 << 0)
+  __u64 mode;
+  __s64 mapped;
+};
 #define UFFD_USER_MODE_ONLY 1
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
index 75e5ccd..1a11355 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef __LINUX_V4L2_CONTROLS_H
 #define __LINUX_V4L2_CONTROLS_H
+#include <linux/const.h>
 #include <linux/types.h>
 #define V4L2_CTRL_CLASS_USER 0x00980000
 #define V4L2_CTRL_CLASS_CODEC 0x00990000
@@ -32,6 +33,7 @@
 #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000
 #define V4L2_CTRL_CLASS_DETECT 0x00a30000
 #define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000
+#define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000
 #define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
 #define V4L2_CID_USER_BASE V4L2_CID_BASE
 #define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
@@ -88,6 +90,7 @@
   V4L2_COLORFX_SOLARIZATION = 13,
   V4L2_COLORFX_ANTIQUE = 14,
   V4L2_COLORFX_SET_CBCR = 15,
+  V4L2_COLORFX_SET_RGB = 16,
 };
 #define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE + 32)
 #define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE + 33)
@@ -100,7 +103,8 @@
 #define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE + 40)
 #define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE + 41)
 #define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE + 42)
-#define V4L2_CID_LASTP1 (V4L2_CID_BASE + 43)
+#define V4L2_CID_COLORFX_RGB (V4L2_CID_BASE + 43)
+#define V4L2_CID_LASTP1 (V4L2_CID_BASE + 44)
 #define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000)
 #define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010)
 #define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030)
@@ -114,6 +118,7 @@
 #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0)
 #define V4L2_CID_USER_CODA_BASE (V4L2_CID_USER_BASE + 0x10e0)
 #define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0)
+#define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170)
 #define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900)
 #define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1)
 #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE + 0)
@@ -318,6 +323,12 @@
 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE + 228)
 #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE + 229)
 #define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE + 230)
+#define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_CODEC_BASE + 231)
+#define V4L2_CID_MPEG_VIDEO_LTR_COUNT (V4L2_CID_CODEC_BASE + 232)
+#define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (V4L2_CID_CODEC_BASE + 233)
+#define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_CODEC_BASE + 234)
+#define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_CODEC_BASE + 235)
+#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (V4L2_CID_CODEC_BASE + 236)
 #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE + 270)
 enum v4l2_mpeg_video_mpeg2_level {
   V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
@@ -670,6 +681,8 @@
 #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 650)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 651)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652)
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_CODEC_BASE + 653)
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_BASE + 654)
 #define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
 #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE + 0)
 enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
@@ -926,6 +939,7 @@
 #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
 #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
 #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
+#define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9)
 #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
 #define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1)
 #define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
@@ -1158,17 +1172,17 @@
   __u32 flags;
 };
 #define V4L2_FWHT_VERSION 3
-#define V4L2_FWHT_FL_IS_INTERLACED BIT(0)
-#define V4L2_FWHT_FL_IS_BOTTOM_FIRST BIT(1)
-#define V4L2_FWHT_FL_IS_ALTERNATE BIT(2)
-#define V4L2_FWHT_FL_IS_BOTTOM_FIELD BIT(3)
-#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED BIT(4)
-#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED BIT(5)
-#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED BIT(6)
-#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT BIT(7)
-#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH BIT(8)
-#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED BIT(9)
-#define V4L2_FWHT_FL_I_FRAME BIT(10)
+#define V4L2_FWHT_FL_IS_INTERLACED _BITUL(0)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIRST _BITUL(1)
+#define V4L2_FWHT_FL_IS_ALTERNATE _BITUL(2)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIELD _BITUL(3)
+#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED _BITUL(4)
+#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED _BITUL(5)
+#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED _BITUL(6)
+#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT _BITUL(7)
+#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH _BITUL(8)
+#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED _BITUL(9)
+#define V4L2_FWHT_FL_I_FRAME _BITUL(10)
 #define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16)
 #define V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET 16
 #define V4L2_FWHT_FL_PIXENC_MSK GENMASK(20, 19)
@@ -1188,6 +1202,279 @@
   __u32 ycbcr_enc;
   __u32 quantization;
 };
+#define V4L2_VP8_SEGMENT_FLAG_ENABLED 0x01
+#define V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP 0x02
+#define V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA 0x04
+#define V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE 0x08
+struct v4l2_vp8_segment {
+  __s8 quant_update[4];
+  __s8 lf_update[4];
+  __u8 segment_probs[3];
+  __u8 padding;
+  __u32 flags;
+};
+#define V4L2_VP8_LF_ADJ_ENABLE 0x01
+#define V4L2_VP8_LF_DELTA_UPDATE 0x02
+#define V4L2_VP8_LF_FILTER_TYPE_SIMPLE 0x04
+struct v4l2_vp8_loop_filter {
+  __s8 ref_frm_delta[4];
+  __s8 mb_mode_delta[4];
+  __u8 sharpness_level;
+  __u8 level;
+  __u16 padding;
+  __u32 flags;
+};
+struct v4l2_vp8_quantization {
+  __u8 y_ac_qi;
+  __s8 y_dc_delta;
+  __s8 y2_dc_delta;
+  __s8 y2_ac_delta;
+  __s8 uv_dc_delta;
+  __s8 uv_ac_delta;
+  __u16 padding;
+};
+#define V4L2_VP8_COEFF_PROB_CNT 11
+#define V4L2_VP8_MV_PROB_CNT 19
+struct v4l2_vp8_entropy {
+  __u8 coeff_probs[4][8][3][V4L2_VP8_COEFF_PROB_CNT];
+  __u8 y_mode_probs[4];
+  __u8 uv_mode_probs[3];
+  __u8 mv_probs[2][V4L2_VP8_MV_PROB_CNT];
+  __u8 padding[3];
+};
+struct v4l2_vp8_entropy_coder_state {
+  __u8 range;
+  __u8 value;
+  __u8 bit_count;
+  __u8 padding;
+};
+#define V4L2_VP8_FRAME_FLAG_KEY_FRAME 0x01
+#define V4L2_VP8_FRAME_FLAG_EXPERIMENTAL 0x02
+#define V4L2_VP8_FRAME_FLAG_SHOW_FRAME 0x04
+#define V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF 0x08
+#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN 0x10
+#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT 0x20
+#define V4L2_VP8_FRAME_IS_KEY_FRAME(hdr) (! ! ((hdr)->flags & V4L2_VP8_FRAME_FLAG_KEY_FRAME))
+#define V4L2_CID_STATELESS_VP8_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 200)
+struct v4l2_ctrl_vp8_frame {
+  struct v4l2_vp8_segment segment;
+  struct v4l2_vp8_loop_filter lf;
+  struct v4l2_vp8_quantization quant;
+  struct v4l2_vp8_entropy entropy;
+  struct v4l2_vp8_entropy_coder_state coder_state;
+  __u16 width;
+  __u16 height;
+  __u8 horizontal_scale;
+  __u8 vertical_scale;
+  __u8 version;
+  __u8 prob_skip_false;
+  __u8 prob_intra;
+  __u8 prob_last;
+  __u8 prob_gf;
+  __u8 num_dct_parts;
+  __u32 first_part_size;
+  __u32 first_part_header_bits;
+  __u32 dct_part_sizes[8];
+  __u64 last_frame_ts;
+  __u64 golden_frame_ts;
+  __u64 alt_frame_ts;
+  __u64 flags;
+};
+#define V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE 0x01
+#define V4L2_CID_STATELESS_MPEG2_SEQUENCE (V4L2_CID_CODEC_STATELESS_BASE + 220)
+struct v4l2_ctrl_mpeg2_sequence {
+  __u16 horizontal_size;
+  __u16 vertical_size;
+  __u32 vbv_buffer_size;
+  __u16 profile_and_level_indication;
+  __u8 chroma_format;
+  __u8 flags;
+};
+#define V4L2_MPEG2_PIC_CODING_TYPE_I 1
+#define V4L2_MPEG2_PIC_CODING_TYPE_P 2
+#define V4L2_MPEG2_PIC_CODING_TYPE_B 3
+#define V4L2_MPEG2_PIC_CODING_TYPE_D 4
+#define V4L2_MPEG2_PIC_TOP_FIELD 0x1
+#define V4L2_MPEG2_PIC_BOTTOM_FIELD 0x2
+#define V4L2_MPEG2_PIC_FRAME 0x3
+#define V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST 0x0001
+#define V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT 0x0002
+#define V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV 0x0004
+#define V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE 0x0008
+#define V4L2_MPEG2_PIC_FLAG_INTRA_VLC 0x0010
+#define V4L2_MPEG2_PIC_FLAG_ALT_SCAN 0x0020
+#define V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST 0x0040
+#define V4L2_MPEG2_PIC_FLAG_PROGRESSIVE 0x0080
+#define V4L2_CID_STATELESS_MPEG2_PICTURE (V4L2_CID_CODEC_STATELESS_BASE + 221)
+struct v4l2_ctrl_mpeg2_picture {
+  __u64 backward_ref_ts;
+  __u64 forward_ref_ts;
+  __u32 flags;
+  __u8 f_code[2][2];
+  __u8 picture_coding_type;
+  __u8 picture_structure;
+  __u8 intra_dc_precision;
+  __u8 reserved[5];
+};
+#define V4L2_CID_STATELESS_MPEG2_QUANTISATION (V4L2_CID_CODEC_STATELESS_BASE + 222)
+struct v4l2_ctrl_mpeg2_quantisation {
+  __u8 intra_quantiser_matrix[64];
+  __u8 non_intra_quantiser_matrix[64];
+  __u8 chroma_intra_quantiser_matrix[64];
+  __u8 chroma_non_intra_quantiser_matrix[64];
+};
+#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
+#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
+#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
+struct v4l2_ctrl_hdr10_cll_info {
+  __u16 max_content_light_level;
+  __u16 max_pic_average_light_level;
+};
+#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000
+#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000
+#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000
+#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1
+#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000
+struct v4l2_ctrl_hdr10_mastering_display {
+  __u16 display_primaries_x[3];
+  __u16 display_primaries_y[3];
+  __u16 white_point_x;
+  __u16 white_point_y;
+  __u32 max_display_mastering_luminance;
+  __u32 min_display_mastering_luminance;
+};
+#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1
+#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2
+struct v4l2_vp9_loop_filter {
+  __s8 ref_deltas[4];
+  __s8 mode_deltas[2];
+  __u8 level;
+  __u8 sharpness;
+  __u8 flags;
+  __u8 reserved[7];
+};
+struct v4l2_vp9_quantization {
+  __u8 base_q_idx;
+  __s8 delta_q_y_dc;
+  __s8 delta_q_uv_dc;
+  __s8 delta_q_uv_ac;
+  __u8 reserved[4];
+};
+#define V4L2_VP9_SEGMENTATION_FLAG_ENABLED 0x01
+#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP 0x02
+#define V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE 0x04
+#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA 0x08
+#define V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE 0x10
+#define V4L2_VP9_SEG_LVL_ALT_Q 0
+#define V4L2_VP9_SEG_LVL_ALT_L 1
+#define V4L2_VP9_SEG_LVL_REF_FRAME 2
+#define V4L2_VP9_SEG_LVL_SKIP 3
+#define V4L2_VP9_SEG_LVL_MAX 4
+#define V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) (1 << (id))
+#define V4L2_VP9_SEGMENT_FEATURE_ENABLED_MASK 0xf
+struct v4l2_vp9_segmentation {
+  __s16 feature_data[8][4];
+  __u8 feature_enabled[8];
+  __u8 tree_probs[7];
+  __u8 pred_probs[3];
+  __u8 flags;
+  __u8 reserved[5];
+};
+#define V4L2_VP9_FRAME_FLAG_KEY_FRAME 0x001
+#define V4L2_VP9_FRAME_FLAG_SHOW_FRAME 0x002
+#define V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT 0x004
+#define V4L2_VP9_FRAME_FLAG_INTRA_ONLY 0x008
+#define V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV 0x010
+#define V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX 0x020
+#define V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE 0x040
+#define V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING 0x080
+#define V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING 0x100
+#define V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING 0x200
+#define V4L2_VP9_SIGN_BIAS_LAST 0x1
+#define V4L2_VP9_SIGN_BIAS_GOLDEN 0x2
+#define V4L2_VP9_SIGN_BIAS_ALT 0x4
+#define V4L2_VP9_RESET_FRAME_CTX_NONE 0
+#define V4L2_VP9_RESET_FRAME_CTX_SPEC 1
+#define V4L2_VP9_RESET_FRAME_CTX_ALL 2
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP 0
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH 1
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP 2
+#define V4L2_VP9_INTERP_FILTER_BILINEAR 3
+#define V4L2_VP9_INTERP_FILTER_SWITCHABLE 4
+#define V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE 0
+#define V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE 1
+#define V4L2_VP9_REFERENCE_MODE_SELECT 2
+#define V4L2_VP9_PROFILE_MAX 3
+#define V4L2_CID_STATELESS_VP9_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 300)
+struct v4l2_ctrl_vp9_frame {
+  struct v4l2_vp9_loop_filter lf;
+  struct v4l2_vp9_quantization quant;
+  struct v4l2_vp9_segmentation seg;
+  __u32 flags;
+  __u16 compressed_header_size;
+  __u16 uncompressed_header_size;
+  __u16 frame_width_minus_1;
+  __u16 frame_height_minus_1;
+  __u16 render_width_minus_1;
+  __u16 render_height_minus_1;
+  __u64 last_frame_ts;
+  __u64 golden_frame_ts;
+  __u64 alt_frame_ts;
+  __u8 ref_frame_sign_bias;
+  __u8 reset_frame_context;
+  __u8 frame_context_idx;
+  __u8 profile;
+  __u8 bit_depth;
+  __u8 interpolation_filter;
+  __u8 tile_cols_log2;
+  __u8 tile_rows_log2;
+  __u8 reference_mode;
+  __u8 reserved[7];
+};
+#define V4L2_VP9_NUM_FRAME_CTX 4
+struct v4l2_vp9_mv_probs {
+  __u8 joint[3];
+  __u8 sign[2];
+  __u8 classes[2][10];
+  __u8 class0_bit[2];
+  __u8 bits[2][10];
+  __u8 class0_fr[2][2][3];
+  __u8 fr[2][3];
+  __u8 class0_hp[2];
+  __u8 hp[2];
+};
+#define V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (V4L2_CID_CODEC_STATELESS_BASE + 301)
+#define V4L2_VP9_TX_MODE_ONLY_4X4 0
+#define V4L2_VP9_TX_MODE_ALLOW_8X8 1
+#define V4L2_VP9_TX_MODE_ALLOW_16X16 2
+#define V4L2_VP9_TX_MODE_ALLOW_32X32 3
+#define V4L2_VP9_TX_MODE_SELECT 4
+struct v4l2_ctrl_vp9_compressed_hdr {
+  __u8 tx_mode;
+  __u8 tx8[2][1];
+  __u8 tx16[2][2];
+  __u8 tx32[2][3];
+  __u8 coef[4][2][2][6][6][3];
+  __u8 skip[3];
+  __u8 inter_mode[7][3];
+  __u8 interp_filter[4][2];
+  __u8 is_inter[4];
+  __u8 comp_mode[5];
+  __u8 single_ref[5][2];
+  __u8 comp_ref[5];
+  __u8 y_mode[4][9];
+  __u8 uv_mode[10][9];
+  __u8 partition[16][3];
+  struct v4l2_vp9_mv_probs mv;
+};
 #define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC
 #define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS
 #define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vdpa.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vdpa.h
index bee6618..b3e5d39 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vdpa.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vdpa.h
@@ -27,9 +27,11 @@
   VDPA_CMD_DEV_NEW,
   VDPA_CMD_DEV_DEL,
   VDPA_CMD_DEV_GET,
+  VDPA_CMD_DEV_CONFIG_GET,
 };
 enum vdpa_attr {
   VDPA_ATTR_UNSPEC,
+  VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC,
   VDPA_ATTR_MGMTDEV_BUS_NAME,
   VDPA_ATTR_MGMTDEV_DEV_NAME,
   VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES,
@@ -38,6 +40,14 @@
   VDPA_ATTR_DEV_VENDOR_ID,
   VDPA_ATTR_DEV_MAX_VQS,
   VDPA_ATTR_DEV_MAX_VQ_SIZE,
+  VDPA_ATTR_DEV_MIN_VQ_SIZE,
+  VDPA_ATTR_DEV_NET_CFG_MACADDR,
+  VDPA_ATTR_DEV_NET_STATUS,
+  VDPA_ATTR_DEV_NET_CFG_MAX_VQP,
+  VDPA_ATTR_DEV_NET_CFG_MTU,
+  VDPA_ATTR_DEV_NEGOTIATED_FEATURES,
+  VDPA_ATTR_DEV_MGMTDEV_MAX_VQS,
+  VDPA_ATTR_DEV_SUPPORTED_FEATURES,
   VDPA_ATTR_MAX,
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vduse.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vduse.h
new file mode 100644
index 0000000..2dc8c82
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vduse.h
@@ -0,0 +1,134 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VDUSE_H_
+#define _UAPI_VDUSE_H_
+#include <linux/types.h>
+#define VDUSE_BASE 0x81
+#define VDUSE_API_VERSION 0
+#define VDUSE_GET_API_VERSION _IOR(VDUSE_BASE, 0x00, __u64)
+#define VDUSE_SET_API_VERSION _IOW(VDUSE_BASE, 0x01, __u64)
+struct vduse_dev_config {
+#define VDUSE_NAME_MAX 256
+  char name[VDUSE_NAME_MAX];
+  __u32 vendor_id;
+  __u32 device_id;
+  __u64 features;
+  __u32 vq_num;
+  __u32 vq_align;
+  __u32 reserved[13];
+  __u32 config_size;
+  __u8 config[];
+};
+#define VDUSE_CREATE_DEV _IOW(VDUSE_BASE, 0x02, struct vduse_dev_config)
+#define VDUSE_DESTROY_DEV _IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX])
+struct vduse_iotlb_entry {
+  __u64 offset;
+  __u64 start;
+  __u64 last;
+#define VDUSE_ACCESS_RO 0x1
+#define VDUSE_ACCESS_WO 0x2
+#define VDUSE_ACCESS_RW 0x3
+  __u8 perm;
+};
+#define VDUSE_IOTLB_GET_FD _IOWR(VDUSE_BASE, 0x10, struct vduse_iotlb_entry)
+#define VDUSE_DEV_GET_FEATURES _IOR(VDUSE_BASE, 0x11, __u64)
+struct vduse_config_data {
+  __u32 offset;
+  __u32 length;
+  __u8 buffer[];
+};
+#define VDUSE_DEV_SET_CONFIG _IOW(VDUSE_BASE, 0x12, struct vduse_config_data)
+#define VDUSE_DEV_INJECT_CONFIG_IRQ _IO(VDUSE_BASE, 0x13)
+struct vduse_vq_config {
+  __u32 index;
+  __u16 max_size;
+  __u16 reserved[13];
+};
+#define VDUSE_VQ_SETUP _IOW(VDUSE_BASE, 0x14, struct vduse_vq_config)
+struct vduse_vq_state_split {
+  __u16 avail_index;
+};
+struct vduse_vq_state_packed {
+  __u16 last_avail_counter;
+  __u16 last_avail_idx;
+  __u16 last_used_counter;
+  __u16 last_used_idx;
+};
+struct vduse_vq_info {
+  __u32 index;
+  __u32 num;
+  __u64 desc_addr;
+  __u64 driver_addr;
+  __u64 device_addr;
+  union {
+    struct vduse_vq_state_split split;
+    struct vduse_vq_state_packed packed;
+  };
+  __u8 ready;
+};
+#define VDUSE_VQ_GET_INFO _IOWR(VDUSE_BASE, 0x15, struct vduse_vq_info)
+struct vduse_vq_eventfd {
+  __u32 index;
+#define VDUSE_EVENTFD_DEASSIGN - 1
+  int fd;
+};
+#define VDUSE_VQ_SETUP_KICKFD _IOW(VDUSE_BASE, 0x16, struct vduse_vq_eventfd)
+#define VDUSE_VQ_INJECT_IRQ _IOW(VDUSE_BASE, 0x17, __u32)
+enum vduse_req_type {
+  VDUSE_GET_VQ_STATE,
+  VDUSE_SET_STATUS,
+  VDUSE_UPDATE_IOTLB,
+};
+struct vduse_vq_state {
+  __u32 index;
+  union {
+    struct vduse_vq_state_split split;
+    struct vduse_vq_state_packed packed;
+  };
+};
+struct vduse_dev_status {
+  __u8 status;
+};
+struct vduse_iova_range {
+  __u64 start;
+  __u64 last;
+};
+struct vduse_dev_request {
+  __u32 type;
+  __u32 request_id;
+  __u32 reserved[4];
+  union {
+    struct vduse_vq_state vq_state;
+    struct vduse_dev_status s;
+    struct vduse_iova_range iova;
+    __u32 padding[32];
+  };
+};
+struct vduse_dev_response {
+  __u32 request_id;
+#define VDUSE_REQ_RESULT_OK 0x00
+#define VDUSE_REQ_RESULT_FAILED 0x01
+  __u32 result;
+  __u32 reserved[4];
+  union {
+    struct vduse_vq_state vq_state;
+    __u32 padding[32];
+  };
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/version.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/version.h
index 86c0070..2dfd696 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/version.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/version.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#define LINUX_VERSION_CODE 330752
+#define LINUX_VERSION_CODE 332032
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
 #define LINUX_VERSION_MAJOR 5
-#define LINUX_VERSION_PATCHLEVEL 12
+#define LINUX_VERSION_PATCHLEVEL 17
 #define LINUX_VERSION_SUBLEVEL 0
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/videodev2.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/videodev2.h
index 76d9af9..1cae711 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/videodev2.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/videodev2.h
@@ -24,7 +24,7 @@
 #include <linux/types.h>
 #include <linux/v4l2-common.h>
 #include <linux/v4l2-controls.h>
-#define VIDEO_MAX_FRAME 64
+#define VIDEO_MAX_FRAME 32
 #define VIDEO_MAX_PLANES 8
 #define v4l2_fourcc(a,b,c,d) ((__u32) (a) | ((__u32) (b) << 8) | ((__u32) (c) << 16) | ((__u32) (d) << 24))
 #define v4l2_fourcc_be(a,b,c,d) (v4l2_fourcc(a, b, c, d) | (1U << 31))
@@ -266,6 +266,7 @@
 #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4')
 #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O')
 #define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P')
+#define V4L2_PIX_FMT_YUV24 v4l2_fourcc('Y', 'U', 'V', '3')
 #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4')
 #define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V')
 #define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V')
@@ -278,13 +279,10 @@
 #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1')
 #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4')
 #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2')
-#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1')
 #define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6')
 #define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1')
-#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
-#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9')
 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9')
 #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P')
@@ -297,6 +295,11 @@
 #define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1')
 #define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4')
 #define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2')
+#define V4L2_PIX_FMT_NV12_4L4 v4l2_fourcc('V', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2')
+#define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
+#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1')
 #define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G')
 #define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G')
@@ -355,7 +358,9 @@
 #define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G')
 #define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L')
 #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0')
+#define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F')
 #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0')
+#define V4L2_PIX_FMT_VP9_FRAME v4l2_fourcc('V', 'P', '9', 'F')
 #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C')
 #define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T')
 #define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H')
@@ -390,8 +395,8 @@
 #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I')
 #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
 #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1')
+#define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1')
 #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I')
-#define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2')
 #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4')
 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4')
 #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b')
@@ -526,8 +531,10 @@
   __u32 type;
   __u32 memory;
   __u32 capabilities;
-  __u32 reserved[1];
+  __u8 flags;
+  __u8 reserved[3];
 };
+#define V4L2_MEMORY_FLAG_NON_COHERENT (1 << 0)
 #define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
 #define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
 #define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)
@@ -888,6 +895,12 @@
     struct v4l2_ctrl_h264_slice_params __user * p_h264_slice_params;
     struct v4l2_ctrl_h264_decode_params __user * p_h264_decode_params;
     struct v4l2_ctrl_fwht_params __user * p_fwht_params;
+    struct v4l2_ctrl_vp8_frame __user * p_vp8_frame;
+    struct v4l2_ctrl_mpeg2_sequence __user * p_mpeg2_sequence;
+    struct v4l2_ctrl_mpeg2_picture __user * p_mpeg2_picture;
+    struct v4l2_ctrl_mpeg2_quantisation __user * p_mpeg2_quantisation;
+    struct v4l2_ctrl_vp9_compressed_hdr __user * p_vp9_compressed_hdr_probs;
+    struct v4l2_ctrl_vp9_frame __user * p_vp9_frame;
     void __user * ptr;
   };
 } __attribute__((packed));
@@ -925,6 +938,8 @@
   V4L2_CTRL_TYPE_U16 = 0x0101,
   V4L2_CTRL_TYPE_U32 = 0x0102,
   V4L2_CTRL_TYPE_AREA = 0x0106,
+  V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110,
+  V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111,
   V4L2_CTRL_TYPE_H264_SPS = 0x0200,
   V4L2_CTRL_TYPE_H264_PPS = 0x0201,
   V4L2_CTRL_TYPE_H264_SCALING_MATRIX = 0x0202,
@@ -932,6 +947,12 @@
   V4L2_CTRL_TYPE_H264_DECODE_PARAMS = 0x0204,
   V4L2_CTRL_TYPE_H264_PRED_WEIGHTS = 0x0205,
   V4L2_CTRL_TYPE_FWHT_PARAMS = 0x0220,
+  V4L2_CTRL_TYPE_VP8_FRAME = 0x0240,
+  V4L2_CTRL_TYPE_MPEG2_QUANTISATION = 0x0250,
+  V4L2_CTRL_TYPE_MPEG2_SEQUENCE = 0x0251,
+  V4L2_CTRL_TYPE_MPEG2_PICTURE = 0x0252,
+  V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR = 0x0260,
+  V4L2_CTRL_TYPE_VP9_FRAME = 0x0261,
 };
 struct v4l2_queryctrl {
   __u32 id;
@@ -1365,7 +1386,8 @@
   __u32 memory;
   struct v4l2_format format;
   __u32 capabilities;
-  __u32 reserved[7];
+  __u32 flags;
+  __u32 reserved[6];
 };
 #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
 #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
@@ -1450,4 +1472,6 @@
 #define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
 #define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
 #define BASE_VIDIOC_PRIVATE 192
+#define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16
+#define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
similarity index 63%
copy from mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
index bb45c3d..7e29eaa 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
@@ -16,14 +16,25 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_LINUX_VIRTIO_BT_H
+#define _UAPI_LINUX_VIRTIO_BT_H
+#include <linux/virtio_types.h>
+#define VIRTIO_BT_F_VND_HCI 0
+#define VIRTIO_BT_F_MSFT_EXT 1
+#define VIRTIO_BT_F_AOSP_EXT 2
+enum virtio_bt_config_type {
+  VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
+  VIRTIO_BT_CONFIG_TYPE_AMP = 1,
 };
+enum virtio_bt_config_vendor {
+  VIRTIO_BT_CONFIG_VENDOR_NONE = 0,
+  VIRTIO_BT_CONFIG_VENDOR_ZEPHYR = 1,
+  VIRTIO_BT_CONFIG_VENDOR_INTEL = 2,
+  VIRTIO_BT_CONFIG_VENDOR_REALTEK = 3,
+};
+struct virtio_bt_config {
+  __u8 type;
+  __u16 vendor;
+  __u16 msft_opcode;
+} __attribute__((packed));
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h
new file mode 100644
index 0000000..543fe76
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VIRTIO_GPIO_H
+#define _LINUX_VIRTIO_GPIO_H
+#include <linux/types.h>
+#define VIRTIO_GPIO_F_IRQ 0
+#define VIRTIO_GPIO_MSG_GET_NAMES 0x0001
+#define VIRTIO_GPIO_MSG_GET_DIRECTION 0x0002
+#define VIRTIO_GPIO_MSG_SET_DIRECTION 0x0003
+#define VIRTIO_GPIO_MSG_GET_VALUE 0x0004
+#define VIRTIO_GPIO_MSG_SET_VALUE 0x0005
+#define VIRTIO_GPIO_MSG_IRQ_TYPE 0x0006
+#define VIRTIO_GPIO_STATUS_OK 0x0
+#define VIRTIO_GPIO_STATUS_ERR 0x1
+#define VIRTIO_GPIO_DIRECTION_NONE 0x00
+#define VIRTIO_GPIO_DIRECTION_OUT 0x01
+#define VIRTIO_GPIO_DIRECTION_IN 0x02
+#define VIRTIO_GPIO_IRQ_TYPE_NONE 0x00
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_RISING 0x01
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_FALLING 0x02
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_BOTH 0x03
+#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_HIGH 0x04
+#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_LOW 0x08
+struct virtio_gpio_config {
+  __le16 ngpio;
+  __u8 padding[2];
+  __le32 gpio_names_size;
+};
+struct virtio_gpio_request {
+  __le16 type;
+  __le16 gpio;
+  __le32 value;
+};
+struct virtio_gpio_response {
+  __u8 status;
+  __u8 value;
+};
+struct virtio_gpio_response_get_names {
+  __u8 status;
+  __u8 value[];
+};
+struct virtio_gpio_irq_request {
+  __le16 gpio;
+};
+struct virtio_gpio_irq_response {
+  __u8 status;
+};
+#define VIRTIO_GPIO_IRQ_STATUS_INVALID 0x0
+#define VIRTIO_GPIO_IRQ_STATUS_VALID 0x1
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
index 83ad5a7..8a21afd 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
@@ -23,6 +23,7 @@
 #define VIRTIO_GPU_F_EDID 1
 #define VIRTIO_GPU_F_RESOURCE_UUID 2
 #define VIRTIO_GPU_F_RESOURCE_BLOB 3
+#define VIRTIO_GPU_F_CONTEXT_INIT 4
 enum virtio_gpu_ctrl_type {
   VIRTIO_GPU_UNDEFINED = 0,
   VIRTIO_GPU_CMD_GET_DISPLAY_INFO = 0x0100,
@@ -70,12 +71,14 @@
   VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1
 };
 #define VIRTIO_GPU_FLAG_FENCE (1 << 0)
+#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1 << 1)
 struct virtio_gpu_ctrl_hdr {
   __le32 type;
   __le32 flags;
   __le64 fence_id;
   __le32 ctx_id;
-  __le32 padding;
+  __u8 ring_idx;
+  __u8 padding[3];
 };
 struct virtio_gpu_cursor_pos {
   __le32 scanout_id;
@@ -181,10 +184,11 @@
   __le32 flags;
   __le32 padding;
 };
+#define VIRTIO_GPU_CONTEXT_INIT_CAPSET_ID_MASK 0x000000ff
 struct virtio_gpu_ctx_create {
   struct virtio_gpu_ctrl_hdr hdr;
   __le32 nlen;
-  __le32 padding;
+  __le32 context_init;
   char debug_name[64];
 };
 struct virtio_gpu_ctx_destroy {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
similarity index 71%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
index bb45c3d..9540f26 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
@@ -16,14 +16,21 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _UAPI_LINUX_VIRTIO_I2C_H
+#define _UAPI_LINUX_VIRTIO_I2C_H
+#include <linux/const.h>
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST 0
+#define VIRTIO_I2C_FLAGS_FAIL_NEXT _BITUL(0)
+#define VIRTIO_I2C_FLAGS_M_RD _BITUL(1)
+struct virtio_i2c_out_hdr {
+  __le16 addr;
+  __le16 padding;
+  __le32 flags;
 };
+struct virtio_i2c_in_hdr {
+  __u8 status;
+};
+#define VIRTIO_I2C_MSG_OK 0
+#define VIRTIO_I2C_MSG_ERR 1
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_ids.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
index bae26a0..2894700 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
@@ -40,7 +40,28 @@
 #define VIRTIO_ID_PSTORE 22
 #define VIRTIO_ID_IOMMU 23
 #define VIRTIO_ID_MEM 24
+#define VIRTIO_ID_SOUND 25
 #define VIRTIO_ID_FS 26
 #define VIRTIO_ID_PMEM 27
+#define VIRTIO_ID_RPMB 28
 #define VIRTIO_ID_MAC80211_HWSIM 29
+#define VIRTIO_ID_VIDEO_ENCODER 30
+#define VIRTIO_ID_VIDEO_DECODER 31
+#define VIRTIO_ID_SCMI 32
+#define VIRTIO_ID_NITRO_SEC_MOD 33
+#define VIRTIO_ID_I2C_ADAPTER 34
+#define VIRTIO_ID_WATCHDOG 35
+#define VIRTIO_ID_CAN 36
+#define VIRTIO_ID_DMABUF 37
+#define VIRTIO_ID_PARAM_SERV 38
+#define VIRTIO_ID_AUDIO_POLICY 39
+#define VIRTIO_ID_BT 40
+#define VIRTIO_ID_GPIO 41
+#define VIRTIO_TRANS_ID_NET 1000
+#define VIRTIO_TRANS_ID_BLOCK 1001
+#define VIRTIO_TRANS_ID_BALLOON 1002
+#define VIRTIO_TRANS_ID_CONSOLE 1003
+#define VIRTIO_TRANS_ID_SCSI 1004
+#define VIRTIO_TRANS_ID_RNG 1005
+#define VIRTIO_TRANS_ID_9P 1009
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
index b08de57..ec8def8 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
@@ -25,6 +25,7 @@
 #define VIRTIO_IOMMU_F_BYPASS 3
 #define VIRTIO_IOMMU_F_PROBE 4
 #define VIRTIO_IOMMU_F_MMIO 5
+#define VIRTIO_IOMMU_F_BYPASS_CONFIG 6
 struct virtio_iommu_range_64 {
   __le64 start;
   __le64 end;
@@ -38,6 +39,8 @@
   struct virtio_iommu_range_64 input_range;
   struct virtio_iommu_range_32 domain_range;
   __le32 probe_size;
+  __u8 bypass;
+  __u8 reserved[3];
 };
 #define VIRTIO_IOMMU_T_ATTACH 0x01
 #define VIRTIO_IOMMU_T_DETACH 0x02
@@ -61,11 +64,13 @@
   __u8 status;
   __u8 reserved[3];
 };
+#define VIRTIO_IOMMU_ATTACH_F_BYPASS (1 << 0)
 struct virtio_iommu_req_attach {
   struct virtio_iommu_req_head head;
   __le32 domain;
   __le32 endpoint;
-  __u8 reserved[8];
+  __le32 flags;
+  __u8 reserved[4];
   struct virtio_iommu_req_tail tail;
 };
 struct virtio_iommu_req_detach {
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_mem.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
index d6542b7..66ffce1 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
@@ -23,6 +23,7 @@
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
 #define VIRTIO_MEM_F_ACPI_PXM 0
+#define VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE 1
 #define VIRTIO_MEM_REQ_PLUG 0
 #define VIRTIO_MEM_REQ_UNPLUG 1
 #define VIRTIO_MEM_REQ_UNPLUG_ALL 2
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
similarity index 68%
rename from mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/raw.h
rename to mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
index bb45c3d..01c5869 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
@@ -16,14 +16,26 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _UAPI_LINUX_VIRTIO_PCIDEV_H
+#define _UAPI_LINUX_VIRTIO_PCIDEV_H
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+enum virtio_pcidev_ops {
+  VIRTIO_PCIDEV_OP_RESERVED = 0,
+  VIRTIO_PCIDEV_OP_CFG_READ,
+  VIRTIO_PCIDEV_OP_CFG_WRITE,
+  VIRTIO_PCIDEV_OP_MMIO_READ,
+  VIRTIO_PCIDEV_OP_MMIO_WRITE,
+  VIRTIO_PCIDEV_OP_MMIO_MEMSET,
+  VIRTIO_PCIDEV_OP_INT,
+  VIRTIO_PCIDEV_OP_MSI,
+  VIRTIO_PCIDEV_OP_PME,
+};
+struct virtio_pcidev_msg {
+  __u8 op;
+  __u8 bar;
+  __u16 reserved;
+  __u32 size;
+  __u64 addr;
+  __u8 data[];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
similarity index 78%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
index bb45c3d..7907ed4 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
@@ -16,14 +16,12 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#ifndef _UAPI_LINUX_VIRTIO_SCMI_H
+#define _UAPI_LINUX_VIRTIO_SCMI_H
+#include <linux/virtio_types.h>
+#define VIRTIO_SCMI_F_P2A_CHANNELS 0
+#define VIRTIO_SCMI_F_SHARED_MEMORY 1
+#define VIRTIO_SCMI_VQ_TX 0
+#define VIRTIO_SCMI_VQ_RX 1
+#define VIRTIO_SCMI_VQ_MAX_CNT 2
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_snd.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_snd.h
new file mode 100644
index 0000000..60dfa62
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_snd.h
@@ -0,0 +1,224 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 VIRTIO_SND_IF_H
+#define VIRTIO_SND_IF_H
+#include <linux/virtio_types.h>
+struct virtio_snd_config {
+  __le32 jacks;
+  __le32 streams;
+  __le32 chmaps;
+};
+enum {
+  VIRTIO_SND_VQ_CONTROL = 0,
+  VIRTIO_SND_VQ_EVENT,
+  VIRTIO_SND_VQ_TX,
+  VIRTIO_SND_VQ_RX,
+  VIRTIO_SND_VQ_MAX
+};
+enum {
+  VIRTIO_SND_D_OUTPUT = 0,
+  VIRTIO_SND_D_INPUT
+};
+enum {
+  VIRTIO_SND_R_JACK_INFO = 1,
+  VIRTIO_SND_R_JACK_REMAP,
+  VIRTIO_SND_R_PCM_INFO = 0x0100,
+  VIRTIO_SND_R_PCM_SET_PARAMS,
+  VIRTIO_SND_R_PCM_PREPARE,
+  VIRTIO_SND_R_PCM_RELEASE,
+  VIRTIO_SND_R_PCM_START,
+  VIRTIO_SND_R_PCM_STOP,
+  VIRTIO_SND_R_CHMAP_INFO = 0x0200,
+  VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
+  VIRTIO_SND_EVT_JACK_DISCONNECTED,
+  VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
+  VIRTIO_SND_EVT_PCM_XRUN,
+  VIRTIO_SND_S_OK = 0x8000,
+  VIRTIO_SND_S_BAD_MSG,
+  VIRTIO_SND_S_NOT_SUPP,
+  VIRTIO_SND_S_IO_ERR
+};
+struct virtio_snd_hdr {
+  __le32 code;
+};
+struct virtio_snd_event {
+  struct virtio_snd_hdr hdr;
+  __le32 data;
+};
+struct virtio_snd_query_info {
+  struct virtio_snd_hdr hdr;
+  __le32 start_id;
+  __le32 count;
+  __le32 size;
+};
+struct virtio_snd_info {
+  __le32 hda_fn_nid;
+};
+struct virtio_snd_jack_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 jack_id;
+};
+enum {
+  VIRTIO_SND_JACK_F_REMAP = 0
+};
+struct virtio_snd_jack_info {
+  struct virtio_snd_info hdr;
+  __le32 features;
+  __le32 hda_reg_defconf;
+  __le32 hda_reg_caps;
+  __u8 connected;
+  __u8 padding[7];
+};
+struct virtio_snd_jack_remap {
+  struct virtio_snd_jack_hdr hdr;
+  __le32 association;
+  __le32 sequence;
+};
+struct virtio_snd_pcm_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 stream_id;
+};
+enum {
+  VIRTIO_SND_PCM_F_SHMEM_HOST = 0,
+  VIRTIO_SND_PCM_F_SHMEM_GUEST,
+  VIRTIO_SND_PCM_F_MSG_POLLING,
+  VIRTIO_SND_PCM_F_EVT_SHMEM_PERIODS,
+  VIRTIO_SND_PCM_F_EVT_XRUNS
+};
+enum {
+  VIRTIO_SND_PCM_FMT_IMA_ADPCM = 0,
+  VIRTIO_SND_PCM_FMT_MU_LAW,
+  VIRTIO_SND_PCM_FMT_A_LAW,
+  VIRTIO_SND_PCM_FMT_S8,
+  VIRTIO_SND_PCM_FMT_U8,
+  VIRTIO_SND_PCM_FMT_S16,
+  VIRTIO_SND_PCM_FMT_U16,
+  VIRTIO_SND_PCM_FMT_S18_3,
+  VIRTIO_SND_PCM_FMT_U18_3,
+  VIRTIO_SND_PCM_FMT_S20_3,
+  VIRTIO_SND_PCM_FMT_U20_3,
+  VIRTIO_SND_PCM_FMT_S24_3,
+  VIRTIO_SND_PCM_FMT_U24_3,
+  VIRTIO_SND_PCM_FMT_S20,
+  VIRTIO_SND_PCM_FMT_U20,
+  VIRTIO_SND_PCM_FMT_S24,
+  VIRTIO_SND_PCM_FMT_U24,
+  VIRTIO_SND_PCM_FMT_S32,
+  VIRTIO_SND_PCM_FMT_U32,
+  VIRTIO_SND_PCM_FMT_FLOAT,
+  VIRTIO_SND_PCM_FMT_FLOAT64,
+  VIRTIO_SND_PCM_FMT_DSD_U8,
+  VIRTIO_SND_PCM_FMT_DSD_U16,
+  VIRTIO_SND_PCM_FMT_DSD_U32,
+  VIRTIO_SND_PCM_FMT_IEC958_SUBFRAME
+};
+enum {
+  VIRTIO_SND_PCM_RATE_5512 = 0,
+  VIRTIO_SND_PCM_RATE_8000,
+  VIRTIO_SND_PCM_RATE_11025,
+  VIRTIO_SND_PCM_RATE_16000,
+  VIRTIO_SND_PCM_RATE_22050,
+  VIRTIO_SND_PCM_RATE_32000,
+  VIRTIO_SND_PCM_RATE_44100,
+  VIRTIO_SND_PCM_RATE_48000,
+  VIRTIO_SND_PCM_RATE_64000,
+  VIRTIO_SND_PCM_RATE_88200,
+  VIRTIO_SND_PCM_RATE_96000,
+  VIRTIO_SND_PCM_RATE_176400,
+  VIRTIO_SND_PCM_RATE_192000,
+  VIRTIO_SND_PCM_RATE_384000
+};
+struct virtio_snd_pcm_info {
+  struct virtio_snd_info hdr;
+  __le32 features;
+  __le64 formats;
+  __le64 rates;
+  __u8 direction;
+  __u8 channels_min;
+  __u8 channels_max;
+  __u8 padding[5];
+};
+struct virtio_snd_pcm_set_params {
+  struct virtio_snd_pcm_hdr hdr;
+  __le32 buffer_bytes;
+  __le32 period_bytes;
+  __le32 features;
+  __u8 channels;
+  __u8 format;
+  __u8 rate;
+  __u8 padding;
+};
+struct virtio_snd_pcm_xfer {
+  __le32 stream_id;
+};
+struct virtio_snd_pcm_status {
+  __le32 status;
+  __le32 latency_bytes;
+};
+struct virtio_snd_chmap_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 chmap_id;
+};
+enum {
+  VIRTIO_SND_CHMAP_NONE = 0,
+  VIRTIO_SND_CHMAP_NA,
+  VIRTIO_SND_CHMAP_MONO,
+  VIRTIO_SND_CHMAP_FL,
+  VIRTIO_SND_CHMAP_FR,
+  VIRTIO_SND_CHMAP_RL,
+  VIRTIO_SND_CHMAP_RR,
+  VIRTIO_SND_CHMAP_FC,
+  VIRTIO_SND_CHMAP_LFE,
+  VIRTIO_SND_CHMAP_SL,
+  VIRTIO_SND_CHMAP_SR,
+  VIRTIO_SND_CHMAP_RC,
+  VIRTIO_SND_CHMAP_FLC,
+  VIRTIO_SND_CHMAP_FRC,
+  VIRTIO_SND_CHMAP_RLC,
+  VIRTIO_SND_CHMAP_RRC,
+  VIRTIO_SND_CHMAP_FLW,
+  VIRTIO_SND_CHMAP_FRW,
+  VIRTIO_SND_CHMAP_FLH,
+  VIRTIO_SND_CHMAP_FCH,
+  VIRTIO_SND_CHMAP_FRH,
+  VIRTIO_SND_CHMAP_TC,
+  VIRTIO_SND_CHMAP_TFL,
+  VIRTIO_SND_CHMAP_TFR,
+  VIRTIO_SND_CHMAP_TFC,
+  VIRTIO_SND_CHMAP_TRL,
+  VIRTIO_SND_CHMAP_TRR,
+  VIRTIO_SND_CHMAP_TRC,
+  VIRTIO_SND_CHMAP_TFLC,
+  VIRTIO_SND_CHMAP_TFRC,
+  VIRTIO_SND_CHMAP_TSL,
+  VIRTIO_SND_CHMAP_TSR,
+  VIRTIO_SND_CHMAP_LLFE,
+  VIRTIO_SND_CHMAP_RLFE,
+  VIRTIO_SND_CHMAP_BC,
+  VIRTIO_SND_CHMAP_BLC,
+  VIRTIO_SND_CHMAP_BRC
+};
+#define VIRTIO_SND_CHMAP_MAX_SIZE 18
+struct virtio_snd_chmap_info {
+  struct virtio_snd_info hdr;
+  __u8 direction;
+  __u8 channels;
+  __u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE];
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
index 7a9e259..73b5d49 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
@@ -21,6 +21,7 @@
 #include <linux/types.h>
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
+#define VIRTIO_VSOCK_F_SEQPACKET 1
 struct virtio_vsock_config {
   __le64 guest_cid;
 } __attribute__((packed));
@@ -44,6 +45,7 @@
 } __attribute__((packed));
 enum virtio_vsock_type {
   VIRTIO_VSOCK_TYPE_STREAM = 1,
+  VIRTIO_VSOCK_TYPE_SEQPACKET = 2,
 };
 enum virtio_vsock_op {
   VIRTIO_VSOCK_OP_INVALID = 0,
@@ -59,4 +61,8 @@
   VIRTIO_VSOCK_SHUTDOWN_RCV = 1,
   VIRTIO_VSOCK_SHUTDOWN_SEND = 2,
 };
+enum virtio_vsock_rw {
+  VIRTIO_VSOCK_SEQ_EOM = 1,
+  VIRTIO_VSOCK_SEQ_EOR = 2,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vm_sockets.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
index 50e8456..58f720d 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
@@ -25,8 +25,14 @@
 #define SO_VM_SOCKETS_BUFFER_MAX_SIZE 2
 #define SO_VM_SOCKETS_PEER_HOST_VM_ID 3
 #define SO_VM_SOCKETS_TRUSTED 5
-#define SO_VM_SOCKETS_CONNECT_TIMEOUT 6
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD 6
 #define SO_VM_SOCKETS_NONBLOCK_TXRX 7
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW 8
+#if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD
+#else
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD : SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW)
+#endif
 #define VMADDR_CID_ANY - 1U
 #define VMADDR_PORT_ANY - 1U
 #define VMADDR_CID_HYPERVISOR 0
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/wwan.h
similarity index 81%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/wwan.h
index bb45c3d..9f68713 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/wwan.h
@@ -16,14 +16,12 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_WWAN_H_
+#define _UAPI_WWAN_H_
+enum {
+  IFLA_WWAN_UNSPEC,
+  IFLA_WWAN_LINK_ID,
+  __IFLA_WWAN_MAX
 };
+#define IFLA_WWAN_MAX (__IFLA_WWAN_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/xfrm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/xfrm.h
index b0e930c..f4df95f 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/xfrm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/linux/xfrm.h
@@ -182,6 +182,10 @@
 #define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO
   XFRM_MSG_MAPPING,
 #define XFRM_MSG_MAPPING XFRM_MSG_MAPPING
+  XFRM_MSG_SETDEFAULT,
+#define XFRM_MSG_SETDEFAULT XFRM_MSG_SETDEFAULT
+  XFRM_MSG_GETDEFAULT,
+#define XFRM_MSG_GETDEFAULT XFRM_MSG_GETDEFAULT
   __XFRM_MSG_MAX
 };
 #define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1)
@@ -261,6 +265,7 @@
   XFRMA_SET_MARK,
   XFRMA_SET_MARK_MASK,
   XFRMA_IF_ID,
+  XFRMA_MTIMER_THRESH,
   __XFRMA_MAX
 #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK
 #define XFRMA_MAX (__XFRMA_MAX - 1)
@@ -430,6 +435,14 @@
 };
 #define XFRM_OFFLOAD_IPV6 1
 #define XFRM_OFFLOAD_INBOUND 2
+struct xfrm_userpolicy_default {
+#define XFRM_USERPOLICY_UNSPEC 0
+#define XFRM_USERPOLICY_BLOCK 1
+#define XFRM_USERPOLICY_ACCEPT 2
+  __u8 in;
+  __u8 fwd;
+  __u8 out;
+};
 #define XFRMGRP_ACQUIRE 1
 #define XFRMGRP_EXPIRE 2
 #define XFRMGRP_SA 4
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/misc/habanalabs.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/misc/habanalabs.h
index b009023..6e3439a 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/misc/habanalabs.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/misc/habanalabs.h
@@ -208,11 +208,43 @@
   GAUDI_ENGINE_ID_NIC_9,
   GAUDI_ENGINE_ID_SIZE
 };
+enum hl_goya_pll_index {
+  HL_GOYA_CPU_PLL = 0,
+  HL_GOYA_IC_PLL,
+  HL_GOYA_MC_PLL,
+  HL_GOYA_MME_PLL,
+  HL_GOYA_PCI_PLL,
+  HL_GOYA_EMMC_PLL,
+  HL_GOYA_TPC_PLL,
+  HL_GOYA_PLL_MAX
+};
+enum hl_gaudi_pll_index {
+  HL_GAUDI_CPU_PLL = 0,
+  HL_GAUDI_PCI_PLL,
+  HL_GAUDI_SRAM_PLL,
+  HL_GAUDI_HBM_PLL,
+  HL_GAUDI_NIC_PLL,
+  HL_GAUDI_DMA_PLL,
+  HL_GAUDI_MESH_PLL,
+  HL_GAUDI_MME_PLL,
+  HL_GAUDI_TPC_PLL,
+  HL_GAUDI_IF_PLL,
+  HL_GAUDI_PLL_MAX
+};
 enum hl_device_status {
   HL_DEVICE_STATUS_OPERATIONAL,
   HL_DEVICE_STATUS_IN_RESET,
   HL_DEVICE_STATUS_MALFUNCTION,
-  HL_DEVICE_STATUS_NEEDS_RESET
+  HL_DEVICE_STATUS_NEEDS_RESET,
+  HL_DEVICE_STATUS_IN_DEVICE_CREATION,
+  HL_DEVICE_STATUS_LAST = HL_DEVICE_STATUS_IN_DEVICE_CREATION
+};
+enum hl_server_type {
+  HL_SERVER_TYPE_UNKNOWN = 0,
+  HL_SERVER_GAUDI_HLS1 = 1,
+  HL_SERVER_GAUDI_HLS1H = 2,
+  HL_SERVER_GAUDI_TYPE1 = 3,
+  HL_SERVER_GAUDI_TYPE2 = 4
 };
 #define HL_INFO_HW_IP_INFO 0
 #define HL_INFO_HW_EVENTS 1
@@ -230,6 +262,13 @@
 #define HL_INFO_SYNC_MANAGER 14
 #define HL_INFO_TOTAL_ENERGY 15
 #define HL_INFO_PLL_FREQUENCY 16
+#define HL_INFO_POWER 17
+#define HL_INFO_OPEN_STATS 18
+#define HL_INFO_DRAM_REPLACED_ROWS 21
+#define HL_INFO_DRAM_PENDING_ROWS 22
+#define HL_INFO_LAST_ERR_OPEN_DEV_TIME 23
+#define HL_INFO_CS_TIMEOUT_EVENT 24
+#define HL_INFO_RAZWI_EVENT 25
 #define HL_INFO_VERSION_MAX_LEN 128
 #define HL_INFO_CARD_NAME_MAX_LEN 16
 struct hl_info_hw_ip_info {
@@ -242,7 +281,7 @@
   __u32 module_id;
   __u32 reserved;
   __u16 first_available_interrupt_id;
-  __u16 reserved2;
+  __u16 server_type;
   __u32 cpld_version;
   __u32 psoc_pci_pll_nr;
   __u32 psoc_pci_pll_nf;
@@ -253,7 +292,7 @@
   __u8 pad[2];
   __u8 cpucp_version[HL_INFO_VERSION_MAX_LEN];
   __u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
-  __u64 reserved3;
+  __u64 reserved2;
   __u64 dram_page_size;
 };
 struct hl_info_dram_usage {
@@ -291,10 +330,18 @@
   __u64 tx_throughput;
   __u64 replay_cnt;
 };
-#define HL_CLK_THROTTLE_POWER 0x1
-#define HL_CLK_THROTTLE_THERMAL 0x2
+enum hl_clk_throttling_type {
+  HL_CLK_THROTTLE_TYPE_POWER,
+  HL_CLK_THROTTLE_TYPE_THERMAL,
+  HL_CLK_THROTTLE_TYPE_MAX
+};
+#define HL_CLK_THROTTLE_POWER (1 << HL_CLK_THROTTLE_TYPE_POWER)
+#define HL_CLK_THROTTLE_THERMAL (1 << HL_CLK_THROTTLE_TYPE_THERMAL)
 struct hl_info_clk_throttle {
   __u32 clk_throttling_reason;
+  __u32 pad;
+  __u64 clk_throttling_timestamp_us[HL_CLK_THROTTLE_TYPE_MAX];
+  __u64 clk_throttling_duration_ns[HL_CLK_THROTTLE_TYPE_MAX];
 };
 struct hl_info_energy {
   __u64 total_energy_consumption;
@@ -303,6 +350,13 @@
 struct hl_pll_frequency_info {
   __u16 output[HL_PLL_NUM_OUTPUTS];
 };
+struct hl_open_stats_info {
+  __u64 open_counter;
+  __u64 last_open_period_ms;
+};
+struct hl_power_info {
+  __u64 power;
+};
 struct hl_info_sync_manager {
   __u32 first_available_sync_object;
   __u32 first_available_monitor;
@@ -323,6 +377,24 @@
   __u64 total_validation_drop_cnt;
   __u64 ctx_validation_drop_cnt;
 };
+struct hl_info_last_err_open_dev_time {
+  __s64 timestamp;
+};
+struct hl_info_cs_timeout_event {
+  __s64 timestamp;
+  __u64 seq;
+};
+#define HL_RAZWI_PAGE_FAULT 0
+#define HL_RAZWI_MMU_ACCESS_ERROR 1
+struct hl_info_razwi_event {
+  __s64 timestamp;
+  __u64 addr;
+  __u16 engine_id_1;
+  __u16 engine_id_2;
+  __u8 no_engine_id;
+  __u8 error_type;
+  __u8 pad[2];
+};
 enum gaudi_dcores {
   HL_GAUDI_WS_DCORE,
   HL_GAUDI_WN_DCORE,
@@ -346,6 +418,7 @@
 #define HL_CB_OP_INFO 2
 #define HL_MAX_CB_SIZE (0x200000 - 32)
 #define HL_CB_FLAGS_MAP 0x1
+#define HL_CB_FLAGS_GET_DEVICE_VA 0x2
 struct hl_cb_in {
   __u64 cb_handle;
   __u32 op;
@@ -356,9 +429,12 @@
 struct hl_cb_out {
   union {
     __u64 cb_handle;
-    struct {
-      __u32 usage_cnt;
-      __u32 pad;
+    union {
+      struct {
+        __u32 usage_cnt;
+        __u32 pad;
+      };
+      __u64 device_va;
     };
   };
 };
@@ -371,11 +447,13 @@
   union {
     __u64 cb_handle;
     __u64 signal_seq_arr;
+    __u64 encaps_signal_seq;
   };
   __u32 queue_index;
   union {
     __u32 cb_size;
     __u32 num_signal_seq_arr;
+    __u32 encaps_signal_offset;
   };
   __u32 cs_chunk_flags;
   __u32 collective_engine_id;
@@ -389,47 +467,89 @@
 #define HL_CS_FLAGS_STAGED_SUBMISSION 0x40
 #define HL_CS_FLAGS_STAGED_SUBMISSION_FIRST 0x80
 #define HL_CS_FLAGS_STAGED_SUBMISSION_LAST 0x100
+#define HL_CS_FLAGS_CUSTOM_TIMEOUT 0x200
+#define HL_CS_FLAGS_SKIP_RESET_ON_TIMEOUT 0x400
+#define HL_CS_FLAGS_ENCAP_SIGNALS 0x800
+#define HL_CS_FLAGS_RESERVE_SIGNALS_ONLY 0x1000
+#define HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY 0x2000
 #define HL_CS_STATUS_SUCCESS 0
 #define HL_MAX_JOBS_PER_CS 512
 struct hl_cs_in {
   __u64 chunks_restore;
   __u64 chunks_execute;
   union {
-    __u64 chunks_store;
     __u64 seq;
+    __u32 encaps_sig_handle_id;
+    struct {
+      __u32 encaps_signals_count;
+      __u32 encaps_signals_q_idx;
+    };
   };
   __u32 num_chunks_restore;
   __u32 num_chunks_execute;
-  __u32 num_chunks_store;
+  __u32 timeout;
   __u32 cs_flags;
   __u32 ctx_id;
 };
 struct hl_cs_out {
-  __u64 seq;
+  union {
+    __u64 seq;
+    struct {
+      __u32 handle_id;
+      __u32 count;
+    };
+  };
   __u32 status;
-  __u32 pad;
+  __u32 sob_base_addr_offset;
+  __u16 sob_count_before_submission;
+  __u16 pad[3];
 };
 union hl_cs_args {
   struct hl_cs_in in;
   struct hl_cs_out out;
 };
+#define HL_WAIT_CS_FLAGS_INTERRUPT 0x2
+#define HL_WAIT_CS_FLAGS_INTERRUPT_MASK 0xFFF00000
+#define HL_WAIT_CS_FLAGS_MULTI_CS 0x4
+#define HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ 0x10
+#define HL_WAIT_MULTI_CS_LIST_MAX_LEN 32
 struct hl_wait_cs_in {
-  __u64 seq;
-  __u64 timeout_us;
+  union {
+    struct {
+      __u64 seq;
+      __u64 timeout_us;
+    };
+    struct {
+      union {
+        __u64 addr;
+        __u64 cq_counters_handle;
+      };
+      __u64 target;
+    };
+  };
   __u32 ctx_id;
-  __u32 pad;
+  __u32 flags;
+  union {
+    struct {
+      __u8 seq_arr_len;
+      __u8 pad[7];
+    };
+    __u64 interrupt_timeout_us;
+  };
+  __u64 cq_counters_offset;
 };
 #define HL_WAIT_CS_STATUS_COMPLETED 0
 #define HL_WAIT_CS_STATUS_BUSY 1
 #define HL_WAIT_CS_STATUS_TIMEDOUT 2
 #define HL_WAIT_CS_STATUS_ABORTED 3
-#define HL_WAIT_CS_STATUS_INTERRUPTED 4
 #define HL_WAIT_CS_STATUS_FLAG_GONE 0x1
 #define HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD 0x2
 struct hl_wait_cs_out {
   __u32 status;
   __u32 flags;
   __s64 timestamp_nsec;
+  __u32 cs_completion_map;
+  __u32 pad;
 };
 union hl_wait_cs_args {
   struct hl_wait_cs_in in;
@@ -440,9 +560,11 @@
 #define HL_MEM_OP_MAP 2
 #define HL_MEM_OP_UNMAP 3
 #define HL_MEM_OP_MAP_BLOCK 4
+#define HL_MEM_OP_EXPORT_DMABUF_FD 5
 #define HL_MEM_CONTIGUOUS 0x1
 #define HL_MEM_SHARED 0x2
 #define HL_MEM_USERPTR 0x4
+#define HL_MEM_FORCE_HINT 0x8
 struct hl_mem_in {
   union {
     struct {
@@ -466,6 +588,10 @@
     struct {
       __u64 device_virt_addr;
     } unmap;
+    struct {
+      __u64 handle;
+      __u64 mem_size;
+    } export_dmabuf_fd;
   };
   __u32 op;
   __u32 flags;
@@ -481,6 +607,7 @@
       __u32 block_size;
       __u32 pad;
     };
+    __s32 fd;
   };
 };
 union hl_mem_args {
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
index 49d9f6a..87757a9 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
@@ -25,5 +25,6 @@
 };
 #define HISI_QM_API_VER_BASE "hisi_qm_v1"
 #define HISI_QM_API_VER2_BASE "hisi_qm_v2"
+#define HISI_QM_API_VER3_BASE "hisi_qm_v3"
 #define UACCE_CMD_QM_SET_QP_CTX _IOWR('H', 10, struct hisi_qp_ctx)
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
index 680ac1e..50ae565 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
@@ -121,6 +121,7 @@
 #define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64)
 #define MEMISLOCKED _IOR('M', 23, struct erase_info_user)
 #define MEMWRITE _IOWR('M', 24, struct mtd_write_req)
+#define OTPERASE _IOW('M', 25, struct otp_info)
 struct nand_oobinfo {
   __u32 useecc;
   __u32 eccbytes;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
index 3e45dc3..62ba685 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
@@ -24,7 +24,13 @@
 #define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
 #define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
 enum {
-  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
+  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL,
+  BNXT_RE_UCNTX_CMASK_HAVE_MODE = 0x02ULL,
+};
+enum bnxt_re_wqe_mode {
+  BNXT_QPLIB_WQE_MODE_STATIC = 0x00,
+  BNXT_QPLIB_WQE_MODE_VARIABLE = 0x01,
+  BNXT_QPLIB_WQE_MODE_INVALID = 0x02,
 };
 struct bnxt_re_uctx_resp {
   __u32 dev_id;
@@ -36,6 +42,8 @@
   __aligned_u64 comp_mask;
   __u32 chip_id0;
   __u32 chip_id1;
+  __u32 mode;
+  __u32 rsvd1;
 };
 struct bnxt_re_pd_resp {
   __u32 pdid;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/efa-abi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
index f20e3e0..4b6842b 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
@@ -47,11 +47,18 @@
   __u16 pdn;
   __u8 reserved_30[2];
 };
+enum {
+  EFA_CREATE_CQ_WITH_COMPLETION_CHANNEL = 1 << 0,
+};
 struct efa_ibv_create_cq {
   __u32 comp_mask;
   __u32 cq_entry_size;
   __u16 num_sub_cqs;
-  __u8 reserved_50[6];
+  __u8 flags;
+  __u8 reserved_58[5];
+};
+enum {
+  EFA_CREATE_CQ_RESP_DB_OFF = 1 << 0,
 };
 struct efa_ibv_create_cq_resp {
   __u32 comp_mask;
@@ -59,7 +66,9 @@
   __aligned_u64 q_mmap_key;
   __aligned_u64 q_mmap_size;
   __u16 cq_idx;
-  __u8 reserved_d0[6];
+  __u8 reserved_d0[2];
+  __u32 db_off;
+  __aligned_u64 db_mmap_key;
 };
 enum {
   EFA_QP_DRIVER_TYPE_SRD = 0,
@@ -92,6 +101,7 @@
 enum {
   EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
   EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1,
+  EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2,
 };
 struct efa_ibv_ex_query_device_resp {
   __u32 comp_mask;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/hns-abi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
index ad3e460..9c8d028 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
@@ -54,13 +54,17 @@
   HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0,
   HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1,
   HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2,
+  HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5,
 };
 struct hns_roce_ib_create_qp_resp {
   __aligned_u64 cap_flags;
+  __aligned_u64 dwqe_mmap_key;
 };
 struct hns_roce_ib_alloc_ucontext_resp {
   __u32 qp_tab_size;
   __u32 cqe_size;
+  __u32 srq_tab_size;
+  __u32 reserved;
 };
 struct hns_roce_ib_alloc_pd_resp {
   __u32 pdn;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h
deleted file mode 100644
index 60a17f5..0000000
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h
+++ /dev/null
@@ -1,75 +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 I40IW_ABI_H
-#define I40IW_ABI_H
-#include <linux/types.h>
-#define I40IW_ABI_VER 5
-struct i40iw_alloc_ucontext_req {
-  __u32 reserved32;
-  __u8 userspace_ver;
-  __u8 reserved8[3];
-};
-struct i40iw_alloc_ucontext_resp {
-  __u32 max_pds;
-  __u32 max_qps;
-  __u32 wq_size;
-  __u8 kernel_ver;
-  __u8 reserved[3];
-};
-struct i40iw_alloc_pd_resp {
-  __u32 pd_id;
-  __u8 reserved[4];
-};
-struct i40iw_create_cq_req {
-  __aligned_u64 user_cq_buffer;
-  __aligned_u64 user_shadow_area;
-};
-struct i40iw_create_qp_req {
-  __aligned_u64 user_wqe_buffers;
-  __aligned_u64 user_compl_ctx;
-  __aligned_u64 user_sq_phb;
-  __aligned_u64 user_rq_phb;
-};
-enum i40iw_memreg_type {
-  IW_MEMREG_TYPE_MEM = 0x0000,
-  IW_MEMREG_TYPE_QP = 0x0001,
-  IW_MEMREG_TYPE_CQ = 0x0002,
-};
-struct i40iw_mem_reg_req {
-  __u16 reg_type;
-  __u16 cq_pages;
-  __u16 rq_pages;
-  __u16 sq_pages;
-};
-struct i40iw_create_cq_resp {
-  __u32 cq_id;
-  __u32 cq_size;
-  __u32 mmap_db_index;
-  __u32 reserved;
-};
-struct i40iw_create_qp_resp {
-  __u32 qp_id;
-  __u32 actual_sq_size;
-  __u32 actual_rq_size;
-  __u32 i40iw_drv_opt;
-  __u16 push_idx;
-  __u8 lsmm;
-  __u8 rsvd2;
-};
-#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
index c443738..3b94907 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
@@ -181,6 +181,7 @@
   RDMA_DRIVER_OCRDMA,
   RDMA_DRIVER_NES,
   RDMA_DRIVER_I40IW,
+  RDMA_DRIVER_IRDMA = RDMA_DRIVER_I40IW,
   RDMA_DRIVER_VMW_PVRDMA,
   RDMA_DRIVER_QEDR,
   RDMA_DRIVER_HNS,
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
index dadb590..04b9f08 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
@@ -61,7 +61,7 @@
 };
 struct ib_user_mad {
   struct ib_user_mad_hdr hdr;
-  __aligned_u64 data[0];
+  __aligned_u64 data[];
 };
 typedef unsigned long __attribute__((aligned(4))) packed_ulong;
 #define IB_USER_MAD_LONGS_PER_METHOD_MASK (128 / (8 * sizeof(long)))
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h
new file mode 100644
index 0000000..b6840cf
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h
@@ -0,0 +1,103 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 IRDMA_ABI_H
+#define IRDMA_ABI_H
+#include <linux/types.h>
+#define IRDMA_ABI_VER 5
+enum irdma_memreg_type {
+  IRDMA_MEMREG_TYPE_MEM = 0,
+  IRDMA_MEMREG_TYPE_QP = 1,
+  IRDMA_MEMREG_TYPE_CQ = 2,
+};
+struct irdma_alloc_ucontext_req {
+  __u32 rsvd32;
+  __u8 userspace_ver;
+  __u8 rsvd8[3];
+};
+struct irdma_alloc_ucontext_resp {
+  __u32 max_pds;
+  __u32 max_qps;
+  __u32 wq_size;
+  __u8 kernel_ver;
+  __u8 rsvd[3];
+  __aligned_u64 feature_flags;
+  __aligned_u64 db_mmap_key;
+  __u32 max_hw_wq_frags;
+  __u32 max_hw_read_sges;
+  __u32 max_hw_inline;
+  __u32 max_hw_rq_quanta;
+  __u32 max_hw_wq_quanta;
+  __u32 min_hw_cq_size;
+  __u32 max_hw_cq_size;
+  __u16 max_hw_sq_chunk;
+  __u8 hw_rev;
+  __u8 rsvd2;
+};
+struct irdma_alloc_pd_resp {
+  __u32 pd_id;
+  __u8 rsvd[4];
+};
+struct irdma_resize_cq_req {
+  __aligned_u64 user_cq_buffer;
+};
+struct irdma_create_cq_req {
+  __aligned_u64 user_cq_buf;
+  __aligned_u64 user_shadow_area;
+};
+struct irdma_create_qp_req {
+  __aligned_u64 user_wqe_bufs;
+  __aligned_u64 user_compl_ctx;
+};
+struct irdma_mem_reg_req {
+  __u16 reg_type;
+  __u16 cq_pages;
+  __u16 rq_pages;
+  __u16 sq_pages;
+};
+struct irdma_modify_qp_req {
+  __u8 sq_flush;
+  __u8 rq_flush;
+  __u8 rsvd[6];
+};
+struct irdma_create_cq_resp {
+  __u32 cq_id;
+  __u32 cq_size;
+};
+struct irdma_create_qp_resp {
+  __u32 qp_id;
+  __u32 actual_sq_size;
+  __u32 actual_rq_size;
+  __u32 irdma_drv_opt;
+  __u16 push_idx;
+  __u8 lsmm;
+  __u8 rsvd;
+  __u32 qp_caps;
+};
+struct irdma_modify_qp_resp {
+  __aligned_u64 push_wqe_mmap_key;
+  __aligned_u64 push_db_mmap_key;
+  __u16 push_offset;
+  __u8 push_valid;
+  __u8 rsvd[5];
+};
+struct irdma_create_ah_resp {
+  __u32 ah_id;
+  __u8 rsvd[4];
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
index 59a9f53..aadb20e 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
@@ -33,6 +33,7 @@
   MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
   MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9,
   MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10,
+  MLX5_QP_FLAG_DCI_STREAM = 1 << 11,
 };
 enum {
   MLX5_SRQ_FLAG_SIGNATURE = 1 << 0,
@@ -67,6 +68,8 @@
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1,
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2,
+  MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3,
+  MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4,
 };
 enum mlx5_user_cmds_supp_uhw {
   MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0,
@@ -163,6 +166,10 @@
   __u32 supported_qpts;
   __u32 reserved;
 };
+struct mlx5_ib_dci_streams_caps {
+  __u8 max_log_num_concurent;
+  __u8 max_log_num_errored;
+};
 enum mlx5_ib_query_dev_resp_flags {
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1,
@@ -188,11 +195,13 @@
   struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
   struct mlx5_ib_striding_rq_caps striding_rq_caps;
   __u32 tunnel_offloads_caps;
-  __u32 reserved;
+  struct mlx5_ib_dci_streams_caps dci_streams_caps;
+  __u16 reserved;
 };
 enum mlx5_ib_create_cq_flags {
   MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
   MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1,
+  MLX5_IB_CREATE_CQ_FLAGS_REAL_TIME_TS = 1 << 2,
 };
 struct mlx5_ib_create_cq {
   __aligned_u64 buf_addr;
@@ -227,6 +236,10 @@
   __u32 srqn;
   __u32 reserved;
 };
+struct mlx5_ib_create_qp_dci_streams {
+  __u8 log_num_concurent;
+  __u8 log_num_errored;
+};
 struct mlx5_ib_create_qp {
   __aligned_u64 buf_addr;
   __aligned_u64 db_addr;
@@ -241,7 +254,8 @@
     __aligned_u64 access_key;
   };
   __u32 ece_options;
-  __u32 reserved;
+  struct mlx5_ib_create_qp_dci_streams dci_streams;
+  __u16 reserved;
 };
 enum mlx5_rx_hash_function_flags {
   MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
index 804a90b..862abcb 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -23,6 +23,22 @@
 enum mlx5_ib_create_flow_action_attrs {
   MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_dm_methods {
+  MLX5_IB_METHOD_DM_MAP_OP_ADDR = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_METHOD_DM_QUERY,
+};
+enum mlx5_ib_dm_map_op_addr_attrs {
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_OP,
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_START_OFFSET,
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_PAGE_INDEX,
+};
+enum mlx5_ib_query_dm_attrs {
+  MLX5_IB_ATTR_QUERY_DM_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_QUERY_DM_RESP_START_OFFSET,
+  MLX5_IB_ATTR_QUERY_DM_RESP_PAGE_INDEX,
+  MLX5_IB_ATTR_QUERY_DM_RESP_LENGTH,
+};
 enum mlx5_ib_alloc_dm_attrs {
   MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
   MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
@@ -118,6 +134,7 @@
   MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
   MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
   MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
+  MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP,
 };
 enum mlx5_ib_devx_umem_dereg_attrs {
   MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
@@ -181,7 +198,7 @@
 enum mlx5_ib_device_query_context_attrs {
   MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
 };
-#define MLX5_IB_DW_MATCH_PARAM 0x90
+#define MLX5_IB_DW_MATCH_PARAM 0xA0
 struct mlx5_ib_match_params {
   __u32 match_params[MLX5_IB_DW_MATCH_PARAM];
 };
@@ -236,4 +253,11 @@
 enum mlx5_ib_pd_methods {
   MLX5_IB_METHOD_PD_QUERY = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_device_methods {
+  MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum mlx5_ib_query_port_attrs {
+  MLX5_IB_ATTR_QUERY_PORT_PORT_NUM = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_QUERY_PORT,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
index bfbfd76..c3c3f89 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -58,4 +58,26 @@
   MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF = 0x0,
   MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1,
 };
+enum mlx5_ib_uapi_query_port_flags {
+  MLX5_IB_UAPI_QUERY_PORT_VPORT = 1 << 0,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_VHCA_ID = 1 << 1,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_RX = 1 << 2,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_TX = 1 << 3,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_REG_C0 = 1 << 4,
+  MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID = 1 << 5,
+};
+struct mlx5_ib_uapi_reg {
+  __u32 value;
+  __u32 mask;
+};
+struct mlx5_ib_uapi_query_port {
+  __aligned_u64 flags;
+  __u16 vport;
+  __u16 vport_vhca_id;
+  __u16 esw_owner_vhca_id;
+  __u16 rsvd0;
+  __aligned_u64 vport_steering_icm_rx;
+  __aligned_u64 vport_steering_icm_tx;
+  struct mlx5_ib_uapi_reg reg_c0;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
index 48444da..bdb5fdd 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
@@ -207,6 +207,9 @@
   RDMA_NLDEV_CMD_RES_QP_GET_RAW,
   RDMA_NLDEV_CMD_RES_CQ_GET_RAW,
   RDMA_NLDEV_CMD_RES_MR_GET_RAW,
+  RDMA_NLDEV_CMD_RES_CTX_GET,
+  RDMA_NLDEV_CMD_RES_SRQ_GET,
+  RDMA_NLDEV_CMD_STAT_GET_STATUS,
   RDMA_NLDEV_NUM_OPS
 };
 enum rdma_nldev_print_type {
@@ -301,6 +304,16 @@
   RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY_VALUE,
   RDMA_NLDEV_ATTR_DEV_DIM,
   RDMA_NLDEV_ATTR_RES_RAW,
+  RDMA_NLDEV_ATTR_RES_CTX,
+  RDMA_NLDEV_ATTR_RES_CTX_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SRQ,
+  RDMA_NLDEV_ATTR_RES_SRQ_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SRQN,
+  RDMA_NLDEV_ATTR_MIN_RANGE,
+  RDMA_NLDEV_ATTR_MAX_RANGE,
+  RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK,
+  RDMA_NLDEV_ATTR_STAT_HWCOUNTER_INDEX,
+  RDMA_NLDEV_ATTR_STAT_HWCOUNTER_DYNAMIC,
   RDMA_NLDEV_ATTR_MAX
 };
 enum rdma_nl_counter_mode {
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
index 9618734..7b1f7ee 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
@@ -88,7 +88,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 reserved;
-  struct sockaddr_storage addr;
+  struct __kernel_sockaddr_storage addr;
 };
 struct rdma_ucm_resolve_ip {
   struct sockaddr_in6 src_addr;
@@ -102,8 +102,8 @@
   __u16 src_size;
   __u16 dst_size;
   __u32 reserved;
-  struct sockaddr_storage src_addr;
-  struct sockaddr_storage dst_addr;
+  struct __kernel_sockaddr_storage src_addr;
+  struct __kernel_sockaddr_storage dst_addr;
 };
 struct rdma_ucm_resolve_route {
   __u32 id;
@@ -137,8 +137,8 @@
   __u16 pkey;
   __u16 src_size;
   __u16 dst_size;
-  struct sockaddr_storage src_addr;
-  struct sockaddr_storage dst_addr;
+  struct __kernel_sockaddr_storage src_addr;
+  struct __kernel_sockaddr_storage dst_addr;
   __u32 ibdev_index;
   __u32 reserved1;
 };
@@ -225,7 +225,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 join_flags;
-  struct sockaddr_storage addr;
+  struct __kernel_sockaddr_storage addr;
 };
 struct rdma_ucm_get_event {
   __aligned_u64 response;
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
index 9fd21d7..cdb00c7 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
@@ -76,15 +76,19 @@
       __u32 remote_qpn;
       __u32 remote_qkey;
       __u16 pkey_index;
+      __u16 reserved;
+      __u32 ah_num;
+      __u32 pad[4];
+      struct rxe_av av;
     } ud;
     struct {
-      union {
-        struct ib_mr * mr;
-        __aligned_u64 reserved;
-      };
-      __u32 key;
+      __aligned_u64 addr;
+      __aligned_u64 length;
+      __u32 mr_lkey;
+      __u32 mw_rkey;
+      __u32 rkey;
       __u32 access;
-    } reg;
+    } mw;
   } wr;
 };
 struct rxe_sge {
@@ -105,13 +109,12 @@
   __u32 sge_offset;
   __u32 reserved;
   union {
-    __u8 inline_data[0];
-    struct rxe_sge sge[0];
+    __DECLARE_FLEX_ARRAY(__u8, inline_data);
+    __DECLARE_FLEX_ARRAY(struct rxe_sge, sge);
   };
 };
 struct rxe_send_wqe {
   struct rxe_send_wr wr;
-  struct rxe_av av;
   __u32 status;
   __u32 state;
   __aligned_u64 iova;
@@ -129,6 +132,10 @@
   __u32 padding;
   struct rxe_dma_info dma;
 };
+struct rxe_create_ah_resp {
+  __u32 ah_num;
+  __u32 reserved;
+};
 struct rxe_create_cq_resp {
   struct mminfo mi;
 };
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
index f31e764..04ae5b8 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
@@ -42,6 +42,7 @@
   ELS_REC = 0x13,
   ELS_SRR = 0x14,
   ELS_FPIN = 0x16,
+  ELS_EDC = 0x17,
   ELS_RDP = 0x18,
   ELS_RDF = 0x19,
   ELS_PRLI = 0x20,
@@ -85,7 +86,7 @@
   ELS_LKA = 0x80,
   ELS_AUTH_ELS = 0x90,
 };
-#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_RDP] = "RDP",[ELS_RDF] = "RDF",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \
+#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_EDC] = "EDC",[ELS_RDP] = "RDP",[ELS_RDF] = "RDF",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \
 }
 struct fc_els_ls_acc {
   __u8 la_cmd;
@@ -128,13 +129,15 @@
 };
 enum fc_ls_tlv_dtag {
   ELS_DTAG_LS_REQ_INFO = 0x00000001,
+  ELS_DTAG_LNK_FAULT_CAP = 0x0001000D,
+  ELS_DTAG_CG_SIGNAL_CAP = 0x0001000F,
   ELS_DTAG_LNK_INTEGRITY = 0x00020001,
   ELS_DTAG_DELIVERY = 0x00020002,
   ELS_DTAG_PEER_CONGEST = 0x00020003,
   ELS_DTAG_CONGESTION = 0x00020004,
   ELS_DTAG_FPIN_REGISTER = 0x00030001,
 };
-#define FC_LS_TLV_DTAG_INIT { { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, { ELS_DTAG_CONGESTION, "Congestion Notification" }, { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
+#define FC_LS_TLV_DTAG_INIT { { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, { ELS_DTAG_LNK_FAULT_CAP, "Link Fault Capability" }, { ELS_DTAG_CG_SIGNAL_CAP, "Congestion Signaling Capability" }, { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, { ELS_DTAG_CONGESTION, "Congestion Notification" }, { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
 }
 struct fc_tlv_desc {
   __be32 desc_tag;
@@ -668,4 +671,48 @@
   struct fc_els_lsri_desc lsri;
   struct fc_tlv_desc desc[0];
 };
+struct fc_diag_lnkflt_desc {
+  __be32 desc_tag;
+  __be32 desc_len;
+  __be32 degrade_activate_threshold;
+  __be32 degrade_deactivate_threshold;
+  __be32 fec_degrade_interval;
+};
+enum fc_edc_cg_signal_cap_types {
+  EDC_CG_SIG_NOTSUPPORTED = 0x00,
+  EDC_CG_SIG_WARN_ONLY = 0x01,
+  EDC_CG_SIG_WARN_ALARM = 0x02,
+};
+#define FC_EDC_CG_SIGNAL_CAP_TYPES_INIT { { EDC_CG_SIG_NOTSUPPORTED, "Signaling Not Supported" }, { EDC_CG_SIG_WARN_ONLY, "Warning Signal" }, { EDC_CG_SIG_WARN_ALARM, "Warning and Alarm Signals" }, \
+}
+enum fc_diag_cg_sig_freq_types {
+  EDC_CG_SIGFREQ_CNT_MIN = 1,
+  EDC_CG_SIGFREQ_CNT_MAX = 999,
+  EDC_CG_SIGFREQ_SEC = 0x1,
+  EDC_CG_SIGFREQ_MSEC = 0x2,
+};
+struct fc_diag_cg_sig_freq {
+  __be16 count;
+  __be16 units;
+};
+struct fc_diag_cg_sig_desc {
+  __be32 desc_tag;
+  __be32 desc_len;
+  __be32 xmt_signal_capability;
+  struct fc_diag_cg_sig_freq xmt_signal_frequency;
+  __be32 rcv_signal_capability;
+  struct fc_diag_cg_sig_freq rcv_signal_frequency;
+};
+struct fc_els_edc {
+  __u8 edc_cmd;
+  __u8 edc_zero[3];
+  __be32 desc_len;
+  struct fc_tlv_desc desc[0];
+};
+struct fc_els_edc_resp {
+  struct fc_els_ls_acc acc_hdr;
+  __be32 desc_list_len;
+  struct fc_els_lsri_desc lsri;
+  struct fc_tlv_desc desc[0];
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/asoc.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/asoc.h
index c962603..eeb12b0 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/asoc.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/asoc.h
@@ -157,8 +157,8 @@
 struct snd_soc_tplg_private {
   __le32 size;
   union {
-    char data[0];
-    struct snd_soc_tplg_vendor_array array[0];
+    __DECLARE_FLEX_ARRAY(char, data);
+    __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_array, array);
   };
 } __attribute__((packed));
 struct snd_soc_tplg_tlv_dbscale {
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/asound.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/asound.h
index 397cccc..b0e47c1 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/asound.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/asound.h
@@ -32,8 +32,9 @@
 #define SNDRV_PROTOCOL_MINOR(version) (((version) >> 8) & 0xff)
 #define SNDRV_PROTOCOL_MICRO(version) ((version) & 0xff)
 #define SNDRV_PROTOCOL_INCOMPATIBLE(kversion,uversion) (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion)))
+#define AES_IEC958_STATUS_SIZE 24
 struct snd_aes_iec958 {
-  unsigned char status[24];
+  unsigned char status[AES_IEC958_STATUS_SIZE];
   unsigned char subcode[147];
   unsigned char pad;
   unsigned char dig_subframe[4];
@@ -234,6 +235,8 @@
 #define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME 0x02000000
 #define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME 0x04000000
 #define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000
+#define SNDRV_PCM_INFO_EXPLICIT_SYNC 0x10000000
+#define SNDRV_PCM_INFO_NO_REWINDS 0x20000000
 #define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000
 #define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000
 #if __BITS_PER_LONG == 32 && defined(__USE_TIME_BITS64)
@@ -562,7 +565,7 @@
 #define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern)
 #define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int)
 #define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61)
-#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 1)
+#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 2)
 enum {
   SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
   SNDRV_RAWMIDI_STREAM_INPUT,
@@ -584,12 +587,32 @@
   unsigned int subdevices_avail;
   unsigned char reserved[64];
 };
+#define SNDRV_RAWMIDI_MODE_FRAMING_MASK (7 << 0)
+#define SNDRV_RAWMIDI_MODE_FRAMING_SHIFT 0
+#define SNDRV_RAWMIDI_MODE_FRAMING_NONE (0 << 0)
+#define SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP (1 << 0)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MASK (7 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_SHIFT 3
+#define SNDRV_RAWMIDI_MODE_CLOCK_NONE (0 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_REALTIME (1 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC (2 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC_RAW (3 << 3)
+#define SNDRV_RAWMIDI_FRAMING_DATA_LENGTH 16
+struct snd_rawmidi_framing_tstamp {
+  __u8 frame_type;
+  __u8 length;
+  __u8 reserved[2];
+  __u32 tv_nsec;
+  __u64 tv_sec;
+  __u8 data[SNDRV_RAWMIDI_FRAMING_DATA_LENGTH];
+} __packed;
 struct snd_rawmidi_params {
   int stream;
   size_t buffer_size;
   size_t avail_min;
   unsigned int no_active_sensing : 1;
-  unsigned char reserved[16];
+  unsigned int mode;
+  unsigned char reserved[12];
 };
 struct snd_rawmidi_status {
   int stream;
@@ -601,6 +624,7 @@
 };
 #define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
 #define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
+#define SNDRV_RAWMIDI_IOCTL_USER_PVERSION _IOW('W', 0x02, int)
 #define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params)
 #define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status)
 #define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int)
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/firewire.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/firewire.h
index 67c010b..198a8f4 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/firewire.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/firewire.h
@@ -26,6 +26,7 @@
 #define SNDRV_FIREWIRE_EVENT_DIGI00X_MESSAGE 0x746e736c
 #define SNDRV_FIREWIRE_EVENT_MOTU_NOTIFICATION 0x64776479
 #define SNDRV_FIREWIRE_EVENT_TASCAM_CONTROL 0x7473636d
+#define SNDRV_FIREWIRE_EVENT_MOTU_REGISTER_DSP_CHANGE 0x4d545244
 struct snd_firewire_event_common {
   unsigned int type;
 };
@@ -68,6 +69,11 @@
   unsigned int type;
   struct snd_firewire_tascam_change changes[0];
 };
+struct snd_firewire_event_motu_register_dsp_change {
+  unsigned int type;
+  __u32 count;
+  __u32 changes[];
+};
 union snd_firewire_event {
   struct snd_firewire_event_common common;
   struct snd_firewire_event_lock_status lock_status;
@@ -76,11 +82,15 @@
   struct snd_firewire_event_digi00x_message digi00x_message;
   struct snd_firewire_event_tascam_control tascam_control;
   struct snd_firewire_event_motu_notification motu_notification;
+  struct snd_firewire_event_motu_register_dsp_change motu_register_dsp_change;
 };
 #define SNDRV_FIREWIRE_IOCTL_GET_INFO _IOR('H', 0xf8, struct snd_firewire_get_info)
 #define SNDRV_FIREWIRE_IOCTL_LOCK _IO('H', 0xf9)
 #define SNDRV_FIREWIRE_IOCTL_UNLOCK _IO('H', 0xfa)
 #define SNDRV_FIREWIRE_IOCTL_TASCAM_STATE _IOR('H', 0xfb, struct snd_firewire_tascam_state)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_METER _IOR('H', 0xfc, struct snd_firewire_motu_register_dsp_meter)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_COMMAND_DSP_METER _IOR('H', 0xfd, struct snd_firewire_motu_command_dsp_meter)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_PARAMETER _IOR('H', 0xfe, struct snd_firewire_motu_register_dsp_parameter)
 #define SNDRV_FIREWIRE_TYPE_DICE 1
 #define SNDRV_FIREWIRE_TYPE_FIREWORKS 2
 #define SNDRV_FIREWIRE_TYPE_BEBOB 3
@@ -99,4 +109,49 @@
 struct snd_firewire_tascam_state {
   __be32 data[SNDRV_FIREWIRE_TASCAM_STATE_COUNT];
 };
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT 24
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT 24
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT + SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT)
+struct snd_firewire_motu_register_dsp_meter {
+  __u8 data[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT];
+};
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT 4
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT 20
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT 10
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT + 2)
+struct snd_firewire_motu_register_dsp_parameter {
+  struct {
+    struct {
+      __u8 gain[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 pan[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 paired_balance[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 paired_width[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+    } source[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+    struct {
+      __u8 paired_volume[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+      __u8 paired_flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+    } output;
+  } mixer;
+  struct {
+    __u8 main_paired_volume;
+    __u8 hp_paired_volume;
+    __u8 hp_paired_assignment;
+    __u8 reserved[5];
+  } output;
+  struct {
+    __u8 boost_flag;
+    __u8 nominal_level_flag;
+    __u8 reserved[6];
+  } line_input;
+  struct {
+    __u8 gain_and_invert[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
+    __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
+  } input;
+  __u8 reserved[64];
+};
+#define SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT 400
+struct snd_firewire_motu_command_dsp_meter {
+  float data[SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT];
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h
new file mode 100644
index 0000000..39c0684
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __SND_AR_TOKENS_H__
+#define __SND_AR_TOKENS_H__
+#define APM_SUB_GRAPH_PERF_MODE_LOW_POWER 0x1
+#define APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY 0x2
+#define APM_SUB_GRAPH_DIRECTION_TX 0x1
+#define APM_SUB_GRAPH_DIRECTION_RX 0x2
+#define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK 0x1
+#define APM_SUB_GRAPH_SID_AUDIO_RECORD 0x2
+#define APM_SUB_GRAPH_SID_VOICE_CALL 0x3
+#define APM_CONTAINER_CAP_ID_PP 0x1
+#define APM_CONTAINER_CAP_ID_CD 0x2
+#define APM_CONTAINER_CAP_ID_EP 0x3
+#define APM_CONTAINER_CAP_ID_OLC 0x4
+#define APM_CONT_GRAPH_POS_STREAM 0x1
+#define APM_CONT_GRAPH_POS_PER_STR_PER_DEV 0x2
+#define APM_CONT_GRAPH_POS_STR_DEV 0x3
+#define APM_CONT_GRAPH_POS_GLOBAL_DEV 0x4
+#define APM_PROC_DOMAIN_ID_MDSP 0x1
+#define APM_PROC_DOMAIN_ID_ADSP 0x2
+#define APM_PROC_DOMAIN_ID_SDSP 0x4
+#define APM_PROC_DOMAIN_ID_CDSP 0x5
+#define PCM_INTERLEAVED 1
+#define PCM_DEINTERLEAVED_PACKED 2
+#define PCM_DEINTERLEAVED_UNPACKED 3
+#define AR_I2S_WS_SRC_EXTERNAL 0
+#define AR_I2S_WS_SRC_INTERNAL 1
+enum ar_event_types {
+  AR_EVENT_NONE = 0,
+  AR_PGA_DAPM_EVENT
+};
+#define SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX 256
+#define SND_SOC_AR_TPLG_VOL_CTL 257
+#define AR_TKN_DAI_INDEX 1
+#define AR_TKN_U32_SUB_GRAPH_INSTANCE_ID 2
+#define AR_TKN_U32_SUB_GRAPH_PERF_MODE 3
+#define AR_TKN_U32_SUB_GRAPH_DIRECTION 4
+#define AR_TKN_U32_SUB_GRAPH_SCENARIO_ID 5
+#define AR_TKN_U32_CONTAINER_INSTANCE_ID 100
+#define AR_TKN_U32_CONTAINER_CAPABILITY_ID 101
+#define AR_TKN_U32_CONTAINER_STACK_SIZE 102
+#define AR_TKN_U32_CONTAINER_GRAPH_POS 103
+#define AR_TKN_U32_CONTAINER_PROC_DOMAIN 104
+#define AR_TKN_U32_MODULE_ID 200
+#define AR_TKN_U32_MODULE_INSTANCE_ID 201
+#define AR_TKN_U32_MODULE_MAX_IP_PORTS 202
+#define AR_TKN_U32_MODULE_MAX_OP_PORTS 203
+#define AR_TKN_U32_MODULE_IN_PORTS 204
+#define AR_TKN_U32_MODULE_OUT_PORTS 205
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID 206
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID 207
+#define AR_TKN_U32_MODULE_SRC_INSTANCE_ID 208
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID 209
+#define AR_TKN_U32_MODULE_HW_IF_IDX 250
+#define AR_TKN_U32_MODULE_HW_IF_TYPE 251
+#define AR_TKN_U32_MODULE_FMT_INTERLEAVE 252
+#define AR_TKN_U32_MODULE_FMT_DATA 253
+#define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE 254
+#define AR_TKN_U32_MODULE_FMT_BIT_DEPTH 255
+#define AR_TKN_U32_MODULE_SD_LINE_IDX 256
+#define AR_TKN_U32_MODULE_WS_SRC 257
+#define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR 258
+#define AR_TKN_U32_MODULE_LOG_CODE 259
+#define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID 260
+#define AR_TKN_U32_MODULE_LOG_MODE 261
+#endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
index 85a99c7..bf012fa 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
@@ -97,6 +97,7 @@
   SKL_TKN_U32_ASTATE_COUNT,
   SKL_TKN_U32_ASTATE_KCPS,
   SKL_TKN_U32_ASTATE_CLK_SRC,
-  SKL_TKN_MAX = SKL_TKN_U32_ASTATE_CLK_SRC,
+  SKL_TKN_U32_FMT_CFG_IDX = 96,
+  SKL_TKN_MAX = SKL_TKN_U32_FMT_CFG_IDX,
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/sof/tokens.h b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
index ef62372..856281a 100644
--- a/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
+++ b/mainline/runtime/sdk/android/x86/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
@@ -36,6 +36,7 @@
 #define SOF_TKN_SCHED_CORE 203
 #define SOF_TKN_SCHED_FRAMES 204
 #define SOF_TKN_SCHED_TIME_DOMAIN 205
+#define SOF_TKN_SCHED_DYNAMIC_PIPELINE 206
 #define SOF_TKN_VOLUME_RAMP_STEP_TYPE 250
 #define SOF_TKN_VOLUME_RAMP_STEP_MS 251
 #define SOF_TKN_SRC_RATE_IN 300
@@ -86,4 +87,7 @@
 #define SOF_TKN_INTEL_ALH_CH 1401
 #define SOF_TKN_INTEL_HDA_RATE 1500
 #define SOF_TKN_INTEL_HDA_CH 1501
+#define SOF_TKN_MEDIATEK_AFE_RATE 1600
+#define SOF_TKN_MEDIATEK_AFE_CH 1601
+#define SOF_TKN_MEDIATEK_AFE_FORMAT 1602
 #endif
diff --git a/mainline/runtime/sdk/android/x86/lib/crtbegin_dynamic.o b/mainline/runtime/sdk/android/x86/lib/crtbegin_dynamic.o
index 60e0e22..25d1a2b 100644
--- a/mainline/runtime/sdk/android/x86/lib/crtbegin_dynamic.o
+++ b/mainline/runtime/sdk/android/x86/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86/lib/crtbegin_so.o b/mainline/runtime/sdk/android/x86/lib/crtbegin_so.o
index 56943f5..827166b 100644
--- a/mainline/runtime/sdk/android/x86/lib/crtbegin_so.o
+++ b/mainline/runtime/sdk/android/x86/lib/crtbegin_so.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86/lib/crtend.o b/mainline/runtime/sdk/android/x86/lib/crtend.o
index c492c2a..09b19ca 100644
--- a/mainline/runtime/sdk/android/x86/lib/crtend.o
+++ b/mainline/runtime/sdk/android/x86/lib/crtend.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86/lib/crtend_so.o b/mainline/runtime/sdk/android/x86/lib/crtend_so.o
index e8e9797..3bbe1cf 100644
--- a/mainline/runtime/sdk/android/x86/lib/crtend_so.o
+++ b/mainline/runtime/sdk/android/x86/lib/crtend_so.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86/lib/libasync_safe.a b/mainline/runtime/sdk/android/x86/lib/libasync_safe.a
index 1c811b4..6c16d58 100644
--- a/mainline/runtime/sdk/android/x86/lib/libasync_safe.a
+++ b/mainline/runtime/sdk/android/x86/lib/libasync_safe.a
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86/lib/libc.so b/mainline/runtime/sdk/android/x86/lib/libc.so
index 1451d62..9d94b6e 100755
--- a/mainline/runtime/sdk/android/x86/lib/libc.so
+++ b/mainline/runtime/sdk/android/x86/lib/libc.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86/lib/libdl.so b/mainline/runtime/sdk/android/x86/lib/libdl.so
index eeada83..69bbd4f 100755
--- a/mainline/runtime/sdk/android/x86/lib/libdl.so
+++ b/mainline/runtime/sdk/android/x86/lib/libdl.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86/lib/libdl_android.so b/mainline/runtime/sdk/android/x86/lib/libdl_android.so
index f833163..25d6e97 100755
--- a/mainline/runtime/sdk/android/x86/lib/libdl_android.so
+++ b/mainline/runtime/sdk/android/x86/lib/libdl_android.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86/lib/libm.so b/mainline/runtime/sdk/android/x86/lib/libm.so
index 304016f..0f2a877 100755
--- a/mainline/runtime/sdk/android/x86/lib/libm.so
+++ b/mainline/runtime/sdk/android/x86/lib/libm.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/api-level.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/api-level.h
index 40846fb..ecf318d 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/api-level.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/api-level.h
@@ -151,6 +151,9 @@
 /** Names the "S" API level (31), for comparison against `__ANDROID_API__`. */
 #define __ANDROID_API_S__ 31
 
+/** Names the "T" API level (33), for comparison against `__ANDROID_API__`. */
+#define __ANDROID_API_T__ 33
+
 /* This file is included in <features.h>, and might be used from .S files. */
 #if !defined(__ASSEMBLY__)
 
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/legacy_signal_inlines.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/legacy_signal_inlines.h
index 95c2320..f2bdcf6 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/legacy_signal_inlines.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/legacy_signal_inlines.h
@@ -89,7 +89,7 @@
     errno = EINVAL;
     return -1;
   }
-  return (int)((local_set[bit / LONG_BIT] >> (bit % LONG_BIT)) & 1);
+  return (int)((local_set[bit / (8 * sizeof(long))] >> (bit % (8 * sizeof(long)))) & 1);
 }
 
 static __inline int sigaddset(sigset_t *set, int signum) {
@@ -100,7 +100,7 @@
     errno = EINVAL;
     return -1;
   }
-  local_set[bit / LONG_BIT] |= 1UL << (bit % LONG_BIT);
+  local_set[bit / (8 * sizeof(long))] |= 1UL << (bit % (8 * sizeof(long)));
   return 0;
 }
 
@@ -112,7 +112,7 @@
     errno = EINVAL;
     return -1;
   }
-  local_set[bit / LONG_BIT] &= ~(1UL << (bit % LONG_BIT));
+  local_set[bit / (8 * sizeof(long))] &= ~(1UL << (bit % (8 * sizeof(long))));
   return 0;
 }
 
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/versioning.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/versioning.h
index 214acf2..efe4354 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/versioning.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/android/versioning.h
@@ -51,7 +51,7 @@
 // those APIs will still cause a link error.
 #if defined(__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__)
 #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,__what)))
-#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
+#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN(api_level)
 #define __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
 #else
 #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what)))
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/fortify/stdio.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/fortify/stdio.h
index 42698dd..77bdbb4 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/fortify/stdio.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/fortify/stdio.h
@@ -40,6 +40,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE __printflike(3, 0)
 int vsnprintf(char* const __pass_object_size dest, size_t size, const char* format, va_list ap)
+        __diagnose_as_builtin(__builtin_vsnprintf, 1, 2, 3, 4)
         __overloadable {
     return __builtin___vsnprintf_chk(dest, size, 0, __bos(dest), format, ap);
 }
@@ -70,6 +71,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_VARIADIC __printflike(3, 4)
 int snprintf(char* const __pass_object_size dest, size_t size, const char* format, ...)
+        __diagnose_as_builtin(__builtin_snprintf, 1, 2, 3)
         __overloadable {
     va_list va;
     va_start(va, format);
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/fortify/string.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/fortify/string.h
index beb5ff5..08bce2d 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/fortify/string.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/fortify/string.h
@@ -44,13 +44,16 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 void* memcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+        __diagnose_as_builtin(__builtin_memcpy, 1, 2, 3)
         __overloadable {
     return __builtin___memcpy_chk(dst, src, copy_amount, __bos0(dst));
 }
 
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-void* memmove(void* const dst __pass_object_size0, const void* src, size_t len) __overloadable {
+void* memmove(void* const dst __pass_object_size0, const void* src, size_t len)
+        __diagnose_as_builtin(__builtin_memmove, 1, 2, 3)
+        __overloadable {
     return __builtin___memmove_chk(dst, src, len, __bos0(dst));
 }
 #endif
@@ -59,6 +62,7 @@
 #if __ANDROID_API__ >= 30
 __BIONIC_FORTIFY_INLINE
 void* mempcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+        __diagnose_as_builtin(__builtin_mempcpy, 1, 2, 3)
         __overloadable
         __clang_error_if(__bos_unevaluated_lt(__bos0(dst), copy_amount),
                          "'mempcpy' called with size bigger than buffer") {
@@ -87,6 +91,7 @@
 
 __BIONIC_FORTIFY_INLINE
 char* strcpy(char* const dst __pass_object_size, const char* src)
+        __diagnose_as_builtin(__builtin_strcpy, 1, 2)
         __overloadable
         __clang_error_if(__bos_unevaluated_le(__bos(dst), __builtin_strlen(src)),
                          "'strcpy' called with string bigger than buffer") {
@@ -112,7 +117,9 @@
 #if __ANDROID_API__ >= 17 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-char* strncat(char* const dst __pass_object_size, const char* src, size_t n) __overloadable {
+char* strncat(char* const dst __pass_object_size, const char* src, size_t n)
+       __diagnose_as_builtin(__builtin_strncat, 1, 2, 3)
+       __overloadable {
     return __builtin___strncat_chk(dst, src, n, __bos(dst));
 }
 #endif
@@ -120,6 +127,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 void* memset(void* const s __pass_object_size0, int c, size_t n) __overloadable
+        __diagnose_as_builtin(__builtin_memset, 1, 2, 3)
         /* If you're a user who wants this warning to go away: use `(&memset)(foo, bar, baz)`. */
         __clang_warning_if(c && !n, "'memset' will set 0 bytes; maybe the arguments got flipped?") {
 #if __ANDROID_API__ >= 17 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
@@ -157,6 +165,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 char* stpncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+        __diagnose_as_builtin(__builtin_stpncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
     size_t bos_src = __bos(src);
@@ -172,6 +181,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 char* strncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+        __diagnose_as_builtin(__builtin_strncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
     size_t bos_src = __bos(src);
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/glibc-syscalls.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/glibc-syscalls.h
index fbda7fe..c144919 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/glibc-syscalls.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/glibc-syscalls.h
@@ -303,6 +303,9 @@
 #if defined(__NR_futex_time64)
   #define SYS_futex_time64 __NR_futex_time64
 #endif
+#if defined(__NR_futex_waitv)
+  #define SYS_futex_waitv __NR_futex_waitv
+#endif
 #if defined(__NR_futimesat)
   #define SYS_futimesat __NR_futimesat
 #endif
@@ -507,6 +510,15 @@
 #if defined(__NR_kill)
   #define SYS_kill __NR_kill
 #endif
+#if defined(__NR_landlock_add_rule)
+  #define SYS_landlock_add_rule __NR_landlock_add_rule
+#endif
+#if defined(__NR_landlock_create_ruleset)
+  #define SYS_landlock_create_ruleset __NR_landlock_create_ruleset
+#endif
+#if defined(__NR_landlock_restrict_self)
+  #define SYS_landlock_restrict_self __NR_landlock_restrict_self
+#endif
 #if defined(__NR_lchown)
   #define SYS_lchown __NR_lchown
 #endif
@@ -567,6 +579,9 @@
 #if defined(__NR_memfd_create)
   #define SYS_memfd_create __NR_memfd_create
 #endif
+#if defined(__NR_memfd_secret)
+  #define SYS_memfd_secret __NR_memfd_secret
+#endif
 #if defined(__NR_migrate_pages)
   #define SYS_migrate_pages __NR_migrate_pages
 #endif
@@ -789,6 +804,9 @@
 #if defined(__NR_process_madvise)
   #define SYS_process_madvise __NR_process_madvise
 #endif
+#if defined(__NR_process_mrelease)
+  #define SYS_process_mrelease __NR_process_mrelease
+#endif
 #if defined(__NR_process_vm_readv)
   #define SYS_process_vm_readv __NR_process_vm_readv
 #endif
@@ -828,6 +846,9 @@
 #if defined(__NR_quotactl)
   #define SYS_quotactl __NR_quotactl
 #endif
+#if defined(__NR_quotactl_fd)
+  #define SYS_quotactl_fd __NR_quotactl_fd
+#endif
 #if defined(__NR_read)
   #define SYS_read __NR_read
 #endif
@@ -1002,6 +1023,9 @@
 #if defined(__NR_set_mempolicy)
   #define SYS_set_mempolicy __NR_set_mempolicy
 #endif
+#if defined(__NR_set_mempolicy_home_node)
+  #define SYS_set_mempolicy_home_node __NR_set_mempolicy_home_node
+#endif
 #if defined(__NR_set_robust_list)
   #define SYS_set_robust_list __NR_set_robust_list
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/signal_types.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/signal_types.h
index e1a155f..699e257 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/signal_types.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/bits/signal_types.h
@@ -61,7 +61,7 @@
 #if defined(__LP64__)
 typedef sigset_t sigset64_t;
 #else
-typedef struct { unsigned long __bits[_KERNEL__NSIG/LONG_BIT]; } sigset64_t;
+typedef struct { unsigned long __bits[_KERNEL__NSIG/(8*sizeof(long))]; } sigset64_t;
 #endif
 
 #if defined(__LP64__)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/execinfo.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/execinfo.h
new file mode 100644
index 0000000..347ae92
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/execinfo.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#pragma once
+
+#include <sys/cdefs.h>
+
+/**
+ * @file execinfo.h
+ * @brief Functions to do in process backtracing.
+ */
+
+__BEGIN_DECLS
+
+/**
+ * [backtrace(3)](https://man7.org/linux/man-pages/man3/backtrace.3.html)
+ * Saves a backtrace for the current call in the array pointed to by buffer.
+ * "size" indicates the maximum number of void* pointers that can be set.
+ *
+ * Returns the number of addresses stored in "buffer", which is not greater
+ * than "size". If the return value is equal to "size" then the number of
+ * addresses may have been truncated.
+ *
+ * Available since API level 33.
+ */
+int backtrace(void** buffer, int size) __INTRODUCED_IN(33);
+
+/**
+ * [backtrace_symbols(3)](https://man7.org/linux/man-pages/man3/backtrace_symbols.3.html)
+ * Given an array of void* pointers, translate the addresses into an array
+ * of strings that represent the backtrace.
+ *
+ * Returns a pointer to allocated memory, on error NULL is returned. It is
+ * the responsibility of the caller to free the returned memory.
+ *
+ * Available since API level 33.
+ */
+char** backtrace_symbols(void* const* buffer, int size) __INTRODUCED_IN(33);
+
+/**
+ * [backtrace_symbols_fd(3)](https://man7.org/linux/man-pages/man3/backtrace_symbols_fd.3.html)
+ * Given an array of void* pointers, translate the addresses into an array
+ * of strings that represent the backtrace and write to the file represented
+ * by "fd". The file is written such that one line equals one void* address.
+ *
+ * Available since API level 33.
+ */
+void backtrace_symbols_fd(void* const* buffer, int size, int fd) __INTRODUCED_IN(33);
+
+__END_DECLS
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/malloc.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/malloc.h
index bae1f68..40786fa 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/malloc.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/malloc.h
@@ -97,30 +97,31 @@
  */
 size_t malloc_usable_size(const void* __ptr) __INTRODUCED_IN(17);
 
+#define __MALLINFO_BODY \
+  /** Total number of non-mmapped bytes currently allocated from OS. */ \
+  size_t arena; \
+  /** Number of free chunks. */ \
+  size_t ordblks; \
+  /** (Unused.) */ \
+  size_t smblks; \
+  /** (Unused.) */ \
+  size_t hblks; \
+  /** Total number of bytes in mmapped regions. */ \
+  size_t hblkhd; \
+  /** Maximum total allocated space; greater than total if trimming has occurred. */ \
+  size_t usmblks; \
+  /** (Unused.) */ \
+  size_t fsmblks; \
+  /** Total allocated space (normal or mmapped.) */ \
+  size_t uordblks; \
+  /** Total free space. */ \
+  size_t fordblks; \
+  /** Upper bound on number of bytes releasable by a trim operation. */ \
+  size_t keepcost;
+
 #ifndef STRUCT_MALLINFO_DECLARED
 #define STRUCT_MALLINFO_DECLARED 1
-struct mallinfo {
-  /** Total number of non-mmapped bytes currently allocated from OS. */
-  size_t arena;
-  /** Number of free chunks. */
-  size_t ordblks;
-  /** (Unused.) */
-  size_t smblks;
-  /** (Unused.) */
-  size_t hblks;
-  /** Total number of bytes in mmapped regions. */
-  size_t hblkhd;
-  /** Maximum total allocated space; greater than total if trimming has occurred. */
-  size_t usmblks;
-  /** (Unused.) */
-  size_t fsmblks;
-  /** Total allocated space (normal or mmapped.) */
-  size_t uordblks;
-  /** Total free space. */
-  size_t fordblks;
-  /** Upper bound on number of bytes releasable by a trim operation. */
-  size_t keepcost;
-};
+struct mallinfo { __MALLINFO_BODY };
 #endif
 
 /**
@@ -131,6 +132,18 @@
 struct mallinfo mallinfo(void);
 
 /**
+ * On Android the struct mallinfo and struct mallinfo2 are the same.
+ */
+struct mallinfo2 { __MALLINFO_BODY };
+
+/**
+ * [mallinfo2(3)](http://man7.org/linux/man-pages/man3/mallinfo2.3.html) returns
+ * information about the current state of the heap. Note that mallinfo2() is
+ * inherently unreliable and consider using malloc_info() instead.
+ */
+struct mallinfo2 mallinfo2(void) __RENAME(mallinfo);
+
+/**
  * [malloc_info(3)](http://man7.org/linux/man-pages/man3/malloc_info.3.html)
  * writes information about the current state of the heap to the given stream.
  *
@@ -170,7 +183,45 @@
  * Available since API level 28.
  */
 #define M_PURGE (-101)
-/*
+
+
+/**
+ * mallopt() option to tune the allocator's choice of memory tags to
+ * make it more likely that a certain class of memory errors will be
+ * detected. This is only relevant if MTE is enabled in this process
+ * and ignored otherwise. The value argument should be one of the
+ * M_MEMTAG_TUNING_* flags.
+ * NOTE: This is only available in scudo.
+ *
+ * Available since API level 31.
+ */
+#define M_MEMTAG_TUNING (-102)
+
+/**
+ * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables
+ * deterministic detection of linear buffer overflow and underflow
+ * bugs by assigning distinct tag values to adjacent allocations. This
+ * mode has a slightly reduced chance to detect use-after-free bugs
+ * because only half of the possible tag values are available for each
+ * memory location.
+ *
+ * Please keep in mind that MTE can not detect overflow within the
+ * same tag granule (16-byte aligned chunk), and can miss small
+ * overflows even in this mode. Such overflow can not be the cause of
+ * a memory corruption, because the memory within one granule is never
+ * used for multiple allocations.
+ */
+#define M_MEMTAG_TUNING_BUFFER_OVERFLOW 0
+
+/**
+ * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables
+ * independently randomized tags for uniform ~93% probability of
+ * detecting both spatial (buffer overflow) and temporal (use after
+ * free) bugs.
+ */
+#define M_MEMTAG_TUNING_UAF 1
+
+/**
  * mallopt() option for per-thread memory initialization tuning.
  * The value argument should be one of:
  * 1: Disable automatic heap initialization and, where possible, memory tagging,
@@ -210,7 +261,7 @@
  * should not be zero-initialized, any other value indicates to initialize heap
  * memory to zero.
  *
- * Note that this memory mitigations is only implemented in scudo and therefore
+ * Note that this memory mitigation is only implemented in scudo and therefore
  * this will have no effect when using another allocator (such as jemalloc on
  * Android Go devices).
  *
@@ -222,6 +273,7 @@
  * mallopt() option to change the heap tagging state. May be called at any
  * time, including when multiple threads are running.
  * The value must be one of the M_HEAP_TAGGING_LEVEL_ constants.
+ * NOTE: This is only available in scudo.
  *
  * Available since API level 31.
  */
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/netinet/in.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/netinet/in.h
index 7f00a7a..46e3543 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/netinet/in.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/netinet/in.h
@@ -33,7 +33,18 @@
 #include <sys/cdefs.h>
 #include <sys/socket.h>
 
+// Include linux/socket.h first to trigger the header guard without
+// the__kernel_sockaddr_storage define, so its definition uses the
+// kernel name.
+#include <linux/socket.h>
+
+// Redefine __kernel_sockaddr_storage to sockaddr_storage so that
+// the structs defined in linux/in.h use the sockaddr_storage defined
+// in sys/sockets.h.
+#define __kernel_sockaddr_storage sockaddr_storage
 #include <linux/in.h>
+#undef __kernel_sockaddr_storage
+
 #include <linux/in6.h>
 #include <linux/ipv6.h>
 
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sched.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sched.h
index 3260231..364ca10 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sched.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sched.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SCHED_H_
-#define _SCHED_H_
+#pragma once
+
+/**
+ * @file sched.h
+ * @brief Thread execution scheduling.
+ */
 
 #include <bits/timespec.h>
 #include <linux/sched.h>
@@ -35,29 +39,170 @@
 
 __BEGIN_DECLS
 
-/* This name is used by glibc, but not by the kernel. */
+/*
+ * @def SCHED_NORMAL
+ * The standard (as opposed to real-time) round-robin scheduling policy.
+ *
+ * (Linux's name for POSIX's SCHED_OTHER.)
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_FIFO
+ * The real-time first-in/first-out scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_RR
+ * The real-time round-robin policy. (See also SCHED_NORMAL/SCHED_OTHER.)
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_BATCH
+ * The batch scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_IDLE
+ * The low priority "only when otherwise idle" scheduling priority.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_DEADLINE
+ * The deadline scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * The standard (as opposed to real-time) round-robin scheduling policy.
+ *
+ * (POSIX's name for Linux's SCHED_NORMAL.)
+ */
 #define SCHED_OTHER SCHED_NORMAL
 
+/**
+ * See sched_getparam()/sched_setparam() and
+ * sched_getscheduler()/sched_setscheduler().
+ */
 struct sched_param {
   int sched_priority;
 };
 
+/**
+ * [sched_setscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * sets the scheduling policy and associated parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setscheduler(pid_t __pid, int __policy, const struct sched_param* __param);
+
+/**
+ * [sched_getscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * gets the scheduling policy for the given thread.
+ *
+ * Returns a non-negative thread policy on success and returns -1 and sets
+ * `errno` on failure.
+ */
 int sched_getscheduler(pid_t __pid);
+
+/**
+ * [sched_yield(2)](http://man7.org/linux/man-pages/man2/sched_yield.2.html)
+ * voluntarily gives up using the CPU so that another thread can run.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_yield(void);
+
+/**
+ * [sched_get_priority_max(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_max.2.html)
+ * gets the maximum priority value allowed for the given scheduling policy.
+ *
+ * Returns a priority on success and returns -1 and sets `errno` on failure.
+ */
 int sched_get_priority_max(int __policy);
+
+/**
+ * [sched_get_priority_min(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_min.2.html)
+ * gets the minimum priority value allowed for the given scheduling policy.
+ *
+ * Returns a priority on success and returns -1 and sets `errno` on failure.
+ */
 int sched_get_priority_min(int __policy);
+
+/**
+ * [sched_setparam(2)](http://man7.org/linux/man-pages/man2/sched_setparam.2.html)
+ * sets the scheduling parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setparam(pid_t __pid, const struct sched_param* __param);
+
+/**
+ * [sched_getparam(2)](http://man7.org/linux/man-pages/man2/sched_getparam.2.html)
+ * gets the scheduling parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_getparam(pid_t __pid, struct sched_param* __param);
+
+/**
+ * [sched_rr_get_interval(2)](http://man7.org/linux/man-pages/man2/sched_rr_get_interval.2.html)
+ * queries the round-robin time quantum for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_rr_get_interval(pid_t __pid, struct timespec* __quantum);
 
 #if defined(__USE_GNU)
 
+/**
+ * [clone(2)](http://man7.org/linux/man-pages/man2/clone.2.html)
+ * creates a new child process.
+ *
+ * Returns the pid of the child to the caller on success and
+ * returns -1 and sets `errno` on failure.
+ */
 int clone(int (*__fn)(void*), void* __child_stack, int __flags, void* __arg, ...) __INTRODUCED_IN_ARM(9) __INTRODUCED_IN_X86(17);
+
+/**
+ * [unshare(2)](http://man7.org/linux/man-pages/man2/unshare.2.html)
+ * disassociates part of the caller's execution context.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 17.
+ */
 int unshare(int __flags) __INTRODUCED_IN(17);
-int sched_getcpu(void);
+
+/**
+ * [setns(2)](http://man7.org/linux/man-pages/man2/setns.2.html)
+ * reassociates a thread with a different namespace.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 21.
+ */
 int setns(int __fd, int __ns_type) __INTRODUCED_IN(21);
 
+/**
+ * [sched_getcpu(3)](http://man7.org/linux/man-pages/man3/sched_getcpu.3.html)
+ * reports which CPU the caller is running on.
+ *
+ * Returns a non-negative CPU number on success and returns -1 and sets
+ * `errno` on failure.
+ */
+int sched_getcpu(void);
+
 #ifdef __LP64__
 #define CPU_SETSIZE 1024
 #else
@@ -69,39 +214,50 @@
 #define __CPU_ELT(x)   ((x) / __CPU_BITS)
 #define __CPU_MASK(x)  ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
 
+/**
+ * [cpu_set_t](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) is a
+ * statically-sized CPU set. See `CPU_ALLOC` for dynamically-sized CPU sets.
+ */
 typedef struct {
   __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
 } cpu_set_t;
 
+/**
+ * [sched_setaffinity(2)](http://man7.org/linux/man-pages/man2/sched_setaffinity.2.html)
+ * sets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setaffinity(pid_t __pid, size_t __set_size, const cpu_set_t* __set);
+
+/**
+ * [sched_getaffinity(2)](http://man7.org/linux/man-pages/man2/sched_getaffinity.2.html)
+ * gets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_getaffinity(pid_t __pid, size_t __set_size, cpu_set_t* __set);
 
+/**
+ * [CPU_ZERO](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all
+ * bits in a static CPU set.
+ */
 #define CPU_ZERO(set)          CPU_ZERO_S(sizeof(cpu_set_t), set)
-#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
-#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
-
-#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
-#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
-#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
-
-#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
-
-/* Support for dynamically-allocated cpu_set_t */
-
-#define CPU_ALLOC_SIZE(count) \
-  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
-
-#define CPU_ALLOC(count)  __sched_cpualloc((count))
-#define CPU_FREE(set)     __sched_cpufree((set))
-
-cpu_set_t* __sched_cpualloc(size_t __count);
-void __sched_cpufree(cpu_set_t* __set);
-
+/**
+ * [CPU_ZERO_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all
+ * bits in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_ZERO_S(setsize, set)  __builtin_memset(set, 0, setsize)
 
+/**
+ * [CPU_SET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one
+ * bit in a static CPU set.
+ */
+#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_SET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one
+ * bit in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_SET_S(cpu, setsize, set) \
   do { \
     size_t __cpu = (cpu); \
@@ -109,6 +265,15 @@
       (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
   } while (0)
 
+/**
+ * [CPU_CLR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one
+ * bit in a static CPU set.
+ */
+#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_CLR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one
+ * bit in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_CLR_S(cpu, setsize, set) \
   do { \
     size_t __cpu = (cpu); \
@@ -116,6 +281,15 @@
       (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
   } while (0)
 
+/**
+ * [CPU_ISSET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether the given bit is set in a static CPU set.
+ */
+#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_ISSET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether the given bit is set in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_ISSET_S(cpu, setsize, set) \
   (__extension__ ({ \
     size_t __cpu = (cpu); \
@@ -124,12 +298,65 @@
       : 0; \
   }))
 
+/**
+ * [CPU_COUNT](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts
+ * how many bits are set in a static CPU set.
+ */
+#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
+/**
+ * [CPU_COUNT_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts
+ * how many bits are set in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
+#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
+int __sched_cpucount(size_t __set_size, const cpu_set_t* __set);
+
+/**
+ * [CPU_EQUAL](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether two static CPU sets have the same bits set and cleared as each other.
+ */
+#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
+/**
+ * [CPU_EQUAL_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether two dynamic CPU sets allocated by `CPU_ALLOC` have the same bits
+ * set and cleared as each other.
+ */
 #define CPU_EQUAL_S(setsize, set1, set2)  (__builtin_memcmp(set1, set2, setsize) == 0)
 
+/**
+ * [CPU_AND](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two
+ * static CPU sets.
+ */
+#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
+/**
+ * [CPU_AND_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two
+ * dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_AND_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, &)
+
+/**
+ * [CPU_OR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two
+ * static CPU sets.
+ */
+#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
+/**
+ * [CPU_OR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two
+ * dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_OR_S(setsize, dst, set1, set2)   __CPU_OP_S(setsize, dst, set1, set2, |)
+
+/**
+ * [CPU_XOR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * exclusive-ors two static CPU sets.
+ */
+#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
+/**
+ * [CPU_XOR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * exclusive-ors two dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_XOR_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, ^)
 
+#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
+
 #define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
   do { \
     cpu_set_t* __dst = (dstset); \
@@ -140,12 +367,27 @@
       (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
   } while (0)
 
-#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
+/**
+ * [CPU_ALLOC_SIZE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * returns the size of a CPU set large enough for CPUs in the range 0..count-1.
+ */
+#define CPU_ALLOC_SIZE(count) \
+  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
 
-int __sched_cpucount(size_t __set_size, const cpu_set_t* __set);
+/**
+ * [CPU_ALLOC](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * allocates a CPU set large enough for CPUs in the range 0..count-1.
+ */
+#define CPU_ALLOC(count)  __sched_cpualloc((count))
+cpu_set_t* __sched_cpualloc(size_t __count);
+
+/**
+ * [CPU_FREE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * deallocates a CPU set allocated by `CPU_ALLOC`.
+ */
+#define CPU_FREE(set)     __sched_cpufree((set))
+void __sched_cpufree(cpu_set_t* __set);
 
 #endif /* __USE_GNU */
 
 __END_DECLS
-
-#endif /* _SCHED_H_ */
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/stdlib.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/stdlib.h
index 583287f..4aa27f9 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/stdlib.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/stdlib.h
@@ -161,11 +161,11 @@
 void setprogname(const char* __name) __INTRODUCED_IN(21);
 
 int mblen(const char* __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(26);
-size_t mbstowcs(wchar_t* __dst, const char* __src, size_t __n);
+size_t mbstowcs(wchar_t* __dst, const char* __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 int mbtowc(wchar_t* __wc_ptr, const char* __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 int wctomb(char* __dst, wchar_t __wc) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
-size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n);
+size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
 #if __ANDROID_API__ >= 21
 size_t __ctype_get_mb_cur_max(void) __INTRODUCED_IN(21);
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/cdefs.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/cdefs.h
index 2556d11..5b9d99b 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/cdefs.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/cdefs.h
@@ -327,6 +327,8 @@
 
 #define __overloadable __attribute__((overloadable))
 
+#define __diagnose_as_builtin(...) __attribute__((diagnose_as_builtin(__VA_ARGS__)))
+
 /* Used to tag non-static symbols that are private and never exposed by the shared library. */
 #define __LIBC_HIDDEN__ __attribute__((visibility("hidden")))
 
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/select.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/select.h
index 79fc28d..65571eb 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/select.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/select.h
@@ -101,31 +101,37 @@
 
 /**
  * [select(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use poll() instead.
+ * set of file descriptors.
+ *
+ * Use poll() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  */
-int select(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, struct timeval* __timeout);
+int select(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, struct timeval* __timeout);
 
 /**
  * [pselect(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use ppoll() instead.
+ * set of file descriptors.
+ *
+ * Use ppoll() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  */
-int pselect(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset_t* __mask);
+int pselect(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset_t* __mask);
 
 /**
  * [pselect64(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use ppoll64() instead.
+ * set of file descriptors.
+ *
+ * Use ppoll64() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  *
  * Available since API level 28.
  */
-int pselect64(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset64_t* __mask) __INTRODUCED_IN(28);
+int pselect64(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset64_t* __mask) __INTRODUCED_IN(28);
 
 __END_DECLS
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/socket.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/socket.h
index 3ecbcce..f33f112 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/socket.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/socket.h
@@ -31,7 +31,6 @@
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
-#include <linux/socket.h>
 
 #include <asm/fcntl.h>
 #include <asm/socket.h>
@@ -71,6 +70,16 @@
   char sa_data[14];
 };
 
+struct sockaddr_storage {
+  union {
+    struct {
+      sa_family_t ss_family;
+      char __data[128 - sizeof(sa_family_t)];
+    };
+    void* __align;
+  };
+};
+
 struct linger {
   int l_onoff;
   int l_linger;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/uio.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/uio.h
index 37961e3..583cfc6 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/uio.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/include/sys/uio.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SYS_UIO_H_
-#define _SYS_UIO_H_
+#pragma once
+
+/**
+ * @file sys/uio.h
+ * @brief Multi-buffer ("vector") I/O operations using `struct iovec`.
+ */
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
@@ -35,21 +39,124 @@
 
 __BEGIN_DECLS
 
+/**
+ * [readv(2)](http://man7.org/linux/man-pages/man2/readv.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ */
 ssize_t readv(int __fd, const struct iovec* __iov, int __count);
+
+/**
+ * [writev(2)](http://man7.org/linux/man-pages/man2/writev.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ */
 ssize_t writev(int __fd, const struct iovec* __iov, int __count);
 
 #if defined(__USE_GNU)
-ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
-ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
-ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
-ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
-#endif
 
-#if defined(__USE_GNU)
+/**
+ * [preadv(2)](http://man7.org/linux/man-pages/man2/preadv.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`, starting at
+ * offset `__offset` into the file.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 24.
+ */
+ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
+
+/**
+ * [pwritev(2)](http://man7.org/linux/man-pages/man2/pwritev.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`, starting at offset
+ * `__offset` into the file.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 24.
+ */
+ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
+
+/**
+ * Like preadv() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 24.
+ */
+ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+
+/**
+ * Like pwritev() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 24.
+ */
+ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+
+/**
+ * [preadv2(2)](http://man7.org/linux/man-pages/man2/preadv2.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`, starting at
+ * offset `__offset` into the file, with the given flags.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 33.
+ */
+ssize_t preadv2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(preadv64v2) __INTRODUCED_IN(33);
+
+/**
+ * [pwritev2(2)](http://man7.org/linux/man-pages/man2/pwritev2.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`, starting at offset
+ * `__offset` into the file, with the given flags.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 33.
+ */
+ssize_t pwritev2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(pwritev64v2) __INTRODUCED_IN(33);
+
+/**
+ * Like preadv2() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 33.
+ */
+ssize_t preadv64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+
+/**
+ * Like pwritev2() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 33.
+ */
+ssize_t pwritev64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+
+/**
+ * [process_vm_readv(2)](http://man7.org/linux/man-pages/man2/process_vm_readv.2.html)
+ * reads from the address space of another process.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 23.
+ */
 ssize_t process_vm_readv(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
+/**
+ * [process_vm_writev(2)](http://man7.org/linux/man-pages/man2/process_vm_writev.2.html)
+ * writes to the address space of another process.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 23.
+ */
 ssize_t process_vm_writev(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
 #endif
 
 __END_DECLS
-
-#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
index 2ea16a3..6d89fa9 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
@@ -20,6 +20,7 @@
 #define _SCSI_SCSI_H
 #include <linux/types.h>
 #include <scsi/scsi_proto.h>
+#include <scsi/scsi_status.h>
 struct ccs_modesel_head {
   __u8 _r1;
   __u8 medium;
@@ -34,40 +35,12 @@
   __u8 block_length_med;
   __u8 block_length_lo;
 };
-#define COMMAND_COMPLETE 0x00
-#define EXTENDED_MESSAGE 0x01
 #define EXTENDED_MODIFY_DATA_POINTER 0x00
 #define EXTENDED_SDTR 0x01
 #define EXTENDED_EXTENDED_IDENTIFY 0x02
 #define EXTENDED_WDTR 0x03
 #define EXTENDED_PPR 0x04
 #define EXTENDED_MODIFY_BIDI_DATA_PTR 0x05
-#define SAVE_POINTERS 0x02
-#define RESTORE_POINTERS 0x03
-#define DISCONNECT 0x04
-#define INITIATOR_ERROR 0x05
-#define ABORT_TASK_SET 0x06
-#define MESSAGE_REJECT 0x07
-#define NOP 0x08
-#define MSG_PARITY_ERROR 0x09
-#define LINKED_CMD_COMPLETE 0x0a
-#define LINKED_FLG_CMD_COMPLETE 0x0b
-#define TARGET_RESET 0x0c
-#define ABORT_TASK 0x0d
-#define CLEAR_TASK_SET 0x0e
-#define INITIATE_RECOVERY 0x0f
-#define RELEASE_RECOVERY 0x10
-#define TERMINATE_IO_PROC 0x11
-#define CLEAR_ACA 0x16
-#define LOGICAL_UNIT_RESET 0x17
-#define SIMPLE_QUEUE_TAG 0x20
-#define HEAD_OF_QUEUE_TAG 0x21
-#define ORDERED_QUEUE_TAG 0x22
-#define IGNORE_WIDE_RESIDUE 0x23
-#define ACA 0x24
-#define QAS_REQUEST 0x55
-#define BUS_DEVICE_RESET TARGET_RESET
-#define ABORT ABORT_TASK_SET
 #define SCSI_IOCTL_GET_IDLUN 0x5382
 #define SCSI_IOCTL_PROBE_HOST 0x5385
 #define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
index a77eded..eea87a0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
@@ -124,17 +124,6 @@
 #define SERVICE_ACTION_BIDIRECTIONAL 0x9d
 #define SERVICE_ACTION_IN_16 0x9e
 #define SERVICE_ACTION_OUT_16 0x9f
-#define GOOD 0x00
-#define CHECK_CONDITION 0x01
-#define CONDITION_GOOD 0x02
-#define BUSY 0x04
-#define INTERMEDIATE_GOOD 0x08
-#define INTERMEDIATE_C_GOOD 0x0a
-#define RESERVATION_CONFLICT 0x0c
-#define COMMAND_TERMINATED 0x11
-#define QUEUE_FULL 0x14
-#define ACA_ACTIVE 0x18
-#define TASK_ABORTED 0x20
 #define STATUS_MASK 0xfe
 #define NO_SENSE 0x00
 #define RECOVERED_ERROR 0x01
@@ -205,4 +194,14 @@
   ZBC_ZONE_COND_FULL = 0xe,
   ZBC_ZONE_COND_OFFLINE = 0xf,
 };
+enum scsi_version_descriptor {
+  SCSI_VERSION_DESCRIPTOR_FCP4 = 0x0a40,
+  SCSI_VERSION_DESCRIPTOR_ISCSI = 0x0960,
+  SCSI_VERSION_DESCRIPTOR_SAM5 = 0x00a0,
+  SCSI_VERSION_DESCRIPTOR_SAS3 = 0x0c60,
+  SCSI_VERSION_DESCRIPTOR_SBC3 = 0x04c0,
+  SCSI_VERSION_DESCRIPTOR_SBP3 = 0x0980,
+  SCSI_VERSION_DESCRIPTOR_SPC4 = 0x0460,
+  SCSI_VERSION_DESCRIPTOR_SRP = 0x0940
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
similarity index 82%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
index bb45c3d..6a7fc10 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
@@ -16,14 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _SCSI_SCSI_STATUS_H
+#define _SCSI_SCSI_STATUS_H
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#include <scsi/scsi_proto.h>
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/sg.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/sg.h
index 828b2c6..a7a1944 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/sg.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/android/scsi/scsi/sg.h
@@ -66,6 +66,20 @@
 #define SG_INFO_INDIRECT_IO 0x0
 #define SG_INFO_DIRECT_IO 0x2
 #define SG_INFO_MIXED_IO 0x4
+#define DRIVER_SENSE 0x08
+#define driver_byte(result) (((result) >> 24) & 0xff)
+#define GOOD 0x00
+#define CHECK_CONDITION 0x01
+#define CONDITION_GOOD 0x02
+#define BUSY 0x04
+#define INTERMEDIATE_GOOD 0x08
+#define INTERMEDIATE_C_GOOD 0x0a
+#define RESERVATION_CONFLICT 0x0c
+#define COMMAND_TERMINATED 0x11
+#define QUEUE_FULL 0x14
+#define ACA_ACTIVE 0x18
+#define TASK_ABORTED 0x20
+#define status_byte(result) (((result) >> 1) & 0x7f)
 typedef struct sg_scsi_id {
   int host_no;
   int channel;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
index b4da2d1..672a72a 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
@@ -19,7 +19,7 @@
 #ifndef _UAPI__ASMARM_SETUP_H
 #define _UAPI__ASMARM_SETUP_H
 #include <linux/types.h>
-#define COMMAND_LINE_SIZE 2048
+#define COMMAND_LINE_SIZE 1024
 #define ATAG_NONE 0x00000000
 struct tag_header {
   __u32 size;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h
deleted file mode 100644
index 070c77b..0000000
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h
+++ /dev/null
@@ -1,417 +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_ASM_ARM_UNISTD_COMMON_H
-#define _UAPI_ASM_ARM_UNISTD_COMMON_H 1
-#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
-#define __NR_exit (__NR_SYSCALL_BASE + 1)
-#define __NR_fork (__NR_SYSCALL_BASE + 2)
-#define __NR_read (__NR_SYSCALL_BASE + 3)
-#define __NR_write (__NR_SYSCALL_BASE + 4)
-#define __NR_open (__NR_SYSCALL_BASE + 5)
-#define __NR_close (__NR_SYSCALL_BASE + 6)
-#define __NR_creat (__NR_SYSCALL_BASE + 8)
-#define __NR_link (__NR_SYSCALL_BASE + 9)
-#define __NR_unlink (__NR_SYSCALL_BASE + 10)
-#define __NR_execve (__NR_SYSCALL_BASE + 11)
-#define __NR_chdir (__NR_SYSCALL_BASE + 12)
-#define __NR_mknod (__NR_SYSCALL_BASE + 14)
-#define __NR_chmod (__NR_SYSCALL_BASE + 15)
-#define __NR_lchown (__NR_SYSCALL_BASE + 16)
-#define __NR_lseek (__NR_SYSCALL_BASE + 19)
-#define __NR_getpid (__NR_SYSCALL_BASE + 20)
-#define __NR_mount (__NR_SYSCALL_BASE + 21)
-#define __NR_setuid (__NR_SYSCALL_BASE + 23)
-#define __NR_getuid (__NR_SYSCALL_BASE + 24)
-#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
-#define __NR_pause (__NR_SYSCALL_BASE + 29)
-#define __NR_access (__NR_SYSCALL_BASE + 33)
-#define __NR_nice (__NR_SYSCALL_BASE + 34)
-#define __NR_sync (__NR_SYSCALL_BASE + 36)
-#define __NR_kill (__NR_SYSCALL_BASE + 37)
-#define __NR_rename (__NR_SYSCALL_BASE + 38)
-#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
-#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
-#define __NR_dup (__NR_SYSCALL_BASE + 41)
-#define __NR_pipe (__NR_SYSCALL_BASE + 42)
-#define __NR_times (__NR_SYSCALL_BASE + 43)
-#define __NR_brk (__NR_SYSCALL_BASE + 45)
-#define __NR_setgid (__NR_SYSCALL_BASE + 46)
-#define __NR_getgid (__NR_SYSCALL_BASE + 47)
-#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
-#define __NR_getegid (__NR_SYSCALL_BASE + 50)
-#define __NR_acct (__NR_SYSCALL_BASE + 51)
-#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
-#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
-#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
-#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
-#define __NR_umask (__NR_SYSCALL_BASE + 60)
-#define __NR_chroot (__NR_SYSCALL_BASE + 61)
-#define __NR_ustat (__NR_SYSCALL_BASE + 62)
-#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
-#define __NR_getppid (__NR_SYSCALL_BASE + 64)
-#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
-#define __NR_setsid (__NR_SYSCALL_BASE + 66)
-#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
-#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
-#define __NR_setregid (__NR_SYSCALL_BASE + 71)
-#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
-#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
-#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
-#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
-#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
-#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
-#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
-#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
-#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
-#define __NR_symlink (__NR_SYSCALL_BASE + 83)
-#define __NR_readlink (__NR_SYSCALL_BASE + 85)
-#define __NR_uselib (__NR_SYSCALL_BASE + 86)
-#define __NR_swapon (__NR_SYSCALL_BASE + 87)
-#define __NR_reboot (__NR_SYSCALL_BASE + 88)
-#define __NR_munmap (__NR_SYSCALL_BASE + 91)
-#define __NR_truncate (__NR_SYSCALL_BASE + 92)
-#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
-#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
-#define __NR_fchown (__NR_SYSCALL_BASE + 95)
-#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
-#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
-#define __NR_statfs (__NR_SYSCALL_BASE + 99)
-#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
-#define __NR_syslog (__NR_SYSCALL_BASE + 103)
-#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
-#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
-#define __NR_stat (__NR_SYSCALL_BASE + 106)
-#define __NR_lstat (__NR_SYSCALL_BASE + 107)
-#define __NR_fstat (__NR_SYSCALL_BASE + 108)
-#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
-#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
-#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
-#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
-#define __NR_fsync (__NR_SYSCALL_BASE + 118)
-#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
-#define __NR_clone (__NR_SYSCALL_BASE + 120)
-#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
-#define __NR_uname (__NR_SYSCALL_BASE + 122)
-#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
-#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
-#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
-#define __NR_init_module (__NR_SYSCALL_BASE + 128)
-#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
-#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
-#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
-#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
-#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
-#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
-#define __NR_personality (__NR_SYSCALL_BASE + 136)
-#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
-#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
-#define __NR__llseek (__NR_SYSCALL_BASE + 140)
-#define __NR_getdents (__NR_SYSCALL_BASE + 141)
-#define __NR__newselect (__NR_SYSCALL_BASE + 142)
-#define __NR_flock (__NR_SYSCALL_BASE + 143)
-#define __NR_msync (__NR_SYSCALL_BASE + 144)
-#define __NR_readv (__NR_SYSCALL_BASE + 145)
-#define __NR_writev (__NR_SYSCALL_BASE + 146)
-#define __NR_getsid (__NR_SYSCALL_BASE + 147)
-#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
-#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
-#define __NR_mlock (__NR_SYSCALL_BASE + 150)
-#define __NR_munlock (__NR_SYSCALL_BASE + 151)
-#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
-#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
-#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
-#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
-#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
-#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
-#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
-#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
-#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
-#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
-#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
-#define __NR_mremap (__NR_SYSCALL_BASE + 163)
-#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
-#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
-#define __NR_poll (__NR_SYSCALL_BASE + 168)
-#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
-#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
-#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
-#define __NR_prctl (__NR_SYSCALL_BASE + 172)
-#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
-#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
-#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
-#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
-#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
-#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
-#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
-#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
-#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
-#define __NR_chown (__NR_SYSCALL_BASE + 182)
-#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
-#define __NR_capget (__NR_SYSCALL_BASE + 184)
-#define __NR_capset (__NR_SYSCALL_BASE + 185)
-#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
-#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
-#define __NR_vfork (__NR_SYSCALL_BASE + 190)
-#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
-#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
-#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
-#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
-#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
-#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
-#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
-#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
-#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
-#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
-#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
-#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
-#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
-#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
-#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
-#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
-#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
-#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
-#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
-#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
-#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
-#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
-#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
-#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
-#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
-#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
-#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
-#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
-#define __NR_mincore (__NR_SYSCALL_BASE + 219)
-#define __NR_madvise (__NR_SYSCALL_BASE + 220)
-#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
-#define __NR_gettid (__NR_SYSCALL_BASE + 224)
-#define __NR_readahead (__NR_SYSCALL_BASE + 225)
-#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
-#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
-#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
-#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
-#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
-#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
-#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
-#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
-#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
-#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
-#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
-#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
-#define __NR_tkill (__NR_SYSCALL_BASE + 238)
-#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
-#define __NR_futex (__NR_SYSCALL_BASE + 240)
-#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
-#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
-#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
-#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
-#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
-#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
-#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
-#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
-#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
-#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
-#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
-#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
-#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
-#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
-#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
-#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
-#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
-#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
-#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
-#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
-#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
-#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
-#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
-#define __NR_utimes (__NR_SYSCALL_BASE + 269)
-#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
-#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
-#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
-#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
-#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
-#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
-#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
-#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
-#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
-#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
-#define __NR_waitid (__NR_SYSCALL_BASE + 280)
-#define __NR_socket (__NR_SYSCALL_BASE + 281)
-#define __NR_bind (__NR_SYSCALL_BASE + 282)
-#define __NR_connect (__NR_SYSCALL_BASE + 283)
-#define __NR_listen (__NR_SYSCALL_BASE + 284)
-#define __NR_accept (__NR_SYSCALL_BASE + 285)
-#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
-#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
-#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
-#define __NR_send (__NR_SYSCALL_BASE + 289)
-#define __NR_sendto (__NR_SYSCALL_BASE + 290)
-#define __NR_recv (__NR_SYSCALL_BASE + 291)
-#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
-#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
-#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
-#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
-#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
-#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
-#define __NR_semop (__NR_SYSCALL_BASE + 298)
-#define __NR_semget (__NR_SYSCALL_BASE + 299)
-#define __NR_semctl (__NR_SYSCALL_BASE + 300)
-#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
-#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
-#define __NR_msgget (__NR_SYSCALL_BASE + 303)
-#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
-#define __NR_shmat (__NR_SYSCALL_BASE + 305)
-#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
-#define __NR_shmget (__NR_SYSCALL_BASE + 307)
-#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
-#define __NR_add_key (__NR_SYSCALL_BASE + 309)
-#define __NR_request_key (__NR_SYSCALL_BASE + 310)
-#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
-#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
-#define __NR_vserver (__NR_SYSCALL_BASE + 313)
-#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
-#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
-#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
-#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
-#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
-#define __NR_mbind (__NR_SYSCALL_BASE + 319)
-#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
-#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
-#define __NR_openat (__NR_SYSCALL_BASE + 322)
-#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
-#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
-#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
-#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
-#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
-#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
-#define __NR_renameat (__NR_SYSCALL_BASE + 329)
-#define __NR_linkat (__NR_SYSCALL_BASE + 330)
-#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
-#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
-#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
-#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
-#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
-#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
-#define __NR_unshare (__NR_SYSCALL_BASE + 337)
-#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
-#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
-#define __NR_splice (__NR_SYSCALL_BASE + 340)
-#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
-#define __NR_tee (__NR_SYSCALL_BASE + 342)
-#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
-#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
-#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
-#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
-#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
-#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
-#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
-#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
-#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
-#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
-#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
-#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
-#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
-#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
-#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
-#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
-#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
-#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
-#define __NR_preadv (__NR_SYSCALL_BASE + 361)
-#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
-#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
-#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
-#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
-#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
-#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
-#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
-#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
-#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
-#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
-#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
-#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
-#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
-#define __NR_setns (__NR_SYSCALL_BASE + 375)
-#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
-#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
-#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
-#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
-#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
-#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
-#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
-#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
-#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
-#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
-#define __NR_bpf (__NR_SYSCALL_BASE + 386)
-#define __NR_execveat (__NR_SYSCALL_BASE + 387)
-#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
-#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
-#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
-#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
-#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
-#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
-#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
-#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
-#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
-#define __NR_statx (__NR_SYSCALL_BASE + 397)
-#define __NR_rseq (__NR_SYSCALL_BASE + 398)
-#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
-#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
-#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
-#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
-#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
-#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
-#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
-#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
-#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
-#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
-#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
-#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
-#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
-#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
-#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
-#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
-#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
-#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
-#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
-#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
-#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
-#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
-#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
-#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
-#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
-#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
-#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
-#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
-#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
-#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
-#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
-#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
-#define __NR_fspick (__NR_SYSCALL_BASE + 433)
-#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
-#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
-#define __NR_close_range (__NR_SYSCALL_BASE + 436)
-#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
-#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
-#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
-#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
-#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
-#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
-#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
index 54e1867..71b25e7 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
@@ -16,6 +16,409 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _UAPI_ASM_ARM_UNISTD_EABI_H
-#define _UAPI_ASM_ARM_UNISTD_EABI_H 1
+#ifndef _UAPI_ASM_UNISTD_EABI_H
+#define _UAPI_ASM_UNISTD_EABI_H
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
+#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
+#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
+#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
+#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
+#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
+#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
index d2633e8..08b3b9a 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
@@ -16,18 +16,421 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _UAPI_ASM_ARM_UNISTD_OABI_H
-#define _UAPI_ASM_ARM_UNISTD_OABI_H 1
+#ifndef _UAPI_ASM_UNISTD_OABI_H
+#define _UAPI_ASM_UNISTD_OABI_H
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
 #define __NR_time (__NR_SYSCALL_BASE + 13)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
 #define __NR_umount (__NR_SYSCALL_BASE + 22)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
 #define __NR_stime (__NR_SYSCALL_BASE + 25)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
 #define __NR_alarm (__NR_SYSCALL_BASE + 27)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
 #define __NR_utime (__NR_SYSCALL_BASE + 30)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
 #define __NR_getrlimit (__NR_SYSCALL_BASE + 76)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
 #define __NR_select (__NR_SYSCALL_BASE + 82)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
 #define __NR_readdir (__NR_SYSCALL_BASE + 89)
 #define __NR_mmap (__NR_SYSCALL_BASE + 90)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
 #define __NR_socketcall (__NR_SYSCALL_BASE + 102)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
 #define __NR_syscall (__NR_SYSCALL_BASE + 113)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
 #define __NR_ipc (__NR_SYSCALL_BASE + 117)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
+#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
+#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
+#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
+#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
+#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
+#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
index f4b1f3a..8bb0f58 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
@@ -19,9 +19,9 @@
 #ifndef _UAPI__ASM_ARM_UNISTD_H
 #define _UAPI__ASM_ARM_UNISTD_H
 #define __NR_OABI_SYSCALL_BASE 0x900000
+#define __NR_SYSCALL_MASK 0x0fffff
 #define __NR_SYSCALL_BASE 0
 #include <asm/unistd-eabi.h>
-#include <asm/unistd-common.h>
 #define __NR_sync_file_range2 __NR_arm_sync_file_range
 #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0x0f0000)
 #define __ARM_NR_breakpoint (__ARM_NR_BASE + 1)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
index 8a70a52..4316724 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
@@ -69,4 +69,7 @@
 #define HWCAP2_RNG (1 << 16)
 #define HWCAP2_BTI (1 << 17)
 #define HWCAP2_MTE (1 << 18)
+#define HWCAP2_ECV (1 << 19)
+#define HWCAP2_AFP (1 << 20)
+#define HWCAP2_RPRES (1 << 21)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
index 014504a..c53ee87 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
@@ -115,6 +115,15 @@
   } exception;
   __u32 reserved[12];
 };
+struct kvm_arm_copy_mte_tags {
+  __u64 guest_ipa;
+  __u64 length;
+  void __user * addr;
+  __u64 flags;
+  __u64 reserved[2];
+};
+#define KVM_ARM_TAGS_TO_GUEST 0
+#define KVM_ARM_TAGS_FROM_GUEST 1
 #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
 #define KVM_REG_ARM_COPROC_SHIFT 16
 #define KVM_REG_ARM_CORE (0x0010 << KVM_REG_ARM_COPROC_SHIFT)
@@ -158,6 +167,10 @@
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL 2
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED 3
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED (1U << 4)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3 KVM_REG_ARM_FW_REG(3)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL 0
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL 1
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED 2
 #define KVM_REG_ARM64_SVE (0x15 << KVM_REG_ARM_COPROC_SHIFT)
 #define KVM_REG_ARM64_SVE_ZREG_BASE 0
 #define KVM_REG_ARM64_SVE_PREG_BASE 0x400
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
index e93f3f1..06b85ed 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
@@ -21,4 +21,5 @@
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
 #define __ARCH_WANT_SYS_CLONE3
+#define __ARCH_WANT_MEMFD_SECRET
 #include <asm-generic/unistd.h>
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
index a088ce5..9440576 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
@@ -60,6 +60,8 @@
 #define MADV_KEEPONFORK 19
 #define MADV_COLD 20
 #define MADV_PAGEOUT 21
+#define MADV_POPULATE_READ 22
+#define MADV_POPULATE_WRITE 23
 #define MAP_FILE 0
 #define PKEY_DISABLE_ACCESS 0x1
 #define PKEY_DISABLE_WRITE 0x2
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
index 8bcbabb..f9199e5 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
@@ -59,9 +59,6 @@
   } _sigchld;
   struct {
     void __user * _addr;
-#ifdef __ARCH_SI_TRAPNO
-    int _trapno;
-#endif
 #ifdef __ia64__
     int _imm;
     unsigned int _flags;
@@ -69,6 +66,7 @@
 #endif
 #define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? sizeof(short) : __alignof__(void *))
     union {
+      int _trapno;
       short _addr_lsb;
       struct {
         char _dummy_bnd[__ADDR_BND_PKEY_PAD];
@@ -79,6 +77,10 @@
         char _dummy_pkey[__ADDR_BND_PKEY_PAD];
         __u32 _pkey;
       } _addr_pkey;
+      struct {
+        unsigned long _data;
+        __u32 _type;
+      } _perf;
     };
   } _sigfault;
   struct {
@@ -116,13 +118,13 @@
 #define si_int _sifields._rt._sigval.sival_int
 #define si_ptr _sifields._rt._sigval.sival_ptr
 #define si_addr _sifields._sigfault._addr
-#ifdef __ARCH_SI_TRAPNO
 #define si_trapno _sifields._sigfault._trapno
-#endif
 #define si_addr_lsb _sifields._sigfault._addr_lsb
 #define si_lower _sifields._sigfault._addr_bnd._lower
 #define si_upper _sifields._sigfault._addr_bnd._upper
 #define si_pkey _sifields._sigfault._addr_pkey._pkey
+#define si_perf_data _sifields._sigfault._perf._data
+#define si_perf_type _sifields._sigfault._perf._type
 #define si_band _sifields._sigpoll._band
 #define si_fd _sifields._sigpoll._fd
 #define si_call_addr _sifields._sigsys._call_addr
@@ -193,7 +195,8 @@
 #define TRAP_BRANCH 3
 #define TRAP_HWBKPT 4
 #define TRAP_UNK 5
-#define NSIGTRAP 5
+#define TRAP_PERF 6
+#define NSIGTRAP 6
 #define CLD_EXITED 1
 #define CLD_KILLED 2
 #define CLD_DUMPED 3
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/socket.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/socket.h
index 7372be8..6767993 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/socket.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/socket.h
@@ -97,6 +97,9 @@
 #define SO_DETACH_REUSEPORT_BPF 68
 #define SO_PREFER_BUSY_POLL 69
 #define SO_BUSY_POLL_BUDGET 70
+#define SO_NETNS_COOKIE 71
+#define SO_BUF_LOCK 72
+#define SO_RESERVE_MEM 73
 #if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
 #define SO_TIMESTAMP SO_TIMESTAMP_OLD
 #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/unistd.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
index 1409701..4b9f174 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
@@ -403,8 +403,18 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#ifdef __ARCH_WANT_MEMFD_SECRET
+#define __NR_memfd_secret 447
+#endif
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #undef __NR_syscalls
-#define __NR_syscalls 443
+#define __NR_syscalls 451
 #if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
 #define __NR_fcntl __NR3264_fcntl
 #define __NR_statfs __NR3264_statfs
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
index 4fd53f0..dd86783 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
@@ -22,5 +22,5 @@
 #define AT_SYSINFO 32
 #endif
 #define AT_SYSINFO_EHDR 33
-#define AT_VECTOR_SIZE_ARCH 2
+#define AT_VECTOR_SIZE_ARCH 3
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
index aeb8b02..360f432 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
@@ -28,6 +28,7 @@
 #define DR_TRAP2 (0x4)
 #define DR_TRAP3 (0x8)
 #define DR_TRAP_BITS (DR_TRAP0 | DR_TRAP1 | DR_TRAP2 | DR_TRAP3)
+#define DR_BUS_LOCK (0x800)
 #define DR_STEP (0x4000)
 #define DR_SWITCH (0x8000)
 #define DR_CONTROL_SHIFT 16
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
index a6dbfb9..9f715c9 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef _ASM_X86_HWCAP2_H
 #define _ASM_X86_HWCAP2_H
-#define HWCAP2_RING3MWAIT (1 << 0)
-#define HWCAP2_FSGSBASE BIT(1)
+#include <linux/const.h>
+#define HWCAP2_RING3MWAIT _BITUL(0)
+#define HWCAP2_FSGSBASE _BITUL(1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
index 0d82c5d..caf8fc0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
@@ -146,6 +146,17 @@
   __u64 apic_base;
   __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64];
 };
+struct kvm_sregs2 {
+  struct kvm_segment cs, ds, es, fs, gs, ss;
+  struct kvm_segment tr, ldt;
+  struct kvm_dtable gdt, idt;
+  __u64 cr0, cr2, cr3, cr4, cr8;
+  __u64 efer;
+  __u64 apic_base;
+  __u64 flags;
+  __u64 pdptrs[4];
+};
+#define KVM_SREGS2_FLAGS_PDPTRS_VALID 1
 struct kvm_fpu {
   __u8 fpr[8][16];
   __u16 fcw;
@@ -246,6 +257,7 @@
 #define KVM_GUESTDBG_USE_HW_BP 0x00020000
 #define KVM_GUESTDBG_INJECT_DB 0x00040000
 #define KVM_GUESTDBG_INJECT_BP 0x00080000
+#define KVM_GUESTDBG_BLOCKIRQ 0x00100000
 struct kvm_guest_debug_arch {
   __u64 debugreg[8];
 };
@@ -310,6 +322,7 @@
 };
 struct kvm_xsave {
   __u32 region[1024];
+  __u32 extra[0];
 };
 #define KVM_MAX_XCRS 16
 struct kvm_xcr {
@@ -349,6 +362,7 @@
 #define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000
 #define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000
 #define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001
+#define KVM_X86_XCOMP_GUEST_SUPP 0
 struct kvm_vmx_nested_state_data {
   __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
   __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
@@ -359,6 +373,7 @@
   struct {
     __u16 flags;
   } smm;
+  __u16 pad;
   __u32 flags;
   __u64 preemption_timer_deadline;
 };
@@ -392,4 +407,6 @@
 };
 #define KVM_PMU_EVENT_ALLOW 0
 #define KVM_PMU_EVENT_DENY 1
+#define KVM_VCPU_TSC_CTRL 0
+#define KVM_VCPU_TSC_OFFSET 0
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
index 091fb27..dd72af0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
@@ -20,6 +20,7 @@
 #define _UAPI_ASM_X86_KVM_PARA_H
 #include <linux/types.h>
 #define KVM_CPUID_SIGNATURE 0x40000000
+#define KVM_SIGNATURE "KVMKVMKVM\0\0\0"
 #define KVM_CPUID_FEATURES 0x40000001
 #define KVM_FEATURE_CLOCKSOURCE 0
 #define KVM_FEATURE_NOP_IO_DELAY 1
@@ -36,6 +37,8 @@
 #define KVM_FEATURE_PV_SCHED_YIELD 13
 #define KVM_FEATURE_ASYNC_PF_INT 14
 #define KVM_FEATURE_MSI_EXT_DEST_ID 15
+#define KVM_FEATURE_HC_MAP_GPA_RANGE 16
+#define KVM_FEATURE_MIGRATION_CONTROL 17
 #define KVM_HINTS_REALTIME 0
 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24
 #define MSR_KVM_WALL_CLOCK 0x11
@@ -49,6 +52,7 @@
 #define MSR_KVM_POLL_CONTROL 0x4b564d05
 #define MSR_KVM_ASYNC_PF_INT 0x4b564d06
 #define MSR_KVM_ASYNC_PF_ACK 0x4b564d07
+#define MSR_KVM_MIGRATION_CONTROL 0x4b564d08
 struct kvm_steal_time {
   __u64 steal;
   __u32 version;
@@ -76,6 +80,13 @@
 #define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2)
 #define KVM_ASYNC_PF_DELIVERY_AS_INT (1 << 3)
 #define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0)
+#define KVM_MIGRATION_READY (1 << 0)
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_4K 0
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_2M (1 << 0)
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_1G (1 << 1)
+#define KVM_MAP_GPA_RANGE_ENC_STAT(n) (n << 4)
+#define KVM_MAP_GPA_RANGE_ENCRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(1)
+#define KVM_MAP_GPA_RANGE_DECRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(0)
 #define KVM_MMU_OP_WRITE_PTE 1
 #define KVM_MMU_OP_FLUSH_TLB 2
 #define KVM_MMU_OP_RELEASE_PT 3
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
index 0e6bed9..c5ba2d6 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
@@ -24,6 +24,11 @@
 #define ARCH_GET_GS 0x1004
 #define ARCH_GET_CPUID 0x1011
 #define ARCH_SET_CPUID 0x1012
+#define ARCH_GET_XCOMP_SUPP 0x1021
+#define ARCH_GET_XCOMP_PERM 0x1022
+#define ARCH_REQ_XCOMP_PERM 0x1023
+#define ARCH_GET_XCOMP_GUEST_PERM 0x1024
+#define ARCH_REQ_XCOMP_GUEST_PERM 0x1025
 #define ARCH_MAP_VDSO_X32 0x2001
 #define ARCH_MAP_VDSO_32 0x2002
 #define ARCH_MAP_VDSO_64 0x2003
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
index 349791a..1874b78 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
@@ -28,6 +28,7 @@
 #define SGX_IOC_ENCLAVE_ADD_PAGES _IOWR(SGX_MAGIC, 0x01, struct sgx_enclave_add_pages)
 #define SGX_IOC_ENCLAVE_INIT _IOW(SGX_MAGIC, 0x02, struct sgx_enclave_init)
 #define SGX_IOC_ENCLAVE_PROVISION _IOW(SGX_MAGIC, 0x03, struct sgx_enclave_provision)
+#define SGX_IOC_VEPC_REMOVE_ALL _IO(SGX_MAGIC, 0x04)
 struct sgx_enclave_create {
   __u64 src;
 };
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
index db9918b..d051481 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
@@ -123,6 +123,7 @@
 #define SVM_VMGEXIT_SET_AP_JUMP_TABLE 0
 #define SVM_VMGEXIT_GET_AP_JUMP_TABLE 1
 #define SVM_VMGEXIT_UNSUPPORTED_EVENT 0x8000ffff
+#define SVM_EXIT_SW 0xf0000000
 #define SVM_EXIT_ERR - 1
 #define SVM_EXIT_REASONS { SVM_EXIT_READ_CR0, "read_cr0" }, { SVM_EXIT_READ_CR2, "read_cr2" }, { SVM_EXIT_READ_CR3, "read_cr3" }, { SVM_EXIT_READ_CR4, "read_cr4" }, { SVM_EXIT_READ_CR8, "read_cr8" }, { SVM_EXIT_WRITE_CR0, "write_cr0" }, { SVM_EXIT_WRITE_CR2, "write_cr2" }, { SVM_EXIT_WRITE_CR3, "write_cr3" }, { SVM_EXIT_WRITE_CR4, "write_cr4" }, { SVM_EXIT_WRITE_CR8, "write_cr8" }, { SVM_EXIT_READ_DR0, "read_dr0" }, { SVM_EXIT_READ_DR1, "read_dr1" }, { SVM_EXIT_READ_DR2, "read_dr2" }, { SVM_EXIT_READ_DR3, "read_dr3" }, { SVM_EXIT_READ_DR4, "read_dr4" }, { SVM_EXIT_READ_DR5, "read_dr5" }, { SVM_EXIT_READ_DR6, "read_dr6" }, { SVM_EXIT_READ_DR7, "read_dr7" }, { SVM_EXIT_WRITE_DR0, "write_dr0" }, { SVM_EXIT_WRITE_DR1, "write_dr1" }, { SVM_EXIT_WRITE_DR2, "write_dr2" }, { SVM_EXIT_WRITE_DR3, "write_dr3" }, { SVM_EXIT_WRITE_DR4, "write_dr4" }, { SVM_EXIT_WRITE_DR5, "write_dr5" }, { SVM_EXIT_WRITE_DR6, "write_dr6" }, { SVM_EXIT_WRITE_DR7, "write_dr7" }, { SVM_EXIT_EXCP_BASE + DE_VECTOR, "DE excp" }, { SVM_EXIT_EXCP_BASE + DB_VECTOR, "DB excp" }, { SVM_EXIT_EXCP_BASE + BP_VECTOR, "BP excp" }, { SVM_EXIT_EXCP_BASE + OF_VECTOR, "OF excp" }, { SVM_EXIT_EXCP_BASE + BR_VECTOR, "BR excp" }, { SVM_EXIT_EXCP_BASE + UD_VECTOR, "UD excp" }, { SVM_EXIT_EXCP_BASE + NM_VECTOR, "NM excp" }, { SVM_EXIT_EXCP_BASE + DF_VECTOR, "DF excp" }, { SVM_EXIT_EXCP_BASE + TS_VECTOR, "TS excp" }, { SVM_EXIT_EXCP_BASE + NP_VECTOR, "NP excp" }, { SVM_EXIT_EXCP_BASE + SS_VECTOR, "SS excp" }, { SVM_EXIT_EXCP_BASE + GP_VECTOR, "GP excp" }, { SVM_EXIT_EXCP_BASE + PF_VECTOR, "PF excp" }, { SVM_EXIT_EXCP_BASE + MF_VECTOR, "MF excp" }, { SVM_EXIT_EXCP_BASE + AC_VECTOR, "AC excp" }, { SVM_EXIT_EXCP_BASE + MC_VECTOR, "MC excp" }, { SVM_EXIT_EXCP_BASE + XM_VECTOR, "XF excp" }, { SVM_EXIT_INTR, "interrupt" }, { SVM_EXIT_NMI, "nmi" }, { SVM_EXIT_SMI, "smi" }, { SVM_EXIT_INIT, "init" }, { SVM_EXIT_VINTR, "vintr" }, { SVM_EXIT_CR0_SEL_WRITE, "cr0_sel_write" }, { SVM_EXIT_IDTR_READ, "read_idtr" }, { SVM_EXIT_GDTR_READ, "read_gdtr" }, { SVM_EXIT_LDTR_READ, "read_ldtr" }, { SVM_EXIT_TR_READ, "read_rt" }, { SVM_EXIT_IDTR_WRITE, "write_idtr" }, { SVM_EXIT_GDTR_WRITE, "write_gdtr" }, { SVM_EXIT_LDTR_WRITE, "write_ldtr" }, { SVM_EXIT_TR_WRITE, "write_rt" }, { SVM_EXIT_RDTSC, "rdtsc" }, { SVM_EXIT_RDPMC, "rdpmc" }, { SVM_EXIT_PUSHF, "pushf" }, { SVM_EXIT_POPF, "popf" }, { SVM_EXIT_CPUID, "cpuid" }, { SVM_EXIT_RSM, "rsm" }, { SVM_EXIT_IRET, "iret" }, { SVM_EXIT_SWINT, "swint" }, { SVM_EXIT_INVD, "invd" }, { SVM_EXIT_PAUSE, "pause" }, { SVM_EXIT_HLT, "hlt" }, { SVM_EXIT_INVLPG, "invlpg" }, { SVM_EXIT_INVLPGA, "invlpga" }, { SVM_EXIT_IOIO, "io" }, { SVM_EXIT_MSR, "msr" }, { SVM_EXIT_TASK_SWITCH, "task_switch" }, { SVM_EXIT_FERR_FREEZE, "ferr_freeze" }, { SVM_EXIT_SHUTDOWN, "shutdown" }, { SVM_EXIT_VMRUN, "vmrun" }, { SVM_EXIT_VMMCALL, "hypercall" }, { SVM_EXIT_VMLOAD, "vmload" }, { SVM_EXIT_VMSAVE, "vmsave" }, { SVM_EXIT_STGI, "stgi" }, { SVM_EXIT_CLGI, "clgi" }, { SVM_EXIT_SKINIT, "skinit" }, { SVM_EXIT_RDTSCP, "rdtscp" }, { SVM_EXIT_ICEBP, "icebp" }, { SVM_EXIT_WBINVD, "wbinvd" }, { SVM_EXIT_MONITOR, "monitor" }, { SVM_EXIT_MWAIT, "mwait" }, { SVM_EXIT_XSETBV, "xsetbv" }, { SVM_EXIT_EFER_WRITE_TRAP, "write_efer_trap" }, { SVM_EXIT_CR0_WRITE_TRAP, "write_cr0_trap" }, { SVM_EXIT_CR4_WRITE_TRAP, "write_cr4_trap" }, { SVM_EXIT_CR8_WRITE_TRAP, "write_cr8_trap" }, { SVM_EXIT_INVPCID, "invpcid" }, { SVM_EXIT_NPF, "npf" }, { SVM_EXIT_AVIC_INCOMPLETE_IPI, "avic_incomplete_ipi" }, { SVM_EXIT_AVIC_UNACCELERATED_ACCESS, "avic_unaccelerated_access" }, { SVM_EXIT_VMGEXIT, "vmgexit" }, { SVM_VMGEXIT_MMIO_READ, "vmgexit_mmio_read" }, { SVM_VMGEXIT_MMIO_WRITE, "vmgexit_mmio_write" }, { SVM_VMGEXIT_NMI_COMPLETE, "vmgexit_nmi_complete" }, { SVM_VMGEXIT_AP_HLT_LOOP, "vmgexit_ap_hlt_loop" }, { SVM_VMGEXIT_AP_JUMP_TABLE, "vmgexit_ap_jump_table" }, { SVM_EXIT_ERR, "invalid_guest_state" }
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
index 7fe2421..8e57516 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_32_H
-#define _ASM_X86_UNISTD_32_H 1
+#ifndef _UAPI_ASM_UNISTD_32_H
+#define _UAPI_ASM_UNISTD_32_H
 #define __NR_restart_syscall 0
 #define __NR_exit 1
 #define __NR_fork 2
@@ -450,4 +450,12 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
index 7e3c924..54ff16f 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_64_H
-#define _ASM_X86_UNISTD_64_H 1
+#ifndef _UAPI_ASM_UNISTD_64_H
+#define _UAPI_ASM_UNISTD_64_H
 #define __NR_read 0
 #define __NR_write 1
 #define __NR_open 2
@@ -372,4 +372,12 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
index 529ded3..1e05d75 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_X32_H
-#define _ASM_X86_UNISTD_X32_H 1
+#ifndef _UAPI_ASM_UNISTD_X32_H
+#define _UAPI_ASM_UNISTD_X32_H
 #define __NR_read (__X32_SYSCALL_BIT + 0)
 #define __NR_write (__X32_SYSCALL_BIT + 1)
 #define __NR_open (__X32_SYSCALL_BIT + 2)
@@ -325,6 +325,14 @@
 #define __NR_process_madvise (__X32_SYSCALL_BIT + 440)
 #define __NR_epoll_pwait2 (__X32_SYSCALL_BIT + 441)
 #define __NR_mount_setattr (__X32_SYSCALL_BIT + 442)
+#define __NR_quotactl_fd (__X32_SYSCALL_BIT + 443)
+#define __NR_landlock_create_ruleset (__X32_SYSCALL_BIT + 444)
+#define __NR_landlock_add_rule (__X32_SYSCALL_BIT + 445)
+#define __NR_landlock_restrict_self (__X32_SYSCALL_BIT + 446)
+#define __NR_memfd_secret (__X32_SYSCALL_BIT + 447)
+#define __NR_process_mrelease (__X32_SYSCALL_BIT + 448)
+#define __NR_futex_waitv (__X32_SYSCALL_BIT + 449)
+#define __NR_set_mempolicy_home_node (__X32_SYSCALL_BIT + 450)
 #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
 #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
 #define __NR_ioctl (__X32_SYSCALL_BIT + 514)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
index 1771faa..6c07d4c 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
@@ -19,6 +19,7 @@
 #ifndef _UAPIVMX_H
 #define _UAPIVMX_H
 #define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000
+#define VMX_EXIT_REASONS_SGX_ENCLAVE_MODE 0x08000000
 #define EXIT_REASON_EXCEPTION_NMI 0
 #define EXIT_REASON_EXTERNAL_INTERRUPT 1
 #define EXIT_REASON_TRIPLE_FAULT 2
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
index f8eb023..3764d51 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
@@ -65,13 +65,13 @@
 #define AMDGPU_GEM_CREATE_NO_CPU_ACCESS (1 << 1)
 #define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2)
 #define AMDGPU_GEM_CREATE_VRAM_CLEARED (1 << 3)
-#define AMDGPU_GEM_CREATE_SHADOW (1 << 4)
 #define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5)
 #define AMDGPU_GEM_CREATE_VM_ALWAYS_VALID (1 << 6)
 #define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7)
 #define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8)
 #define AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE (1 << 9)
 #define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10)
+#define AMDGPU_GEM_CREATE_PREEMPTIBLE (1 << 11)
 struct drm_amdgpu_gem_create_in {
   __u64 bo_size;
   __u64 alignment;
@@ -452,6 +452,7 @@
 #define AMDGPU_INFO_VBIOS 0x1B
 #define AMDGPU_INFO_VBIOS_SIZE 0x1
 #define AMDGPU_INFO_VBIOS_IMAGE 0x2
+#define AMDGPU_INFO_VBIOS_INFO 0x3
 #define AMDGPU_INFO_NUM_HANDLES 0x1C
 #define AMDGPU_INFO_SENSOR 0x1D
 #define AMDGPU_INFO_SENSOR_GFX_SCLK 0x1
@@ -480,6 +481,9 @@
 #define AMDGPU_INFO_RAS_ENABLED_MP0 (1 << 11)
 #define AMDGPU_INFO_RAS_ENABLED_MP1 (1 << 12)
 #define AMDGPU_INFO_RAS_ENABLED_FUSE (1 << 13)
+#define AMDGPU_INFO_VIDEO_CAPS 0x21
+#define AMDGPU_INFO_VIDEO_CAPS_DECODE 0
+#define AMDGPU_INFO_VIDEO_CAPS_ENCODE 1
 #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
 #define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
 #define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8
@@ -517,6 +521,9 @@
     struct {
       __u32 type;
     } sensor_info;
+    struct {
+      __u32 type;
+    } video_cap;
   };
 };
 struct drm_amdgpu_info_gds {
@@ -549,6 +556,14 @@
   __u32 ver;
   __u32 feature;
 };
+struct drm_amdgpu_info_vbios {
+  __u8 name[64];
+  __u8 vbios_pn[64];
+  __u32 version;
+  __u32 pad;
+  __u8 vbios_ver_str[32];
+  __u8 date[32];
+};
 #define AMDGPU_VRAM_TYPE_UNKNOWN 0
 #define AMDGPU_VRAM_TYPE_GDDR1 1
 #define AMDGPU_VRAM_TYPE_DDR2 2
@@ -636,6 +651,26 @@
   __u32 num_valid_entries;
   __u32 pad;
 };
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2 0
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4 1
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1 2
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC 3
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC 4
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG 5
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9 6
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_AV1 7
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT 8
+struct drm_amdgpu_info_video_codec_info {
+  __u32 valid;
+  __u32 max_width;
+  __u32 max_height;
+  __u32 max_pixels_per_frame;
+  __u32 max_level;
+  __u32 pad;
+};
+struct drm_amdgpu_info_video_caps {
+  struct drm_amdgpu_info_video_codec_info codec_info[AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT];
+};
 #define AMDGPU_FAMILY_UNKNOWN 0
 #define AMDGPU_FAMILY_SI 110
 #define AMDGPU_FAMILY_CI 120
@@ -646,6 +681,7 @@
 #define AMDGPU_FAMILY_RV 142
 #define AMDGPU_FAMILY_NV 143
 #define AMDGPU_FAMILY_VGH 144
+#define AMDGPU_FAMILY_YC 146
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
index 4574c1c..e845c8c 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
@@ -27,6 +27,8 @@
 #define DRM_FORMAT_INVALID 0
 #define DRM_FORMAT_C8 fourcc_code('C', '8', ' ', ' ')
 #define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ')
+#define DRM_FORMAT_R10 fourcc_code('R', '1', '0', ' ')
+#define DRM_FORMAT_R12 fourcc_code('R', '1', '2', ' ')
 #define DRM_FORMAT_R16 fourcc_code('R', '1', '6', ' ')
 #define DRM_FORMAT_RG88 fourcc_code('R', 'G', '8', '8')
 #define DRM_FORMAT_GR88 fourcc_code('G', 'R', '8', '8')
@@ -70,6 +72,10 @@
 #define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0')
 #define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0')
 #define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0')
+#define DRM_FORMAT_XRGB16161616 fourcc_code('X', 'R', '4', '8')
+#define DRM_FORMAT_XBGR16161616 fourcc_code('X', 'B', '4', '8')
+#define DRM_FORMAT_ARGB16161616 fourcc_code('A', 'R', '4', '8')
+#define DRM_FORMAT_ABGR16161616 fourcc_code('A', 'B', '4', '8')
 #define DRM_FORMAT_XRGB16161616F fourcc_code('X', 'R', '4', 'H')
 #define DRM_FORMAT_XBGR16161616F fourcc_code('X', 'B', '4', 'H')
 #define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H')
@@ -117,6 +123,7 @@
 #define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0')
 #define DRM_FORMAT_P012 fourcc_code('P', '0', '1', '2')
 #define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6')
+#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0')
 #define DRM_FORMAT_Q410 fourcc_code('Q', '4', '1', '0')
 #define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1')
 #define DRM_FORMAT_YUV410 fourcc_code('Y', 'U', 'V', '9')
@@ -141,6 +148,8 @@
 #define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
 #define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
 #define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
+#define fourcc_mod_get_vendor(modifier) (((modifier) >> 56) & 0xff)
+#define fourcc_mod_is_vendor(modifier,vendor) (fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_ ##vendor)
 #define fourcc_mod_code(vendor,val) ((((__u64) DRM_FORMAT_MOD_VENDOR_ ##vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
 #define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE
 #define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
@@ -203,6 +212,15 @@
 #define AFBC_FORMAT_MOD_DB (1ULL << 10)
 #define AFBC_FORMAT_MOD_BCH (1ULL << 11)
 #define AFBC_FORMAT_MOD_USM (1ULL << 12)
+#define DRM_FORMAT_MOD_ARM_TYPE_AFRC 0x02
+#define DRM_FORMAT_MOD_ARM_AFRC(__afrc_mode) DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFRC, __afrc_mode)
+#define AFRC_FORMAT_MOD_CU_SIZE_MASK 0xf
+#define AFRC_FORMAT_MOD_CU_SIZE_16 (1ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_24 (2ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_32 (3ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_P0(__afrc_cu_size) (__afrc_cu_size)
+#define AFRC_FORMAT_MOD_CU_SIZE_P12(__afrc_cu_size) ((__afrc_cu_size) << 4)
+#define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8)
 #define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
 #define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1)
 #define __fourcc_mod_amlogic_layout_mask 0xff
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/drm_mode.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/drm_mode.h
index 643ae98..9a6a6d9 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/drm_mode.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/drm_mode.h
@@ -223,6 +223,7 @@
 #define DRM_MODE_CONNECTOR_DPI 17
 #define DRM_MODE_CONNECTOR_WRITEBACK 18
 #define DRM_MODE_CONNECTOR_SPI 19
+#define DRM_MODE_CONNECTOR_USB 20
 struct drm_mode_get_connector {
   __u64 encoders_ptr;
   __u64 modes_ptr;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
index c92d110..7f8d5fa 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
@@ -53,6 +53,9 @@
 #define ETNAVIV_PARAM_GPU_NUM_CONSTANTS 0x19
 #define ETNAVIV_PARAM_GPU_NUM_VARYINGS 0x1a
 #define ETNAVIV_PARAM_SOFTPIN_START_ADDR 0x1b
+#define ETNAVIV_PARAM_GPU_PRODUCT_ID 0x1c
+#define ETNAVIV_PARAM_GPU_CUSTOMER_ID 0x1d
+#define ETNAVIV_PARAM_GPU_ECO_ID 0x1e
 #define ETNA_MAX_PIPES 4
 struct drm_etnaviv_param {
   __u32 pipe;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/i915_drm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/i915_drm.h
index f265d92..52bfad2 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/i915_drm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/i915_drm.h
@@ -217,6 +217,7 @@
 #define DRM_I915_QUERY 0x39
 #define DRM_I915_GEM_VM_CREATE 0x3a
 #define DRM_I915_GEM_VM_DESTROY 0x3b
+#define DRM_I915_GEM_CREATE_EXT 0x3c
 #define DRM_IOCTL_I915_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
 #define DRM_IOCTL_I915_FLUSH DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLUSH)
 #define DRM_IOCTL_I915_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLIP)
@@ -247,6 +248,7 @@
 #define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
 #define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
 #define DRM_IOCTL_I915_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create)
+#define DRM_IOCTL_I915_GEM_CREATE_EXT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE_EXT, struct drm_i915_gem_create_ext)
 #define DRM_IOCTL_I915_GEM_PREAD DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
 #define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
 #define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
@@ -349,6 +351,7 @@
 #define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2)
 #define I915_SCHEDULER_CAP_SEMAPHORES (1ul << 3)
 #define I915_SCHEDULER_CAP_ENGINE_BUSY_STATS (1ul << 4)
+#define I915_SCHEDULER_CAP_STATIC_PRIORITY_MAP (1ul << 5)
 #define I915_PARAM_HUC_STATUS 42
 #define I915_PARAM_HAS_EXEC_ASYNC 43
 #define I915_PARAM_HAS_EXEC_FENCE 44
@@ -363,6 +366,7 @@
 #define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
 #define I915_PARAM_PERF_REVISION 54
 #define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55
+#define I915_PARAM_HAS_USERPTR_PROBE 56
 typedef struct drm_i915_getparam {
   __s32 param;
   int __user * value;
@@ -453,6 +457,7 @@
 #define I915_MMAP_OFFSET_WC 1
 #define I915_MMAP_OFFSET_WB 2
 #define I915_MMAP_OFFSET_UC 3
+#define I915_MMAP_OFFSET_FIXED 4
   __u64 extensions;
 };
 struct drm_i915_gem_set_domain {
@@ -590,11 +595,11 @@
   __u32 handle;
   __u32 busy;
 };
+struct drm_i915_gem_caching {
+  __u32 handle;
 #define I915_CACHING_NONE 0
 #define I915_CACHING_CACHED 1
 #define I915_CACHING_DISPLAY 2
-struct drm_i915_gem_caching {
-  __u32 handle;
   __u32 caching;
 };
 #define I915_TILING_NONE 0
@@ -736,6 +741,7 @@
 #define I915_CONTEXT_PARAM_ENGINES 0xa
 #define I915_CONTEXT_PARAM_PERSISTENCE 0xb
 #define I915_CONTEXT_PARAM_RINGSIZE 0xc
+#define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd
   __u64 value;
 };
 struct drm_i915_gem_context_param_sseu {
@@ -769,10 +775,23 @@
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__,N__) struct { struct i915_user_extension base; struct i915_engine_class_instance master; __u16 virtual_index; __u16 num_bonds; __u64 flags; __u64 mbz64[4]; struct i915_engine_class_instance engines[N__]; \
 } __attribute__((packed)) name__
+struct i915_context_engines_parallel_submit {
+  struct i915_user_extension base;
+  __u16 engine_index;
+  __u16 width;
+  __u16 num_siblings;
+  __u16 mbz16;
+  __u64 flags;
+  __u64 mbz64[3];
+  struct i915_engine_class_instance engines[0];
+} __packed;
+#define I915_DEFINE_CONTEXT_ENGINES_PARALLEL_SUBMIT(name__,N__) struct { struct i915_user_extension base; __u16 engine_index; __u16 width; __u16 num_siblings; __u16 mbz16; __u64 flags; __u64 mbz64[3]; struct i915_engine_class_instance engines[N__]; \
+} __attribute__((packed)) name__
 struct i915_context_param_engines {
   __u64 extensions;
 #define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0
 #define I915_CONTEXT_ENGINES_EXT_BOND 1
+#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2
   struct i915_engine_class_instance engines[0];
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_PARAM_ENGINES(name__,N__) struct { __u64 extensions; struct i915_engine_class_instance engines[N__]; \
@@ -782,20 +801,7 @@
   struct i915_user_extension base;
   struct drm_i915_gem_context_param param;
 };
-struct drm_i915_gem_context_create_ext_clone {
 #define I915_CONTEXT_CREATE_EXT_CLONE 1
-  struct i915_user_extension base;
-  __u32 clone_id;
-  __u32 flags;
-#define I915_CONTEXT_CLONE_ENGINES (1u << 0)
-#define I915_CONTEXT_CLONE_FLAGS (1u << 1)
-#define I915_CONTEXT_CLONE_SCHEDATTR (1u << 2)
-#define I915_CONTEXT_CLONE_SSEU (1u << 3)
-#define I915_CONTEXT_CLONE_TIMELINE (1u << 4)
-#define I915_CONTEXT_CLONE_VM (1u << 5)
-#define I915_CONTEXT_CLONE_UNKNOWN - (I915_CONTEXT_CLONE_VM << 1)
-  __u64 rsvd;
-};
 struct drm_i915_gem_context_destroy {
   __u32 ctx_id;
   __u32 pad;
@@ -823,6 +829,7 @@
   __u64 user_size;
   __u32 flags;
 #define I915_USERPTR_READ_ONLY 0x1
+#define I915_USERPTR_PROBE 0x2
 #define I915_USERPTR_UNSYNCHRONIZED 0x80000000
   __u32 handle;
 };
@@ -886,6 +893,7 @@
 #define DRM_I915_QUERY_TOPOLOGY_INFO 1
 #define DRM_I915_QUERY_ENGINE_INFO 2
 #define DRM_I915_QUERY_PERF_CONFIG 3
+#define DRM_I915_QUERY_MEMORY_REGIONS 4
   __s32 length;
   __u32 flags;
 #define DRM_I915_QUERY_PERF_CONFIG_LIST 1
@@ -913,10 +921,13 @@
   struct i915_engine_class_instance engine;
   __u32 rsvd0;
   __u64 flags;
+#define I915_ENGINE_INFO_HAS_LOGICAL_INSTANCE (1 << 0)
   __u64 capabilities;
 #define I915_VIDEO_CLASS_CAPABILITY_HEVC (1 << 0)
 #define I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC (1 << 1)
-  __u64 rsvd1[4];
+  __u16 logical_instance;
+  __u16 rsvd1[3];
+  __u64 rsvd2[3];
 };
 struct drm_i915_query_engine_info {
   __u32 num_engines;
@@ -932,6 +943,45 @@
   __u32 flags;
   __u8 data[];
 };
+enum drm_i915_gem_memory_class {
+  I915_MEMORY_CLASS_SYSTEM = 0,
+  I915_MEMORY_CLASS_DEVICE,
+};
+struct drm_i915_gem_memory_class_instance {
+  __u16 memory_class;
+  __u16 memory_instance;
+};
+struct drm_i915_memory_region_info {
+  struct drm_i915_gem_memory_class_instance region;
+  __u32 rsvd0;
+  __u64 probed_size;
+  __u64 unallocated_size;
+  __u64 rsvd1[8];
+};
+struct drm_i915_query_memory_regions {
+  __u32 num_regions;
+  __u32 rsvd[3];
+  struct drm_i915_memory_region_info regions[];
+};
+struct drm_i915_gem_create_ext {
+  __u64 size;
+  __u32 handle;
+  __u32 flags;
+#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0
+#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1
+  __u64 extensions;
+};
+struct drm_i915_gem_create_ext_memory_regions {
+  struct i915_user_extension base;
+  __u32 pad;
+  __u32 num_regions;
+  __u64 regions;
+};
+struct drm_i915_gem_create_ext_protected_content {
+  struct i915_user_extension base;
+  __u32 flags;
+};
+#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/mga_drm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/mga_drm.h
index 4959502..dc62961 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/mga_drm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/mga_drm.h
@@ -175,7 +175,7 @@
     MGA_CLEANUP_DMA = 0x02
   } func;
   unsigned long sarea_priv_offset;
-  int chipset;
+  __struct_group(, always32bit,, int chipset;
   int sgram;
   unsigned int maccess;
   unsigned int fb_cpp;
@@ -185,6 +185,7 @@
   unsigned int depth_offset, depth_pitch;
   unsigned int texture_offset[MGA_NR_TEX_HEAPS];
   unsigned int texture_size[MGA_NR_TEX_HEAPS];
+ );
   unsigned long fb_offset;
   unsigned long mmio_offset;
   unsigned long status_offset;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/msm_drm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/msm_drm.h
index fcfcc20..b4ba1d0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/msm_drm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/msm_drm.h
@@ -39,9 +39,11 @@
 #define MSM_PARAM_MAX_FREQ 0x04
 #define MSM_PARAM_TIMESTAMP 0x05
 #define MSM_PARAM_GMEM_BASE 0x06
-#define MSM_PARAM_NR_RINGS 0x07
+#define MSM_PARAM_PRIORITIES 0x07
 #define MSM_PARAM_PP_PGTABLE 0x08
 #define MSM_PARAM_FAULTS 0x09
+#define MSM_PARAM_SUSPENDS 0x0a
+#define MSM_PARAM_NR_RINGS MSM_PARAM_PRIORITIES
 struct drm_msm_param {
   __u32 pipe;
   __u32 param;
@@ -53,7 +55,8 @@
 #define MSM_BO_CACHED 0x00010000
 #define MSM_BO_WC 0x00020000
 #define MSM_BO_UNCACHED 0x00040000
-#define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHED | MSM_BO_WC | MSM_BO_UNCACHED)
+#define MSM_BO_CACHED_COHERENT 0x080000
+#define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHE_MASK)
 struct drm_msm_gem_new {
   __u64 size;
   __u32 flags;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
index f8b8aa1..1f4473d 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
@@ -110,6 +110,7 @@
   DRM_PANFROST_PARAM_JS_FEATURES15,
   DRM_PANFROST_PARAM_NR_CORE_GROUPS,
   DRM_PANFROST_PARAM_THREAD_TLS_ALLOC,
+  DRM_PANFROST_PARAM_AFBC_FEATURES,
 };
 struct drm_panfrost_get_param {
   __u32 param;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/tegra_drm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
index 5244a27..5e90635 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
@@ -163,6 +163,104 @@
 #define DRM_IOCTL_TEGRA_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_TILING, struct drm_tegra_gem_get_tiling)
 #define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags)
 #define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags)
+#define DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT (1 << 0)
+struct drm_tegra_channel_open {
+  __u32 host1x_class;
+  __u32 flags;
+  __u32 context;
+  __u32 version;
+  __u32 capabilities;
+  __u32 padding;
+};
+struct drm_tegra_channel_close {
+  __u32 context;
+  __u32 padding;
+};
+#define DRM_TEGRA_CHANNEL_MAP_READ (1 << 0)
+#define DRM_TEGRA_CHANNEL_MAP_WRITE (1 << 1)
+#define DRM_TEGRA_CHANNEL_MAP_READ_WRITE (DRM_TEGRA_CHANNEL_MAP_READ | DRM_TEGRA_CHANNEL_MAP_WRITE)
+struct drm_tegra_channel_map {
+  __u32 context;
+  __u32 handle;
+  __u32 flags;
+  __u32 mapping;
+};
+struct drm_tegra_channel_unmap {
+  __u32 context;
+  __u32 mapping;
+};
+#define DRM_TEGRA_SUBMIT_RELOC_SECTOR_LAYOUT (1 << 0)
+struct drm_tegra_submit_buf {
+  __u32 mapping;
+  __u32 flags;
+  struct {
+    __u64 target_offset;
+    __u32 gather_offset_words;
+    __u32 shift;
+  } reloc;
+};
+#define DRM_TEGRA_SUBMIT_CMD_GATHER_UPTR 0
+#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT 1
+#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT_RELATIVE 2
+struct drm_tegra_submit_cmd_gather_uptr {
+  __u32 words;
+  __u32 reserved[3];
+};
+struct drm_tegra_submit_cmd_wait_syncpt {
+  __u32 id;
+  __u32 value;
+  __u32 reserved[2];
+};
+struct drm_tegra_submit_cmd {
+  __u32 type;
+  __u32 flags;
+  union {
+    struct drm_tegra_submit_cmd_gather_uptr gather_uptr;
+    struct drm_tegra_submit_cmd_wait_syncpt wait_syncpt;
+    __u32 reserved[4];
+  };
+};
+struct drm_tegra_submit_syncpt {
+  __u32 id;
+  __u32 flags;
+  __u32 increments;
+  __u32 value;
+};
+struct drm_tegra_channel_submit {
+  __u32 context;
+  __u32 num_bufs;
+  __u32 num_cmds;
+  __u32 gather_data_words;
+  __u64 bufs_ptr;
+  __u64 cmds_ptr;
+  __u64 gather_data_ptr;
+  __u32 syncobj_in;
+  __u32 syncobj_out;
+  struct drm_tegra_submit_syncpt syncpt;
+};
+struct drm_tegra_syncpoint_allocate {
+  __u32 id;
+  __u32 padding;
+};
+struct drm_tegra_syncpoint_free {
+  __u32 id;
+  __u32 padding;
+};
+struct drm_tegra_syncpoint_wait {
+  __s64 timeout_ns;
+  __u32 id;
+  __u32 threshold;
+  __u32 value;
+  __u32 padding;
+};
+#define DRM_IOCTL_TEGRA_CHANNEL_OPEN DRM_IOWR(DRM_COMMAND_BASE + 0x10, struct drm_tegra_channel_open)
+#define DRM_IOCTL_TEGRA_CHANNEL_CLOSE DRM_IOWR(DRM_COMMAND_BASE + 0x11, struct drm_tegra_channel_close)
+#define DRM_IOCTL_TEGRA_CHANNEL_MAP DRM_IOWR(DRM_COMMAND_BASE + 0x12, struct drm_tegra_channel_map)
+#define DRM_IOCTL_TEGRA_CHANNEL_UNMAP DRM_IOWR(DRM_COMMAND_BASE + 0x13, struct drm_tegra_channel_unmap)
+#define DRM_IOCTL_TEGRA_CHANNEL_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + 0x14, struct drm_tegra_channel_submit)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_ALLOCATE DRM_IOWR(DRM_COMMAND_BASE + 0x20, struct drm_tegra_syncpoint_allocate)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_FREE DRM_IOWR(DRM_COMMAND_BASE + 0x21, struct drm_tegra_syncpoint_free)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_WAIT DRM_IOWR(DRM_COMMAND_BASE + 0x22, struct drm_tegra_syncpoint_wait)
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/v3d_drm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
index cdc2cf5..5887678 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
@@ -30,6 +30,9 @@
 #define DRM_V3D_GET_BO_OFFSET 0x05
 #define DRM_V3D_SUBMIT_TFU 0x06
 #define DRM_V3D_SUBMIT_CSD 0x07
+#define DRM_V3D_PERFMON_CREATE 0x08
+#define DRM_V3D_PERFMON_DESTROY 0x09
+#define DRM_V3D_PERFMON_GET_VALUES 0x0a
 #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
 #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo)
 #define DRM_IOCTL_V3D_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_CREATE_BO, struct drm_v3d_create_bo)
@@ -38,7 +41,39 @@
 #define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset)
 #define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu)
 #define DRM_IOCTL_V3D_SUBMIT_CSD DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd)
+#define DRM_IOCTL_V3D_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_CREATE, struct drm_v3d_perfmon_create)
+#define DRM_IOCTL_V3D_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_DESTROY, struct drm_v3d_perfmon_destroy)
+#define DRM_IOCTL_V3D_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_VALUES, struct drm_v3d_perfmon_get_values)
 #define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01
+#define DRM_V3D_SUBMIT_EXTENSION 0x02
+struct drm_v3d_extension {
+  __u64 next;
+  __u32 id;
+#define DRM_V3D_EXT_ID_MULTI_SYNC 0x01
+  __u32 flags;
+};
+struct drm_v3d_sem {
+  __u32 handle;
+  __u32 flags;
+  __u64 point;
+  __u64 mbz[2];
+};
+enum v3d_queue {
+  V3D_BIN,
+  V3D_RENDER,
+  V3D_TFU,
+  V3D_CSD,
+  V3D_CACHE_CLEAN,
+};
+struct drm_v3d_multi_sync {
+  struct drm_v3d_extension base;
+  __u64 in_syncs;
+  __u64 out_syncs;
+  __u32 in_sync_count;
+  __u32 out_sync_count;
+  __u32 wait_stage;
+  __u32 pad;
+};
 struct drm_v3d_submit_cl {
   __u32 bcl_start;
   __u32 bcl_end;
@@ -53,6 +88,9 @@
   __u64 bo_handles;
   __u32 bo_handle_count;
   __u32 flags;
+  __u32 perfmon_id;
+  __u32 pad;
+  __u64 extensions;
 };
 struct drm_v3d_wait_bo {
   __u32 handle;
@@ -81,6 +119,8 @@
   DRM_V3D_PARAM_SUPPORTS_TFU,
   DRM_V3D_PARAM_SUPPORTS_CSD,
   DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH,
+  DRM_V3D_PARAM_SUPPORTS_PERFMON,
+  DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT,
 };
 struct drm_v3d_get_param {
   __u32 param;
@@ -103,6 +143,8 @@
   __u32 bo_handles[4];
   __u32 in_sync;
   __u32 out_sync;
+  __u32 flags;
+  __u64 extensions;
 };
 struct drm_v3d_submit_csd {
   __u32 cfg[7];
@@ -111,6 +153,114 @@
   __u32 bo_handle_count;
   __u32 in_sync;
   __u32 out_sync;
+  __u32 perfmon_id;
+  __u64 extensions;
+  __u32 flags;
+  __u32 pad;
+};
+enum {
+  V3D_PERFCNT_FEP_VALID_PRIMTS_NO_PIXELS,
+  V3D_PERFCNT_FEP_VALID_PRIMS,
+  V3D_PERFCNT_FEP_EZ_NFCLIP_QUADS,
+  V3D_PERFCNT_FEP_VALID_QUADS,
+  V3D_PERFCNT_TLB_QUADS_STENCIL_FAIL,
+  V3D_PERFCNT_TLB_QUADS_STENCILZ_FAIL,
+  V3D_PERFCNT_TLB_QUADS_STENCILZ_PASS,
+  V3D_PERFCNT_TLB_QUADS_ZERO_COV,
+  V3D_PERFCNT_TLB_QUADS_NONZERO_COV,
+  V3D_PERFCNT_TLB_QUADS_WRITTEN,
+  V3D_PERFCNT_PTB_PRIM_VIEWPOINT_DISCARD,
+  V3D_PERFCNT_PTB_PRIM_CLIP,
+  V3D_PERFCNT_PTB_PRIM_REV,
+  V3D_PERFCNT_QPU_IDLE_CYCLES,
+  V3D_PERFCNT_QPU_ACTIVE_CYCLES_VERTEX_COORD_USER,
+  V3D_PERFCNT_QPU_ACTIVE_CYCLES_FRAG,
+  V3D_PERFCNT_QPU_CYCLES_VALID_INSTR,
+  V3D_PERFCNT_QPU_CYCLES_TMU_STALL,
+  V3D_PERFCNT_QPU_CYCLES_SCOREBOARD_STALL,
+  V3D_PERFCNT_QPU_CYCLES_VARYINGS_STALL,
+  V3D_PERFCNT_QPU_IC_HIT,
+  V3D_PERFCNT_QPU_IC_MISS,
+  V3D_PERFCNT_QPU_UC_HIT,
+  V3D_PERFCNT_QPU_UC_MISS,
+  V3D_PERFCNT_TMU_TCACHE_ACCESS,
+  V3D_PERFCNT_TMU_TCACHE_MISS,
+  V3D_PERFCNT_VPM_VDW_STALL,
+  V3D_PERFCNT_VPM_VCD_STALL,
+  V3D_PERFCNT_BIN_ACTIVE,
+  V3D_PERFCNT_RDR_ACTIVE,
+  V3D_PERFCNT_L2T_HITS,
+  V3D_PERFCNT_L2T_MISSES,
+  V3D_PERFCNT_CYCLE_COUNT,
+  V3D_PERFCNT_QPU_CYCLES_STALLED_VERTEX_COORD_USER,
+  V3D_PERFCNT_QPU_CYCLES_STALLED_FRAGMENT,
+  V3D_PERFCNT_PTB_PRIMS_BINNED,
+  V3D_PERFCNT_AXI_WRITES_WATCH_0,
+  V3D_PERFCNT_AXI_READS_WATCH_0,
+  V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_0,
+  V3D_PERFCNT_AXI_READ_STALLS_WATCH_0,
+  V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_0,
+  V3D_PERFCNT_AXI_READ_BYTES_WATCH_0,
+  V3D_PERFCNT_AXI_WRITES_WATCH_1,
+  V3D_PERFCNT_AXI_READS_WATCH_1,
+  V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_1,
+  V3D_PERFCNT_AXI_READ_STALLS_WATCH_1,
+  V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_1,
+  V3D_PERFCNT_AXI_READ_BYTES_WATCH_1,
+  V3D_PERFCNT_TLB_PARTIAL_QUADS,
+  V3D_PERFCNT_TMU_CONFIG_ACCESSES,
+  V3D_PERFCNT_L2T_NO_ID_STALL,
+  V3D_PERFCNT_L2T_COM_QUE_STALL,
+  V3D_PERFCNT_L2T_TMU_WRITES,
+  V3D_PERFCNT_TMU_ACTIVE_CYCLES,
+  V3D_PERFCNT_TMU_STALLED_CYCLES,
+  V3D_PERFCNT_CLE_ACTIVE,
+  V3D_PERFCNT_L2T_TMU_READS,
+  V3D_PERFCNT_L2T_CLE_READS,
+  V3D_PERFCNT_L2T_VCD_READS,
+  V3D_PERFCNT_L2T_TMUCFG_READS,
+  V3D_PERFCNT_L2T_SLC0_READS,
+  V3D_PERFCNT_L2T_SLC1_READS,
+  V3D_PERFCNT_L2T_SLC2_READS,
+  V3D_PERFCNT_L2T_TMU_W_MISSES,
+  V3D_PERFCNT_L2T_TMU_R_MISSES,
+  V3D_PERFCNT_L2T_CLE_MISSES,
+  V3D_PERFCNT_L2T_VCD_MISSES,
+  V3D_PERFCNT_L2T_TMUCFG_MISSES,
+  V3D_PERFCNT_L2T_SLC0_MISSES,
+  V3D_PERFCNT_L2T_SLC1_MISSES,
+  V3D_PERFCNT_L2T_SLC2_MISSES,
+  V3D_PERFCNT_CORE_MEM_WRITES,
+  V3D_PERFCNT_L2T_MEM_WRITES,
+  V3D_PERFCNT_PTB_MEM_WRITES,
+  V3D_PERFCNT_TLB_MEM_WRITES,
+  V3D_PERFCNT_CORE_MEM_READS,
+  V3D_PERFCNT_L2T_MEM_READS,
+  V3D_PERFCNT_PTB_MEM_READS,
+  V3D_PERFCNT_PSE_MEM_READS,
+  V3D_PERFCNT_TLB_MEM_READS,
+  V3D_PERFCNT_GMP_MEM_READS,
+  V3D_PERFCNT_PTB_W_MEM_WORDS,
+  V3D_PERFCNT_TLB_W_MEM_WORDS,
+  V3D_PERFCNT_PSE_R_MEM_WORDS,
+  V3D_PERFCNT_TLB_R_MEM_WORDS,
+  V3D_PERFCNT_TMU_MRU_HITS,
+  V3D_PERFCNT_COMPUTE_ACTIVE,
+  V3D_PERFCNT_NUM,
+};
+#define DRM_V3D_MAX_PERF_COUNTERS 32
+struct drm_v3d_perfmon_create {
+  __u32 id;
+  __u32 ncounters;
+  __u8 counters[DRM_V3D_MAX_PERF_COUNTERS];
+};
+struct drm_v3d_perfmon_destroy {
+  __u32 id;
+};
+struct drm_v3d_perfmon_get_values {
+  __u32 id;
+  __u32 pad;
+  __u64 values_ptr;
 };
 #ifdef __cplusplus
 }
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
index 842c1fd..342282d 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
@@ -32,9 +32,11 @@
 #define DRM_VIRTGPU_WAIT 0x08
 #define DRM_VIRTGPU_GET_CAPS 0x09
 #define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a
+#define DRM_VIRTGPU_CONTEXT_INIT 0x0b
 #define VIRTGPU_EXECBUF_FENCE_FD_IN 0x01
 #define VIRTGPU_EXECBUF_FENCE_FD_OUT 0x02
-#define VIRTGPU_EXECBUF_FLAGS (VIRTGPU_EXECBUF_FENCE_FD_IN | VIRTGPU_EXECBUF_FENCE_FD_OUT | 0)
+#define VIRTGPU_EXECBUF_RING_IDX 0x04
+#define VIRTGPU_EXECBUF_FLAGS (VIRTGPU_EXECBUF_FENCE_FD_IN | VIRTGPU_EXECBUF_FENCE_FD_OUT | VIRTGPU_EXECBUF_RING_IDX | 0)
 struct drm_virtgpu_map {
   __u64 offset;
   __u32 handle;
@@ -47,12 +49,16 @@
   __u64 bo_handles;
   __u32 num_bo_handles;
   __s32 fence_fd;
+  __u32 ring_idx;
+  __u32 pad;
 };
 #define VIRTGPU_PARAM_3D_FEATURES 1
 #define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2
 #define VIRTGPU_PARAM_RESOURCE_BLOB 3
 #define VIRTGPU_PARAM_HOST_VISIBLE 4
 #define VIRTGPU_PARAM_CROSS_DEVICE 5
+#define VIRTGPU_PARAM_CONTEXT_INIT 6
+#define VIRTGPU_PARAM_SUPPORTED_CAPSET_IDs 7
 struct drm_virtgpu_getparam {
   __u64 param;
   __u64 value;
@@ -132,6 +138,19 @@
   __u64 cmd;
   __u64 blob_id;
 };
+#define VIRTGPU_CONTEXT_PARAM_CAPSET_ID 0x0001
+#define VIRTGPU_CONTEXT_PARAM_NUM_RINGS 0x0002
+#define VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK 0x0003
+struct drm_virtgpu_context_set_param {
+  __u64 param;
+  __u64 value;
+};
+struct drm_virtgpu_context_init {
+  __u32 num_params;
+  __u32 pad;
+  __u64 ctx_set_params;
+};
+#define VIRTGPU_EVENT_FENCE_SIGNALED 0x90000000
 #define DRM_IOCTL_VIRTGPU_MAP DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map)
 #define DRM_IOCTL_VIRTGPU_EXECBUFFER DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_EXECBUFFER, struct drm_virtgpu_execbuffer)
 #define DRM_IOCTL_VIRTGPU_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GETPARAM, struct drm_virtgpu_getparam)
@@ -142,6 +161,7 @@
 #define DRM_IOCTL_VIRTGPU_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_WAIT, struct drm_virtgpu_3d_wait)
 #define DRM_IOCTL_VIRTGPU_GET_CAPS DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GET_CAPS, struct drm_virtgpu_get_caps)
 #define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB, struct drm_virtgpu_resource_create_blob)
+#define DRM_IOCTL_VIRTGPU_CONTEXT_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_CONTEXT_INIT, struct drm_virtgpu_context_init)
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
index 982b64f..395743b 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
@@ -56,6 +56,9 @@
 #define DRM_VMW_GB_SURFACE_CREATE_EXT 27
 #define DRM_VMW_GB_SURFACE_REF_EXT 28
 #define DRM_VMW_MSG 29
+#define DRM_VMW_MKSSTAT_RESET 30
+#define DRM_VMW_MKSSTAT_ADD 31
+#define DRM_VMW_MKSSTAT_REMOVE 32
 #define DRM_VMW_PARAM_NUM_STREAMS 0
 #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1
 #define DRM_VMW_PARAM_3D 2
@@ -72,6 +75,7 @@
 #define DRM_VMW_PARAM_HW_CAPS2 13
 #define DRM_VMW_PARAM_SM4_1 14
 #define DRM_VMW_PARAM_SM5 15
+#define DRM_VMW_PARAM_GL43 16
 enum drm_vmw_handle_type {
   DRM_VMW_HANDLE_LEGACY = 0,
   DRM_VMW_HANDLE_PRIME = 1
@@ -360,6 +364,19 @@
   __s32 send_only;
   __u32 receive_len;
 };
+struct drm_vmw_mksstat_add_arg {
+  __u64 stat;
+  __u64 info;
+  __u64 strs;
+  __u64 stat_len;
+  __u64 info_len;
+  __u64 strs_len;
+  __u64 description;
+  __u64 id;
+};
+struct drm_vmw_mksstat_remove_arg {
+  __u64 id;
+};
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/acrn.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/acrn.h
index 74b719a..c991ac0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/acrn.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/acrn.h
@@ -178,6 +178,7 @@
   } intx;
 };
 #define ACRN_PTDEV_QUIRK_ASSIGN (1U << 0)
+#define ACRN_MMIODEV_RES_NUM 3
 #define ACRN_PCI_NUM_BARS 6
 struct acrn_pcidev {
   __u32 type;
@@ -187,6 +188,29 @@
   __u8 intr_pin;
   __u32 bar[ACRN_PCI_NUM_BARS];
 };
+struct acrn_mmiodev {
+  __u8 name[8];
+  struct {
+    __u64 user_vm_pa;
+    __u64 service_vm_pa;
+    __u64 size;
+    __u64 mem_type;
+  } res[ACRN_MMIODEV_RES_NUM];
+};
+struct acrn_vdev {
+  union {
+    __u64 value;
+    struct {
+      __le16 vendor;
+      __le16 device;
+      __le32 legacy_id;
+    } fields;
+  } id;
+  __u64 slot;
+  __u32 io_addr[ACRN_PCI_NUM_BARS];
+  __u32 io_size[ACRN_PCI_NUM_BARS];
+  __u8 args[128];
+};
 struct acrn_msi_entry {
   __u64 msi_addr;
   __u64 msi_data;
@@ -257,6 +281,10 @@
 #define ACRN_IOCTL_RESET_PTDEV_INTR _IOW(ACRN_IOCTL_TYPE, 0x54, struct acrn_ptdev_irq)
 #define ACRN_IOCTL_ASSIGN_PCIDEV _IOW(ACRN_IOCTL_TYPE, 0x55, struct acrn_pcidev)
 #define ACRN_IOCTL_DEASSIGN_PCIDEV _IOW(ACRN_IOCTL_TYPE, 0x56, struct acrn_pcidev)
+#define ACRN_IOCTL_ASSIGN_MMIODEV _IOW(ACRN_IOCTL_TYPE, 0x57, struct acrn_mmiodev)
+#define ACRN_IOCTL_DEASSIGN_MMIODEV _IOW(ACRN_IOCTL_TYPE, 0x58, struct acrn_mmiodev)
+#define ACRN_IOCTL_CREATE_VDEV _IOW(ACRN_IOCTL_TYPE, 0x59, struct acrn_vdev)
+#define ACRN_IOCTL_DESTROY_VDEV _IOW(ACRN_IOCTL_TYPE, 0x5A, struct acrn_vdev)
 #define ACRN_IOCTL_PM_GET_CPU_STATE _IOWR(ACRN_IOCTL_TYPE, 0x60, __u64)
 #define ACRN_IOCTL_IOEVENTFD _IOW(ACRN_IOCTL_TYPE, 0x70, struct acrn_ioeventfd)
 #define ACRN_IOCTL_IRQFD _IOW(ACRN_IOCTL_TYPE, 0x71, struct acrn_irqfd)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/amt.h
similarity index 69%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/amt.h
index bb45c3d..049006d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/amt.h
@@ -16,14 +16,25 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_AMT_H_
+#define _UAPI_AMT_H_
+enum ifla_amt_mode {
+  AMT_MODE_GATEWAY = 0,
+  AMT_MODE_RELAY,
+  __AMT_MODE_MAX,
 };
+#define AMT_MODE_MAX (__AMT_MODE_MAX - 1)
+enum {
+  IFLA_AMT_UNSPEC,
+  IFLA_AMT_MODE,
+  IFLA_AMT_RELAY_PORT,
+  IFLA_AMT_GATEWAY_PORT,
+  IFLA_AMT_LINK,
+  IFLA_AMT_LOCAL_IP,
+  IFLA_AMT_REMOTE_IP,
+  IFLA_AMT_DISCOVERY_IP,
+  IFLA_AMT_MAX_TUNNELS,
+  __IFLA_AMT_MAX,
+};
+#define IFLA_AMT_MAX (__IFLA_AMT_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/android/binder.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/android/binder.h
index 5416344..ded1756 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/android/binder.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/android/binder.h
@@ -117,6 +117,16 @@
   __u32 reserved2;
   __u32 reserved3;
 };
+struct binder_freeze_info {
+  __u32 pid;
+  __u32 enable;
+  __u32 timeout_ms;
+};
+struct binder_frozen_status_info {
+  __u32 pid;
+  __u32 sync_recv;
+  __u32 async_recv;
+};
 #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read)
 #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64)
 #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32)
@@ -127,6 +137,9 @@
 #define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info)
 #define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref)
 #define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object)
+#define BINDER_FREEZE _IOW('b', 14, struct binder_freeze_info)
+#define BINDER_GET_FROZEN_INFO _IOWR('b', 15, struct binder_frozen_status_info)
+#define BINDER_ENABLE_ONEWAY_SPAM_DETECTION _IOW('b', 16, __u32)
 enum transaction_flags {
   TF_ONE_WAY = 0x01,
   TF_ROOT_OBJECT = 0x04,
@@ -199,6 +212,8 @@
   BR_DEAD_BINDER = _IOR('r', 15, binder_uintptr_t),
   BR_CLEAR_DEATH_NOTIFICATION_DONE = _IOR('r', 16, binder_uintptr_t),
   BR_FAILED_REPLY = _IO('r', 17),
+  BR_FROZEN_REPLY = _IO('r', 18),
+  BR_ONEWAY_SPAM_SUSPECT = _IO('r', 19),
 };
 enum binder_driver_command_protocol {
   BC_TRANSACTION = _IOW('c', 0, struct binder_transaction_data),
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/audit.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/audit.h
index 2c18e07..30a94af 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/audit.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/audit.h
@@ -83,6 +83,10 @@
 #define AUDIT_TIME_ADJNTPVAL 1333
 #define AUDIT_BPF 1334
 #define AUDIT_EVENT_LISTENER 1335
+#define AUDIT_URINGOP 1336
+#define AUDIT_OPENAT2 1337
+#define AUDIT_DM_CTRL 1338
+#define AUDIT_DM_EVENT 1339
 #define AUDIT_AVC 1400
 #define AUDIT_SELINUX_ERR 1401
 #define AUDIT_AVC_PATH 1402
@@ -126,7 +130,8 @@
 #define AUDIT_FILTER_EXCLUDE 0x05
 #define AUDIT_FILTER_TYPE AUDIT_FILTER_EXCLUDE
 #define AUDIT_FILTER_FS 0x06
-#define AUDIT_NR_FILTERS 7
+#define AUDIT_FILTER_URING_EXIT 0x07
+#define AUDIT_NR_FILTERS 8
 #define AUDIT_FILTER_PREPEND 0x10
 #define AUDIT_NEVER 0
 #define AUDIT_POSSIBLE 1
@@ -372,6 +377,6 @@
   __u32 values[AUDIT_MAX_FIELDS];
   __u32 fieldflags[AUDIT_MAX_FIELDS];
   __u32 buflen;
-  char buf[0];
+  char buf[];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/auxvec.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/auxvec.h
index e8c2336..c80c170 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/auxvec.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/auxvec.h
@@ -42,4 +42,7 @@
 #define AT_RANDOM 25
 #define AT_HWCAP2 26
 #define AT_EXECFN 31
+#ifndef AT_MINSIGSTKSZ
+#define AT_MINSIGSTKSZ 51
+#endif
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/bcache.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/bcache.h
deleted file mode 100644
index 25b6987..0000000
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/bcache.h
+++ /dev/null
@@ -1,221 +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_BCACHE_H
-#define _LINUX_BCACHE_H
-#include <linux/types.h>
-#define BITMASK(name,type,field,offset,size) static inline __u64 name(const type * k) \
-{ return(k->field >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(type * k, __u64 v) \
-{ k->field &= ~(~(~0ULL << size) << offset); k->field |= (v & ~(~0ULL << size)) << offset; \
-}
-struct bkey {
-  __u64 high;
-  __u64 low;
-  __u64 ptr[];
-};
-#define KEY_FIELD(name,field,offset,size) BITMASK(name, struct bkey, field, offset, size)
-#define PTR_FIELD(name,offset,size) static inline __u64 name(const struct bkey * k, unsigned int i) \
-{ return(k->ptr[i] >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(struct bkey * k, unsigned int i, __u64 v) \
-{ k->ptr[i] &= ~(~(~0ULL << size) << offset); k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \
-}
-#define KEY_SIZE_BITS 16
-#define KEY_MAX_U64S 8
-#define KEY(inode,offset,size) \
-((struct bkey) {.high = (1ULL << 63) | ((__u64) (size) << 20) | (inode),.low = (offset) \
-})
-#define ZERO_KEY KEY(0, 0, 0)
-#define MAX_KEY_INODE (~(~0 << 20))
-#define MAX_KEY_OFFSET (~0ULL >> 1)
-#define MAX_KEY KEY(MAX_KEY_INODE, MAX_KEY_OFFSET, 0)
-#define KEY_START(k) (KEY_OFFSET(k) - KEY_SIZE(k))
-#define START_KEY(k) KEY(KEY_INODE(k), KEY_START(k), 0)
-#define PTR_DEV_BITS 12
-#define PTR_CHECK_DEV ((1 << PTR_DEV_BITS) - 1)
-#define MAKE_PTR(gen,offset,dev) ((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen)
-#define bkey_copy(_dest,_src) memcpy(_dest, _src, bkey_bytes(_src))
-#define BKEY_PAD 8
-#define BKEY_PADDED(key) union { struct bkey key; __u64 key ##_pad[BKEY_PAD]; }
-#define BCACHE_SB_VERSION_CDEV 0
-#define BCACHE_SB_VERSION_BDEV 1
-#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3
-#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4
-#define BCACHE_SB_VERSION_CDEV_WITH_FEATURES 5
-#define BCACHE_SB_VERSION_BDEV_WITH_FEATURES 6
-#define BCACHE_SB_MAX_VERSION 6
-#define SB_SECTOR 8
-#define SB_OFFSET (SB_SECTOR << SECTOR_SHIFT)
-#define SB_SIZE 4096
-#define SB_LABEL_SIZE 32
-#define SB_JOURNAL_BUCKETS 256U
-#define MAX_CACHES_PER_SET 8
-#define BDEV_DATA_START_DEFAULT 16
-struct cache_sb_disk {
-  __le64 csum;
-  __le64 offset;
-  __le64 version;
-  __u8 magic[16];
-  __u8 uuid[16];
-  union {
-    __u8 set_uuid[16];
-    __le64 set_magic;
-  };
-  __u8 label[SB_LABEL_SIZE];
-  __le64 flags;
-  __le64 seq;
-  __le64 feature_compat;
-  __le64 feature_incompat;
-  __le64 feature_ro_compat;
-  __le64 pad[5];
-  union {
-    struct {
-      __le64 nbuckets;
-      __le16 block_size;
-      __le16 bucket_size;
-      __le16 nr_in_set;
-      __le16 nr_this_dev;
-    };
-    struct {
-      __le64 data_offset;
-    };
-  };
-  __le32 last_mount;
-  __le16 first_bucket;
-  union {
-    __le16 njournal_buckets;
-    __le16 keys;
-  };
-  __le64 d[SB_JOURNAL_BUCKETS];
-  __le16 obso_bucket_size_hi;
-};
-struct cache_sb {
-  __u64 offset;
-  __u64 version;
-  __u8 magic[16];
-  __u8 uuid[16];
-  union {
-    __u8 set_uuid[16];
-    __u64 set_magic;
-  };
-  __u8 label[SB_LABEL_SIZE];
-  __u64 flags;
-  __u64 seq;
-  __u64 feature_compat;
-  __u64 feature_incompat;
-  __u64 feature_ro_compat;
-  union {
-    struct {
-      __u64 nbuckets;
-      __u16 block_size;
-      __u16 nr_in_set;
-      __u16 nr_this_dev;
-      __u32 bucket_size;
-    };
-    struct {
-      __u64 data_offset;
-    };
-  };
-  __u32 last_mount;
-  __u16 first_bucket;
-  union {
-    __u16 njournal_buckets;
-    __u16 keys;
-  };
-  __u64 d[SB_JOURNAL_BUCKETS];
-};
-#define CACHE_REPLACEMENT_LRU 0U
-#define CACHE_REPLACEMENT_FIFO 1U
-#define CACHE_REPLACEMENT_RANDOM 2U
-#define CACHE_MODE_WRITETHROUGH 0U
-#define CACHE_MODE_WRITEBACK 1U
-#define CACHE_MODE_WRITEAROUND 2U
-#define CACHE_MODE_NONE 3U
-#define BDEV_STATE_NONE 0U
-#define BDEV_STATE_CLEAN 1U
-#define BDEV_STATE_DIRTY 2U
-#define BDEV_STATE_STALE 3U
-#define JSET_MAGIC 0x245235c1a3625032ULL
-#define PSET_MAGIC 0x6750e15f87337f91ULL
-#define BSET_MAGIC 0x90135c78b99e07f5ULL
-#define BCACHE_JSET_VERSION_UUIDv1 1
-#define BCACHE_JSET_VERSION_UUID 1
-#define BCACHE_JSET_VERSION 1
-struct jset {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 keys;
-  __u64 last_seq;
-  BKEY_PADDED(uuid_bucket);
-  BKEY_PADDED(btree_root);
-  __u16 btree_level;
-  __u16 pad[3];
-  __u64 prio_bucket[MAX_CACHES_PER_SET];
-  union {
-    struct bkey start[0];
-    __u64 d[0];
-  };
-};
-struct prio_set {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 pad;
-  __u64 next_bucket;
-  struct bucket_disk {
-    __u16 prio;
-    __u8 gen;
-  } __attribute((packed)) data[];
-};
-struct uuid_entry {
-  union {
-    struct {
-      __u8 uuid[16];
-      __u8 label[32];
-      __u32 first_reg;
-      __u32 last_reg;
-      __u32 invalidated;
-      __u32 flags;
-      __u64 sectors;
-    };
-    __u8 pad[128];
-  };
-};
-#define BCACHE_BSET_CSUM 1
-#define BCACHE_BSET_VERSION 1
-struct bset {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 keys;
-  union {
-    struct bkey start[0];
-    __u64 d[0];
-  };
-};
-struct uuid_entry_v0 {
-  __u8 uuid[16];
-  __u8 label[32];
-  __u32 first_reg;
-  __u32 last_reg;
-  __u32 invalidated;
-  __u32 pad;
-};
-#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/bpf.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/bpf.h
index c643ffa..d363e81 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/bpf.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/bpf.h
@@ -91,6 +91,7 @@
   BPF_PROG_ATTACH,
   BPF_PROG_DETACH,
   BPF_PROG_TEST_RUN,
+  BPF_PROG_RUN = BPF_PROG_TEST_RUN,
   BPF_PROG_GET_NEXT_ID,
   BPF_MAP_GET_NEXT_ID,
   BPF_PROG_GET_FD_BY_ID,
@@ -148,6 +149,7 @@
   BPF_MAP_TYPE_RINGBUF,
   BPF_MAP_TYPE_INODE_STORAGE,
   BPF_MAP_TYPE_TASK_STORAGE,
+  BPF_MAP_TYPE_BLOOM_FILTER,
 };
 enum bpf_prog_type {
   BPF_PROG_TYPE_UNSPEC,
@@ -181,6 +183,7 @@
   BPF_PROG_TYPE_EXT,
   BPF_PROG_TYPE_LSM,
   BPF_PROG_TYPE_SK_LOOKUP,
+  BPF_PROG_TYPE_SYSCALL,
 };
 enum bpf_attach_type {
   BPF_CGROUP_INET_INGRESS,
@@ -221,6 +224,10 @@
   BPF_XDP_CPUMAP,
   BPF_SK_LOOKUP,
   BPF_XDP,
+  BPF_SK_SKB_VERDICT,
+  BPF_SK_REUSEPORT_SELECT,
+  BPF_SK_REUSEPORT_SELECT_OR_MIGRATE,
+  BPF_PERF_EVENT,
   __MAX_BPF_ATTACH_TYPE
 };
 #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
@@ -232,6 +239,7 @@
   BPF_LINK_TYPE_ITER = 4,
   BPF_LINK_TYPE_NETNS = 5,
   BPF_LINK_TYPE_XDP = 6,
+  BPF_LINK_TYPE_PERF_EVENT = 7,
   MAX_BPF_LINK_TYPE,
 };
 #define BPF_F_ALLOW_OVERRIDE (1U << 0)
@@ -243,9 +251,13 @@
 #define BPF_F_TEST_STATE_FREQ (1U << 3)
 #define BPF_F_SLEEPABLE (1U << 4)
 #define BPF_PSEUDO_MAP_FD 1
+#define BPF_PSEUDO_MAP_IDX 5
 #define BPF_PSEUDO_MAP_VALUE 2
+#define BPF_PSEUDO_MAP_IDX_VALUE 6
 #define BPF_PSEUDO_BTF_ID 3
+#define BPF_PSEUDO_FUNC 4
 #define BPF_PSEUDO_CALL 1
+#define BPF_PSEUDO_KFUNC_CALL 2
 enum {
   BPF_ANY = 0,
   BPF_NOEXIST = 1,
@@ -302,6 +314,7 @@
     __u32 btf_key_type_id;
     __u32 btf_value_type_id;
     __u32 btf_vmlinux_value_type_id;
+    __u64 map_extra;
   };
   struct {
     __u32 map_fd;
@@ -347,6 +360,10 @@
       __u32 attach_prog_fd;
       __u32 attach_btf_obj_fd;
     };
+    __u32 core_relo_cnt;
+    __aligned_u64 fd_array;
+    __aligned_u64 core_relos;
+    __u32 core_relo_rec_size;
   };
   struct {
     __aligned_u64 pathname;
@@ -436,6 +453,9 @@
         __aligned_u64 iter_info;
         __u32 iter_info_len;
       };
+      struct {
+        __u64 bpf_cookie;
+      } perf_event;
     };
   } link_create;
   struct {
@@ -460,7 +480,7 @@
     __u32 flags;
   } prog_bind_map;
 } __attribute__((aligned(8)));
-#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu),
+#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu), FN(for_each_map_elem), FN(snprintf), FN(sys_bpf), FN(btf_find_by_name_kind), FN(sys_close), FN(timer_init), FN(timer_set_callback), FN(timer_start), FN(timer_cancel), FN(get_func_ip), FN(get_attach_cookie), FN(task_pt_regs), FN(get_branch_snapshot), FN(trace_vprintk), FN(skc_to_unix_sock), FN(kallsyms_lookup_name), FN(find_vma), FN(loop), FN(strncmp), FN(get_func_arg), FN(get_func_ret), FN(get_func_arg_cnt),
 #define __BPF_ENUM_FN(x) BPF_FUNC_ ##x
 enum bpf_func_id {
   __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID,
@@ -517,6 +537,7 @@
   BPF_F_ADJ_ROOM_ENCAP_L4_GRE = (1ULL << 3),
   BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4),
   BPF_F_ADJ_ROOM_NO_CSUM_RESET = (1ULL << 5),
+  BPF_F_ADJ_ROOM_ENCAP_L2_ETH = (1ULL << 6),
 };
 enum {
   BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff,
@@ -568,6 +589,10 @@
 enum {
   BPF_F_BPRM_SECUREEXEC = (1ULL << 0),
 };
+enum {
+  BPF_F_BROADCAST = (1ULL << 3),
+  BPF_F_EXCLUDE_INGRESS = (1ULL << 4),
+};
 #define __bpf_md_ptr(type,name) union { type name; __u64 : 64; \
 } __attribute__((aligned(8)))
 struct __sk_buff {
@@ -603,6 +628,8 @@
   __u32 gso_segs;
   __bpf_md_ptr(struct bpf_sock *, sk);
   __u32 gso_size;
+  __u32 : 32;
+  __u64 hwtstamp;
 };
 struct bpf_tunnel_key {
   __u32 tunnel_id;
@@ -749,6 +776,8 @@
   __u32 ip_protocol;
   __u32 bind_inany;
   __u32 hash;
+  __bpf_md_ptr(struct bpf_sock *, sk);
+  __bpf_md_ptr(struct bpf_sock *, migrating_sk);
 };
 #define BPF_TAG_SIZE 8
 struct bpf_prog_info {
@@ -788,6 +817,7 @@
   __u64 run_time_ns;
   __u64 run_cnt;
   __u64 recursion_misses;
+  __u32 verified_insns;
 } __attribute__((aligned(8)));
 struct bpf_map_info {
   __u32 type;
@@ -804,6 +834,8 @@
   __u32 btf_id;
   __u32 btf_key_type_id;
   __u32 btf_value_type_id;
+  __u32 : 32;
+  __u64 map_extra;
 } __attribute__((aligned(8)));
 struct bpf_btf_info {
   __aligned_u64 btf;
@@ -824,6 +856,8 @@
     } raw_tracepoint;
     struct {
       __u32 attach_type;
+      __u32 target_obj_id;
+      __u32 target_btf_id;
     } tracing;
     struct {
       __u64 cgroup_id;
@@ -1096,6 +1130,10 @@
 struct bpf_spin_lock {
   __u32 val;
 };
+struct bpf_timer {
+  __u64 : 64;
+  __u64 : 64;
+} __attribute__((aligned(8)));
 struct bpf_sysctl {
   __u32 write;
   __u32 file_pos;
@@ -1114,7 +1152,10 @@
   __u32 tgid;
 };
 struct bpf_sk_lookup {
-  __bpf_md_ptr(struct bpf_sock *, sk);
+  union {
+    __bpf_md_ptr(struct bpf_sock *, sk);
+    __u64 cookie;
+  };
   __u32 family;
   __u32 protocol;
   __u32 remote_ip4;
@@ -1123,6 +1164,7 @@
   __u32 local_ip4;
   __u32 local_ip6[4];
   __u32 local_port;
+  __u32 ingress_ifindex;
 };
 struct btf_ptr {
   void * ptr;
@@ -1135,4 +1177,24 @@
   BTF_F_PTR_RAW = (1ULL << 2),
   BTF_F_ZERO = (1ULL << 3),
 };
+enum bpf_core_relo_kind {
+  BPF_CORE_FIELD_BYTE_OFFSET = 0,
+  BPF_CORE_FIELD_BYTE_SIZE = 1,
+  BPF_CORE_FIELD_EXISTS = 2,
+  BPF_CORE_FIELD_SIGNED = 3,
+  BPF_CORE_FIELD_LSHIFT_U64 = 4,
+  BPF_CORE_FIELD_RSHIFT_U64 = 5,
+  BPF_CORE_TYPE_ID_LOCAL = 6,
+  BPF_CORE_TYPE_ID_TARGET = 7,
+  BPF_CORE_TYPE_EXISTS = 8,
+  BPF_CORE_TYPE_SIZE = 9,
+  BPF_CORE_ENUMVAL_EXISTS = 10,
+  BPF_CORE_ENUMVAL_VALUE = 11,
+};
+struct bpf_core_relo {
+  __u32 insn_off;
+  __u32 type_id;
+  __u32 access_str_off;
+  enum bpf_core_relo_kind kind;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btf.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btf.h
index f22d637..fc57d3c 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btf.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btf.h
@@ -42,27 +42,32 @@
     __u32 type;
   };
 };
-#define BTF_INFO_KIND(info) (((info) >> 24) & 0x0f)
+#define BTF_INFO_KIND(info) (((info) >> 24) & 0x1f)
 #define BTF_INFO_VLEN(info) ((info) & 0xffff)
 #define BTF_INFO_KFLAG(info) ((info) >> 31)
-#define BTF_KIND_UNKN 0
-#define BTF_KIND_INT 1
-#define BTF_KIND_PTR 2
-#define BTF_KIND_ARRAY 3
-#define BTF_KIND_STRUCT 4
-#define BTF_KIND_UNION 5
-#define BTF_KIND_ENUM 6
-#define BTF_KIND_FWD 7
-#define BTF_KIND_TYPEDEF 8
-#define BTF_KIND_VOLATILE 9
-#define BTF_KIND_CONST 10
-#define BTF_KIND_RESTRICT 11
-#define BTF_KIND_FUNC 12
-#define BTF_KIND_FUNC_PROTO 13
-#define BTF_KIND_VAR 14
-#define BTF_KIND_DATASEC 15
-#define BTF_KIND_MAX BTF_KIND_DATASEC
-#define NR_BTF_KINDS (BTF_KIND_MAX + 1)
+enum {
+  BTF_KIND_UNKN = 0,
+  BTF_KIND_INT = 1,
+  BTF_KIND_PTR = 2,
+  BTF_KIND_ARRAY = 3,
+  BTF_KIND_STRUCT = 4,
+  BTF_KIND_UNION = 5,
+  BTF_KIND_ENUM = 6,
+  BTF_KIND_FWD = 7,
+  BTF_KIND_TYPEDEF = 8,
+  BTF_KIND_VOLATILE = 9,
+  BTF_KIND_CONST = 10,
+  BTF_KIND_RESTRICT = 11,
+  BTF_KIND_FUNC = 12,
+  BTF_KIND_FUNC_PROTO = 13,
+  BTF_KIND_VAR = 14,
+  BTF_KIND_DATASEC = 15,
+  BTF_KIND_FLOAT = 16,
+  BTF_KIND_DECL_TAG = 17,
+  BTF_KIND_TYPE_TAG = 18,
+  NR_BTF_KINDS,
+  BTF_KIND_MAX = NR_BTF_KINDS - 1,
+};
 #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24)
 #define BTF_INT_OFFSET(VAL) (((VAL) & 0x00ff0000) >> 16)
 #define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff)
@@ -107,4 +112,7 @@
   __u32 offset;
   __u32 size;
 };
+struct btf_decl_tag {
+  __s32 component_idx;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btrfs.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btrfs.h
index c0a586c..08b96a3 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btrfs.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btrfs.h
@@ -175,6 +175,7 @@
 };
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE (1ULL << 0)
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID (1ULL << 1)
+#define BTRFS_FEATURE_COMPAT_RO_VERITY (1ULL << 2)
 #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0)
 #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
 #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
@@ -419,14 +420,16 @@
 #define BTRFS_SEND_FLAG_NO_FILE_DATA 0x1
 #define BTRFS_SEND_FLAG_OMIT_STREAM_HEADER 0x2
 #define BTRFS_SEND_FLAG_OMIT_END_CMD 0x4
-#define BTRFS_SEND_FLAG_MASK (BTRFS_SEND_FLAG_NO_FILE_DATA | BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | BTRFS_SEND_FLAG_OMIT_END_CMD)
+#define BTRFS_SEND_FLAG_VERSION 0x8
+#define BTRFS_SEND_FLAG_MASK (BTRFS_SEND_FLAG_NO_FILE_DATA | BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | BTRFS_SEND_FLAG_OMIT_END_CMD | BTRFS_SEND_FLAG_VERSION)
 struct btrfs_ioctl_send_args {
   __s64 send_fd;
   __u64 clone_sources_count;
   __u64 __user * clone_sources;
   __u64 parent_root;
   __u64 flags;
-  __u64 reserved[4];
+  __u32 version;
+  __u8 reserved[28];
 };
 struct btrfs_ioctl_get_subvol_info_args {
   __u64 treeid;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
index 4e36c37..0476733 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
@@ -53,6 +53,8 @@
 #define BTRFS_INODE_REF_KEY 12
 #define BTRFS_INODE_EXTREF_KEY 13
 #define BTRFS_XATTR_ITEM_KEY 24
+#define BTRFS_VERITY_DESC_ITEM_KEY 36
+#define BTRFS_VERITY_MERKLE_ITEM_KEY 37
 #define BTRFS_ORPHAN_ITEM_KEY 48
 #define BTRFS_DIR_LOG_ITEM_KEY 60
 #define BTRFS_DIR_LOG_INDEX_KEY 72
@@ -424,4 +426,9 @@
   __le64 rsv_rfer;
   __le64 rsv_excl;
 } __attribute__((__packed__));
+struct btrfs_verity_descriptor_item {
+  __le64 size;
+  __le64 reserved[2];
+  __u8 encryption;
+} __attribute__((__packed__));
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
index c0ddccc..b6c978b 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
@@ -24,6 +24,7 @@
 #ifndef __BIG_ENDIAN_BITFIELD
 #define __BIG_ENDIAN_BITFIELD
 #endif
+#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 #define __constant_htonl(x) ((__force __be32) (__u32) (x))
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
index ea00092..a272d4d 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
@@ -24,6 +24,7 @@
 #ifndef __LITTLE_ENDIAN_BITFIELD
 #define __LITTLE_ENDIAN_BITFIELD
 #endif
+#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 #define __constant_htonl(x) ((__force __be32) ___constant_swab32((x)))
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can.h
index 59fc31e..30eeca2 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can.h
@@ -48,6 +48,7 @@
 };
 #define CANFD_BRS 0x01
 #define CANFD_ESI 0x02
+#define CANFD_FDF 0x04
 struct canfd_frame {
   canid_t can_id;
   __u8 len;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can/j1939.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can/j1939.h
index 531a222..42dbf15 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can/j1939.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can/j1939.h
@@ -50,10 +50,19 @@
 enum {
   J1939_NLA_PAD,
   J1939_NLA_BYTES_ACKED,
+  J1939_NLA_TOTAL_SIZE,
+  J1939_NLA_PGN,
+  J1939_NLA_SRC_NAME,
+  J1939_NLA_DEST_NAME,
+  J1939_NLA_SRC_ADDR,
+  J1939_NLA_DEST_ADDR,
 };
 enum {
   J1939_EE_INFO_NONE,
   J1939_EE_INFO_TX_ABORT,
+  J1939_EE_INFO_RX_RTS,
+  J1939_EE_INFO_RX_DPO,
+  J1939_EE_INFO_RX_ABORT,
 };
 struct j1939_filter {
   name_t name;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can/netlink.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can/netlink.h
index 3e6551d..f4086c0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can/netlink.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/can/netlink.h
@@ -69,6 +69,8 @@
 #define CAN_CTRLMODE_PRESUME_ACK 0x40
 #define CAN_CTRLMODE_FD_NON_ISO 0x80
 #define CAN_CTRLMODE_CC_LEN8_DLC 0x100
+#define CAN_CTRLMODE_TDC_AUTO 0x200
+#define CAN_CTRLMODE_TDC_MANUAL 0x400
 struct can_device_stats {
   __u32 bus_error;
   __u32 error_warning;
@@ -94,8 +96,30 @@
   IFLA_CAN_BITRATE_CONST,
   IFLA_CAN_DATA_BITRATE_CONST,
   IFLA_CAN_BITRATE_MAX,
-  __IFLA_CAN_MAX
+  IFLA_CAN_TDC,
+  IFLA_CAN_CTRLMODE_EXT,
+  __IFLA_CAN_MAX,
+  IFLA_CAN_MAX = __IFLA_CAN_MAX - 1
 };
-#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)
+enum {
+  IFLA_CAN_TDC_UNSPEC,
+  IFLA_CAN_TDC_TDCV_MIN,
+  IFLA_CAN_TDC_TDCV_MAX,
+  IFLA_CAN_TDC_TDCO_MIN,
+  IFLA_CAN_TDC_TDCO_MAX,
+  IFLA_CAN_TDC_TDCF_MIN,
+  IFLA_CAN_TDC_TDCF_MAX,
+  IFLA_CAN_TDC_TDCV,
+  IFLA_CAN_TDC_TDCO,
+  IFLA_CAN_TDC_TDCF,
+  __IFLA_CAN_TDC,
+  IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1
+};
+enum {
+  IFLA_CAN_CTRLMODE_UNSPEC,
+  IFLA_CAN_CTRLMODE_SUPPORTED,
+  __IFLA_CAN_CTRLMODE,
+  IFLA_CAN_CTRLMODE_MAX = __IFLA_CAN_CTRLMODE - 1
+};
 #define CAN_TERMINATION_DISABLED 0
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cdrom.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cdrom.h
index 8f1c2f0..0fe0727 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cdrom.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cdrom.h
@@ -67,6 +67,7 @@
 #define CDROM_SEND_PACKET 0x5393
 #define CDROM_NEXT_WRITABLE 0x5394
 #define CDROM_LAST_WRITTEN 0x5395
+#define CDROM_TIMED_MEDIA_CHANGE 0x5396
 struct cdrom_msf0 {
   __u8 minute;
   __u8 second;
@@ -160,6 +161,11 @@
     void __user * unused;
   };
 };
+struct cdrom_timed_media_change_info {
+  __s64 last_media_change;
+  __u64 media_flags;
+};
+#define MEDIA_CHANGED_FLAG 0x1
 #define CD_MINS 74
 #define CD_SECS 60
 #define CD_FRAMES 75
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cec.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cec.h
index 238fa0a..b90dc49 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cec.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cec.h
@@ -262,7 +262,7 @@
 #define CEC_OP_REC_SEQ_WEDNESDAY 0x08
 #define CEC_OP_REC_SEQ_THURSDAY 0x10
 #define CEC_OP_REC_SEQ_FRIDAY 0x20
-#define CEC_OP_REC_SEQ_SATERDAY 0x40
+#define CEC_OP_REC_SEQ_SATURDAY 0x40
 #define CEC_OP_REC_SEQ_ONCE_ONLY 0x00
 #define CEC_MSG_CLEAR_DIGITAL_TIMER 0x99
 #define CEC_MSG_CLEAR_EXT_TIMER 0xa1
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/comedi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/comedi.h
new file mode 100644
index 0000000..e0d015a
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/comedi.h
@@ -0,0 +1,669 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 _COMEDI_H
+#define _COMEDI_H
+#define COMEDI_MAJORVERSION 0
+#define COMEDI_MINORVERSION 7
+#define COMEDI_MICROVERSION 76
+#define VERSION "0.7.76"
+#define COMEDI_MAJOR 98
+#define COMEDI_NDEVICES 16
+#define COMEDI_NDEVCONFOPTS 32
+#define COMEDI_DEVCONF_AUX_DATA3_LENGTH 25
+#define COMEDI_DEVCONF_AUX_DATA2_LENGTH 26
+#define COMEDI_DEVCONF_AUX_DATA1_LENGTH 27
+#define COMEDI_DEVCONF_AUX_DATA0_LENGTH 28
+#define COMEDI_DEVCONF_AUX_DATA_HI 29
+#define COMEDI_DEVCONF_AUX_DATA_LO 30
+#define COMEDI_DEVCONF_AUX_DATA_LENGTH 31
+#define COMEDI_NAMELEN 20
+#define CR_PACK(chan,rng,aref) ((((aref) & 0x3) << 24) | (((rng) & 0xff) << 16) | (chan))
+#define CR_PACK_FLAGS(chan,range,aref,flags) (CR_PACK(chan, range, aref) | ((flags) & CR_FLAGS_MASK))
+#define CR_CHAN(a) ((a) & 0xffff)
+#define CR_RANGE(a) (((a) >> 16) & 0xff)
+#define CR_AREF(a) (((a) >> 24) & 0x03)
+#define CR_FLAGS_MASK 0xfc000000
+#define CR_ALT_FILTER 0x04000000
+#define CR_DITHER CR_ALT_FILTER
+#define CR_DEGLITCH CR_ALT_FILTER
+#define CR_ALT_SOURCE 0x08000000
+#define CR_EDGE 0x40000000
+#define CR_INVERT 0x80000000
+#define AREF_GROUND 0x00
+#define AREF_COMMON 0x01
+#define AREF_DIFF 0x02
+#define AREF_OTHER 0x03
+#define GPCT_RESET 0x0001
+#define GPCT_SET_SOURCE 0x0002
+#define GPCT_SET_GATE 0x0004
+#define GPCT_SET_DIRECTION 0x0008
+#define GPCT_SET_OPERATION 0x0010
+#define GPCT_ARM 0x0020
+#define GPCT_DISARM 0x0040
+#define GPCT_GET_INT_CLK_FRQ 0x0080
+#define GPCT_INT_CLOCK 0x0001
+#define GPCT_EXT_PIN 0x0002
+#define GPCT_NO_GATE 0x0004
+#define GPCT_UP 0x0008
+#define GPCT_DOWN 0x0010
+#define GPCT_HWUD 0x0020
+#define GPCT_SIMPLE_EVENT 0x0040
+#define GPCT_SINGLE_PERIOD 0x0080
+#define GPCT_SINGLE_PW 0x0100
+#define GPCT_CONT_PULSE_OUT 0x0200
+#define GPCT_SINGLE_PULSE_OUT 0x0400
+#define INSN_MASK_WRITE 0x8000000
+#define INSN_MASK_READ 0x4000000
+#define INSN_MASK_SPECIAL 0x2000000
+#define INSN_READ (0 | INSN_MASK_READ)
+#define INSN_WRITE (1 | INSN_MASK_WRITE)
+#define INSN_BITS (2 | INSN_MASK_READ | INSN_MASK_WRITE)
+#define INSN_CONFIG (3 | INSN_MASK_READ | INSN_MASK_WRITE)
+#define INSN_DEVICE_CONFIG (INSN_CONFIG | INSN_MASK_SPECIAL)
+#define INSN_GTOD (4 | INSN_MASK_READ | INSN_MASK_SPECIAL)
+#define INSN_WAIT (5 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
+#define INSN_INTTRIG (6 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
+#define CMDF_BOGUS 0x00000001
+#define CMDF_PRIORITY 0x00000008
+#define CMDF_WAKE_EOS 0x00000020
+#define CMDF_WRITE 0x00000040
+#define CMDF_RAWDATA 0x00000080
+#define CMDF_ROUND_MASK 0x00030000
+#define CMDF_ROUND_NEAREST 0x00000000
+#define CMDF_ROUND_DOWN 0x00010000
+#define CMDF_ROUND_UP 0x00020000
+#define CMDF_ROUND_UP_NEXT 0x00030000
+#define COMEDI_EV_START 0x00040000
+#define COMEDI_EV_SCAN_BEGIN 0x00080000
+#define COMEDI_EV_CONVERT 0x00100000
+#define COMEDI_EV_SCAN_END 0x00200000
+#define COMEDI_EV_STOP 0x00400000
+#define TRIG_BOGUS CMDF_BOGUS
+#define TRIG_RT CMDF_PRIORITY
+#define TRIG_WAKE_EOS CMDF_WAKE_EOS
+#define TRIG_WRITE CMDF_WRITE
+#define TRIG_ROUND_MASK CMDF_ROUND_MASK
+#define TRIG_ROUND_NEAREST CMDF_ROUND_NEAREST
+#define TRIG_ROUND_DOWN CMDF_ROUND_DOWN
+#define TRIG_ROUND_UP CMDF_ROUND_UP
+#define TRIG_ROUND_UP_NEXT CMDF_ROUND_UP_NEXT
+#define TRIG_ANY 0xffffffff
+#define TRIG_INVALID 0x00000000
+#define TRIG_NONE 0x00000001
+#define TRIG_NOW 0x00000002
+#define TRIG_FOLLOW 0x00000004
+#define TRIG_TIME 0x00000008
+#define TRIG_TIMER 0x00000010
+#define TRIG_COUNT 0x00000020
+#define TRIG_EXT 0x00000040
+#define TRIG_INT 0x00000080
+#define TRIG_OTHER 0x00000100
+#define SDF_BUSY 0x0001
+#define SDF_BUSY_OWNER 0x0002
+#define SDF_LOCKED 0x0004
+#define SDF_LOCK_OWNER 0x0008
+#define SDF_MAXDATA 0x0010
+#define SDF_FLAGS 0x0020
+#define SDF_RANGETYPE 0x0040
+#define SDF_PWM_COUNTER 0x0080
+#define SDF_PWM_HBRIDGE 0x0100
+#define SDF_CMD 0x1000
+#define SDF_SOFT_CALIBRATED 0x2000
+#define SDF_CMD_WRITE 0x4000
+#define SDF_CMD_READ 0x8000
+#define SDF_READABLE 0x00010000
+#define SDF_WRITABLE 0x00020000
+#define SDF_WRITEABLE SDF_WRITABLE
+#define SDF_INTERNAL 0x00040000
+#define SDF_GROUND 0x00100000
+#define SDF_COMMON 0x00200000
+#define SDF_DIFF 0x00400000
+#define SDF_OTHER 0x00800000
+#define SDF_DITHER 0x01000000
+#define SDF_DEGLITCH 0x02000000
+#define SDF_MMAP 0x04000000
+#define SDF_RUNNING 0x08000000
+#define SDF_LSAMPL 0x10000000
+#define SDF_PACKED 0x20000000
+enum comedi_subdevice_type {
+  COMEDI_SUBD_UNUSED,
+  COMEDI_SUBD_AI,
+  COMEDI_SUBD_AO,
+  COMEDI_SUBD_DI,
+  COMEDI_SUBD_DO,
+  COMEDI_SUBD_DIO,
+  COMEDI_SUBD_COUNTER,
+  COMEDI_SUBD_TIMER,
+  COMEDI_SUBD_MEMORY,
+  COMEDI_SUBD_CALIB,
+  COMEDI_SUBD_PROC,
+  COMEDI_SUBD_SERIAL,
+  COMEDI_SUBD_PWM
+};
+enum comedi_io_direction {
+  COMEDI_INPUT = 0,
+  COMEDI_OUTPUT = 1,
+  COMEDI_OPENDRAIN = 2
+};
+enum configuration_ids {
+  INSN_CONFIG_DIO_INPUT = COMEDI_INPUT,
+  INSN_CONFIG_DIO_OUTPUT = COMEDI_OUTPUT,
+  INSN_CONFIG_DIO_OPENDRAIN = COMEDI_OPENDRAIN,
+  INSN_CONFIG_ANALOG_TRIG = 16,
+  INSN_CONFIG_ALT_SOURCE = 20,
+  INSN_CONFIG_DIGITAL_TRIG = 21,
+  INSN_CONFIG_BLOCK_SIZE = 22,
+  INSN_CONFIG_TIMER_1 = 23,
+  INSN_CONFIG_FILTER = 24,
+  INSN_CONFIG_CHANGE_NOTIFY = 25,
+  INSN_CONFIG_SERIAL_CLOCK = 26,
+  INSN_CONFIG_BIDIRECTIONAL_DATA = 27,
+  INSN_CONFIG_DIO_QUERY = 28,
+  INSN_CONFIG_PWM_OUTPUT = 29,
+  INSN_CONFIG_GET_PWM_OUTPUT = 30,
+  INSN_CONFIG_ARM = 31,
+  INSN_CONFIG_DISARM = 32,
+  INSN_CONFIG_GET_COUNTER_STATUS = 33,
+  INSN_CONFIG_RESET = 34,
+  INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR = 1001,
+  INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR = 1002,
+  INSN_CONFIG_GPCT_QUADRATURE_ENCODER = 1003,
+  INSN_CONFIG_SET_GATE_SRC = 2001,
+  INSN_CONFIG_GET_GATE_SRC = 2002,
+  INSN_CONFIG_SET_CLOCK_SRC = 2003,
+  INSN_CONFIG_GET_CLOCK_SRC = 2004,
+  INSN_CONFIG_SET_OTHER_SRC = 2005,
+  INSN_CONFIG_GET_HARDWARE_BUFFER_SIZE = 2006,
+  INSN_CONFIG_SET_COUNTER_MODE = 4097,
+  INSN_CONFIG_8254_SET_MODE = INSN_CONFIG_SET_COUNTER_MODE,
+  INSN_CONFIG_8254_READ_STATUS = 4098,
+  INSN_CONFIG_SET_ROUTING = 4099,
+  INSN_CONFIG_GET_ROUTING = 4109,
+  INSN_CONFIG_PWM_SET_PERIOD = 5000,
+  INSN_CONFIG_PWM_GET_PERIOD = 5001,
+  INSN_CONFIG_GET_PWM_STATUS = 5002,
+  INSN_CONFIG_PWM_SET_H_BRIDGE = 5003,
+  INSN_CONFIG_PWM_GET_H_BRIDGE = 5004,
+  INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS = 5005,
+};
+enum device_config_route_ids {
+  INSN_DEVICE_CONFIG_TEST_ROUTE = 0,
+  INSN_DEVICE_CONFIG_CONNECT_ROUTE = 1,
+  INSN_DEVICE_CONFIG_DISCONNECT_ROUTE = 2,
+  INSN_DEVICE_CONFIG_GET_ROUTES = 3,
+};
+enum comedi_digital_trig_op {
+  COMEDI_DIGITAL_TRIG_DISABLE = 0,
+  COMEDI_DIGITAL_TRIG_ENABLE_EDGES = 1,
+  COMEDI_DIGITAL_TRIG_ENABLE_LEVELS = 2
+};
+enum comedi_support_level {
+  COMEDI_UNKNOWN_SUPPORT = 0,
+  COMEDI_SUPPORTED,
+  COMEDI_UNSUPPORTED
+};
+enum comedi_counter_status_flags {
+  COMEDI_COUNTER_ARMED = 0x1,
+  COMEDI_COUNTER_COUNTING = 0x2,
+  COMEDI_COUNTER_TERMINAL_COUNT = 0x4,
+};
+#define CIO 'd'
+#define COMEDI_DEVCONFIG _IOW(CIO, 0, struct comedi_devconfig)
+#define COMEDI_DEVINFO _IOR(CIO, 1, struct comedi_devinfo)
+#define COMEDI_SUBDINFO _IOR(CIO, 2, struct comedi_subdinfo)
+#define COMEDI_CHANINFO _IOR(CIO, 3, struct comedi_chaninfo)
+#define COMEDI_LOCK _IO(CIO, 5)
+#define COMEDI_UNLOCK _IO(CIO, 6)
+#define COMEDI_CANCEL _IO(CIO, 7)
+#define COMEDI_RANGEINFO _IOR(CIO, 8, struct comedi_rangeinfo)
+#define COMEDI_CMD _IOR(CIO, 9, struct comedi_cmd)
+#define COMEDI_CMDTEST _IOR(CIO, 10, struct comedi_cmd)
+#define COMEDI_INSNLIST _IOR(CIO, 11, struct comedi_insnlist)
+#define COMEDI_INSN _IOR(CIO, 12, struct comedi_insn)
+#define COMEDI_BUFCONFIG _IOR(CIO, 13, struct comedi_bufconfig)
+#define COMEDI_BUFINFO _IOWR(CIO, 14, struct comedi_bufinfo)
+#define COMEDI_POLL _IO(CIO, 15)
+#define COMEDI_SETRSUBD _IO(CIO, 16)
+#define COMEDI_SETWSUBD _IO(CIO, 17)
+struct comedi_insn {
+  unsigned int insn;
+  unsigned int n;
+  unsigned int __user * data;
+  unsigned int subdev;
+  unsigned int chanspec;
+  unsigned int unused[3];
+};
+struct comedi_insnlist {
+  unsigned int n_insns;
+  struct comedi_insn __user * insns;
+};
+struct comedi_cmd {
+  unsigned int subdev;
+  unsigned int flags;
+  unsigned int start_src;
+  unsigned int start_arg;
+  unsigned int scan_begin_src;
+  unsigned int scan_begin_arg;
+  unsigned int convert_src;
+  unsigned int convert_arg;
+  unsigned int scan_end_src;
+  unsigned int scan_end_arg;
+  unsigned int stop_src;
+  unsigned int stop_arg;
+  unsigned int * chanlist;
+  unsigned int chanlist_len;
+  short __user * data;
+  unsigned int data_len;
+};
+struct comedi_chaninfo {
+  unsigned int subdev;
+  unsigned int __user * maxdata_list;
+  unsigned int __user * flaglist;
+  unsigned int __user * rangelist;
+  unsigned int unused[4];
+};
+struct comedi_rangeinfo {
+  unsigned int range_type;
+  void __user * range_ptr;
+};
+struct comedi_krange {
+  int min;
+  int max;
+  unsigned int flags;
+};
+struct comedi_subdinfo {
+  unsigned int type;
+  unsigned int n_chan;
+  unsigned int subd_flags;
+  unsigned int timer_type;
+  unsigned int len_chanlist;
+  unsigned int maxdata;
+  unsigned int flags;
+  unsigned int range_type;
+  unsigned int settling_time_0;
+  unsigned int insn_bits_support;
+  unsigned int unused[8];
+};
+struct comedi_devinfo {
+  unsigned int version_code;
+  unsigned int n_subdevs;
+  char driver_name[COMEDI_NAMELEN];
+  char board_name[COMEDI_NAMELEN];
+  int read_subdevice;
+  int write_subdevice;
+  int unused[30];
+};
+struct comedi_devconfig {
+  char board_name[COMEDI_NAMELEN];
+  int options[COMEDI_NDEVCONFOPTS];
+};
+struct comedi_bufconfig {
+  unsigned int subdevice;
+  unsigned int flags;
+  unsigned int maximum_size;
+  unsigned int size;
+  unsigned int unused[4];
+};
+struct comedi_bufinfo {
+  unsigned int subdevice;
+  unsigned int bytes_read;
+  unsigned int buf_write_ptr;
+  unsigned int buf_read_ptr;
+  unsigned int buf_write_count;
+  unsigned int buf_read_count;
+  unsigned int bytes_written;
+  unsigned int unused[4];
+};
+#define __RANGE(a,b) ((((a) & 0xffff) << 16) | ((b) & 0xffff))
+#define RANGE_OFFSET(a) (((a) >> 16) & 0xffff)
+#define RANGE_LENGTH(b) ((b) & 0xffff)
+#define RF_UNIT(flags) ((flags) & 0xff)
+#define RF_EXTERNAL 0x100
+#define UNIT_volt 0
+#define UNIT_mA 1
+#define UNIT_none 2
+#define COMEDI_MIN_SPEED 0xffffffffu
+enum i8254_mode {
+  I8254_MODE0 = (0 << 1),
+  I8254_MODE1 = (1 << 1),
+  I8254_MODE2 = (2 << 1),
+  I8254_MODE3 = (3 << 1),
+  I8254_MODE4 = (4 << 1),
+  I8254_MODE5 = (5 << 1),
+  I8254_BCD = 1,
+  I8254_BINARY = 0
+};
+#define NI_NAMES_BASE 0x8000u
+#define _TERM_N(base,n,x) ((base) + ((x) & ((n) - 1)))
+#define NI_PFI(x) _TERM_N(NI_NAMES_BASE, 64, x)
+#define TRIGGER_LINE(x) _TERM_N(NI_PFI(- 1) + 1, 8, x)
+#define NI_RTSI_BRD(x) _TERM_N(TRIGGER_LINE(- 1) + 1, 4, x)
+#define NI_MAX_COUNTERS 8
+#define NI_COUNTER_NAMES_BASE (NI_RTSI_BRD(- 1) + 1)
+#define NI_CtrSource(x) _TERM_N(NI_COUNTER_NAMES_BASE, NI_MAX_COUNTERS, x)
+#define NI_GATES_NAMES_BASE (NI_CtrSource(- 1) + 1)
+#define NI_CtrGate(x) _TERM_N(NI_GATES_NAMES_BASE, NI_MAX_COUNTERS, x)
+#define NI_CtrAux(x) _TERM_N(NI_CtrGate(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrA(x) _TERM_N(NI_CtrAux(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrB(x) _TERM_N(NI_CtrA(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrZ(x) _TERM_N(NI_CtrB(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_GATES_NAMES_MAX NI_CtrZ(- 1)
+#define NI_CtrArmStartTrigger(x) _TERM_N(NI_CtrZ(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrInternalOutput(x) _TERM_N(NI_CtrArmStartTrigger(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrOut(x) _TERM_N(NI_CtrInternalOutput(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrSampleClock(x) _TERM_N(NI_CtrOut(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_COUNTER_NAMES_MAX NI_CtrSampleClock(- 1)
+enum ni_common_signal_names {
+  PXI_Star = NI_COUNTER_NAMES_MAX + 1,
+  PXI_Clk10,
+  PXIe_Clk100,
+  NI_AI_SampleClock,
+  NI_AI_SampleClockTimebase,
+  NI_AI_StartTrigger,
+  NI_AI_ReferenceTrigger,
+  NI_AI_ConvertClock,
+  NI_AI_ConvertClockTimebase,
+  NI_AI_PauseTrigger,
+  NI_AI_HoldCompleteEvent,
+  NI_AI_HoldComplete,
+  NI_AI_ExternalMUXClock,
+  NI_AI_STOP,
+  NI_AO_SampleClock,
+  NI_AO_SampleClockTimebase,
+  NI_AO_StartTrigger,
+  NI_AO_PauseTrigger,
+  NI_DI_SampleClock,
+  NI_DI_SampleClockTimebase,
+  NI_DI_StartTrigger,
+  NI_DI_ReferenceTrigger,
+  NI_DI_PauseTrigger,
+  NI_DI_InputBufferFull,
+  NI_DI_ReadyForStartEvent,
+  NI_DI_ReadyForTransferEventBurst,
+  NI_DI_ReadyForTransferEventPipelined,
+  NI_DO_SampleClock,
+  NI_DO_SampleClockTimebase,
+  NI_DO_StartTrigger,
+  NI_DO_PauseTrigger,
+  NI_DO_OutputBufferFull,
+  NI_DO_DataActiveEvent,
+  NI_DO_ReadyForStartEvent,
+  NI_DO_ReadyForTransferEvent,
+  NI_MasterTimebase,
+  NI_20MHzTimebase,
+  NI_80MHzTimebase,
+  NI_100MHzTimebase,
+  NI_200MHzTimebase,
+  NI_100kHzTimebase,
+  NI_10MHzRefClock,
+  NI_FrequencyOutput,
+  NI_ChangeDetectionEvent,
+  NI_AnalogComparisonEvent,
+  NI_WatchdogExpiredEvent,
+  NI_WatchdogExpirationTrigger,
+  NI_SCXI_Trig1,
+  NI_LogicLow,
+  NI_LogicHigh,
+  NI_ExternalStrobe,
+  NI_PFI_DO,
+  NI_CaseGround,
+  NI_RGOUT0,
+  _NI_NAMES_MAX_PLUS_1,
+  NI_NUM_NAMES = _NI_NAMES_MAX_PLUS_1 - NI_NAMES_BASE,
+};
+#define NI_USUAL_PFI_SELECT(x) (((x) < 10) ? (0x1 + (x)) : (0xb + (x)))
+#define NI_USUAL_RTSI_SELECT(x) (((x) < 7) ? (0xb + (x)) : 0x1b)
+#define NI_GPCT_COUNTING_MODE_SHIFT 16
+#define NI_GPCT_INDEX_PHASE_BITSHIFT 20
+#define NI_GPCT_COUNTING_DIRECTION_SHIFT 24
+enum ni_gpct_mode_bits {
+  NI_GPCT_GATE_ON_BOTH_EDGES_BIT = 0x4,
+  NI_GPCT_EDGE_GATE_MODE_MASK = 0x18,
+  NI_GPCT_EDGE_GATE_STARTS_STOPS_BITS = 0x0,
+  NI_GPCT_EDGE_GATE_STOPS_STARTS_BITS = 0x8,
+  NI_GPCT_EDGE_GATE_STARTS_BITS = 0x10,
+  NI_GPCT_EDGE_GATE_NO_STARTS_NO_STOPS_BITS = 0x18,
+  NI_GPCT_STOP_MODE_MASK = 0x60,
+  NI_GPCT_STOP_ON_GATE_BITS = 0x00,
+  NI_GPCT_STOP_ON_GATE_OR_TC_BITS = 0x20,
+  NI_GPCT_STOP_ON_GATE_OR_SECOND_TC_BITS = 0x40,
+  NI_GPCT_LOAD_B_SELECT_BIT = 0x80,
+  NI_GPCT_OUTPUT_MODE_MASK = 0x300,
+  NI_GPCT_OUTPUT_TC_PULSE_BITS = 0x100,
+  NI_GPCT_OUTPUT_TC_TOGGLE_BITS = 0x200,
+  NI_GPCT_OUTPUT_TC_OR_GATE_TOGGLE_BITS = 0x300,
+  NI_GPCT_HARDWARE_DISARM_MASK = 0xc00,
+  NI_GPCT_NO_HARDWARE_DISARM_BITS = 0x000,
+  NI_GPCT_DISARM_AT_TC_BITS = 0x400,
+  NI_GPCT_DISARM_AT_GATE_BITS = 0x800,
+  NI_GPCT_DISARM_AT_TC_OR_GATE_BITS = 0xc00,
+  NI_GPCT_LOADING_ON_TC_BIT = 0x1000,
+  NI_GPCT_LOADING_ON_GATE_BIT = 0x4000,
+  NI_GPCT_COUNTING_MODE_MASK = 0x7 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_NORMAL_BITS = 0x0 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X1_BITS = 0x1 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X2_BITS = 0x2 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X4_BITS = 0x3 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_TWO_PULSE_BITS = 0x4 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_SYNC_SOURCE_BITS = 0x6 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_INDEX_PHASE_MASK = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_LOW_A_LOW_B_BITS = 0x0 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_LOW_A_HIGH_B_BITS = 0x1 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_HIGH_A_LOW_B_BITS = 0x2 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_HIGH_A_HIGH_B_BITS = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_ENABLE_BIT = 0x400000,
+  NI_GPCT_COUNTING_DIRECTION_MASK = 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_DOWN_BITS = 0x00 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_UP_BITS = 0x1 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_HW_UP_DOWN_BITS = 0x2 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_HW_GATE_BITS = 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_RELOAD_SOURCE_MASK = 0xc000000,
+  NI_GPCT_RELOAD_SOURCE_FIXED_BITS = 0x0,
+  NI_GPCT_RELOAD_SOURCE_SWITCHING_BITS = 0x4000000,
+  NI_GPCT_RELOAD_SOURCE_GATE_SELECT_BITS = 0x8000000,
+  NI_GPCT_OR_GATE_BIT = 0x10000000,
+  NI_GPCT_INVERT_OUTPUT_BIT = 0x20000000
+};
+enum ni_gpct_clock_source_bits {
+  NI_GPCT_CLOCK_SRC_SELECT_MASK = 0x3f,
+  NI_GPCT_TIMEBASE_1_CLOCK_SRC_BITS = 0x0,
+  NI_GPCT_TIMEBASE_2_CLOCK_SRC_BITS = 0x1,
+  NI_GPCT_TIMEBASE_3_CLOCK_SRC_BITS = 0x2,
+  NI_GPCT_LOGIC_LOW_CLOCK_SRC_BITS = 0x3,
+  NI_GPCT_NEXT_GATE_CLOCK_SRC_BITS = 0x4,
+  NI_GPCT_NEXT_TC_CLOCK_SRC_BITS = 0x5,
+  NI_GPCT_SOURCE_PIN_i_CLOCK_SRC_BITS = 0x6,
+  NI_GPCT_PXI10_CLOCK_SRC_BITS = 0x7,
+  NI_GPCT_PXI_STAR_TRIGGER_CLOCK_SRC_BITS = 0x8,
+  NI_GPCT_ANALOG_TRIGGER_OUT_CLOCK_SRC_BITS = 0x9,
+  NI_GPCT_PRESCALE_MODE_CLOCK_SRC_MASK = 0x30000000,
+  NI_GPCT_NO_PRESCALE_CLOCK_SRC_BITS = 0x0,
+  NI_GPCT_PRESCALE_X2_CLOCK_SRC_BITS = 0x10000000,
+  NI_GPCT_PRESCALE_X8_CLOCK_SRC_BITS = 0x20000000,
+  NI_GPCT_INVERT_CLOCK_SRC_BIT = 0x80000000
+};
+#define NI_GPCT_SOURCE_PIN_CLOCK_SRC_BITS(x) (0x10 + (x))
+#define NI_GPCT_RTSI_CLOCK_SRC_BITS(x) (0x18 + (x))
+#define NI_GPCT_PFI_CLOCK_SRC_BITS(x) (0x20 + (x))
+enum ni_gpct_gate_select {
+  NI_GPCT_TIMESTAMP_MUX_GATE_SELECT = 0x0,
+  NI_GPCT_AI_START2_GATE_SELECT = 0x12,
+  NI_GPCT_PXI_STAR_TRIGGER_GATE_SELECT = 0x13,
+  NI_GPCT_NEXT_OUT_GATE_SELECT = 0x14,
+  NI_GPCT_AI_START1_GATE_SELECT = 0x1c,
+  NI_GPCT_NEXT_SOURCE_GATE_SELECT = 0x1d,
+  NI_GPCT_ANALOG_TRIGGER_OUT_GATE_SELECT = 0x1e,
+  NI_GPCT_LOGIC_LOW_GATE_SELECT = 0x1f,
+  NI_GPCT_SOURCE_PIN_i_GATE_SELECT = 0x100,
+  NI_GPCT_GATE_PIN_i_GATE_SELECT = 0x101,
+  NI_GPCT_UP_DOWN_PIN_i_GATE_SELECT = 0x201,
+  NI_GPCT_SELECTED_GATE_GATE_SELECT = 0x21e,
+  NI_GPCT_DISABLED_GATE_SELECT = 0x8000,
+};
+#define NI_GPCT_GATE_PIN_GATE_SELECT(x) (0x102 + (x))
+#define NI_GPCT_RTSI_GATE_SELECT(x) NI_USUAL_RTSI_SELECT(x)
+#define NI_GPCT_PFI_GATE_SELECT(x) NI_USUAL_PFI_SELECT(x)
+#define NI_GPCT_UP_DOWN_PIN_GATE_SELECT(x) (0x202 + (x))
+enum ni_gpct_other_index {
+  NI_GPCT_SOURCE_ENCODER_A,
+  NI_GPCT_SOURCE_ENCODER_B,
+  NI_GPCT_SOURCE_ENCODER_Z
+};
+enum ni_gpct_other_select {
+  NI_GPCT_DISABLED_OTHER_SELECT = 0x8000,
+};
+#define NI_GPCT_PFI_OTHER_SELECT(x) NI_USUAL_PFI_SELECT(x)
+enum ni_gpct_arm_source {
+  NI_GPCT_ARM_IMMEDIATE = 0x0,
+  NI_GPCT_ARM_PAIRED_IMMEDIATE = 0x1,
+  NI_GPCT_HW_ARM = 0x1000,
+  NI_GPCT_ARM_UNKNOWN = NI_GPCT_HW_ARM,
+};
+enum ni_gpct_filter_select {
+  NI_GPCT_FILTER_OFF = 0x0,
+  NI_GPCT_FILTER_TIMEBASE_3_SYNC = 0x1,
+  NI_GPCT_FILTER_100x_TIMEBASE_1 = 0x2,
+  NI_GPCT_FILTER_20x_TIMEBASE_1 = 0x3,
+  NI_GPCT_FILTER_10x_TIMEBASE_1 = 0x4,
+  NI_GPCT_FILTER_2x_TIMEBASE_1 = 0x5,
+  NI_GPCT_FILTER_2x_TIMEBASE_3 = 0x6
+};
+enum ni_pfi_filter_select {
+  NI_PFI_FILTER_OFF = 0x0,
+  NI_PFI_FILTER_125ns = 0x1,
+  NI_PFI_FILTER_6425ns = 0x2,
+  NI_PFI_FILTER_2550us = 0x3
+};
+enum ni_mio_clock_source {
+  NI_MIO_INTERNAL_CLOCK = 0,
+  NI_MIO_RTSI_CLOCK = 1,
+  NI_MIO_PLL_PXI_STAR_TRIGGER_CLOCK = 2,
+  NI_MIO_PLL_PXI10_CLOCK = 3,
+  NI_MIO_PLL_RTSI0_CLOCK = 4
+};
+#define NI_MIO_PLL_RTSI_CLOCK(x) (NI_MIO_PLL_RTSI0_CLOCK + (x))
+enum ni_rtsi_routing {
+  NI_RTSI_OUTPUT_ADR_START1 = 0,
+  NI_RTSI_OUTPUT_ADR_START2 = 1,
+  NI_RTSI_OUTPUT_SCLKG = 2,
+  NI_RTSI_OUTPUT_DACUPDN = 3,
+  NI_RTSI_OUTPUT_DA_START1 = 4,
+  NI_RTSI_OUTPUT_G_SRC0 = 5,
+  NI_RTSI_OUTPUT_G_GATE0 = 6,
+  NI_RTSI_OUTPUT_RGOUT0 = 7,
+  NI_RTSI_OUTPUT_RTSI_BRD_0 = 8,
+  NI_RTSI_OUTPUT_RTSI_OSC = 12
+};
+#define NI_RTSI_OUTPUT_RTSI_BRD(x) (NI_RTSI_OUTPUT_RTSI_BRD_0 + (x))
+enum ni_pfi_routing {
+  NI_PFI_OUTPUT_PFI_DEFAULT = 0,
+  NI_PFI_OUTPUT_AI_START1 = 1,
+  NI_PFI_OUTPUT_AI_START2 = 2,
+  NI_PFI_OUTPUT_AI_CONVERT = 3,
+  NI_PFI_OUTPUT_G_SRC1 = 4,
+  NI_PFI_OUTPUT_G_GATE1 = 5,
+  NI_PFI_OUTPUT_AO_UPDATE_N = 6,
+  NI_PFI_OUTPUT_AO_START1 = 7,
+  NI_PFI_OUTPUT_AI_START_PULSE = 8,
+  NI_PFI_OUTPUT_G_SRC0 = 9,
+  NI_PFI_OUTPUT_G_GATE0 = 10,
+  NI_PFI_OUTPUT_EXT_STROBE = 11,
+  NI_PFI_OUTPUT_AI_EXT_MUX_CLK = 12,
+  NI_PFI_OUTPUT_GOUT0 = 13,
+  NI_PFI_OUTPUT_GOUT1 = 14,
+  NI_PFI_OUTPUT_FREQ_OUT = 15,
+  NI_PFI_OUTPUT_PFI_DO = 16,
+  NI_PFI_OUTPUT_I_ATRIG = 17,
+  NI_PFI_OUTPUT_RTSI0 = 18,
+  NI_PFI_OUTPUT_PXI_STAR_TRIGGER_IN = 26,
+  NI_PFI_OUTPUT_SCXI_TRIG1 = 27,
+  NI_PFI_OUTPUT_DIO_CHANGE_DETECT_RTSI = 28,
+  NI_PFI_OUTPUT_CDI_SAMPLE = 29,
+  NI_PFI_OUTPUT_CDO_UPDATE = 30
+};
+#define NI_PFI_OUTPUT_RTSI(x) (NI_PFI_OUTPUT_RTSI0 + (x))
+enum ni_660x_pfi_routing {
+  NI_660X_PFI_OUTPUT_COUNTER = 1,
+  NI_660X_PFI_OUTPUT_DIO = 2,
+};
+#define NI_EXT_PFI(x) (NI_USUAL_PFI_SELECT(x) - 1)
+#define NI_EXT_RTSI(x) (NI_USUAL_RTSI_SELECT(x) - 1)
+enum ni_m_series_cdio_scan_begin_src {
+  NI_CDIO_SCAN_BEGIN_SRC_GROUND = 0,
+  NI_CDIO_SCAN_BEGIN_SRC_AI_START = 18,
+  NI_CDIO_SCAN_BEGIN_SRC_AI_CONVERT = 19,
+  NI_CDIO_SCAN_BEGIN_SRC_PXI_STAR_TRIGGER = 20,
+  NI_CDIO_SCAN_BEGIN_SRC_G0_OUT = 28,
+  NI_CDIO_SCAN_BEGIN_SRC_G1_OUT = 29,
+  NI_CDIO_SCAN_BEGIN_SRC_ANALOG_TRIGGER = 30,
+  NI_CDIO_SCAN_BEGIN_SRC_AO_UPDATE = 31,
+  NI_CDIO_SCAN_BEGIN_SRC_FREQ_OUT = 32,
+  NI_CDIO_SCAN_BEGIN_SRC_DIO_CHANGE_DETECT_IRQ = 33
+};
+#define NI_CDIO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x)
+#define NI_CDIO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x)
+#define NI_AO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x)
+#define NI_AO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x)
+enum ni_freq_out_clock_source_bits {
+  NI_FREQ_OUT_TIMEBASE_1_DIV_2_CLOCK_SRC,
+  NI_FREQ_OUT_TIMEBASE_2_CLOCK_SRC
+};
+enum amplc_dio_clock_source {
+  AMPLC_DIO_CLK_CLKN,
+  AMPLC_DIO_CLK_10MHZ,
+  AMPLC_DIO_CLK_1MHZ,
+  AMPLC_DIO_CLK_100KHZ,
+  AMPLC_DIO_CLK_10KHZ,
+  AMPLC_DIO_CLK_1KHZ,
+  AMPLC_DIO_CLK_OUTNM1,
+  AMPLC_DIO_CLK_EXT,
+  AMPLC_DIO_CLK_VCC,
+  AMPLC_DIO_CLK_GND,
+  AMPLC_DIO_CLK_PAT_PRESENT,
+  AMPLC_DIO_CLK_20MHZ
+};
+enum amplc_dio_ts_clock_src {
+  AMPLC_DIO_TS_CLK_1GHZ,
+  AMPLC_DIO_TS_CLK_1MHZ,
+  AMPLC_DIO_TS_CLK_1KHZ
+};
+enum amplc_dio_gate_source {
+  AMPLC_DIO_GAT_VCC,
+  AMPLC_DIO_GAT_GND,
+  AMPLC_DIO_GAT_GATN,
+  AMPLC_DIO_GAT_NOUTNM2,
+  AMPLC_DIO_GAT_RESERVED4,
+  AMPLC_DIO_GAT_RESERVED5,
+  AMPLC_DIO_GAT_RESERVED6,
+  AMPLC_DIO_GAT_RESERVED7,
+  AMPLC_DIO_GAT_NGATN = 6,
+  AMPLC_DIO_GAT_OUTNM2,
+  AMPLC_DIO_GAT_PAT_PRESENT,
+  AMPLC_DIO_GAT_PAT_OCCURRED,
+  AMPLC_DIO_GAT_PAT_GONE,
+  AMPLC_DIO_GAT_NPAT_PRESENT,
+  AMPLC_DIO_GAT_NPAT_OCCURRED,
+  AMPLC_DIO_GAT_NPAT_GONE
+};
+enum ke_counter_clock_source {
+  KE_CLK_20MHZ,
+  KE_CLK_4MHZ,
+  KE_CLK_EXT
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/counter.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/counter.h
new file mode 100644
index 0000000..091e33d
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/counter.h
@@ -0,0 +1,93 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_COUNTER_H_
+#define _UAPI_COUNTER_H_
+#include <linux/ioctl.h>
+#include <linux/types.h>
+enum counter_component_type {
+  COUNTER_COMPONENT_NONE,
+  COUNTER_COMPONENT_SIGNAL,
+  COUNTER_COMPONENT_COUNT,
+  COUNTER_COMPONENT_FUNCTION,
+  COUNTER_COMPONENT_SYNAPSE_ACTION,
+  COUNTER_COMPONENT_EXTENSION,
+};
+enum counter_scope {
+  COUNTER_SCOPE_DEVICE,
+  COUNTER_SCOPE_SIGNAL,
+  COUNTER_SCOPE_COUNT,
+};
+struct counter_component {
+  __u8 type;
+  __u8 scope;
+  __u8 parent;
+  __u8 id;
+};
+enum counter_event_type {
+  COUNTER_EVENT_OVERFLOW,
+  COUNTER_EVENT_UNDERFLOW,
+  COUNTER_EVENT_OVERFLOW_UNDERFLOW,
+  COUNTER_EVENT_THRESHOLD,
+  COUNTER_EVENT_INDEX,
+};
+struct counter_watch {
+  struct counter_component component;
+  __u8 event;
+  __u8 channel;
+};
+#define COUNTER_ADD_WATCH_IOCTL _IOW(0x3E, 0x00, struct counter_watch)
+#define COUNTER_ENABLE_EVENTS_IOCTL _IO(0x3E, 0x01)
+#define COUNTER_DISABLE_EVENTS_IOCTL _IO(0x3E, 0x02)
+struct counter_event {
+  __aligned_u64 timestamp;
+  __aligned_u64 value;
+  struct counter_watch watch;
+  __u8 status;
+};
+enum counter_count_direction {
+  COUNTER_COUNT_DIRECTION_FORWARD,
+  COUNTER_COUNT_DIRECTION_BACKWARD,
+};
+enum counter_count_mode {
+  COUNTER_COUNT_MODE_NORMAL,
+  COUNTER_COUNT_MODE_RANGE_LIMIT,
+  COUNTER_COUNT_MODE_NON_RECYCLE,
+  COUNTER_COUNT_MODE_MODULO_N,
+};
+enum counter_function {
+  COUNTER_FUNCTION_INCREASE,
+  COUNTER_FUNCTION_DECREASE,
+  COUNTER_FUNCTION_PULSE_DIRECTION,
+  COUNTER_FUNCTION_QUADRATURE_X1_A,
+  COUNTER_FUNCTION_QUADRATURE_X1_B,
+  COUNTER_FUNCTION_QUADRATURE_X2_A,
+  COUNTER_FUNCTION_QUADRATURE_X2_B,
+  COUNTER_FUNCTION_QUADRATURE_X4,
+};
+enum counter_signal_level {
+  COUNTER_SIGNAL_LEVEL_LOW,
+  COUNTER_SIGNAL_LEVEL_HIGH,
+};
+enum counter_synapse_action {
+  COUNTER_SYNAPSE_ACTION_NONE,
+  COUNTER_SYNAPSE_ACTION_RISING_EDGE,
+  COUNTER_SYNAPSE_ACTION_FALLING_EDGE,
+  COUNTER_SYNAPSE_ACTION_BOTH_EDGES,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cxl_mem.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
index 851bd79..15e9e29 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
@@ -21,7 +21,7 @@
 #include <linux/types.h>
 #define CXL_MEM_QUERY_COMMANDS _IOR(0xCE, 1, struct cxl_mem_query_commands)
 #define CXL_MEM_SEND_COMMAND _IOWR(0xCE, 2, struct cxl_send_command)
-#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(MAX, "invalid / last command")
+#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(SET_PARTITION_INFO, "Set Partition Information"), ___C(SET_LSA, "Set Label Storage Area"), ___C(GET_ALERT_CONFIG, "Get Alert Configuration"), ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), ___C(GET_POISON, "Get Poison List"), ___C(INJECT_POISON, "Inject Poison"), ___C(CLEAR_POISON, "Clear Poison"), ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), ___C(SCAN_MEDIA, "Scan Media"), ___C(GET_SCAN_MEDIA, "Get Scan Media Results"), ___C(MAX, "invalid / last command")
 #define ___C(a,b) CXL_MEM_COMMAND_ID_ ##a
 enum {
   CXL_CMDS
@@ -30,7 +30,7 @@
 #define ___C(a,b) { b }
 static const struct {
   const char * name;
-} cxl_command_names[] = {
+} cxl_command_names[] __attribute__((__unused__)) = {
   CXL_CMDS
 };
 #undef ___C
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cyclades.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cyclades.h
index 60bc4af..c0aa7aa 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cyclades.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/cyclades.h
@@ -18,24 +18,14 @@
  ****************************************************************************/
 #ifndef _UAPI_LINUX_CYCLADES_H
 #define _UAPI_LINUX_CYCLADES_H
-#include <linux/types.h>
+#warning "Support for features provided by this header has been removed"
+#warning "Please consider updating your code"
 struct cyclades_monitor {
   unsigned long int_count;
   unsigned long char_count;
   unsigned long char_max;
   unsigned long char_last;
 };
-struct cyclades_idle_stats {
-  __kernel_old_time_t in_use;
-  __kernel_old_time_t recv_idle;
-  __kernel_old_time_t xmit_idle;
-  unsigned long recv_bytes;
-  unsigned long xmit_bytes;
-  unsigned long overruns;
-  unsigned long frame_errs;
-  unsigned long parity_errs;
-};
-#define CYCLADES_MAGIC 0x4359
 #define CYGETMON 0x435901
 #define CYGETTHRESH 0x435902
 #define CYSETTHRESH 0x435903
@@ -54,253 +44,4 @@
 #define CYGETCD1400VER 0x435910
 #define CYSETWAIT 0x435912
 #define CYGETWAIT 0x435913
-#define CZIOC ('M' << 8)
-#define CZ_NBOARDS (CZIOC | 0xfa)
-#define CZ_BOOT_START (CZIOC | 0xfb)
-#define CZ_BOOT_DATA (CZIOC | 0xfc)
-#define CZ_BOOT_END (CZIOC | 0xfd)
-#define CZ_TEST (CZIOC | 0xfe)
-#define CZ_DEF_POLL (HZ / 25)
-#define MAX_BOARD 4
-#define MAX_DEV 256
-#define CYZ_MAX_SPEED 921600
-#define CYZ_FIFO_SIZE 16
-#define CYZ_BOOT_NWORDS 0x100
-struct CYZ_BOOT_CTRL {
-  unsigned short nboard;
-  int status[MAX_BOARD];
-  int nchannel[MAX_BOARD];
-  int fw_rev[MAX_BOARD];
-  unsigned long offset;
-  unsigned long data[CYZ_BOOT_NWORDS];
-};
-#ifndef DP_WINDOW_SIZE
-#define DP_WINDOW_SIZE (0x00080000)
-#define ZE_DP_WINDOW_SIZE (0x00100000)
-#define CTRL_WINDOW_SIZE (0x00000080)
-struct CUSTOM_REG {
-  __u32 fpga_id;
-  __u32 fpga_version;
-  __u32 cpu_start;
-  __u32 cpu_stop;
-  __u32 misc_reg;
-  __u32 idt_mode;
-  __u32 uart_irq_status;
-  __u32 clear_timer0_irq;
-  __u32 clear_timer1_irq;
-  __u32 clear_timer2_irq;
-  __u32 test_register;
-  __u32 test_count;
-  __u32 timer_select;
-  __u32 pr_uart_irq_status;
-  __u32 ram_wait_state;
-  __u32 uart_wait_state;
-  __u32 timer_wait_state;
-  __u32 ack_wait_state;
-};
-struct RUNTIME_9060 {
-  __u32 loc_addr_range;
-  __u32 loc_addr_base;
-  __u32 loc_arbitr;
-  __u32 endian_descr;
-  __u32 loc_rom_range;
-  __u32 loc_rom_base;
-  __u32 loc_bus_descr;
-  __u32 loc_range_mst;
-  __u32 loc_base_mst;
-  __u32 loc_range_io;
-  __u32 pci_base_mst;
-  __u32 pci_conf_io;
-  __u32 filler1;
-  __u32 filler2;
-  __u32 filler3;
-  __u32 filler4;
-  __u32 mail_box_0;
-  __u32 mail_box_1;
-  __u32 mail_box_2;
-  __u32 mail_box_3;
-  __u32 filler5;
-  __u32 filler6;
-  __u32 filler7;
-  __u32 filler8;
-  __u32 pci_doorbell;
-  __u32 loc_doorbell;
-  __u32 intr_ctrl_stat;
-  __u32 init_ctrl;
-};
-#define WIN_RAM 0x00000001L
-#define WIN_CREG 0x14000001L
-#define TIMER_BY_1M 0x00
-#define TIMER_BY_256K 0x01
-#define TIMER_BY_128K 0x02
-#define TIMER_BY_32K 0x03
-#endif
-#ifndef ZFIRM_ID
-#define MAX_CHAN 64
-#define ID_ADDRESS 0x00000180L
-#define ZFIRM_ID 0x5557465AL
-#define ZFIRM_HLT 0x59505B5CL
-#define ZFIRM_RST 0x56040674L
-#define ZF_TINACT_DEF 1000
-#define ZF_TINACT ZF_TINACT_DEF
-struct FIRM_ID {
-  __u32 signature;
-  __u32 zfwctrl_addr;
-};
-#define C_OS_LINUX 0x00000030
-#define C_CH_DISABLE 0x00000000
-#define C_CH_TXENABLE 0x00000001
-#define C_CH_RXENABLE 0x00000002
-#define C_CH_ENABLE 0x00000003
-#define C_CH_LOOPBACK 0x00000004
-#define C_PR_NONE 0x00000000
-#define C_PR_ODD 0x00000001
-#define C_PR_EVEN 0x00000002
-#define C_PR_MARK 0x00000004
-#define C_PR_SPACE 0x00000008
-#define C_PR_PARITY 0x000000ff
-#define C_PR_DISCARD 0x00000100
-#define C_PR_IGNORE 0x00000200
-#define C_DL_CS5 0x00000001
-#define C_DL_CS6 0x00000002
-#define C_DL_CS7 0x00000004
-#define C_DL_CS8 0x00000008
-#define C_DL_CS 0x0000000f
-#define C_DL_1STOP 0x00000010
-#define C_DL_15STOP 0x00000020
-#define C_DL_2STOP 0x00000040
-#define C_DL_STOP 0x000000f0
-#define C_IN_DISABLE 0x00000000
-#define C_IN_TXBEMPTY 0x00000001
-#define C_IN_TXLOWWM 0x00000002
-#define C_IN_RXHIWM 0x00000010
-#define C_IN_RXNNDT 0x00000020
-#define C_IN_MDCD 0x00000100
-#define C_IN_MDSR 0x00000200
-#define C_IN_MRI 0x00000400
-#define C_IN_MCTS 0x00000800
-#define C_IN_RXBRK 0x00001000
-#define C_IN_PR_ERROR 0x00002000
-#define C_IN_FR_ERROR 0x00004000
-#define C_IN_OVR_ERROR 0x00008000
-#define C_IN_RXOFL 0x00010000
-#define C_IN_IOCTLW 0x00020000
-#define C_IN_MRTS 0x00040000
-#define C_IN_ICHAR 0x00080000
-#define C_FL_OXX 0x00000001
-#define C_FL_IXX 0x00000002
-#define C_FL_OIXANY 0x00000004
-#define C_FL_SWFLOW 0x0000000f
-#define C_FS_TXIDLE 0x00000000
-#define C_FS_SENDING 0x00000001
-#define C_FS_SWFLOW 0x00000002
-#define C_RS_PARAM 0x80000000
-#define C_RS_RTS 0x00000001
-#define C_RS_DTR 0x00000004
-#define C_RS_DCD 0x00000100
-#define C_RS_DSR 0x00000200
-#define C_RS_RI 0x00000400
-#define C_RS_CTS 0x00000800
-#define C_CM_RESET 0x01
-#define C_CM_IOCTL 0x02
-#define C_CM_IOCTLW 0x03
-#define C_CM_IOCTLM 0x04
-#define C_CM_SENDXOFF 0x10
-#define C_CM_SENDXON 0x11
-#define C_CM_CLFLOW 0x12
-#define C_CM_SENDBRK 0x41
-#define C_CM_INTBACK 0x42
-#define C_CM_SET_BREAK 0x43
-#define C_CM_CLR_BREAK 0x44
-#define C_CM_CMD_DONE 0x45
-#define C_CM_INTBACK2 0x46
-#define C_CM_TINACT 0x51
-#define C_CM_IRQ_ENBL 0x52
-#define C_CM_IRQ_DSBL 0x53
-#define C_CM_ACK_ENBL 0x54
-#define C_CM_ACK_DSBL 0x55
-#define C_CM_FLUSH_RX 0x56
-#define C_CM_FLUSH_TX 0x57
-#define C_CM_Q_ENABLE 0x58
-#define C_CM_Q_DISABLE 0x59
-#define C_CM_TXBEMPTY 0x60
-#define C_CM_TXLOWWM 0x61
-#define C_CM_RXHIWM 0x62
-#define C_CM_RXNNDT 0x63
-#define C_CM_TXFEMPTY 0x64
-#define C_CM_ICHAR 0x65
-#define C_CM_MDCD 0x70
-#define C_CM_MDSR 0x71
-#define C_CM_MRI 0x72
-#define C_CM_MCTS 0x73
-#define C_CM_MRTS 0x74
-#define C_CM_RXBRK 0x84
-#define C_CM_PR_ERROR 0x85
-#define C_CM_FR_ERROR 0x86
-#define C_CM_OVR_ERROR 0x87
-#define C_CM_RXOFL 0x88
-#define C_CM_CMDERROR 0x90
-#define C_CM_FATAL 0x91
-#define C_CM_HW_RESET 0x92
-struct CH_CTRL {
-  __u32 op_mode;
-  __u32 intr_enable;
-  __u32 sw_flow;
-  __u32 flow_status;
-  __u32 comm_baud;
-  __u32 comm_parity;
-  __u32 comm_data_l;
-  __u32 comm_flags;
-  __u32 hw_flow;
-  __u32 rs_control;
-  __u32 rs_status;
-  __u32 flow_xon;
-  __u32 flow_xoff;
-  __u32 hw_overflow;
-  __u32 sw_overflow;
-  __u32 comm_error;
-  __u32 ichar;
-  __u32 filler[7];
-};
-struct BUF_CTRL {
-  __u32 flag_dma;
-  __u32 tx_bufaddr;
-  __u32 tx_bufsize;
-  __u32 tx_threshold;
-  __u32 tx_get;
-  __u32 tx_put;
-  __u32 rx_bufaddr;
-  __u32 rx_bufsize;
-  __u32 rx_threshold;
-  __u32 rx_get;
-  __u32 rx_put;
-  __u32 filler[5];
-};
-struct BOARD_CTRL {
-  __u32 n_channel;
-  __u32 fw_version;
-  __u32 op_system;
-  __u32 dr_version;
-  __u32 inactivity;
-  __u32 hcmd_channel;
-  __u32 hcmd_param;
-  __u32 fwcmd_channel;
-  __u32 fwcmd_param;
-  __u32 zf_int_queue_addr;
-  __u32 filler[6];
-};
-#define QUEUE_SIZE (10 * MAX_CHAN)
-struct INT_QUEUE {
-  unsigned char intr_code[QUEUE_SIZE];
-  unsigned long channel[QUEUE_SIZE];
-  unsigned long param[QUEUE_SIZE];
-  unsigned long put;
-  unsigned long get;
-};
-struct ZFW_CTRL {
-  struct BOARD_CTRL board_ctrl;
-  struct CH_CTRL ch_ctrl[MAX_CHAN];
-  struct BUF_CTRL buf_ctrl[MAX_CHAN];
-};
-#endif
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/devlink.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/devlink.h
index e6e006f..a809306 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/devlink.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/devlink.h
@@ -99,6 +99,10 @@
   DEVLINK_CMD_TRAP_POLICER_NEW,
   DEVLINK_CMD_TRAP_POLICER_DEL,
   DEVLINK_CMD_HEALTH_REPORTER_TEST,
+  DEVLINK_CMD_RATE_GET,
+  DEVLINK_CMD_RATE_SET,
+  DEVLINK_CMD_RATE_NEW,
+  DEVLINK_CMD_RATE_DEL,
   __DEVLINK_CMD_MAX,
   DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
 };
@@ -141,6 +145,10 @@
   DEVLINK_PORT_FLAVOUR_UNUSED,
   DEVLINK_PORT_FLAVOUR_PCI_SF,
 };
+enum devlink_rate_type {
+  DEVLINK_RATE_TYPE_LEAF,
+  DEVLINK_RATE_TYPE_NODE,
+};
 enum devlink_param_cmode {
   DEVLINK_PARAM_CMODE_RUNTIME,
   DEVLINK_PARAM_CMODE_DRIVERINIT,
@@ -370,6 +378,12 @@
   DEVLINK_ATTR_RELOAD_ACTION_INFO,
   DEVLINK_ATTR_RELOAD_ACTION_STATS,
   DEVLINK_ATTR_PORT_PCI_SF_NUMBER,
+  DEVLINK_ATTR_RATE_TYPE,
+  DEVLINK_ATTR_RATE_TX_SHARE,
+  DEVLINK_ATTR_RATE_TX_MAX,
+  DEVLINK_ATTR_RATE_NODE_NAME,
+  DEVLINK_ATTR_RATE_PARENT_NODE_NAME,
+  DEVLINK_ATTR_REGION_MAX_SNAPSHOTS,
   __DEVLINK_ATTR_MAX,
   DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
 };
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dlm_device.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dlm_device.h
index 9cf41a8..5e54d2e 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dlm_device.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dlm_device.h
@@ -39,12 +39,12 @@
   void __user * bastaddr;
   struct dlm_lksb __user * lksb;
   char lvb[DLM_USER_LVB_LEN];
-  char name[0];
+  char name[];
 };
 struct dlm_lspace_params {
   __u32 flags;
   __u32 minor;
-  char name[0];
+  char name[];
 };
 struct dlm_purge_params {
   __u32 nodeid;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
index 4c0a9f0..09f8a98 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
@@ -55,6 +55,8 @@
   __u32 next;
   char name[0];
 };
+#define DM_NAME_LIST_FLAG_HAS_UUID 1
+#define DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID 2
 struct dm_target_versions {
   __u32 next;
   __u32 version[3];
@@ -104,9 +106,9 @@
 #define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
 #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
 #define DM_VERSION_MAJOR 4
-#define DM_VERSION_MINOR 44
+#define DM_VERSION_MINOR 45
 #define DM_VERSION_PATCHLEVEL 0
-#define DM_VERSION_EXTRA "-ioctl(2021-02-01)"
+#define DM_VERSION_EXTRA "-ioctl(2021-03-22)"
 #define DM_READONLY_FLAG (1 << 0)
 #define DM_SUSPEND_FLAG (1 << 1)
 #define DM_PERSISTENT_DEV_FLAG (1 << 3)
@@ -124,4 +126,5 @@
 #define DM_DATA_OUT_FLAG (1 << 16)
 #define DM_DEFERRED_REMOVE (1 << 17)
 #define DM_INTERNAL_SUSPEND_FLAG (1 << 18)
+#define DM_IMA_MEASUREMENT_FLAG (1 << 19)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
index db7c7e5..6164991 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
@@ -130,6 +130,9 @@
   __s32 qs_rtbtimelimit;
   __u16 qs_bwarnlimit;
   __u16 qs_iwarnlimit;
-  __u64 qs_pad2[8];
+  __u16 qs_rtbwarnlimit;
+  __u16 qs_pad3;
+  __u32 qs_pad4;
+  __u64 qs_pad2[7];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/elf.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/elf.h
index f9f122a..7655f12 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/elf.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/elf.h
@@ -360,6 +360,7 @@
 #define NT_ARM_PACA_KEYS 0x407
 #define NT_ARM_PACG_KEYS 0x408
 #define NT_ARM_TAGGED_ADDR_CTRL 0x409
+#define NT_ARM_PAC_ENABLED_KEYS 0x40a
 #define NT_ARC_V2 0x600
 #define NT_VMCOREDD 0x700
 #define NT_MIPS_DSP 0x800
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ethtool.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ethtool.h
index 021a69b..741ea2a 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ethtool.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ethtool.h
@@ -78,6 +78,7 @@
   ETHTOOL_RX_COPYBREAK,
   ETHTOOL_TX_COPYBREAK,
   ETHTOOL_PFC_PREVENTION_TOUT,
+  ETHTOOL_TX_COPYBREAK_BUF_SIZE,
   __ETHTOOL_TUNABLE_COUNT,
 };
 enum tunable_type_id {
@@ -207,6 +208,7 @@
   ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
   ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
   ETHTOOL_LINK_EXT_STATE_OVERHEAT,
+  ETHTOOL_LINK_EXT_STATE_MODULE,
 };
 enum ethtool_link_ext_substate_autoneg {
   ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
@@ -232,11 +234,16 @@
 enum ethtool_link_ext_substate_bad_signal_integrity {
   ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
   ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
+  ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST,
+  ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS,
 };
 enum ethtool_link_ext_substate_cable_issue {
   ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
   ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
 };
+enum ethtool_link_ext_substate_module {
+  ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
+};
 #define ETH_GSTRING_LEN 32
 enum ethtool_stringset {
   ETH_SS_TEST = 0,
@@ -255,8 +262,21 @@
   ETH_SS_TS_TX_TYPES,
   ETH_SS_TS_RX_FILTERS,
   ETH_SS_UDP_TUNNEL_TYPES,
+  ETH_SS_STATS_STD,
+  ETH_SS_STATS_ETH_PHY,
+  ETH_SS_STATS_ETH_MAC,
+  ETH_SS_STATS_ETH_CTRL,
+  ETH_SS_STATS_RMON,
   ETH_SS_COUNT
 };
+enum ethtool_module_power_mode_policy {
+  ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
+  ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO,
+};
+enum ethtool_module_power_mode {
+  ETHTOOL_MODULE_POWER_MODE_LOW = 1,
+  ETHTOOL_MODULE_POWER_MODE_HIGH,
+};
 struct ethtool_gstrings {
   __u32 cmd;
   __u32 string_set;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
index 67091a1..7dcae22 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
@@ -49,6 +49,13 @@
   ETHTOOL_MSG_CABLE_TEST_ACT,
   ETHTOOL_MSG_CABLE_TEST_TDR_ACT,
   ETHTOOL_MSG_TUNNEL_INFO_GET,
+  ETHTOOL_MSG_FEC_GET,
+  ETHTOOL_MSG_FEC_SET,
+  ETHTOOL_MSG_MODULE_EEPROM_GET,
+  ETHTOOL_MSG_STATS_GET,
+  ETHTOOL_MSG_PHC_VCLOCKS_GET,
+  ETHTOOL_MSG_MODULE_GET,
+  ETHTOOL_MSG_MODULE_SET,
   __ETHTOOL_MSG_USER_CNT,
   ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
 };
@@ -83,6 +90,13 @@
   ETHTOOL_MSG_CABLE_TEST_NTF,
   ETHTOOL_MSG_CABLE_TEST_TDR_NTF,
   ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,
+  ETHTOOL_MSG_FEC_GET_REPLY,
+  ETHTOOL_MSG_FEC_NTF,
+  ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
+  ETHTOOL_MSG_STATS_GET_REPLY,
+  ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
+  ETHTOOL_MSG_MODULE_GET_REPLY,
+  ETHTOOL_MSG_MODULE_NTF,
   __ETHTOOL_MSG_KERNEL_CNT,
   ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
 };
@@ -236,6 +250,7 @@
   ETHTOOL_A_RINGS_RX_MINI,
   ETHTOOL_A_RINGS_RX_JUMBO,
   ETHTOOL_A_RINGS_TX,
+  ETHTOOL_A_RINGS_RX_BUF_LEN,
   __ETHTOOL_A_RINGS_CNT,
   ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
 };
@@ -278,6 +293,8 @@
   ETHTOOL_A_COALESCE_TX_USECS_HIGH,
   ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH,
   ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL,
+  ETHTOOL_A_COALESCE_USE_CQE_MODE_TX,
+  ETHTOOL_A_COALESCE_USE_CQE_MODE_RX,
   __ETHTOOL_A_COALESCE_CNT,
   ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
 };
@@ -322,6 +339,14 @@
   ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
 };
 enum {
+  ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
+  ETHTOOL_A_PHC_VCLOCKS_HEADER,
+  ETHTOOL_A_PHC_VCLOCKS_NUM,
+  ETHTOOL_A_PHC_VCLOCKS_INDEX,
+  __ETHTOOL_A_PHC_VCLOCKS_CNT,
+  ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)
+};
+enum {
   ETHTOOL_A_CABLE_TEST_UNSPEC,
   ETHTOOL_A_CABLE_TEST_HEADER,
   __ETHTOOL_A_CABLE_TEST_CNT,
@@ -461,6 +486,121 @@
   __ETHTOOL_A_TUNNEL_INFO_CNT,
   ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
 };
+enum {
+  ETHTOOL_A_FEC_UNSPEC,
+  ETHTOOL_A_FEC_HEADER,
+  ETHTOOL_A_FEC_MODES,
+  ETHTOOL_A_FEC_AUTO,
+  ETHTOOL_A_FEC_ACTIVE,
+  ETHTOOL_A_FEC_STATS,
+  __ETHTOOL_A_FEC_CNT,
+  ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1)
+};
+enum {
+  ETHTOOL_A_FEC_STAT_UNSPEC,
+  ETHTOOL_A_FEC_STAT_PAD,
+  ETHTOOL_A_FEC_STAT_CORRECTED,
+  ETHTOOL_A_FEC_STAT_UNCORR,
+  ETHTOOL_A_FEC_STAT_CORR_BITS,
+  __ETHTOOL_A_FEC_STAT_CNT,
+  ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_EEPROM_UNSPEC,
+  ETHTOOL_A_MODULE_EEPROM_HEADER,
+  ETHTOOL_A_MODULE_EEPROM_OFFSET,
+  ETHTOOL_A_MODULE_EEPROM_LENGTH,
+  ETHTOOL_A_MODULE_EEPROM_PAGE,
+  ETHTOOL_A_MODULE_EEPROM_BANK,
+  ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS,
+  ETHTOOL_A_MODULE_EEPROM_DATA,
+  __ETHTOOL_A_MODULE_EEPROM_CNT,
+  ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_UNSPEC,
+  ETHTOOL_A_STATS_PAD,
+  ETHTOOL_A_STATS_HEADER,
+  ETHTOOL_A_STATS_GROUPS,
+  ETHTOOL_A_STATS_GRP,
+  __ETHTOOL_A_STATS_CNT,
+  ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+};
+enum {
+  ETHTOOL_STATS_ETH_PHY,
+  ETHTOOL_STATS_ETH_MAC,
+  ETHTOOL_STATS_ETH_CTRL,
+  ETHTOOL_STATS_RMON,
+  __ETHTOOL_STATS_CNT
+};
+enum {
+  ETHTOOL_A_STATS_GRP_UNSPEC,
+  ETHTOOL_A_STATS_GRP_PAD,
+  ETHTOOL_A_STATS_GRP_ID,
+  ETHTOOL_A_STATS_GRP_SS_ID,
+  ETHTOOL_A_STATS_GRP_STAT,
+  ETHTOOL_A_STATS_GRP_HIST_RX,
+  ETHTOOL_A_STATS_GRP_HIST_TX,
+  ETHTOOL_A_STATS_GRP_HIST_BKT_LOW,
+  ETHTOOL_A_STATS_GRP_HIST_BKT_HI,
+  ETHTOOL_A_STATS_GRP_HIST_VAL,
+  __ETHTOOL_A_STATS_GRP_CNT,
+  ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
+  __ETHTOOL_A_STATS_ETH_PHY_CNT,
+  ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
+  ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
+  ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
+  ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
+  ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
+  ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
+  ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
+  ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
+  ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
+  ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
+  ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
+  ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
+  ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
+  ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
+  ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
+  ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
+  __ETHTOOL_A_STATS_ETH_MAC_CNT,
+  ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_CTRL_3_TX,
+  ETHTOOL_A_STATS_ETH_CTRL_4_RX,
+  ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,
+  __ETHTOOL_A_STATS_ETH_CTRL_CNT,
+  ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_RMON_UNDERSIZE,
+  ETHTOOL_A_STATS_RMON_OVERSIZE,
+  ETHTOOL_A_STATS_RMON_FRAG,
+  ETHTOOL_A_STATS_RMON_JABBER,
+  __ETHTOOL_A_STATS_RMON_CNT,
+  ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_UNSPEC,
+  ETHTOOL_A_MODULE_HEADER,
+  ETHTOOL_A_MODULE_POWER_MODE_POLICY,
+  ETHTOOL_A_MODULE_POWER_MODE,
+  __ETHTOOL_A_MODULE_CNT,
+  ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
+};
 #define ETHTOOL_GENL_NAME "ethtool"
 #define ETHTOOL_GENL_VERSION 1
 #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fanotify.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fanotify.h
index c63d058..6249292 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fanotify.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fanotify.h
@@ -33,10 +33,12 @@
 #define FAN_MOVE_SELF 0x00000800
 #define FAN_OPEN_EXEC 0x00001000
 #define FAN_Q_OVERFLOW 0x00004000
+#define FAN_FS_ERROR 0x00008000
 #define FAN_OPEN_PERM 0x00010000
 #define FAN_ACCESS_PERM 0x00020000
 #define FAN_OPEN_EXEC_PERM 0x00040000
 #define FAN_EVENT_ON_CHILD 0x08000000
+#define FAN_RENAME 0x10000000
 #define FAN_ONDIR 0x40000000
 #define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE)
 #define FAN_MOVE (FAN_MOVED_FROM | FAN_MOVED_TO)
@@ -49,11 +51,14 @@
 #define FAN_UNLIMITED_QUEUE 0x00000010
 #define FAN_UNLIMITED_MARKS 0x00000020
 #define FAN_ENABLE_AUDIT 0x00000040
+#define FAN_REPORT_PIDFD 0x00000080
 #define FAN_REPORT_TID 0x00000100
 #define FAN_REPORT_FID 0x00000200
 #define FAN_REPORT_DIR_FID 0x00000400
 #define FAN_REPORT_NAME 0x00000800
+#define FAN_REPORT_TARGET_FID 0x00001000
 #define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)
+#define FAN_REPORT_DFID_NAME_TARGET (FAN_REPORT_DFID_NAME | FAN_REPORT_FID | FAN_REPORT_TARGET_FID)
 #define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS)
 #define FAN_MARK_ADD 0x00000001
 #define FAN_MARK_REMOVE 0x00000002
@@ -82,6 +87,10 @@
 #define FAN_EVENT_INFO_TYPE_FID 1
 #define FAN_EVENT_INFO_TYPE_DFID_NAME 2
 #define FAN_EVENT_INFO_TYPE_DFID 3
+#define FAN_EVENT_INFO_TYPE_PIDFD 4
+#define FAN_EVENT_INFO_TYPE_ERROR 5
+#define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10
+#define FAN_EVENT_INFO_TYPE_NEW_DFID_NAME 12
 struct fanotify_event_info_header {
   __u8 info_type;
   __u8 pad;
@@ -92,6 +101,15 @@
   __kernel_fsid_t fsid;
   unsigned char handle[0];
 };
+struct fanotify_event_info_pidfd {
+  struct fanotify_event_info_header hdr;
+  __s32 pidfd;
+};
+struct fanotify_event_info_error {
+  struct fanotify_event_info_header hdr;
+  __s32 error;
+  __u32 error_count;
+};
 struct fanotify_response {
   __s32 fd;
   __u32 response;
@@ -100,6 +118,8 @@
 #define FAN_DENY 0x02
 #define FAN_AUDIT 0x10
 #define FAN_NOFD - 1
+#define FAN_NOPIDFD FAN_NOFD
+#define FAN_EPIDFD - 2
 #define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
 #define FAN_EVENT_NEXT(meta,len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata *) (((char *) (meta)) + (meta)->event_len))
 #define FAN_EVENT_OK(meta,len) ((long) (len) >= (long) FAN_EVENT_METADATA_LEN && (long) (meta)->event_len >= (long) FAN_EVENT_METADATA_LEN && (long) (meta)->event_len <= (long) (len))
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fs.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fs.h
index 0601768..3bb4183 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fs.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fs.h
@@ -129,6 +129,7 @@
 #define BLKSECDISCARD _IO(0x12, 125)
 #define BLKROTATIONAL _IO(0x12, 126)
 #define BLKZEROOUT _IO(0x12, 127)
+#define BLKGETDISKSEQ _IOR(0x12, 128, __u64)
 #define BMAP_IOCTL 1
 #define FIBMAP _IO(0x00, 1)
 #define FIGETBSZ _IO(0x00, 2)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fuse.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fuse.h
index efb5424..144e960 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fuse.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/fuse.h
@@ -20,7 +20,7 @@
 #define _LINUX_FUSE_H
 #include <stdint.h>
 #define FUSE_KERNEL_VERSION 7
-#define FUSE_KERNEL_MINOR_VERSION 33
+#define FUSE_KERNEL_MINOR_VERSION 36
 #define FUSE_ROOT_ID 1
 struct fuse_attr {
   uint64_t ino;
@@ -75,6 +75,7 @@
 #define FOPEN_NONSEEKABLE (1 << 2)
 #define FOPEN_CACHE_DIR (1 << 3)
 #define FOPEN_STREAM (1 << 4)
+#define FOPEN_NOFLUSH (1 << 5)
 #define FUSE_ASYNC_READ (1 << 0)
 #define FUSE_POSIX_LOCKS (1 << 1)
 #define FUSE_FILE_OPS (1 << 2)
@@ -104,7 +105,16 @@
 #define FUSE_MAP_ALIGNMENT (1 << 26)
 #define FUSE_SUBMOUNTS (1 << 27)
 #define FUSE_HANDLE_KILLPRIV_V2 (1 << 28)
+#define FUSE_SETXATTR_EXT (1 << 29)
+#define FUSE_INIT_EXT (1 << 30)
+#define FUSE_INIT_RESERVED (1 << 31)
+#define FUSE_SECURITY_CTX (1ULL << 32)
+#define FUSE_HAS_INODE_DAX (1ULL << 33)
+#if FUSE_KERNEL_VERSION > 7 || FUSE_KERNEL_VERSION == 7 && FUSE_KERNEL_MINOR_VERSION >= 36
+#define FUSE_PASSTHROUGH (1ULL << 63)
+#else
 #define FUSE_PASSTHROUGH (1 << 31)
+#endif
 #define CUSE_UNRESTRICTED_IOCTL (1 << 0)
 #define FUSE_RELEASE_FLUSH (1 << 0)
 #define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1)
@@ -125,7 +135,9 @@
 #define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0)
 #define FUSE_FSYNC_FDATASYNC (1 << 0)
 #define FUSE_ATTR_SUBMOUNT (1 << 0)
+#define FUSE_ATTR_DAX (1 << 1)
 #define FUSE_OPEN_KILL_SUIDGID (1 << 0)
+#define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0)
 enum fuse_opcode {
   FUSE_LOOKUP = 1,
   FUSE_FORGET = 2,
@@ -174,6 +186,7 @@
   FUSE_COPY_FILE_RANGE = 47,
   FUSE_SETUPMAPPING = 48,
   FUSE_REMOVEMAPPING = 49,
+  FUSE_SYNCFS = 50,
   FUSE_CANONICAL_PATH = 2016,
   CUSE_INIT = 4096,
   CUSE_INIT_BSWAP_RESERVED = 1048576,
@@ -321,9 +334,12 @@
   uint32_t fsync_flags;
   uint32_t padding;
 };
+#define FUSE_COMPAT_SETXATTR_IN_SIZE 8
 struct fuse_setxattr_in {
   uint32_t size;
   uint32_t flags;
+  uint32_t setxattr_flags;
+  uint32_t padding;
 };
 struct fuse_getxattr_in {
   uint32_t size;
@@ -352,6 +368,8 @@
   uint32_t minor;
   uint32_t max_readahead;
   uint32_t flags;
+  uint32_t flags2;
+  uint32_t unused[11];
 };
 #define FUSE_COMPAT_INIT_OUT_SIZE 8
 #define FUSE_COMPAT_22_INIT_OUT_SIZE 24
@@ -366,7 +384,8 @@
   uint32_t time_gran;
   uint16_t max_pages;
   uint16_t map_alignment;
-  uint32_t unused[8];
+  uint32_t flags2;
+  uint32_t unused[7];
 };
 #define CUSE_INIT_INFO_MAX 4096
 struct cuse_init_in {
@@ -445,11 +464,6 @@
   uint32_t pid;
   uint32_t padding;
 };
-struct fuse_passthrough_out {
-  uint32_t fd;
-  uint32_t len;
-  void * vec;
-};
 struct fuse_out_header {
   uint32_t len;
   int32_t error;
@@ -462,8 +476,9 @@
   uint32_t type;
   char name[];
 };
+#define FUSE_REC_ALIGN(x) (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
 #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
-#define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
+#define FUSE_DIRENT_ALIGN(x) FUSE_REC_ALIGN(x)
 #define FUSE_DIRENT_SIZE(d) FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
 struct fuse_direntplus {
   struct fuse_entry_out entry_out;
@@ -510,7 +525,7 @@
 };
 #define FUSE_DEV_IOC_MAGIC 229
 #define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
-#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 127, struct fuse_passthrough_out)
+#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 126, uint32_t)
 struct fuse_lseek_in {
   uint64_t fh;
   uint64_t offset;
@@ -546,4 +561,15 @@
   uint64_t len;
 };
 #define FUSE_REMOVEMAPPING_MAX_ENTRY (PAGE_SIZE / sizeof(struct fuse_removemapping_one))
+struct fuse_syncfs_in {
+  uint64_t padding;
+};
+struct fuse_secctx {
+  uint32_t size;
+  uint32_t padding;
+};
+struct fuse_secctx_header {
+  uint32_t size;
+  uint32_t nr_secctx;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/futex.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/futex.h
index 6176f38..c80b90c 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/futex.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/futex.h
@@ -33,6 +33,7 @@
 #define FUTEX_WAKE_BITSET 10
 #define FUTEX_WAIT_REQUEUE_PI 11
 #define FUTEX_CMP_REQUEUE_PI 12
+#define FUTEX_LOCK_PI2 13
 #define FUTEX_PRIVATE_FLAG 128
 #define FUTEX_CLOCK_REALTIME 256
 #define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
@@ -42,12 +43,21 @@
 #define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_OP_PRIVATE (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
 #define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
+#define FUTEX_LOCK_PI2_PRIVATE (FUTEX_LOCK_PI2 | FUTEX_PRIVATE_FLAG)
 #define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
+#define FUTEX_32 2
+#define FUTEX_WAITV_MAX 128
+struct futex_waitv {
+  __u64 val;
+  __u64 uaddr;
+  __u32 flags;
+  __u32 __reserved;
+};
 struct robust_list {
   struct robust_list __user * next;
 };
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/hyperv.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/hyperv.h
index daa8fc7..4790bbf 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/hyperv.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/hyperv.h
@@ -18,7 +18,7 @@
  ****************************************************************************/
 #ifndef _UAPI_HYPERV_H
 #define _UAPI_HYPERV_H
-#include <linux/uuid.h>
+#include <linux/types.h>
 #define UTIL_FW_MINOR 0
 #define UTIL_WS2K8_FW_MAJOR 1
 #define UTIL_WS2K8_FW_VERSION (UTIL_WS2K8_FW_MAJOR << 16 | UTIL_FW_MINOR)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/icmp.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/icmp.h
index 5892d12..8847a48 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/icmp.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/icmp.h
@@ -20,6 +20,8 @@
 #define _UAPI_LINUX_ICMP_H
 #include <linux/types.h>
 #include <asm/byteorder.h>
+#include <linux/if.h>
+#include <linux/in6.h>
 #define ICMP_ECHOREPLY 0
 #define ICMP_DEST_UNREACH 3
 #define ICMP_SOURCE_QUENCH 4
@@ -57,6 +59,20 @@
 #define ICMP_REDIR_HOSTTOS 3
 #define ICMP_EXC_TTL 0
 #define ICMP_EXC_FRAGTIME 1
+#define ICMP_EXT_ECHO 42
+#define ICMP_EXT_ECHOREPLY 43
+#define ICMP_EXT_CODE_MAL_QUERY 1
+#define ICMP_EXT_CODE_NO_IF 2
+#define ICMP_EXT_CODE_NO_TABLE_ENT 3
+#define ICMP_EXT_CODE_MULT_IFS 4
+#define ICMP_EXT_ECHOREPLY_ACTIVE (1 << 2)
+#define ICMP_EXT_ECHOREPLY_IPV4 (1 << 1)
+#define ICMP_EXT_ECHOREPLY_IPV6 1
+#define ICMP_EXT_ECHO_CTYPE_NAME 1
+#define ICMP_EXT_ECHO_CTYPE_INDEX 2
+#define ICMP_EXT_ECHO_CTYPE_ADDR 3
+#define ICMP_AFI_IP 1
+#define ICMP_AFI_IP6 2
 struct icmphdr {
   __u8 type;
   __u8 code;
@@ -94,4 +110,23 @@
   __u8 class_num;
   __u8 class_type;
 };
+struct icmp_ext_echo_ctype3_hdr {
+  __be16 afi;
+  __u8 addrlen;
+  __u8 reserved;
+};
+struct icmp_ext_echo_iio {
+  struct icmp_extobj_hdr extobj_hdr;
+  union {
+    char name[IFNAMSIZ];
+    __be32 ifindex;
+    struct {
+      struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
+      union {
+        __be32 ipv4_addr;
+        struct in6_addr ipv6_addr;
+      } ip_addr;
+    } addr;
+  } ident;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/icmpv6.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/icmpv6.h
index e23fbb4..5285698 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/icmpv6.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/icmpv6.h
@@ -107,6 +107,8 @@
 #define ICMPV6_UNK_NEXTHDR 1
 #define ICMPV6_UNK_OPTION 2
 #define ICMPV6_HDR_INCOMP 3
+#define ICMPV6_EXT_ECHO_REQUEST 160
+#define ICMPV6_EXT_ECHO_REPLY 161
 #define ICMPV6_FILTER 1
 #define ICMPV6_FILTER_BLOCK 1
 #define ICMPV6_FILTER_PASS 2
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/idxd.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/idxd.h
index 4f1282e..ad9ed48 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/idxd.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/idxd.h
@@ -19,6 +19,28 @@
 #ifndef _USR_IDXD_H_
 #define _USR_IDXD_H_
 #include <stdint.h>
+enum idxd_scmd_stat {
+  IDXD_SCMD_DEV_ENABLED = 0x80000010,
+  IDXD_SCMD_DEV_NOT_ENABLED = 0x80000020,
+  IDXD_SCMD_WQ_ENABLED = 0x80000021,
+  IDXD_SCMD_DEV_DMA_ERR = 0x80020000,
+  IDXD_SCMD_WQ_NO_GRP = 0x80030000,
+  IDXD_SCMD_WQ_NO_NAME = 0x80040000,
+  IDXD_SCMD_WQ_NO_SVM = 0x80050000,
+  IDXD_SCMD_WQ_NO_THRESH = 0x80060000,
+  IDXD_SCMD_WQ_PORTAL_ERR = 0x80070000,
+  IDXD_SCMD_WQ_RES_ALLOC_ERR = 0x80080000,
+  IDXD_SCMD_PERCPU_ERR = 0x80090000,
+  IDXD_SCMD_DMA_CHAN_ERR = 0x800a0000,
+  IDXD_SCMD_CDEV_ERR = 0x800b0000,
+  IDXD_SCMD_WQ_NO_SWQ_SUPPORT = 0x800c0000,
+  IDXD_SCMD_WQ_NONE_CONFIGURED = 0x800d0000,
+  IDXD_SCMD_WQ_NO_SIZE = 0x800e0000,
+  IDXD_SCMD_WQ_NO_PRIV = 0x800f0000,
+  IDXD_SCMD_WQ_IRQ_ERR = 0x80100000,
+};
+#define IDXD_SCMD_SOFTERR_MASK 0x80000000
+#define IDXD_SCMD_SOFTERR_SHIFT 16
 #define IDXD_OP_FLAG_FENCE 0x0001
 #define IDXD_OP_FLAG_BOF 0x0002
 #define IDXD_OP_FLAG_CRAV 0x0004
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_arp.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_arp.h
index eda888f..1cd23ef 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_arp.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_arp.h
@@ -44,6 +44,7 @@
 #define ARPHRD_X25 271
 #define ARPHRD_HWX25 272
 #define ARPHRD_CAN 280
+#define ARPHRD_MCTP 290
 #define ARPHRD_PPP 512
 #define ARPHRD_CISCO 513
 #define ARPHRD_HDLC ARPHRD_CISCO
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_bridge.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_bridge.h
index 570c09e..2054fb3 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_bridge.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_bridge.h
@@ -405,9 +405,11 @@
 };
 #define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1)
 #define BRIDGE_VLANDB_DUMPF_STATS (1 << 0)
+#define BRIDGE_VLANDB_DUMPF_GLOBAL (1 << 1)
 enum {
   BRIDGE_VLANDB_UNSPEC,
   BRIDGE_VLANDB_ENTRY,
+  BRIDGE_VLANDB_GLOBAL_OPTIONS,
   __BRIDGE_VLANDB_MAX,
 };
 #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1)
@@ -418,6 +420,7 @@
   BRIDGE_VLANDB_ENTRY_STATE,
   BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
   BRIDGE_VLANDB_ENTRY_STATS,
+  BRIDGE_VLANDB_ENTRY_MCAST_ROUTER,
   __BRIDGE_VLANDB_ENTRY_MAX,
 };
 #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
@@ -439,6 +442,28 @@
 };
 #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
 enum {
+  BRIDGE_VLANDB_GOPTS_UNSPEC,
+  BRIDGE_VLANDB_GOPTS_ID,
+  BRIDGE_VLANDB_GOPTS_RANGE,
+  BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING,
+  BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION,
+  BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION,
+  BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT,
+  BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT,
+  BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL,
+  BRIDGE_VLANDB_GOPTS_PAD,
+  BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER,
+  BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE,
+  __BRIDGE_VLANDB_GOPTS_MAX
+};
+#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1)
+enum {
   MDBA_UNSPEC,
   MDBA_MDB,
   MDBA_ROUTER,
@@ -496,6 +521,9 @@
   MDBA_ROUTER_PATTR_UNSPEC,
   MDBA_ROUTER_PATTR_TIMER,
   MDBA_ROUTER_PATTR_TYPE,
+  MDBA_ROUTER_PATTR_INET_TIMER,
+  MDBA_ROUTER_PATTR_INET6_TIMER,
+  MDBA_ROUTER_PATTR_VID,
   __MDBA_ROUTER_PATTR_MAX
 };
 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
@@ -570,10 +598,23 @@
 };
 enum br_boolopt_id {
   BR_BOOLOPT_NO_LL_LEARN,
+  BR_BOOLOPT_MCAST_VLAN_SNOOPING,
   BR_BOOLOPT_MAX
 };
 struct br_boolopt_multi {
   __u32 optval;
   __u32 optmask;
 };
+enum {
+  BRIDGE_QUERIER_UNSPEC,
+  BRIDGE_QUERIER_IP_ADDRESS,
+  BRIDGE_QUERIER_IP_PORT,
+  BRIDGE_QUERIER_IP_OTHER_TIMER,
+  BRIDGE_QUERIER_PAD,
+  BRIDGE_QUERIER_IPV6_ADDRESS,
+  BRIDGE_QUERIER_IPV6_PORT,
+  BRIDGE_QUERIER_IPV6_OTHER_TIMER,
+  __BRIDGE_QUERIER_MAX
+};
+#define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_ether.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_ether.h
index 8405653..1f7f8f2 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_ether.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_ether.h
@@ -67,6 +67,7 @@
 #define ETH_P_LINK_CTL 0x886c
 #define ETH_P_ATMFATE 0x8884
 #define ETH_P_PAE 0x888E
+#define ETH_P_REALTEK 0x8899
 #define ETH_P_AOE 0x88A2
 #define ETH_P_8021AD 0x88A8
 #define ETH_P_802_EX1 0x88B5
@@ -123,6 +124,7 @@
 #define ETH_P_CAIF 0x00F7
 #define ETH_P_XDSA 0x00F8
 #define ETH_P_MAP 0x00F9
+#define ETH_P_MCTP 0x00FA
 #ifndef __UAPI_DEF_ETHHDR
 #define __UAPI_DEF_ETHHDR 1
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_link.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_link.h
index 2a5ba5a..7e413ae 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_link.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/if_link.h
@@ -148,6 +148,9 @@
   IFLA_ALT_IFNAME,
   IFLA_PERM_ADDRESS,
   IFLA_PROTO_DOWN_REASON,
+  IFLA_PARENT_DEV_NAME,
+  IFLA_PARENT_DEV_BUS_NAME,
+  IFLA_GRO_MAX_SIZE,
   __IFLA_MAX
 };
 #define IFLA_MAX (__IFLA_MAX - 1)
@@ -176,6 +179,7 @@
   IFLA_INET6_ICMP6STATS,
   IFLA_INET6_TOKEN,
   IFLA_INET6_ADDR_GEN_MODE,
+  IFLA_INET6_RA_MTU,
   __IFLA_INET6_MAX
 };
 #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
@@ -233,6 +237,7 @@
   IFLA_BR_MCAST_MLD_VERSION,
   IFLA_BR_VLAN_STATS_PER_PORT,
   IFLA_BR_MULTI_BOOLOPT,
+  IFLA_BR_MCAST_QUERIER_STATE,
   __IFLA_BR_MAX,
 };
 #define IFLA_BR_MAX (__IFLA_BR_MAX - 1)
@@ -354,6 +359,7 @@
   MACVLAN_MACADDR_SET,
 };
 #define MACVLAN_FLAG_NOPROMISC 1
+#define MACVLAN_FLAG_NODST 2
 enum {
   IFLA_VRF_UNSPEC,
   IFLA_VRF_TABLE,
@@ -550,6 +556,8 @@
   IFLA_BOND_AD_ACTOR_SYSTEM,
   IFLA_BOND_TLB_DYNAMIC_LB,
   IFLA_BOND_PEER_NOTIF_DELAY,
+  IFLA_BOND_AD_LACP_ACTIVE,
+  IFLA_BOND_MISSED_MAX,
   __IFLA_BOND_MAX,
 };
 #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
@@ -835,6 +843,8 @@
 #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
 #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
 #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
+#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4)
+#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5)
 enum {
   IFLA_RMNET_UNSPEC,
   IFLA_RMNET_MUX_ID,
@@ -846,4 +856,10 @@
   __u32 flags;
   __u32 mask;
 };
+enum {
+  IFLA_MCTP_UNSPEC,
+  IFLA_MCTP_NET,
+  __IFLA_MCTP_MAX,
+};
+#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
similarity index 80%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
index bb45c3d..ba2f5e3 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
@@ -16,14 +16,7 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#ifndef _UAPI_IIO_BUFFER_H_
+#define _UAPI_IIO_BUFFER_H_
+#define IIO_BUFFER_GET_FD_IOCTL _IOWR('i', 0x91, int)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/in.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/in.h
index e5437ca..d4060e7 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/in.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/in.h
@@ -155,21 +155,32 @@
 #define IP_MSFILTER_SIZE(numsrc) (sizeof(struct ip_msfilter) - sizeof(__u32) + (numsrc) * sizeof(__u32))
 struct group_req {
   __u32 gr_interface;
-  struct sockaddr_storage gr_group;
+  struct __kernel_sockaddr_storage gr_group;
 };
 struct group_source_req {
   __u32 gsr_interface;
-  struct sockaddr_storage gsr_group;
-  struct sockaddr_storage gsr_source;
+  struct __kernel_sockaddr_storage gsr_group;
+  struct __kernel_sockaddr_storage gsr_source;
 };
 struct group_filter {
-  __u32 gf_interface;
-  struct sockaddr_storage gf_group;
-  __u32 gf_fmode;
-  __u32 gf_numsrc;
-  struct sockaddr_storage gf_slist[1];
+  union {
+    struct {
+      __u32 gf_interface_aux;
+      struct __kernel_sockaddr_storage gf_group_aux;
+      __u32 gf_fmode_aux;
+      __u32 gf_numsrc_aux;
+      struct __kernel_sockaddr_storage gf_slist[1];
+    };
+    struct {
+      __u32 gf_interface;
+      struct __kernel_sockaddr_storage gf_group;
+      __u32 gf_fmode;
+      __u32 gf_numsrc;
+      struct __kernel_sockaddr_storage gf_slist_flex[];
+    };
+  };
 };
-#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) + (numsrc) * sizeof(struct sockaddr_storage))
+#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) + (numsrc) * sizeof(struct __kernel_sockaddr_storage))
 #endif
 #if __UAPI_DEF_IN_PKTINFO
 struct in_pktinfo {
@@ -214,6 +225,7 @@
 #define INADDR_ANY ((unsigned long int) 0x00000000)
 #define INADDR_BROADCAST ((unsigned long int) 0xffffffff)
 #define INADDR_NONE ((unsigned long int) 0xffffffff)
+#define INADDR_DUMMY ((unsigned long int) 0xc0000008)
 #define IN_LOOPBACKNET 127
 #define INADDR_LOOPBACK 0x7f000001
 #define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/in6.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/in6.h
index 8dd3238..49efe3c 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/in6.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/in6.h
@@ -105,6 +105,7 @@
 #define IPV6_TLV_PADN 1
 #define IPV6_TLV_ROUTERALERT 5
 #define IPV6_TLV_CALIPSO 7
+#define IPV6_TLV_IOAM 49
 #define IPV6_TLV_JUMBO 194
 #define IPV6_TLV_HAO 201
 #if __UAPI_DEF_IPV6_OPTIONS
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/incrementalfs.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
index 622a998..0804cc2 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
@@ -171,6 +171,8 @@
   __u64 time_us_out;
   __u32 page_out;
   __u32 errno_out;
-  __u64 reserved;
+  __u32 uid_out;
+  __u32 reserved1;
+  __u64 reserved2;
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/input-event-codes.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
index 732e9b7..34cd23c 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
@@ -248,7 +248,8 @@
 #define KEY_PAUSECD 201
 #define KEY_PROG3 202
 #define KEY_PROG4 203
-#define KEY_DASHBOARD 204
+#define KEY_ALL_APPLICATIONS 204
+#define KEY_DASHBOARD KEY_ALL_APPLICATIONS
 #define KEY_SUSPEND 205
 #define KEY_CLOSE 206
 #define KEY_PLAY 207
@@ -548,6 +549,8 @@
 #define KEY_VOICECOMMAND 0x246
 #define KEY_ASSISTANT 0x247
 #define KEY_KBD_LAYOUT_NEXT 0x248
+#define KEY_EMOJI_PICKER 0x249
+#define KEY_DICTATE 0x24a
 #define KEY_BRIGHTNESS_MIN 0x250
 #define KEY_BRIGHTNESS_MAX 0x251
 #define KEY_KBDINPUTASSIST_PREV 0x260
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/io_uring.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/io_uring.h
index fa59d39..96944f8 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/io_uring.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/io_uring.h
@@ -50,19 +50,19 @@
     __u32 splice_flags;
     __u32 rename_flags;
     __u32 unlink_flags;
+    __u32 hardlink_flags;
   };
   __u64 user_data;
   union {
-    struct {
-      union {
-        __u16 buf_index;
-        __u16 buf_group;
-      } __attribute__((packed));
-      __u16 personality;
-      __s32 splice_fd_in;
-    };
-    __u64 __pad2[3];
+    __u16 buf_index;
+    __u16 buf_group;
+  } __attribute__((packed));
+  __u16 personality;
+  union {
+    __s32 splice_fd_in;
+    __u32 file_index;
   };
+  __u64 __pad2[2];
 };
 enum {
   IOSQE_FIXED_FILE_BIT,
@@ -71,6 +71,7 @@
   IOSQE_IO_HARDLINK_BIT,
   IOSQE_ASYNC_BIT,
   IOSQE_BUFFER_SELECT_BIT,
+  IOSQE_CQE_SKIP_SUCCESS_BIT,
 };
 #define IOSQE_FIXED_FILE (1U << IOSQE_FIXED_FILE_BIT)
 #define IOSQE_IO_DRAIN (1U << IOSQE_IO_DRAIN_BIT)
@@ -78,6 +79,7 @@
 #define IOSQE_IO_HARDLINK (1U << IOSQE_IO_HARDLINK_BIT)
 #define IOSQE_ASYNC (1U << IOSQE_ASYNC_BIT)
 #define IOSQE_BUFFER_SELECT (1U << IOSQE_BUFFER_SELECT_BIT)
+#define IOSQE_CQE_SKIP_SUCCESS (1U << IOSQE_CQE_SKIP_SUCCESS_BIT)
 #define IORING_SETUP_IOPOLL (1U << 0)
 #define IORING_SETUP_SQPOLL (1U << 1)
 #define IORING_SETUP_SQ_AFF (1U << 2)
@@ -123,18 +125,31 @@
   IORING_OP_SHUTDOWN,
   IORING_OP_RENAMEAT,
   IORING_OP_UNLINKAT,
+  IORING_OP_MKDIRAT,
+  IORING_OP_SYMLINKAT,
+  IORING_OP_LINKAT,
   IORING_OP_LAST,
 };
 #define IORING_FSYNC_DATASYNC (1U << 0)
 #define IORING_TIMEOUT_ABS (1U << 0)
 #define IORING_TIMEOUT_UPDATE (1U << 1)
+#define IORING_TIMEOUT_BOOTTIME (1U << 2)
+#define IORING_TIMEOUT_REALTIME (1U << 3)
+#define IORING_LINK_TIMEOUT_UPDATE (1U << 4)
+#define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)
+#define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
+#define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
 #define SPLICE_F_FD_IN_FIXED (1U << 31)
+#define IORING_POLL_ADD_MULTI (1U << 0)
+#define IORING_POLL_UPDATE_EVENTS (1U << 1)
+#define IORING_POLL_UPDATE_USER_DATA (1U << 2)
 struct io_uring_cqe {
   __u64 user_data;
   __s32 res;
   __u32 flags;
 };
 #define IORING_CQE_F_BUFFER (1U << 0)
+#define IORING_CQE_F_MORE (1U << 1)
 enum {
   IORING_CQE_BUFFER_SHIFT = 16,
 };
@@ -192,6 +207,8 @@
 #define IORING_FEAT_SQPOLL_NONFIXED (1U << 7)
 #define IORING_FEAT_EXT_ARG (1U << 8)
 #define IORING_FEAT_NATIVE_WORKERS (1U << 9)
+#define IORING_FEAT_RSRC_TAGS (1U << 10)
+#define IORING_FEAT_CQE_SKIP (1U << 11)
 enum {
   IORING_REGISTER_BUFFERS = 0,
   IORING_UNREGISTER_BUFFERS = 1,
@@ -206,18 +223,44 @@
   IORING_UNREGISTER_PERSONALITY = 10,
   IORING_REGISTER_RESTRICTIONS = 11,
   IORING_REGISTER_ENABLE_RINGS = 12,
+  IORING_REGISTER_FILES2 = 13,
+  IORING_REGISTER_FILES_UPDATE2 = 14,
+  IORING_REGISTER_BUFFERS2 = 15,
+  IORING_REGISTER_BUFFERS_UPDATE = 16,
+  IORING_REGISTER_IOWQ_AFF = 17,
+  IORING_UNREGISTER_IOWQ_AFF = 18,
+  IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
   IORING_REGISTER_LAST
 };
+enum {
+  IO_WQ_BOUND,
+  IO_WQ_UNBOUND,
+};
 struct io_uring_files_update {
   __u32 offset;
   __u32 resv;
   __aligned_u64 fds;
 };
+struct io_uring_rsrc_register {
+  __u32 nr;
+  __u32 resv;
+  __u64 resv2;
+  __aligned_u64 data;
+  __aligned_u64 tags;
+};
 struct io_uring_rsrc_update {
   __u32 offset;
   __u32 resv;
   __aligned_u64 data;
 };
+struct io_uring_rsrc_update2 {
+  __u32 offset;
+  __u32 resv;
+  __aligned_u64 data;
+  __aligned_u64 tags;
+  __u32 nr;
+  __u32 resv2;
+};
 #define IORING_REGISTER_FILES_SKIP (- 2)
 #define IO_URING_OP_SUPPORTED (1U << 0)
 struct io_uring_probe_op {
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioam6.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioam6.h
new file mode 100644
index 0000000..e32c8e9
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioam6.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOAM6_H
+#define _UAPI_LINUX_IOAM6_H
+#include <asm/byteorder.h>
+#include <linux/types.h>
+#define IOAM6_U16_UNAVAILABLE U16_MAX
+#define IOAM6_U32_UNAVAILABLE U32_MAX
+#define IOAM6_U64_UNAVAILABLE U64_MAX
+#define IOAM6_DEFAULT_ID (IOAM6_U32_UNAVAILABLE >> 8)
+#define IOAM6_DEFAULT_ID_WIDE (IOAM6_U64_UNAVAILABLE >> 8)
+#define IOAM6_DEFAULT_IF_ID IOAM6_U16_UNAVAILABLE
+#define IOAM6_DEFAULT_IF_ID_WIDE IOAM6_U32_UNAVAILABLE
+struct ioam6_hdr {
+  __u8 opt_type;
+  __u8 opt_len;
+  __u8 : 8;
+#define IOAM6_TYPE_PREALLOC 0
+  __u8 type;
+} __attribute__((packed));
+struct ioam6_trace_hdr {
+  __be16 namespace_id;
+#ifdef __LITTLE_ENDIAN_BITFIELD
+  __u8 : 1, : 1, overflow : 1, nodelen : 5;
+  __u8 remlen : 7, : 1;
+  union {
+    __be32 type_be32;
+    struct {
+      __u32 bit7 : 1, bit6 : 1, bit5 : 1, bit4 : 1, bit3 : 1, bit2 : 1, bit1 : 1, bit0 : 1, bit15 : 1, bit14 : 1, bit13 : 1, bit12 : 1, bit11 : 1, bit10 : 1, bit9 : 1, bit8 : 1, bit23 : 1, bit22 : 1, bit21 : 1, bit20 : 1, bit19 : 1, bit18 : 1, bit17 : 1, bit16 : 1, : 8;
+    } type;
+  };
+#elif defined(__BIG_ENDIAN_BITFIELD)
+  __u8 nodelen : 5, overflow : 1, : 1, : 1;
+  __u8 : 1, remlen : 7;
+  union {
+    __be32 type_be32;
+    struct {
+      __u32 bit0 : 1, bit1 : 1, bit2 : 1, bit3 : 1, bit4 : 1, bit5 : 1, bit6 : 1, bit7 : 1, bit8 : 1, bit9 : 1, bit10 : 1, bit11 : 1, bit12 : 1, bit13 : 1, bit14 : 1, bit15 : 1, bit16 : 1, bit17 : 1, bit18 : 1, bit19 : 1, bit20 : 1, bit21 : 1, bit22 : 1, bit23 : 1, : 8;
+    } type;
+  };
+#else
+#error "Please fix <asm/byteorder.h>"
+#endif
+#define IOAM6_TRACE_DATA_SIZE_MAX 244
+  __u8 data[0];
+} __attribute__((packed));
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h
new file mode 100644
index 0000000..1d00c47
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h
@@ -0,0 +1,48 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOAM6_GENL_H
+#define _UAPI_LINUX_IOAM6_GENL_H
+#define IOAM6_GENL_NAME "IOAM6"
+#define IOAM6_GENL_VERSION 0x1
+enum {
+  IOAM6_ATTR_UNSPEC,
+  IOAM6_ATTR_NS_ID,
+  IOAM6_ATTR_NS_DATA,
+  IOAM6_ATTR_NS_DATA_WIDE,
+#define IOAM6_MAX_SCHEMA_DATA_LEN (255 * 4)
+  IOAM6_ATTR_SC_ID,
+  IOAM6_ATTR_SC_DATA,
+  IOAM6_ATTR_SC_NONE,
+  IOAM6_ATTR_PAD,
+  __IOAM6_ATTR_MAX,
+};
+#define IOAM6_ATTR_MAX (__IOAM6_ATTR_MAX - 1)
+enum {
+  IOAM6_CMD_UNSPEC,
+  IOAM6_CMD_ADD_NAMESPACE,
+  IOAM6_CMD_DEL_NAMESPACE,
+  IOAM6_CMD_DUMP_NAMESPACES,
+  IOAM6_CMD_ADD_SCHEMA,
+  IOAM6_CMD_DEL_SCHEMA,
+  IOAM6_CMD_DUMP_SCHEMAS,
+  IOAM6_CMD_NS_SET_SCHEMA,
+  __IOAM6_CMD_MAX,
+};
+#define IOAM6_CMD_MAX (__IOAM6_CMD_MAX - 1)
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
similarity index 64%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
index bb45c3d..7426225 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
@@ -16,14 +16,23 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_LINUX_IOAM6_IPTUNNEL_H
+#define _UAPI_LINUX_IOAM6_IPTUNNEL_H
+enum {
+  __IOAM6_IPTUNNEL_MODE_MIN,
+  IOAM6_IPTUNNEL_MODE_INLINE,
+  IOAM6_IPTUNNEL_MODE_ENCAP,
+  IOAM6_IPTUNNEL_MODE_AUTO,
+  __IOAM6_IPTUNNEL_MODE_MAX,
 };
+#define IOAM6_IPTUNNEL_MODE_MIN (__IOAM6_IPTUNNEL_MODE_MIN + 1)
+#define IOAM6_IPTUNNEL_MODE_MAX (__IOAM6_IPTUNNEL_MODE_MAX - 1)
+enum {
+  IOAM6_IPTUNNEL_UNSPEC,
+  IOAM6_IPTUNNEL_MODE,
+  IOAM6_IPTUNNEL_DST,
+  IOAM6_IPTUNNEL_TRACE,
+  __IOAM6_IPTUNNEL_MAX,
+};
+#define IOAM6_IPTUNNEL_MAX (__IOAM6_IPTUNNEL_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/iommu.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/iommu.h
index 1802fb4..0a0af92 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/iommu.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/iommu.h
@@ -132,7 +132,8 @@
 #define IOMMU_SVA_VTD_GPASID_PWT (1 << 3)
 #define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4)
 #define IOMMU_SVA_VTD_GPASID_CD (1 << 5)
-#define IOMMU_SVA_VTD_GPASID_LAST (1 << 6)
+#define IOMMU_SVA_VTD_GPASID_WPE (1 << 6)
+#define IOMMU_SVA_VTD_GPASID_LAST (1 << 7)
   __u64 flags;
   __u32 pat;
   __u32 emt;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioprio.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioprio.h
new file mode 100644
index 0000000..7a90d87
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ioprio.h
@@ -0,0 +1,42 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOPRIO_H
+#define _UAPI_LINUX_IOPRIO_H
+#define IOPRIO_CLASS_SHIFT 13
+#define IOPRIO_CLASS_MASK 0x07
+#define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1)
+#define IOPRIO_PRIO_CLASS(ioprio) (((ioprio) >> IOPRIO_CLASS_SHIFT) & IOPRIO_CLASS_MASK)
+#define IOPRIO_PRIO_DATA(ioprio) ((ioprio) & IOPRIO_PRIO_MASK)
+#define IOPRIO_PRIO_VALUE(class,data) ((((class) & IOPRIO_CLASS_MASK) << IOPRIO_CLASS_SHIFT) | ((data) & IOPRIO_PRIO_MASK))
+enum {
+  IOPRIO_CLASS_NONE,
+  IOPRIO_CLASS_RT,
+  IOPRIO_CLASS_BE,
+  IOPRIO_CLASS_IDLE,
+};
+#define IOPRIO_NR_LEVELS 8
+#define IOPRIO_BE_NR IOPRIO_NR_LEVELS
+enum {
+  IOPRIO_WHO_PROCESS = 1,
+  IOPRIO_WHO_PGRP,
+  IOPRIO_WHO_USER,
+};
+#define IOPRIO_NORM 4
+#define IOPRIO_BE_NORM IOPRIO_NORM
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ip.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ip.h
index 564fd8d..9571cac 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ip.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ip.h
@@ -146,6 +146,7 @@
   IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
   IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
   IPV4_DEVCONF_BC_FORWARDING,
+  IPV4_DEVCONF_ARP_EVICT_NOCARRIER,
   __IPV4_DEVCONF_MAX
 };
 #define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipmi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipmi.h
index cf9928f..dd88f2f 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipmi.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipmi.h
@@ -40,6 +40,14 @@
   unsigned char slave_addr;
   unsigned char lun;
 };
+#define IPMI_IPMB_DIRECT_ADDR_TYPE 0x81
+struct ipmi_ipmb_direct_addr {
+  int addr_type;
+  short channel;
+  unsigned char slave_addr;
+  unsigned char rs_lun;
+  unsigned char rq_lun;
+};
 #define IPMI_LAN_ADDR_TYPE 0x04
 struct ipmi_lan_addr {
   int addr_type;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipv6.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipv6.h
index 438cacc..b3db9ce 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipv6.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipv6.h
@@ -144,6 +144,10 @@
   DEVCONF_NDISC_TCLASS,
   DEVCONF_RPL_SEG_ENABLED,
   DEVCONF_RA_DEFRTR_METRIC,
+  DEVCONF_IOAM6_ENABLED,
+  DEVCONF_IOAM6_ID,
+  DEVCONF_IOAM6_ID_WIDE,
+  DEVCONF_NDISC_EVICT_NOCARRIER,
   DEVCONF_MAX
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipx.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipx.h
deleted file mode 100644
index d8a5424..0000000
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ipx.h
+++ /dev/null
@@ -1,90 +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 _IPX_H_
-#define _IPX_H_
-#include <linux/libc-compat.h>
-#include <linux/types.h>
-#include <linux/sockios.h>
-#include <linux/socket.h>
-#define IPX_NODE_LEN 6
-#define IPX_MTU 576
-#if __UAPI_DEF_SOCKADDR_IPX
-struct sockaddr_ipx {
-  __kernel_sa_family_t sipx_family;
-  __be16 sipx_port;
-  __be32 sipx_network;
-  unsigned char sipx_node[IPX_NODE_LEN];
-  __u8 sipx_type;
-  unsigned char sipx_zero;
-};
-#endif
-#define sipx_special sipx_port
-#define sipx_action sipx_zero
-#define IPX_DLTITF 0
-#define IPX_CRTITF 1
-#if __UAPI_DEF_IPX_ROUTE_DEFINITION
-struct ipx_route_definition {
-  __be32 ipx_network;
-  __be32 ipx_router_network;
-  unsigned char ipx_router_node[IPX_NODE_LEN];
-};
-#endif
-#if __UAPI_DEF_IPX_INTERFACE_DEFINITION
-struct ipx_interface_definition {
-  __be32 ipx_network;
-  unsigned char ipx_device[16];
-  unsigned char ipx_dlink_type;
-#define IPX_FRAME_NONE 0
-#define IPX_FRAME_SNAP 1
-#define IPX_FRAME_8022 2
-#define IPX_FRAME_ETHERII 3
-#define IPX_FRAME_8023 4
-#define IPX_FRAME_TR_8022 5
-  unsigned char ipx_special;
-#define IPX_SPECIAL_NONE 0
-#define IPX_PRIMARY 1
-#define IPX_INTERNAL 2
-  unsigned char ipx_node[IPX_NODE_LEN];
-};
-#endif
-#if __UAPI_DEF_IPX_CONFIG_DATA
-struct ipx_config_data {
-  unsigned char ipxcfg_auto_select_primary;
-  unsigned char ipxcfg_auto_create_interfaces;
-};
-#endif
-#if __UAPI_DEF_IPX_ROUTE_DEF
-struct ipx_route_def {
-  __be32 ipx_network;
-  __be32 ipx_router_network;
-#define IPX_ROUTE_NO_ROUTER 0
-  unsigned char ipx_router_node[IPX_NODE_LEN];
-  unsigned char ipx_device[16];
-  unsigned short ipx_flags;
-#define IPX_RT_SNAP 8
-#define IPX_RT_8022 4
-#define IPX_RT_BLUEBOOK 2
-#define IPX_RT_ROUTED 1
-};
-#endif
-#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE)
-#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1)
-#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2)
-#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3)
-#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kexec.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kexec.h
index b2dc88f..2e3bd0c 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kexec.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kexec.h
@@ -39,6 +39,7 @@
 #define KEXEC_ARCH_MIPS_LE (10 << 16)
 #define KEXEC_ARCH_MIPS (8 << 16)
 #define KEXEC_ARCH_AARCH64 (183 << 16)
+#define KEXEC_ARCH_RISCV (243 << 16)
 #define KEXEC_SEGMENT_MAX 16
 struct kexec_segment {
   const void * buf;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
index 73ef5de..c52ac64 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
@@ -21,7 +21,7 @@
 #include <drm/drm.h>
 #include <linux/ioctl.h>
 #define KFD_IOCTL_MAJOR_VERSION 1
-#define KFD_IOCTL_MINOR_VERSION 3
+#define KFD_IOCTL_MINOR_VERSION 6
 struct kfd_ioctl_get_version_args {
   __u32 major_version;
   __u32 minor_version;
@@ -244,6 +244,7 @@
 #define KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE (1 << 28)
 #define KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM (1 << 27)
 #define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT (1 << 26)
+#define KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED (1 << 25)
 struct kfd_ioctl_alloc_memory_of_gpu_args {
   __u64 va_addr;
   __u64 size;
@@ -303,6 +304,44 @@
   KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL = 0,
   KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL = 4,
 };
+#define KFD_IOCTL_SVM_FLAG_HOST_ACCESS 0x00000001
+#define KFD_IOCTL_SVM_FLAG_COHERENT 0x00000002
+#define KFD_IOCTL_SVM_FLAG_HIVE_LOCAL 0x00000004
+#define KFD_IOCTL_SVM_FLAG_GPU_RO 0x00000008
+#define KFD_IOCTL_SVM_FLAG_GPU_EXEC 0x00000010
+#define KFD_IOCTL_SVM_FLAG_GPU_READ_MOSTLY 0x00000020
+enum kfd_ioctl_svm_op {
+  KFD_IOCTL_SVM_OP_SET_ATTR,
+  KFD_IOCTL_SVM_OP_GET_ATTR
+};
+enum kfd_ioctl_svm_location {
+  KFD_IOCTL_SVM_LOCATION_SYSMEM = 0,
+  KFD_IOCTL_SVM_LOCATION_UNDEFINED = 0xffffffff
+};
+enum kfd_ioctl_svm_attr_type {
+  KFD_IOCTL_SVM_ATTR_PREFERRED_LOC,
+  KFD_IOCTL_SVM_ATTR_PREFETCH_LOC,
+  KFD_IOCTL_SVM_ATTR_ACCESS,
+  KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE,
+  KFD_IOCTL_SVM_ATTR_NO_ACCESS,
+  KFD_IOCTL_SVM_ATTR_SET_FLAGS,
+  KFD_IOCTL_SVM_ATTR_CLR_FLAGS,
+  KFD_IOCTL_SVM_ATTR_GRANULARITY
+};
+struct kfd_ioctl_svm_attribute {
+  __u32 type;
+  __u32 value;
+};
+struct kfd_ioctl_svm_args {
+  __u64 start_addr;
+  __u64 size;
+  __u32 op;
+  __u32 nattr;
+  struct kfd_ioctl_svm_attribute attrs[0];
+};
+struct kfd_ioctl_set_xnack_mode_args {
+  __s32 xnack_enabled;
+};
 #define AMDKFD_IOCTL_BASE 'K'
 #define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
 #define AMDKFD_IOR(nr,type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
@@ -339,6 +378,8 @@
 #define AMDKFD_IOC_IMPORT_DMABUF AMDKFD_IOWR(0x1D, struct kfd_ioctl_import_dmabuf_args)
 #define AMDKFD_IOC_ALLOC_QUEUE_GWS AMDKFD_IOWR(0x1E, struct kfd_ioctl_alloc_queue_gws_args)
 #define AMDKFD_IOC_SMI_EVENTS AMDKFD_IOWR(0x1F, struct kfd_ioctl_smi_events_args)
+#define AMDKFD_IOC_SVM AMDKFD_IOWR(0x20, struct kfd_ioctl_svm_args)
+#define AMDKFD_IOC_SET_XNACK_MODE AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)
 #define AMDKFD_COMMAND_START 0x01
-#define AMDKFD_COMMAND_END 0x20
+#define AMDKFD_COMMAND_END 0x22
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h
new file mode 100644
index 0000000..9604b03
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 KFD_SYSFS_H_INCLUDED
+#define KFD_SYSFS_H_INCLUDED
+#define HSA_CAP_HOT_PLUGGABLE 0x00000001
+#define HSA_CAP_ATS_PRESENT 0x00000002
+#define HSA_CAP_SHARED_WITH_GRAPHICS 0x00000004
+#define HSA_CAP_QUEUE_SIZE_POW2 0x00000008
+#define HSA_CAP_QUEUE_SIZE_32BIT 0x00000010
+#define HSA_CAP_QUEUE_IDLE_EVENT 0x00000020
+#define HSA_CAP_VA_LIMIT 0x00000040
+#define HSA_CAP_WATCH_POINTS_SUPPORTED 0x00000080
+#define HSA_CAP_WATCH_POINTS_TOTALBITS_MASK 0x00000f00
+#define HSA_CAP_WATCH_POINTS_TOTALBITS_SHIFT 8
+#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_MASK 0x00003000
+#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_SHIFT 12
+#define HSA_CAP_DOORBELL_TYPE_PRE_1_0 0x0
+#define HSA_CAP_DOORBELL_TYPE_1_0 0x1
+#define HSA_CAP_DOORBELL_TYPE_2_0 0x2
+#define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000
+#define HSA_CAP_RESERVED_WAS_SRAM_EDCSUPPORTED 0x00080000
+#define HSA_CAP_MEM_EDCSUPPORTED 0x00100000
+#define HSA_CAP_RASEVENTNOTIFY 0x00200000
+#define HSA_CAP_ASIC_REVISION_MASK 0x03c00000
+#define HSA_CAP_ASIC_REVISION_SHIFT 22
+#define HSA_CAP_SRAM_EDCSUPPORTED 0x04000000
+#define HSA_CAP_SVMAPI_SUPPORTED 0x08000000
+#define HSA_CAP_FLAGS_COHERENTHOSTACCESS 0x10000000
+#define HSA_CAP_RESERVED 0xe00f8000
+#define HSA_MEM_HEAP_TYPE_SYSTEM 0
+#define HSA_MEM_HEAP_TYPE_FB_PUBLIC 1
+#define HSA_MEM_HEAP_TYPE_FB_PRIVATE 2
+#define HSA_MEM_HEAP_TYPE_GPU_GDS 3
+#define HSA_MEM_HEAP_TYPE_GPU_LDS 4
+#define HSA_MEM_HEAP_TYPE_GPU_SCRATCH 5
+#define HSA_MEM_FLAGS_HOT_PLUGGABLE 0x00000001
+#define HSA_MEM_FLAGS_NON_VOLATILE 0x00000002
+#define HSA_MEM_FLAGS_RESERVED 0xfffffffc
+#define HSA_CACHE_TYPE_DATA 0x00000001
+#define HSA_CACHE_TYPE_INSTRUCTION 0x00000002
+#define HSA_CACHE_TYPE_CPU 0x00000004
+#define HSA_CACHE_TYPE_HSACU 0x00000008
+#define HSA_CACHE_TYPE_RESERVED 0xfffffff0
+#define HSA_IOLINK_TYPE_UNDEFINED 0
+#define HSA_IOLINK_TYPE_HYPERTRANSPORT 1
+#define HSA_IOLINK_TYPE_PCIEXPRESS 2
+#define HSA_IOLINK_TYPE_AMBA 3
+#define HSA_IOLINK_TYPE_MIPI 4
+#define HSA_IOLINK_TYPE_QPI_1_1 5
+#define HSA_IOLINK_TYPE_RESERVED1 6
+#define HSA_IOLINK_TYPE_RESERVED2 7
+#define HSA_IOLINK_TYPE_RAPID_IO 8
+#define HSA_IOLINK_TYPE_INFINIBAND 9
+#define HSA_IOLINK_TYPE_RESERVED3 10
+#define HSA_IOLINK_TYPE_XGMI 11
+#define HSA_IOLINK_TYPE_XGOP 12
+#define HSA_IOLINK_TYPE_GZ 13
+#define HSA_IOLINK_TYPE_ETHERNET_RDMA 14
+#define HSA_IOLINK_TYPE_RDMA_OTHER 15
+#define HSA_IOLINK_TYPE_OTHER 16
+#define HSA_IOLINK_FLAGS_ENABLED (1 << 0)
+#define HSA_IOLINK_FLAGS_NON_COHERENT (1 << 1)
+#define HSA_IOLINK_FLAGS_NO_ATOMICS_32_BIT (1 << 2)
+#define HSA_IOLINK_FLAGS_NO_ATOMICS_64_BIT (1 << 3)
+#define HSA_IOLINK_FLAGS_NO_PEER_TO_PEER_DMA (1 << 4)
+#define HSA_IOLINK_FLAGS_RESERVED 0xffffffe0
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kvm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kvm.h
index 81fa779..1cf7182 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kvm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kvm.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef __LINUX_KVM_H
 #define __LINUX_KVM_H
+#include <linux/const.h>
 #include <linux/types.h>
 #include <linux/compiler.h>
 #include <linux/ioctl.h>
@@ -214,10 +215,12 @@
 #define KVM_EXIT_AP_RESET_HOLD 32
 #define KVM_EXIT_X86_BUS_LOCK 33
 #define KVM_EXIT_XEN 34
+#define KVM_EXIT_RISCV_SBI 35
 #define KVM_INTERNAL_ERROR_EMULATION 1
 #define KVM_INTERNAL_ERROR_SIMUL_EX 2
 #define KVM_INTERNAL_ERROR_DELIVERY_EV 3
 #define KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON 4
+#define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0)
 struct kvm_run {
   __u8 request_interrupt_window;
   __u8 immediate_exit;
@@ -300,6 +303,17 @@
       __u64 data[16];
     } internal;
     struct {
+      __u32 suberror;
+      __u32 ndata;
+      __u64 flags;
+      union {
+        struct {
+          __u8 insn_size;
+          __u8 insn_bytes[15];
+        };
+      };
+    } emulation_failure;
+    struct {
       __u64 gprs[32];
     } osi;
     struct {
@@ -352,6 +366,12 @@
       __u64 data;
     } msr;
     struct kvm_xen_exit xen;
+    struct {
+      unsigned long extension_id;
+      unsigned long function_id;
+      unsigned long args[6];
+      unsigned long ret[2];
+    } riscv_sbi;
     char padding[256];
   };
 #define SYNC_REGS_SIZE_BYTES 2048
@@ -854,6 +874,22 @@
 #define KVM_CAP_DIRTY_LOG_RING 192
 #define KVM_CAP_X86_BUS_LOCK_EXIT 193
 #define KVM_CAP_PPC_DAWR1 194
+#define KVM_CAP_SET_GUEST_DEBUG2 195
+#define KVM_CAP_SGX_ATTRIBUTE 196
+#define KVM_CAP_VM_COPY_ENC_CONTEXT_FROM 197
+#define KVM_CAP_PTP_KVM 198
+#define KVM_CAP_HYPERV_ENFORCE_CPUID 199
+#define KVM_CAP_SREGS2 200
+#define KVM_CAP_EXIT_HYPERCALL 201
+#define KVM_CAP_PPC_RPT_INVALIDATE 202
+#define KVM_CAP_BINARY_STATS_FD 203
+#define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
+#define KVM_CAP_ARM_MTE 205
+#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206
+#define KVM_CAP_VM_GPA_BITS 207
+#define KVM_CAP_XSAVE2 208
+#define KVM_CAP_SYS_ATTRIBUTES 209
+#define KVM_CAP_PPC_AIL_MODE_3 210
 #ifdef KVM_CAP_IRQ_ROUTING
 struct kvm_irq_routing_irqchip {
   __u32 irqchip;
@@ -879,10 +915,17 @@
   __u32 vcpu;
   __u32 sint;
 };
+struct kvm_irq_routing_xen_evtchn {
+  __u32 port;
+  __u32 vcpu;
+  __u32 priority;
+};
+#define KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL ((__u32) (- 1))
 #define KVM_IRQ_ROUTING_IRQCHIP 1
 #define KVM_IRQ_ROUTING_MSI 2
 #define KVM_IRQ_ROUTING_S390_ADAPTER 3
 #define KVM_IRQ_ROUTING_HV_SINT 4
+#define KVM_IRQ_ROUTING_XEN_EVTCHN 5
 struct kvm_irq_routing_entry {
   __u32 gsi;
   __u32 type;
@@ -893,6 +936,7 @@
     struct kvm_irq_routing_msi msi;
     struct kvm_irq_routing_s390_adapter adapter;
     struct kvm_irq_routing_hv_sint hv_sint;
+    struct kvm_irq_routing_xen_evtchn xen_evtchn;
     __u32 pad[8];
   } u;
 };
@@ -918,6 +962,7 @@
 #define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1)
 #define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2)
 #define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
+#define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4)
 struct kvm_xen_hvm_config {
   __u32 flags;
   __u32 msr;
@@ -938,10 +983,15 @@
   __u8 pad[16];
 };
 #define KVM_CLOCK_TSC_STABLE 2
+#define KVM_CLOCK_REALTIME (1 << 2)
+#define KVM_CLOCK_HOST_TSC (1 << 3)
 struct kvm_clock_data {
   __u64 clock;
   __u32 flags;
-  __u32 pad[9];
+  __u32 pad0;
+  __u64 realtime;
+  __u64 host_tsc;
+  __u32 pad[4];
 };
 #define KVM_MMU_FSL_BOOKE_NOHV 0
 #define KVM_MMU_FSL_BOOKE_HV 1
@@ -1105,6 +1155,7 @@
 #define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char)
 #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
 #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3)
+#define KVM_ARM_MTE_COPY_TAGS _IOR(KVMIO, 0xb4, struct kvm_arm_copy_mte_tags)
 #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
 #define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr)
 #define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr)
@@ -1230,6 +1281,8 @@
 #define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
 #define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
 #define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
+#define KVM_GET_SREGS2 _IOR(KVMIO, 0xcc, struct kvm_sregs2)
+#define KVM_SET_SREGS2 _IOW(KVMIO, 0xcd, struct kvm_sregs2)
 struct kvm_xen_vcpu_attr {
   __u16 type;
   __u16 pad[3];
@@ -1274,6 +1327,7 @@
   KVM_SEV_DBG_ENCRYPT,
   KVM_SEV_CERT_EXPORT,
   KVM_SEV_GET_ATTESTATION_REPORT,
+  KVM_SEV_SEND_CANCEL,
   KVM_SEV_NR_MAX,
 };
 struct kvm_sev_cmd {
@@ -1321,6 +1375,41 @@
   __u64 uaddr;
   __u32 len;
 };
+struct kvm_sev_send_start {
+  __u32 policy;
+  __u64 pdh_cert_uaddr;
+  __u32 pdh_cert_len;
+  __u64 plat_certs_uaddr;
+  __u32 plat_certs_len;
+  __u64 amd_certs_uaddr;
+  __u32 amd_certs_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_send_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
+struct kvm_sev_receive_start {
+  __u32 handle;
+  __u32 policy;
+  __u64 pdh_uaddr;
+  __u32 pdh_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_receive_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
 #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
 #define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
@@ -1381,8 +1470,8 @@
 #ifndef KVM_DIRTY_LOG_PAGE_OFFSET
 #define KVM_DIRTY_LOG_PAGE_OFFSET 0
 #endif
-#define KVM_DIRTY_GFN_F_DIRTY BIT(0)
-#define KVM_DIRTY_GFN_F_RESET BIT(1)
+#define KVM_DIRTY_GFN_F_DIRTY _BITUL(0)
+#define KVM_DIRTY_GFN_F_RESET _BITUL(1)
 #define KVM_DIRTY_GFN_F_MASK 0x3
 struct kvm_dirty_gfn {
   __u32 flags;
@@ -1391,4 +1480,42 @@
 };
 #define KVM_BUS_LOCK_DETECTION_OFF (1 << 0)
 #define KVM_BUS_LOCK_DETECTION_EXIT (1 << 1)
+struct kvm_stats_header {
+  __u32 flags;
+  __u32 name_size;
+  __u32 num_desc;
+  __u32 id_offset;
+  __u32 desc_offset;
+  __u32 data_offset;
+};
+#define KVM_STATS_TYPE_SHIFT 0
+#define KVM_STATS_TYPE_MASK (0xF << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_CUMULATIVE (0x0 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_INSTANT (0x1 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_PEAK (0x2 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_LINEAR_HIST (0x3 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_LOG_HIST (0x4 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_MAX KVM_STATS_TYPE_LOG_HIST
+#define KVM_STATS_UNIT_SHIFT 4
+#define KVM_STATS_UNIT_MASK (0xF << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_NONE (0x0 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_BYTES (0x1 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_SECONDS (0x2 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_CYCLES (0x3 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_MAX KVM_STATS_UNIT_CYCLES
+#define KVM_STATS_BASE_SHIFT 8
+#define KVM_STATS_BASE_MASK (0xF << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_POW10 (0x0 << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_POW2 (0x1 << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_MAX KVM_STATS_BASE_POW2
+struct kvm_stats_desc {
+  __u32 flags;
+  __s16 exponent;
+  __u16 size;
+  __u32 offset;
+  __u32 bucket_size;
+  char name[];
+};
+#define KVM_GET_STATS_FD _IO(KVMIO, 0xce)
+#define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kvm_para.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kvm_para.h
index 9a4dd29..85084c2 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kvm_para.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/kvm_para.h
@@ -35,5 +35,6 @@
 #define KVM_HC_CLOCK_PAIRING 9
 #define KVM_HC_SEND_IPI 10
 #define KVM_HC_SCHED_YIELD 11
+#define KVM_HC_MAP_GPA_RANGE 12
 #include <asm/kvm_para.h>
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/landlock.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/landlock.h
new file mode 100644
index 0000000..50d79d8
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/landlock.h
@@ -0,0 +1,46 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_LANDLOCK_H
+#define _UAPI_LINUX_LANDLOCK_H
+#include <linux/types.h>
+struct landlock_ruleset_attr {
+  __u64 handled_access_fs;
+};
+#define LANDLOCK_CREATE_RULESET_VERSION (1U << 0)
+enum landlock_rule_type {
+  LANDLOCK_RULE_PATH_BENEATH = 1,
+};
+struct landlock_path_beneath_attr {
+  __u64 allowed_access;
+  __s32 parent_fd;
+} __attribute__((packed));
+#define LANDLOCK_ACCESS_FS_EXECUTE (1ULL << 0)
+#define LANDLOCK_ACCESS_FS_WRITE_FILE (1ULL << 1)
+#define LANDLOCK_ACCESS_FS_READ_FILE (1ULL << 2)
+#define LANDLOCK_ACCESS_FS_READ_DIR (1ULL << 3)
+#define LANDLOCK_ACCESS_FS_REMOVE_DIR (1ULL << 4)
+#define LANDLOCK_ACCESS_FS_REMOVE_FILE (1ULL << 5)
+#define LANDLOCK_ACCESS_FS_MAKE_CHAR (1ULL << 6)
+#define LANDLOCK_ACCESS_FS_MAKE_DIR (1ULL << 7)
+#define LANDLOCK_ACCESS_FS_MAKE_REG (1ULL << 8)
+#define LANDLOCK_ACCESS_FS_MAKE_SOCK (1ULL << 9)
+#define LANDLOCK_ACCESS_FS_MAKE_FIFO (1ULL << 10)
+#define LANDLOCK_ACCESS_FS_MAKE_BLOCK (1ULL << 11)
+#define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12)
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/lightnvm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/lightnvm.h
deleted file mode 100644
index b3ac317..0000000
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/lightnvm.h
+++ /dev/null
@@ -1,167 +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_LINUX_LIGHTNVM_H
-#define _UAPI_LINUX_LIGHTNVM_H
-#include <stdio.h>
-#include <sys/ioctl.h>
-#define DISK_NAME_LEN 32
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#define NVM_TTYPE_NAME_MAX 48
-#define NVM_TTYPE_MAX 63
-#define NVM_MMTYPE_LEN 8
-#define NVM_CTRL_FILE "/dev/lightnvm/control"
-struct nvm_ioctl_info_tgt {
-  __u32 version[3];
-  __u32 reserved;
-  char tgtname[NVM_TTYPE_NAME_MAX];
-};
-struct nvm_ioctl_info {
-  __u32 version[3];
-  __u16 tgtsize;
-  __u16 reserved16;
-  __u32 reserved[12];
-  struct nvm_ioctl_info_tgt tgts[NVM_TTYPE_MAX];
-};
-enum {
-  NVM_DEVICE_ACTIVE = 1 << 0,
-};
-struct nvm_ioctl_device_info {
-  char devname[DISK_NAME_LEN];
-  char bmname[NVM_TTYPE_NAME_MAX];
-  __u32 bmversion[3];
-  __u32 flags;
-  __u32 reserved[8];
-};
-struct nvm_ioctl_get_devices {
-  __u32 nr_devices;
-  __u32 reserved[31];
-  struct nvm_ioctl_device_info info[31];
-};
-struct nvm_ioctl_create_simple {
-  __u32 lun_begin;
-  __u32 lun_end;
-};
-struct nvm_ioctl_create_extended {
-  __u16 lun_begin;
-  __u16 lun_end;
-  __u16 op;
-  __u16 rsv;
-};
-enum {
-  NVM_CONFIG_TYPE_SIMPLE = 0,
-  NVM_CONFIG_TYPE_EXTENDED = 1,
-};
-struct nvm_ioctl_create_conf {
-  __u32 type;
-  union {
-    struct nvm_ioctl_create_simple s;
-    struct nvm_ioctl_create_extended e;
-  };
-};
-enum {
-  NVM_TARGET_FACTORY = 1 << 0,
-};
-struct nvm_ioctl_create {
-  char dev[DISK_NAME_LEN];
-  char tgttype[NVM_TTYPE_NAME_MAX];
-  char tgtname[DISK_NAME_LEN];
-  __u32 flags;
-  struct nvm_ioctl_create_conf conf;
-};
-struct nvm_ioctl_remove {
-  char tgtname[DISK_NAME_LEN];
-  __u32 flags;
-};
-struct nvm_ioctl_dev_init {
-  char dev[DISK_NAME_LEN];
-  char mmtype[NVM_MMTYPE_LEN];
-  __u32 flags;
-};
-enum {
-  NVM_FACTORY_ERASE_ONLY_USER = 1 << 0,
-  NVM_FACTORY_RESET_HOST_BLKS = 1 << 1,
-  NVM_FACTORY_RESET_GRWN_BBLKS = 1 << 2,
-  NVM_FACTORY_NR_BITS = 1 << 3,
-};
-struct nvm_ioctl_dev_factory {
-  char dev[DISK_NAME_LEN];
-  __u32 flags;
-};
-struct nvm_user_vio {
-  __u8 opcode;
-  __u8 flags;
-  __u16 control;
-  __u16 nppas;
-  __u16 rsvd;
-  __u64 metadata;
-  __u64 addr;
-  __u64 ppa_list;
-  __u32 metadata_len;
-  __u32 data_len;
-  __u64 status;
-  __u32 result;
-  __u32 rsvd3[3];
-};
-struct nvm_passthru_vio {
-  __u8 opcode;
-  __u8 flags;
-  __u8 rsvd[2];
-  __u32 nsid;
-  __u32 cdw2;
-  __u32 cdw3;
-  __u64 metadata;
-  __u64 addr;
-  __u32 metadata_len;
-  __u32 data_len;
-  __u64 ppa_list;
-  __u16 nppas;
-  __u16 control;
-  __u32 cdw13;
-  __u32 cdw14;
-  __u32 cdw15;
-  __u64 status;
-  __u32 result;
-  __u32 timeout_ms;
-};
-enum {
-  NVM_INFO_CMD = 0x20,
-  NVM_GET_DEVICES_CMD,
-  NVM_DEV_CREATE_CMD,
-  NVM_DEV_REMOVE_CMD,
-  NVM_DEV_INIT_CMD,
-  NVM_DEV_FACTORY_CMD,
-  NVM_DEV_VIO_ADMIN_CMD = 0x41,
-  NVM_DEV_VIO_CMD = 0x42,
-  NVM_DEV_VIO_USER_CMD = 0x43,
-};
-#define NVM_IOCTL 'L'
-#define NVM_INFO _IOWR(NVM_IOCTL, NVM_INFO_CMD, struct nvm_ioctl_info)
-#define NVM_GET_DEVICES _IOR(NVM_IOCTL, NVM_GET_DEVICES_CMD, struct nvm_ioctl_get_devices)
-#define NVM_DEV_CREATE _IOW(NVM_IOCTL, NVM_DEV_CREATE_CMD, struct nvm_ioctl_create)
-#define NVM_DEV_REMOVE _IOW(NVM_IOCTL, NVM_DEV_REMOVE_CMD, struct nvm_ioctl_remove)
-#define NVM_DEV_INIT _IOW(NVM_IOCTL, NVM_DEV_INIT_CMD, struct nvm_ioctl_dev_init)
-#define NVM_DEV_FACTORY _IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, struct nvm_ioctl_dev_factory)
-#define NVME_NVM_IOCTL_IO_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_USER_CMD, struct nvm_passthru_vio)
-#define NVME_NVM_IOCTL_ADMIN_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_ADMIN_CMD, struct nvm_passthru_vio)
-#define NVME_NVM_IOCTL_SUBMIT_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_CMD, struct nvm_user_vio)
-#define NVM_VERSION_MAJOR 1
-#define NVM_VERSION_MINOR 0
-#define NVM_VERSION_PATCHLEVEL 0
-#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/lwtunnel.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
index f472150..e6fb536 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
@@ -29,6 +29,7 @@
   LWTUNNEL_ENCAP_BPF,
   LWTUNNEL_ENCAP_SEG6_LOCAL,
   LWTUNNEL_ENCAP_RPL,
+  LWTUNNEL_ENCAP_IOAM6,
   __LWTUNNEL_ENCAP_MAX,
 };
 #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/magic.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/magic.h
index 479ae81..6563411 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/magic.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/magic.h
@@ -22,6 +22,7 @@
 #define AFFS_SUPER_MAGIC 0xadff
 #define AFS_SUPER_MAGIC 0x5346414F
 #define AUTOFS_SUPER_MAGIC 0x0187
+#define CEPH_SUPER_MAGIC 0x00c36400
 #define CODA_SUPER_MAGIC 0x73757245
 #define CRAMFS_MAGIC 0x28cd3d45
 #define CRAMFS_MAGIC_WEND 0x453dcd28
@@ -51,12 +52,14 @@
 #define EFIVARFS_MAGIC 0xde5e81e4
 #define HOSTFS_SUPER_MAGIC 0x00c0ffee
 #define OVERLAYFS_SUPER_MAGIC 0x794c7630
+#define FUSE_SUPER_MAGIC 0x65735546
 #define MINIX_SUPER_MAGIC 0x137F
 #define MINIX_SUPER_MAGIC2 0x138F
 #define MINIX2_SUPER_MAGIC 0x2468
 #define MINIX2_SUPER_MAGIC2 0x2478
 #define MINIX3_SUPER_MAGIC 0x4d5a
 #define MSDOS_SUPER_MAGIC 0x4d44
+#define EXFAT_SUPER_MAGIC 0x2011BAB0
 #define NCP_SUPER_MAGIC 0x564c
 #define NFS_SUPER_MAGIC 0x6969
 #define OCFS2_SUPER_MAGIC 0x7461636f
@@ -69,6 +72,8 @@
 #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
 #define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs"
 #define SMB_SUPER_MAGIC 0x517B
+#define CIFS_SUPER_MAGIC 0xFF534D42
+#define SMB2_SUPER_MAGIC 0xFE534D42
 #define CGROUP_SUPER_MAGIC 0x27e0eb
 #define CGROUP2_SUPER_MAGIC 0x63677270
 #define RDTGROUP_SUPER_MAGIC 0x7655821
@@ -100,4 +105,5 @@
 #define DEVMEM_MAGIC 0x454d444d
 #define Z3FOLD_MAGIC 0x33
 #define PPC_CMM_MAGIC 0xc7571590
+#define SECRETMEM_MAGIC 0x5345434d
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/major.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/major.h
index 7768d7b..f5e2cfb 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/major.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/major.h
@@ -45,8 +45,6 @@
 #define GOLDSTAR_CDROM_MAJOR 16
 #define OPTICS_CDROM_MAJOR 17
 #define SANYO_CDROM_MAJOR 18
-#define CYCLADES_MAJOR 19
-#define CYCLADESAUX_MAJOR 20
 #define MITSUMI_X_CDROM_MAJOR 20
 #define MFM_ACORN_MAJOR 21
 #define SCSI_GENERIC_MAJOR 21
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h
new file mode 100644
index 0000000..657df6c
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h
@@ -0,0 +1,56 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 MAP_TO_14SEGMENT_H
+#define MAP_TO_14SEGMENT_H
+#include <linux/errno.h>
+#include <linux/types.h>
+#include <asm/byteorder.h>
+#define BIT_SEG14_A 0
+#define BIT_SEG14_B 1
+#define BIT_SEG14_C 2
+#define BIT_SEG14_D 3
+#define BIT_SEG14_E 4
+#define BIT_SEG14_F 5
+#define BIT_SEG14_G1 6
+#define BIT_SEG14_G2 7
+#define BIT_SEG14_H 8
+#define BIT_SEG14_I 9
+#define BIT_SEG14_J 10
+#define BIT_SEG14_K 11
+#define BIT_SEG14_L 12
+#define BIT_SEG14_M 13
+#define BIT_SEG14_RESERVED1 14
+#define BIT_SEG14_RESERVED2 15
+struct seg14_conversion_map {
+  __be16 table[128];
+};
+#define SEG14_CONVERSION_MAP(_name,_map) struct seg14_conversion_map _name = {.table = { _map } }
+#define MAP_TO_SEG14_SYSFS_FILE "map_seg14"
+#define _SEG14(sym,a,b,c,d,e,f,g1,g2,h,j,k,l,m,n) __cpu_to_be16(a << BIT_SEG14_A | b << BIT_SEG14_B | c << BIT_SEG14_C | d << BIT_SEG14_D | e << BIT_SEG14_E | f << BIT_SEG14_F | g1 << BIT_SEG14_G1 | g2 << BIT_SEG14_G2 | h << BIT_SEG14_H | j << BIT_SEG14_I | k << BIT_SEG14_J | l << BIT_SEG14_K | m << BIT_SEG14_L | n << BIT_SEG14_M)
+#define _MAP_0_32_ASCII_SEG14_NON_PRINTABLE 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+#define _MAP_33_47_ASCII_SEG14_SYMBOL _SEG14('!', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('"', 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), _SEG14('#', 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14('$', 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14('%', 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('&', 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1), _SEG14('\'', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), _SEG14('(', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1), _SEG14(')', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0), _SEG14('*', 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1), _SEG14('+', 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14(',', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0), _SEG14('-', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('.', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1), _SEG14('/', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
+#define _MAP_48_57_ASCII_SEG14_NUMERIC _SEG14('0', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('1', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0), _SEG14('2', 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('3', 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0), _SEG14('4', 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('5', 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1), _SEG14('6', 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('7', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0), _SEG14('8', 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('9', 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0),
+#define _MAP_58_64_ASCII_SEG14_SYMBOL _SEG14(':', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14(';', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0), _SEG14('<', 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1), _SEG14('=', 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('>', 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0), _SEG14('?', 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0), _SEG14('@', 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0),
+#define _MAP_65_90_ASCII_SEG14_ALPHA_UPPER _SEG14('A', 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('B', 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0), _SEG14('C', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('D', 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('E', 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('F', 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('G', 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0), _SEG14('H', 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('I', 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('J', 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('K', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1), _SEG14('L', 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('M', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0), _SEG14('N', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1), _SEG14('O', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('P', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('Q', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1), _SEG14('R', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1), _SEG14('S', 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('T', 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('U', 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('V', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('W', 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('X', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1), _SEG14('Y', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0), _SEG14('Z', 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
+#define _MAP_91_96_ASCII_SEG14_SYMBOL _SEG14('[', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('\\', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), _SEG14(']', 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('^', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('_', 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('`', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0),
+#define _MAP_97_122_ASCII_SEG14_ALPHA_LOWER _SEG14('a', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('b', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1), _SEG14('c', 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('d', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0), _SEG14('e', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0), _SEG14('f', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0), _SEG14('g', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), _SEG14('h', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('i', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0), _SEG14('j', 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0), _SEG14('k', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1), _SEG14('l', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('m', 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0), _SEG14('n', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('o', 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('p', 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0), _SEG14('q', 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), _SEG14('r', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('s', 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), _SEG14('t', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('u', 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('v', 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0), _SEG14('w', 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('x', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1), _SEG14('y', 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0), _SEG14('z', 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0),
+#define _MAP_123_126_ASCII_SEG14_SYMBOL _SEG14('{', 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0), _SEG14('|', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('}', 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1), _SEG14('~', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0),
+#define MAP_ASCII14SEG_ALPHANUM _MAP_0_32_ASCII_SEG14_NON_PRINTABLE _MAP_33_47_ASCII_SEG14_SYMBOL _MAP_48_57_ASCII_SEG14_NUMERIC _MAP_58_64_ASCII_SEG14_SYMBOL _MAP_65_90_ASCII_SEG14_ALPHA_UPPER _MAP_91_96_ASCII_SEG14_SYMBOL _MAP_97_122_ASCII_SEG14_ALPHA_LOWER _MAP_123_126_ASCII_SEG14_SYMBOL
+#define SEG14_DEFAULT_MAP(_name) SEG14_CONVERSION_MAP(_name, MAP_ASCII14SEG_ALPHANUM)
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mctp.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mctp.h
new file mode 100644
index 0000000..21a9a14
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mctp.h
@@ -0,0 +1,50 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_MCTP_H
+#define __UAPI_MCTP_H
+#include <linux/types.h>
+#include <linux/socket.h>
+#include <linux/netdevice.h>
+typedef __u8 mctp_eid_t;
+struct mctp_addr {
+  mctp_eid_t s_addr;
+};
+struct sockaddr_mctp {
+  __kernel_sa_family_t smctp_family;
+  __u16 __smctp_pad0;
+  unsigned int smctp_network;
+  struct mctp_addr smctp_addr;
+  __u8 smctp_type;
+  __u8 smctp_tag;
+  __u8 __smctp_pad1;
+};
+struct sockaddr_mctp_ext {
+  struct sockaddr_mctp smctp_base;
+  int smctp_ifindex;
+  __u8 smctp_halen;
+  __u8 __smctp_pad0[3];
+  __u8 smctp_haddr[MAX_ADDR_LEN];
+};
+#define MCTP_NET_ANY 0x0
+#define MCTP_ADDR_NULL 0x00
+#define MCTP_ADDR_ANY 0xff
+#define MCTP_TAG_MASK 0x07
+#define MCTP_TAG_OWNER 0x08
+#define MCTP_OPT_ADDR_EXT 1
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mdio.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mdio.h
index a38cbfc..d5c9da8 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mdio.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mdio.h
@@ -55,9 +55,11 @@
 #define MDIO_AN_EEE_LPABLE 61
 #define MDIO_AN_EEE_ADV2 62
 #define MDIO_AN_EEE_LPABLE2 63
+#define MDIO_AN_CTRL2 64
 #define MDIO_PMA_10GBT_SWAPPOL 130
 #define MDIO_PMA_10GBT_TXPWR 131
 #define MDIO_PMA_10GBT_SNR 133
+#define MDIO_PMA_10GBR_FSRT_CSR 147
 #define MDIO_PMA_10GBR_FECABLE 170
 #define MDIO_PCS_10GBX_STAT1 24
 #define MDIO_PCS_10GBRT_STAT1 32
@@ -104,6 +106,8 @@
 #define MDIO_PMA_SPEED_100 0x0020
 #define MDIO_PMA_SPEED_10 0x0040
 #define MDIO_PCS_SPEED_10P2B 0x0002
+#define MDIO_PCS_SPEED_2_5G 0x0040
+#define MDIO_PCS_SPEED_5G 0x0080
 #define MDIO_DEVS_PRESENT(devad) (1 << (devad))
 #define MDIO_DEVS_C22PRESENT MDIO_DEVS_PRESENT(0)
 #define MDIO_DEVS_PMAPMD MDIO_DEVS_PRESENT(MDIO_MMD_PMAPMD)
@@ -197,9 +201,11 @@
 #define MDIO_PMA_10GBT_SNR_MAX 127
 #define MDIO_PMA_10GBR_FECABLE_ABLE 0x0001
 #define MDIO_PMA_10GBR_FECABLE_ERRABLE 0x0002
+#define MDIO_PMA_10GBR_FSRT_ENABLE 0x0001
 #define MDIO_PCS_10GBRT_STAT1_BLKLK 0x0001
 #define MDIO_PCS_10GBRT_STAT2_ERR 0x00ff
 #define MDIO_PCS_10GBRT_STAT2_BER 0x3f00
+#define MDIO_AN_10GBT_CTRL_ADVFSRT2_5G 0x0020
 #define MDIO_AN_10GBT_CTRL_ADV2_5G 0x0080
 #define MDIO_AN_10GBT_CTRL_ADV5G 0x0100
 #define MDIO_AN_10GBT_CTRL_ADV10G 0x1000
@@ -226,6 +232,7 @@
 #define MDIO_EEE_100GR_DS 0x2000
 #define MDIO_EEE_2_5GT 0x0001
 #define MDIO_EEE_5GT 0x0002
+#define MDIO_AN_THP_BP2_5GT 0x0008
 #define MDIO_PMA_NG_EXTABLE_2_5GBT 0x0001
 #define MDIO_PMA_NG_EXTABLE_5GBT 0x0002
 #define MDIO_PMA_LASI_RX_PHYXSLFLT 0x0001
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mempolicy.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mempolicy.h
index 5425c0e..f92970f 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mempolicy.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mempolicy.h
@@ -25,6 +25,7 @@
   MPOL_BIND,
   MPOL_INTERLEAVE,
   MPOL_LOCAL,
+  MPOL_PREFERRED_MANY,
   MPOL_MAX,
 };
 #define MPOL_F_STATIC_NODES (1 << 15)
@@ -41,7 +42,9 @@
 #define MPOL_MF_INTERNAL (1 << 4)
 #define MPOL_MF_VALID (MPOL_MF_STRICT | MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)
 #define MPOL_F_SHARED (1 << 0)
-#define MPOL_F_LOCAL (1 << 1)
 #define MPOL_F_MOF (1 << 3)
 #define MPOL_F_MORON (1 << 4)
+#define RECLAIM_ZONE (1 << 0)
+#define RECLAIM_WRITE (1 << 1)
+#define RECLAIM_UNMAP (1 << 2)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/module.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/module.h
index f08dc67..34a4c56 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/module.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/module.h
@@ -20,4 +20,5 @@
 #define _UAPI_LINUX_MODULE_H
 #define MODULE_INIT_IGNORE_MODVERSIONS 1
 #define MODULE_INIT_IGNORE_VERMAGIC 2
+#define MODULE_INIT_COMPRESSED_FILE 4
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mount.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mount.h
index 5a112c9..2099b48 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mount.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mount.h
@@ -62,7 +62,8 @@
 #define MOVE_MOUNT_T_SYMLINKS 0x00000010
 #define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020
 #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040
-#define MOVE_MOUNT__MASK 0x00000077
+#define MOVE_MOUNT_SET_GROUP 0x00000100
+#define MOVE_MOUNT__MASK 0x00000177
 #define FSOPEN_CLOEXEC 0x00000001
 #define FSPICK_CLOEXEC 0x00000001
 #define FSPICK_SYMLINK_NOFOLLOW 0x00000002
@@ -89,6 +90,7 @@
 #define MOUNT_ATTR_STRICTATIME 0x00000020
 #define MOUNT_ATTR_NODIRATIME 0x00000080
 #define MOUNT_ATTR_IDMAP 0x00100000
+#define MOUNT_ATTR_NOSYMFOLLOW 0x00200000
 struct mount_attr {
   __u64 attr_set;
   __u64 attr_clr;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mptcp.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mptcp.h
index b15adf5..67b0ce3 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mptcp.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/mptcp.h
@@ -20,6 +20,10 @@
 #define _UAPI_MPTCP_H
 #include <linux/const.h>
 #include <linux/types.h>
+#include <linux/in.h>
+#include <linux/in6.h>
+#include <linux/socket.h>
+#include <sys/socket.h>
 #define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0)
 #define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1)
 #define MPTCP_SUBFLOW_FLAG_JOIN_REM _BITUL(2)
@@ -72,6 +76,7 @@
 #define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0)
 #define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1)
 #define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2)
+#define MPTCP_PM_ADDR_FLAG_FULLMESH (1 << 3)
 enum {
   MPTCP_PM_CMD_UNSPEC,
   MPTCP_PM_CMD_ADD_ADDR,
@@ -99,6 +104,7 @@
   __u64 mptcpi_rcv_nxt;
   __u8 mptcpi_local_addr_used;
   __u8 mptcpi_local_addr_max;
+  __u8 mptcpi_csum_enabled;
 };
 enum mptcp_event_type {
   MPTCP_EVENT_UNSPEC = 0,
@@ -128,7 +134,40 @@
   MPTCP_ATTR_FLAGS,
   MPTCP_ATTR_TIMEOUT,
   MPTCP_ATTR_IF_IDX,
+  MPTCP_ATTR_RESET_REASON,
+  MPTCP_ATTR_RESET_FLAGS,
   __MPTCP_ATTR_AFTER_LAST
 };
 #define MPTCP_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1)
+#define MPTCP_RST_EUNSPEC 0
+#define MPTCP_RST_EMPTCP 1
+#define MPTCP_RST_ERESOURCE 2
+#define MPTCP_RST_EPROHIBIT 3
+#define MPTCP_RST_EWQ2BIG 4
+#define MPTCP_RST_EBADPERF 5
+#define MPTCP_RST_EMIDDLEBOX 6
+struct mptcp_subflow_data {
+  __u32 size_subflow_data;
+  __u32 num_subflows;
+  __u32 size_kernel;
+  __u32 size_user;
+} __attribute__((aligned(8)));
+struct mptcp_subflow_addrs {
+  union {
+    __kernel_sa_family_t sa_family;
+    struct sockaddr sa_local;
+    struct sockaddr_in sin_local;
+    struct sockaddr_in6 sin6_local;
+    struct __kernel_sockaddr_storage ss_local;
+  };
+  union {
+    struct sockaddr sa_remote;
+    struct sockaddr_in sin_remote;
+    struct sockaddr_in6 sin6_remote;
+    struct __kernel_sockaddr_storage ss_remote;
+  };
+};
+#define MPTCP_INFO 1
+#define MPTCP_TCPINFO 2
+#define MPTCP_SUBFLOW_ADDRS 3
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/n_r3964.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/n_r3964.h
deleted file mode 100644
index 5a7cccc..0000000
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/n_r3964.h
+++ /dev/null
@@ -1,46 +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__LINUX_N_R3964_H__
-#define _UAPI__LINUX_N_R3964_H__
-#define R3964_ENABLE_SIGNALS 0x5301
-#define R3964_SETPRIORITY 0x5302
-#define R3964_USE_BCC 0x5303
-#define R3964_READ_TELEGRAM 0x5304
-#define R3964_MASTER 0
-#define R3964_SLAVE 1
-#define R3964_SIG_ACK 0x0001
-#define R3964_SIG_DATA 0x0002
-#define R3964_SIG_ALL 0x000f
-#define R3964_SIG_NONE 0x0000
-#define R3964_USE_SIGIO 0x1000
-enum {
-  R3964_MSG_ACK = 1,
-  R3964_MSG_DATA
-};
-#define R3964_MAX_MSG_COUNT 32
-#define R3964_OK 0
-#define R3964_TX_FAIL - 1
-#define R3964_OVERFLOW - 2
-struct r3964_client_message {
-  int msg_id;
-  int arg;
-  int error_code;
-};
-#define R3964_MTU 256
-#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
index 9faf689..dffb077 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
@@ -32,6 +32,7 @@
   NBD_ATTR_SOCKETS,
   NBD_ATTR_DEAD_CONN_TIMEOUT,
   NBD_ATTR_DEVICE_LIST,
+  NBD_ATTR_BACKEND_IDENTIFIER,
   __NBD_ATTR_MAX,
 };
 #define NBD_ATTR_MAX (__NBD_ATTR_MAX - 1)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/neighbour.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/neighbour.h
index e0e84aa..278f7d1 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/neighbour.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/neighbour.h
@@ -45,17 +45,19 @@
   NDA_PROTOCOL,
   NDA_NH_ID,
   NDA_FDB_EXT_ATTRS,
+  NDA_FLAGS_EXT,
   __NDA_MAX
 };
 #define NDA_MAX (__NDA_MAX - 1)
-#define NTF_USE 0x01
-#define NTF_SELF 0x02
-#define NTF_MASTER 0x04
-#define NTF_PROXY 0x08
-#define NTF_EXT_LEARNED 0x10
-#define NTF_OFFLOADED 0x20
-#define NTF_STICKY 0x40
-#define NTF_ROUTER 0x80
+#define NTF_USE (1 << 0)
+#define NTF_SELF (1 << 1)
+#define NTF_MASTER (1 << 2)
+#define NTF_PROXY (1 << 3)
+#define NTF_EXT_LEARNED (1 << 4)
+#define NTF_OFFLOADED (1 << 5)
+#define NTF_STICKY (1 << 6)
+#define NTF_ROUTER (1 << 7)
+#define NTF_EXT_MANAGED (1 << 0)
 #define NUD_INCOMPLETE 0x01
 #define NUD_REACHABLE 0x02
 #define NUD_STALE 0x04
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/net_tstamp.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
index 373d1bb..510c0da 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
@@ -36,15 +36,26 @@
   SOF_TIMESTAMPING_OPT_STATS = (1 << 12),
   SOF_TIMESTAMPING_OPT_PKTINFO = (1 << 13),
   SOF_TIMESTAMPING_OPT_TX_SWHW = (1 << 14),
-  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW,
+  SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
+  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
   SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | SOF_TIMESTAMPING_LAST
 };
 #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | SOF_TIMESTAMPING_TX_SOFTWARE | SOF_TIMESTAMPING_TX_SCHED | SOF_TIMESTAMPING_TX_ACK)
+struct so_timestamping {
+  int flags;
+  int bind_phc;
+};
 struct hwtstamp_config {
   int flags;
   int tx_type;
   int rx_filter;
 };
+enum hwtstamp_flags {
+  HWTSTAMP_FLAG_BONDED_PHC_INDEX = (1 << 0),
+#define HWTSTAMP_FLAG_BONDED_PHC_INDEX HWTSTAMP_FLAG_BONDED_PHC_INDEX
+  HWTSTAMP_FLAG_LAST = HWTSTAMP_FLAG_BONDED_PHC_INDEX,
+  HWTSTAMP_FLAG_MASK = (HWTSTAMP_FLAG_LAST - 1) | HWTSTAMP_FLAG_LAST
+};
 enum hwtstamp_tx_types {
   HWTSTAMP_TX_OFF,
   HWTSTAMP_TX_ON,
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter.h
index 261b979..77b8a91 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter.h
@@ -47,6 +47,7 @@
 };
 enum nf_dev_hooks {
   NF_NETDEV_INGRESS,
+  NF_NETDEV_EGRESS,
   NF_NETDEV_NUMHOOKS
 };
 enum {
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
index 0023a94..441cd60 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
@@ -223,6 +223,7 @@
 #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,
@@ -385,6 +386,7 @@
   NFT_PAYLOAD_LL_HEADER,
   NFT_PAYLOAD_NETWORK_HEADER,
   NFT_PAYLOAD_TRANSPORT_HEADER,
+  NFT_PAYLOAD_INNER_HEADER,
 };
 enum nft_payload_csum_types {
   NFT_PAYLOAD_CSUM_NONE,
@@ -414,6 +416,7 @@
   NFT_EXTHDR_OP_IPV6,
   NFT_EXTHDR_OP_TCPOPT,
   NFT_EXTHDR_OP_IPV4,
+  NFT_EXTHDR_OP_SCTP,
   __NFT_EXTHDR_OP_MAX
 };
 #define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
@@ -438,7 +441,8 @@
   NFT_META_OIF,
   NFT_META_IIFNAME,
   NFT_META_OIFNAME,
-  NFT_META_IIFTYPE,
+  NFT_META_IFTYPE,
+#define NFT_META_IIFTYPE NFT_META_IFTYPE
   NFT_META_OIFTYPE,
   NFT_META_SKUID,
   NFT_META_SKGID,
@@ -465,6 +469,7 @@
   NFT_META_TIME_HOUR,
   NFT_META_SDIF,
   NFT_META_SDIFNAME,
+  __NFT_META_IIFTYPE,
 };
 enum nft_rt_keys {
   NFT_RT_CLASSID,
@@ -512,6 +517,7 @@
   NFTA_SOCKET_UNSPEC,
   NFTA_SOCKET_KEY,
   NFTA_SOCKET_DREG,
+  NFTA_SOCKET_LEVEL,
   __NFTA_SOCKET_MAX
 };
 #define NFTA_SOCKET_MAX (__NFTA_SOCKET_MAX - 1)
@@ -519,6 +525,7 @@
   NFT_SOCKET_TRANSPARENT,
   NFT_SOCKET_MARK,
   NFT_SOCKET_WILDCARD,
+  NFT_SOCKET_CGROUPV2,
   __NFT_SOCKET_MAX
 };
 #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1)
@@ -601,6 +608,14 @@
   __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,
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
index 9145552..705de74 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
@@ -64,7 +64,8 @@
 #define NFNL_SUBSYS_CTHELPER 9
 #define NFNL_SUBSYS_NFTABLES 10
 #define NFNL_SUBSYS_NFT_COMPAT 11
-#define NFNL_SUBSYS_COUNT 12
+#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 {
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
index 4501e53..200f1a0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -67,6 +67,7 @@
   CTA_LABELS_MASK,
   CTA_SYNPROXY,
   CTA_FILTER,
+  CTA_STATUS_MASK,
   __CTA_MAX
 };
 #define CTA_MAX (__CTA_MAX - 1)
@@ -249,6 +250,7 @@
   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)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
new file mode 100644
index 0000000..ce1692c
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
index 23606df..6dd8dbc 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
@@ -26,4 +26,9 @@
   __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/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netlink.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netlink.h
index da6a46b..77825cc 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netlink.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/netlink.h
@@ -80,7 +80,7 @@
 #define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
 #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
 #define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
-#define NLMSG_DATA(nlh) ((void *) (((char *) nlh) + NLMSG_LENGTH(0)))
+#define NLMSG_DATA(nlh) ((void *) (((char *) nlh) + NLMSG_HDRLEN))
 #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), (struct nlmsghdr *) (((char *) (nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
 #define NLMSG_OK(nlh,len) ((len) >= (int) sizeof(struct nlmsghdr) && (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && (nlh)->nlmsg_len <= (len))
 #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nexthop.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nexthop.h
index f99a074..4bc9ff0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nexthop.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nexthop.h
@@ -34,6 +34,7 @@
 };
 enum {
   NEXTHOP_GRP_TYPE_MPATH,
+  NEXTHOP_GRP_TYPE_RES,
   __NEXTHOP_GRP_TYPE_MAX,
 };
 #define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
@@ -50,7 +51,28 @@
   NHA_GROUPS,
   NHA_MASTER,
   NHA_FDB,
+  NHA_RES_GROUP,
+  NHA_RES_BUCKET,
   __NHA_MAX,
 };
 #define NHA_MAX (__NHA_MAX - 1)
+enum {
+  NHA_RES_GROUP_UNSPEC,
+  NHA_RES_GROUP_PAD = NHA_RES_GROUP_UNSPEC,
+  NHA_RES_GROUP_BUCKETS,
+  NHA_RES_GROUP_IDLE_TIMER,
+  NHA_RES_GROUP_UNBALANCED_TIMER,
+  NHA_RES_GROUP_UNBALANCED_TIME,
+  __NHA_RES_GROUP_MAX,
+};
+#define NHA_RES_GROUP_MAX (__NHA_RES_GROUP_MAX - 1)
+enum {
+  NHA_RES_BUCKET_UNSPEC,
+  NHA_RES_BUCKET_PAD = NHA_RES_BUCKET_UNSPEC,
+  NHA_RES_BUCKET_INDEX,
+  NHA_RES_BUCKET_IDLE_TIME,
+  NHA_RES_BUCKET_NH_ID,
+  __NHA_RES_BUCKET_MAX,
+};
+#define NHA_RES_BUCKET_MAX (__NHA_RES_BUCKET_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nfc.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nfc.h
index 72e3520..ff980f4 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nfc.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nfc.h
@@ -139,14 +139,14 @@
 #define NFC_SE_DISABLED 0x0
 #define NFC_SE_ENABLED 0x1
 struct sockaddr_nfc {
-  sa_family_t sa_family;
+  __kernel_sa_family_t sa_family;
   __u32 dev_idx;
   __u32 target_idx;
   __u32 nfc_protocol;
 };
 #define NFC_LLCP_MAX_SERVICE_NAME 63
 struct sockaddr_nfc_llcp {
-  sa_family_t sa_family;
+  __kernel_sa_family_t sa_family;
   __u32 dev_idx;
   __u32 target_idx;
   __u32 nfc_protocol;
@@ -154,7 +154,7 @@
   __u8 ssap;
   char service_name[NFC_LLCP_MAX_SERVICE_NAME];
 ;
-  size_t service_name_len;
+  __kernel_size_t service_name_len;
 };
 #define NFC_SOCKPROTO_RAW 0
 #define NFC_SOCKPROTO_LLCP 1
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h
deleted file mode 100644
index 1a805c3..0000000
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h
+++ /dev/null
@@ -1,63 +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_LINUX_NFSD_FH_H
-#define _UAPI_LINUX_NFSD_FH_H
-#include <linux/types.h>
-#include <linux/nfs.h>
-#include <linux/nfs2.h>
-#include <linux/nfs3.h>
-#include <linux/nfs4.h>
-struct nfs_fhbase_old {
-  __u32 fb_dcookie;
-  __u32 fb_ino;
-  __u32 fb_dirino;
-  __u32 fb_dev;
-  __u32 fb_xdev;
-  __u32 fb_xino;
-  __u32 fb_generation;
-};
-struct nfs_fhbase_new {
-  __u8 fb_version;
-  __u8 fb_auth_type;
-  __u8 fb_fsid_type;
-  __u8 fb_fileid_type;
-  __u32 fb_auth[1];
-};
-struct knfsd_fh {
-  unsigned int fh_size;
-  union {
-    struct nfs_fhbase_old fh_old;
-    __u32 fh_pad[NFS4_FHSIZE / 4];
-    struct nfs_fhbase_new fh_new;
-  } fh_base;
-};
-#define ofh_dcookie fh_base.fh_old.fb_dcookie
-#define ofh_ino fh_base.fh_old.fb_ino
-#define ofh_dirino fh_base.fh_old.fb_dirino
-#define ofh_dev fh_base.fh_old.fb_dev
-#define ofh_xdev fh_base.fh_old.fb_xdev
-#define ofh_xino fh_base.fh_old.fb_xino
-#define ofh_generation fh_base.fh_old.fb_generation
-#define fh_version fh_base.fh_new.fb_version
-#define fh_fsid_type fh_base.fh_new.fb_fsid_type
-#define fh_auth_type fh_base.fh_new.fb_auth_type
-#define fh_fileid_type fh_base.fh_new.fb_fileid_type
-#define fh_fsid fh_base.fh_new.fb_auth
-#define fh_auth fh_base.fh_new.fb_auth
-#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h
new file mode 100644
index 0000000..9ade75a
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __VENDOR_CMD_INTEL_H__
+#define __VENDOR_CMD_INTEL_H__
+#define INTEL_OUI 0x001735
+enum iwl_mvm_vendor_cmd {
+  IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO = 0x2d,
+  IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP = 0x30,
+  IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT = 0x32,
+};
+enum iwl_vendor_auth_akm_mode {
+  IWL_VENDOR_AUTH_OPEN,
+  IWL_VENDOR_AUTH_RSNA = 0x6,
+  IWL_VENDOR_AUTH_RSNA_PSK,
+  IWL_VENDOR_AUTH_SAE = 0x9,
+  IWL_VENDOR_AUTH_MAX,
+};
+enum iwl_mvm_vendor_attr {
+  __IWL_MVM_VENDOR_ATTR_INVALID = 0x00,
+  IWL_MVM_VENDOR_ATTR_VIF_ADDR = 0x02,
+  IWL_MVM_VENDOR_ATTR_ADDR = 0x0a,
+  IWL_MVM_VENDOR_ATTR_SSID = 0x3d,
+  IWL_MVM_VENDOR_ATTR_STA_CIPHER = 0x51,
+  IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN = 0x64,
+  IWL_MVM_VENDOR_ATTR_AUTH_MODE = 0x65,
+  IWL_MVM_VENDOR_ATTR_CHANNEL_NUM = 0x66,
+  IWL_MVM_VENDOR_ATTR_BAND = 0x69,
+  IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL = 0x70,
+  IWL_MVM_VENDOR_ATTR_COLLOC_ADDR = 0x71,
+  NUM_IWL_MVM_VENDOR_ATTR,
+  MAX_IWL_MVM_VENDOR_ATTR = NUM_IWL_MVM_VENDOR_ATTR - 1,
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nl80211.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nl80211.h
index 5181160..e902178 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nl80211.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/nl80211.h
@@ -178,6 +178,13 @@
   NL80211_CMD_UNPROT_BEACON,
   NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS,
   NL80211_CMD_SET_SAR_SPECS,
+  NL80211_CMD_OBSS_COLOR_COLLISION,
+  NL80211_CMD_COLOR_CHANGE_REQUEST,
+  NL80211_CMD_COLOR_CHANGE_STARTED,
+  NL80211_CMD_COLOR_CHANGE_ABORTED,
+  NL80211_CMD_COLOR_CHANGE_COMPLETED,
+  NL80211_CMD_SET_FILS_AAD,
+  NL80211_CMD_ASSOC_COMEBACK,
   __NL80211_CMD_AFTER_LAST,
   NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
 };
@@ -496,6 +503,14 @@
   NL80211_ATTR_RECONNECT_REQUESTED,
   NL80211_ATTR_SAR_SPEC,
   NL80211_ATTR_DISABLE_HE,
+  NL80211_ATTR_OBSS_COLOR_BITMAP,
+  NL80211_ATTR_COLOR_CHANGE_COUNT,
+  NL80211_ATTR_COLOR_CHANGE_COLOR,
+  NL80211_ATTR_COLOR_CHANGE_ELEMS,
+  NL80211_ATTR_MBSSID_CONFIG,
+  NL80211_ATTR_MBSSID_ELEMS,
+  NL80211_ATTR_RADAR_BACKGROUND,
+  NL80211_ATTR_AP_SETTINGS_FLAGS,
   __NL80211_ATTR_AFTER_LAST,
   NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
   NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
@@ -738,6 +753,7 @@
   NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
   NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
   NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
+  NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
   __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
   NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1
 };
@@ -1137,6 +1153,7 @@
   NL80211_BAND_60GHZ,
   NL80211_BAND_6GHZ,
   NL80211_BAND_S1GHZ,
+  NL80211_BAND_LC,
   NUM_NL80211_BANDS,
 };
 enum nl80211_ps_state {
@@ -1359,6 +1376,9 @@
   NL80211_TDLS_ENABLE_LINK,
   NL80211_TDLS_DISABLE_LINK,
 };
+enum nl80211_ap_sme_features {
+  NL80211_AP_SME_SA_QUERY_OFFLOAD = 1 << 0,
+};
 enum nl80211_feature_flags {
   NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
   NL80211_FEATURE_HT_IBSS = 1 << 1,
@@ -1449,6 +1469,12 @@
   NL80211_EXT_FEATURE_FILS_DISCOVERY,
   NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
   NL80211_EXT_FEATURE_BEACON_RATE_HE,
+  NL80211_EXT_FEATURE_SECURE_LTF,
+  NL80211_EXT_FEATURE_SECURE_RTT,
+  NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
+  NL80211_EXT_FEATURE_BSS_COLOR,
+  NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
+  NL80211_EXT_FEATURE_RADAR_BACKGROUND,
   NUM_NL80211_EXT_FEATURES,
   MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
 };
@@ -1533,6 +1559,7 @@
   NL80211_TDLS_PEER_HT = 1 << 0,
   NL80211_TDLS_PEER_VHT = 1 << 1,
   NL80211_TDLS_PEER_WMM = 1 << 2,
+  NL80211_TDLS_PEER_HE = 1 << 3,
 };
 enum nl80211_sched_scan_plan {
   __NL80211_SCHED_SCAN_PLAN_INVALID,
@@ -1720,6 +1747,8 @@
   NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
   NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
   NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
+  NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
+  NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
   NUM_NL80211_PMSR_FTM_REQ_ATTR,
   NL80211_PMSR_FTM_REQ_ATTR_MAX = NUM_NL80211_PMSR_FTM_REQ_ATTR - 1
 };
@@ -1827,4 +1856,18 @@
   __NL80211_SAR_ATTR_SPECS_LAST,
   NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
 };
+enum nl80211_mbssid_config_attributes {
+  __NL80211_MBSSID_CONFIG_ATTR_INVALID,
+  NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
+  NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
+  NL80211_MBSSID_CONFIG_ATTR_INDEX,
+  NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
+  NL80211_MBSSID_CONFIG_ATTR_EMA,
+  __NL80211_MBSSID_CONFIG_ATTR_LAST,
+  NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
+};
+enum nl80211_ap_settings_flags {
+  NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1 << 0,
+  NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 1 << 1,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/openvswitch.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/openvswitch.h
index 7db5cd5..1f8ae17 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/openvswitch.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/openvswitch.h
@@ -43,6 +43,7 @@
   OVS_DP_ATTR_USER_FEATURES,
   OVS_DP_ATTR_PAD,
   OVS_DP_ATTR_MASKS_CACHE_SIZE,
+  OVS_DP_ATTR_PER_CPU_PIDS,
   __OVS_DP_ATTR_MAX
 };
 #define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1)
@@ -72,6 +73,7 @@
 #define OVS_DP_F_UNALIGNED (1 << 0)
 #define OVS_DP_F_VPORT_PIDS (1 << 1)
 #define OVS_DP_F_TC_RECIRC_SHARING (1 << 2)
+#define OVS_DP_F_DISPATCH_UPCALL_PER_CPU (1 << 3)
 #define OVSP_LOCAL ((__u32) 0)
 #define OVS_PACKET_FAMILY "ovs_packet"
 #define OVS_PACKET_VERSION 0x1
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pci_regs.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pci_regs.h
index 81450a7..46612da 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pci_regs.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pci_regs.h
@@ -245,21 +245,21 @@
 #define PCI_SID_ESR_NSLOTS 0x1f
 #define PCI_SID_ESR_FIC 0x20
 #define PCI_SID_CHASSIS_NR 3
-#define PCI_MSI_FLAGS 2
+#define PCI_MSI_FLAGS 0x02
 #define PCI_MSI_FLAGS_ENABLE 0x0001
 #define PCI_MSI_FLAGS_QMASK 0x000e
 #define PCI_MSI_FLAGS_QSIZE 0x0070
 #define PCI_MSI_FLAGS_64BIT 0x0080
 #define PCI_MSI_FLAGS_MASKBIT 0x0100
 #define PCI_MSI_RFU 3
-#define PCI_MSI_ADDRESS_LO 4
-#define PCI_MSI_ADDRESS_HI 8
-#define PCI_MSI_DATA_32 8
-#define PCI_MSI_MASK_32 12
-#define PCI_MSI_PENDING_32 16
-#define PCI_MSI_DATA_64 12
-#define PCI_MSI_MASK_64 16
-#define PCI_MSI_PENDING_64 20
+#define PCI_MSI_ADDRESS_LO 0x04
+#define PCI_MSI_ADDRESS_HI 0x08
+#define PCI_MSI_DATA_32 0x08
+#define PCI_MSI_MASK_32 0x0c
+#define PCI_MSI_PENDING_32 0x10
+#define PCI_MSI_DATA_64 0x0c
+#define PCI_MSI_MASK_64 0x10
+#define PCI_MSI_PENDING_64 0x14
 #define PCI_MSIX_FLAGS 2
 #define PCI_MSIX_FLAGS_QSIZE 0x07FF
 #define PCI_MSIX_FLAGS_MASKALL 0x4000
@@ -273,10 +273,10 @@
 #define PCI_MSIX_FLAGS_BIRMASK PCI_MSIX_PBA_BIR
 #define PCI_CAP_MSIX_SIZEOF 12
 #define PCI_MSIX_ENTRY_SIZE 16
-#define PCI_MSIX_ENTRY_LOWER_ADDR 0
-#define PCI_MSIX_ENTRY_UPPER_ADDR 4
-#define PCI_MSIX_ENTRY_DATA 8
-#define PCI_MSIX_ENTRY_VECTOR_CTRL 12
+#define PCI_MSIX_ENTRY_LOWER_ADDR 0x0
+#define PCI_MSIX_ENTRY_UPPER_ADDR 0x4
+#define PCI_MSIX_ENTRY_DATA 0x8
+#define PCI_MSIX_ENTRY_VECTOR_CTRL 0xc
 #define PCI_MSIX_ENTRY_CTRL_MASKBIT 0x00000001
 #define PCI_CHSWP_CSR 2
 #define PCI_CHSWP_DHA 0x01
@@ -379,7 +379,7 @@
 #define PCI_X_BRIDGE_STATUS 4
 #define PCI_SSVID_VENDOR_ID 4
 #define PCI_SSVID_DEVICE_ID 6
-#define PCI_EXP_FLAGS 2
+#define PCI_EXP_FLAGS 0x02
 #define PCI_EXP_FLAGS_VERS 0x000f
 #define PCI_EXP_FLAGS_TYPE 0x00f0
 #define PCI_EXP_TYPE_ENDPOINT 0x0
@@ -393,7 +393,7 @@
 #define PCI_EXP_TYPE_RC_EC 0xa
 #define PCI_EXP_FLAGS_SLOT 0x0100
 #define PCI_EXP_FLAGS_IRQ 0x3e00
-#define PCI_EXP_DEVCAP 4
+#define PCI_EXP_DEVCAP 0x04
 #define PCI_EXP_DEVCAP_PAYLOAD 0x00000007
 #define PCI_EXP_DEVCAP_PHANTOM 0x00000018
 #define PCI_EXP_DEVCAP_EXT_TAG 0x00000020
@@ -406,13 +406,19 @@
 #define PCI_EXP_DEVCAP_PWR_VAL 0x03fc0000
 #define PCI_EXP_DEVCAP_PWR_SCL 0x0c000000
 #define PCI_EXP_DEVCAP_FLR 0x10000000
-#define PCI_EXP_DEVCTL 8
+#define PCI_EXP_DEVCTL 0x08
 #define PCI_EXP_DEVCTL_CERE 0x0001
 #define PCI_EXP_DEVCTL_NFERE 0x0002
 #define PCI_EXP_DEVCTL_FERE 0x0004
 #define PCI_EXP_DEVCTL_URRE 0x0008
 #define PCI_EXP_DEVCTL_RELAX_EN 0x0010
 #define PCI_EXP_DEVCTL_PAYLOAD 0x00e0
+#define PCI_EXP_DEVCTL_PAYLOAD_128B 0x0000
+#define PCI_EXP_DEVCTL_PAYLOAD_256B 0x0020
+#define PCI_EXP_DEVCTL_PAYLOAD_512B 0x0040
+#define PCI_EXP_DEVCTL_PAYLOAD_1024B 0x0060
+#define PCI_EXP_DEVCTL_PAYLOAD_2048B 0x0080
+#define PCI_EXP_DEVCTL_PAYLOAD_4096B 0x00a0
 #define PCI_EXP_DEVCTL_EXT_TAG 0x0100
 #define PCI_EXP_DEVCTL_PHANTOM 0x0200
 #define PCI_EXP_DEVCTL_AUX_PME 0x0400
@@ -425,7 +431,7 @@
 #define PCI_EXP_DEVCTL_READRQ_2048B 0x4000
 #define PCI_EXP_DEVCTL_READRQ_4096B 0x5000
 #define PCI_EXP_DEVCTL_BCR_FLR 0x8000
-#define PCI_EXP_DEVSTA 10
+#define PCI_EXP_DEVSTA 0x0a
 #define PCI_EXP_DEVSTA_CED 0x0001
 #define PCI_EXP_DEVSTA_NFED 0x0002
 #define PCI_EXP_DEVSTA_FED 0x0004
@@ -433,7 +439,7 @@
 #define PCI_EXP_DEVSTA_AUXPD 0x0010
 #define PCI_EXP_DEVSTA_TRPND 0x0020
 #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12
-#define PCI_EXP_LNKCAP 12
+#define PCI_EXP_LNKCAP 0x0c
 #define PCI_EXP_LNKCAP_SLS 0x0000000f
 #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001
 #define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002
@@ -452,7 +458,7 @@
 #define PCI_EXP_LNKCAP_DLLLARC 0x00100000
 #define PCI_EXP_LNKCAP_LBNC 0x00200000
 #define PCI_EXP_LNKCAP_PN 0xff000000
-#define PCI_EXP_LNKCTL 16
+#define PCI_EXP_LNKCTL 0x10
 #define PCI_EXP_LNKCTL_ASPMC 0x0003
 #define PCI_EXP_LNKCTL_ASPM_L0S 0x0001
 #define PCI_EXP_LNKCTL_ASPM_L1 0x0002
@@ -465,7 +471,7 @@
 #define PCI_EXP_LNKCTL_HAWD 0x0200
 #define PCI_EXP_LNKCTL_LBMIE 0x0400
 #define PCI_EXP_LNKCTL_LABIE 0x0800
-#define PCI_EXP_LNKSTA 18
+#define PCI_EXP_LNKSTA 0x12
 #define PCI_EXP_LNKSTA_CLS 0x000f
 #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001
 #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002
@@ -485,7 +491,7 @@
 #define PCI_EXP_LNKSTA_LBMS 0x4000
 #define PCI_EXP_LNKSTA_LABS 0x8000
 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20
-#define PCI_EXP_SLTCAP 20
+#define PCI_EXP_SLTCAP 0x14
 #define PCI_EXP_SLTCAP_ABP 0x00000001
 #define PCI_EXP_SLTCAP_PCP 0x00000002
 #define PCI_EXP_SLTCAP_MRLSP 0x00000004
@@ -498,7 +504,7 @@
 #define PCI_EXP_SLTCAP_EIP 0x00020000
 #define PCI_EXP_SLTCAP_NCCS 0x00040000
 #define PCI_EXP_SLTCAP_PSN 0xfff80000
-#define PCI_EXP_SLTCTL 24
+#define PCI_EXP_SLTCTL 0x18
 #define PCI_EXP_SLTCTL_ABPE 0x0001
 #define PCI_EXP_SLTCTL_PFDE 0x0002
 #define PCI_EXP_SLTCTL_MRLSCE 0x0004
@@ -520,7 +526,7 @@
 #define PCI_EXP_SLTCTL_EIC 0x0800
 #define PCI_EXP_SLTCTL_DLLSCE 0x1000
 #define PCI_EXP_SLTCTL_IBPD_DISABLE 0x4000
-#define PCI_EXP_SLTSTA 26
+#define PCI_EXP_SLTSTA 0x1a
 #define PCI_EXP_SLTSTA_ABP 0x0001
 #define PCI_EXP_SLTSTA_PFD 0x0002
 #define PCI_EXP_SLTSTA_MRLSC 0x0004
@@ -530,18 +536,18 @@
 #define PCI_EXP_SLTSTA_PDS 0x0040
 #define PCI_EXP_SLTSTA_EIS 0x0080
 #define PCI_EXP_SLTSTA_DLLSC 0x0100
-#define PCI_EXP_RTCTL 28
+#define PCI_EXP_RTCTL 0x1c
 #define PCI_EXP_RTCTL_SECEE 0x0001
 #define PCI_EXP_RTCTL_SENFEE 0x0002
 #define PCI_EXP_RTCTL_SEFEE 0x0004
 #define PCI_EXP_RTCTL_PMEIE 0x0008
 #define PCI_EXP_RTCTL_CRSSVE 0x0010
-#define PCI_EXP_RTCAP 30
+#define PCI_EXP_RTCAP 0x1e
 #define PCI_EXP_RTCAP_CRSVIS 0x0001
-#define PCI_EXP_RTSTA 32
+#define PCI_EXP_RTSTA 0x20
 #define PCI_EXP_RTSTA_PME 0x00010000
 #define PCI_EXP_RTSTA_PENDING 0x00020000
-#define PCI_EXP_DEVCAP2 36
+#define PCI_EXP_DEVCAP2 0x24
 #define PCI_EXP_DEVCAP2_COMP_TMOUT_DIS 0x00000010
 #define PCI_EXP_DEVCAP2_ARI 0x00000020
 #define PCI_EXP_DEVCAP2_ATOMIC_ROUTE 0x00000040
@@ -553,7 +559,7 @@
 #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000
 #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000
 #define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000
-#define PCI_EXP_DEVCTL2 40
+#define PCI_EXP_DEVCTL2 0x28
 #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f
 #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010
 #define PCI_EXP_DEVCTL2_ARI 0x0020
@@ -565,9 +571,9 @@
 #define PCI_EXP_DEVCTL2_OBFF_MSGA_EN 0x2000
 #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000
 #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000
-#define PCI_EXP_DEVSTA2 42
-#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44
-#define PCI_EXP_LNKCAP2 44
+#define PCI_EXP_DEVSTA2 0x2a
+#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 0x2c
+#define PCI_EXP_LNKCAP2 0x2c
 #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002
 #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004
 #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008
@@ -575,7 +581,7 @@
 #define PCI_EXP_LNKCAP2_SLS_32_0GB 0x00000020
 #define PCI_EXP_LNKCAP2_SLS_64_0GB 0x00000040
 #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100
-#define PCI_EXP_LNKCTL2 48
+#define PCI_EXP_LNKCTL2 0x30
 #define PCI_EXP_LNKCTL2_TLS 0x000f
 #define PCI_EXP_LNKCTL2_TLS_2_5GT 0x0001
 #define PCI_EXP_LNKCTL2_TLS_5_0GT 0x0002
@@ -586,12 +592,12 @@
 #define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010
 #define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380
 #define PCI_EXP_LNKCTL2_HASD 0x0020
-#define PCI_EXP_LNKSTA2 50
-#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52
-#define PCI_EXP_SLTCAP2 52
+#define PCI_EXP_LNKSTA2 0x32
+#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 0x32
+#define PCI_EXP_SLTCAP2 0x34
 #define PCI_EXP_SLTCAP2_IBPD 0x00000001
-#define PCI_EXP_SLTCTL2 56
-#define PCI_EXP_SLTSTA2 58
+#define PCI_EXP_SLTCTL2 0x38
+#define PCI_EXP_SLTSTA2 0x3a
 #define PCI_EXT_CAP_ID(header) (header & 0x0000ffff)
 #define PCI_EXT_CAP_VER(header) ((header >> 16) & 0xf)
 #define PCI_EXT_CAP_NEXT(header) ((header >> 20) & 0xffc)
@@ -631,7 +637,7 @@
 #define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PL_16GT
 #define PCI_EXT_CAP_DSN_SIZEOF 12
 #define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40
-#define PCI_ERR_UNCOR_STATUS 4
+#define PCI_ERR_UNCOR_STATUS 0x04
 #define PCI_ERR_UNC_UND 0x00000001
 #define PCI_ERR_UNC_DLP 0x00000010
 #define PCI_ERR_UNC_SURPDN 0x00000020
@@ -649,9 +655,9 @@
 #define PCI_ERR_UNC_MCBTLP 0x00800000
 #define PCI_ERR_UNC_ATOMEG 0x01000000
 #define PCI_ERR_UNC_TLPPRE 0x02000000
-#define PCI_ERR_UNCOR_MASK 8
-#define PCI_ERR_UNCOR_SEVER 12
-#define PCI_ERR_COR_STATUS 16
+#define PCI_ERR_UNCOR_MASK 0x08
+#define PCI_ERR_UNCOR_SEVER 0x0c
+#define PCI_ERR_COR_STATUS 0x10
 #define PCI_ERR_COR_RCVR 0x00000001
 #define PCI_ERR_COR_BAD_TLP 0x00000040
 #define PCI_ERR_COR_BAD_DLLP 0x00000080
@@ -660,19 +666,19 @@
 #define PCI_ERR_COR_ADV_NFAT 0x00002000
 #define PCI_ERR_COR_INTERNAL 0x00004000
 #define PCI_ERR_COR_LOG_OVER 0x00008000
-#define PCI_ERR_COR_MASK 20
-#define PCI_ERR_CAP 24
-#define PCI_ERR_CAP_FEP(x) ((x) & 31)
+#define PCI_ERR_COR_MASK 0x14
+#define PCI_ERR_CAP 0x18
+#define PCI_ERR_CAP_FEP(x) ((x) & 0x1f)
 #define PCI_ERR_CAP_ECRC_GENC 0x00000020
 #define PCI_ERR_CAP_ECRC_GENE 0x00000040
 #define PCI_ERR_CAP_ECRC_CHKC 0x00000080
 #define PCI_ERR_CAP_ECRC_CHKE 0x00000100
-#define PCI_ERR_HEADER_LOG 28
-#define PCI_ERR_ROOT_COMMAND 44
+#define PCI_ERR_HEADER_LOG 0x1c
+#define PCI_ERR_ROOT_COMMAND 0x2c
 #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001
 #define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002
 #define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004
-#define PCI_ERR_ROOT_STATUS 48
+#define PCI_ERR_ROOT_STATUS 0x30
 #define PCI_ERR_ROOT_COR_RCV 0x00000001
 #define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
 #define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
@@ -681,48 +687,48 @@
 #define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020
 #define PCI_ERR_ROOT_FATAL_RCV 0x00000040
 #define PCI_ERR_ROOT_AER_IRQ 0xf8000000
-#define PCI_ERR_ROOT_ERR_SRC 52
-#define PCI_VC_PORT_CAP1 4
+#define PCI_ERR_ROOT_ERR_SRC 0x34
+#define PCI_VC_PORT_CAP1 0x04
 #define PCI_VC_CAP1_EVCC 0x00000007
 #define PCI_VC_CAP1_LPEVCC 0x00000070
 #define PCI_VC_CAP1_ARB_SIZE 0x00000c00
-#define PCI_VC_PORT_CAP2 8
+#define PCI_VC_PORT_CAP2 0x08
 #define PCI_VC_CAP2_32_PHASE 0x00000002
 #define PCI_VC_CAP2_64_PHASE 0x00000004
 #define PCI_VC_CAP2_128_PHASE 0x00000008
 #define PCI_VC_CAP2_ARB_OFF 0xff000000
-#define PCI_VC_PORT_CTRL 12
+#define PCI_VC_PORT_CTRL 0x0c
 #define PCI_VC_PORT_CTRL_LOAD_TABLE 0x00000001
-#define PCI_VC_PORT_STATUS 14
+#define PCI_VC_PORT_STATUS 0x0e
 #define PCI_VC_PORT_STATUS_TABLE 0x00000001
-#define PCI_VC_RES_CAP 16
+#define PCI_VC_RES_CAP 0x10
 #define PCI_VC_RES_CAP_32_PHASE 0x00000002
 #define PCI_VC_RES_CAP_64_PHASE 0x00000004
 #define PCI_VC_RES_CAP_128_PHASE 0x00000008
 #define PCI_VC_RES_CAP_128_PHASE_TB 0x00000010
 #define PCI_VC_RES_CAP_256_PHASE 0x00000020
 #define PCI_VC_RES_CAP_ARB_OFF 0xff000000
-#define PCI_VC_RES_CTRL 20
+#define PCI_VC_RES_CTRL 0x14
 #define PCI_VC_RES_CTRL_LOAD_TABLE 0x00010000
 #define PCI_VC_RES_CTRL_ARB_SELECT 0x000e0000
 #define PCI_VC_RES_CTRL_ID 0x07000000
 #define PCI_VC_RES_CTRL_ENABLE 0x80000000
-#define PCI_VC_RES_STATUS 26
+#define PCI_VC_RES_STATUS 0x1a
 #define PCI_VC_RES_STATUS_TABLE 0x00000001
 #define PCI_VC_RES_STATUS_NEGO 0x00000002
 #define PCI_CAP_VC_BASE_SIZEOF 0x10
-#define PCI_CAP_VC_PER_VC_SIZEOF 0x0C
-#define PCI_PWR_DSR 4
-#define PCI_PWR_DATA 8
+#define PCI_CAP_VC_PER_VC_SIZEOF 0x0c
+#define PCI_PWR_DSR 0x04
+#define PCI_PWR_DATA 0x08
 #define PCI_PWR_DATA_BASE(x) ((x) & 0xff)
 #define PCI_PWR_DATA_SCALE(x) (((x) >> 8) & 3)
 #define PCI_PWR_DATA_PM_SUB(x) (((x) >> 10) & 7)
 #define PCI_PWR_DATA_PM_STATE(x) (((x) >> 13) & 3)
 #define PCI_PWR_DATA_TYPE(x) (((x) >> 15) & 7)
 #define PCI_PWR_DATA_RAIL(x) (((x) >> 18) & 7)
-#define PCI_PWR_CAP 12
+#define PCI_PWR_CAP 0x0c
 #define PCI_PWR_CAP_BUDGET(x) ((x) & 1)
-#define PCI_EXT_CAP_PWR_SIZEOF 16
+#define PCI_EXT_CAP_PWR_SIZEOF 0x10
 #define PCI_RCEC_RCIEP_BITMAP 4
 #define PCI_RCEC_BUSN 8
 #define PCI_RCEC_BUSN_REG_VER 0x02
@@ -822,7 +828,7 @@
 #define PCI_SRIOV_VFM_MI 0x1
 #define PCI_SRIOV_VFM_MO 0x2
 #define PCI_SRIOV_VFM_AV 0x3
-#define PCI_EXT_CAP_SRIOV_SIZEOF 64
+#define PCI_EXT_CAP_SRIOV_SIZEOF 0x40
 #define PCI_LTR_MAX_SNOOP_LAT 0x4
 #define PCI_LTR_MAX_NOSNOOP_LAT 0x6
 #define PCI_LTR_VALUE_MASK 0x000003ff
@@ -865,25 +871,25 @@
 #define PCI_TPH_LOC_MSIX 0x400
 #define PCI_TPH_CAP_ST_MASK 0x07FF0000
 #define PCI_TPH_CAP_ST_SHIFT 16
-#define PCI_TPH_BASE_SIZEOF 12
-#define PCI_EXP_DPC_CAP 4
+#define PCI_TPH_BASE_SIZEOF 0xc
+#define PCI_EXP_DPC_CAP 0x04
 #define PCI_EXP_DPC_IRQ 0x001F
 #define PCI_EXP_DPC_CAP_RP_EXT 0x0020
 #define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040
 #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080
 #define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00
 #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000
-#define PCI_EXP_DPC_CTL 6
+#define PCI_EXP_DPC_CTL 0x06
 #define PCI_EXP_DPC_CTL_EN_FATAL 0x0001
 #define PCI_EXP_DPC_CTL_EN_NONFATAL 0x0002
 #define PCI_EXP_DPC_CTL_INT_EN 0x0008
-#define PCI_EXP_DPC_STATUS 8
+#define PCI_EXP_DPC_STATUS 0x08
 #define PCI_EXP_DPC_STATUS_TRIGGER 0x0001
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN 0x0006
 #define PCI_EXP_DPC_STATUS_INTERRUPT 0x0008
 #define PCI_EXP_DPC_RP_BUSY 0x0010
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT 0x0060
-#define PCI_EXP_DPC_SOURCE_ID 10
+#define PCI_EXP_DPC_SOURCE_ID 0x0A
 #define PCI_EXP_DPC_RP_PIO_STATUS 0x0C
 #define PCI_EXP_DPC_RP_PIO_MASK 0x10
 #define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14
@@ -920,7 +926,11 @@
 #define PCI_L1SS_CTL1_LTR_L12_TH_SCALE 0xe0000000
 #define PCI_L1SS_CTL2 0x0c
 #define PCI_DVSEC_HEADER1 0x4
+#define PCI_DVSEC_HEADER1_VID(x) ((x) & 0xffff)
+#define PCI_DVSEC_HEADER1_REV(x) (((x) >> 16) & 0xf)
+#define PCI_DVSEC_HEADER1_LEN(x) (((x) >> 20) & 0xfff)
 #define PCI_DVSEC_HEADER2 0x8
+#define PCI_DVSEC_HEADER2_ID(x) ((x) & 0xffff)
 #define PCI_DLF_CAP 0x04
 #define PCI_DLF_EXCHANGE_ENABLE 0x80000000
 #define PCI_PL_16GT_LE_CTRL 0x20
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/perf_event.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/perf_event.h
index b09c5d8..b022586 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/perf_event.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/perf_event.h
@@ -30,6 +30,8 @@
   PERF_TYPE_BREAKPOINT = 5,
   PERF_TYPE_MAX,
 };
+#define PERF_PMU_TYPE_SHIFT 32
+#define PERF_HW_EVENT_MASK 0xffffffff
 enum perf_hw_id {
   PERF_COUNT_HW_CPU_CYCLES = 0,
   PERF_COUNT_HW_INSTRUCTIONS = 1,
@@ -76,6 +78,7 @@
   PERF_COUNT_SW_EMULATION_FAULTS = 8,
   PERF_COUNT_SW_DUMMY = 9,
   PERF_COUNT_SW_BPF_OUTPUT = 10,
+  PERF_COUNT_SW_CGROUP_SWITCHES = 11,
   PERF_COUNT_SW_MAX,
 };
 enum perf_event_sample_format {
@@ -197,6 +200,7 @@
 #define PERF_ATTR_SIZE_VER4 104
 #define PERF_ATTR_SIZE_VER5 112
 #define PERF_ATTR_SIZE_VER6 120
+#define PERF_ATTR_SIZE_VER7 128
 struct perf_event_attr {
   __u32 type;
   __u32 size;
@@ -207,7 +211,7 @@
   };
   __u64 sample_type;
   __u64 read_format;
-  __u64 disabled : 1, inherit : 1, pinned : 1, exclusive : 1, exclude_user : 1, exclude_kernel : 1, exclude_hv : 1, exclude_idle : 1, mmap : 1, comm : 1, freq : 1, inherit_stat : 1, enable_on_exec : 1, task : 1, watermark : 1, precise_ip : 2, mmap_data : 1, sample_id_all : 1, exclude_host : 1, exclude_guest : 1, exclude_callchain_kernel : 1, exclude_callchain_user : 1, mmap2 : 1, comm_exec : 1, use_clockid : 1, context_switch : 1, write_backward : 1, namespaces : 1, ksymbol : 1, bpf_event : 1, aux_output : 1, cgroup : 1, text_poke : 1, build_id : 1, __reserved_1 : 29;
+  __u64 disabled : 1, inherit : 1, pinned : 1, exclusive : 1, exclude_user : 1, exclude_kernel : 1, exclude_hv : 1, exclude_idle : 1, mmap : 1, comm : 1, freq : 1, inherit_stat : 1, enable_on_exec : 1, task : 1, watermark : 1, precise_ip : 2, mmap_data : 1, sample_id_all : 1, exclude_host : 1, exclude_guest : 1, exclude_callchain_kernel : 1, exclude_callchain_user : 1, mmap2 : 1, comm_exec : 1, use_clockid : 1, context_switch : 1, write_backward : 1, namespaces : 1, ksymbol : 1, bpf_event : 1, aux_output : 1, cgroup : 1, text_poke : 1, build_id : 1, inherit_thread : 1, remove_on_exec : 1, sigtrap : 1, __reserved_1 : 26;
   union {
     __u32 wakeup_events;
     __u32 wakeup_watermark;
@@ -235,6 +239,7 @@
   __u16 __reserved_2;
   __u32 aux_sample_size;
   __u32 __reserved_3;
+  __u64 sig_data;
 };
 struct perf_event_query_bpf {
   __u32 ids_len;
@@ -345,6 +350,7 @@
   PERF_RECORD_BPF_EVENT = 18,
   PERF_RECORD_CGROUP = 19,
   PERF_RECORD_TEXT_POKE = 20,
+  PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
   PERF_RECORD_MAX,
 };
 enum perf_record_ksymbol_type {
@@ -375,6 +381,9 @@
 #define PERF_AUX_FLAG_OVERWRITE 0x02
 #define PERF_AUX_FLAG_PARTIAL 0x04
 #define PERF_AUX_FLAG_COLLISION 0x08
+#define PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK 0xff00
+#define PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT 0x0000
+#define PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW 0x0100
 #define PERF_FLAG_FD_NO_GROUP (1UL << 0)
 #define PERF_FLAG_FD_OUTPUT (1UL << 1)
 #define PERF_FLAG_PID_CGROUP (1UL << 2)
@@ -383,14 +392,14 @@
 union perf_mem_data_src {
   __u64 val;
   struct {
-    __u64 mem_op : 5, mem_lvl : 14, mem_snoop : 5, mem_lock : 2, mem_dtlb : 7, mem_lvl_num : 4, mem_remote : 1, mem_snoopx : 2, mem_blk : 3, mem_rsvd : 21;
+    __u64 mem_op : 5, mem_lvl : 14, mem_snoop : 5, mem_lock : 2, mem_dtlb : 7, mem_lvl_num : 4, mem_remote : 1, mem_snoopx : 2, mem_blk : 3, mem_hops : 3, mem_rsvd : 18;
   };
 };
 #elif defined(__BIG_ENDIAN_BITFIELD)
 union perf_mem_data_src {
   __u64 val;
   struct {
-    __u64 mem_rsvd : 21, mem_blk : 3, mem_snoopx : 2, mem_remote : 1, mem_lvl_num : 4, mem_dtlb : 7, mem_lock : 2, mem_snoop : 5, mem_lvl : 14, mem_op : 5;
+    __u64 mem_rsvd : 18, mem_hops : 3, mem_blk : 3, mem_snoopx : 2, mem_remote : 1, mem_lvl_num : 4, mem_dtlb : 7, mem_lock : 2, mem_snoop : 5, mem_lvl : 14, mem_op : 5;
   };
 };
 #else
@@ -452,6 +461,11 @@
 #define PERF_MEM_BLK_DATA 0x02
 #define PERF_MEM_BLK_ADDR 0x04
 #define PERF_MEM_BLK_SHIFT 40
+#define PERF_MEM_HOPS_0 0x01
+#define PERF_MEM_HOPS_1 0x02
+#define PERF_MEM_HOPS_2 0x03
+#define PERF_MEM_HOPS_3 0x04
+#define PERF_MEM_HOPS_SHIFT 43
 #define PERF_MEM_S(a,s) (((__u64) PERF_MEM_ ##a ##_ ##s) << PERF_MEM_ ##a ##_SHIFT)
 struct perf_branch_entry {
   __u64 from;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
index 8f65681..d1e5486 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
@@ -243,6 +243,7 @@
 #define SADB_X_AALG_SHA2_512HMAC 7
 #define SADB_X_AALG_RIPEMD160HMAC 8
 #define SADB_X_AALG_AES_XCBC_MAC 9
+#define SADB_X_AALG_SM3_256HMAC 10
 #define SADB_X_AALG_NULL 251
 #define SADB_AALG_MAX 251
 #define SADB_EALG_NONE 0
@@ -261,6 +262,7 @@
 #define SADB_X_EALG_AES_GCM_ICV16 20
 #define SADB_X_EALG_CAMELLIACBC 22
 #define SADB_X_EALG_NULL_AES_GMAC 23
+#define SADB_X_EALG_SM4CBC 24
 #define SADB_EALG_MAX 253
 #define SADB_X_EALG_SERPENTCBC 252
 #define SADB_X_EALG_TWOFISHCBC 253
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pfrut.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pfrut.h
new file mode 100644
index 0000000..14f713f
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pfrut.h
@@ -0,0 +1,95 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __PFRUT_H__
+#define __PFRUT_H__
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define PFRUT_IOCTL_MAGIC 0xEE
+#define PFRU_IOC_SET_REV _IOW(PFRUT_IOCTL_MAGIC, 0x01, unsigned int)
+#define PFRU_IOC_STAGE _IOW(PFRUT_IOCTL_MAGIC, 0x02, unsigned int)
+#define PFRU_IOC_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x03, unsigned int)
+#define PFRU_IOC_STAGE_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x04, unsigned int)
+#define PFRU_IOC_QUERY_CAP _IOR(PFRUT_IOCTL_MAGIC, 0x05, struct pfru_update_cap_info)
+struct pfru_payload_hdr {
+  __u32 sig;
+  __u32 hdr_version;
+  __u32 hdr_size;
+  __u32 hw_ver;
+  __u32 rt_ver;
+  __u8 platform_id[16];
+};
+enum pfru_dsm_status {
+  DSM_SUCCEED = 0,
+  DSM_FUNC_NOT_SUPPORT = 1,
+  DSM_INVAL_INPUT = 2,
+  DSM_HARDWARE_ERR = 3,
+  DSM_RETRY_SUGGESTED = 4,
+  DSM_UNKNOWN = 5,
+  DSM_FUNC_SPEC_ERR = 6,
+};
+struct pfru_update_cap_info {
+  __u32 status;
+  __u32 update_cap;
+  __u8 code_type[16];
+  __u32 fw_version;
+  __u32 code_rt_version;
+  __u8 drv_type[16];
+  __u32 drv_rt_version;
+  __u32 drv_svn;
+  __u8 platform_id[16];
+  __u8 oem_id[16];
+  __u32 oem_info_len;
+};
+struct pfru_com_buf_info {
+  __u32 status;
+  __u32 ext_status;
+  __u64 addr_lo;
+  __u64 addr_hi;
+  __u32 buf_size;
+};
+struct pfru_updated_result {
+  __u32 status;
+  __u32 ext_status;
+  __u64 low_auth_time;
+  __u64 high_auth_time;
+  __u64 low_exec_time;
+  __u64 high_exec_time;
+};
+struct pfrt_log_data_info {
+  __u32 status;
+  __u32 ext_status;
+  __u64 chunk1_addr_lo;
+  __u64 chunk1_addr_hi;
+  __u64 chunk2_addr_lo;
+  __u64 chunk2_addr_hi;
+  __u32 max_data_size;
+  __u32 chunk1_size;
+  __u32 chunk2_size;
+  __u32 rollover_cnt;
+  __u32 reset_cnt;
+};
+struct pfrt_log_info {
+  __u32 log_level;
+  __u32 log_type;
+  __u32 log_revid;
+};
+#define PFRT_LOG_IOC_SET_INFO _IOW(PFRUT_IOCTL_MAGIC, 0x06, struct pfrt_log_info)
+#define PFRT_LOG_IOC_GET_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x07, struct pfrt_log_info)
+#define PFRT_LOG_IOC_GET_DATA_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x08, struct pfrt_log_data_info)
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pkt_cls.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
index 45dca35..9fd89e0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
@@ -32,9 +32,12 @@
   TCA_ACT_FLAGS,
   TCA_ACT_HW_STATS,
   TCA_ACT_USED_HW_STATS,
+  TCA_ACT_IN_HW_COUNT,
   __TCA_ACT_MAX
 };
-#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1
+#define TCA_ACT_FLAGS_NO_PERCPU_STATS (1 << 0)
+#define TCA_ACT_FLAGS_SKIP_HW (1 << 1)
+#define TCA_ACT_FLAGS_SKIP_SW (1 << 2)
 #define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0)
 #define TCA_ACT_HW_STATS_DELAYED (1 << 1)
 #define TCA_ACT_MAX __TCA_ACT_MAX
@@ -146,6 +149,8 @@
   TCA_POLICE_PAD,
   TCA_POLICE_RATE64,
   TCA_POLICE_PEAKRATE64,
+  TCA_POLICE_PKTRATE64,
+  TCA_POLICE_PKTBURST64,
   __TCA_POLICE_MAX
 #define TCA_POLICE_RESULT TCA_POLICE_RESULT
 };
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pkt_sched.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
index d0541fc..e298b74 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
@@ -613,6 +613,7 @@
   __u32 dropping;
   __u32 ce_mark;
 };
+#define FQ_CODEL_QUANTUM_MAX (1 << 20)
 enum {
   TCA_FQ_CODEL_UNSPEC,
   TCA_FQ_CODEL_TARGET,
@@ -624,6 +625,8 @@
   TCA_FQ_CODEL_CE_THRESHOLD,
   TCA_FQ_CODEL_DROP_BATCH_SIZE,
   TCA_FQ_CODEL_MEMORY_LIMIT,
+  TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
+  TCA_FQ_CODEL_CE_THRESHOLD_MASK,
   __TCA_FQ_CODEL_MAX
 };
 #define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/prctl.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/prctl.h
index 6095881..9b4c695 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/prctl.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/prctl.h
@@ -138,6 +138,7 @@
 #define PR_SET_SPECULATION_CTRL 53
 #define PR_SPEC_STORE_BYPASS 0
 #define PR_SPEC_INDIRECT_BRANCH 1
+#define PR_SPEC_L1D_FLUSH 2
 #define PR_SPEC_NOT_AFFECTED 0
 #define PR_SPEC_PRCTL (1UL << 0)
 #define PR_SPEC_ENABLE (1UL << 1)
@@ -153,13 +154,13 @@
 #define PR_SET_TAGGED_ADDR_CTRL 55
 #define PR_GET_TAGGED_ADDR_CTRL 56
 #define PR_TAGGED_ADDR_ENABLE (1UL << 0)
-#define PR_MTE_TCF_SHIFT 1
-#define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT)
+#define PR_MTE_TCF_NONE 0UL
+#define PR_MTE_TCF_SYNC (1UL << 1)
+#define PR_MTE_TCF_ASYNC (1UL << 2)
+#define PR_MTE_TCF_MASK (PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC)
 #define PR_MTE_TAG_SHIFT 3
 #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
+#define PR_MTE_TCF_SHIFT 1
 #define PR_SET_IO_FLUSHER 57
 #define PR_GET_IO_FLUSHER 58
 #define PR_SET_SYSCALL_USER_DISPATCH 59
@@ -167,6 +168,17 @@
 #define PR_SYS_DISPATCH_ON 1
 #define SYSCALL_DISPATCH_FILTER_ALLOW 0
 #define SYSCALL_DISPATCH_FILTER_BLOCK 1
+#define PR_PAC_SET_ENABLED_KEYS 60
+#define PR_PAC_GET_ENABLED_KEYS 61
+#define PR_SCHED_CORE 62
+#define PR_SCHED_CORE_GET 0
+#define PR_SCHED_CORE_CREATE 1
+#define PR_SCHED_CORE_SHARE_TO 2
+#define PR_SCHED_CORE_SHARE_FROM 3
+#define PR_SCHED_CORE_MAX 4
+#define PR_SCHED_CORE_SCOPE_THREAD 0
+#define PR_SCHED_CORE_SCOPE_THREAD_GROUP 1
+#define PR_SCHED_CORE_SCOPE_PROCESS_GROUP 2
 #define PR_SET_VMA 0x53564d41
 #define PR_SET_VMA_ANON_NAME 0
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/psample.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/psample.h
index dc67445..efb1c24 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/psample.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/psample.h
@@ -28,6 +28,12 @@
   PSAMPLE_ATTR_DATA,
   PSAMPLE_ATTR_GROUP_REFCOUNT,
   PSAMPLE_ATTR_TUNNEL,
+  PSAMPLE_ATTR_PAD,
+  PSAMPLE_ATTR_OUT_TC,
+  PSAMPLE_ATTR_OUT_TC_OCC,
+  PSAMPLE_ATTR_LATENCY,
+  PSAMPLE_ATTR_TIMESTAMP,
+  PSAMPLE_ATTR_PROTO,
   __PSAMPLE_ATTR_MAX
 };
 enum psample_command {
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ptrace.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ptrace.h
index 5de0998..4bfa59a 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ptrace.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/ptrace.h
@@ -82,6 +82,14 @@
     } seccomp;
   };
 };
+#define PTRACE_GET_RSEQ_CONFIGURATION 0x420f
+struct ptrace_rseq_configuration {
+  __u64 rseq_abi_pointer;
+  __u32 rseq_abi_size;
+  __u32 signature;
+  __u32 flags;
+  __u32 pad;
+};
 #define PTRACE_EVENTMSG_SYSCALL_ENTRY 1
 #define PTRACE_EVENTMSG_SYSCALL_EXIT 2
 #define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rds.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rds.h
index bc29233..7006c87 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rds.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rds.h
@@ -217,7 +217,7 @@
   __u64 flags;
 };
 struct rds_get_mr_for_dest_args {
-  struct sockaddr_storage dest_addr;
+  struct __kernel_sockaddr_storage dest_addr;
   struct rds_iovec vec;
   __u64 cookie_addr;
   __u64 flags;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/resource.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/resource.h
index d76c273..6f531a0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/resource.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/resource.h
@@ -57,6 +57,6 @@
 #define PRIO_PGRP 1
 #define PRIO_USER 2
 #define _STK_LIM (8 * 1024 * 1024)
-#define MLOCK_LIMIT ((PAGE_SIZE > 64 * 1024) ? PAGE_SIZE : 64 * 1024)
+#define MLOCK_LIMIT (8 * 1024 * 1024)
 #include <asm/resource.h>
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rpmsg.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rpmsg.h
index 77f05e6..c5b5a76 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rpmsg.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rpmsg.h
@@ -20,6 +20,7 @@
 #define _UAPI_RPMSG_H_
 #include <linux/ioctl.h>
 #include <linux/types.h>
+#define RPMSG_ADDR_ANY 0xFFFFFFFF
 struct rpmsg_endpoint_info {
   char name[32];
   __u32 src;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rtc.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rtc.h
index 7f38483..cf5f22a 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rtc.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rtc.h
@@ -20,6 +20,7 @@
 #define _UAPI_LINUX_RTC_H_
 #include <linux/const.h>
 #include <linux/ioctl.h>
+#include <linux/types.h>
 struct rtc_time {
   int tm_sec;
   int tm_min;
@@ -45,6 +46,16 @@
   int pll_negmult;
   long pll_clock;
 };
+struct rtc_param {
+  __u64 param;
+  union {
+    __u64 uvalue;
+    __s64 svalue;
+    __u64 ptr;
+  };
+  __u32 index;
+  __u32 __pad;
+};
 #define RTC_AIE_ON _IO('p', 0x01)
 #define RTC_AIE_OFF _IO('p', 0x02)
 #define RTC_UIE_ON _IO('p', 0x03)
@@ -65,6 +76,8 @@
 #define RTC_WKALM_RD _IOR('p', 0x10, struct rtc_wkalrm)
 #define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info)
 #define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info)
+#define RTC_PARAM_GET _IOW('p', 0x13, struct rtc_param)
+#define RTC_PARAM_SET _IOW('p', 0x14, struct rtc_param)
 #define RTC_VL_DATA_INVALID _BITUL(0)
 #define RTC_VL_BACKUP_LOW _BITUL(1)
 #define RTC_VL_BACKUP_EMPTY _BITUL(2)
@@ -79,6 +92,17 @@
 #define RTC_FEATURE_ALARM 0
 #define RTC_FEATURE_ALARM_RES_MINUTE 1
 #define RTC_FEATURE_NEED_WEEK_DAY 2
-#define RTC_FEATURE_CNT 3
+#define RTC_FEATURE_ALARM_RES_2S 3
+#define RTC_FEATURE_UPDATE_INTERRUPT 4
+#define RTC_FEATURE_CORRECTION 5
+#define RTC_FEATURE_BACKUP_SWITCH_MODE 6
+#define RTC_FEATURE_CNT 7
+#define RTC_PARAM_FEATURES 0
+#define RTC_PARAM_CORRECTION 1
+#define RTC_PARAM_BACKUP_SWITCH_MODE 2
+#define RTC_BSM_DISABLED 0
+#define RTC_BSM_DIRECT 1
+#define RTC_BSM_LEVEL 2
+#define RTC_BSM_STANDBY 3
 #define RTC_MAX_FREQ 8192
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rtnetlink.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
index 22f8f1c..91c3ee4 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
@@ -157,6 +157,12 @@
 #define RTM_DELVLAN RTM_DELVLAN
   RTM_GETVLAN,
 #define RTM_GETVLAN RTM_GETVLAN
+  RTM_NEWNEXTHOPBUCKET = 116,
+#define RTM_NEWNEXTHOPBUCKET RTM_NEWNEXTHOPBUCKET
+  RTM_DELNEXTHOPBUCKET,
+#define RTM_DELNEXTHOPBUCKET RTM_DELNEXTHOPBUCKET
+  RTM_GETNEXTHOPBUCKET,
+#define RTM_GETNEXTHOPBUCKET RTM_GETNEXTHOPBUCKET
   __RTM_MAX,
 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
 };
@@ -219,6 +225,7 @@
 #define RTPROT_MROUTED 17
 #define RTPROT_KEEPALIVED 18
 #define RTPROT_BABEL 42
+#define RTPROT_OPENR 99
 #define RTPROT_BGP 186
 #define RTPROT_ISIS 187
 #define RTPROT_OSPF 188
@@ -552,6 +559,8 @@
 #define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP
   RTNLGRP_BRVLAN,
 #define RTNLGRP_BRVLAN RTNLGRP_BRVLAN
+  RTNLGRP_MCTP_IFADDR,
+#define RTNLGRP_MCTP_IFADDR RTNLGRP_MCTP_IFADDR
   __RTNLGRP_MAX
 };
 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/sctp.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/sctp.h
index 883920b..765d6c9 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/sctp.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/sctp.h
@@ -94,6 +94,7 @@
 #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
 #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
 #define SCTP_REMOTE_UDP_ENCAPS_PORT 132
+#define SCTP_PLPMTUD_PROBE_INTERVAL 133
 #define SCTP_PR_SCTP_NONE 0x0000
 #define SCTP_PR_SCTP_TTL 0x0010
 #define SCTP_PR_SCTP_RTX 0x0020
@@ -710,4 +711,9 @@
   SCTP_SS_RR,
   SCTP_SS_MAX = SCTP_SS_RR
 };
+struct sctp_probeinterval {
+  sctp_assoc_t spi_assoc_id;
+  struct sockaddr_storage spi_address;
+  __u32 spi_interval;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/seccomp.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/seccomp.h
index 0ae0e12..e58b421 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/seccomp.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/seccomp.h
@@ -69,6 +69,7 @@
   __u32 flags;
 };
 #define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0)
+#define SECCOMP_ADDFD_FLAG_SEND (1UL << 1)
 struct seccomp_notif_addfd {
   __u64 id;
   __u32 flags;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/seg6_local.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/seg6_local.h
index 9508eca..61a8d97 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/seg6_local.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/seg6_local.h
@@ -30,6 +30,7 @@
   SEG6_LOCAL_OIF,
   SEG6_LOCAL_BPF,
   SEG6_LOCAL_VRFTABLE,
+  SEG6_LOCAL_COUNTERS,
   __SEG6_LOCAL_MAX,
 };
 #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
@@ -50,6 +51,7 @@
   SEG6_LOCAL_ACTION_END_AS = 13,
   SEG6_LOCAL_ACTION_END_AM = 14,
   SEG6_LOCAL_ACTION_END_BPF = 15,
+  SEG6_LOCAL_ACTION_END_DT46 = 16,
   __SEG6_LOCAL_ACTION_MAX,
 };
 #define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1)
@@ -60,4 +62,13 @@
   __SEG6_LOCAL_BPF_PROG_MAX,
 };
 #define SEG6_LOCAL_BPF_PROG_MAX (__SEG6_LOCAL_BPF_PROG_MAX - 1)
+enum {
+  SEG6_LOCAL_CNT_UNSPEC,
+  SEG6_LOCAL_CNT_PAD,
+  SEG6_LOCAL_CNT_PACKETS,
+  SEG6_LOCAL_CNT_BYTES,
+  SEG6_LOCAL_CNT_ERRORS,
+  __SEG6_LOCAL_CNT_MAX,
+};
+#define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/smc.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/smc.h
index 88eef62..01494da 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/smc.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/smc.h
@@ -38,6 +38,9 @@
 #define SMC_GENL_FAMILY_NAME "SMC_GEN_NETLINK"
 #define SMC_GENL_FAMILY_VERSION 1
 #define SMC_PCI_ID_STR_LEN 16
+#define SMC_MAX_HOSTNAME_LEN 32
+#define SMC_MAX_UEID 4
+#define SMC_MAX_EID_LEN 32
 enum {
   SMC_NETLINK_GET_SYS_INFO = 1,
   SMC_NETLINK_GET_LGR_SMCR,
@@ -45,6 +48,15 @@
   SMC_NETLINK_GET_LGR_SMCD,
   SMC_NETLINK_GET_DEV_SMCD,
   SMC_NETLINK_GET_DEV_SMCR,
+  SMC_NETLINK_GET_STATS,
+  SMC_NETLINK_GET_FBACK_STATS,
+  SMC_NETLINK_DUMP_UEID,
+  SMC_NETLINK_ADD_UEID,
+  SMC_NETLINK_REMOVE_UEID,
+  SMC_NETLINK_FLUSH_UEID,
+  SMC_NETLINK_DUMP_SEID,
+  SMC_NETLINK_ENABLE_SEID,
+  SMC_NETLINK_DISABLE_SEID,
 };
 enum {
   SMC_GEN_UNSPEC,
@@ -54,6 +66,8 @@
   SMC_GEN_LGR_SMCD,
   SMC_GEN_DEV_SMCD,
   SMC_GEN_DEV_SMCR,
+  SMC_GEN_STATS,
+  SMC_GEN_FBACK_STATS,
   __SMC_GEN_MAX,
   SMC_GEN_MAX = __SMC_GEN_MAX - 1
 };
@@ -64,6 +78,7 @@
   SMC_NLA_SYS_IS_ISM_V2,
   SMC_NLA_SYS_LOCAL_HOST,
   SMC_NLA_SYS_SEID,
+  SMC_NLA_SYS_IS_SMCR_V2,
   __SMC_NLA_SYS_MAX,
   SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1
 };
@@ -73,6 +88,14 @@
   SMC_NLA_LGR_V2_OS,
   SMC_NLA_LGR_V2_NEG_EID,
   SMC_NLA_LGR_V2_PEER_HOST,
+  __SMC_NLA_LGR_V2_MAX,
+  SMC_NLA_LGR_V2_MAX = __SMC_NLA_LGR_V2_MAX - 1
+};
+enum {
+  SMC_NLA_LGR_R_V2_UNSPEC,
+  SMC_NLA_LGR_R_V2_DIRECT,
+  __SMC_NLA_LGR_R_V2_MAX,
+  SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1
 };
 enum {
   SMC_NLA_LGR_R_UNSPEC,
@@ -82,6 +105,10 @@
   SMC_NLA_LGR_R_PNETID,
   SMC_NLA_LGR_R_VLAN_ID,
   SMC_NLA_LGR_R_CONNS_NUM,
+  SMC_NLA_LGR_R_V2_COMMON,
+  SMC_NLA_LGR_R_V2,
+  SMC_NLA_LGR_R_NET_COOKIE,
+  SMC_NLA_LGR_R_PAD,
   __SMC_NLA_LGR_R_MAX,
   SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1
 };
@@ -110,7 +137,7 @@
   SMC_NLA_LGR_D_PNETID,
   SMC_NLA_LGR_D_CHID,
   SMC_NLA_LGR_D_PAD,
-  SMC_NLA_LGR_V2,
+  SMC_NLA_LGR_D_V2_COMMON,
   __SMC_NLA_LGR_D_MAX,
   SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
 };
@@ -140,4 +167,86 @@
   __SMC_NLA_DEV_MAX,
   SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
 };
+enum {
+  SMC_NLA_STATS_PLOAD_PAD,
+  SMC_NLA_STATS_PLOAD_8K,
+  SMC_NLA_STATS_PLOAD_16K,
+  SMC_NLA_STATS_PLOAD_32K,
+  SMC_NLA_STATS_PLOAD_64K,
+  SMC_NLA_STATS_PLOAD_128K,
+  SMC_NLA_STATS_PLOAD_256K,
+  SMC_NLA_STATS_PLOAD_512K,
+  SMC_NLA_STATS_PLOAD_1024K,
+  SMC_NLA_STATS_PLOAD_G_1024K,
+  __SMC_NLA_STATS_PLOAD_MAX,
+  SMC_NLA_STATS_PLOAD_MAX = __SMC_NLA_STATS_PLOAD_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_RMB_PAD,
+  SMC_NLA_STATS_RMB_SIZE_SM_PEER_CNT,
+  SMC_NLA_STATS_RMB_SIZE_SM_CNT,
+  SMC_NLA_STATS_RMB_FULL_PEER_CNT,
+  SMC_NLA_STATS_RMB_FULL_CNT,
+  SMC_NLA_STATS_RMB_REUSE_CNT,
+  SMC_NLA_STATS_RMB_ALLOC_CNT,
+  SMC_NLA_STATS_RMB_DGRADE_CNT,
+  __SMC_NLA_STATS_RMB_MAX,
+  SMC_NLA_STATS_RMB_MAX = __SMC_NLA_STATS_RMB_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_T_PAD,
+  SMC_NLA_STATS_T_TX_RMB_SIZE,
+  SMC_NLA_STATS_T_RX_RMB_SIZE,
+  SMC_NLA_STATS_T_TXPLOAD_SIZE,
+  SMC_NLA_STATS_T_RXPLOAD_SIZE,
+  SMC_NLA_STATS_T_TX_RMB_STATS,
+  SMC_NLA_STATS_T_RX_RMB_STATS,
+  SMC_NLA_STATS_T_CLNT_V1_SUCC,
+  SMC_NLA_STATS_T_CLNT_V2_SUCC,
+  SMC_NLA_STATS_T_SRV_V1_SUCC,
+  SMC_NLA_STATS_T_SRV_V2_SUCC,
+  SMC_NLA_STATS_T_SENDPAGE_CNT,
+  SMC_NLA_STATS_T_SPLICE_CNT,
+  SMC_NLA_STATS_T_CORK_CNT,
+  SMC_NLA_STATS_T_NDLY_CNT,
+  SMC_NLA_STATS_T_URG_DATA_CNT,
+  SMC_NLA_STATS_T_RX_BYTES,
+  SMC_NLA_STATS_T_TX_BYTES,
+  SMC_NLA_STATS_T_RX_CNT,
+  SMC_NLA_STATS_T_TX_CNT,
+  __SMC_NLA_STATS_T_MAX,
+  SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_PAD,
+  SMC_NLA_STATS_SMCD_TECH,
+  SMC_NLA_STATS_SMCR_TECH,
+  SMC_NLA_STATS_CLNT_HS_ERR_CNT,
+  SMC_NLA_STATS_SRV_HS_ERR_CNT,
+  __SMC_NLA_STATS_MAX,
+  SMC_NLA_STATS_MAX = __SMC_NLA_STATS_MAX - 1
+};
+enum {
+  SMC_NLA_FBACK_STATS_PAD,
+  SMC_NLA_FBACK_STATS_TYPE,
+  SMC_NLA_FBACK_STATS_SRV_CNT,
+  SMC_NLA_FBACK_STATS_CLNT_CNT,
+  SMC_NLA_FBACK_STATS_RSN_CODE,
+  SMC_NLA_FBACK_STATS_RSN_CNT,
+  __SMC_NLA_FBACK_STATS_MAX,
+  SMC_NLA_FBACK_STATS_MAX = __SMC_NLA_FBACK_STATS_MAX - 1
+};
+enum {
+  SMC_NLA_EID_TABLE_UNSPEC,
+  SMC_NLA_EID_TABLE_ENTRY,
+  __SMC_NLA_EID_TABLE_MAX,
+  SMC_NLA_EID_TABLE_MAX = __SMC_NLA_EID_TABLE_MAX - 1
+};
+enum {
+  SMC_NLA_SEID_UNSPEC,
+  SMC_NLA_SEID_ENTRY,
+  SMC_NLA_SEID_ENABLED,
+  __SMC_NLA_SEID_TABLE_MAX,
+  SMC_NLA_SEID_TABLE_MAX = __SMC_NLA_SEID_TABLE_MAX - 1
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/snmp.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/snmp.h
index 40e8fa5..a503a7e 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/snmp.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/snmp.h
@@ -257,6 +257,8 @@
   LINUX_MIB_TCPDUPLICATEDATAREHASH,
   LINUX_MIB_TCPDSACKRECVSEGS,
   LINUX_MIB_TCPDSACKIGNOREDDUBIOUS,
+  LINUX_MIB_TCPMIGRATEREQSUCCESS,
+  LINUX_MIB_TCPMIGRATEREQFAILURE,
   __LINUX_MIB_MAX
 };
 enum {
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/socket.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/socket.h
index 608d31f..be16548 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/socket.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/socket.h
@@ -20,7 +20,7 @@
 #define _UAPI_LINUX_SOCKET_H
 #define _K_SS_MAXSIZE 128
 typedef unsigned short __kernel_sa_family_t;
-struct sockaddr_storage {
+struct __kernel_sockaddr_storage {
   union {
     struct {
       __kernel_sa_family_t ss_family;
@@ -29,4 +29,7 @@
     void * __align;
   };
 };
+#define SOCK_SNDBUF_LOCK 1
+#define SOCK_RCVBUF_LOCK 2
+#define SOCK_BUF_LOCK_MASK (SOCK_SNDBUF_LOCK | SOCK_RCVBUF_LOCK)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/stddef.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/stddef.h
index 2a5fd95..d5cdf80 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/stddef.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/stddef.h
@@ -20,3 +20,5 @@
 #ifndef __always_inline
 #define __always_inline inline
 #endif
+#define __struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct TAG { MEMBERS } ATTRS NAME; }
+#define __DECLARE_FLEX_ARRAY(TYPE,NAME) struct { struct { } __empty_ ##NAME; TYPE NAME[]; }
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
index 25bfd8d..2e097f0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
@@ -42,5 +42,34 @@
     __u8 __pad[6];
   } response;
 } __attribute__((__packed__));
+struct ssam_cdev_notifier_desc {
+  __s32 priority;
+  __u8 target_category;
+} __attribute__((__packed__));
+struct ssam_cdev_event_desc {
+  struct {
+    __u8 target_category;
+    __u8 target_id;
+    __u8 cid_enable;
+    __u8 cid_disable;
+  } reg;
+  struct {
+    __u8 target_category;
+    __u8 instance;
+  } id;
+  __u8 flags;
+} __attribute__((__packed__));
+struct ssam_cdev_event {
+  __u8 target_category;
+  __u8 target_id;
+  __u8 command_id;
+  __u8 instance_id;
+  __u16 length;
+  __u8 data[];
+} __attribute__((__packed__));
 #define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request)
+#define SSAM_CDEV_NOTIF_REGISTER _IOW(0xA5, 2, struct ssam_cdev_notifier_desc)
+#define SSAM_CDEV_NOTIF_UNREGISTER _IOW(0xA5, 3, struct ssam_cdev_notifier_desc)
+#define SSAM_CDEV_EVENT_ENABLE _IOW(0xA5, 4, struct ssam_cdev_event_desc)
+#define SSAM_CDEV_EVENT_DISABLE _IOW(0xA5, 5, struct ssam_cdev_event_desc)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h
new file mode 100644
index 0000000..dde5ad3
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_SURFACE_AGGREGATOR_DTX_H
+#define _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define SDTX_CATEGORY_STATUS 0x0000
+#define SDTX_CATEGORY_RUNTIME_ERROR 0x1000
+#define SDTX_CATEGORY_HARDWARE_ERROR 0x2000
+#define SDTX_CATEGORY_UNKNOWN 0xf000
+#define SDTX_CATEGORY_MASK 0xf000
+#define SDTX_CATEGORY(value) ((value) & SDTX_CATEGORY_MASK)
+#define SDTX_STATUS(code) ((code) | SDTX_CATEGORY_STATUS)
+#define SDTX_ERR_RT(code) ((code) | SDTX_CATEGORY_RUNTIME_ERROR)
+#define SDTX_ERR_HW(code) ((code) | SDTX_CATEGORY_HARDWARE_ERROR)
+#define SDTX_UNKNOWN(code) ((code) | SDTX_CATEGORY_UNKNOWN)
+#define SDTX_SUCCESS(value) (SDTX_CATEGORY(value) == SDTX_CATEGORY_STATUS)
+#define SDTX_LATCH_CLOSED SDTX_STATUS(0x00)
+#define SDTX_LATCH_OPENED SDTX_STATUS(0x01)
+#define SDTX_BASE_DETACHED SDTX_STATUS(0x00)
+#define SDTX_BASE_ATTACHED SDTX_STATUS(0x01)
+#define SDTX_DETACH_NOT_FEASIBLE SDTX_ERR_RT(0x01)
+#define SDTX_DETACH_TIMEDOUT SDTX_ERR_RT(0x02)
+#define SDTX_ERR_FAILED_TO_OPEN SDTX_ERR_HW(0x01)
+#define SDTX_ERR_FAILED_TO_REMAIN_OPEN SDTX_ERR_HW(0x02)
+#define SDTX_ERR_FAILED_TO_CLOSE SDTX_ERR_HW(0x03)
+#define SDTX_DEVICE_TYPE_HID 0x0100
+#define SDTX_DEVICE_TYPE_SSH 0x0200
+#define SDTX_DEVICE_TYPE_MASK 0x0f00
+#define SDTX_DEVICE_TYPE(value) ((value) & SDTX_DEVICE_TYPE_MASK)
+#define SDTX_BASE_TYPE_HID(id) ((id) | SDTX_DEVICE_TYPE_HID)
+#define SDTX_BASE_TYPE_SSH(id) ((id) | SDTX_DEVICE_TYPE_SSH)
+enum sdtx_device_mode {
+  SDTX_DEVICE_MODE_TABLET = 0x00,
+  SDTX_DEVICE_MODE_LAPTOP = 0x01,
+  SDTX_DEVICE_MODE_STUDIO = 0x02,
+};
+struct sdtx_event {
+  __u16 length;
+  __u16 code;
+  __u8 data[];
+} __attribute__((__packed__));
+enum sdtx_event_code {
+  SDTX_EVENT_REQUEST = 1,
+  SDTX_EVENT_CANCEL = 2,
+  SDTX_EVENT_BASE_CONNECTION = 3,
+  SDTX_EVENT_LATCH_STATUS = 4,
+  SDTX_EVENT_DEVICE_MODE = 5,
+};
+struct sdtx_base_info {
+  __u16 state;
+  __u16 base_id;
+} __attribute__((__packed__));
+#define SDTX_IOCTL_EVENTS_ENABLE _IO(0xa5, 0x21)
+#define SDTX_IOCTL_EVENTS_DISABLE _IO(0xa5, 0x22)
+#define SDTX_IOCTL_LATCH_LOCK _IO(0xa5, 0x23)
+#define SDTX_IOCTL_LATCH_UNLOCK _IO(0xa5, 0x24)
+#define SDTX_IOCTL_LATCH_REQUEST _IO(0xa5, 0x25)
+#define SDTX_IOCTL_LATCH_CONFIRM _IO(0xa5, 0x26)
+#define SDTX_IOCTL_LATCH_HEARTBEAT _IO(0xa5, 0x27)
+#define SDTX_IOCTL_LATCH_CANCEL _IO(0xa5, 0x28)
+#define SDTX_IOCTL_GET_BASE_INFO _IOR(0xa5, 0x29, struct sdtx_base_info)
+#define SDTX_IOCTL_GET_DEVICE_MODE _IOR(0xa5, 0x2a, __u16)
+#define SDTX_IOCTL_GET_LATCH_STATUS _IOR(0xa5, 0x2b, __u16)
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/sysctl.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/sysctl.h
index ebaf8a9..ae9c2ba 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/sysctl.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/sysctl.h
@@ -407,6 +407,7 @@
   NET_IPV4_CONF_PROMOTE_SECONDARIES = 20,
   NET_IPV4_CONF_ARP_ACCEPT = 21,
   NET_IPV4_CONF_ARP_NOTIFY = 22,
+  NET_IPV4_CONF_ARP_EVICT_NOCARRIER = 23,
 };
 enum {
   NET_IPV4_NF_CONNTRACK_MAX = 1,
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/target_core_user.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/target_core_user.h
index e0b9f22..dcba00e 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/target_core_user.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/target_core_user.h
@@ -26,6 +26,7 @@
 #define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0)
 #define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1)
 #define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2)
+#define TCMU_MAILBOX_FLAG_CAP_KEEP_BUF (1 << 3)
 struct tcmu_mailbox {
   __u16 version;
   __u16 flags;
@@ -45,6 +46,7 @@
   __u8 kflags;
 #define TCMU_UFLAG_UNKNOWN_OP 0x1
 #define TCMU_UFLAG_READ_LEN 0x2
+#define TCMU_UFLAG_KEEP_BUF 0x4
   __u8 uflags;
 } __packed;
 #define TCMU_OP_MASK 0x7
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/taskstats.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/taskstats.h
index 5f9d0cc..efa5b4a 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/taskstats.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/taskstats.h
@@ -19,7 +19,7 @@
 #ifndef _LINUX_TASKSTATS_H
 #define _LINUX_TASKSTATS_H
 #include <linux/types.h>
-#define TASKSTATS_VERSION 10
+#define TASKSTATS_VERSION 11
 #define TS_COMM_LEN 32
 struct taskstats {
   __u16 version;
@@ -69,6 +69,8 @@
   __u64 thrashing_count;
   __u64 thrashing_delay_total;
   __u64 ac_btime64;
+  __u64 compact_count;
+  __u64 compact_delay_total;
 };
 enum {
   TASKSTATS_CMD_UNSPEC = 0,
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
index 0a53b06..f0cd928 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
@@ -23,6 +23,7 @@
 #define SKBMOD_F_SMAC 0x2
 #define SKBMOD_F_ETYPE 0x4
 #define SKBMOD_F_SWAPMAC 0x8
+#define SKBMOD_F_ECN 0x10
 struct tc_skbmod {
   tc_gen;
   __u64 flags;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tcp.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tcp.h
index 99c5bff..c96d695 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tcp.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tcp.h
@@ -226,7 +226,7 @@
 #define TCP_MD5SIG_FLAG_PREFIX 0x1
 #define TCP_MD5SIG_FLAG_IFINDEX 0x2
 struct tcp_md5sig {
-  struct sockaddr_storage tcpm_addr;
+  struct __kernel_sockaddr_storage tcpm_addr;
   __u8 tcpm_flags;
   __u8 tcpm_prefixlen;
   __u16 tcpm_keylen;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tls.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tls.h
index c765f30..c98ea0b 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tls.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tls.h
@@ -54,6 +54,18 @@
 #define TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE 0
 #define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE 16
 #define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE 8
+#define TLS_CIPHER_SM4_GCM 55
+#define TLS_CIPHER_SM4_GCM_IV_SIZE 8
+#define TLS_CIPHER_SM4_GCM_KEY_SIZE 16
+#define TLS_CIPHER_SM4_GCM_SALT_SIZE 4
+#define TLS_CIPHER_SM4_GCM_TAG_SIZE 16
+#define TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE 8
+#define TLS_CIPHER_SM4_CCM 56
+#define TLS_CIPHER_SM4_CCM_IV_SIZE 8
+#define TLS_CIPHER_SM4_CCM_KEY_SIZE 16
+#define TLS_CIPHER_SM4_CCM_SALT_SIZE 4
+#define TLS_CIPHER_SM4_CCM_TAG_SIZE 16
+#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8
 #define TLS_SET_RECORD_TYPE 1
 #define TLS_GET_RECORD_TYPE 2
 struct tls_crypto_info {
@@ -88,6 +100,20 @@
   unsigned char salt[TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE];
   unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE];
 };
+struct tls12_crypto_info_sm4_gcm {
+  struct tls_crypto_info info;
+  unsigned char iv[TLS_CIPHER_SM4_GCM_IV_SIZE];
+  unsigned char key[TLS_CIPHER_SM4_GCM_KEY_SIZE];
+  unsigned char salt[TLS_CIPHER_SM4_GCM_SALT_SIZE];
+  unsigned char rec_seq[TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE];
+};
+struct tls12_crypto_info_sm4_ccm {
+  struct tls_crypto_info info;
+  unsigned char iv[TLS_CIPHER_SM4_CCM_IV_SIZE];
+  unsigned char key[TLS_CIPHER_SM4_CCM_KEY_SIZE];
+  unsigned char salt[TLS_CIPHER_SM4_CCM_SALT_SIZE];
+  unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
+};
 enum {
   TLS_INFO_UNSPEC,
   TLS_INFO_VERSION,
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tty.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tty.h
index 48fa908..dcce572 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tty.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tty.h
@@ -47,4 +47,5 @@
 #define N_NCI 25
 #define N_SPEAKUP 26
 #define N_NULL 27
+#define N_MCTP 28
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tty_flags.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tty_flags.h
index fe591e5..b8354cf 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tty_flags.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/tty_flags.h
@@ -36,7 +36,6 @@
 #define ASYNCB_AUTOPROBE 15
 #define ASYNCB_MAGIC_MULTIPLIER 16
 #define ASYNCB_LAST_USER 16
-#ifndef _KERNEL_
 #define ASYNCB_INITIALIZED 31
 #define ASYNCB_SUSPENDED 30
 #define ASYNCB_NORMAL_ACTIVE 29
@@ -47,7 +46,6 @@
 #define ASYNCB_SHARE_IRQ 24
 #define ASYNCB_CONS_FLOW 23
 #define ASYNCB_FIRST_KERNEL 22
-#endif
 #define ASYNC_HUP_NOTIFY (1U << ASYNCB_HUP_NOTIFY)
 #define ASYNC_SUSPENDED (1U << ASYNCB_SUSPENDED)
 #define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
@@ -67,12 +65,11 @@
 #define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE)
 #define ASYNC_MAGIC_MULTIPLIER (1U << ASYNCB_MAGIC_MULTIPLIER)
 #define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1)
-#define ASYNC_DEPRECATED (ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
+#define ASYNC_DEPRECATED (ASYNC_SPLIT_TERMIOS | ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
 #define ASYNC_USR_MASK (ASYNC_SPD_MASK | ASYNC_CALLOUT_NOHUP | ASYNC_LOW_LATENCY)
 #define ASYNC_SPD_CUST (ASYNC_SPD_HI | ASYNC_SPD_VHI)
 #define ASYNC_SPD_WARP (ASYNC_SPD_HI | ASYNC_SPD_SHI)
 #define ASYNC_SPD_MASK (ASYNC_SPD_HI | ASYNC_SPD_VHI | ASYNC_SPD_SHI)
-#ifndef _KERNEL_
 #define ASYNC_INITIALIZED (1U << ASYNCB_INITIALIZED)
 #define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE)
 #define ASYNC_BOOT_AUTOCONF (1U << ASYNCB_BOOT_AUTOCONF)
@@ -83,4 +80,3 @@
 #define ASYNC_CONS_FLOW (1U << ASYNCB_CONS_FLOW)
 #define ASYNC_INTERNAL_FLAGS (~((1U << ASYNCB_FIRST_KERNEL) - 1))
 #endif
-#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/usb/video.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/usb/video.h
index cd2ede9..b45bada 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/usb/video.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/usb/video.h
@@ -217,8 +217,9 @@
   __u8 bControlSize;
   __u8 bmControls[2];
   __u8 iProcessing;
+  __u8 bmVideoStandards;
 } __attribute__((__packed__));
-#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9 + (n))
+#define UVC_DT_PROCESSING_UNIT_SIZE(n) (10 + (n))
 struct uvc_extension_unit_descriptor {
   __u8 bLength;
   __u8 bDescriptorType;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/userfaultfd.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
index fc100ae..ca7b7a5 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
@@ -20,16 +20,18 @@
 #define _LINUX_USERFAULTFD_H
 #include <linux/types.h>
 #define UFFD_API ((__u64) 0xAA)
-#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID)
+#define UFFD_API_REGISTER_MODES (UFFDIO_REGISTER_MODE_MISSING | UFFDIO_REGISTER_MODE_WP | UFFDIO_REGISTER_MODE_MINOR)
+#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID | UFFD_FEATURE_MINOR_HUGETLBFS | UFFD_FEATURE_MINOR_SHMEM)
 #define UFFD_API_IOCTLS ((__u64) 1 << _UFFDIO_REGISTER | (__u64) 1 << _UFFDIO_UNREGISTER | (__u64) 1 << _UFFDIO_API)
-#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT)
-#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY)
+#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT | (__u64) 1 << _UFFDIO_CONTINUE)
+#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_CONTINUE)
 #define _UFFDIO_REGISTER (0x00)
 #define _UFFDIO_UNREGISTER (0x01)
 #define _UFFDIO_WAKE (0x02)
 #define _UFFDIO_COPY (0x03)
 #define _UFFDIO_ZEROPAGE (0x04)
 #define _UFFDIO_WRITEPROTECT (0x06)
+#define _UFFDIO_CONTINUE (0x07)
 #define _UFFDIO_API (0x3F)
 #define UFFDIO 0xAA
 #define UFFDIO_API _IOWR(UFFDIO, _UFFDIO_API, struct uffdio_api)
@@ -39,6 +41,7 @@
 #define UFFDIO_COPY _IOWR(UFFDIO, _UFFDIO_COPY, struct uffdio_copy)
 #define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, struct uffdio_zeropage)
 #define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, struct uffdio_writeprotect)
+#define UFFDIO_CONTINUE _IOWR(UFFDIO, _UFFDIO_CONTINUE, struct uffdio_continue)
 struct uffd_msg {
   __u8 event;
   __u8 reserved1;
@@ -78,6 +81,7 @@
 #define UFFD_EVENT_UNMAP 0x16
 #define UFFD_PAGEFAULT_FLAG_WRITE (1 << 0)
 #define UFFD_PAGEFAULT_FLAG_WP (1 << 1)
+#define UFFD_PAGEFAULT_FLAG_MINOR (1 << 2)
 struct uffdio_api {
   __u64 api;
 #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1 << 0)
@@ -89,6 +93,8 @@
 #define UFFD_FEATURE_EVENT_UNMAP (1 << 6)
 #define UFFD_FEATURE_SIGBUS (1 << 7)
 #define UFFD_FEATURE_THREAD_ID (1 << 8)
+#define UFFD_FEATURE_MINOR_HUGETLBFS (1 << 9)
+#define UFFD_FEATURE_MINOR_SHMEM (1 << 10)
   __u64 features;
   __u64 ioctls;
 };
@@ -100,6 +106,7 @@
   struct uffdio_range range;
 #define UFFDIO_REGISTER_MODE_MISSING ((__u64) 1 << 0)
 #define UFFDIO_REGISTER_MODE_WP ((__u64) 1 << 1)
+#define UFFDIO_REGISTER_MODE_MINOR ((__u64) 1 << 2)
   __u64 mode;
   __u64 ioctls;
 };
@@ -124,5 +131,11 @@
 #define UFFDIO_WRITEPROTECT_MODE_DONTWAKE ((__u64) 1 << 1)
   __u64 mode;
 };
+struct uffdio_continue {
+  struct uffdio_range range;
+#define UFFDIO_CONTINUE_MODE_DONTWAKE ((__u64) 1 << 0)
+  __u64 mode;
+  __s64 mapped;
+};
 #define UFFD_USER_MODE_ONLY 1
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
index 75e5ccd..1a11355 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef __LINUX_V4L2_CONTROLS_H
 #define __LINUX_V4L2_CONTROLS_H
+#include <linux/const.h>
 #include <linux/types.h>
 #define V4L2_CTRL_CLASS_USER 0x00980000
 #define V4L2_CTRL_CLASS_CODEC 0x00990000
@@ -32,6 +33,7 @@
 #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000
 #define V4L2_CTRL_CLASS_DETECT 0x00a30000
 #define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000
+#define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000
 #define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
 #define V4L2_CID_USER_BASE V4L2_CID_BASE
 #define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
@@ -88,6 +90,7 @@
   V4L2_COLORFX_SOLARIZATION = 13,
   V4L2_COLORFX_ANTIQUE = 14,
   V4L2_COLORFX_SET_CBCR = 15,
+  V4L2_COLORFX_SET_RGB = 16,
 };
 #define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE + 32)
 #define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE + 33)
@@ -100,7 +103,8 @@
 #define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE + 40)
 #define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE + 41)
 #define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE + 42)
-#define V4L2_CID_LASTP1 (V4L2_CID_BASE + 43)
+#define V4L2_CID_COLORFX_RGB (V4L2_CID_BASE + 43)
+#define V4L2_CID_LASTP1 (V4L2_CID_BASE + 44)
 #define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000)
 #define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010)
 #define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030)
@@ -114,6 +118,7 @@
 #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0)
 #define V4L2_CID_USER_CODA_BASE (V4L2_CID_USER_BASE + 0x10e0)
 #define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0)
+#define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170)
 #define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900)
 #define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1)
 #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE + 0)
@@ -318,6 +323,12 @@
 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE + 228)
 #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE + 229)
 #define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE + 230)
+#define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_CODEC_BASE + 231)
+#define V4L2_CID_MPEG_VIDEO_LTR_COUNT (V4L2_CID_CODEC_BASE + 232)
+#define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (V4L2_CID_CODEC_BASE + 233)
+#define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_CODEC_BASE + 234)
+#define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_CODEC_BASE + 235)
+#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (V4L2_CID_CODEC_BASE + 236)
 #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE + 270)
 enum v4l2_mpeg_video_mpeg2_level {
   V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
@@ -670,6 +681,8 @@
 #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 650)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 651)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652)
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_CODEC_BASE + 653)
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_BASE + 654)
 #define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
 #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE + 0)
 enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
@@ -926,6 +939,7 @@
 #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
 #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
 #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
+#define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9)
 #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
 #define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1)
 #define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
@@ -1158,17 +1172,17 @@
   __u32 flags;
 };
 #define V4L2_FWHT_VERSION 3
-#define V4L2_FWHT_FL_IS_INTERLACED BIT(0)
-#define V4L2_FWHT_FL_IS_BOTTOM_FIRST BIT(1)
-#define V4L2_FWHT_FL_IS_ALTERNATE BIT(2)
-#define V4L2_FWHT_FL_IS_BOTTOM_FIELD BIT(3)
-#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED BIT(4)
-#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED BIT(5)
-#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED BIT(6)
-#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT BIT(7)
-#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH BIT(8)
-#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED BIT(9)
-#define V4L2_FWHT_FL_I_FRAME BIT(10)
+#define V4L2_FWHT_FL_IS_INTERLACED _BITUL(0)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIRST _BITUL(1)
+#define V4L2_FWHT_FL_IS_ALTERNATE _BITUL(2)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIELD _BITUL(3)
+#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED _BITUL(4)
+#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED _BITUL(5)
+#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED _BITUL(6)
+#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT _BITUL(7)
+#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH _BITUL(8)
+#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED _BITUL(9)
+#define V4L2_FWHT_FL_I_FRAME _BITUL(10)
 #define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16)
 #define V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET 16
 #define V4L2_FWHT_FL_PIXENC_MSK GENMASK(20, 19)
@@ -1188,6 +1202,279 @@
   __u32 ycbcr_enc;
   __u32 quantization;
 };
+#define V4L2_VP8_SEGMENT_FLAG_ENABLED 0x01
+#define V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP 0x02
+#define V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA 0x04
+#define V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE 0x08
+struct v4l2_vp8_segment {
+  __s8 quant_update[4];
+  __s8 lf_update[4];
+  __u8 segment_probs[3];
+  __u8 padding;
+  __u32 flags;
+};
+#define V4L2_VP8_LF_ADJ_ENABLE 0x01
+#define V4L2_VP8_LF_DELTA_UPDATE 0x02
+#define V4L2_VP8_LF_FILTER_TYPE_SIMPLE 0x04
+struct v4l2_vp8_loop_filter {
+  __s8 ref_frm_delta[4];
+  __s8 mb_mode_delta[4];
+  __u8 sharpness_level;
+  __u8 level;
+  __u16 padding;
+  __u32 flags;
+};
+struct v4l2_vp8_quantization {
+  __u8 y_ac_qi;
+  __s8 y_dc_delta;
+  __s8 y2_dc_delta;
+  __s8 y2_ac_delta;
+  __s8 uv_dc_delta;
+  __s8 uv_ac_delta;
+  __u16 padding;
+};
+#define V4L2_VP8_COEFF_PROB_CNT 11
+#define V4L2_VP8_MV_PROB_CNT 19
+struct v4l2_vp8_entropy {
+  __u8 coeff_probs[4][8][3][V4L2_VP8_COEFF_PROB_CNT];
+  __u8 y_mode_probs[4];
+  __u8 uv_mode_probs[3];
+  __u8 mv_probs[2][V4L2_VP8_MV_PROB_CNT];
+  __u8 padding[3];
+};
+struct v4l2_vp8_entropy_coder_state {
+  __u8 range;
+  __u8 value;
+  __u8 bit_count;
+  __u8 padding;
+};
+#define V4L2_VP8_FRAME_FLAG_KEY_FRAME 0x01
+#define V4L2_VP8_FRAME_FLAG_EXPERIMENTAL 0x02
+#define V4L2_VP8_FRAME_FLAG_SHOW_FRAME 0x04
+#define V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF 0x08
+#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN 0x10
+#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT 0x20
+#define V4L2_VP8_FRAME_IS_KEY_FRAME(hdr) (! ! ((hdr)->flags & V4L2_VP8_FRAME_FLAG_KEY_FRAME))
+#define V4L2_CID_STATELESS_VP8_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 200)
+struct v4l2_ctrl_vp8_frame {
+  struct v4l2_vp8_segment segment;
+  struct v4l2_vp8_loop_filter lf;
+  struct v4l2_vp8_quantization quant;
+  struct v4l2_vp8_entropy entropy;
+  struct v4l2_vp8_entropy_coder_state coder_state;
+  __u16 width;
+  __u16 height;
+  __u8 horizontal_scale;
+  __u8 vertical_scale;
+  __u8 version;
+  __u8 prob_skip_false;
+  __u8 prob_intra;
+  __u8 prob_last;
+  __u8 prob_gf;
+  __u8 num_dct_parts;
+  __u32 first_part_size;
+  __u32 first_part_header_bits;
+  __u32 dct_part_sizes[8];
+  __u64 last_frame_ts;
+  __u64 golden_frame_ts;
+  __u64 alt_frame_ts;
+  __u64 flags;
+};
+#define V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE 0x01
+#define V4L2_CID_STATELESS_MPEG2_SEQUENCE (V4L2_CID_CODEC_STATELESS_BASE + 220)
+struct v4l2_ctrl_mpeg2_sequence {
+  __u16 horizontal_size;
+  __u16 vertical_size;
+  __u32 vbv_buffer_size;
+  __u16 profile_and_level_indication;
+  __u8 chroma_format;
+  __u8 flags;
+};
+#define V4L2_MPEG2_PIC_CODING_TYPE_I 1
+#define V4L2_MPEG2_PIC_CODING_TYPE_P 2
+#define V4L2_MPEG2_PIC_CODING_TYPE_B 3
+#define V4L2_MPEG2_PIC_CODING_TYPE_D 4
+#define V4L2_MPEG2_PIC_TOP_FIELD 0x1
+#define V4L2_MPEG2_PIC_BOTTOM_FIELD 0x2
+#define V4L2_MPEG2_PIC_FRAME 0x3
+#define V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST 0x0001
+#define V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT 0x0002
+#define V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV 0x0004
+#define V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE 0x0008
+#define V4L2_MPEG2_PIC_FLAG_INTRA_VLC 0x0010
+#define V4L2_MPEG2_PIC_FLAG_ALT_SCAN 0x0020
+#define V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST 0x0040
+#define V4L2_MPEG2_PIC_FLAG_PROGRESSIVE 0x0080
+#define V4L2_CID_STATELESS_MPEG2_PICTURE (V4L2_CID_CODEC_STATELESS_BASE + 221)
+struct v4l2_ctrl_mpeg2_picture {
+  __u64 backward_ref_ts;
+  __u64 forward_ref_ts;
+  __u32 flags;
+  __u8 f_code[2][2];
+  __u8 picture_coding_type;
+  __u8 picture_structure;
+  __u8 intra_dc_precision;
+  __u8 reserved[5];
+};
+#define V4L2_CID_STATELESS_MPEG2_QUANTISATION (V4L2_CID_CODEC_STATELESS_BASE + 222)
+struct v4l2_ctrl_mpeg2_quantisation {
+  __u8 intra_quantiser_matrix[64];
+  __u8 non_intra_quantiser_matrix[64];
+  __u8 chroma_intra_quantiser_matrix[64];
+  __u8 chroma_non_intra_quantiser_matrix[64];
+};
+#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
+#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
+#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
+struct v4l2_ctrl_hdr10_cll_info {
+  __u16 max_content_light_level;
+  __u16 max_pic_average_light_level;
+};
+#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000
+#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000
+#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000
+#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1
+#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000
+struct v4l2_ctrl_hdr10_mastering_display {
+  __u16 display_primaries_x[3];
+  __u16 display_primaries_y[3];
+  __u16 white_point_x;
+  __u16 white_point_y;
+  __u32 max_display_mastering_luminance;
+  __u32 min_display_mastering_luminance;
+};
+#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1
+#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2
+struct v4l2_vp9_loop_filter {
+  __s8 ref_deltas[4];
+  __s8 mode_deltas[2];
+  __u8 level;
+  __u8 sharpness;
+  __u8 flags;
+  __u8 reserved[7];
+};
+struct v4l2_vp9_quantization {
+  __u8 base_q_idx;
+  __s8 delta_q_y_dc;
+  __s8 delta_q_uv_dc;
+  __s8 delta_q_uv_ac;
+  __u8 reserved[4];
+};
+#define V4L2_VP9_SEGMENTATION_FLAG_ENABLED 0x01
+#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP 0x02
+#define V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE 0x04
+#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA 0x08
+#define V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE 0x10
+#define V4L2_VP9_SEG_LVL_ALT_Q 0
+#define V4L2_VP9_SEG_LVL_ALT_L 1
+#define V4L2_VP9_SEG_LVL_REF_FRAME 2
+#define V4L2_VP9_SEG_LVL_SKIP 3
+#define V4L2_VP9_SEG_LVL_MAX 4
+#define V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) (1 << (id))
+#define V4L2_VP9_SEGMENT_FEATURE_ENABLED_MASK 0xf
+struct v4l2_vp9_segmentation {
+  __s16 feature_data[8][4];
+  __u8 feature_enabled[8];
+  __u8 tree_probs[7];
+  __u8 pred_probs[3];
+  __u8 flags;
+  __u8 reserved[5];
+};
+#define V4L2_VP9_FRAME_FLAG_KEY_FRAME 0x001
+#define V4L2_VP9_FRAME_FLAG_SHOW_FRAME 0x002
+#define V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT 0x004
+#define V4L2_VP9_FRAME_FLAG_INTRA_ONLY 0x008
+#define V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV 0x010
+#define V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX 0x020
+#define V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE 0x040
+#define V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING 0x080
+#define V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING 0x100
+#define V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING 0x200
+#define V4L2_VP9_SIGN_BIAS_LAST 0x1
+#define V4L2_VP9_SIGN_BIAS_GOLDEN 0x2
+#define V4L2_VP9_SIGN_BIAS_ALT 0x4
+#define V4L2_VP9_RESET_FRAME_CTX_NONE 0
+#define V4L2_VP9_RESET_FRAME_CTX_SPEC 1
+#define V4L2_VP9_RESET_FRAME_CTX_ALL 2
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP 0
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH 1
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP 2
+#define V4L2_VP9_INTERP_FILTER_BILINEAR 3
+#define V4L2_VP9_INTERP_FILTER_SWITCHABLE 4
+#define V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE 0
+#define V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE 1
+#define V4L2_VP9_REFERENCE_MODE_SELECT 2
+#define V4L2_VP9_PROFILE_MAX 3
+#define V4L2_CID_STATELESS_VP9_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 300)
+struct v4l2_ctrl_vp9_frame {
+  struct v4l2_vp9_loop_filter lf;
+  struct v4l2_vp9_quantization quant;
+  struct v4l2_vp9_segmentation seg;
+  __u32 flags;
+  __u16 compressed_header_size;
+  __u16 uncompressed_header_size;
+  __u16 frame_width_minus_1;
+  __u16 frame_height_minus_1;
+  __u16 render_width_minus_1;
+  __u16 render_height_minus_1;
+  __u64 last_frame_ts;
+  __u64 golden_frame_ts;
+  __u64 alt_frame_ts;
+  __u8 ref_frame_sign_bias;
+  __u8 reset_frame_context;
+  __u8 frame_context_idx;
+  __u8 profile;
+  __u8 bit_depth;
+  __u8 interpolation_filter;
+  __u8 tile_cols_log2;
+  __u8 tile_rows_log2;
+  __u8 reference_mode;
+  __u8 reserved[7];
+};
+#define V4L2_VP9_NUM_FRAME_CTX 4
+struct v4l2_vp9_mv_probs {
+  __u8 joint[3];
+  __u8 sign[2];
+  __u8 classes[2][10];
+  __u8 class0_bit[2];
+  __u8 bits[2][10];
+  __u8 class0_fr[2][2][3];
+  __u8 fr[2][3];
+  __u8 class0_hp[2];
+  __u8 hp[2];
+};
+#define V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (V4L2_CID_CODEC_STATELESS_BASE + 301)
+#define V4L2_VP9_TX_MODE_ONLY_4X4 0
+#define V4L2_VP9_TX_MODE_ALLOW_8X8 1
+#define V4L2_VP9_TX_MODE_ALLOW_16X16 2
+#define V4L2_VP9_TX_MODE_ALLOW_32X32 3
+#define V4L2_VP9_TX_MODE_SELECT 4
+struct v4l2_ctrl_vp9_compressed_hdr {
+  __u8 tx_mode;
+  __u8 tx8[2][1];
+  __u8 tx16[2][2];
+  __u8 tx32[2][3];
+  __u8 coef[4][2][2][6][6][3];
+  __u8 skip[3];
+  __u8 inter_mode[7][3];
+  __u8 interp_filter[4][2];
+  __u8 is_inter[4];
+  __u8 comp_mode[5];
+  __u8 single_ref[5][2];
+  __u8 comp_ref[5];
+  __u8 y_mode[4][9];
+  __u8 uv_mode[10][9];
+  __u8 partition[16][3];
+  struct v4l2_vp9_mv_probs mv;
+};
 #define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC
 #define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS
 #define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vdpa.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vdpa.h
index bee6618..b3e5d39 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vdpa.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vdpa.h
@@ -27,9 +27,11 @@
   VDPA_CMD_DEV_NEW,
   VDPA_CMD_DEV_DEL,
   VDPA_CMD_DEV_GET,
+  VDPA_CMD_DEV_CONFIG_GET,
 };
 enum vdpa_attr {
   VDPA_ATTR_UNSPEC,
+  VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC,
   VDPA_ATTR_MGMTDEV_BUS_NAME,
   VDPA_ATTR_MGMTDEV_DEV_NAME,
   VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES,
@@ -38,6 +40,14 @@
   VDPA_ATTR_DEV_VENDOR_ID,
   VDPA_ATTR_DEV_MAX_VQS,
   VDPA_ATTR_DEV_MAX_VQ_SIZE,
+  VDPA_ATTR_DEV_MIN_VQ_SIZE,
+  VDPA_ATTR_DEV_NET_CFG_MACADDR,
+  VDPA_ATTR_DEV_NET_STATUS,
+  VDPA_ATTR_DEV_NET_CFG_MAX_VQP,
+  VDPA_ATTR_DEV_NET_CFG_MTU,
+  VDPA_ATTR_DEV_NEGOTIATED_FEATURES,
+  VDPA_ATTR_DEV_MGMTDEV_MAX_VQS,
+  VDPA_ATTR_DEV_SUPPORTED_FEATURES,
   VDPA_ATTR_MAX,
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vduse.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vduse.h
new file mode 100644
index 0000000..2dc8c82
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vduse.h
@@ -0,0 +1,134 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VDUSE_H_
+#define _UAPI_VDUSE_H_
+#include <linux/types.h>
+#define VDUSE_BASE 0x81
+#define VDUSE_API_VERSION 0
+#define VDUSE_GET_API_VERSION _IOR(VDUSE_BASE, 0x00, __u64)
+#define VDUSE_SET_API_VERSION _IOW(VDUSE_BASE, 0x01, __u64)
+struct vduse_dev_config {
+#define VDUSE_NAME_MAX 256
+  char name[VDUSE_NAME_MAX];
+  __u32 vendor_id;
+  __u32 device_id;
+  __u64 features;
+  __u32 vq_num;
+  __u32 vq_align;
+  __u32 reserved[13];
+  __u32 config_size;
+  __u8 config[];
+};
+#define VDUSE_CREATE_DEV _IOW(VDUSE_BASE, 0x02, struct vduse_dev_config)
+#define VDUSE_DESTROY_DEV _IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX])
+struct vduse_iotlb_entry {
+  __u64 offset;
+  __u64 start;
+  __u64 last;
+#define VDUSE_ACCESS_RO 0x1
+#define VDUSE_ACCESS_WO 0x2
+#define VDUSE_ACCESS_RW 0x3
+  __u8 perm;
+};
+#define VDUSE_IOTLB_GET_FD _IOWR(VDUSE_BASE, 0x10, struct vduse_iotlb_entry)
+#define VDUSE_DEV_GET_FEATURES _IOR(VDUSE_BASE, 0x11, __u64)
+struct vduse_config_data {
+  __u32 offset;
+  __u32 length;
+  __u8 buffer[];
+};
+#define VDUSE_DEV_SET_CONFIG _IOW(VDUSE_BASE, 0x12, struct vduse_config_data)
+#define VDUSE_DEV_INJECT_CONFIG_IRQ _IO(VDUSE_BASE, 0x13)
+struct vduse_vq_config {
+  __u32 index;
+  __u16 max_size;
+  __u16 reserved[13];
+};
+#define VDUSE_VQ_SETUP _IOW(VDUSE_BASE, 0x14, struct vduse_vq_config)
+struct vduse_vq_state_split {
+  __u16 avail_index;
+};
+struct vduse_vq_state_packed {
+  __u16 last_avail_counter;
+  __u16 last_avail_idx;
+  __u16 last_used_counter;
+  __u16 last_used_idx;
+};
+struct vduse_vq_info {
+  __u32 index;
+  __u32 num;
+  __u64 desc_addr;
+  __u64 driver_addr;
+  __u64 device_addr;
+  union {
+    struct vduse_vq_state_split split;
+    struct vduse_vq_state_packed packed;
+  };
+  __u8 ready;
+};
+#define VDUSE_VQ_GET_INFO _IOWR(VDUSE_BASE, 0x15, struct vduse_vq_info)
+struct vduse_vq_eventfd {
+  __u32 index;
+#define VDUSE_EVENTFD_DEASSIGN - 1
+  int fd;
+};
+#define VDUSE_VQ_SETUP_KICKFD _IOW(VDUSE_BASE, 0x16, struct vduse_vq_eventfd)
+#define VDUSE_VQ_INJECT_IRQ _IOW(VDUSE_BASE, 0x17, __u32)
+enum vduse_req_type {
+  VDUSE_GET_VQ_STATE,
+  VDUSE_SET_STATUS,
+  VDUSE_UPDATE_IOTLB,
+};
+struct vduse_vq_state {
+  __u32 index;
+  union {
+    struct vduse_vq_state_split split;
+    struct vduse_vq_state_packed packed;
+  };
+};
+struct vduse_dev_status {
+  __u8 status;
+};
+struct vduse_iova_range {
+  __u64 start;
+  __u64 last;
+};
+struct vduse_dev_request {
+  __u32 type;
+  __u32 request_id;
+  __u32 reserved[4];
+  union {
+    struct vduse_vq_state vq_state;
+    struct vduse_dev_status s;
+    struct vduse_iova_range iova;
+    __u32 padding[32];
+  };
+};
+struct vduse_dev_response {
+  __u32 request_id;
+#define VDUSE_REQ_RESULT_OK 0x00
+#define VDUSE_REQ_RESULT_FAILED 0x01
+  __u32 result;
+  __u32 reserved[4];
+  union {
+    struct vduse_vq_state vq_state;
+    __u32 padding[32];
+  };
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/version.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/version.h
index 86c0070..2dfd696 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/version.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/version.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#define LINUX_VERSION_CODE 330752
+#define LINUX_VERSION_CODE 332032
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
 #define LINUX_VERSION_MAJOR 5
-#define LINUX_VERSION_PATCHLEVEL 12
+#define LINUX_VERSION_PATCHLEVEL 17
 #define LINUX_VERSION_SUBLEVEL 0
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/videodev2.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/videodev2.h
index 76d9af9..1cae711 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/videodev2.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/videodev2.h
@@ -24,7 +24,7 @@
 #include <linux/types.h>
 #include <linux/v4l2-common.h>
 #include <linux/v4l2-controls.h>
-#define VIDEO_MAX_FRAME 64
+#define VIDEO_MAX_FRAME 32
 #define VIDEO_MAX_PLANES 8
 #define v4l2_fourcc(a,b,c,d) ((__u32) (a) | ((__u32) (b) << 8) | ((__u32) (c) << 16) | ((__u32) (d) << 24))
 #define v4l2_fourcc_be(a,b,c,d) (v4l2_fourcc(a, b, c, d) | (1U << 31))
@@ -266,6 +266,7 @@
 #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4')
 #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O')
 #define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P')
+#define V4L2_PIX_FMT_YUV24 v4l2_fourcc('Y', 'U', 'V', '3')
 #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4')
 #define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V')
 #define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V')
@@ -278,13 +279,10 @@
 #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1')
 #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4')
 #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2')
-#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1')
 #define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6')
 #define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1')
-#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
-#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9')
 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9')
 #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P')
@@ -297,6 +295,11 @@
 #define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1')
 #define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4')
 #define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2')
+#define V4L2_PIX_FMT_NV12_4L4 v4l2_fourcc('V', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2')
+#define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
+#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1')
 #define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G')
 #define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G')
@@ -355,7 +358,9 @@
 #define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G')
 #define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L')
 #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0')
+#define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F')
 #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0')
+#define V4L2_PIX_FMT_VP9_FRAME v4l2_fourcc('V', 'P', '9', 'F')
 #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C')
 #define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T')
 #define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H')
@@ -390,8 +395,8 @@
 #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I')
 #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
 #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1')
+#define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1')
 #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I')
-#define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2')
 #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4')
 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4')
 #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b')
@@ -526,8 +531,10 @@
   __u32 type;
   __u32 memory;
   __u32 capabilities;
-  __u32 reserved[1];
+  __u8 flags;
+  __u8 reserved[3];
 };
+#define V4L2_MEMORY_FLAG_NON_COHERENT (1 << 0)
 #define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
 #define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
 #define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)
@@ -888,6 +895,12 @@
     struct v4l2_ctrl_h264_slice_params __user * p_h264_slice_params;
     struct v4l2_ctrl_h264_decode_params __user * p_h264_decode_params;
     struct v4l2_ctrl_fwht_params __user * p_fwht_params;
+    struct v4l2_ctrl_vp8_frame __user * p_vp8_frame;
+    struct v4l2_ctrl_mpeg2_sequence __user * p_mpeg2_sequence;
+    struct v4l2_ctrl_mpeg2_picture __user * p_mpeg2_picture;
+    struct v4l2_ctrl_mpeg2_quantisation __user * p_mpeg2_quantisation;
+    struct v4l2_ctrl_vp9_compressed_hdr __user * p_vp9_compressed_hdr_probs;
+    struct v4l2_ctrl_vp9_frame __user * p_vp9_frame;
     void __user * ptr;
   };
 } __attribute__((packed));
@@ -925,6 +938,8 @@
   V4L2_CTRL_TYPE_U16 = 0x0101,
   V4L2_CTRL_TYPE_U32 = 0x0102,
   V4L2_CTRL_TYPE_AREA = 0x0106,
+  V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110,
+  V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111,
   V4L2_CTRL_TYPE_H264_SPS = 0x0200,
   V4L2_CTRL_TYPE_H264_PPS = 0x0201,
   V4L2_CTRL_TYPE_H264_SCALING_MATRIX = 0x0202,
@@ -932,6 +947,12 @@
   V4L2_CTRL_TYPE_H264_DECODE_PARAMS = 0x0204,
   V4L2_CTRL_TYPE_H264_PRED_WEIGHTS = 0x0205,
   V4L2_CTRL_TYPE_FWHT_PARAMS = 0x0220,
+  V4L2_CTRL_TYPE_VP8_FRAME = 0x0240,
+  V4L2_CTRL_TYPE_MPEG2_QUANTISATION = 0x0250,
+  V4L2_CTRL_TYPE_MPEG2_SEQUENCE = 0x0251,
+  V4L2_CTRL_TYPE_MPEG2_PICTURE = 0x0252,
+  V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR = 0x0260,
+  V4L2_CTRL_TYPE_VP9_FRAME = 0x0261,
 };
 struct v4l2_queryctrl {
   __u32 id;
@@ -1365,7 +1386,8 @@
   __u32 memory;
   struct v4l2_format format;
   __u32 capabilities;
-  __u32 reserved[7];
+  __u32 flags;
+  __u32 reserved[6];
 };
 #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
 #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
@@ -1450,4 +1472,6 @@
 #define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
 #define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
 #define BASE_VIDIOC_PRIVATE 192
+#define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16
+#define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
similarity index 63%
copy from mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
index bb45c3d..7e29eaa 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
@@ -16,14 +16,25 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_LINUX_VIRTIO_BT_H
+#define _UAPI_LINUX_VIRTIO_BT_H
+#include <linux/virtio_types.h>
+#define VIRTIO_BT_F_VND_HCI 0
+#define VIRTIO_BT_F_MSFT_EXT 1
+#define VIRTIO_BT_F_AOSP_EXT 2
+enum virtio_bt_config_type {
+  VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
+  VIRTIO_BT_CONFIG_TYPE_AMP = 1,
 };
+enum virtio_bt_config_vendor {
+  VIRTIO_BT_CONFIG_VENDOR_NONE = 0,
+  VIRTIO_BT_CONFIG_VENDOR_ZEPHYR = 1,
+  VIRTIO_BT_CONFIG_VENDOR_INTEL = 2,
+  VIRTIO_BT_CONFIG_VENDOR_REALTEK = 3,
+};
+struct virtio_bt_config {
+  __u8 type;
+  __u16 vendor;
+  __u16 msft_opcode;
+} __attribute__((packed));
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h
new file mode 100644
index 0000000..543fe76
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VIRTIO_GPIO_H
+#define _LINUX_VIRTIO_GPIO_H
+#include <linux/types.h>
+#define VIRTIO_GPIO_F_IRQ 0
+#define VIRTIO_GPIO_MSG_GET_NAMES 0x0001
+#define VIRTIO_GPIO_MSG_GET_DIRECTION 0x0002
+#define VIRTIO_GPIO_MSG_SET_DIRECTION 0x0003
+#define VIRTIO_GPIO_MSG_GET_VALUE 0x0004
+#define VIRTIO_GPIO_MSG_SET_VALUE 0x0005
+#define VIRTIO_GPIO_MSG_IRQ_TYPE 0x0006
+#define VIRTIO_GPIO_STATUS_OK 0x0
+#define VIRTIO_GPIO_STATUS_ERR 0x1
+#define VIRTIO_GPIO_DIRECTION_NONE 0x00
+#define VIRTIO_GPIO_DIRECTION_OUT 0x01
+#define VIRTIO_GPIO_DIRECTION_IN 0x02
+#define VIRTIO_GPIO_IRQ_TYPE_NONE 0x00
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_RISING 0x01
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_FALLING 0x02
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_BOTH 0x03
+#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_HIGH 0x04
+#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_LOW 0x08
+struct virtio_gpio_config {
+  __le16 ngpio;
+  __u8 padding[2];
+  __le32 gpio_names_size;
+};
+struct virtio_gpio_request {
+  __le16 type;
+  __le16 gpio;
+  __le32 value;
+};
+struct virtio_gpio_response {
+  __u8 status;
+  __u8 value;
+};
+struct virtio_gpio_response_get_names {
+  __u8 status;
+  __u8 value[];
+};
+struct virtio_gpio_irq_request {
+  __le16 gpio;
+};
+struct virtio_gpio_irq_response {
+  __u8 status;
+};
+#define VIRTIO_GPIO_IRQ_STATUS_INVALID 0x0
+#define VIRTIO_GPIO_IRQ_STATUS_VALID 0x1
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
index 83ad5a7..8a21afd 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
@@ -23,6 +23,7 @@
 #define VIRTIO_GPU_F_EDID 1
 #define VIRTIO_GPU_F_RESOURCE_UUID 2
 #define VIRTIO_GPU_F_RESOURCE_BLOB 3
+#define VIRTIO_GPU_F_CONTEXT_INIT 4
 enum virtio_gpu_ctrl_type {
   VIRTIO_GPU_UNDEFINED = 0,
   VIRTIO_GPU_CMD_GET_DISPLAY_INFO = 0x0100,
@@ -70,12 +71,14 @@
   VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1
 };
 #define VIRTIO_GPU_FLAG_FENCE (1 << 0)
+#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1 << 1)
 struct virtio_gpu_ctrl_hdr {
   __le32 type;
   __le32 flags;
   __le64 fence_id;
   __le32 ctx_id;
-  __le32 padding;
+  __u8 ring_idx;
+  __u8 padding[3];
 };
 struct virtio_gpu_cursor_pos {
   __le32 scanout_id;
@@ -181,10 +184,11 @@
   __le32 flags;
   __le32 padding;
 };
+#define VIRTIO_GPU_CONTEXT_INIT_CAPSET_ID_MASK 0x000000ff
 struct virtio_gpu_ctx_create {
   struct virtio_gpu_ctrl_hdr hdr;
   __le32 nlen;
-  __le32 padding;
+  __le32 context_init;
   char debug_name[64];
 };
 struct virtio_gpu_ctx_destroy {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
similarity index 71%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
index bb45c3d..9540f26 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
@@ -16,14 +16,21 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _UAPI_LINUX_VIRTIO_I2C_H
+#define _UAPI_LINUX_VIRTIO_I2C_H
+#include <linux/const.h>
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST 0
+#define VIRTIO_I2C_FLAGS_FAIL_NEXT _BITUL(0)
+#define VIRTIO_I2C_FLAGS_M_RD _BITUL(1)
+struct virtio_i2c_out_hdr {
+  __le16 addr;
+  __le16 padding;
+  __le32 flags;
 };
+struct virtio_i2c_in_hdr {
+  __u8 status;
+};
+#define VIRTIO_I2C_MSG_OK 0
+#define VIRTIO_I2C_MSG_ERR 1
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_ids.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
index bae26a0..2894700 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
@@ -40,7 +40,28 @@
 #define VIRTIO_ID_PSTORE 22
 #define VIRTIO_ID_IOMMU 23
 #define VIRTIO_ID_MEM 24
+#define VIRTIO_ID_SOUND 25
 #define VIRTIO_ID_FS 26
 #define VIRTIO_ID_PMEM 27
+#define VIRTIO_ID_RPMB 28
 #define VIRTIO_ID_MAC80211_HWSIM 29
+#define VIRTIO_ID_VIDEO_ENCODER 30
+#define VIRTIO_ID_VIDEO_DECODER 31
+#define VIRTIO_ID_SCMI 32
+#define VIRTIO_ID_NITRO_SEC_MOD 33
+#define VIRTIO_ID_I2C_ADAPTER 34
+#define VIRTIO_ID_WATCHDOG 35
+#define VIRTIO_ID_CAN 36
+#define VIRTIO_ID_DMABUF 37
+#define VIRTIO_ID_PARAM_SERV 38
+#define VIRTIO_ID_AUDIO_POLICY 39
+#define VIRTIO_ID_BT 40
+#define VIRTIO_ID_GPIO 41
+#define VIRTIO_TRANS_ID_NET 1000
+#define VIRTIO_TRANS_ID_BLOCK 1001
+#define VIRTIO_TRANS_ID_BALLOON 1002
+#define VIRTIO_TRANS_ID_CONSOLE 1003
+#define VIRTIO_TRANS_ID_SCSI 1004
+#define VIRTIO_TRANS_ID_RNG 1005
+#define VIRTIO_TRANS_ID_9P 1009
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
index b08de57..ec8def8 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
@@ -25,6 +25,7 @@
 #define VIRTIO_IOMMU_F_BYPASS 3
 #define VIRTIO_IOMMU_F_PROBE 4
 #define VIRTIO_IOMMU_F_MMIO 5
+#define VIRTIO_IOMMU_F_BYPASS_CONFIG 6
 struct virtio_iommu_range_64 {
   __le64 start;
   __le64 end;
@@ -38,6 +39,8 @@
   struct virtio_iommu_range_64 input_range;
   struct virtio_iommu_range_32 domain_range;
   __le32 probe_size;
+  __u8 bypass;
+  __u8 reserved[3];
 };
 #define VIRTIO_IOMMU_T_ATTACH 0x01
 #define VIRTIO_IOMMU_T_DETACH 0x02
@@ -61,11 +64,13 @@
   __u8 status;
   __u8 reserved[3];
 };
+#define VIRTIO_IOMMU_ATTACH_F_BYPASS (1 << 0)
 struct virtio_iommu_req_attach {
   struct virtio_iommu_req_head head;
   __le32 domain;
   __le32 endpoint;
-  __u8 reserved[8];
+  __le32 flags;
+  __u8 reserved[4];
   struct virtio_iommu_req_tail tail;
 };
 struct virtio_iommu_req_detach {
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_mem.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
index d6542b7..66ffce1 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
@@ -23,6 +23,7 @@
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
 #define VIRTIO_MEM_F_ACPI_PXM 0
+#define VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE 1
 #define VIRTIO_MEM_REQ_PLUG 0
 #define VIRTIO_MEM_REQ_UNPLUG 1
 #define VIRTIO_MEM_REQ_UNPLUG_ALL 2
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
similarity index 68%
rename from mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/raw.h
rename to mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
index bb45c3d..01c5869 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
@@ -16,14 +16,26 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _UAPI_LINUX_VIRTIO_PCIDEV_H
+#define _UAPI_LINUX_VIRTIO_PCIDEV_H
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+enum virtio_pcidev_ops {
+  VIRTIO_PCIDEV_OP_RESERVED = 0,
+  VIRTIO_PCIDEV_OP_CFG_READ,
+  VIRTIO_PCIDEV_OP_CFG_WRITE,
+  VIRTIO_PCIDEV_OP_MMIO_READ,
+  VIRTIO_PCIDEV_OP_MMIO_WRITE,
+  VIRTIO_PCIDEV_OP_MMIO_MEMSET,
+  VIRTIO_PCIDEV_OP_INT,
+  VIRTIO_PCIDEV_OP_MSI,
+  VIRTIO_PCIDEV_OP_PME,
+};
+struct virtio_pcidev_msg {
+  __u8 op;
+  __u8 bar;
+  __u16 reserved;
+  __u32 size;
+  __u64 addr;
+  __u8 data[];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
similarity index 78%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
index bb45c3d..7907ed4 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
@@ -16,14 +16,12 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#ifndef _UAPI_LINUX_VIRTIO_SCMI_H
+#define _UAPI_LINUX_VIRTIO_SCMI_H
+#include <linux/virtio_types.h>
+#define VIRTIO_SCMI_F_P2A_CHANNELS 0
+#define VIRTIO_SCMI_F_SHARED_MEMORY 1
+#define VIRTIO_SCMI_VQ_TX 0
+#define VIRTIO_SCMI_VQ_RX 1
+#define VIRTIO_SCMI_VQ_MAX_CNT 2
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_snd.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_snd.h
new file mode 100644
index 0000000..60dfa62
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_snd.h
@@ -0,0 +1,224 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 VIRTIO_SND_IF_H
+#define VIRTIO_SND_IF_H
+#include <linux/virtio_types.h>
+struct virtio_snd_config {
+  __le32 jacks;
+  __le32 streams;
+  __le32 chmaps;
+};
+enum {
+  VIRTIO_SND_VQ_CONTROL = 0,
+  VIRTIO_SND_VQ_EVENT,
+  VIRTIO_SND_VQ_TX,
+  VIRTIO_SND_VQ_RX,
+  VIRTIO_SND_VQ_MAX
+};
+enum {
+  VIRTIO_SND_D_OUTPUT = 0,
+  VIRTIO_SND_D_INPUT
+};
+enum {
+  VIRTIO_SND_R_JACK_INFO = 1,
+  VIRTIO_SND_R_JACK_REMAP,
+  VIRTIO_SND_R_PCM_INFO = 0x0100,
+  VIRTIO_SND_R_PCM_SET_PARAMS,
+  VIRTIO_SND_R_PCM_PREPARE,
+  VIRTIO_SND_R_PCM_RELEASE,
+  VIRTIO_SND_R_PCM_START,
+  VIRTIO_SND_R_PCM_STOP,
+  VIRTIO_SND_R_CHMAP_INFO = 0x0200,
+  VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
+  VIRTIO_SND_EVT_JACK_DISCONNECTED,
+  VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
+  VIRTIO_SND_EVT_PCM_XRUN,
+  VIRTIO_SND_S_OK = 0x8000,
+  VIRTIO_SND_S_BAD_MSG,
+  VIRTIO_SND_S_NOT_SUPP,
+  VIRTIO_SND_S_IO_ERR
+};
+struct virtio_snd_hdr {
+  __le32 code;
+};
+struct virtio_snd_event {
+  struct virtio_snd_hdr hdr;
+  __le32 data;
+};
+struct virtio_snd_query_info {
+  struct virtio_snd_hdr hdr;
+  __le32 start_id;
+  __le32 count;
+  __le32 size;
+};
+struct virtio_snd_info {
+  __le32 hda_fn_nid;
+};
+struct virtio_snd_jack_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 jack_id;
+};
+enum {
+  VIRTIO_SND_JACK_F_REMAP = 0
+};
+struct virtio_snd_jack_info {
+  struct virtio_snd_info hdr;
+  __le32 features;
+  __le32 hda_reg_defconf;
+  __le32 hda_reg_caps;
+  __u8 connected;
+  __u8 padding[7];
+};
+struct virtio_snd_jack_remap {
+  struct virtio_snd_jack_hdr hdr;
+  __le32 association;
+  __le32 sequence;
+};
+struct virtio_snd_pcm_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 stream_id;
+};
+enum {
+  VIRTIO_SND_PCM_F_SHMEM_HOST = 0,
+  VIRTIO_SND_PCM_F_SHMEM_GUEST,
+  VIRTIO_SND_PCM_F_MSG_POLLING,
+  VIRTIO_SND_PCM_F_EVT_SHMEM_PERIODS,
+  VIRTIO_SND_PCM_F_EVT_XRUNS
+};
+enum {
+  VIRTIO_SND_PCM_FMT_IMA_ADPCM = 0,
+  VIRTIO_SND_PCM_FMT_MU_LAW,
+  VIRTIO_SND_PCM_FMT_A_LAW,
+  VIRTIO_SND_PCM_FMT_S8,
+  VIRTIO_SND_PCM_FMT_U8,
+  VIRTIO_SND_PCM_FMT_S16,
+  VIRTIO_SND_PCM_FMT_U16,
+  VIRTIO_SND_PCM_FMT_S18_3,
+  VIRTIO_SND_PCM_FMT_U18_3,
+  VIRTIO_SND_PCM_FMT_S20_3,
+  VIRTIO_SND_PCM_FMT_U20_3,
+  VIRTIO_SND_PCM_FMT_S24_3,
+  VIRTIO_SND_PCM_FMT_U24_3,
+  VIRTIO_SND_PCM_FMT_S20,
+  VIRTIO_SND_PCM_FMT_U20,
+  VIRTIO_SND_PCM_FMT_S24,
+  VIRTIO_SND_PCM_FMT_U24,
+  VIRTIO_SND_PCM_FMT_S32,
+  VIRTIO_SND_PCM_FMT_U32,
+  VIRTIO_SND_PCM_FMT_FLOAT,
+  VIRTIO_SND_PCM_FMT_FLOAT64,
+  VIRTIO_SND_PCM_FMT_DSD_U8,
+  VIRTIO_SND_PCM_FMT_DSD_U16,
+  VIRTIO_SND_PCM_FMT_DSD_U32,
+  VIRTIO_SND_PCM_FMT_IEC958_SUBFRAME
+};
+enum {
+  VIRTIO_SND_PCM_RATE_5512 = 0,
+  VIRTIO_SND_PCM_RATE_8000,
+  VIRTIO_SND_PCM_RATE_11025,
+  VIRTIO_SND_PCM_RATE_16000,
+  VIRTIO_SND_PCM_RATE_22050,
+  VIRTIO_SND_PCM_RATE_32000,
+  VIRTIO_SND_PCM_RATE_44100,
+  VIRTIO_SND_PCM_RATE_48000,
+  VIRTIO_SND_PCM_RATE_64000,
+  VIRTIO_SND_PCM_RATE_88200,
+  VIRTIO_SND_PCM_RATE_96000,
+  VIRTIO_SND_PCM_RATE_176400,
+  VIRTIO_SND_PCM_RATE_192000,
+  VIRTIO_SND_PCM_RATE_384000
+};
+struct virtio_snd_pcm_info {
+  struct virtio_snd_info hdr;
+  __le32 features;
+  __le64 formats;
+  __le64 rates;
+  __u8 direction;
+  __u8 channels_min;
+  __u8 channels_max;
+  __u8 padding[5];
+};
+struct virtio_snd_pcm_set_params {
+  struct virtio_snd_pcm_hdr hdr;
+  __le32 buffer_bytes;
+  __le32 period_bytes;
+  __le32 features;
+  __u8 channels;
+  __u8 format;
+  __u8 rate;
+  __u8 padding;
+};
+struct virtio_snd_pcm_xfer {
+  __le32 stream_id;
+};
+struct virtio_snd_pcm_status {
+  __le32 status;
+  __le32 latency_bytes;
+};
+struct virtio_snd_chmap_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 chmap_id;
+};
+enum {
+  VIRTIO_SND_CHMAP_NONE = 0,
+  VIRTIO_SND_CHMAP_NA,
+  VIRTIO_SND_CHMAP_MONO,
+  VIRTIO_SND_CHMAP_FL,
+  VIRTIO_SND_CHMAP_FR,
+  VIRTIO_SND_CHMAP_RL,
+  VIRTIO_SND_CHMAP_RR,
+  VIRTIO_SND_CHMAP_FC,
+  VIRTIO_SND_CHMAP_LFE,
+  VIRTIO_SND_CHMAP_SL,
+  VIRTIO_SND_CHMAP_SR,
+  VIRTIO_SND_CHMAP_RC,
+  VIRTIO_SND_CHMAP_FLC,
+  VIRTIO_SND_CHMAP_FRC,
+  VIRTIO_SND_CHMAP_RLC,
+  VIRTIO_SND_CHMAP_RRC,
+  VIRTIO_SND_CHMAP_FLW,
+  VIRTIO_SND_CHMAP_FRW,
+  VIRTIO_SND_CHMAP_FLH,
+  VIRTIO_SND_CHMAP_FCH,
+  VIRTIO_SND_CHMAP_FRH,
+  VIRTIO_SND_CHMAP_TC,
+  VIRTIO_SND_CHMAP_TFL,
+  VIRTIO_SND_CHMAP_TFR,
+  VIRTIO_SND_CHMAP_TFC,
+  VIRTIO_SND_CHMAP_TRL,
+  VIRTIO_SND_CHMAP_TRR,
+  VIRTIO_SND_CHMAP_TRC,
+  VIRTIO_SND_CHMAP_TFLC,
+  VIRTIO_SND_CHMAP_TFRC,
+  VIRTIO_SND_CHMAP_TSL,
+  VIRTIO_SND_CHMAP_TSR,
+  VIRTIO_SND_CHMAP_LLFE,
+  VIRTIO_SND_CHMAP_RLFE,
+  VIRTIO_SND_CHMAP_BC,
+  VIRTIO_SND_CHMAP_BLC,
+  VIRTIO_SND_CHMAP_BRC
+};
+#define VIRTIO_SND_CHMAP_MAX_SIZE 18
+struct virtio_snd_chmap_info {
+  struct virtio_snd_info hdr;
+  __u8 direction;
+  __u8 channels;
+  __u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE];
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
index 7a9e259..73b5d49 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
@@ -21,6 +21,7 @@
 #include <linux/types.h>
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
+#define VIRTIO_VSOCK_F_SEQPACKET 1
 struct virtio_vsock_config {
   __le64 guest_cid;
 } __attribute__((packed));
@@ -44,6 +45,7 @@
 } __attribute__((packed));
 enum virtio_vsock_type {
   VIRTIO_VSOCK_TYPE_STREAM = 1,
+  VIRTIO_VSOCK_TYPE_SEQPACKET = 2,
 };
 enum virtio_vsock_op {
   VIRTIO_VSOCK_OP_INVALID = 0,
@@ -59,4 +61,8 @@
   VIRTIO_VSOCK_SHUTDOWN_RCV = 1,
   VIRTIO_VSOCK_SHUTDOWN_SEND = 2,
 };
+enum virtio_vsock_rw {
+  VIRTIO_VSOCK_SEQ_EOM = 1,
+  VIRTIO_VSOCK_SEQ_EOR = 2,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vm_sockets.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
index 50e8456..58f720d 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
@@ -25,8 +25,14 @@
 #define SO_VM_SOCKETS_BUFFER_MAX_SIZE 2
 #define SO_VM_SOCKETS_PEER_HOST_VM_ID 3
 #define SO_VM_SOCKETS_TRUSTED 5
-#define SO_VM_SOCKETS_CONNECT_TIMEOUT 6
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD 6
 #define SO_VM_SOCKETS_NONBLOCK_TXRX 7
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW 8
+#if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD
+#else
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD : SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW)
+#endif
 #define VMADDR_CID_ANY - 1U
 #define VMADDR_PORT_ANY - 1U
 #define VMADDR_CID_HYPERVISOR 0
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/wwan.h
similarity index 81%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/wwan.h
index bb45c3d..9f68713 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/wwan.h
@@ -16,14 +16,12 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_WWAN_H_
+#define _UAPI_WWAN_H_
+enum {
+  IFLA_WWAN_UNSPEC,
+  IFLA_WWAN_LINK_ID,
+  __IFLA_WWAN_MAX
 };
+#define IFLA_WWAN_MAX (__IFLA_WWAN_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/xfrm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/xfrm.h
index b0e930c..f4df95f 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/xfrm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/linux/xfrm.h
@@ -182,6 +182,10 @@
 #define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO
   XFRM_MSG_MAPPING,
 #define XFRM_MSG_MAPPING XFRM_MSG_MAPPING
+  XFRM_MSG_SETDEFAULT,
+#define XFRM_MSG_SETDEFAULT XFRM_MSG_SETDEFAULT
+  XFRM_MSG_GETDEFAULT,
+#define XFRM_MSG_GETDEFAULT XFRM_MSG_GETDEFAULT
   __XFRM_MSG_MAX
 };
 #define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1)
@@ -261,6 +265,7 @@
   XFRMA_SET_MARK,
   XFRMA_SET_MARK_MASK,
   XFRMA_IF_ID,
+  XFRMA_MTIMER_THRESH,
   __XFRMA_MAX
 #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK
 #define XFRMA_MAX (__XFRMA_MAX - 1)
@@ -430,6 +435,14 @@
 };
 #define XFRM_OFFLOAD_IPV6 1
 #define XFRM_OFFLOAD_INBOUND 2
+struct xfrm_userpolicy_default {
+#define XFRM_USERPOLICY_UNSPEC 0
+#define XFRM_USERPOLICY_BLOCK 1
+#define XFRM_USERPOLICY_ACCEPT 2
+  __u8 in;
+  __u8 fwd;
+  __u8 out;
+};
 #define XFRMGRP_ACQUIRE 1
 #define XFRMGRP_EXPIRE 2
 #define XFRMGRP_SA 4
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/misc/habanalabs.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/misc/habanalabs.h
index b009023..6e3439a 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/misc/habanalabs.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/misc/habanalabs.h
@@ -208,11 +208,43 @@
   GAUDI_ENGINE_ID_NIC_9,
   GAUDI_ENGINE_ID_SIZE
 };
+enum hl_goya_pll_index {
+  HL_GOYA_CPU_PLL = 0,
+  HL_GOYA_IC_PLL,
+  HL_GOYA_MC_PLL,
+  HL_GOYA_MME_PLL,
+  HL_GOYA_PCI_PLL,
+  HL_GOYA_EMMC_PLL,
+  HL_GOYA_TPC_PLL,
+  HL_GOYA_PLL_MAX
+};
+enum hl_gaudi_pll_index {
+  HL_GAUDI_CPU_PLL = 0,
+  HL_GAUDI_PCI_PLL,
+  HL_GAUDI_SRAM_PLL,
+  HL_GAUDI_HBM_PLL,
+  HL_GAUDI_NIC_PLL,
+  HL_GAUDI_DMA_PLL,
+  HL_GAUDI_MESH_PLL,
+  HL_GAUDI_MME_PLL,
+  HL_GAUDI_TPC_PLL,
+  HL_GAUDI_IF_PLL,
+  HL_GAUDI_PLL_MAX
+};
 enum hl_device_status {
   HL_DEVICE_STATUS_OPERATIONAL,
   HL_DEVICE_STATUS_IN_RESET,
   HL_DEVICE_STATUS_MALFUNCTION,
-  HL_DEVICE_STATUS_NEEDS_RESET
+  HL_DEVICE_STATUS_NEEDS_RESET,
+  HL_DEVICE_STATUS_IN_DEVICE_CREATION,
+  HL_DEVICE_STATUS_LAST = HL_DEVICE_STATUS_IN_DEVICE_CREATION
+};
+enum hl_server_type {
+  HL_SERVER_TYPE_UNKNOWN = 0,
+  HL_SERVER_GAUDI_HLS1 = 1,
+  HL_SERVER_GAUDI_HLS1H = 2,
+  HL_SERVER_GAUDI_TYPE1 = 3,
+  HL_SERVER_GAUDI_TYPE2 = 4
 };
 #define HL_INFO_HW_IP_INFO 0
 #define HL_INFO_HW_EVENTS 1
@@ -230,6 +262,13 @@
 #define HL_INFO_SYNC_MANAGER 14
 #define HL_INFO_TOTAL_ENERGY 15
 #define HL_INFO_PLL_FREQUENCY 16
+#define HL_INFO_POWER 17
+#define HL_INFO_OPEN_STATS 18
+#define HL_INFO_DRAM_REPLACED_ROWS 21
+#define HL_INFO_DRAM_PENDING_ROWS 22
+#define HL_INFO_LAST_ERR_OPEN_DEV_TIME 23
+#define HL_INFO_CS_TIMEOUT_EVENT 24
+#define HL_INFO_RAZWI_EVENT 25
 #define HL_INFO_VERSION_MAX_LEN 128
 #define HL_INFO_CARD_NAME_MAX_LEN 16
 struct hl_info_hw_ip_info {
@@ -242,7 +281,7 @@
   __u32 module_id;
   __u32 reserved;
   __u16 first_available_interrupt_id;
-  __u16 reserved2;
+  __u16 server_type;
   __u32 cpld_version;
   __u32 psoc_pci_pll_nr;
   __u32 psoc_pci_pll_nf;
@@ -253,7 +292,7 @@
   __u8 pad[2];
   __u8 cpucp_version[HL_INFO_VERSION_MAX_LEN];
   __u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
-  __u64 reserved3;
+  __u64 reserved2;
   __u64 dram_page_size;
 };
 struct hl_info_dram_usage {
@@ -291,10 +330,18 @@
   __u64 tx_throughput;
   __u64 replay_cnt;
 };
-#define HL_CLK_THROTTLE_POWER 0x1
-#define HL_CLK_THROTTLE_THERMAL 0x2
+enum hl_clk_throttling_type {
+  HL_CLK_THROTTLE_TYPE_POWER,
+  HL_CLK_THROTTLE_TYPE_THERMAL,
+  HL_CLK_THROTTLE_TYPE_MAX
+};
+#define HL_CLK_THROTTLE_POWER (1 << HL_CLK_THROTTLE_TYPE_POWER)
+#define HL_CLK_THROTTLE_THERMAL (1 << HL_CLK_THROTTLE_TYPE_THERMAL)
 struct hl_info_clk_throttle {
   __u32 clk_throttling_reason;
+  __u32 pad;
+  __u64 clk_throttling_timestamp_us[HL_CLK_THROTTLE_TYPE_MAX];
+  __u64 clk_throttling_duration_ns[HL_CLK_THROTTLE_TYPE_MAX];
 };
 struct hl_info_energy {
   __u64 total_energy_consumption;
@@ -303,6 +350,13 @@
 struct hl_pll_frequency_info {
   __u16 output[HL_PLL_NUM_OUTPUTS];
 };
+struct hl_open_stats_info {
+  __u64 open_counter;
+  __u64 last_open_period_ms;
+};
+struct hl_power_info {
+  __u64 power;
+};
 struct hl_info_sync_manager {
   __u32 first_available_sync_object;
   __u32 first_available_monitor;
@@ -323,6 +377,24 @@
   __u64 total_validation_drop_cnt;
   __u64 ctx_validation_drop_cnt;
 };
+struct hl_info_last_err_open_dev_time {
+  __s64 timestamp;
+};
+struct hl_info_cs_timeout_event {
+  __s64 timestamp;
+  __u64 seq;
+};
+#define HL_RAZWI_PAGE_FAULT 0
+#define HL_RAZWI_MMU_ACCESS_ERROR 1
+struct hl_info_razwi_event {
+  __s64 timestamp;
+  __u64 addr;
+  __u16 engine_id_1;
+  __u16 engine_id_2;
+  __u8 no_engine_id;
+  __u8 error_type;
+  __u8 pad[2];
+};
 enum gaudi_dcores {
   HL_GAUDI_WS_DCORE,
   HL_GAUDI_WN_DCORE,
@@ -346,6 +418,7 @@
 #define HL_CB_OP_INFO 2
 #define HL_MAX_CB_SIZE (0x200000 - 32)
 #define HL_CB_FLAGS_MAP 0x1
+#define HL_CB_FLAGS_GET_DEVICE_VA 0x2
 struct hl_cb_in {
   __u64 cb_handle;
   __u32 op;
@@ -356,9 +429,12 @@
 struct hl_cb_out {
   union {
     __u64 cb_handle;
-    struct {
-      __u32 usage_cnt;
-      __u32 pad;
+    union {
+      struct {
+        __u32 usage_cnt;
+        __u32 pad;
+      };
+      __u64 device_va;
     };
   };
 };
@@ -371,11 +447,13 @@
   union {
     __u64 cb_handle;
     __u64 signal_seq_arr;
+    __u64 encaps_signal_seq;
   };
   __u32 queue_index;
   union {
     __u32 cb_size;
     __u32 num_signal_seq_arr;
+    __u32 encaps_signal_offset;
   };
   __u32 cs_chunk_flags;
   __u32 collective_engine_id;
@@ -389,47 +467,89 @@
 #define HL_CS_FLAGS_STAGED_SUBMISSION 0x40
 #define HL_CS_FLAGS_STAGED_SUBMISSION_FIRST 0x80
 #define HL_CS_FLAGS_STAGED_SUBMISSION_LAST 0x100
+#define HL_CS_FLAGS_CUSTOM_TIMEOUT 0x200
+#define HL_CS_FLAGS_SKIP_RESET_ON_TIMEOUT 0x400
+#define HL_CS_FLAGS_ENCAP_SIGNALS 0x800
+#define HL_CS_FLAGS_RESERVE_SIGNALS_ONLY 0x1000
+#define HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY 0x2000
 #define HL_CS_STATUS_SUCCESS 0
 #define HL_MAX_JOBS_PER_CS 512
 struct hl_cs_in {
   __u64 chunks_restore;
   __u64 chunks_execute;
   union {
-    __u64 chunks_store;
     __u64 seq;
+    __u32 encaps_sig_handle_id;
+    struct {
+      __u32 encaps_signals_count;
+      __u32 encaps_signals_q_idx;
+    };
   };
   __u32 num_chunks_restore;
   __u32 num_chunks_execute;
-  __u32 num_chunks_store;
+  __u32 timeout;
   __u32 cs_flags;
   __u32 ctx_id;
 };
 struct hl_cs_out {
-  __u64 seq;
+  union {
+    __u64 seq;
+    struct {
+      __u32 handle_id;
+      __u32 count;
+    };
+  };
   __u32 status;
-  __u32 pad;
+  __u32 sob_base_addr_offset;
+  __u16 sob_count_before_submission;
+  __u16 pad[3];
 };
 union hl_cs_args {
   struct hl_cs_in in;
   struct hl_cs_out out;
 };
+#define HL_WAIT_CS_FLAGS_INTERRUPT 0x2
+#define HL_WAIT_CS_FLAGS_INTERRUPT_MASK 0xFFF00000
+#define HL_WAIT_CS_FLAGS_MULTI_CS 0x4
+#define HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ 0x10
+#define HL_WAIT_MULTI_CS_LIST_MAX_LEN 32
 struct hl_wait_cs_in {
-  __u64 seq;
-  __u64 timeout_us;
+  union {
+    struct {
+      __u64 seq;
+      __u64 timeout_us;
+    };
+    struct {
+      union {
+        __u64 addr;
+        __u64 cq_counters_handle;
+      };
+      __u64 target;
+    };
+  };
   __u32 ctx_id;
-  __u32 pad;
+  __u32 flags;
+  union {
+    struct {
+      __u8 seq_arr_len;
+      __u8 pad[7];
+    };
+    __u64 interrupt_timeout_us;
+  };
+  __u64 cq_counters_offset;
 };
 #define HL_WAIT_CS_STATUS_COMPLETED 0
 #define HL_WAIT_CS_STATUS_BUSY 1
 #define HL_WAIT_CS_STATUS_TIMEDOUT 2
 #define HL_WAIT_CS_STATUS_ABORTED 3
-#define HL_WAIT_CS_STATUS_INTERRUPTED 4
 #define HL_WAIT_CS_STATUS_FLAG_GONE 0x1
 #define HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD 0x2
 struct hl_wait_cs_out {
   __u32 status;
   __u32 flags;
   __s64 timestamp_nsec;
+  __u32 cs_completion_map;
+  __u32 pad;
 };
 union hl_wait_cs_args {
   struct hl_wait_cs_in in;
@@ -440,9 +560,11 @@
 #define HL_MEM_OP_MAP 2
 #define HL_MEM_OP_UNMAP 3
 #define HL_MEM_OP_MAP_BLOCK 4
+#define HL_MEM_OP_EXPORT_DMABUF_FD 5
 #define HL_MEM_CONTIGUOUS 0x1
 #define HL_MEM_SHARED 0x2
 #define HL_MEM_USERPTR 0x4
+#define HL_MEM_FORCE_HINT 0x8
 struct hl_mem_in {
   union {
     struct {
@@ -466,6 +588,10 @@
     struct {
       __u64 device_virt_addr;
     } unmap;
+    struct {
+      __u64 handle;
+      __u64 mem_size;
+    } export_dmabuf_fd;
   };
   __u32 op;
   __u32 flags;
@@ -481,6 +607,7 @@
       __u32 block_size;
       __u32 pad;
     };
+    __s32 fd;
   };
 };
 union hl_mem_args {
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
index 49d9f6a..87757a9 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
@@ -25,5 +25,6 @@
 };
 #define HISI_QM_API_VER_BASE "hisi_qm_v1"
 #define HISI_QM_API_VER2_BASE "hisi_qm_v2"
+#define HISI_QM_API_VER3_BASE "hisi_qm_v3"
 #define UACCE_CMD_QM_SET_QP_CTX _IOWR('H', 10, struct hisi_qp_ctx)
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
index 680ac1e..50ae565 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
@@ -121,6 +121,7 @@
 #define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64)
 #define MEMISLOCKED _IOR('M', 23, struct erase_info_user)
 #define MEMWRITE _IOWR('M', 24, struct mtd_write_req)
+#define OTPERASE _IOW('M', 25, struct otp_info)
 struct nand_oobinfo {
   __u32 useecc;
   __u32 eccbytes;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
index 3e45dc3..62ba685 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
@@ -24,7 +24,13 @@
 #define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
 #define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
 enum {
-  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
+  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL,
+  BNXT_RE_UCNTX_CMASK_HAVE_MODE = 0x02ULL,
+};
+enum bnxt_re_wqe_mode {
+  BNXT_QPLIB_WQE_MODE_STATIC = 0x00,
+  BNXT_QPLIB_WQE_MODE_VARIABLE = 0x01,
+  BNXT_QPLIB_WQE_MODE_INVALID = 0x02,
 };
 struct bnxt_re_uctx_resp {
   __u32 dev_id;
@@ -36,6 +42,8 @@
   __aligned_u64 comp_mask;
   __u32 chip_id0;
   __u32 chip_id1;
+  __u32 mode;
+  __u32 rsvd1;
 };
 struct bnxt_re_pd_resp {
   __u32 pdid;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/efa-abi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
index f20e3e0..4b6842b 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
@@ -47,11 +47,18 @@
   __u16 pdn;
   __u8 reserved_30[2];
 };
+enum {
+  EFA_CREATE_CQ_WITH_COMPLETION_CHANNEL = 1 << 0,
+};
 struct efa_ibv_create_cq {
   __u32 comp_mask;
   __u32 cq_entry_size;
   __u16 num_sub_cqs;
-  __u8 reserved_50[6];
+  __u8 flags;
+  __u8 reserved_58[5];
+};
+enum {
+  EFA_CREATE_CQ_RESP_DB_OFF = 1 << 0,
 };
 struct efa_ibv_create_cq_resp {
   __u32 comp_mask;
@@ -59,7 +66,9 @@
   __aligned_u64 q_mmap_key;
   __aligned_u64 q_mmap_size;
   __u16 cq_idx;
-  __u8 reserved_d0[6];
+  __u8 reserved_d0[2];
+  __u32 db_off;
+  __aligned_u64 db_mmap_key;
 };
 enum {
   EFA_QP_DRIVER_TYPE_SRD = 0,
@@ -92,6 +101,7 @@
 enum {
   EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
   EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1,
+  EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2,
 };
 struct efa_ibv_ex_query_device_resp {
   __u32 comp_mask;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/hns-abi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
index ad3e460..9c8d028 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
@@ -54,13 +54,17 @@
   HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0,
   HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1,
   HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2,
+  HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5,
 };
 struct hns_roce_ib_create_qp_resp {
   __aligned_u64 cap_flags;
+  __aligned_u64 dwqe_mmap_key;
 };
 struct hns_roce_ib_alloc_ucontext_resp {
   __u32 qp_tab_size;
   __u32 cqe_size;
+  __u32 srq_tab_size;
+  __u32 reserved;
 };
 struct hns_roce_ib_alloc_pd_resp {
   __u32 pdn;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h
deleted file mode 100644
index 60a17f5..0000000
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h
+++ /dev/null
@@ -1,75 +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 I40IW_ABI_H
-#define I40IW_ABI_H
-#include <linux/types.h>
-#define I40IW_ABI_VER 5
-struct i40iw_alloc_ucontext_req {
-  __u32 reserved32;
-  __u8 userspace_ver;
-  __u8 reserved8[3];
-};
-struct i40iw_alloc_ucontext_resp {
-  __u32 max_pds;
-  __u32 max_qps;
-  __u32 wq_size;
-  __u8 kernel_ver;
-  __u8 reserved[3];
-};
-struct i40iw_alloc_pd_resp {
-  __u32 pd_id;
-  __u8 reserved[4];
-};
-struct i40iw_create_cq_req {
-  __aligned_u64 user_cq_buffer;
-  __aligned_u64 user_shadow_area;
-};
-struct i40iw_create_qp_req {
-  __aligned_u64 user_wqe_buffers;
-  __aligned_u64 user_compl_ctx;
-  __aligned_u64 user_sq_phb;
-  __aligned_u64 user_rq_phb;
-};
-enum i40iw_memreg_type {
-  IW_MEMREG_TYPE_MEM = 0x0000,
-  IW_MEMREG_TYPE_QP = 0x0001,
-  IW_MEMREG_TYPE_CQ = 0x0002,
-};
-struct i40iw_mem_reg_req {
-  __u16 reg_type;
-  __u16 cq_pages;
-  __u16 rq_pages;
-  __u16 sq_pages;
-};
-struct i40iw_create_cq_resp {
-  __u32 cq_id;
-  __u32 cq_size;
-  __u32 mmap_db_index;
-  __u32 reserved;
-};
-struct i40iw_create_qp_resp {
-  __u32 qp_id;
-  __u32 actual_sq_size;
-  __u32 actual_rq_size;
-  __u32 i40iw_drv_opt;
-  __u16 push_idx;
-  __u8 lsmm;
-  __u8 rsvd2;
-};
-#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
index c443738..3b94907 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
@@ -181,6 +181,7 @@
   RDMA_DRIVER_OCRDMA,
   RDMA_DRIVER_NES,
   RDMA_DRIVER_I40IW,
+  RDMA_DRIVER_IRDMA = RDMA_DRIVER_I40IW,
   RDMA_DRIVER_VMW_PVRDMA,
   RDMA_DRIVER_QEDR,
   RDMA_DRIVER_HNS,
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
index dadb590..04b9f08 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
@@ -61,7 +61,7 @@
 };
 struct ib_user_mad {
   struct ib_user_mad_hdr hdr;
-  __aligned_u64 data[0];
+  __aligned_u64 data[];
 };
 typedef unsigned long __attribute__((aligned(4))) packed_ulong;
 #define IB_USER_MAD_LONGS_PER_METHOD_MASK (128 / (8 * sizeof(long)))
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h
new file mode 100644
index 0000000..b6840cf
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h
@@ -0,0 +1,103 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 IRDMA_ABI_H
+#define IRDMA_ABI_H
+#include <linux/types.h>
+#define IRDMA_ABI_VER 5
+enum irdma_memreg_type {
+  IRDMA_MEMREG_TYPE_MEM = 0,
+  IRDMA_MEMREG_TYPE_QP = 1,
+  IRDMA_MEMREG_TYPE_CQ = 2,
+};
+struct irdma_alloc_ucontext_req {
+  __u32 rsvd32;
+  __u8 userspace_ver;
+  __u8 rsvd8[3];
+};
+struct irdma_alloc_ucontext_resp {
+  __u32 max_pds;
+  __u32 max_qps;
+  __u32 wq_size;
+  __u8 kernel_ver;
+  __u8 rsvd[3];
+  __aligned_u64 feature_flags;
+  __aligned_u64 db_mmap_key;
+  __u32 max_hw_wq_frags;
+  __u32 max_hw_read_sges;
+  __u32 max_hw_inline;
+  __u32 max_hw_rq_quanta;
+  __u32 max_hw_wq_quanta;
+  __u32 min_hw_cq_size;
+  __u32 max_hw_cq_size;
+  __u16 max_hw_sq_chunk;
+  __u8 hw_rev;
+  __u8 rsvd2;
+};
+struct irdma_alloc_pd_resp {
+  __u32 pd_id;
+  __u8 rsvd[4];
+};
+struct irdma_resize_cq_req {
+  __aligned_u64 user_cq_buffer;
+};
+struct irdma_create_cq_req {
+  __aligned_u64 user_cq_buf;
+  __aligned_u64 user_shadow_area;
+};
+struct irdma_create_qp_req {
+  __aligned_u64 user_wqe_bufs;
+  __aligned_u64 user_compl_ctx;
+};
+struct irdma_mem_reg_req {
+  __u16 reg_type;
+  __u16 cq_pages;
+  __u16 rq_pages;
+  __u16 sq_pages;
+};
+struct irdma_modify_qp_req {
+  __u8 sq_flush;
+  __u8 rq_flush;
+  __u8 rsvd[6];
+};
+struct irdma_create_cq_resp {
+  __u32 cq_id;
+  __u32 cq_size;
+};
+struct irdma_create_qp_resp {
+  __u32 qp_id;
+  __u32 actual_sq_size;
+  __u32 actual_rq_size;
+  __u32 irdma_drv_opt;
+  __u16 push_idx;
+  __u8 lsmm;
+  __u8 rsvd;
+  __u32 qp_caps;
+};
+struct irdma_modify_qp_resp {
+  __aligned_u64 push_wqe_mmap_key;
+  __aligned_u64 push_db_mmap_key;
+  __u16 push_offset;
+  __u8 push_valid;
+  __u8 rsvd[5];
+};
+struct irdma_create_ah_resp {
+  __u32 ah_id;
+  __u8 rsvd[4];
+};
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
index 59a9f53..aadb20e 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
@@ -33,6 +33,7 @@
   MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
   MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9,
   MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10,
+  MLX5_QP_FLAG_DCI_STREAM = 1 << 11,
 };
 enum {
   MLX5_SRQ_FLAG_SIGNATURE = 1 << 0,
@@ -67,6 +68,8 @@
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1,
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2,
+  MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3,
+  MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4,
 };
 enum mlx5_user_cmds_supp_uhw {
   MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0,
@@ -163,6 +166,10 @@
   __u32 supported_qpts;
   __u32 reserved;
 };
+struct mlx5_ib_dci_streams_caps {
+  __u8 max_log_num_concurent;
+  __u8 max_log_num_errored;
+};
 enum mlx5_ib_query_dev_resp_flags {
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1,
@@ -188,11 +195,13 @@
   struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
   struct mlx5_ib_striding_rq_caps striding_rq_caps;
   __u32 tunnel_offloads_caps;
-  __u32 reserved;
+  struct mlx5_ib_dci_streams_caps dci_streams_caps;
+  __u16 reserved;
 };
 enum mlx5_ib_create_cq_flags {
   MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
   MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1,
+  MLX5_IB_CREATE_CQ_FLAGS_REAL_TIME_TS = 1 << 2,
 };
 struct mlx5_ib_create_cq {
   __aligned_u64 buf_addr;
@@ -227,6 +236,10 @@
   __u32 srqn;
   __u32 reserved;
 };
+struct mlx5_ib_create_qp_dci_streams {
+  __u8 log_num_concurent;
+  __u8 log_num_errored;
+};
 struct mlx5_ib_create_qp {
   __aligned_u64 buf_addr;
   __aligned_u64 db_addr;
@@ -241,7 +254,8 @@
     __aligned_u64 access_key;
   };
   __u32 ece_options;
-  __u32 reserved;
+  struct mlx5_ib_create_qp_dci_streams dci_streams;
+  __u16 reserved;
 };
 enum mlx5_rx_hash_function_flags {
   MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
index 804a90b..862abcb 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -23,6 +23,22 @@
 enum mlx5_ib_create_flow_action_attrs {
   MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_dm_methods {
+  MLX5_IB_METHOD_DM_MAP_OP_ADDR = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_METHOD_DM_QUERY,
+};
+enum mlx5_ib_dm_map_op_addr_attrs {
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_OP,
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_START_OFFSET,
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_PAGE_INDEX,
+};
+enum mlx5_ib_query_dm_attrs {
+  MLX5_IB_ATTR_QUERY_DM_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_QUERY_DM_RESP_START_OFFSET,
+  MLX5_IB_ATTR_QUERY_DM_RESP_PAGE_INDEX,
+  MLX5_IB_ATTR_QUERY_DM_RESP_LENGTH,
+};
 enum mlx5_ib_alloc_dm_attrs {
   MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
   MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
@@ -118,6 +134,7 @@
   MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
   MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
   MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
+  MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP,
 };
 enum mlx5_ib_devx_umem_dereg_attrs {
   MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
@@ -181,7 +198,7 @@
 enum mlx5_ib_device_query_context_attrs {
   MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
 };
-#define MLX5_IB_DW_MATCH_PARAM 0x90
+#define MLX5_IB_DW_MATCH_PARAM 0xA0
 struct mlx5_ib_match_params {
   __u32 match_params[MLX5_IB_DW_MATCH_PARAM];
 };
@@ -236,4 +253,11 @@
 enum mlx5_ib_pd_methods {
   MLX5_IB_METHOD_PD_QUERY = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_device_methods {
+  MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum mlx5_ib_query_port_attrs {
+  MLX5_IB_ATTR_QUERY_PORT_PORT_NUM = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_QUERY_PORT,
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
index bfbfd76..c3c3f89 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -58,4 +58,26 @@
   MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF = 0x0,
   MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1,
 };
+enum mlx5_ib_uapi_query_port_flags {
+  MLX5_IB_UAPI_QUERY_PORT_VPORT = 1 << 0,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_VHCA_ID = 1 << 1,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_RX = 1 << 2,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_TX = 1 << 3,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_REG_C0 = 1 << 4,
+  MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID = 1 << 5,
+};
+struct mlx5_ib_uapi_reg {
+  __u32 value;
+  __u32 mask;
+};
+struct mlx5_ib_uapi_query_port {
+  __aligned_u64 flags;
+  __u16 vport;
+  __u16 vport_vhca_id;
+  __u16 esw_owner_vhca_id;
+  __u16 rsvd0;
+  __aligned_u64 vport_steering_icm_rx;
+  __aligned_u64 vport_steering_icm_tx;
+  struct mlx5_ib_uapi_reg reg_c0;
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
index 48444da..bdb5fdd 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
@@ -207,6 +207,9 @@
   RDMA_NLDEV_CMD_RES_QP_GET_RAW,
   RDMA_NLDEV_CMD_RES_CQ_GET_RAW,
   RDMA_NLDEV_CMD_RES_MR_GET_RAW,
+  RDMA_NLDEV_CMD_RES_CTX_GET,
+  RDMA_NLDEV_CMD_RES_SRQ_GET,
+  RDMA_NLDEV_CMD_STAT_GET_STATUS,
   RDMA_NLDEV_NUM_OPS
 };
 enum rdma_nldev_print_type {
@@ -301,6 +304,16 @@
   RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY_VALUE,
   RDMA_NLDEV_ATTR_DEV_DIM,
   RDMA_NLDEV_ATTR_RES_RAW,
+  RDMA_NLDEV_ATTR_RES_CTX,
+  RDMA_NLDEV_ATTR_RES_CTX_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SRQ,
+  RDMA_NLDEV_ATTR_RES_SRQ_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SRQN,
+  RDMA_NLDEV_ATTR_MIN_RANGE,
+  RDMA_NLDEV_ATTR_MAX_RANGE,
+  RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK,
+  RDMA_NLDEV_ATTR_STAT_HWCOUNTER_INDEX,
+  RDMA_NLDEV_ATTR_STAT_HWCOUNTER_DYNAMIC,
   RDMA_NLDEV_ATTR_MAX
 };
 enum rdma_nl_counter_mode {
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
index 9618734..7b1f7ee 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
@@ -88,7 +88,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 reserved;
-  struct sockaddr_storage addr;
+  struct __kernel_sockaddr_storage addr;
 };
 struct rdma_ucm_resolve_ip {
   struct sockaddr_in6 src_addr;
@@ -102,8 +102,8 @@
   __u16 src_size;
   __u16 dst_size;
   __u32 reserved;
-  struct sockaddr_storage src_addr;
-  struct sockaddr_storage dst_addr;
+  struct __kernel_sockaddr_storage src_addr;
+  struct __kernel_sockaddr_storage dst_addr;
 };
 struct rdma_ucm_resolve_route {
   __u32 id;
@@ -137,8 +137,8 @@
   __u16 pkey;
   __u16 src_size;
   __u16 dst_size;
-  struct sockaddr_storage src_addr;
-  struct sockaddr_storage dst_addr;
+  struct __kernel_sockaddr_storage src_addr;
+  struct __kernel_sockaddr_storage dst_addr;
   __u32 ibdev_index;
   __u32 reserved1;
 };
@@ -225,7 +225,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 join_flags;
-  struct sockaddr_storage addr;
+  struct __kernel_sockaddr_storage addr;
 };
 struct rdma_ucm_get_event {
   __aligned_u64 response;
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
index 9fd21d7..cdb00c7 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
@@ -76,15 +76,19 @@
       __u32 remote_qpn;
       __u32 remote_qkey;
       __u16 pkey_index;
+      __u16 reserved;
+      __u32 ah_num;
+      __u32 pad[4];
+      struct rxe_av av;
     } ud;
     struct {
-      union {
-        struct ib_mr * mr;
-        __aligned_u64 reserved;
-      };
-      __u32 key;
+      __aligned_u64 addr;
+      __aligned_u64 length;
+      __u32 mr_lkey;
+      __u32 mw_rkey;
+      __u32 rkey;
       __u32 access;
-    } reg;
+    } mw;
   } wr;
 };
 struct rxe_sge {
@@ -105,13 +109,12 @@
   __u32 sge_offset;
   __u32 reserved;
   union {
-    __u8 inline_data[0];
-    struct rxe_sge sge[0];
+    __DECLARE_FLEX_ARRAY(__u8, inline_data);
+    __DECLARE_FLEX_ARRAY(struct rxe_sge, sge);
   };
 };
 struct rxe_send_wqe {
   struct rxe_send_wr wr;
-  struct rxe_av av;
   __u32 status;
   __u32 state;
   __aligned_u64 iova;
@@ -129,6 +132,10 @@
   __u32 padding;
   struct rxe_dma_info dma;
 };
+struct rxe_create_ah_resp {
+  __u32 ah_num;
+  __u32 reserved;
+};
 struct rxe_create_cq_resp {
   struct mminfo mi;
 };
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
index f31e764..04ae5b8 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
@@ -42,6 +42,7 @@
   ELS_REC = 0x13,
   ELS_SRR = 0x14,
   ELS_FPIN = 0x16,
+  ELS_EDC = 0x17,
   ELS_RDP = 0x18,
   ELS_RDF = 0x19,
   ELS_PRLI = 0x20,
@@ -85,7 +86,7 @@
   ELS_LKA = 0x80,
   ELS_AUTH_ELS = 0x90,
 };
-#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_RDP] = "RDP",[ELS_RDF] = "RDF",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \
+#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_EDC] = "EDC",[ELS_RDP] = "RDP",[ELS_RDF] = "RDF",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \
 }
 struct fc_els_ls_acc {
   __u8 la_cmd;
@@ -128,13 +129,15 @@
 };
 enum fc_ls_tlv_dtag {
   ELS_DTAG_LS_REQ_INFO = 0x00000001,
+  ELS_DTAG_LNK_FAULT_CAP = 0x0001000D,
+  ELS_DTAG_CG_SIGNAL_CAP = 0x0001000F,
   ELS_DTAG_LNK_INTEGRITY = 0x00020001,
   ELS_DTAG_DELIVERY = 0x00020002,
   ELS_DTAG_PEER_CONGEST = 0x00020003,
   ELS_DTAG_CONGESTION = 0x00020004,
   ELS_DTAG_FPIN_REGISTER = 0x00030001,
 };
-#define FC_LS_TLV_DTAG_INIT { { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, { ELS_DTAG_CONGESTION, "Congestion Notification" }, { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
+#define FC_LS_TLV_DTAG_INIT { { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, { ELS_DTAG_LNK_FAULT_CAP, "Link Fault Capability" }, { ELS_DTAG_CG_SIGNAL_CAP, "Congestion Signaling Capability" }, { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, { ELS_DTAG_CONGESTION, "Congestion Notification" }, { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
 }
 struct fc_tlv_desc {
   __be32 desc_tag;
@@ -668,4 +671,48 @@
   struct fc_els_lsri_desc lsri;
   struct fc_tlv_desc desc[0];
 };
+struct fc_diag_lnkflt_desc {
+  __be32 desc_tag;
+  __be32 desc_len;
+  __be32 degrade_activate_threshold;
+  __be32 degrade_deactivate_threshold;
+  __be32 fec_degrade_interval;
+};
+enum fc_edc_cg_signal_cap_types {
+  EDC_CG_SIG_NOTSUPPORTED = 0x00,
+  EDC_CG_SIG_WARN_ONLY = 0x01,
+  EDC_CG_SIG_WARN_ALARM = 0x02,
+};
+#define FC_EDC_CG_SIGNAL_CAP_TYPES_INIT { { EDC_CG_SIG_NOTSUPPORTED, "Signaling Not Supported" }, { EDC_CG_SIG_WARN_ONLY, "Warning Signal" }, { EDC_CG_SIG_WARN_ALARM, "Warning and Alarm Signals" }, \
+}
+enum fc_diag_cg_sig_freq_types {
+  EDC_CG_SIGFREQ_CNT_MIN = 1,
+  EDC_CG_SIGFREQ_CNT_MAX = 999,
+  EDC_CG_SIGFREQ_SEC = 0x1,
+  EDC_CG_SIGFREQ_MSEC = 0x2,
+};
+struct fc_diag_cg_sig_freq {
+  __be16 count;
+  __be16 units;
+};
+struct fc_diag_cg_sig_desc {
+  __be32 desc_tag;
+  __be32 desc_len;
+  __be32 xmt_signal_capability;
+  struct fc_diag_cg_sig_freq xmt_signal_frequency;
+  __be32 rcv_signal_capability;
+  struct fc_diag_cg_sig_freq rcv_signal_frequency;
+};
+struct fc_els_edc {
+  __u8 edc_cmd;
+  __u8 edc_zero[3];
+  __be32 desc_len;
+  struct fc_tlv_desc desc[0];
+};
+struct fc_els_edc_resp {
+  struct fc_els_ls_acc acc_hdr;
+  __be32 desc_list_len;
+  struct fc_els_lsri_desc lsri;
+  struct fc_tlv_desc desc[0];
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/asoc.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/asoc.h
index c962603..eeb12b0 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/asoc.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/asoc.h
@@ -157,8 +157,8 @@
 struct snd_soc_tplg_private {
   __le32 size;
   union {
-    char data[0];
-    struct snd_soc_tplg_vendor_array array[0];
+    __DECLARE_FLEX_ARRAY(char, data);
+    __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_array, array);
   };
 } __attribute__((packed));
 struct snd_soc_tplg_tlv_dbscale {
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/asound.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/asound.h
index 397cccc..b0e47c1 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/asound.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/asound.h
@@ -32,8 +32,9 @@
 #define SNDRV_PROTOCOL_MINOR(version) (((version) >> 8) & 0xff)
 #define SNDRV_PROTOCOL_MICRO(version) ((version) & 0xff)
 #define SNDRV_PROTOCOL_INCOMPATIBLE(kversion,uversion) (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion)))
+#define AES_IEC958_STATUS_SIZE 24
 struct snd_aes_iec958 {
-  unsigned char status[24];
+  unsigned char status[AES_IEC958_STATUS_SIZE];
   unsigned char subcode[147];
   unsigned char pad;
   unsigned char dig_subframe[4];
@@ -234,6 +235,8 @@
 #define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME 0x02000000
 #define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME 0x04000000
 #define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000
+#define SNDRV_PCM_INFO_EXPLICIT_SYNC 0x10000000
+#define SNDRV_PCM_INFO_NO_REWINDS 0x20000000
 #define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000
 #define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000
 #if __BITS_PER_LONG == 32 && defined(__USE_TIME_BITS64)
@@ -562,7 +565,7 @@
 #define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern)
 #define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int)
 #define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61)
-#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 1)
+#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 2)
 enum {
   SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
   SNDRV_RAWMIDI_STREAM_INPUT,
@@ -584,12 +587,32 @@
   unsigned int subdevices_avail;
   unsigned char reserved[64];
 };
+#define SNDRV_RAWMIDI_MODE_FRAMING_MASK (7 << 0)
+#define SNDRV_RAWMIDI_MODE_FRAMING_SHIFT 0
+#define SNDRV_RAWMIDI_MODE_FRAMING_NONE (0 << 0)
+#define SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP (1 << 0)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MASK (7 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_SHIFT 3
+#define SNDRV_RAWMIDI_MODE_CLOCK_NONE (0 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_REALTIME (1 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC (2 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC_RAW (3 << 3)
+#define SNDRV_RAWMIDI_FRAMING_DATA_LENGTH 16
+struct snd_rawmidi_framing_tstamp {
+  __u8 frame_type;
+  __u8 length;
+  __u8 reserved[2];
+  __u32 tv_nsec;
+  __u64 tv_sec;
+  __u8 data[SNDRV_RAWMIDI_FRAMING_DATA_LENGTH];
+} __packed;
 struct snd_rawmidi_params {
   int stream;
   size_t buffer_size;
   size_t avail_min;
   unsigned int no_active_sensing : 1;
-  unsigned char reserved[16];
+  unsigned int mode;
+  unsigned char reserved[12];
 };
 struct snd_rawmidi_status {
   int stream;
@@ -601,6 +624,7 @@
 };
 #define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
 #define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
+#define SNDRV_RAWMIDI_IOCTL_USER_PVERSION _IOW('W', 0x02, int)
 #define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params)
 #define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status)
 #define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int)
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/firewire.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/firewire.h
index 67c010b..198a8f4 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/firewire.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/firewire.h
@@ -26,6 +26,7 @@
 #define SNDRV_FIREWIRE_EVENT_DIGI00X_MESSAGE 0x746e736c
 #define SNDRV_FIREWIRE_EVENT_MOTU_NOTIFICATION 0x64776479
 #define SNDRV_FIREWIRE_EVENT_TASCAM_CONTROL 0x7473636d
+#define SNDRV_FIREWIRE_EVENT_MOTU_REGISTER_DSP_CHANGE 0x4d545244
 struct snd_firewire_event_common {
   unsigned int type;
 };
@@ -68,6 +69,11 @@
   unsigned int type;
   struct snd_firewire_tascam_change changes[0];
 };
+struct snd_firewire_event_motu_register_dsp_change {
+  unsigned int type;
+  __u32 count;
+  __u32 changes[];
+};
 union snd_firewire_event {
   struct snd_firewire_event_common common;
   struct snd_firewire_event_lock_status lock_status;
@@ -76,11 +82,15 @@
   struct snd_firewire_event_digi00x_message digi00x_message;
   struct snd_firewire_event_tascam_control tascam_control;
   struct snd_firewire_event_motu_notification motu_notification;
+  struct snd_firewire_event_motu_register_dsp_change motu_register_dsp_change;
 };
 #define SNDRV_FIREWIRE_IOCTL_GET_INFO _IOR('H', 0xf8, struct snd_firewire_get_info)
 #define SNDRV_FIREWIRE_IOCTL_LOCK _IO('H', 0xf9)
 #define SNDRV_FIREWIRE_IOCTL_UNLOCK _IO('H', 0xfa)
 #define SNDRV_FIREWIRE_IOCTL_TASCAM_STATE _IOR('H', 0xfb, struct snd_firewire_tascam_state)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_METER _IOR('H', 0xfc, struct snd_firewire_motu_register_dsp_meter)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_COMMAND_DSP_METER _IOR('H', 0xfd, struct snd_firewire_motu_command_dsp_meter)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_PARAMETER _IOR('H', 0xfe, struct snd_firewire_motu_register_dsp_parameter)
 #define SNDRV_FIREWIRE_TYPE_DICE 1
 #define SNDRV_FIREWIRE_TYPE_FIREWORKS 2
 #define SNDRV_FIREWIRE_TYPE_BEBOB 3
@@ -99,4 +109,49 @@
 struct snd_firewire_tascam_state {
   __be32 data[SNDRV_FIREWIRE_TASCAM_STATE_COUNT];
 };
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT 24
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT 24
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT + SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT)
+struct snd_firewire_motu_register_dsp_meter {
+  __u8 data[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT];
+};
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT 4
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT 20
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT 10
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT + 2)
+struct snd_firewire_motu_register_dsp_parameter {
+  struct {
+    struct {
+      __u8 gain[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 pan[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 paired_balance[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 paired_width[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+    } source[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+    struct {
+      __u8 paired_volume[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+      __u8 paired_flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+    } output;
+  } mixer;
+  struct {
+    __u8 main_paired_volume;
+    __u8 hp_paired_volume;
+    __u8 hp_paired_assignment;
+    __u8 reserved[5];
+  } output;
+  struct {
+    __u8 boost_flag;
+    __u8 nominal_level_flag;
+    __u8 reserved[6];
+  } line_input;
+  struct {
+    __u8 gain_and_invert[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
+    __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
+  } input;
+  __u8 reserved[64];
+};
+#define SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT 400
+struct snd_firewire_motu_command_dsp_meter {
+  float data[SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT];
+};
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h
new file mode 100644
index 0000000..39c0684
--- /dev/null
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __SND_AR_TOKENS_H__
+#define __SND_AR_TOKENS_H__
+#define APM_SUB_GRAPH_PERF_MODE_LOW_POWER 0x1
+#define APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY 0x2
+#define APM_SUB_GRAPH_DIRECTION_TX 0x1
+#define APM_SUB_GRAPH_DIRECTION_RX 0x2
+#define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK 0x1
+#define APM_SUB_GRAPH_SID_AUDIO_RECORD 0x2
+#define APM_SUB_GRAPH_SID_VOICE_CALL 0x3
+#define APM_CONTAINER_CAP_ID_PP 0x1
+#define APM_CONTAINER_CAP_ID_CD 0x2
+#define APM_CONTAINER_CAP_ID_EP 0x3
+#define APM_CONTAINER_CAP_ID_OLC 0x4
+#define APM_CONT_GRAPH_POS_STREAM 0x1
+#define APM_CONT_GRAPH_POS_PER_STR_PER_DEV 0x2
+#define APM_CONT_GRAPH_POS_STR_DEV 0x3
+#define APM_CONT_GRAPH_POS_GLOBAL_DEV 0x4
+#define APM_PROC_DOMAIN_ID_MDSP 0x1
+#define APM_PROC_DOMAIN_ID_ADSP 0x2
+#define APM_PROC_DOMAIN_ID_SDSP 0x4
+#define APM_PROC_DOMAIN_ID_CDSP 0x5
+#define PCM_INTERLEAVED 1
+#define PCM_DEINTERLEAVED_PACKED 2
+#define PCM_DEINTERLEAVED_UNPACKED 3
+#define AR_I2S_WS_SRC_EXTERNAL 0
+#define AR_I2S_WS_SRC_INTERNAL 1
+enum ar_event_types {
+  AR_EVENT_NONE = 0,
+  AR_PGA_DAPM_EVENT
+};
+#define SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX 256
+#define SND_SOC_AR_TPLG_VOL_CTL 257
+#define AR_TKN_DAI_INDEX 1
+#define AR_TKN_U32_SUB_GRAPH_INSTANCE_ID 2
+#define AR_TKN_U32_SUB_GRAPH_PERF_MODE 3
+#define AR_TKN_U32_SUB_GRAPH_DIRECTION 4
+#define AR_TKN_U32_SUB_GRAPH_SCENARIO_ID 5
+#define AR_TKN_U32_CONTAINER_INSTANCE_ID 100
+#define AR_TKN_U32_CONTAINER_CAPABILITY_ID 101
+#define AR_TKN_U32_CONTAINER_STACK_SIZE 102
+#define AR_TKN_U32_CONTAINER_GRAPH_POS 103
+#define AR_TKN_U32_CONTAINER_PROC_DOMAIN 104
+#define AR_TKN_U32_MODULE_ID 200
+#define AR_TKN_U32_MODULE_INSTANCE_ID 201
+#define AR_TKN_U32_MODULE_MAX_IP_PORTS 202
+#define AR_TKN_U32_MODULE_MAX_OP_PORTS 203
+#define AR_TKN_U32_MODULE_IN_PORTS 204
+#define AR_TKN_U32_MODULE_OUT_PORTS 205
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID 206
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID 207
+#define AR_TKN_U32_MODULE_SRC_INSTANCE_ID 208
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID 209
+#define AR_TKN_U32_MODULE_HW_IF_IDX 250
+#define AR_TKN_U32_MODULE_HW_IF_TYPE 251
+#define AR_TKN_U32_MODULE_FMT_INTERLEAVE 252
+#define AR_TKN_U32_MODULE_FMT_DATA 253
+#define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE 254
+#define AR_TKN_U32_MODULE_FMT_BIT_DEPTH 255
+#define AR_TKN_U32_MODULE_SD_LINE_IDX 256
+#define AR_TKN_U32_MODULE_WS_SRC 257
+#define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR 258
+#define AR_TKN_U32_MODULE_LOG_CODE 259
+#define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID 260
+#define AR_TKN_U32_MODULE_LOG_MODE 261
+#endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
index 85a99c7..bf012fa 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
@@ -97,6 +97,7 @@
   SKL_TKN_U32_ASTATE_COUNT,
   SKL_TKN_U32_ASTATE_KCPS,
   SKL_TKN_U32_ASTATE_CLK_SRC,
-  SKL_TKN_MAX = SKL_TKN_U32_ASTATE_CLK_SRC,
+  SKL_TKN_U32_FMT_CFG_IDX = 96,
+  SKL_TKN_MAX = SKL_TKN_U32_FMT_CFG_IDX,
 };
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/sof/tokens.h b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
index ef62372..856281a 100644
--- a/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
+++ b/mainline/runtime/sdk/android/x86_64/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
@@ -36,6 +36,7 @@
 #define SOF_TKN_SCHED_CORE 203
 #define SOF_TKN_SCHED_FRAMES 204
 #define SOF_TKN_SCHED_TIME_DOMAIN 205
+#define SOF_TKN_SCHED_DYNAMIC_PIPELINE 206
 #define SOF_TKN_VOLUME_RAMP_STEP_TYPE 250
 #define SOF_TKN_VOLUME_RAMP_STEP_MS 251
 #define SOF_TKN_SRC_RATE_IN 300
@@ -86,4 +87,7 @@
 #define SOF_TKN_INTEL_ALH_CH 1401
 #define SOF_TKN_INTEL_HDA_RATE 1500
 #define SOF_TKN_INTEL_HDA_CH 1501
+#define SOF_TKN_MEDIATEK_AFE_RATE 1600
+#define SOF_TKN_MEDIATEK_AFE_CH 1601
+#define SOF_TKN_MEDIATEK_AFE_FORMAT 1602
 #endif
diff --git a/mainline/runtime/sdk/android/x86_64/lib/crtbegin_dynamic.o b/mainline/runtime/sdk/android/x86_64/lib/crtbegin_dynamic.o
index 7ab65fa..e6f8a98 100644
--- a/mainline/runtime/sdk/android/x86_64/lib/crtbegin_dynamic.o
+++ b/mainline/runtime/sdk/android/x86_64/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86_64/lib/crtbegin_so.o b/mainline/runtime/sdk/android/x86_64/lib/crtbegin_so.o
index 4c484d1..bab7597 100644
--- a/mainline/runtime/sdk/android/x86_64/lib/crtbegin_so.o
+++ b/mainline/runtime/sdk/android/x86_64/lib/crtbegin_so.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86_64/lib/crtend.o b/mainline/runtime/sdk/android/x86_64/lib/crtend.o
index 3233f21..c9e8a09 100644
--- a/mainline/runtime/sdk/android/x86_64/lib/crtend.o
+++ b/mainline/runtime/sdk/android/x86_64/lib/crtend.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86_64/lib/crtend_so.o b/mainline/runtime/sdk/android/x86_64/lib/crtend_so.o
index 22b2827..2f126fa 100644
--- a/mainline/runtime/sdk/android/x86_64/lib/crtend_so.o
+++ b/mainline/runtime/sdk/android/x86_64/lib/crtend_so.o
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86_64/lib/libasync_safe.a b/mainline/runtime/sdk/android/x86_64/lib/libasync_safe.a
index 318a074..830b3fd 100644
--- a/mainline/runtime/sdk/android/x86_64/lib/libasync_safe.a
+++ b/mainline/runtime/sdk/android/x86_64/lib/libasync_safe.a
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86_64/lib/libc.so b/mainline/runtime/sdk/android/x86_64/lib/libc.so
index 1386f9b..781fad6 100755
--- a/mainline/runtime/sdk/android/x86_64/lib/libc.so
+++ b/mainline/runtime/sdk/android/x86_64/lib/libc.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86_64/lib/libdl.so b/mainline/runtime/sdk/android/x86_64/lib/libdl.so
index 6f1ef57..01ee561 100755
--- a/mainline/runtime/sdk/android/x86_64/lib/libdl.so
+++ b/mainline/runtime/sdk/android/x86_64/lib/libdl.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86_64/lib/libdl_android.so b/mainline/runtime/sdk/android/x86_64/lib/libdl_android.so
index f323738..869349c 100755
--- a/mainline/runtime/sdk/android/x86_64/lib/libdl_android.so
+++ b/mainline/runtime/sdk/android/x86_64/lib/libdl_android.so
Binary files differ
diff --git a/mainline/runtime/sdk/android/x86_64/lib/libm.so b/mainline/runtime/sdk/android/x86_64/lib/libm.so
index 48b124a..bdcecd4 100755
--- a/mainline/runtime/sdk/android/x86_64/lib/libm.so
+++ b/mainline/runtime/sdk/android/x86_64/lib/libm.so
Binary files differ
diff --git a/mainline/runtime/sdk/common_os/include/bionic/libc/system_properties/include/system_properties/prop_trace.h b/mainline/runtime/sdk/common_os/include/bionic/libc/system_properties/include/system_properties/prop_trace.h
deleted file mode 100644
index 7c65a6d..0000000
--- a/mainline/runtime/sdk/common_os/include/bionic/libc/system_properties/include/system_properties/prop_trace.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2020 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
-
-#include "platform/bionic/macros.h"
-
-#include "prop_info.h"
-
-// Tracing class for sysprop. To begin a trace at a specified point:
-//   SyspropTrace trace ("prop_name", "prop_value");
-// The trace will end when the constructor goes out of scope.
-// For read-only properties (ro.*), also need to pass prop_info struct.
-
-enum class PropertyAction {
-  kPropertyFind = 0,
-  kPropertySet,
-  kPropertyGetReadOnly,
-  kPropertyGetReadWrite,
-};
-
-class __LIBC_HIDDEN__ SyspropTrace {
- public:
-  explicit SyspropTrace(const char* prop_name, const char* prop_value, const prop_info* pi,
-                        PropertyAction action);
-  ~SyspropTrace();
-
- private:
-  const char* prop_name_;
-  const char* prop_value_;
-  const prop_info* prop_info_;
-  PropertyAction prop_action_;
-  bool output_trace_;
-
-  BIONIC_DISALLOW_COPY_AND_ASSIGN(SyspropTrace);
-};
diff --git a/mainline/runtime/sdk/common_os/include/system/logging/liblog/include/log/logprint.h b/mainline/runtime/sdk/common_os/include/system/logging/liblog/include/log/logprint.h
index 7dfd914..0cff640 100644
--- a/mainline/runtime/sdk/common_os/include/system/logging/liblog/include/log/logprint.h
+++ b/mainline/runtime/sdk/common_os/include/system/logging/liblog/include/log/logprint.h
@@ -17,6 +17,7 @@
 #pragma once
 
 #include <stdint.h>
+#include <stdio.h>
 #include <sys/types.h>
 
 #include <android/log.h>
@@ -147,13 +148,9 @@
                                 size_t* p_outLength);
 
 /**
- * Either print or do not print log line, based on filter
- *
- * Assumes single threaded execution
- *
+ * Formats a log message into a FILE*.
  */
-int android_log_printLogLine(AndroidLogFormat* p_format, int fd,
-                             const AndroidLogEntry* entry);
+size_t android_log_printLogLine(AndroidLogFormat* p_format, FILE* fp, const AndroidLogEntry* entry);
 
 #ifdef __cplusplus
 }
diff --git a/mainline/runtime/sdk/licenses/bionic/libc/NOTICE b/mainline/runtime/sdk/licenses/bionic/libc/NOTICE
index 26fef05..9cbbde2 100644
--- a/mainline/runtime/sdk/licenses/bionic/libc/NOTICE
+++ b/mainline/runtime/sdk/licenses/bionic/libc/NOTICE
@@ -855,22 +855,6 @@
 -------------------------------------------------------------------
 
 Copyright (C) 2020 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.
-
--------------------------------------------------------------------
-
-Copyright (C) 2020 The Android Open Source Project
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -926,6 +910,34 @@
 
 -------------------------------------------------------------------
 
+Copyright (C) 2022 The Android Open Source Project
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the
+   distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
 Copyright (c) 1980, 1983, 1988, 1993
    The Regents of the University of California.  All rights reserved.
 
diff --git a/mainline/runtime/sdk/licenses/bionic/libm/NOTICE b/mainline/runtime/sdk/licenses/bionic/libm/NOTICE
index 62d253b..64d253a 100644
--- a/mainline/runtime/sdk/licenses/bionic/libm/NOTICE
+++ b/mainline/runtime/sdk/licenses/bionic/libm/NOTICE
@@ -281,6 +281,34 @@
 
 -------------------------------------------------------------------
 
+Copyright (C) 2021 The Android Open Source Project
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+ * Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in
+   the documentation and/or other materials provided with the
+   distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
 Copyright (c) 1985, 1993
    The Regents of the University of California.  All rights reserved.
 
@@ -661,6 +689,14 @@
 
 -------------------------------------------------------------------
 
+Copyright (c) 2005-2020 Rich Felker, et al.
+
+
+Please see https://git.musl-libc.org/cgit/musl/tree/COPYRIGHT
+for all contributors to musl.
+
+-------------------------------------------------------------------
+
 Copyright (c) 2007 David Schultz
 All rights reserved.
 
@@ -1145,6 +1181,32 @@
 
 -------------------------------------------------------------------
 
+Copyright (c) 2017 Steven G. Kargl
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice unmodified, this list of conditions, and the following
+   disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-------------------------------------------------------------------
+
 From: @(#)s_ilogb.c 5.1 93/09/24
 ====================================================
 Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/api-level.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/api-level.h
index 40846fb..ecf318d 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/api-level.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/api-level.h
@@ -151,6 +151,9 @@
 /** Names the "S" API level (31), for comparison against `__ANDROID_API__`. */
 #define __ANDROID_API_S__ 31
 
+/** Names the "T" API level (33), for comparison against `__ANDROID_API__`. */
+#define __ANDROID_API_T__ 33
+
 /* This file is included in <features.h>, and might be used from .S files. */
 #if !defined(__ASSEMBLY__)
 
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/legacy_signal_inlines.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/legacy_signal_inlines.h
index 95c2320..f2bdcf6 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/legacy_signal_inlines.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/legacy_signal_inlines.h
@@ -89,7 +89,7 @@
     errno = EINVAL;
     return -1;
   }
-  return (int)((local_set[bit / LONG_BIT] >> (bit % LONG_BIT)) & 1);
+  return (int)((local_set[bit / (8 * sizeof(long))] >> (bit % (8 * sizeof(long)))) & 1);
 }
 
 static __inline int sigaddset(sigset_t *set, int signum) {
@@ -100,7 +100,7 @@
     errno = EINVAL;
     return -1;
   }
-  local_set[bit / LONG_BIT] |= 1UL << (bit % LONG_BIT);
+  local_set[bit / (8 * sizeof(long))] |= 1UL << (bit % (8 * sizeof(long)));
   return 0;
 }
 
@@ -112,7 +112,7 @@
     errno = EINVAL;
     return -1;
   }
-  local_set[bit / LONG_BIT] &= ~(1UL << (bit % LONG_BIT));
+  local_set[bit / (8 * sizeof(long))] &= ~(1UL << (bit % (8 * sizeof(long))));
   return 0;
 }
 
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/versioning.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/versioning.h
index 214acf2..efe4354 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/versioning.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/android/versioning.h
@@ -51,7 +51,7 @@
 // those APIs will still cause a link error.
 #if defined(__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__)
 #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,__what)))
-#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
+#define __INTRODUCED_IN_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN(api_level)
 #define __INTRODUCED_IN_X86_NO_GUARD_FOR_NDK(api_level) __INTRODUCED_IN_X86(api_level)
 #else
 #define __BIONIC_AVAILABILITY(__what) __attribute__((__availability__(android,strict,__what)))
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/fortify/stdio.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/fortify/stdio.h
index 42698dd..77bdbb4 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/fortify/stdio.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/fortify/stdio.h
@@ -40,6 +40,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE __printflike(3, 0)
 int vsnprintf(char* const __pass_object_size dest, size_t size, const char* format, va_list ap)
+        __diagnose_as_builtin(__builtin_vsnprintf, 1, 2, 3, 4)
         __overloadable {
     return __builtin___vsnprintf_chk(dest, size, 0, __bos(dest), format, ap);
 }
@@ -70,6 +71,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_VARIADIC __printflike(3, 4)
 int snprintf(char* const __pass_object_size dest, size_t size, const char* format, ...)
+        __diagnose_as_builtin(__builtin_snprintf, 1, 2, 3)
         __overloadable {
     va_list va;
     va_start(va, format);
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/fortify/string.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/fortify/string.h
index beb5ff5..08bce2d 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/fortify/string.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/fortify/string.h
@@ -44,13 +44,16 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 void* memcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+        __diagnose_as_builtin(__builtin_memcpy, 1, 2, 3)
         __overloadable {
     return __builtin___memcpy_chk(dst, src, copy_amount, __bos0(dst));
 }
 
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-void* memmove(void* const dst __pass_object_size0, const void* src, size_t len) __overloadable {
+void* memmove(void* const dst __pass_object_size0, const void* src, size_t len)
+        __diagnose_as_builtin(__builtin_memmove, 1, 2, 3)
+        __overloadable {
     return __builtin___memmove_chk(dst, src, len, __bos0(dst));
 }
 #endif
@@ -59,6 +62,7 @@
 #if __ANDROID_API__ >= 30
 __BIONIC_FORTIFY_INLINE
 void* mempcpy(void* const dst __pass_object_size0, const void* src, size_t copy_amount)
+        __diagnose_as_builtin(__builtin_mempcpy, 1, 2, 3)
         __overloadable
         __clang_error_if(__bos_unevaluated_lt(__bos0(dst), copy_amount),
                          "'mempcpy' called with size bigger than buffer") {
@@ -87,6 +91,7 @@
 
 __BIONIC_FORTIFY_INLINE
 char* strcpy(char* const dst __pass_object_size, const char* src)
+        __diagnose_as_builtin(__builtin_strcpy, 1, 2)
         __overloadable
         __clang_error_if(__bos_unevaluated_le(__bos(dst), __builtin_strlen(src)),
                          "'strcpy' called with string bigger than buffer") {
@@ -112,7 +117,9 @@
 #if __ANDROID_API__ >= 17 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
-char* strncat(char* const dst __pass_object_size, const char* src, size_t n) __overloadable {
+char* strncat(char* const dst __pass_object_size, const char* src, size_t n)
+       __diagnose_as_builtin(__builtin_strncat, 1, 2, 3)
+       __overloadable {
     return __builtin___strncat_chk(dst, src, n, __bos(dst));
 }
 #endif
@@ -120,6 +127,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 void* memset(void* const s __pass_object_size0, int c, size_t n) __overloadable
+        __diagnose_as_builtin(__builtin_memset, 1, 2, 3)
         /* If you're a user who wants this warning to go away: use `(&memset)(foo, bar, baz)`. */
         __clang_warning_if(c && !n, "'memset' will set 0 bytes; maybe the arguments got flipped?") {
 #if __ANDROID_API__ >= 17 && __BIONIC_FORTIFY_RUNTIME_CHECKS_ENABLED
@@ -157,6 +165,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 char* stpncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+        __diagnose_as_builtin(__builtin_stpncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
     size_t bos_src = __bos(src);
@@ -172,6 +181,7 @@
 /* No diag -- clang diagnoses misuses of this on its own.  */
 __BIONIC_FORTIFY_INLINE
 char* strncpy(char* const dst __pass_object_size, const char* const src __pass_object_size, size_t n)
+        __diagnose_as_builtin(__builtin_strncpy, 1, 2, 3)
         __overloadable {
     size_t bos_dst = __bos(dst);
     size_t bos_src = __bos(src);
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/glibc-syscalls.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/glibc-syscalls.h
index fbda7fe..c144919 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/glibc-syscalls.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/glibc-syscalls.h
@@ -303,6 +303,9 @@
 #if defined(__NR_futex_time64)
   #define SYS_futex_time64 __NR_futex_time64
 #endif
+#if defined(__NR_futex_waitv)
+  #define SYS_futex_waitv __NR_futex_waitv
+#endif
 #if defined(__NR_futimesat)
   #define SYS_futimesat __NR_futimesat
 #endif
@@ -507,6 +510,15 @@
 #if defined(__NR_kill)
   #define SYS_kill __NR_kill
 #endif
+#if defined(__NR_landlock_add_rule)
+  #define SYS_landlock_add_rule __NR_landlock_add_rule
+#endif
+#if defined(__NR_landlock_create_ruleset)
+  #define SYS_landlock_create_ruleset __NR_landlock_create_ruleset
+#endif
+#if defined(__NR_landlock_restrict_self)
+  #define SYS_landlock_restrict_self __NR_landlock_restrict_self
+#endif
 #if defined(__NR_lchown)
   #define SYS_lchown __NR_lchown
 #endif
@@ -567,6 +579,9 @@
 #if defined(__NR_memfd_create)
   #define SYS_memfd_create __NR_memfd_create
 #endif
+#if defined(__NR_memfd_secret)
+  #define SYS_memfd_secret __NR_memfd_secret
+#endif
 #if defined(__NR_migrate_pages)
   #define SYS_migrate_pages __NR_migrate_pages
 #endif
@@ -789,6 +804,9 @@
 #if defined(__NR_process_madvise)
   #define SYS_process_madvise __NR_process_madvise
 #endif
+#if defined(__NR_process_mrelease)
+  #define SYS_process_mrelease __NR_process_mrelease
+#endif
 #if defined(__NR_process_vm_readv)
   #define SYS_process_vm_readv __NR_process_vm_readv
 #endif
@@ -828,6 +846,9 @@
 #if defined(__NR_quotactl)
   #define SYS_quotactl __NR_quotactl
 #endif
+#if defined(__NR_quotactl_fd)
+  #define SYS_quotactl_fd __NR_quotactl_fd
+#endif
 #if defined(__NR_read)
   #define SYS_read __NR_read
 #endif
@@ -1002,6 +1023,9 @@
 #if defined(__NR_set_mempolicy)
   #define SYS_set_mempolicy __NR_set_mempolicy
 #endif
+#if defined(__NR_set_mempolicy_home_node)
+  #define SYS_set_mempolicy_home_node __NR_set_mempolicy_home_node
+#endif
 #if defined(__NR_set_robust_list)
   #define SYS_set_robust_list __NR_set_robust_list
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/signal_types.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/signal_types.h
index e1a155f..699e257 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/signal_types.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/bits/signal_types.h
@@ -61,7 +61,7 @@
 #if defined(__LP64__)
 typedef sigset_t sigset64_t;
 #else
-typedef struct { unsigned long __bits[_KERNEL__NSIG/LONG_BIT]; } sigset64_t;
+typedef struct { unsigned long __bits[_KERNEL__NSIG/(8*sizeof(long))]; } sigset64_t;
 #endif
 
 #if defined(__LP64__)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/execinfo.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/execinfo.h
new file mode 100644
index 0000000..347ae92
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/execinfo.h
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2021 The Android Open Source Project
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *  * Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *  * Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+#pragma once
+
+#include <sys/cdefs.h>
+
+/**
+ * @file execinfo.h
+ * @brief Functions to do in process backtracing.
+ */
+
+__BEGIN_DECLS
+
+/**
+ * [backtrace(3)](https://man7.org/linux/man-pages/man3/backtrace.3.html)
+ * Saves a backtrace for the current call in the array pointed to by buffer.
+ * "size" indicates the maximum number of void* pointers that can be set.
+ *
+ * Returns the number of addresses stored in "buffer", which is not greater
+ * than "size". If the return value is equal to "size" then the number of
+ * addresses may have been truncated.
+ *
+ * Available since API level 33.
+ */
+int backtrace(void** buffer, int size) __INTRODUCED_IN(33);
+
+/**
+ * [backtrace_symbols(3)](https://man7.org/linux/man-pages/man3/backtrace_symbols.3.html)
+ * Given an array of void* pointers, translate the addresses into an array
+ * of strings that represent the backtrace.
+ *
+ * Returns a pointer to allocated memory, on error NULL is returned. It is
+ * the responsibility of the caller to free the returned memory.
+ *
+ * Available since API level 33.
+ */
+char** backtrace_symbols(void* const* buffer, int size) __INTRODUCED_IN(33);
+
+/**
+ * [backtrace_symbols_fd(3)](https://man7.org/linux/man-pages/man3/backtrace_symbols_fd.3.html)
+ * Given an array of void* pointers, translate the addresses into an array
+ * of strings that represent the backtrace and write to the file represented
+ * by "fd". The file is written such that one line equals one void* address.
+ *
+ * Available since API level 33.
+ */
+void backtrace_symbols_fd(void* const* buffer, int size, int fd) __INTRODUCED_IN(33);
+
+__END_DECLS
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/malloc.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/malloc.h
index bae1f68..40786fa 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/malloc.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/malloc.h
@@ -97,30 +97,31 @@
  */
 size_t malloc_usable_size(const void* __ptr) __INTRODUCED_IN(17);
 
+#define __MALLINFO_BODY \
+  /** Total number of non-mmapped bytes currently allocated from OS. */ \
+  size_t arena; \
+  /** Number of free chunks. */ \
+  size_t ordblks; \
+  /** (Unused.) */ \
+  size_t smblks; \
+  /** (Unused.) */ \
+  size_t hblks; \
+  /** Total number of bytes in mmapped regions. */ \
+  size_t hblkhd; \
+  /** Maximum total allocated space; greater than total if trimming has occurred. */ \
+  size_t usmblks; \
+  /** (Unused.) */ \
+  size_t fsmblks; \
+  /** Total allocated space (normal or mmapped.) */ \
+  size_t uordblks; \
+  /** Total free space. */ \
+  size_t fordblks; \
+  /** Upper bound on number of bytes releasable by a trim operation. */ \
+  size_t keepcost;
+
 #ifndef STRUCT_MALLINFO_DECLARED
 #define STRUCT_MALLINFO_DECLARED 1
-struct mallinfo {
-  /** Total number of non-mmapped bytes currently allocated from OS. */
-  size_t arena;
-  /** Number of free chunks. */
-  size_t ordblks;
-  /** (Unused.) */
-  size_t smblks;
-  /** (Unused.) */
-  size_t hblks;
-  /** Total number of bytes in mmapped regions. */
-  size_t hblkhd;
-  /** Maximum total allocated space; greater than total if trimming has occurred. */
-  size_t usmblks;
-  /** (Unused.) */
-  size_t fsmblks;
-  /** Total allocated space (normal or mmapped.) */
-  size_t uordblks;
-  /** Total free space. */
-  size_t fordblks;
-  /** Upper bound on number of bytes releasable by a trim operation. */
-  size_t keepcost;
-};
+struct mallinfo { __MALLINFO_BODY };
 #endif
 
 /**
@@ -131,6 +132,18 @@
 struct mallinfo mallinfo(void);
 
 /**
+ * On Android the struct mallinfo and struct mallinfo2 are the same.
+ */
+struct mallinfo2 { __MALLINFO_BODY };
+
+/**
+ * [mallinfo2(3)](http://man7.org/linux/man-pages/man3/mallinfo2.3.html) returns
+ * information about the current state of the heap. Note that mallinfo2() is
+ * inherently unreliable and consider using malloc_info() instead.
+ */
+struct mallinfo2 mallinfo2(void) __RENAME(mallinfo);
+
+/**
  * [malloc_info(3)](http://man7.org/linux/man-pages/man3/malloc_info.3.html)
  * writes information about the current state of the heap to the given stream.
  *
@@ -170,7 +183,45 @@
  * Available since API level 28.
  */
 #define M_PURGE (-101)
-/*
+
+
+/**
+ * mallopt() option to tune the allocator's choice of memory tags to
+ * make it more likely that a certain class of memory errors will be
+ * detected. This is only relevant if MTE is enabled in this process
+ * and ignored otherwise. The value argument should be one of the
+ * M_MEMTAG_TUNING_* flags.
+ * NOTE: This is only available in scudo.
+ *
+ * Available since API level 31.
+ */
+#define M_MEMTAG_TUNING (-102)
+
+/**
+ * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables
+ * deterministic detection of linear buffer overflow and underflow
+ * bugs by assigning distinct tag values to adjacent allocations. This
+ * mode has a slightly reduced chance to detect use-after-free bugs
+ * because only half of the possible tag values are available for each
+ * memory location.
+ *
+ * Please keep in mind that MTE can not detect overflow within the
+ * same tag granule (16-byte aligned chunk), and can miss small
+ * overflows even in this mode. Such overflow can not be the cause of
+ * a memory corruption, because the memory within one granule is never
+ * used for multiple allocations.
+ */
+#define M_MEMTAG_TUNING_BUFFER_OVERFLOW 0
+
+/**
+ * When passed as a value of M_MEMTAG_TUNING mallopt() call, enables
+ * independently randomized tags for uniform ~93% probability of
+ * detecting both spatial (buffer overflow) and temporal (use after
+ * free) bugs.
+ */
+#define M_MEMTAG_TUNING_UAF 1
+
+/**
  * mallopt() option for per-thread memory initialization tuning.
  * The value argument should be one of:
  * 1: Disable automatic heap initialization and, where possible, memory tagging,
@@ -210,7 +261,7 @@
  * should not be zero-initialized, any other value indicates to initialize heap
  * memory to zero.
  *
- * Note that this memory mitigations is only implemented in scudo and therefore
+ * Note that this memory mitigation is only implemented in scudo and therefore
  * this will have no effect when using another allocator (such as jemalloc on
  * Android Go devices).
  *
@@ -222,6 +273,7 @@
  * mallopt() option to change the heap tagging state. May be called at any
  * time, including when multiple threads are running.
  * The value must be one of the M_HEAP_TAGGING_LEVEL_ constants.
+ * NOTE: This is only available in scudo.
  *
  * Available since API level 31.
  */
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/netinet/in.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/netinet/in.h
index 7f00a7a..46e3543 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/netinet/in.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/netinet/in.h
@@ -33,7 +33,18 @@
 #include <sys/cdefs.h>
 #include <sys/socket.h>
 
+// Include linux/socket.h first to trigger the header guard without
+// the__kernel_sockaddr_storage define, so its definition uses the
+// kernel name.
+#include <linux/socket.h>
+
+// Redefine __kernel_sockaddr_storage to sockaddr_storage so that
+// the structs defined in linux/in.h use the sockaddr_storage defined
+// in sys/sockets.h.
+#define __kernel_sockaddr_storage sockaddr_storage
 #include <linux/in.h>
+#undef __kernel_sockaddr_storage
+
 #include <linux/in6.h>
 #include <linux/ipv6.h>
 
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sched.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sched.h
index 3260231..364ca10 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sched.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sched.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SCHED_H_
-#define _SCHED_H_
+#pragma once
+
+/**
+ * @file sched.h
+ * @brief Thread execution scheduling.
+ */
 
 #include <bits/timespec.h>
 #include <linux/sched.h>
@@ -35,29 +39,170 @@
 
 __BEGIN_DECLS
 
-/* This name is used by glibc, but not by the kernel. */
+/*
+ * @def SCHED_NORMAL
+ * The standard (as opposed to real-time) round-robin scheduling policy.
+ *
+ * (Linux's name for POSIX's SCHED_OTHER.)
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_FIFO
+ * The real-time first-in/first-out scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_RR
+ * The real-time round-robin policy. (See also SCHED_NORMAL/SCHED_OTHER.)
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_BATCH
+ * The batch scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_IDLE
+ * The low priority "only when otherwise idle" scheduling priority.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * @def SCHED_DEADLINE
+ * The deadline scheduling policy.
+ *
+ * See [sched(7)](http://man7.org/linux/man-pages/man7/sched.7.html)
+ */
+
+/*
+ * The standard (as opposed to real-time) round-robin scheduling policy.
+ *
+ * (POSIX's name for Linux's SCHED_NORMAL.)
+ */
 #define SCHED_OTHER SCHED_NORMAL
 
+/**
+ * See sched_getparam()/sched_setparam() and
+ * sched_getscheduler()/sched_setscheduler().
+ */
 struct sched_param {
   int sched_priority;
 };
 
+/**
+ * [sched_setscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * sets the scheduling policy and associated parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setscheduler(pid_t __pid, int __policy, const struct sched_param* __param);
+
+/**
+ * [sched_getscheduler(2)](http://man7.org/linux/man-pages/man2/sched_getcpu.2.html)
+ * gets the scheduling policy for the given thread.
+ *
+ * Returns a non-negative thread policy on success and returns -1 and sets
+ * `errno` on failure.
+ */
 int sched_getscheduler(pid_t __pid);
+
+/**
+ * [sched_yield(2)](http://man7.org/linux/man-pages/man2/sched_yield.2.html)
+ * voluntarily gives up using the CPU so that another thread can run.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_yield(void);
+
+/**
+ * [sched_get_priority_max(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_max.2.html)
+ * gets the maximum priority value allowed for the given scheduling policy.
+ *
+ * Returns a priority on success and returns -1 and sets `errno` on failure.
+ */
 int sched_get_priority_max(int __policy);
+
+/**
+ * [sched_get_priority_min(2)](http://man7.org/linux/man-pages/man2/sched_get_priority_min.2.html)
+ * gets the minimum priority value allowed for the given scheduling policy.
+ *
+ * Returns a priority on success and returns -1 and sets `errno` on failure.
+ */
 int sched_get_priority_min(int __policy);
+
+/**
+ * [sched_setparam(2)](http://man7.org/linux/man-pages/man2/sched_setparam.2.html)
+ * sets the scheduling parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setparam(pid_t __pid, const struct sched_param* __param);
+
+/**
+ * [sched_getparam(2)](http://man7.org/linux/man-pages/man2/sched_getparam.2.html)
+ * gets the scheduling parameters for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_getparam(pid_t __pid, struct sched_param* __param);
+
+/**
+ * [sched_rr_get_interval(2)](http://man7.org/linux/man-pages/man2/sched_rr_get_interval.2.html)
+ * queries the round-robin time quantum for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_rr_get_interval(pid_t __pid, struct timespec* __quantum);
 
 #if defined(__USE_GNU)
 
+/**
+ * [clone(2)](http://man7.org/linux/man-pages/man2/clone.2.html)
+ * creates a new child process.
+ *
+ * Returns the pid of the child to the caller on success and
+ * returns -1 and sets `errno` on failure.
+ */
 int clone(int (*__fn)(void*), void* __child_stack, int __flags, void* __arg, ...) __INTRODUCED_IN_ARM(9) __INTRODUCED_IN_X86(17);
+
+/**
+ * [unshare(2)](http://man7.org/linux/man-pages/man2/unshare.2.html)
+ * disassociates part of the caller's execution context.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 17.
+ */
 int unshare(int __flags) __INTRODUCED_IN(17);
-int sched_getcpu(void);
+
+/**
+ * [setns(2)](http://man7.org/linux/man-pages/man2/setns.2.html)
+ * reassociates a thread with a different namespace.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 21.
+ */
 int setns(int __fd, int __ns_type) __INTRODUCED_IN(21);
 
+/**
+ * [sched_getcpu(3)](http://man7.org/linux/man-pages/man3/sched_getcpu.3.html)
+ * reports which CPU the caller is running on.
+ *
+ * Returns a non-negative CPU number on success and returns -1 and sets
+ * `errno` on failure.
+ */
+int sched_getcpu(void);
+
 #ifdef __LP64__
 #define CPU_SETSIZE 1024
 #else
@@ -69,39 +214,50 @@
 #define __CPU_ELT(x)   ((x) / __CPU_BITS)
 #define __CPU_MASK(x)  ((__CPU_BITTYPE)1 << ((x) & (__CPU_BITS - 1)))
 
+/**
+ * [cpu_set_t](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) is a
+ * statically-sized CPU set. See `CPU_ALLOC` for dynamically-sized CPU sets.
+ */
 typedef struct {
   __CPU_BITTYPE  __bits[ CPU_SETSIZE / __CPU_BITS ];
 } cpu_set_t;
 
+/**
+ * [sched_setaffinity(2)](http://man7.org/linux/man-pages/man2/sched_setaffinity.2.html)
+ * sets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_setaffinity(pid_t __pid, size_t __set_size, const cpu_set_t* __set);
+
+/**
+ * [sched_getaffinity(2)](http://man7.org/linux/man-pages/man2/sched_getaffinity.2.html)
+ * gets the CPU affinity mask for the given thread.
+ *
+ * Returns 0 on success and returns -1 and sets `errno` on failure.
+ */
 int sched_getaffinity(pid_t __pid, size_t __set_size, cpu_set_t* __set);
 
+/**
+ * [CPU_ZERO](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all
+ * bits in a static CPU set.
+ */
 #define CPU_ZERO(set)          CPU_ZERO_S(sizeof(cpu_set_t), set)
-#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
-#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
-#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
-
-#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
-#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
-#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
-
-#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
-
-/* Support for dynamically-allocated cpu_set_t */
-
-#define CPU_ALLOC_SIZE(count) \
-  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
-
-#define CPU_ALLOC(count)  __sched_cpualloc((count))
-#define CPU_FREE(set)     __sched_cpufree((set))
-
-cpu_set_t* __sched_cpualloc(size_t __count);
-void __sched_cpufree(cpu_set_t* __set);
-
+/**
+ * [CPU_ZERO_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears all
+ * bits in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_ZERO_S(setsize, set)  __builtin_memset(set, 0, setsize)
 
+/**
+ * [CPU_SET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one
+ * bit in a static CPU set.
+ */
+#define CPU_SET(cpu, set)      CPU_SET_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_SET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) sets one
+ * bit in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_SET_S(cpu, setsize, set) \
   do { \
     size_t __cpu = (cpu); \
@@ -109,6 +265,15 @@
       (set)->__bits[__CPU_ELT(__cpu)] |= __CPU_MASK(__cpu); \
   } while (0)
 
+/**
+ * [CPU_CLR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one
+ * bit in a static CPU set.
+ */
+#define CPU_CLR(cpu, set)      CPU_CLR_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_CLR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) clears one
+ * bit in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_CLR_S(cpu, setsize, set) \
   do { \
     size_t __cpu = (cpu); \
@@ -116,6 +281,15 @@
       (set)->__bits[__CPU_ELT(__cpu)] &= ~__CPU_MASK(__cpu); \
   } while (0)
 
+/**
+ * [CPU_ISSET](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether the given bit is set in a static CPU set.
+ */
+#define CPU_ISSET(cpu, set)    CPU_ISSET_S(cpu, sizeof(cpu_set_t), set)
+/**
+ * [CPU_ISSET_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether the given bit is set in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
 #define CPU_ISSET_S(cpu, setsize, set) \
   (__extension__ ({ \
     size_t __cpu = (cpu); \
@@ -124,12 +298,65 @@
       : 0; \
   }))
 
+/**
+ * [CPU_COUNT](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts
+ * how many bits are set in a static CPU set.
+ */
+#define CPU_COUNT(set)         CPU_COUNT_S(sizeof(cpu_set_t), set)
+/**
+ * [CPU_COUNT_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) counts
+ * how many bits are set in a dynamic CPU set allocated by `CPU_ALLOC`.
+ */
+#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
+int __sched_cpucount(size_t __set_size, const cpu_set_t* __set);
+
+/**
+ * [CPU_EQUAL](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether two static CPU sets have the same bits set and cleared as each other.
+ */
+#define CPU_EQUAL(set1, set2)  CPU_EQUAL_S(sizeof(cpu_set_t), set1, set2)
+/**
+ * [CPU_EQUAL_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) tests
+ * whether two dynamic CPU sets allocated by `CPU_ALLOC` have the same bits
+ * set and cleared as each other.
+ */
 #define CPU_EQUAL_S(setsize, set1, set2)  (__builtin_memcmp(set1, set2, setsize) == 0)
 
+/**
+ * [CPU_AND](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two
+ * static CPU sets.
+ */
+#define CPU_AND(dst, set1, set2)  __CPU_OP(dst, set1, set2, &)
+/**
+ * [CPU_AND_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ands two
+ * dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_AND_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, &)
+
+/**
+ * [CPU_OR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two
+ * static CPU sets.
+ */
+#define CPU_OR(dst, set1, set2)   __CPU_OP(dst, set1, set2, |)
+/**
+ * [CPU_OR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html) ors two
+ * dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_OR_S(setsize, dst, set1, set2)   __CPU_OP_S(setsize, dst, set1, set2, |)
+
+/**
+ * [CPU_XOR](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * exclusive-ors two static CPU sets.
+ */
+#define CPU_XOR(dst, set1, set2)  __CPU_OP(dst, set1, set2, ^)
+/**
+ * [CPU_XOR_S](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * exclusive-ors two dynamic CPU sets allocated by `CPU_ALLOC`.
+ */
 #define CPU_XOR_S(setsize, dst, set1, set2)  __CPU_OP_S(setsize, dst, set1, set2, ^)
 
+#define __CPU_OP(dst, set1, set2, op)  __CPU_OP_S(sizeof(cpu_set_t), dst, set1, set2, op)
+
 #define __CPU_OP_S(setsize, dstset, srcset1, srcset2, op) \
   do { \
     cpu_set_t* __dst = (dstset); \
@@ -140,12 +367,27 @@
       (__dst)->__bits[__nn] = __src1[__nn] op __src2[__nn]; \
   } while (0)
 
-#define CPU_COUNT_S(setsize, set)  __sched_cpucount((setsize), (set))
+/**
+ * [CPU_ALLOC_SIZE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * returns the size of a CPU set large enough for CPUs in the range 0..count-1.
+ */
+#define CPU_ALLOC_SIZE(count) \
+  __CPU_ELT((count) + (__CPU_BITS - 1)) * sizeof(__CPU_BITTYPE)
 
-int __sched_cpucount(size_t __set_size, const cpu_set_t* __set);
+/**
+ * [CPU_ALLOC](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * allocates a CPU set large enough for CPUs in the range 0..count-1.
+ */
+#define CPU_ALLOC(count)  __sched_cpualloc((count))
+cpu_set_t* __sched_cpualloc(size_t __count);
+
+/**
+ * [CPU_FREE](https://man7.org/linux/man-pages/man3/CPU_SET.3.html)
+ * deallocates a CPU set allocated by `CPU_ALLOC`.
+ */
+#define CPU_FREE(set)     __sched_cpufree((set))
+void __sched_cpufree(cpu_set_t* __set);
 
 #endif /* __USE_GNU */
 
 __END_DECLS
-
-#endif /* _SCHED_H_ */
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/stdlib.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/stdlib.h
index 583287f..4aa27f9 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/stdlib.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/stdlib.h
@@ -161,11 +161,11 @@
 void setprogname(const char* __name) __INTRODUCED_IN(21);
 
 int mblen(const char* __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(26);
-size_t mbstowcs(wchar_t* __dst, const char* __src, size_t __n);
+size_t mbstowcs(wchar_t* __dst, const char* __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 int mbtowc(wchar_t* __wc_ptr, const char* __s, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 int wctomb(char* __dst, wchar_t __wc) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
-size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n);
+size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n) __INTRODUCED_IN_NO_GUARD_FOR_NDK(21);
 
 #if __ANDROID_API__ >= 21
 size_t __ctype_get_mb_cur_max(void) __INTRODUCED_IN(21);
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/cdefs.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/cdefs.h
index 2556d11..5b9d99b 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/cdefs.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/cdefs.h
@@ -327,6 +327,8 @@
 
 #define __overloadable __attribute__((overloadable))
 
+#define __diagnose_as_builtin(...) __attribute__((diagnose_as_builtin(__VA_ARGS__)))
+
 /* Used to tag non-static symbols that are private and never exposed by the shared library. */
 #define __LIBC_HIDDEN__ __attribute__((visibility("hidden")))
 
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/select.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/select.h
index 79fc28d..65571eb 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/select.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/select.h
@@ -101,31 +101,37 @@
 
 /**
  * [select(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use poll() instead.
+ * set of file descriptors.
+ *
+ * Use poll() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  */
-int select(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, struct timeval* __timeout);
+int select(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, struct timeval* __timeout);
 
 /**
  * [pselect(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use ppoll() instead.
+ * set of file descriptors.
+ *
+ * Use ppoll() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  */
-int pselect(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset_t* __mask);
+int pselect(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset_t* __mask);
 
 /**
  * [pselect64(2)](http://man7.org/linux/man-pages/man2/select.2.html) waits on a
- * set of file descriptors. Use ppoll64() instead.
+ * set of file descriptors.
+ *
+ * Use ppoll64() instead.
  *
  * Returns the number of ready file descriptors on success, 0 for timeout,
  * and returns -1 and sets `errno` on failure.
  *
  * Available since API level 28.
  */
-int pselect64(int __fd_count, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset64_t* __mask) __INTRODUCED_IN(28);
+int pselect64(int __max_fd_plus_one, fd_set* __read_fds, fd_set* __write_fds, fd_set* __exception_fds, const struct timespec* __timeout, const sigset64_t* __mask) __INTRODUCED_IN(28);
 
 __END_DECLS
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/socket.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/socket.h
index 3ecbcce..f33f112 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/socket.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/socket.h
@@ -31,7 +31,6 @@
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
-#include <linux/socket.h>
 
 #include <asm/fcntl.h>
 #include <asm/socket.h>
@@ -71,6 +70,16 @@
   char sa_data[14];
 };
 
+struct sockaddr_storage {
+  union {
+    struct {
+      sa_family_t ss_family;
+      char __data[128 - sizeof(sa_family_t)];
+    };
+    void* __align;
+  };
+};
+
 struct linger {
   int l_onoff;
   int l_linger;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/uio.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/uio.h
index 37961e3..583cfc6 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/uio.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/include/sys/uio.h
@@ -26,8 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#ifndef _SYS_UIO_H_
-#define _SYS_UIO_H_
+#pragma once
+
+/**
+ * @file sys/uio.h
+ * @brief Multi-buffer ("vector") I/O operations using `struct iovec`.
+ */
 
 #include <sys/cdefs.h>
 #include <sys/types.h>
@@ -35,21 +39,124 @@
 
 __BEGIN_DECLS
 
+/**
+ * [readv(2)](http://man7.org/linux/man-pages/man2/readv.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ */
 ssize_t readv(int __fd, const struct iovec* __iov, int __count);
+
+/**
+ * [writev(2)](http://man7.org/linux/man-pages/man2/writev.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ */
 ssize_t writev(int __fd, const struct iovec* __iov, int __count);
 
 #if defined(__USE_GNU)
-ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
-ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
-ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
-ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
-#endif
 
-#if defined(__USE_GNU)
+/**
+ * [preadv(2)](http://man7.org/linux/man-pages/man2/preadv.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`, starting at
+ * offset `__offset` into the file.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 24.
+ */
+ssize_t preadv(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(preadv64) __INTRODUCED_IN(24);
+
+/**
+ * [pwritev(2)](http://man7.org/linux/man-pages/man2/pwritev.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`, starting at offset
+ * `__offset` into the file.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 24.
+ */
+ssize_t pwritev(int __fd, const struct iovec* __iov, int __count, off_t __offset) __RENAME_IF_FILE_OFFSET64(pwritev64) __INTRODUCED_IN(24);
+
+/**
+ * Like preadv() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 24.
+ */
+ssize_t preadv64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+
+/**
+ * Like pwritev() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 24.
+ */
+ssize_t pwritev64(int __fd, const struct iovec* __iov, int __count, off64_t __offset) __INTRODUCED_IN(24);
+
+/**
+ * [preadv2(2)](http://man7.org/linux/man-pages/man2/preadv2.2.html) reads
+ * from an fd into the `__count` buffers described by `__iov`, starting at
+ * offset `__offset` into the file, with the given flags.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 33.
+ */
+ssize_t preadv2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(preadv64v2) __INTRODUCED_IN(33);
+
+/**
+ * [pwritev2(2)](http://man7.org/linux/man-pages/man2/pwritev2.2.html) writes
+ * to an fd from the `__count` buffers described by `__iov`, starting at offset
+ * `__offset` into the file, with the given flags.
+ *
+ * Returns the number of bytes written on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 33.
+ */
+ssize_t pwritev2(int __fd, const struct iovec* __iov, int __count, off_t __offset, int __flags) __RENAME_IF_FILE_OFFSET64(pwritev64v2) __INTRODUCED_IN(33);
+
+/**
+ * Like preadv2() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 33.
+ */
+ssize_t preadv64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+
+/**
+ * Like pwritev2() but with a 64-bit offset even in a 32-bit process.
+ *
+ * Available since API level 33.
+ */
+ssize_t pwritev64v2(int __fd, const struct iovec* __iov, int __count, off64_t __offset, int __flags) __INTRODUCED_IN(33);
+
+/**
+ * [process_vm_readv(2)](http://man7.org/linux/man-pages/man2/process_vm_readv.2.html)
+ * reads from the address space of another process.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 23.
+ */
 ssize_t process_vm_readv(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
+/**
+ * [process_vm_writev(2)](http://man7.org/linux/man-pages/man2/process_vm_writev.2.html)
+ * writes to the address space of another process.
+ *
+ * Returns the number of bytes read on success,
+ * and returns -1 and sets `errno` on failure.
+ *
+ * Available since API level 23.
+ */
 ssize_t process_vm_writev(pid_t __pid, const struct iovec* __local_iov, unsigned long __local_iov_count, const struct iovec* __remote_iov, unsigned long __remote_iov_count, unsigned long __flags) __INTRODUCED_IN(23);
+
 #endif
 
 __END_DECLS
-
-#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
index 2ea16a3..6d89fa9 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi.h
@@ -20,6 +20,7 @@
 #define _SCSI_SCSI_H
 #include <linux/types.h>
 #include <scsi/scsi_proto.h>
+#include <scsi/scsi_status.h>
 struct ccs_modesel_head {
   __u8 _r1;
   __u8 medium;
@@ -34,40 +35,12 @@
   __u8 block_length_med;
   __u8 block_length_lo;
 };
-#define COMMAND_COMPLETE 0x00
-#define EXTENDED_MESSAGE 0x01
 #define EXTENDED_MODIFY_DATA_POINTER 0x00
 #define EXTENDED_SDTR 0x01
 #define EXTENDED_EXTENDED_IDENTIFY 0x02
 #define EXTENDED_WDTR 0x03
 #define EXTENDED_PPR 0x04
 #define EXTENDED_MODIFY_BIDI_DATA_PTR 0x05
-#define SAVE_POINTERS 0x02
-#define RESTORE_POINTERS 0x03
-#define DISCONNECT 0x04
-#define INITIATOR_ERROR 0x05
-#define ABORT_TASK_SET 0x06
-#define MESSAGE_REJECT 0x07
-#define NOP 0x08
-#define MSG_PARITY_ERROR 0x09
-#define LINKED_CMD_COMPLETE 0x0a
-#define LINKED_FLG_CMD_COMPLETE 0x0b
-#define TARGET_RESET 0x0c
-#define ABORT_TASK 0x0d
-#define CLEAR_TASK_SET 0x0e
-#define INITIATE_RECOVERY 0x0f
-#define RELEASE_RECOVERY 0x10
-#define TERMINATE_IO_PROC 0x11
-#define CLEAR_ACA 0x16
-#define LOGICAL_UNIT_RESET 0x17
-#define SIMPLE_QUEUE_TAG 0x20
-#define HEAD_OF_QUEUE_TAG 0x21
-#define ORDERED_QUEUE_TAG 0x22
-#define IGNORE_WIDE_RESIDUE 0x23
-#define ACA 0x24
-#define QAS_REQUEST 0x55
-#define BUS_DEVICE_RESET TARGET_RESET
-#define ABORT ABORT_TASK_SET
 #define SCSI_IOCTL_GET_IDLUN 0x5382
 #define SCSI_IOCTL_PROBE_HOST 0x5385
 #define SCSI_IOCTL_GET_BUS_NUMBER 0x5386
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
index a77eded..eea87a0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi_proto.h
@@ -124,17 +124,6 @@
 #define SERVICE_ACTION_BIDIRECTIONAL 0x9d
 #define SERVICE_ACTION_IN_16 0x9e
 #define SERVICE_ACTION_OUT_16 0x9f
-#define GOOD 0x00
-#define CHECK_CONDITION 0x01
-#define CONDITION_GOOD 0x02
-#define BUSY 0x04
-#define INTERMEDIATE_GOOD 0x08
-#define INTERMEDIATE_C_GOOD 0x0a
-#define RESERVATION_CONFLICT 0x0c
-#define COMMAND_TERMINATED 0x11
-#define QUEUE_FULL 0x14
-#define ACA_ACTIVE 0x18
-#define TASK_ABORTED 0x20
 #define STATUS_MASK 0xfe
 #define NO_SENSE 0x00
 #define RECOVERED_ERROR 0x01
@@ -205,4 +194,14 @@
   ZBC_ZONE_COND_FULL = 0xe,
   ZBC_ZONE_COND_OFFLINE = 0xf,
 };
+enum scsi_version_descriptor {
+  SCSI_VERSION_DESCRIPTOR_FCP4 = 0x0a40,
+  SCSI_VERSION_DESCRIPTOR_ISCSI = 0x0960,
+  SCSI_VERSION_DESCRIPTOR_SAM5 = 0x00a0,
+  SCSI_VERSION_DESCRIPTOR_SAS3 = 0x0c60,
+  SCSI_VERSION_DESCRIPTOR_SBC3 = 0x04c0,
+  SCSI_VERSION_DESCRIPTOR_SBP3 = 0x0980,
+  SCSI_VERSION_DESCRIPTOR_SPC4 = 0x0460,
+  SCSI_VERSION_DESCRIPTOR_SRP = 0x0940
+};
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
similarity index 82%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
index bb45c3d..6a7fc10 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/scsi_status.h
@@ -16,14 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _SCSI_SCSI_STATUS_H
+#define _SCSI_SCSI_STATUS_H
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#include <scsi/scsi_proto.h>
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/sg.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/sg.h
index 828b2c6..a7a1944 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/sg.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/android/scsi/scsi/sg.h
@@ -66,6 +66,20 @@
 #define SG_INFO_INDIRECT_IO 0x0
 #define SG_INFO_DIRECT_IO 0x2
 #define SG_INFO_MIXED_IO 0x4
+#define DRIVER_SENSE 0x08
+#define driver_byte(result) (((result) >> 24) & 0xff)
+#define GOOD 0x00
+#define CHECK_CONDITION 0x01
+#define CONDITION_GOOD 0x02
+#define BUSY 0x04
+#define INTERMEDIATE_GOOD 0x08
+#define INTERMEDIATE_C_GOOD 0x0a
+#define RESERVATION_CONFLICT 0x0c
+#define COMMAND_TERMINATED 0x11
+#define QUEUE_FULL 0x14
+#define ACA_ACTIVE 0x18
+#define TASK_ABORTED 0x20
+#define status_byte(result) (((result) >> 1) & 0x7f)
 typedef struct sg_scsi_id {
   int host_no;
   int channel;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
index b4da2d1..672a72a 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/setup.h
@@ -19,7 +19,7 @@
 #ifndef _UAPI__ASMARM_SETUP_H
 #define _UAPI__ASMARM_SETUP_H
 #include <linux/types.h>
-#define COMMAND_LINE_SIZE 2048
+#define COMMAND_LINE_SIZE 1024
 #define ATAG_NONE 0x00000000
 struct tag_header {
   __u32 size;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h
deleted file mode 100644
index 070c77b..0000000
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-common.h
+++ /dev/null
@@ -1,417 +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_ASM_ARM_UNISTD_COMMON_H
-#define _UAPI_ASM_ARM_UNISTD_COMMON_H 1
-#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
-#define __NR_exit (__NR_SYSCALL_BASE + 1)
-#define __NR_fork (__NR_SYSCALL_BASE + 2)
-#define __NR_read (__NR_SYSCALL_BASE + 3)
-#define __NR_write (__NR_SYSCALL_BASE + 4)
-#define __NR_open (__NR_SYSCALL_BASE + 5)
-#define __NR_close (__NR_SYSCALL_BASE + 6)
-#define __NR_creat (__NR_SYSCALL_BASE + 8)
-#define __NR_link (__NR_SYSCALL_BASE + 9)
-#define __NR_unlink (__NR_SYSCALL_BASE + 10)
-#define __NR_execve (__NR_SYSCALL_BASE + 11)
-#define __NR_chdir (__NR_SYSCALL_BASE + 12)
-#define __NR_mknod (__NR_SYSCALL_BASE + 14)
-#define __NR_chmod (__NR_SYSCALL_BASE + 15)
-#define __NR_lchown (__NR_SYSCALL_BASE + 16)
-#define __NR_lseek (__NR_SYSCALL_BASE + 19)
-#define __NR_getpid (__NR_SYSCALL_BASE + 20)
-#define __NR_mount (__NR_SYSCALL_BASE + 21)
-#define __NR_setuid (__NR_SYSCALL_BASE + 23)
-#define __NR_getuid (__NR_SYSCALL_BASE + 24)
-#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
-#define __NR_pause (__NR_SYSCALL_BASE + 29)
-#define __NR_access (__NR_SYSCALL_BASE + 33)
-#define __NR_nice (__NR_SYSCALL_BASE + 34)
-#define __NR_sync (__NR_SYSCALL_BASE + 36)
-#define __NR_kill (__NR_SYSCALL_BASE + 37)
-#define __NR_rename (__NR_SYSCALL_BASE + 38)
-#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
-#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
-#define __NR_dup (__NR_SYSCALL_BASE + 41)
-#define __NR_pipe (__NR_SYSCALL_BASE + 42)
-#define __NR_times (__NR_SYSCALL_BASE + 43)
-#define __NR_brk (__NR_SYSCALL_BASE + 45)
-#define __NR_setgid (__NR_SYSCALL_BASE + 46)
-#define __NR_getgid (__NR_SYSCALL_BASE + 47)
-#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
-#define __NR_getegid (__NR_SYSCALL_BASE + 50)
-#define __NR_acct (__NR_SYSCALL_BASE + 51)
-#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
-#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
-#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
-#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
-#define __NR_umask (__NR_SYSCALL_BASE + 60)
-#define __NR_chroot (__NR_SYSCALL_BASE + 61)
-#define __NR_ustat (__NR_SYSCALL_BASE + 62)
-#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
-#define __NR_getppid (__NR_SYSCALL_BASE + 64)
-#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
-#define __NR_setsid (__NR_SYSCALL_BASE + 66)
-#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
-#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
-#define __NR_setregid (__NR_SYSCALL_BASE + 71)
-#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
-#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
-#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
-#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
-#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
-#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
-#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
-#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
-#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
-#define __NR_symlink (__NR_SYSCALL_BASE + 83)
-#define __NR_readlink (__NR_SYSCALL_BASE + 85)
-#define __NR_uselib (__NR_SYSCALL_BASE + 86)
-#define __NR_swapon (__NR_SYSCALL_BASE + 87)
-#define __NR_reboot (__NR_SYSCALL_BASE + 88)
-#define __NR_munmap (__NR_SYSCALL_BASE + 91)
-#define __NR_truncate (__NR_SYSCALL_BASE + 92)
-#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
-#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
-#define __NR_fchown (__NR_SYSCALL_BASE + 95)
-#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
-#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
-#define __NR_statfs (__NR_SYSCALL_BASE + 99)
-#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
-#define __NR_syslog (__NR_SYSCALL_BASE + 103)
-#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
-#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
-#define __NR_stat (__NR_SYSCALL_BASE + 106)
-#define __NR_lstat (__NR_SYSCALL_BASE + 107)
-#define __NR_fstat (__NR_SYSCALL_BASE + 108)
-#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
-#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
-#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
-#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
-#define __NR_fsync (__NR_SYSCALL_BASE + 118)
-#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
-#define __NR_clone (__NR_SYSCALL_BASE + 120)
-#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
-#define __NR_uname (__NR_SYSCALL_BASE + 122)
-#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
-#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
-#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
-#define __NR_init_module (__NR_SYSCALL_BASE + 128)
-#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
-#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
-#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
-#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
-#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
-#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
-#define __NR_personality (__NR_SYSCALL_BASE + 136)
-#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
-#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
-#define __NR__llseek (__NR_SYSCALL_BASE + 140)
-#define __NR_getdents (__NR_SYSCALL_BASE + 141)
-#define __NR__newselect (__NR_SYSCALL_BASE + 142)
-#define __NR_flock (__NR_SYSCALL_BASE + 143)
-#define __NR_msync (__NR_SYSCALL_BASE + 144)
-#define __NR_readv (__NR_SYSCALL_BASE + 145)
-#define __NR_writev (__NR_SYSCALL_BASE + 146)
-#define __NR_getsid (__NR_SYSCALL_BASE + 147)
-#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
-#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
-#define __NR_mlock (__NR_SYSCALL_BASE + 150)
-#define __NR_munlock (__NR_SYSCALL_BASE + 151)
-#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
-#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
-#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
-#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
-#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
-#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
-#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
-#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
-#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
-#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
-#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
-#define __NR_mremap (__NR_SYSCALL_BASE + 163)
-#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
-#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
-#define __NR_poll (__NR_SYSCALL_BASE + 168)
-#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
-#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
-#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
-#define __NR_prctl (__NR_SYSCALL_BASE + 172)
-#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
-#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
-#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
-#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
-#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
-#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
-#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
-#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
-#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
-#define __NR_chown (__NR_SYSCALL_BASE + 182)
-#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
-#define __NR_capget (__NR_SYSCALL_BASE + 184)
-#define __NR_capset (__NR_SYSCALL_BASE + 185)
-#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
-#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
-#define __NR_vfork (__NR_SYSCALL_BASE + 190)
-#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
-#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
-#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
-#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
-#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
-#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
-#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
-#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
-#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
-#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
-#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
-#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
-#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
-#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
-#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
-#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
-#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
-#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
-#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
-#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
-#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
-#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
-#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
-#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
-#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
-#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
-#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
-#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
-#define __NR_mincore (__NR_SYSCALL_BASE + 219)
-#define __NR_madvise (__NR_SYSCALL_BASE + 220)
-#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
-#define __NR_gettid (__NR_SYSCALL_BASE + 224)
-#define __NR_readahead (__NR_SYSCALL_BASE + 225)
-#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
-#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
-#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
-#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
-#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
-#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
-#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
-#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
-#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
-#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
-#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
-#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
-#define __NR_tkill (__NR_SYSCALL_BASE + 238)
-#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
-#define __NR_futex (__NR_SYSCALL_BASE + 240)
-#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
-#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
-#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
-#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
-#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
-#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
-#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
-#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
-#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
-#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
-#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
-#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
-#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
-#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
-#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
-#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
-#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
-#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
-#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
-#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
-#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
-#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
-#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
-#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
-#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
-#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
-#define __NR_utimes (__NR_SYSCALL_BASE + 269)
-#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
-#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
-#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
-#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
-#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
-#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
-#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
-#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
-#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
-#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
-#define __NR_waitid (__NR_SYSCALL_BASE + 280)
-#define __NR_socket (__NR_SYSCALL_BASE + 281)
-#define __NR_bind (__NR_SYSCALL_BASE + 282)
-#define __NR_connect (__NR_SYSCALL_BASE + 283)
-#define __NR_listen (__NR_SYSCALL_BASE + 284)
-#define __NR_accept (__NR_SYSCALL_BASE + 285)
-#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
-#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
-#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
-#define __NR_send (__NR_SYSCALL_BASE + 289)
-#define __NR_sendto (__NR_SYSCALL_BASE + 290)
-#define __NR_recv (__NR_SYSCALL_BASE + 291)
-#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
-#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
-#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
-#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
-#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
-#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
-#define __NR_semop (__NR_SYSCALL_BASE + 298)
-#define __NR_semget (__NR_SYSCALL_BASE + 299)
-#define __NR_semctl (__NR_SYSCALL_BASE + 300)
-#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
-#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
-#define __NR_msgget (__NR_SYSCALL_BASE + 303)
-#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
-#define __NR_shmat (__NR_SYSCALL_BASE + 305)
-#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
-#define __NR_shmget (__NR_SYSCALL_BASE + 307)
-#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
-#define __NR_add_key (__NR_SYSCALL_BASE + 309)
-#define __NR_request_key (__NR_SYSCALL_BASE + 310)
-#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
-#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
-#define __NR_vserver (__NR_SYSCALL_BASE + 313)
-#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
-#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
-#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
-#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
-#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
-#define __NR_mbind (__NR_SYSCALL_BASE + 319)
-#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
-#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
-#define __NR_openat (__NR_SYSCALL_BASE + 322)
-#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
-#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
-#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
-#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
-#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
-#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
-#define __NR_renameat (__NR_SYSCALL_BASE + 329)
-#define __NR_linkat (__NR_SYSCALL_BASE + 330)
-#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
-#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
-#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
-#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
-#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
-#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
-#define __NR_unshare (__NR_SYSCALL_BASE + 337)
-#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
-#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
-#define __NR_splice (__NR_SYSCALL_BASE + 340)
-#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
-#define __NR_tee (__NR_SYSCALL_BASE + 342)
-#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
-#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
-#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
-#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
-#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
-#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
-#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
-#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
-#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
-#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
-#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
-#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
-#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
-#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
-#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
-#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
-#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
-#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
-#define __NR_preadv (__NR_SYSCALL_BASE + 361)
-#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
-#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
-#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
-#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
-#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
-#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
-#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
-#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
-#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
-#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
-#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
-#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
-#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
-#define __NR_setns (__NR_SYSCALL_BASE + 375)
-#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
-#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
-#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
-#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
-#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
-#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
-#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
-#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
-#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
-#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
-#define __NR_bpf (__NR_SYSCALL_BASE + 386)
-#define __NR_execveat (__NR_SYSCALL_BASE + 387)
-#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
-#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
-#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
-#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
-#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
-#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
-#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
-#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
-#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
-#define __NR_statx (__NR_SYSCALL_BASE + 397)
-#define __NR_rseq (__NR_SYSCALL_BASE + 398)
-#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
-#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
-#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
-#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
-#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
-#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
-#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
-#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
-#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
-#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
-#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
-#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
-#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
-#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
-#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
-#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
-#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
-#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
-#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
-#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
-#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
-#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
-#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
-#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
-#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
-#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
-#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
-#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
-#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
-#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
-#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
-#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
-#define __NR_fspick (__NR_SYSCALL_BASE + 433)
-#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
-#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
-#define __NR_close_range (__NR_SYSCALL_BASE + 436)
-#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
-#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
-#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
-#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
-#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
-#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
-#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
index 54e1867..71b25e7 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-eabi.h
@@ -16,6 +16,409 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _UAPI_ASM_ARM_UNISTD_EABI_H
-#define _UAPI_ASM_ARM_UNISTD_EABI_H 1
+#ifndef _UAPI_ASM_UNISTD_EABI_H
+#define _UAPI_ASM_UNISTD_EABI_H
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
+#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
+#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
+#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
+#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
+#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
+#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
index d2633e8..08b3b9a 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd-oabi.h
@@ -16,18 +16,421 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _UAPI_ASM_ARM_UNISTD_OABI_H
-#define _UAPI_ASM_ARM_UNISTD_OABI_H 1
+#ifndef _UAPI_ASM_UNISTD_OABI_H
+#define _UAPI_ASM_UNISTD_OABI_H
+#define __NR_restart_syscall (__NR_SYSCALL_BASE + 0)
+#define __NR_exit (__NR_SYSCALL_BASE + 1)
+#define __NR_fork (__NR_SYSCALL_BASE + 2)
+#define __NR_read (__NR_SYSCALL_BASE + 3)
+#define __NR_write (__NR_SYSCALL_BASE + 4)
+#define __NR_open (__NR_SYSCALL_BASE + 5)
+#define __NR_close (__NR_SYSCALL_BASE + 6)
+#define __NR_creat (__NR_SYSCALL_BASE + 8)
+#define __NR_link (__NR_SYSCALL_BASE + 9)
+#define __NR_unlink (__NR_SYSCALL_BASE + 10)
+#define __NR_execve (__NR_SYSCALL_BASE + 11)
+#define __NR_chdir (__NR_SYSCALL_BASE + 12)
 #define __NR_time (__NR_SYSCALL_BASE + 13)
+#define __NR_mknod (__NR_SYSCALL_BASE + 14)
+#define __NR_chmod (__NR_SYSCALL_BASE + 15)
+#define __NR_lchown (__NR_SYSCALL_BASE + 16)
+#define __NR_lseek (__NR_SYSCALL_BASE + 19)
+#define __NR_getpid (__NR_SYSCALL_BASE + 20)
+#define __NR_mount (__NR_SYSCALL_BASE + 21)
 #define __NR_umount (__NR_SYSCALL_BASE + 22)
+#define __NR_setuid (__NR_SYSCALL_BASE + 23)
+#define __NR_getuid (__NR_SYSCALL_BASE + 24)
 #define __NR_stime (__NR_SYSCALL_BASE + 25)
+#define __NR_ptrace (__NR_SYSCALL_BASE + 26)
 #define __NR_alarm (__NR_SYSCALL_BASE + 27)
+#define __NR_pause (__NR_SYSCALL_BASE + 29)
 #define __NR_utime (__NR_SYSCALL_BASE + 30)
+#define __NR_access (__NR_SYSCALL_BASE + 33)
+#define __NR_nice (__NR_SYSCALL_BASE + 34)
+#define __NR_sync (__NR_SYSCALL_BASE + 36)
+#define __NR_kill (__NR_SYSCALL_BASE + 37)
+#define __NR_rename (__NR_SYSCALL_BASE + 38)
+#define __NR_mkdir (__NR_SYSCALL_BASE + 39)
+#define __NR_rmdir (__NR_SYSCALL_BASE + 40)
+#define __NR_dup (__NR_SYSCALL_BASE + 41)
+#define __NR_pipe (__NR_SYSCALL_BASE + 42)
+#define __NR_times (__NR_SYSCALL_BASE + 43)
+#define __NR_brk (__NR_SYSCALL_BASE + 45)
+#define __NR_setgid (__NR_SYSCALL_BASE + 46)
+#define __NR_getgid (__NR_SYSCALL_BASE + 47)
+#define __NR_geteuid (__NR_SYSCALL_BASE + 49)
+#define __NR_getegid (__NR_SYSCALL_BASE + 50)
+#define __NR_acct (__NR_SYSCALL_BASE + 51)
+#define __NR_umount2 (__NR_SYSCALL_BASE + 52)
+#define __NR_ioctl (__NR_SYSCALL_BASE + 54)
+#define __NR_fcntl (__NR_SYSCALL_BASE + 55)
+#define __NR_setpgid (__NR_SYSCALL_BASE + 57)
+#define __NR_umask (__NR_SYSCALL_BASE + 60)
+#define __NR_chroot (__NR_SYSCALL_BASE + 61)
+#define __NR_ustat (__NR_SYSCALL_BASE + 62)
+#define __NR_dup2 (__NR_SYSCALL_BASE + 63)
+#define __NR_getppid (__NR_SYSCALL_BASE + 64)
+#define __NR_getpgrp (__NR_SYSCALL_BASE + 65)
+#define __NR_setsid (__NR_SYSCALL_BASE + 66)
+#define __NR_sigaction (__NR_SYSCALL_BASE + 67)
+#define __NR_setreuid (__NR_SYSCALL_BASE + 70)
+#define __NR_setregid (__NR_SYSCALL_BASE + 71)
+#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72)
+#define __NR_sigpending (__NR_SYSCALL_BASE + 73)
+#define __NR_sethostname (__NR_SYSCALL_BASE + 74)
+#define __NR_setrlimit (__NR_SYSCALL_BASE + 75)
 #define __NR_getrlimit (__NR_SYSCALL_BASE + 76)
+#define __NR_getrusage (__NR_SYSCALL_BASE + 77)
+#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78)
+#define __NR_settimeofday (__NR_SYSCALL_BASE + 79)
+#define __NR_getgroups (__NR_SYSCALL_BASE + 80)
+#define __NR_setgroups (__NR_SYSCALL_BASE + 81)
 #define __NR_select (__NR_SYSCALL_BASE + 82)
+#define __NR_symlink (__NR_SYSCALL_BASE + 83)
+#define __NR_readlink (__NR_SYSCALL_BASE + 85)
+#define __NR_uselib (__NR_SYSCALL_BASE + 86)
+#define __NR_swapon (__NR_SYSCALL_BASE + 87)
+#define __NR_reboot (__NR_SYSCALL_BASE + 88)
 #define __NR_readdir (__NR_SYSCALL_BASE + 89)
 #define __NR_mmap (__NR_SYSCALL_BASE + 90)
+#define __NR_munmap (__NR_SYSCALL_BASE + 91)
+#define __NR_truncate (__NR_SYSCALL_BASE + 92)
+#define __NR_ftruncate (__NR_SYSCALL_BASE + 93)
+#define __NR_fchmod (__NR_SYSCALL_BASE + 94)
+#define __NR_fchown (__NR_SYSCALL_BASE + 95)
+#define __NR_getpriority (__NR_SYSCALL_BASE + 96)
+#define __NR_setpriority (__NR_SYSCALL_BASE + 97)
+#define __NR_statfs (__NR_SYSCALL_BASE + 99)
+#define __NR_fstatfs (__NR_SYSCALL_BASE + 100)
 #define __NR_socketcall (__NR_SYSCALL_BASE + 102)
+#define __NR_syslog (__NR_SYSCALL_BASE + 103)
+#define __NR_setitimer (__NR_SYSCALL_BASE + 104)
+#define __NR_getitimer (__NR_SYSCALL_BASE + 105)
+#define __NR_stat (__NR_SYSCALL_BASE + 106)
+#define __NR_lstat (__NR_SYSCALL_BASE + 107)
+#define __NR_fstat (__NR_SYSCALL_BASE + 108)
+#define __NR_vhangup (__NR_SYSCALL_BASE + 111)
 #define __NR_syscall (__NR_SYSCALL_BASE + 113)
+#define __NR_wait4 (__NR_SYSCALL_BASE + 114)
+#define __NR_swapoff (__NR_SYSCALL_BASE + 115)
+#define __NR_sysinfo (__NR_SYSCALL_BASE + 116)
 #define __NR_ipc (__NR_SYSCALL_BASE + 117)
+#define __NR_fsync (__NR_SYSCALL_BASE + 118)
+#define __NR_sigreturn (__NR_SYSCALL_BASE + 119)
+#define __NR_clone (__NR_SYSCALL_BASE + 120)
+#define __NR_setdomainname (__NR_SYSCALL_BASE + 121)
+#define __NR_uname (__NR_SYSCALL_BASE + 122)
+#define __NR_adjtimex (__NR_SYSCALL_BASE + 124)
+#define __NR_mprotect (__NR_SYSCALL_BASE + 125)
+#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126)
+#define __NR_init_module (__NR_SYSCALL_BASE + 128)
+#define __NR_delete_module (__NR_SYSCALL_BASE + 129)
+#define __NR_quotactl (__NR_SYSCALL_BASE + 131)
+#define __NR_getpgid (__NR_SYSCALL_BASE + 132)
+#define __NR_fchdir (__NR_SYSCALL_BASE + 133)
+#define __NR_bdflush (__NR_SYSCALL_BASE + 134)
+#define __NR_sysfs (__NR_SYSCALL_BASE + 135)
+#define __NR_personality (__NR_SYSCALL_BASE + 136)
+#define __NR_setfsuid (__NR_SYSCALL_BASE + 138)
+#define __NR_setfsgid (__NR_SYSCALL_BASE + 139)
+#define __NR__llseek (__NR_SYSCALL_BASE + 140)
+#define __NR_getdents (__NR_SYSCALL_BASE + 141)
+#define __NR__newselect (__NR_SYSCALL_BASE + 142)
+#define __NR_flock (__NR_SYSCALL_BASE + 143)
+#define __NR_msync (__NR_SYSCALL_BASE + 144)
+#define __NR_readv (__NR_SYSCALL_BASE + 145)
+#define __NR_writev (__NR_SYSCALL_BASE + 146)
+#define __NR_getsid (__NR_SYSCALL_BASE + 147)
+#define __NR_fdatasync (__NR_SYSCALL_BASE + 148)
+#define __NR__sysctl (__NR_SYSCALL_BASE + 149)
+#define __NR_mlock (__NR_SYSCALL_BASE + 150)
+#define __NR_munlock (__NR_SYSCALL_BASE + 151)
+#define __NR_mlockall (__NR_SYSCALL_BASE + 152)
+#define __NR_munlockall (__NR_SYSCALL_BASE + 153)
+#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154)
+#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155)
+#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156)
+#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157)
+#define __NR_sched_yield (__NR_SYSCALL_BASE + 158)
+#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159)
+#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160)
+#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161)
+#define __NR_nanosleep (__NR_SYSCALL_BASE + 162)
+#define __NR_mremap (__NR_SYSCALL_BASE + 163)
+#define __NR_setresuid (__NR_SYSCALL_BASE + 164)
+#define __NR_getresuid (__NR_SYSCALL_BASE + 165)
+#define __NR_poll (__NR_SYSCALL_BASE + 168)
+#define __NR_nfsservctl (__NR_SYSCALL_BASE + 169)
+#define __NR_setresgid (__NR_SYSCALL_BASE + 170)
+#define __NR_getresgid (__NR_SYSCALL_BASE + 171)
+#define __NR_prctl (__NR_SYSCALL_BASE + 172)
+#define __NR_rt_sigreturn (__NR_SYSCALL_BASE + 173)
+#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174)
+#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175)
+#define __NR_rt_sigpending (__NR_SYSCALL_BASE + 176)
+#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177)
+#define __NR_rt_sigqueueinfo (__NR_SYSCALL_BASE + 178)
+#define __NR_rt_sigsuspend (__NR_SYSCALL_BASE + 179)
+#define __NR_pread64 (__NR_SYSCALL_BASE + 180)
+#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181)
+#define __NR_chown (__NR_SYSCALL_BASE + 182)
+#define __NR_getcwd (__NR_SYSCALL_BASE + 183)
+#define __NR_capget (__NR_SYSCALL_BASE + 184)
+#define __NR_capset (__NR_SYSCALL_BASE + 185)
+#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186)
+#define __NR_sendfile (__NR_SYSCALL_BASE + 187)
+#define __NR_vfork (__NR_SYSCALL_BASE + 190)
+#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191)
+#define __NR_mmap2 (__NR_SYSCALL_BASE + 192)
+#define __NR_truncate64 (__NR_SYSCALL_BASE + 193)
+#define __NR_ftruncate64 (__NR_SYSCALL_BASE + 194)
+#define __NR_stat64 (__NR_SYSCALL_BASE + 195)
+#define __NR_lstat64 (__NR_SYSCALL_BASE + 196)
+#define __NR_fstat64 (__NR_SYSCALL_BASE + 197)
+#define __NR_lchown32 (__NR_SYSCALL_BASE + 198)
+#define __NR_getuid32 (__NR_SYSCALL_BASE + 199)
+#define __NR_getgid32 (__NR_SYSCALL_BASE + 200)
+#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201)
+#define __NR_getegid32 (__NR_SYSCALL_BASE + 202)
+#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203)
+#define __NR_setregid32 (__NR_SYSCALL_BASE + 204)
+#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205)
+#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206)
+#define __NR_fchown32 (__NR_SYSCALL_BASE + 207)
+#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208)
+#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209)
+#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210)
+#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211)
+#define __NR_chown32 (__NR_SYSCALL_BASE + 212)
+#define __NR_setuid32 (__NR_SYSCALL_BASE + 213)
+#define __NR_setgid32 (__NR_SYSCALL_BASE + 214)
+#define __NR_setfsuid32 (__NR_SYSCALL_BASE + 215)
+#define __NR_setfsgid32 (__NR_SYSCALL_BASE + 216)
+#define __NR_getdents64 (__NR_SYSCALL_BASE + 217)
+#define __NR_pivot_root (__NR_SYSCALL_BASE + 218)
+#define __NR_mincore (__NR_SYSCALL_BASE + 219)
+#define __NR_madvise (__NR_SYSCALL_BASE + 220)
+#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221)
+#define __NR_gettid (__NR_SYSCALL_BASE + 224)
+#define __NR_readahead (__NR_SYSCALL_BASE + 225)
+#define __NR_setxattr (__NR_SYSCALL_BASE + 226)
+#define __NR_lsetxattr (__NR_SYSCALL_BASE + 227)
+#define __NR_fsetxattr (__NR_SYSCALL_BASE + 228)
+#define __NR_getxattr (__NR_SYSCALL_BASE + 229)
+#define __NR_lgetxattr (__NR_SYSCALL_BASE + 230)
+#define __NR_fgetxattr (__NR_SYSCALL_BASE + 231)
+#define __NR_listxattr (__NR_SYSCALL_BASE + 232)
+#define __NR_llistxattr (__NR_SYSCALL_BASE + 233)
+#define __NR_flistxattr (__NR_SYSCALL_BASE + 234)
+#define __NR_removexattr (__NR_SYSCALL_BASE + 235)
+#define __NR_lremovexattr (__NR_SYSCALL_BASE + 236)
+#define __NR_fremovexattr (__NR_SYSCALL_BASE + 237)
+#define __NR_tkill (__NR_SYSCALL_BASE + 238)
+#define __NR_sendfile64 (__NR_SYSCALL_BASE + 239)
+#define __NR_futex (__NR_SYSCALL_BASE + 240)
+#define __NR_sched_setaffinity (__NR_SYSCALL_BASE + 241)
+#define __NR_sched_getaffinity (__NR_SYSCALL_BASE + 242)
+#define __NR_io_setup (__NR_SYSCALL_BASE + 243)
+#define __NR_io_destroy (__NR_SYSCALL_BASE + 244)
+#define __NR_io_getevents (__NR_SYSCALL_BASE + 245)
+#define __NR_io_submit (__NR_SYSCALL_BASE + 246)
+#define __NR_io_cancel (__NR_SYSCALL_BASE + 247)
+#define __NR_exit_group (__NR_SYSCALL_BASE + 248)
+#define __NR_lookup_dcookie (__NR_SYSCALL_BASE + 249)
+#define __NR_epoll_create (__NR_SYSCALL_BASE + 250)
+#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251)
+#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252)
+#define __NR_remap_file_pages (__NR_SYSCALL_BASE + 253)
+#define __NR_set_tid_address (__NR_SYSCALL_BASE + 256)
+#define __NR_timer_create (__NR_SYSCALL_BASE + 257)
+#define __NR_timer_settime (__NR_SYSCALL_BASE + 258)
+#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259)
+#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260)
+#define __NR_timer_delete (__NR_SYSCALL_BASE + 261)
+#define __NR_clock_settime (__NR_SYSCALL_BASE + 262)
+#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263)
+#define __NR_clock_getres (__NR_SYSCALL_BASE + 264)
+#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265)
+#define __NR_statfs64 (__NR_SYSCALL_BASE + 266)
+#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267)
+#define __NR_tgkill (__NR_SYSCALL_BASE + 268)
+#define __NR_utimes (__NR_SYSCALL_BASE + 269)
+#define __NR_arm_fadvise64_64 (__NR_SYSCALL_BASE + 270)
+#define __NR_pciconfig_iobase (__NR_SYSCALL_BASE + 271)
+#define __NR_pciconfig_read (__NR_SYSCALL_BASE + 272)
+#define __NR_pciconfig_write (__NR_SYSCALL_BASE + 273)
+#define __NR_mq_open (__NR_SYSCALL_BASE + 274)
+#define __NR_mq_unlink (__NR_SYSCALL_BASE + 275)
+#define __NR_mq_timedsend (__NR_SYSCALL_BASE + 276)
+#define __NR_mq_timedreceive (__NR_SYSCALL_BASE + 277)
+#define __NR_mq_notify (__NR_SYSCALL_BASE + 278)
+#define __NR_mq_getsetattr (__NR_SYSCALL_BASE + 279)
+#define __NR_waitid (__NR_SYSCALL_BASE + 280)
+#define __NR_socket (__NR_SYSCALL_BASE + 281)
+#define __NR_bind (__NR_SYSCALL_BASE + 282)
+#define __NR_connect (__NR_SYSCALL_BASE + 283)
+#define __NR_listen (__NR_SYSCALL_BASE + 284)
+#define __NR_accept (__NR_SYSCALL_BASE + 285)
+#define __NR_getsockname (__NR_SYSCALL_BASE + 286)
+#define __NR_getpeername (__NR_SYSCALL_BASE + 287)
+#define __NR_socketpair (__NR_SYSCALL_BASE + 288)
+#define __NR_send (__NR_SYSCALL_BASE + 289)
+#define __NR_sendto (__NR_SYSCALL_BASE + 290)
+#define __NR_recv (__NR_SYSCALL_BASE + 291)
+#define __NR_recvfrom (__NR_SYSCALL_BASE + 292)
+#define __NR_shutdown (__NR_SYSCALL_BASE + 293)
+#define __NR_setsockopt (__NR_SYSCALL_BASE + 294)
+#define __NR_getsockopt (__NR_SYSCALL_BASE + 295)
+#define __NR_sendmsg (__NR_SYSCALL_BASE + 296)
+#define __NR_recvmsg (__NR_SYSCALL_BASE + 297)
+#define __NR_semop (__NR_SYSCALL_BASE + 298)
+#define __NR_semget (__NR_SYSCALL_BASE + 299)
+#define __NR_semctl (__NR_SYSCALL_BASE + 300)
+#define __NR_msgsnd (__NR_SYSCALL_BASE + 301)
+#define __NR_msgrcv (__NR_SYSCALL_BASE + 302)
+#define __NR_msgget (__NR_SYSCALL_BASE + 303)
+#define __NR_msgctl (__NR_SYSCALL_BASE + 304)
+#define __NR_shmat (__NR_SYSCALL_BASE + 305)
+#define __NR_shmdt (__NR_SYSCALL_BASE + 306)
+#define __NR_shmget (__NR_SYSCALL_BASE + 307)
+#define __NR_shmctl (__NR_SYSCALL_BASE + 308)
+#define __NR_add_key (__NR_SYSCALL_BASE + 309)
+#define __NR_request_key (__NR_SYSCALL_BASE + 310)
+#define __NR_keyctl (__NR_SYSCALL_BASE + 311)
+#define __NR_semtimedop (__NR_SYSCALL_BASE + 312)
+#define __NR_vserver (__NR_SYSCALL_BASE + 313)
+#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314)
+#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315)
+#define __NR_inotify_init (__NR_SYSCALL_BASE + 316)
+#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317)
+#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318)
+#define __NR_mbind (__NR_SYSCALL_BASE + 319)
+#define __NR_get_mempolicy (__NR_SYSCALL_BASE + 320)
+#define __NR_set_mempolicy (__NR_SYSCALL_BASE + 321)
+#define __NR_openat (__NR_SYSCALL_BASE + 322)
+#define __NR_mkdirat (__NR_SYSCALL_BASE + 323)
+#define __NR_mknodat (__NR_SYSCALL_BASE + 324)
+#define __NR_fchownat (__NR_SYSCALL_BASE + 325)
+#define __NR_futimesat (__NR_SYSCALL_BASE + 326)
+#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327)
+#define __NR_unlinkat (__NR_SYSCALL_BASE + 328)
+#define __NR_renameat (__NR_SYSCALL_BASE + 329)
+#define __NR_linkat (__NR_SYSCALL_BASE + 330)
+#define __NR_symlinkat (__NR_SYSCALL_BASE + 331)
+#define __NR_readlinkat (__NR_SYSCALL_BASE + 332)
+#define __NR_fchmodat (__NR_SYSCALL_BASE + 333)
+#define __NR_faccessat (__NR_SYSCALL_BASE + 334)
+#define __NR_pselect6 (__NR_SYSCALL_BASE + 335)
+#define __NR_ppoll (__NR_SYSCALL_BASE + 336)
+#define __NR_unshare (__NR_SYSCALL_BASE + 337)
+#define __NR_set_robust_list (__NR_SYSCALL_BASE + 338)
+#define __NR_get_robust_list (__NR_SYSCALL_BASE + 339)
+#define __NR_splice (__NR_SYSCALL_BASE + 340)
+#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE + 341)
+#define __NR_tee (__NR_SYSCALL_BASE + 342)
+#define __NR_vmsplice (__NR_SYSCALL_BASE + 343)
+#define __NR_move_pages (__NR_SYSCALL_BASE + 344)
+#define __NR_getcpu (__NR_SYSCALL_BASE + 345)
+#define __NR_epoll_pwait (__NR_SYSCALL_BASE + 346)
+#define __NR_kexec_load (__NR_SYSCALL_BASE + 347)
+#define __NR_utimensat (__NR_SYSCALL_BASE + 348)
+#define __NR_signalfd (__NR_SYSCALL_BASE + 349)
+#define __NR_timerfd_create (__NR_SYSCALL_BASE + 350)
+#define __NR_eventfd (__NR_SYSCALL_BASE + 351)
+#define __NR_fallocate (__NR_SYSCALL_BASE + 352)
+#define __NR_timerfd_settime (__NR_SYSCALL_BASE + 353)
+#define __NR_timerfd_gettime (__NR_SYSCALL_BASE + 354)
+#define __NR_signalfd4 (__NR_SYSCALL_BASE + 355)
+#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356)
+#define __NR_epoll_create1 (__NR_SYSCALL_BASE + 357)
+#define __NR_dup3 (__NR_SYSCALL_BASE + 358)
+#define __NR_pipe2 (__NR_SYSCALL_BASE + 359)
+#define __NR_inotify_init1 (__NR_SYSCALL_BASE + 360)
+#define __NR_preadv (__NR_SYSCALL_BASE + 361)
+#define __NR_pwritev (__NR_SYSCALL_BASE + 362)
+#define __NR_rt_tgsigqueueinfo (__NR_SYSCALL_BASE + 363)
+#define __NR_perf_event_open (__NR_SYSCALL_BASE + 364)
+#define __NR_recvmmsg (__NR_SYSCALL_BASE + 365)
+#define __NR_accept4 (__NR_SYSCALL_BASE + 366)
+#define __NR_fanotify_init (__NR_SYSCALL_BASE + 367)
+#define __NR_fanotify_mark (__NR_SYSCALL_BASE + 368)
+#define __NR_prlimit64 (__NR_SYSCALL_BASE + 369)
+#define __NR_name_to_handle_at (__NR_SYSCALL_BASE + 370)
+#define __NR_open_by_handle_at (__NR_SYSCALL_BASE + 371)
+#define __NR_clock_adjtime (__NR_SYSCALL_BASE + 372)
+#define __NR_syncfs (__NR_SYSCALL_BASE + 373)
+#define __NR_sendmmsg (__NR_SYSCALL_BASE + 374)
+#define __NR_setns (__NR_SYSCALL_BASE + 375)
+#define __NR_process_vm_readv (__NR_SYSCALL_BASE + 376)
+#define __NR_process_vm_writev (__NR_SYSCALL_BASE + 377)
+#define __NR_kcmp (__NR_SYSCALL_BASE + 378)
+#define __NR_finit_module (__NR_SYSCALL_BASE + 379)
+#define __NR_sched_setattr (__NR_SYSCALL_BASE + 380)
+#define __NR_sched_getattr (__NR_SYSCALL_BASE + 381)
+#define __NR_renameat2 (__NR_SYSCALL_BASE + 382)
+#define __NR_seccomp (__NR_SYSCALL_BASE + 383)
+#define __NR_getrandom (__NR_SYSCALL_BASE + 384)
+#define __NR_memfd_create (__NR_SYSCALL_BASE + 385)
+#define __NR_bpf (__NR_SYSCALL_BASE + 386)
+#define __NR_execveat (__NR_SYSCALL_BASE + 387)
+#define __NR_userfaultfd (__NR_SYSCALL_BASE + 388)
+#define __NR_membarrier (__NR_SYSCALL_BASE + 389)
+#define __NR_mlock2 (__NR_SYSCALL_BASE + 390)
+#define __NR_copy_file_range (__NR_SYSCALL_BASE + 391)
+#define __NR_preadv2 (__NR_SYSCALL_BASE + 392)
+#define __NR_pwritev2 (__NR_SYSCALL_BASE + 393)
+#define __NR_pkey_mprotect (__NR_SYSCALL_BASE + 394)
+#define __NR_pkey_alloc (__NR_SYSCALL_BASE + 395)
+#define __NR_pkey_free (__NR_SYSCALL_BASE + 396)
+#define __NR_statx (__NR_SYSCALL_BASE + 397)
+#define __NR_rseq (__NR_SYSCALL_BASE + 398)
+#define __NR_io_pgetevents (__NR_SYSCALL_BASE + 399)
+#define __NR_migrate_pages (__NR_SYSCALL_BASE + 400)
+#define __NR_kexec_file_load (__NR_SYSCALL_BASE + 401)
+#define __NR_clock_gettime64 (__NR_SYSCALL_BASE + 403)
+#define __NR_clock_settime64 (__NR_SYSCALL_BASE + 404)
+#define __NR_clock_adjtime64 (__NR_SYSCALL_BASE + 405)
+#define __NR_clock_getres_time64 (__NR_SYSCALL_BASE + 406)
+#define __NR_clock_nanosleep_time64 (__NR_SYSCALL_BASE + 407)
+#define __NR_timer_gettime64 (__NR_SYSCALL_BASE + 408)
+#define __NR_timer_settime64 (__NR_SYSCALL_BASE + 409)
+#define __NR_timerfd_gettime64 (__NR_SYSCALL_BASE + 410)
+#define __NR_timerfd_settime64 (__NR_SYSCALL_BASE + 411)
+#define __NR_utimensat_time64 (__NR_SYSCALL_BASE + 412)
+#define __NR_pselect6_time64 (__NR_SYSCALL_BASE + 413)
+#define __NR_ppoll_time64 (__NR_SYSCALL_BASE + 414)
+#define __NR_io_pgetevents_time64 (__NR_SYSCALL_BASE + 416)
+#define __NR_recvmmsg_time64 (__NR_SYSCALL_BASE + 417)
+#define __NR_mq_timedsend_time64 (__NR_SYSCALL_BASE + 418)
+#define __NR_mq_timedreceive_time64 (__NR_SYSCALL_BASE + 419)
+#define __NR_semtimedop_time64 (__NR_SYSCALL_BASE + 420)
+#define __NR_rt_sigtimedwait_time64 (__NR_SYSCALL_BASE + 421)
+#define __NR_futex_time64 (__NR_SYSCALL_BASE + 422)
+#define __NR_sched_rr_get_interval_time64 (__NR_SYSCALL_BASE + 423)
+#define __NR_pidfd_send_signal (__NR_SYSCALL_BASE + 424)
+#define __NR_io_uring_setup (__NR_SYSCALL_BASE + 425)
+#define __NR_io_uring_enter (__NR_SYSCALL_BASE + 426)
+#define __NR_io_uring_register (__NR_SYSCALL_BASE + 427)
+#define __NR_open_tree (__NR_SYSCALL_BASE + 428)
+#define __NR_move_mount (__NR_SYSCALL_BASE + 429)
+#define __NR_fsopen (__NR_SYSCALL_BASE + 430)
+#define __NR_fsconfig (__NR_SYSCALL_BASE + 431)
+#define __NR_fsmount (__NR_SYSCALL_BASE + 432)
+#define __NR_fspick (__NR_SYSCALL_BASE + 433)
+#define __NR_pidfd_open (__NR_SYSCALL_BASE + 434)
+#define __NR_clone3 (__NR_SYSCALL_BASE + 435)
+#define __NR_close_range (__NR_SYSCALL_BASE + 436)
+#define __NR_openat2 (__NR_SYSCALL_BASE + 437)
+#define __NR_pidfd_getfd (__NR_SYSCALL_BASE + 438)
+#define __NR_faccessat2 (__NR_SYSCALL_BASE + 439)
+#define __NR_process_madvise (__NR_SYSCALL_BASE + 440)
+#define __NR_epoll_pwait2 (__NR_SYSCALL_BASE + 441)
+#define __NR_mount_setattr (__NR_SYSCALL_BASE + 442)
+#define __NR_quotactl_fd (__NR_SYSCALL_BASE + 443)
+#define __NR_landlock_create_ruleset (__NR_SYSCALL_BASE + 444)
+#define __NR_landlock_add_rule (__NR_SYSCALL_BASE + 445)
+#define __NR_landlock_restrict_self (__NR_SYSCALL_BASE + 446)
+#define __NR_process_mrelease (__NR_SYSCALL_BASE + 448)
+#define __NR_futex_waitv (__NR_SYSCALL_BASE + 449)
+#define __NR_set_mempolicy_home_node (__NR_SYSCALL_BASE + 450)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
index f4b1f3a..8bb0f58 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm/asm/unistd.h
@@ -19,9 +19,9 @@
 #ifndef _UAPI__ASM_ARM_UNISTD_H
 #define _UAPI__ASM_ARM_UNISTD_H
 #define __NR_OABI_SYSCALL_BASE 0x900000
+#define __NR_SYSCALL_MASK 0x0fffff
 #define __NR_SYSCALL_BASE 0
 #include <asm/unistd-eabi.h>
-#include <asm/unistd-common.h>
 #define __NR_sync_file_range2 __NR_arm_sync_file_range
 #define __ARM_NR_BASE (__NR_SYSCALL_BASE + 0x0f0000)
 #define __ARM_NR_breakpoint (__ARM_NR_BASE + 1)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
index 8a70a52..4316724 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/hwcap.h
@@ -69,4 +69,7 @@
 #define HWCAP2_RNG (1 << 16)
 #define HWCAP2_BTI (1 << 17)
 #define HWCAP2_MTE (1 << 18)
+#define HWCAP2_ECV (1 << 19)
+#define HWCAP2_AFP (1 << 20)
+#define HWCAP2_RPRES (1 << 21)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
index 014504a..c53ee87 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/kvm.h
@@ -115,6 +115,15 @@
   } exception;
   __u32 reserved[12];
 };
+struct kvm_arm_copy_mte_tags {
+  __u64 guest_ipa;
+  __u64 length;
+  void __user * addr;
+  __u64 flags;
+  __u64 reserved[2];
+};
+#define KVM_ARM_TAGS_TO_GUEST 0
+#define KVM_ARM_TAGS_FROM_GUEST 1
 #define KVM_REG_ARM_COPROC_MASK 0x000000000FFF0000
 #define KVM_REG_ARM_COPROC_SHIFT 16
 #define KVM_REG_ARM_CORE (0x0010 << KVM_REG_ARM_COPROC_SHIFT)
@@ -158,6 +167,10 @@
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL 2
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED 3
 #define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED (1U << 4)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3 KVM_REG_ARM_FW_REG(3)
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_AVAIL 0
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_AVAIL 1
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_3_NOT_REQUIRED 2
 #define KVM_REG_ARM64_SVE (0x15 << KVM_REG_ARM_COPROC_SHIFT)
 #define KVM_REG_ARM64_SVE_ZREG_BASE 0
 #define KVM_REG_ARM64_SVE_PREG_BASE 0x400
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
index e93f3f1..06b85ed 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-arm64/asm/unistd.h
@@ -21,4 +21,5 @@
 #define __ARCH_WANT_SET_GET_RLIMIT
 #define __ARCH_WANT_TIME32_SYSCALLS
 #define __ARCH_WANT_SYS_CLONE3
+#define __ARCH_WANT_MEMFD_SECRET
 #include <asm-generic/unistd.h>
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
index a088ce5..9440576 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/mman-common.h
@@ -60,6 +60,8 @@
 #define MADV_KEEPONFORK 19
 #define MADV_COLD 20
 #define MADV_PAGEOUT 21
+#define MADV_POPULATE_READ 22
+#define MADV_POPULATE_WRITE 23
 #define MAP_FILE 0
 #define PKEY_DISABLE_ACCESS 0x1
 #define PKEY_DISABLE_WRITE 0x2
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
index 8bcbabb..f9199e5 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/siginfo.h
@@ -59,9 +59,6 @@
   } _sigchld;
   struct {
     void __user * _addr;
-#ifdef __ARCH_SI_TRAPNO
-    int _trapno;
-#endif
 #ifdef __ia64__
     int _imm;
     unsigned int _flags;
@@ -69,6 +66,7 @@
 #endif
 #define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? sizeof(short) : __alignof__(void *))
     union {
+      int _trapno;
       short _addr_lsb;
       struct {
         char _dummy_bnd[__ADDR_BND_PKEY_PAD];
@@ -79,6 +77,10 @@
         char _dummy_pkey[__ADDR_BND_PKEY_PAD];
         __u32 _pkey;
       } _addr_pkey;
+      struct {
+        unsigned long _data;
+        __u32 _type;
+      } _perf;
     };
   } _sigfault;
   struct {
@@ -116,13 +118,13 @@
 #define si_int _sifields._rt._sigval.sival_int
 #define si_ptr _sifields._rt._sigval.sival_ptr
 #define si_addr _sifields._sigfault._addr
-#ifdef __ARCH_SI_TRAPNO
 #define si_trapno _sifields._sigfault._trapno
-#endif
 #define si_addr_lsb _sifields._sigfault._addr_lsb
 #define si_lower _sifields._sigfault._addr_bnd._lower
 #define si_upper _sifields._sigfault._addr_bnd._upper
 #define si_pkey _sifields._sigfault._addr_pkey._pkey
+#define si_perf_data _sifields._sigfault._perf._data
+#define si_perf_type _sifields._sigfault._perf._type
 #define si_band _sifields._sigpoll._band
 #define si_fd _sifields._sigpoll._fd
 #define si_call_addr _sifields._sigsys._call_addr
@@ -193,7 +195,8 @@
 #define TRAP_BRANCH 3
 #define TRAP_HWBKPT 4
 #define TRAP_UNK 5
-#define NSIGTRAP 5
+#define TRAP_PERF 6
+#define NSIGTRAP 6
 #define CLD_EXITED 1
 #define CLD_KILLED 2
 #define CLD_DUMPED 3
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/socket.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/socket.h
index 7372be8..6767993 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/socket.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/socket.h
@@ -97,6 +97,9 @@
 #define SO_DETACH_REUSEPORT_BPF 68
 #define SO_PREFER_BUSY_POLL 69
 #define SO_BUSY_POLL_BUDGET 70
+#define SO_NETNS_COOKIE 71
+#define SO_BUF_LOCK 72
+#define SO_RESERVE_MEM 73
 #if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
 #define SO_TIMESTAMP SO_TIMESTAMP_OLD
 #define SO_TIMESTAMPNS SO_TIMESTAMPNS_OLD
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/unistd.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
index 1409701..4b9f174 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-generic/unistd.h
@@ -403,8 +403,18 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#ifdef __ARCH_WANT_MEMFD_SECRET
+#define __NR_memfd_secret 447
+#endif
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #undef __NR_syscalls
-#define __NR_syscalls 443
+#define __NR_syscalls 451
 #if __BITS_PER_LONG == 64 && !defined(__SYSCALL_COMPAT)
 #define __NR_fcntl __NR3264_fcntl
 #define __NR_statfs __NR3264_statfs
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
index 4fd53f0..dd86783 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/auxvec.h
@@ -22,5 +22,5 @@
 #define AT_SYSINFO 32
 #endif
 #define AT_SYSINFO_EHDR 33
-#define AT_VECTOR_SIZE_ARCH 2
+#define AT_VECTOR_SIZE_ARCH 3
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
index aeb8b02..360f432 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/debugreg.h
@@ -28,6 +28,7 @@
 #define DR_TRAP2 (0x4)
 #define DR_TRAP3 (0x8)
 #define DR_TRAP_BITS (DR_TRAP0 | DR_TRAP1 | DR_TRAP2 | DR_TRAP3)
+#define DR_BUS_LOCK (0x800)
 #define DR_STEP (0x4000)
 #define DR_SWITCH (0x8000)
 #define DR_CONTROL_SHIFT 16
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
index a6dbfb9..9f715c9 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/hwcap2.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef _ASM_X86_HWCAP2_H
 #define _ASM_X86_HWCAP2_H
-#define HWCAP2_RING3MWAIT (1 << 0)
-#define HWCAP2_FSGSBASE BIT(1)
+#include <linux/const.h>
+#define HWCAP2_RING3MWAIT _BITUL(0)
+#define HWCAP2_FSGSBASE _BITUL(1)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
index 0d82c5d..caf8fc0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm.h
@@ -146,6 +146,17 @@
   __u64 apic_base;
   __u64 interrupt_bitmap[(KVM_NR_INTERRUPTS + 63) / 64];
 };
+struct kvm_sregs2 {
+  struct kvm_segment cs, ds, es, fs, gs, ss;
+  struct kvm_segment tr, ldt;
+  struct kvm_dtable gdt, idt;
+  __u64 cr0, cr2, cr3, cr4, cr8;
+  __u64 efer;
+  __u64 apic_base;
+  __u64 flags;
+  __u64 pdptrs[4];
+};
+#define KVM_SREGS2_FLAGS_PDPTRS_VALID 1
 struct kvm_fpu {
   __u8 fpr[8][16];
   __u16 fcw;
@@ -246,6 +257,7 @@
 #define KVM_GUESTDBG_USE_HW_BP 0x00020000
 #define KVM_GUESTDBG_INJECT_DB 0x00040000
 #define KVM_GUESTDBG_INJECT_BP 0x00080000
+#define KVM_GUESTDBG_BLOCKIRQ 0x00100000
 struct kvm_guest_debug_arch {
   __u64 debugreg[8];
 };
@@ -310,6 +322,7 @@
 };
 struct kvm_xsave {
   __u32 region[1024];
+  __u32 extra[0];
 };
 #define KVM_MAX_XCRS 16
 struct kvm_xcr {
@@ -349,6 +362,7 @@
 #define KVM_STATE_NESTED_VMX_VMCS_SIZE 0x1000
 #define KVM_STATE_NESTED_SVM_VMCB_SIZE 0x1000
 #define KVM_STATE_VMX_PREEMPTION_TIMER_DEADLINE 0x00000001
+#define KVM_X86_XCOMP_GUEST_SUPP 0
 struct kvm_vmx_nested_state_data {
   __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
   __u8 shadow_vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
@@ -359,6 +373,7 @@
   struct {
     __u16 flags;
   } smm;
+  __u16 pad;
   __u32 flags;
   __u64 preemption_timer_deadline;
 };
@@ -392,4 +407,6 @@
 };
 #define KVM_PMU_EVENT_ALLOW 0
 #define KVM_PMU_EVENT_DENY 1
+#define KVM_VCPU_TSC_CTRL 0
+#define KVM_VCPU_TSC_OFFSET 0
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
index 091fb27..dd72af0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/kvm_para.h
@@ -20,6 +20,7 @@
 #define _UAPI_ASM_X86_KVM_PARA_H
 #include <linux/types.h>
 #define KVM_CPUID_SIGNATURE 0x40000000
+#define KVM_SIGNATURE "KVMKVMKVM\0\0\0"
 #define KVM_CPUID_FEATURES 0x40000001
 #define KVM_FEATURE_CLOCKSOURCE 0
 #define KVM_FEATURE_NOP_IO_DELAY 1
@@ -36,6 +37,8 @@
 #define KVM_FEATURE_PV_SCHED_YIELD 13
 #define KVM_FEATURE_ASYNC_PF_INT 14
 #define KVM_FEATURE_MSI_EXT_DEST_ID 15
+#define KVM_FEATURE_HC_MAP_GPA_RANGE 16
+#define KVM_FEATURE_MIGRATION_CONTROL 17
 #define KVM_HINTS_REALTIME 0
 #define KVM_FEATURE_CLOCKSOURCE_STABLE_BIT 24
 #define MSR_KVM_WALL_CLOCK 0x11
@@ -49,6 +52,7 @@
 #define MSR_KVM_POLL_CONTROL 0x4b564d05
 #define MSR_KVM_ASYNC_PF_INT 0x4b564d06
 #define MSR_KVM_ASYNC_PF_ACK 0x4b564d07
+#define MSR_KVM_MIGRATION_CONTROL 0x4b564d08
 struct kvm_steal_time {
   __u64 steal;
   __u32 version;
@@ -76,6 +80,13 @@
 #define KVM_ASYNC_PF_DELIVERY_AS_PF_VMEXIT (1 << 2)
 #define KVM_ASYNC_PF_DELIVERY_AS_INT (1 << 3)
 #define KVM_ASYNC_PF_VEC_MASK GENMASK(7, 0)
+#define KVM_MIGRATION_READY (1 << 0)
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_4K 0
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_2M (1 << 0)
+#define KVM_MAP_GPA_RANGE_PAGE_SZ_1G (1 << 1)
+#define KVM_MAP_GPA_RANGE_ENC_STAT(n) (n << 4)
+#define KVM_MAP_GPA_RANGE_ENCRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(1)
+#define KVM_MAP_GPA_RANGE_DECRYPTED KVM_MAP_GPA_RANGE_ENC_STAT(0)
 #define KVM_MMU_OP_WRITE_PTE 1
 #define KVM_MMU_OP_FLUSH_TLB 2
 #define KVM_MMU_OP_RELEASE_PT 3
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
index 0e6bed9..c5ba2d6 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/prctl.h
@@ -24,6 +24,11 @@
 #define ARCH_GET_GS 0x1004
 #define ARCH_GET_CPUID 0x1011
 #define ARCH_SET_CPUID 0x1012
+#define ARCH_GET_XCOMP_SUPP 0x1021
+#define ARCH_GET_XCOMP_PERM 0x1022
+#define ARCH_REQ_XCOMP_PERM 0x1023
+#define ARCH_GET_XCOMP_GUEST_PERM 0x1024
+#define ARCH_REQ_XCOMP_GUEST_PERM 0x1025
 #define ARCH_MAP_VDSO_X32 0x2001
 #define ARCH_MAP_VDSO_32 0x2002
 #define ARCH_MAP_VDSO_64 0x2003
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
index 349791a..1874b78 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/sgx.h
@@ -28,6 +28,7 @@
 #define SGX_IOC_ENCLAVE_ADD_PAGES _IOWR(SGX_MAGIC, 0x01, struct sgx_enclave_add_pages)
 #define SGX_IOC_ENCLAVE_INIT _IOW(SGX_MAGIC, 0x02, struct sgx_enclave_init)
 #define SGX_IOC_ENCLAVE_PROVISION _IOW(SGX_MAGIC, 0x03, struct sgx_enclave_provision)
+#define SGX_IOC_VEPC_REMOVE_ALL _IO(SGX_MAGIC, 0x04)
 struct sgx_enclave_create {
   __u64 src;
 };
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
index db9918b..d051481 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/svm.h
@@ -123,6 +123,7 @@
 #define SVM_VMGEXIT_SET_AP_JUMP_TABLE 0
 #define SVM_VMGEXIT_GET_AP_JUMP_TABLE 1
 #define SVM_VMGEXIT_UNSUPPORTED_EVENT 0x8000ffff
+#define SVM_EXIT_SW 0xf0000000
 #define SVM_EXIT_ERR - 1
 #define SVM_EXIT_REASONS { SVM_EXIT_READ_CR0, "read_cr0" }, { SVM_EXIT_READ_CR2, "read_cr2" }, { SVM_EXIT_READ_CR3, "read_cr3" }, { SVM_EXIT_READ_CR4, "read_cr4" }, { SVM_EXIT_READ_CR8, "read_cr8" }, { SVM_EXIT_WRITE_CR0, "write_cr0" }, { SVM_EXIT_WRITE_CR2, "write_cr2" }, { SVM_EXIT_WRITE_CR3, "write_cr3" }, { SVM_EXIT_WRITE_CR4, "write_cr4" }, { SVM_EXIT_WRITE_CR8, "write_cr8" }, { SVM_EXIT_READ_DR0, "read_dr0" }, { SVM_EXIT_READ_DR1, "read_dr1" }, { SVM_EXIT_READ_DR2, "read_dr2" }, { SVM_EXIT_READ_DR3, "read_dr3" }, { SVM_EXIT_READ_DR4, "read_dr4" }, { SVM_EXIT_READ_DR5, "read_dr5" }, { SVM_EXIT_READ_DR6, "read_dr6" }, { SVM_EXIT_READ_DR7, "read_dr7" }, { SVM_EXIT_WRITE_DR0, "write_dr0" }, { SVM_EXIT_WRITE_DR1, "write_dr1" }, { SVM_EXIT_WRITE_DR2, "write_dr2" }, { SVM_EXIT_WRITE_DR3, "write_dr3" }, { SVM_EXIT_WRITE_DR4, "write_dr4" }, { SVM_EXIT_WRITE_DR5, "write_dr5" }, { SVM_EXIT_WRITE_DR6, "write_dr6" }, { SVM_EXIT_WRITE_DR7, "write_dr7" }, { SVM_EXIT_EXCP_BASE + DE_VECTOR, "DE excp" }, { SVM_EXIT_EXCP_BASE + DB_VECTOR, "DB excp" }, { SVM_EXIT_EXCP_BASE + BP_VECTOR, "BP excp" }, { SVM_EXIT_EXCP_BASE + OF_VECTOR, "OF excp" }, { SVM_EXIT_EXCP_BASE + BR_VECTOR, "BR excp" }, { SVM_EXIT_EXCP_BASE + UD_VECTOR, "UD excp" }, { SVM_EXIT_EXCP_BASE + NM_VECTOR, "NM excp" }, { SVM_EXIT_EXCP_BASE + DF_VECTOR, "DF excp" }, { SVM_EXIT_EXCP_BASE + TS_VECTOR, "TS excp" }, { SVM_EXIT_EXCP_BASE + NP_VECTOR, "NP excp" }, { SVM_EXIT_EXCP_BASE + SS_VECTOR, "SS excp" }, { SVM_EXIT_EXCP_BASE + GP_VECTOR, "GP excp" }, { SVM_EXIT_EXCP_BASE + PF_VECTOR, "PF excp" }, { SVM_EXIT_EXCP_BASE + MF_VECTOR, "MF excp" }, { SVM_EXIT_EXCP_BASE + AC_VECTOR, "AC excp" }, { SVM_EXIT_EXCP_BASE + MC_VECTOR, "MC excp" }, { SVM_EXIT_EXCP_BASE + XM_VECTOR, "XF excp" }, { SVM_EXIT_INTR, "interrupt" }, { SVM_EXIT_NMI, "nmi" }, { SVM_EXIT_SMI, "smi" }, { SVM_EXIT_INIT, "init" }, { SVM_EXIT_VINTR, "vintr" }, { SVM_EXIT_CR0_SEL_WRITE, "cr0_sel_write" }, { SVM_EXIT_IDTR_READ, "read_idtr" }, { SVM_EXIT_GDTR_READ, "read_gdtr" }, { SVM_EXIT_LDTR_READ, "read_ldtr" }, { SVM_EXIT_TR_READ, "read_rt" }, { SVM_EXIT_IDTR_WRITE, "write_idtr" }, { SVM_EXIT_GDTR_WRITE, "write_gdtr" }, { SVM_EXIT_LDTR_WRITE, "write_ldtr" }, { SVM_EXIT_TR_WRITE, "write_rt" }, { SVM_EXIT_RDTSC, "rdtsc" }, { SVM_EXIT_RDPMC, "rdpmc" }, { SVM_EXIT_PUSHF, "pushf" }, { SVM_EXIT_POPF, "popf" }, { SVM_EXIT_CPUID, "cpuid" }, { SVM_EXIT_RSM, "rsm" }, { SVM_EXIT_IRET, "iret" }, { SVM_EXIT_SWINT, "swint" }, { SVM_EXIT_INVD, "invd" }, { SVM_EXIT_PAUSE, "pause" }, { SVM_EXIT_HLT, "hlt" }, { SVM_EXIT_INVLPG, "invlpg" }, { SVM_EXIT_INVLPGA, "invlpga" }, { SVM_EXIT_IOIO, "io" }, { SVM_EXIT_MSR, "msr" }, { SVM_EXIT_TASK_SWITCH, "task_switch" }, { SVM_EXIT_FERR_FREEZE, "ferr_freeze" }, { SVM_EXIT_SHUTDOWN, "shutdown" }, { SVM_EXIT_VMRUN, "vmrun" }, { SVM_EXIT_VMMCALL, "hypercall" }, { SVM_EXIT_VMLOAD, "vmload" }, { SVM_EXIT_VMSAVE, "vmsave" }, { SVM_EXIT_STGI, "stgi" }, { SVM_EXIT_CLGI, "clgi" }, { SVM_EXIT_SKINIT, "skinit" }, { SVM_EXIT_RDTSCP, "rdtscp" }, { SVM_EXIT_ICEBP, "icebp" }, { SVM_EXIT_WBINVD, "wbinvd" }, { SVM_EXIT_MONITOR, "monitor" }, { SVM_EXIT_MWAIT, "mwait" }, { SVM_EXIT_XSETBV, "xsetbv" }, { SVM_EXIT_EFER_WRITE_TRAP, "write_efer_trap" }, { SVM_EXIT_CR0_WRITE_TRAP, "write_cr0_trap" }, { SVM_EXIT_CR4_WRITE_TRAP, "write_cr4_trap" }, { SVM_EXIT_CR8_WRITE_TRAP, "write_cr8_trap" }, { SVM_EXIT_INVPCID, "invpcid" }, { SVM_EXIT_NPF, "npf" }, { SVM_EXIT_AVIC_INCOMPLETE_IPI, "avic_incomplete_ipi" }, { SVM_EXIT_AVIC_UNACCELERATED_ACCESS, "avic_unaccelerated_access" }, { SVM_EXIT_VMGEXIT, "vmgexit" }, { SVM_VMGEXIT_MMIO_READ, "vmgexit_mmio_read" }, { SVM_VMGEXIT_MMIO_WRITE, "vmgexit_mmio_write" }, { SVM_VMGEXIT_NMI_COMPLETE, "vmgexit_nmi_complete" }, { SVM_VMGEXIT_AP_HLT_LOOP, "vmgexit_ap_hlt_loop" }, { SVM_VMGEXIT_AP_JUMP_TABLE, "vmgexit_ap_jump_table" }, { SVM_EXIT_ERR, "invalid_guest_state" }
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
index 7fe2421..8e57516 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_32.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_32_H
-#define _ASM_X86_UNISTD_32_H 1
+#ifndef _UAPI_ASM_UNISTD_32_H
+#define _UAPI_ASM_UNISTD_32_H
 #define __NR_restart_syscall 0
 #define __NR_exit 1
 #define __NR_fork 2
@@ -450,4 +450,12 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
index 7e3c924..54ff16f 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_64.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_64_H
-#define _ASM_X86_UNISTD_64_H 1
+#ifndef _UAPI_ASM_UNISTD_64_H
+#define _UAPI_ASM_UNISTD_64_H
 #define __NR_read 0
 #define __NR_write 1
 #define __NR_open 2
@@ -372,4 +372,12 @@
 #define __NR_process_madvise 440
 #define __NR_epoll_pwait2 441
 #define __NR_mount_setattr 442
+#define __NR_quotactl_fd 443
+#define __NR_landlock_create_ruleset 444
+#define __NR_landlock_add_rule 445
+#define __NR_landlock_restrict_self 446
+#define __NR_memfd_secret 447
+#define __NR_process_mrelease 448
+#define __NR_futex_waitv 449
+#define __NR_set_mempolicy_home_node 450
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
index 529ded3..1e05d75 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/unistd_x32.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef _ASM_X86_UNISTD_X32_H
-#define _ASM_X86_UNISTD_X32_H 1
+#ifndef _UAPI_ASM_UNISTD_X32_H
+#define _UAPI_ASM_UNISTD_X32_H
 #define __NR_read (__X32_SYSCALL_BIT + 0)
 #define __NR_write (__X32_SYSCALL_BIT + 1)
 #define __NR_open (__X32_SYSCALL_BIT + 2)
@@ -325,6 +325,14 @@
 #define __NR_process_madvise (__X32_SYSCALL_BIT + 440)
 #define __NR_epoll_pwait2 (__X32_SYSCALL_BIT + 441)
 #define __NR_mount_setattr (__X32_SYSCALL_BIT + 442)
+#define __NR_quotactl_fd (__X32_SYSCALL_BIT + 443)
+#define __NR_landlock_create_ruleset (__X32_SYSCALL_BIT + 444)
+#define __NR_landlock_add_rule (__X32_SYSCALL_BIT + 445)
+#define __NR_landlock_restrict_self (__X32_SYSCALL_BIT + 446)
+#define __NR_memfd_secret (__X32_SYSCALL_BIT + 447)
+#define __NR_process_mrelease (__X32_SYSCALL_BIT + 448)
+#define __NR_futex_waitv (__X32_SYSCALL_BIT + 449)
+#define __NR_set_mempolicy_home_node (__X32_SYSCALL_BIT + 450)
 #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
 #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
 #define __NR_ioctl (__X32_SYSCALL_BIT + 514)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
index 1771faa..6c07d4c 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/asm-x86/asm/vmx.h
@@ -19,6 +19,7 @@
 #ifndef _UAPIVMX_H
 #define _UAPIVMX_H
 #define VMX_EXIT_REASONS_FAILED_VMENTRY 0x80000000
+#define VMX_EXIT_REASONS_SGX_ENCLAVE_MODE 0x08000000
 #define EXIT_REASON_EXCEPTION_NMI 0
 #define EXIT_REASON_EXTERNAL_INTERRUPT 1
 #define EXIT_REASON_TRIPLE_FAULT 2
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
index f8eb023..3764d51 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/amdgpu_drm.h
@@ -65,13 +65,13 @@
 #define AMDGPU_GEM_CREATE_NO_CPU_ACCESS (1 << 1)
 #define AMDGPU_GEM_CREATE_CPU_GTT_USWC (1 << 2)
 #define AMDGPU_GEM_CREATE_VRAM_CLEARED (1 << 3)
-#define AMDGPU_GEM_CREATE_SHADOW (1 << 4)
 #define AMDGPU_GEM_CREATE_VRAM_CONTIGUOUS (1 << 5)
 #define AMDGPU_GEM_CREATE_VM_ALWAYS_VALID (1 << 6)
 #define AMDGPU_GEM_CREATE_EXPLICIT_SYNC (1 << 7)
 #define AMDGPU_GEM_CREATE_CP_MQD_GFX9 (1 << 8)
 #define AMDGPU_GEM_CREATE_VRAM_WIPE_ON_RELEASE (1 << 9)
 #define AMDGPU_GEM_CREATE_ENCRYPTED (1 << 10)
+#define AMDGPU_GEM_CREATE_PREEMPTIBLE (1 << 11)
 struct drm_amdgpu_gem_create_in {
   __u64 bo_size;
   __u64 alignment;
@@ -452,6 +452,7 @@
 #define AMDGPU_INFO_VBIOS 0x1B
 #define AMDGPU_INFO_VBIOS_SIZE 0x1
 #define AMDGPU_INFO_VBIOS_IMAGE 0x2
+#define AMDGPU_INFO_VBIOS_INFO 0x3
 #define AMDGPU_INFO_NUM_HANDLES 0x1C
 #define AMDGPU_INFO_SENSOR 0x1D
 #define AMDGPU_INFO_SENSOR_GFX_SCLK 0x1
@@ -480,6 +481,9 @@
 #define AMDGPU_INFO_RAS_ENABLED_MP0 (1 << 11)
 #define AMDGPU_INFO_RAS_ENABLED_MP1 (1 << 12)
 #define AMDGPU_INFO_RAS_ENABLED_FUSE (1 << 13)
+#define AMDGPU_INFO_VIDEO_CAPS 0x21
+#define AMDGPU_INFO_VIDEO_CAPS_DECODE 0
+#define AMDGPU_INFO_VIDEO_CAPS_ENCODE 1
 #define AMDGPU_INFO_MMR_SE_INDEX_SHIFT 0
 #define AMDGPU_INFO_MMR_SE_INDEX_MASK 0xff
 #define AMDGPU_INFO_MMR_SH_INDEX_SHIFT 8
@@ -517,6 +521,9 @@
     struct {
       __u32 type;
     } sensor_info;
+    struct {
+      __u32 type;
+    } video_cap;
   };
 };
 struct drm_amdgpu_info_gds {
@@ -549,6 +556,14 @@
   __u32 ver;
   __u32 feature;
 };
+struct drm_amdgpu_info_vbios {
+  __u8 name[64];
+  __u8 vbios_pn[64];
+  __u32 version;
+  __u32 pad;
+  __u8 vbios_ver_str[32];
+  __u8 date[32];
+};
 #define AMDGPU_VRAM_TYPE_UNKNOWN 0
 #define AMDGPU_VRAM_TYPE_GDDR1 1
 #define AMDGPU_VRAM_TYPE_DDR2 2
@@ -636,6 +651,26 @@
   __u32 num_valid_entries;
   __u32 pad;
 };
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2 0
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4 1
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1 2
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC 3
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC 4
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG 5
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9 6
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_AV1 7
+#define AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT 8
+struct drm_amdgpu_info_video_codec_info {
+  __u32 valid;
+  __u32 max_width;
+  __u32 max_height;
+  __u32 max_pixels_per_frame;
+  __u32 max_level;
+  __u32 pad;
+};
+struct drm_amdgpu_info_video_caps {
+  struct drm_amdgpu_info_video_codec_info codec_info[AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_COUNT];
+};
 #define AMDGPU_FAMILY_UNKNOWN 0
 #define AMDGPU_FAMILY_SI 110
 #define AMDGPU_FAMILY_CI 120
@@ -646,6 +681,7 @@
 #define AMDGPU_FAMILY_RV 142
 #define AMDGPU_FAMILY_NV 143
 #define AMDGPU_FAMILY_VGH 144
+#define AMDGPU_FAMILY_YC 146
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
index 4574c1c..e845c8c 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/drm_fourcc.h
@@ -27,6 +27,8 @@
 #define DRM_FORMAT_INVALID 0
 #define DRM_FORMAT_C8 fourcc_code('C', '8', ' ', ' ')
 #define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ')
+#define DRM_FORMAT_R10 fourcc_code('R', '1', '0', ' ')
+#define DRM_FORMAT_R12 fourcc_code('R', '1', '2', ' ')
 #define DRM_FORMAT_R16 fourcc_code('R', '1', '6', ' ')
 #define DRM_FORMAT_RG88 fourcc_code('R', 'G', '8', '8')
 #define DRM_FORMAT_GR88 fourcc_code('G', 'R', '8', '8')
@@ -70,6 +72,10 @@
 #define DRM_FORMAT_ABGR2101010 fourcc_code('A', 'B', '3', '0')
 #define DRM_FORMAT_RGBA1010102 fourcc_code('R', 'A', '3', '0')
 #define DRM_FORMAT_BGRA1010102 fourcc_code('B', 'A', '3', '0')
+#define DRM_FORMAT_XRGB16161616 fourcc_code('X', 'R', '4', '8')
+#define DRM_FORMAT_XBGR16161616 fourcc_code('X', 'B', '4', '8')
+#define DRM_FORMAT_ARGB16161616 fourcc_code('A', 'R', '4', '8')
+#define DRM_FORMAT_ABGR16161616 fourcc_code('A', 'B', '4', '8')
 #define DRM_FORMAT_XRGB16161616F fourcc_code('X', 'R', '4', 'H')
 #define DRM_FORMAT_XBGR16161616F fourcc_code('X', 'B', '4', 'H')
 #define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H')
@@ -117,6 +123,7 @@
 #define DRM_FORMAT_P010 fourcc_code('P', '0', '1', '0')
 #define DRM_FORMAT_P012 fourcc_code('P', '0', '1', '2')
 #define DRM_FORMAT_P016 fourcc_code('P', '0', '1', '6')
+#define DRM_FORMAT_P030 fourcc_code('P', '0', '3', '0')
 #define DRM_FORMAT_Q410 fourcc_code('Q', '4', '1', '0')
 #define DRM_FORMAT_Q401 fourcc_code('Q', '4', '0', '1')
 #define DRM_FORMAT_YUV410 fourcc_code('Y', 'U', 'V', '9')
@@ -141,6 +148,8 @@
 #define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
 #define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
 #define DRM_FORMAT_RESERVED ((1ULL << 56) - 1)
+#define fourcc_mod_get_vendor(modifier) (((modifier) >> 56) & 0xff)
+#define fourcc_mod_is_vendor(modifier,vendor) (fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_ ##vendor)
 #define fourcc_mod_code(vendor,val) ((((__u64) DRM_FORMAT_MOD_VENDOR_ ##vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
 #define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE
 #define DRM_FORMAT_MOD_INVALID fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
@@ -203,6 +212,15 @@
 #define AFBC_FORMAT_MOD_DB (1ULL << 10)
 #define AFBC_FORMAT_MOD_BCH (1ULL << 11)
 #define AFBC_FORMAT_MOD_USM (1ULL << 12)
+#define DRM_FORMAT_MOD_ARM_TYPE_AFRC 0x02
+#define DRM_FORMAT_MOD_ARM_AFRC(__afrc_mode) DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFRC, __afrc_mode)
+#define AFRC_FORMAT_MOD_CU_SIZE_MASK 0xf
+#define AFRC_FORMAT_MOD_CU_SIZE_16 (1ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_24 (2ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_32 (3ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_P0(__afrc_cu_size) (__afrc_cu_size)
+#define AFRC_FORMAT_MOD_CU_SIZE_P12(__afrc_cu_size) ((__afrc_cu_size) << 4)
+#define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8)
 #define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
 #define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1)
 #define __fourcc_mod_amlogic_layout_mask 0xff
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/drm_mode.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/drm_mode.h
index 643ae98..9a6a6d9 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/drm_mode.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/drm_mode.h
@@ -223,6 +223,7 @@
 #define DRM_MODE_CONNECTOR_DPI 17
 #define DRM_MODE_CONNECTOR_WRITEBACK 18
 #define DRM_MODE_CONNECTOR_SPI 19
+#define DRM_MODE_CONNECTOR_USB 20
 struct drm_mode_get_connector {
   __u64 encoders_ptr;
   __u64 modes_ptr;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
index c92d110..7f8d5fa 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/etnaviv_drm.h
@@ -53,6 +53,9 @@
 #define ETNAVIV_PARAM_GPU_NUM_CONSTANTS 0x19
 #define ETNAVIV_PARAM_GPU_NUM_VARYINGS 0x1a
 #define ETNAVIV_PARAM_SOFTPIN_START_ADDR 0x1b
+#define ETNAVIV_PARAM_GPU_PRODUCT_ID 0x1c
+#define ETNAVIV_PARAM_GPU_CUSTOMER_ID 0x1d
+#define ETNAVIV_PARAM_GPU_ECO_ID 0x1e
 #define ETNA_MAX_PIPES 4
 struct drm_etnaviv_param {
   __u32 pipe;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/i915_drm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/i915_drm.h
index f265d92..52bfad2 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/i915_drm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/i915_drm.h
@@ -217,6 +217,7 @@
 #define DRM_I915_QUERY 0x39
 #define DRM_I915_GEM_VM_CREATE 0x3a
 #define DRM_I915_GEM_VM_DESTROY 0x3b
+#define DRM_I915_GEM_CREATE_EXT 0x3c
 #define DRM_IOCTL_I915_INIT DRM_IOW(DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
 #define DRM_IOCTL_I915_FLUSH DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLUSH)
 #define DRM_IOCTL_I915_FLIP DRM_IO(DRM_COMMAND_BASE + DRM_I915_FLIP)
@@ -247,6 +248,7 @@
 #define DRM_IOCTL_I915_GEM_ENTERVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_ENTERVT)
 #define DRM_IOCTL_I915_GEM_LEAVEVT DRM_IO(DRM_COMMAND_BASE + DRM_I915_GEM_LEAVEVT)
 #define DRM_IOCTL_I915_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE, struct drm_i915_gem_create)
+#define DRM_IOCTL_I915_GEM_CREATE_EXT DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_CREATE_EXT, struct drm_i915_gem_create_ext)
 #define DRM_IOCTL_I915_GEM_PREAD DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
 #define DRM_IOCTL_I915_GEM_PWRITE DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
 #define DRM_IOCTL_I915_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
@@ -349,6 +351,7 @@
 #define I915_SCHEDULER_CAP_PREEMPTION (1ul << 2)
 #define I915_SCHEDULER_CAP_SEMAPHORES (1ul << 3)
 #define I915_SCHEDULER_CAP_ENGINE_BUSY_STATS (1ul << 4)
+#define I915_SCHEDULER_CAP_STATIC_PRIORITY_MAP (1ul << 5)
 #define I915_PARAM_HUC_STATUS 42
 #define I915_PARAM_HAS_EXEC_ASYNC 43
 #define I915_PARAM_HAS_EXEC_FENCE 44
@@ -363,6 +366,7 @@
 #define I915_PARAM_HAS_EXEC_SUBMIT_FENCE 53
 #define I915_PARAM_PERF_REVISION 54
 #define I915_PARAM_HAS_EXEC_TIMELINE_FENCES 55
+#define I915_PARAM_HAS_USERPTR_PROBE 56
 typedef struct drm_i915_getparam {
   __s32 param;
   int __user * value;
@@ -453,6 +457,7 @@
 #define I915_MMAP_OFFSET_WC 1
 #define I915_MMAP_OFFSET_WB 2
 #define I915_MMAP_OFFSET_UC 3
+#define I915_MMAP_OFFSET_FIXED 4
   __u64 extensions;
 };
 struct drm_i915_gem_set_domain {
@@ -590,11 +595,11 @@
   __u32 handle;
   __u32 busy;
 };
+struct drm_i915_gem_caching {
+  __u32 handle;
 #define I915_CACHING_NONE 0
 #define I915_CACHING_CACHED 1
 #define I915_CACHING_DISPLAY 2
-struct drm_i915_gem_caching {
-  __u32 handle;
   __u32 caching;
 };
 #define I915_TILING_NONE 0
@@ -736,6 +741,7 @@
 #define I915_CONTEXT_PARAM_ENGINES 0xa
 #define I915_CONTEXT_PARAM_PERSISTENCE 0xb
 #define I915_CONTEXT_PARAM_RINGSIZE 0xc
+#define I915_CONTEXT_PARAM_PROTECTED_CONTENT 0xd
   __u64 value;
 };
 struct drm_i915_gem_context_param_sseu {
@@ -769,10 +775,23 @@
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_ENGINES_BOND(name__,N__) struct { struct i915_user_extension base; struct i915_engine_class_instance master; __u16 virtual_index; __u16 num_bonds; __u64 flags; __u64 mbz64[4]; struct i915_engine_class_instance engines[N__]; \
 } __attribute__((packed)) name__
+struct i915_context_engines_parallel_submit {
+  struct i915_user_extension base;
+  __u16 engine_index;
+  __u16 width;
+  __u16 num_siblings;
+  __u16 mbz16;
+  __u64 flags;
+  __u64 mbz64[3];
+  struct i915_engine_class_instance engines[0];
+} __packed;
+#define I915_DEFINE_CONTEXT_ENGINES_PARALLEL_SUBMIT(name__,N__) struct { struct i915_user_extension base; __u16 engine_index; __u16 width; __u16 num_siblings; __u16 mbz16; __u64 flags; __u64 mbz64[3]; struct i915_engine_class_instance engines[N__]; \
+} __attribute__((packed)) name__
 struct i915_context_param_engines {
   __u64 extensions;
 #define I915_CONTEXT_ENGINES_EXT_LOAD_BALANCE 0
 #define I915_CONTEXT_ENGINES_EXT_BOND 1
+#define I915_CONTEXT_ENGINES_EXT_PARALLEL_SUBMIT 2
   struct i915_engine_class_instance engines[0];
 } __attribute__((packed));
 #define I915_DEFINE_CONTEXT_PARAM_ENGINES(name__,N__) struct { __u64 extensions; struct i915_engine_class_instance engines[N__]; \
@@ -782,20 +801,7 @@
   struct i915_user_extension base;
   struct drm_i915_gem_context_param param;
 };
-struct drm_i915_gem_context_create_ext_clone {
 #define I915_CONTEXT_CREATE_EXT_CLONE 1
-  struct i915_user_extension base;
-  __u32 clone_id;
-  __u32 flags;
-#define I915_CONTEXT_CLONE_ENGINES (1u << 0)
-#define I915_CONTEXT_CLONE_FLAGS (1u << 1)
-#define I915_CONTEXT_CLONE_SCHEDATTR (1u << 2)
-#define I915_CONTEXT_CLONE_SSEU (1u << 3)
-#define I915_CONTEXT_CLONE_TIMELINE (1u << 4)
-#define I915_CONTEXT_CLONE_VM (1u << 5)
-#define I915_CONTEXT_CLONE_UNKNOWN - (I915_CONTEXT_CLONE_VM << 1)
-  __u64 rsvd;
-};
 struct drm_i915_gem_context_destroy {
   __u32 ctx_id;
   __u32 pad;
@@ -823,6 +829,7 @@
   __u64 user_size;
   __u32 flags;
 #define I915_USERPTR_READ_ONLY 0x1
+#define I915_USERPTR_PROBE 0x2
 #define I915_USERPTR_UNSYNCHRONIZED 0x80000000
   __u32 handle;
 };
@@ -886,6 +893,7 @@
 #define DRM_I915_QUERY_TOPOLOGY_INFO 1
 #define DRM_I915_QUERY_ENGINE_INFO 2
 #define DRM_I915_QUERY_PERF_CONFIG 3
+#define DRM_I915_QUERY_MEMORY_REGIONS 4
   __s32 length;
   __u32 flags;
 #define DRM_I915_QUERY_PERF_CONFIG_LIST 1
@@ -913,10 +921,13 @@
   struct i915_engine_class_instance engine;
   __u32 rsvd0;
   __u64 flags;
+#define I915_ENGINE_INFO_HAS_LOGICAL_INSTANCE (1 << 0)
   __u64 capabilities;
 #define I915_VIDEO_CLASS_CAPABILITY_HEVC (1 << 0)
 #define I915_VIDEO_AND_ENHANCE_CLASS_CAPABILITY_SFC (1 << 1)
-  __u64 rsvd1[4];
+  __u16 logical_instance;
+  __u16 rsvd1[3];
+  __u64 rsvd2[3];
 };
 struct drm_i915_query_engine_info {
   __u32 num_engines;
@@ -932,6 +943,45 @@
   __u32 flags;
   __u8 data[];
 };
+enum drm_i915_gem_memory_class {
+  I915_MEMORY_CLASS_SYSTEM = 0,
+  I915_MEMORY_CLASS_DEVICE,
+};
+struct drm_i915_gem_memory_class_instance {
+  __u16 memory_class;
+  __u16 memory_instance;
+};
+struct drm_i915_memory_region_info {
+  struct drm_i915_gem_memory_class_instance region;
+  __u32 rsvd0;
+  __u64 probed_size;
+  __u64 unallocated_size;
+  __u64 rsvd1[8];
+};
+struct drm_i915_query_memory_regions {
+  __u32 num_regions;
+  __u32 rsvd[3];
+  struct drm_i915_memory_region_info regions[];
+};
+struct drm_i915_gem_create_ext {
+  __u64 size;
+  __u32 handle;
+  __u32 flags;
+#define I915_GEM_CREATE_EXT_MEMORY_REGIONS 0
+#define I915_GEM_CREATE_EXT_PROTECTED_CONTENT 1
+  __u64 extensions;
+};
+struct drm_i915_gem_create_ext_memory_regions {
+  struct i915_user_extension base;
+  __u32 pad;
+  __u32 num_regions;
+  __u64 regions;
+};
+struct drm_i915_gem_create_ext_protected_content {
+  struct i915_user_extension base;
+  __u32 flags;
+};
+#define I915_PROTECTED_CONTENT_DEFAULT_SESSION 0xf
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/mga_drm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/mga_drm.h
index 4959502..dc62961 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/mga_drm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/mga_drm.h
@@ -175,7 +175,7 @@
     MGA_CLEANUP_DMA = 0x02
   } func;
   unsigned long sarea_priv_offset;
-  int chipset;
+  __struct_group(, always32bit,, int chipset;
   int sgram;
   unsigned int maccess;
   unsigned int fb_cpp;
@@ -185,6 +185,7 @@
   unsigned int depth_offset, depth_pitch;
   unsigned int texture_offset[MGA_NR_TEX_HEAPS];
   unsigned int texture_size[MGA_NR_TEX_HEAPS];
+ );
   unsigned long fb_offset;
   unsigned long mmio_offset;
   unsigned long status_offset;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/msm_drm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/msm_drm.h
index fcfcc20..b4ba1d0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/msm_drm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/msm_drm.h
@@ -39,9 +39,11 @@
 #define MSM_PARAM_MAX_FREQ 0x04
 #define MSM_PARAM_TIMESTAMP 0x05
 #define MSM_PARAM_GMEM_BASE 0x06
-#define MSM_PARAM_NR_RINGS 0x07
+#define MSM_PARAM_PRIORITIES 0x07
 #define MSM_PARAM_PP_PGTABLE 0x08
 #define MSM_PARAM_FAULTS 0x09
+#define MSM_PARAM_SUSPENDS 0x0a
+#define MSM_PARAM_NR_RINGS MSM_PARAM_PRIORITIES
 struct drm_msm_param {
   __u32 pipe;
   __u32 param;
@@ -53,7 +55,8 @@
 #define MSM_BO_CACHED 0x00010000
 #define MSM_BO_WC 0x00020000
 #define MSM_BO_UNCACHED 0x00040000
-#define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHED | MSM_BO_WC | MSM_BO_UNCACHED)
+#define MSM_BO_CACHED_COHERENT 0x080000
+#define MSM_BO_FLAGS (MSM_BO_SCANOUT | MSM_BO_GPU_READONLY | MSM_BO_CACHE_MASK)
 struct drm_msm_gem_new {
   __u64 size;
   __u32 flags;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
index f8b8aa1..1f4473d 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/panfrost_drm.h
@@ -110,6 +110,7 @@
   DRM_PANFROST_PARAM_JS_FEATURES15,
   DRM_PANFROST_PARAM_NR_CORE_GROUPS,
   DRM_PANFROST_PARAM_THREAD_TLS_ALLOC,
+  DRM_PANFROST_PARAM_AFBC_FEATURES,
 };
 struct drm_panfrost_get_param {
   __u32 param;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/tegra_drm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
index 5244a27..5e90635 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/tegra_drm.h
@@ -163,6 +163,104 @@
 #define DRM_IOCTL_TEGRA_GEM_GET_TILING DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_TILING, struct drm_tegra_gem_get_tiling)
 #define DRM_IOCTL_TEGRA_GEM_SET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_SET_FLAGS, struct drm_tegra_gem_set_flags)
 #define DRM_IOCTL_TEGRA_GEM_GET_FLAGS DRM_IOWR(DRM_COMMAND_BASE + DRM_TEGRA_GEM_GET_FLAGS, struct drm_tegra_gem_get_flags)
+#define DRM_TEGRA_CHANNEL_CAP_CACHE_COHERENT (1 << 0)
+struct drm_tegra_channel_open {
+  __u32 host1x_class;
+  __u32 flags;
+  __u32 context;
+  __u32 version;
+  __u32 capabilities;
+  __u32 padding;
+};
+struct drm_tegra_channel_close {
+  __u32 context;
+  __u32 padding;
+};
+#define DRM_TEGRA_CHANNEL_MAP_READ (1 << 0)
+#define DRM_TEGRA_CHANNEL_MAP_WRITE (1 << 1)
+#define DRM_TEGRA_CHANNEL_MAP_READ_WRITE (DRM_TEGRA_CHANNEL_MAP_READ | DRM_TEGRA_CHANNEL_MAP_WRITE)
+struct drm_tegra_channel_map {
+  __u32 context;
+  __u32 handle;
+  __u32 flags;
+  __u32 mapping;
+};
+struct drm_tegra_channel_unmap {
+  __u32 context;
+  __u32 mapping;
+};
+#define DRM_TEGRA_SUBMIT_RELOC_SECTOR_LAYOUT (1 << 0)
+struct drm_tegra_submit_buf {
+  __u32 mapping;
+  __u32 flags;
+  struct {
+    __u64 target_offset;
+    __u32 gather_offset_words;
+    __u32 shift;
+  } reloc;
+};
+#define DRM_TEGRA_SUBMIT_CMD_GATHER_UPTR 0
+#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT 1
+#define DRM_TEGRA_SUBMIT_CMD_WAIT_SYNCPT_RELATIVE 2
+struct drm_tegra_submit_cmd_gather_uptr {
+  __u32 words;
+  __u32 reserved[3];
+};
+struct drm_tegra_submit_cmd_wait_syncpt {
+  __u32 id;
+  __u32 value;
+  __u32 reserved[2];
+};
+struct drm_tegra_submit_cmd {
+  __u32 type;
+  __u32 flags;
+  union {
+    struct drm_tegra_submit_cmd_gather_uptr gather_uptr;
+    struct drm_tegra_submit_cmd_wait_syncpt wait_syncpt;
+    __u32 reserved[4];
+  };
+};
+struct drm_tegra_submit_syncpt {
+  __u32 id;
+  __u32 flags;
+  __u32 increments;
+  __u32 value;
+};
+struct drm_tegra_channel_submit {
+  __u32 context;
+  __u32 num_bufs;
+  __u32 num_cmds;
+  __u32 gather_data_words;
+  __u64 bufs_ptr;
+  __u64 cmds_ptr;
+  __u64 gather_data_ptr;
+  __u32 syncobj_in;
+  __u32 syncobj_out;
+  struct drm_tegra_submit_syncpt syncpt;
+};
+struct drm_tegra_syncpoint_allocate {
+  __u32 id;
+  __u32 padding;
+};
+struct drm_tegra_syncpoint_free {
+  __u32 id;
+  __u32 padding;
+};
+struct drm_tegra_syncpoint_wait {
+  __s64 timeout_ns;
+  __u32 id;
+  __u32 threshold;
+  __u32 value;
+  __u32 padding;
+};
+#define DRM_IOCTL_TEGRA_CHANNEL_OPEN DRM_IOWR(DRM_COMMAND_BASE + 0x10, struct drm_tegra_channel_open)
+#define DRM_IOCTL_TEGRA_CHANNEL_CLOSE DRM_IOWR(DRM_COMMAND_BASE + 0x11, struct drm_tegra_channel_close)
+#define DRM_IOCTL_TEGRA_CHANNEL_MAP DRM_IOWR(DRM_COMMAND_BASE + 0x12, struct drm_tegra_channel_map)
+#define DRM_IOCTL_TEGRA_CHANNEL_UNMAP DRM_IOWR(DRM_COMMAND_BASE + 0x13, struct drm_tegra_channel_unmap)
+#define DRM_IOCTL_TEGRA_CHANNEL_SUBMIT DRM_IOWR(DRM_COMMAND_BASE + 0x14, struct drm_tegra_channel_submit)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_ALLOCATE DRM_IOWR(DRM_COMMAND_BASE + 0x20, struct drm_tegra_syncpoint_allocate)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_FREE DRM_IOWR(DRM_COMMAND_BASE + 0x21, struct drm_tegra_syncpoint_free)
+#define DRM_IOCTL_TEGRA_SYNCPOINT_WAIT DRM_IOWR(DRM_COMMAND_BASE + 0x22, struct drm_tegra_syncpoint_wait)
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/v3d_drm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
index cdc2cf5..5887678 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/v3d_drm.h
@@ -30,6 +30,9 @@
 #define DRM_V3D_GET_BO_OFFSET 0x05
 #define DRM_V3D_SUBMIT_TFU 0x06
 #define DRM_V3D_SUBMIT_CSD 0x07
+#define DRM_V3D_PERFMON_CREATE 0x08
+#define DRM_V3D_PERFMON_DESTROY 0x09
+#define DRM_V3D_PERFMON_GET_VALUES 0x0a
 #define DRM_IOCTL_V3D_SUBMIT_CL DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CL, struct drm_v3d_submit_cl)
 #define DRM_IOCTL_V3D_WAIT_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_WAIT_BO, struct drm_v3d_wait_bo)
 #define DRM_IOCTL_V3D_CREATE_BO DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_CREATE_BO, struct drm_v3d_create_bo)
@@ -38,7 +41,39 @@
 #define DRM_IOCTL_V3D_GET_BO_OFFSET DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_GET_BO_OFFSET, struct drm_v3d_get_bo_offset)
 #define DRM_IOCTL_V3D_SUBMIT_TFU DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_TFU, struct drm_v3d_submit_tfu)
 #define DRM_IOCTL_V3D_SUBMIT_CSD DRM_IOW(DRM_COMMAND_BASE + DRM_V3D_SUBMIT_CSD, struct drm_v3d_submit_csd)
+#define DRM_IOCTL_V3D_PERFMON_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_CREATE, struct drm_v3d_perfmon_create)
+#define DRM_IOCTL_V3D_PERFMON_DESTROY DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_DESTROY, struct drm_v3d_perfmon_destroy)
+#define DRM_IOCTL_V3D_PERFMON_GET_VALUES DRM_IOWR(DRM_COMMAND_BASE + DRM_V3D_PERFMON_GET_VALUES, struct drm_v3d_perfmon_get_values)
 #define DRM_V3D_SUBMIT_CL_FLUSH_CACHE 0x01
+#define DRM_V3D_SUBMIT_EXTENSION 0x02
+struct drm_v3d_extension {
+  __u64 next;
+  __u32 id;
+#define DRM_V3D_EXT_ID_MULTI_SYNC 0x01
+  __u32 flags;
+};
+struct drm_v3d_sem {
+  __u32 handle;
+  __u32 flags;
+  __u64 point;
+  __u64 mbz[2];
+};
+enum v3d_queue {
+  V3D_BIN,
+  V3D_RENDER,
+  V3D_TFU,
+  V3D_CSD,
+  V3D_CACHE_CLEAN,
+};
+struct drm_v3d_multi_sync {
+  struct drm_v3d_extension base;
+  __u64 in_syncs;
+  __u64 out_syncs;
+  __u32 in_sync_count;
+  __u32 out_sync_count;
+  __u32 wait_stage;
+  __u32 pad;
+};
 struct drm_v3d_submit_cl {
   __u32 bcl_start;
   __u32 bcl_end;
@@ -53,6 +88,9 @@
   __u64 bo_handles;
   __u32 bo_handle_count;
   __u32 flags;
+  __u32 perfmon_id;
+  __u32 pad;
+  __u64 extensions;
 };
 struct drm_v3d_wait_bo {
   __u32 handle;
@@ -81,6 +119,8 @@
   DRM_V3D_PARAM_SUPPORTS_TFU,
   DRM_V3D_PARAM_SUPPORTS_CSD,
   DRM_V3D_PARAM_SUPPORTS_CACHE_FLUSH,
+  DRM_V3D_PARAM_SUPPORTS_PERFMON,
+  DRM_V3D_PARAM_SUPPORTS_MULTISYNC_EXT,
 };
 struct drm_v3d_get_param {
   __u32 param;
@@ -103,6 +143,8 @@
   __u32 bo_handles[4];
   __u32 in_sync;
   __u32 out_sync;
+  __u32 flags;
+  __u64 extensions;
 };
 struct drm_v3d_submit_csd {
   __u32 cfg[7];
@@ -111,6 +153,114 @@
   __u32 bo_handle_count;
   __u32 in_sync;
   __u32 out_sync;
+  __u32 perfmon_id;
+  __u64 extensions;
+  __u32 flags;
+  __u32 pad;
+};
+enum {
+  V3D_PERFCNT_FEP_VALID_PRIMTS_NO_PIXELS,
+  V3D_PERFCNT_FEP_VALID_PRIMS,
+  V3D_PERFCNT_FEP_EZ_NFCLIP_QUADS,
+  V3D_PERFCNT_FEP_VALID_QUADS,
+  V3D_PERFCNT_TLB_QUADS_STENCIL_FAIL,
+  V3D_PERFCNT_TLB_QUADS_STENCILZ_FAIL,
+  V3D_PERFCNT_TLB_QUADS_STENCILZ_PASS,
+  V3D_PERFCNT_TLB_QUADS_ZERO_COV,
+  V3D_PERFCNT_TLB_QUADS_NONZERO_COV,
+  V3D_PERFCNT_TLB_QUADS_WRITTEN,
+  V3D_PERFCNT_PTB_PRIM_VIEWPOINT_DISCARD,
+  V3D_PERFCNT_PTB_PRIM_CLIP,
+  V3D_PERFCNT_PTB_PRIM_REV,
+  V3D_PERFCNT_QPU_IDLE_CYCLES,
+  V3D_PERFCNT_QPU_ACTIVE_CYCLES_VERTEX_COORD_USER,
+  V3D_PERFCNT_QPU_ACTIVE_CYCLES_FRAG,
+  V3D_PERFCNT_QPU_CYCLES_VALID_INSTR,
+  V3D_PERFCNT_QPU_CYCLES_TMU_STALL,
+  V3D_PERFCNT_QPU_CYCLES_SCOREBOARD_STALL,
+  V3D_PERFCNT_QPU_CYCLES_VARYINGS_STALL,
+  V3D_PERFCNT_QPU_IC_HIT,
+  V3D_PERFCNT_QPU_IC_MISS,
+  V3D_PERFCNT_QPU_UC_HIT,
+  V3D_PERFCNT_QPU_UC_MISS,
+  V3D_PERFCNT_TMU_TCACHE_ACCESS,
+  V3D_PERFCNT_TMU_TCACHE_MISS,
+  V3D_PERFCNT_VPM_VDW_STALL,
+  V3D_PERFCNT_VPM_VCD_STALL,
+  V3D_PERFCNT_BIN_ACTIVE,
+  V3D_PERFCNT_RDR_ACTIVE,
+  V3D_PERFCNT_L2T_HITS,
+  V3D_PERFCNT_L2T_MISSES,
+  V3D_PERFCNT_CYCLE_COUNT,
+  V3D_PERFCNT_QPU_CYCLES_STALLED_VERTEX_COORD_USER,
+  V3D_PERFCNT_QPU_CYCLES_STALLED_FRAGMENT,
+  V3D_PERFCNT_PTB_PRIMS_BINNED,
+  V3D_PERFCNT_AXI_WRITES_WATCH_0,
+  V3D_PERFCNT_AXI_READS_WATCH_0,
+  V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_0,
+  V3D_PERFCNT_AXI_READ_STALLS_WATCH_0,
+  V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_0,
+  V3D_PERFCNT_AXI_READ_BYTES_WATCH_0,
+  V3D_PERFCNT_AXI_WRITES_WATCH_1,
+  V3D_PERFCNT_AXI_READS_WATCH_1,
+  V3D_PERFCNT_AXI_WRITE_STALLS_WATCH_1,
+  V3D_PERFCNT_AXI_READ_STALLS_WATCH_1,
+  V3D_PERFCNT_AXI_WRITE_BYTES_WATCH_1,
+  V3D_PERFCNT_AXI_READ_BYTES_WATCH_1,
+  V3D_PERFCNT_TLB_PARTIAL_QUADS,
+  V3D_PERFCNT_TMU_CONFIG_ACCESSES,
+  V3D_PERFCNT_L2T_NO_ID_STALL,
+  V3D_PERFCNT_L2T_COM_QUE_STALL,
+  V3D_PERFCNT_L2T_TMU_WRITES,
+  V3D_PERFCNT_TMU_ACTIVE_CYCLES,
+  V3D_PERFCNT_TMU_STALLED_CYCLES,
+  V3D_PERFCNT_CLE_ACTIVE,
+  V3D_PERFCNT_L2T_TMU_READS,
+  V3D_PERFCNT_L2T_CLE_READS,
+  V3D_PERFCNT_L2T_VCD_READS,
+  V3D_PERFCNT_L2T_TMUCFG_READS,
+  V3D_PERFCNT_L2T_SLC0_READS,
+  V3D_PERFCNT_L2T_SLC1_READS,
+  V3D_PERFCNT_L2T_SLC2_READS,
+  V3D_PERFCNT_L2T_TMU_W_MISSES,
+  V3D_PERFCNT_L2T_TMU_R_MISSES,
+  V3D_PERFCNT_L2T_CLE_MISSES,
+  V3D_PERFCNT_L2T_VCD_MISSES,
+  V3D_PERFCNT_L2T_TMUCFG_MISSES,
+  V3D_PERFCNT_L2T_SLC0_MISSES,
+  V3D_PERFCNT_L2T_SLC1_MISSES,
+  V3D_PERFCNT_L2T_SLC2_MISSES,
+  V3D_PERFCNT_CORE_MEM_WRITES,
+  V3D_PERFCNT_L2T_MEM_WRITES,
+  V3D_PERFCNT_PTB_MEM_WRITES,
+  V3D_PERFCNT_TLB_MEM_WRITES,
+  V3D_PERFCNT_CORE_MEM_READS,
+  V3D_PERFCNT_L2T_MEM_READS,
+  V3D_PERFCNT_PTB_MEM_READS,
+  V3D_PERFCNT_PSE_MEM_READS,
+  V3D_PERFCNT_TLB_MEM_READS,
+  V3D_PERFCNT_GMP_MEM_READS,
+  V3D_PERFCNT_PTB_W_MEM_WORDS,
+  V3D_PERFCNT_TLB_W_MEM_WORDS,
+  V3D_PERFCNT_PSE_R_MEM_WORDS,
+  V3D_PERFCNT_TLB_R_MEM_WORDS,
+  V3D_PERFCNT_TMU_MRU_HITS,
+  V3D_PERFCNT_COMPUTE_ACTIVE,
+  V3D_PERFCNT_NUM,
+};
+#define DRM_V3D_MAX_PERF_COUNTERS 32
+struct drm_v3d_perfmon_create {
+  __u32 id;
+  __u32 ncounters;
+  __u8 counters[DRM_V3D_MAX_PERF_COUNTERS];
+};
+struct drm_v3d_perfmon_destroy {
+  __u32 id;
+};
+struct drm_v3d_perfmon_get_values {
+  __u32 id;
+  __u32 pad;
+  __u64 values_ptr;
 };
 #ifdef __cplusplus
 }
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
index 842c1fd..342282d 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/virtgpu_drm.h
@@ -32,9 +32,11 @@
 #define DRM_VIRTGPU_WAIT 0x08
 #define DRM_VIRTGPU_GET_CAPS 0x09
 #define DRM_VIRTGPU_RESOURCE_CREATE_BLOB 0x0a
+#define DRM_VIRTGPU_CONTEXT_INIT 0x0b
 #define VIRTGPU_EXECBUF_FENCE_FD_IN 0x01
 #define VIRTGPU_EXECBUF_FENCE_FD_OUT 0x02
-#define VIRTGPU_EXECBUF_FLAGS (VIRTGPU_EXECBUF_FENCE_FD_IN | VIRTGPU_EXECBUF_FENCE_FD_OUT | 0)
+#define VIRTGPU_EXECBUF_RING_IDX 0x04
+#define VIRTGPU_EXECBUF_FLAGS (VIRTGPU_EXECBUF_FENCE_FD_IN | VIRTGPU_EXECBUF_FENCE_FD_OUT | VIRTGPU_EXECBUF_RING_IDX | 0)
 struct drm_virtgpu_map {
   __u64 offset;
   __u32 handle;
@@ -47,12 +49,16 @@
   __u64 bo_handles;
   __u32 num_bo_handles;
   __s32 fence_fd;
+  __u32 ring_idx;
+  __u32 pad;
 };
 #define VIRTGPU_PARAM_3D_FEATURES 1
 #define VIRTGPU_PARAM_CAPSET_QUERY_FIX 2
 #define VIRTGPU_PARAM_RESOURCE_BLOB 3
 #define VIRTGPU_PARAM_HOST_VISIBLE 4
 #define VIRTGPU_PARAM_CROSS_DEVICE 5
+#define VIRTGPU_PARAM_CONTEXT_INIT 6
+#define VIRTGPU_PARAM_SUPPORTED_CAPSET_IDs 7
 struct drm_virtgpu_getparam {
   __u64 param;
   __u64 value;
@@ -132,6 +138,19 @@
   __u64 cmd;
   __u64 blob_id;
 };
+#define VIRTGPU_CONTEXT_PARAM_CAPSET_ID 0x0001
+#define VIRTGPU_CONTEXT_PARAM_NUM_RINGS 0x0002
+#define VIRTGPU_CONTEXT_PARAM_POLL_RINGS_MASK 0x0003
+struct drm_virtgpu_context_set_param {
+  __u64 param;
+  __u64 value;
+};
+struct drm_virtgpu_context_init {
+  __u32 num_params;
+  __u32 pad;
+  __u64 ctx_set_params;
+};
+#define VIRTGPU_EVENT_FENCE_SIGNALED 0x90000000
 #define DRM_IOCTL_VIRTGPU_MAP DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_MAP, struct drm_virtgpu_map)
 #define DRM_IOCTL_VIRTGPU_EXECBUFFER DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_EXECBUFFER, struct drm_virtgpu_execbuffer)
 #define DRM_IOCTL_VIRTGPU_GETPARAM DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GETPARAM, struct drm_virtgpu_getparam)
@@ -142,6 +161,7 @@
 #define DRM_IOCTL_VIRTGPU_WAIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_WAIT, struct drm_virtgpu_3d_wait)
 #define DRM_IOCTL_VIRTGPU_GET_CAPS DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_GET_CAPS, struct drm_virtgpu_get_caps)
 #define DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_RESOURCE_CREATE_BLOB, struct drm_virtgpu_resource_create_blob)
+#define DRM_IOCTL_VIRTGPU_CONTEXT_INIT DRM_IOWR(DRM_COMMAND_BASE + DRM_VIRTGPU_CONTEXT_INIT, struct drm_virtgpu_context_init)
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
index 982b64f..395743b 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/drm/vmwgfx_drm.h
@@ -56,6 +56,9 @@
 #define DRM_VMW_GB_SURFACE_CREATE_EXT 27
 #define DRM_VMW_GB_SURFACE_REF_EXT 28
 #define DRM_VMW_MSG 29
+#define DRM_VMW_MKSSTAT_RESET 30
+#define DRM_VMW_MKSSTAT_ADD 31
+#define DRM_VMW_MKSSTAT_REMOVE 32
 #define DRM_VMW_PARAM_NUM_STREAMS 0
 #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1
 #define DRM_VMW_PARAM_3D 2
@@ -72,6 +75,7 @@
 #define DRM_VMW_PARAM_HW_CAPS2 13
 #define DRM_VMW_PARAM_SM4_1 14
 #define DRM_VMW_PARAM_SM5 15
+#define DRM_VMW_PARAM_GL43 16
 enum drm_vmw_handle_type {
   DRM_VMW_HANDLE_LEGACY = 0,
   DRM_VMW_HANDLE_PRIME = 1
@@ -360,6 +364,19 @@
   __s32 send_only;
   __u32 receive_len;
 };
+struct drm_vmw_mksstat_add_arg {
+  __u64 stat;
+  __u64 info;
+  __u64 strs;
+  __u64 stat_len;
+  __u64 info_len;
+  __u64 strs_len;
+  __u64 description;
+  __u64 id;
+};
+struct drm_vmw_mksstat_remove_arg {
+  __u64 id;
+};
 #ifdef __cplusplus
 }
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/acrn.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/acrn.h
index 74b719a..c991ac0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/acrn.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/acrn.h
@@ -178,6 +178,7 @@
   } intx;
 };
 #define ACRN_PTDEV_QUIRK_ASSIGN (1U << 0)
+#define ACRN_MMIODEV_RES_NUM 3
 #define ACRN_PCI_NUM_BARS 6
 struct acrn_pcidev {
   __u32 type;
@@ -187,6 +188,29 @@
   __u8 intr_pin;
   __u32 bar[ACRN_PCI_NUM_BARS];
 };
+struct acrn_mmiodev {
+  __u8 name[8];
+  struct {
+    __u64 user_vm_pa;
+    __u64 service_vm_pa;
+    __u64 size;
+    __u64 mem_type;
+  } res[ACRN_MMIODEV_RES_NUM];
+};
+struct acrn_vdev {
+  union {
+    __u64 value;
+    struct {
+      __le16 vendor;
+      __le16 device;
+      __le32 legacy_id;
+    } fields;
+  } id;
+  __u64 slot;
+  __u32 io_addr[ACRN_PCI_NUM_BARS];
+  __u32 io_size[ACRN_PCI_NUM_BARS];
+  __u8 args[128];
+};
 struct acrn_msi_entry {
   __u64 msi_addr;
   __u64 msi_data;
@@ -257,6 +281,10 @@
 #define ACRN_IOCTL_RESET_PTDEV_INTR _IOW(ACRN_IOCTL_TYPE, 0x54, struct acrn_ptdev_irq)
 #define ACRN_IOCTL_ASSIGN_PCIDEV _IOW(ACRN_IOCTL_TYPE, 0x55, struct acrn_pcidev)
 #define ACRN_IOCTL_DEASSIGN_PCIDEV _IOW(ACRN_IOCTL_TYPE, 0x56, struct acrn_pcidev)
+#define ACRN_IOCTL_ASSIGN_MMIODEV _IOW(ACRN_IOCTL_TYPE, 0x57, struct acrn_mmiodev)
+#define ACRN_IOCTL_DEASSIGN_MMIODEV _IOW(ACRN_IOCTL_TYPE, 0x58, struct acrn_mmiodev)
+#define ACRN_IOCTL_CREATE_VDEV _IOW(ACRN_IOCTL_TYPE, 0x59, struct acrn_vdev)
+#define ACRN_IOCTL_DESTROY_VDEV _IOW(ACRN_IOCTL_TYPE, 0x5A, struct acrn_vdev)
 #define ACRN_IOCTL_PM_GET_CPU_STATE _IOWR(ACRN_IOCTL_TYPE, 0x60, __u64)
 #define ACRN_IOCTL_IOEVENTFD _IOW(ACRN_IOCTL_TYPE, 0x70, struct acrn_ioeventfd)
 #define ACRN_IOCTL_IRQFD _IOW(ACRN_IOCTL_TYPE, 0x71, struct acrn_irqfd)
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/amt.h
similarity index 69%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/amt.h
index bb45c3d..049006d 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/amt.h
@@ -16,14 +16,25 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_AMT_H_
+#define _UAPI_AMT_H_
+enum ifla_amt_mode {
+  AMT_MODE_GATEWAY = 0,
+  AMT_MODE_RELAY,
+  __AMT_MODE_MAX,
 };
+#define AMT_MODE_MAX (__AMT_MODE_MAX - 1)
+enum {
+  IFLA_AMT_UNSPEC,
+  IFLA_AMT_MODE,
+  IFLA_AMT_RELAY_PORT,
+  IFLA_AMT_GATEWAY_PORT,
+  IFLA_AMT_LINK,
+  IFLA_AMT_LOCAL_IP,
+  IFLA_AMT_REMOTE_IP,
+  IFLA_AMT_DISCOVERY_IP,
+  IFLA_AMT_MAX_TUNNELS,
+  __IFLA_AMT_MAX,
+};
+#define IFLA_AMT_MAX (__IFLA_AMT_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/android/binder.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/android/binder.h
index 5416344..ded1756 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/android/binder.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/android/binder.h
@@ -117,6 +117,16 @@
   __u32 reserved2;
   __u32 reserved3;
 };
+struct binder_freeze_info {
+  __u32 pid;
+  __u32 enable;
+  __u32 timeout_ms;
+};
+struct binder_frozen_status_info {
+  __u32 pid;
+  __u32 sync_recv;
+  __u32 async_recv;
+};
 #define BINDER_WRITE_READ _IOWR('b', 1, struct binder_write_read)
 #define BINDER_SET_IDLE_TIMEOUT _IOW('b', 3, __s64)
 #define BINDER_SET_MAX_THREADS _IOW('b', 5, __u32)
@@ -127,6 +137,9 @@
 #define BINDER_GET_NODE_DEBUG_INFO _IOWR('b', 11, struct binder_node_debug_info)
 #define BINDER_GET_NODE_INFO_FOR_REF _IOWR('b', 12, struct binder_node_info_for_ref)
 #define BINDER_SET_CONTEXT_MGR_EXT _IOW('b', 13, struct flat_binder_object)
+#define BINDER_FREEZE _IOW('b', 14, struct binder_freeze_info)
+#define BINDER_GET_FROZEN_INFO _IOWR('b', 15, struct binder_frozen_status_info)
+#define BINDER_ENABLE_ONEWAY_SPAM_DETECTION _IOW('b', 16, __u32)
 enum transaction_flags {
   TF_ONE_WAY = 0x01,
   TF_ROOT_OBJECT = 0x04,
@@ -199,6 +212,8 @@
   BR_DEAD_BINDER = _IOR('r', 15, binder_uintptr_t),
   BR_CLEAR_DEATH_NOTIFICATION_DONE = _IOR('r', 16, binder_uintptr_t),
   BR_FAILED_REPLY = _IO('r', 17),
+  BR_FROZEN_REPLY = _IO('r', 18),
+  BR_ONEWAY_SPAM_SUSPECT = _IO('r', 19),
 };
 enum binder_driver_command_protocol {
   BC_TRANSACTION = _IOW('c', 0, struct binder_transaction_data),
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/audit.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/audit.h
index 2c18e07..30a94af 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/audit.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/audit.h
@@ -83,6 +83,10 @@
 #define AUDIT_TIME_ADJNTPVAL 1333
 #define AUDIT_BPF 1334
 #define AUDIT_EVENT_LISTENER 1335
+#define AUDIT_URINGOP 1336
+#define AUDIT_OPENAT2 1337
+#define AUDIT_DM_CTRL 1338
+#define AUDIT_DM_EVENT 1339
 #define AUDIT_AVC 1400
 #define AUDIT_SELINUX_ERR 1401
 #define AUDIT_AVC_PATH 1402
@@ -126,7 +130,8 @@
 #define AUDIT_FILTER_EXCLUDE 0x05
 #define AUDIT_FILTER_TYPE AUDIT_FILTER_EXCLUDE
 #define AUDIT_FILTER_FS 0x06
-#define AUDIT_NR_FILTERS 7
+#define AUDIT_FILTER_URING_EXIT 0x07
+#define AUDIT_NR_FILTERS 8
 #define AUDIT_FILTER_PREPEND 0x10
 #define AUDIT_NEVER 0
 #define AUDIT_POSSIBLE 1
@@ -372,6 +377,6 @@
   __u32 values[AUDIT_MAX_FIELDS];
   __u32 fieldflags[AUDIT_MAX_FIELDS];
   __u32 buflen;
-  char buf[0];
+  char buf[];
 };
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/auxvec.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/auxvec.h
index e8c2336..c80c170 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/auxvec.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/auxvec.h
@@ -42,4 +42,7 @@
 #define AT_RANDOM 25
 #define AT_HWCAP2 26
 #define AT_EXECFN 31
+#ifndef AT_MINSIGSTKSZ
+#define AT_MINSIGSTKSZ 51
+#endif
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/bcache.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/bcache.h
deleted file mode 100644
index 25b6987..0000000
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/bcache.h
+++ /dev/null
@@ -1,221 +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_BCACHE_H
-#define _LINUX_BCACHE_H
-#include <linux/types.h>
-#define BITMASK(name,type,field,offset,size) static inline __u64 name(const type * k) \
-{ return(k->field >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(type * k, __u64 v) \
-{ k->field &= ~(~(~0ULL << size) << offset); k->field |= (v & ~(~0ULL << size)) << offset; \
-}
-struct bkey {
-  __u64 high;
-  __u64 low;
-  __u64 ptr[];
-};
-#define KEY_FIELD(name,field,offset,size) BITMASK(name, struct bkey, field, offset, size)
-#define PTR_FIELD(name,offset,size) static inline __u64 name(const struct bkey * k, unsigned int i) \
-{ return(k->ptr[i] >> offset) & ~(~0ULL << size); } static inline void SET_ ##name(struct bkey * k, unsigned int i, __u64 v) \
-{ k->ptr[i] &= ~(~(~0ULL << size) << offset); k->ptr[i] |= (v & ~(~0ULL << size)) << offset; \
-}
-#define KEY_SIZE_BITS 16
-#define KEY_MAX_U64S 8
-#define KEY(inode,offset,size) \
-((struct bkey) {.high = (1ULL << 63) | ((__u64) (size) << 20) | (inode),.low = (offset) \
-})
-#define ZERO_KEY KEY(0, 0, 0)
-#define MAX_KEY_INODE (~(~0 << 20))
-#define MAX_KEY_OFFSET (~0ULL >> 1)
-#define MAX_KEY KEY(MAX_KEY_INODE, MAX_KEY_OFFSET, 0)
-#define KEY_START(k) (KEY_OFFSET(k) - KEY_SIZE(k))
-#define START_KEY(k) KEY(KEY_INODE(k), KEY_START(k), 0)
-#define PTR_DEV_BITS 12
-#define PTR_CHECK_DEV ((1 << PTR_DEV_BITS) - 1)
-#define MAKE_PTR(gen,offset,dev) ((((__u64) dev) << 51) | ((__u64) offset) << 8 | gen)
-#define bkey_copy(_dest,_src) memcpy(_dest, _src, bkey_bytes(_src))
-#define BKEY_PAD 8
-#define BKEY_PADDED(key) union { struct bkey key; __u64 key ##_pad[BKEY_PAD]; }
-#define BCACHE_SB_VERSION_CDEV 0
-#define BCACHE_SB_VERSION_BDEV 1
-#define BCACHE_SB_VERSION_CDEV_WITH_UUID 3
-#define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4
-#define BCACHE_SB_VERSION_CDEV_WITH_FEATURES 5
-#define BCACHE_SB_VERSION_BDEV_WITH_FEATURES 6
-#define BCACHE_SB_MAX_VERSION 6
-#define SB_SECTOR 8
-#define SB_OFFSET (SB_SECTOR << SECTOR_SHIFT)
-#define SB_SIZE 4096
-#define SB_LABEL_SIZE 32
-#define SB_JOURNAL_BUCKETS 256U
-#define MAX_CACHES_PER_SET 8
-#define BDEV_DATA_START_DEFAULT 16
-struct cache_sb_disk {
-  __le64 csum;
-  __le64 offset;
-  __le64 version;
-  __u8 magic[16];
-  __u8 uuid[16];
-  union {
-    __u8 set_uuid[16];
-    __le64 set_magic;
-  };
-  __u8 label[SB_LABEL_SIZE];
-  __le64 flags;
-  __le64 seq;
-  __le64 feature_compat;
-  __le64 feature_incompat;
-  __le64 feature_ro_compat;
-  __le64 pad[5];
-  union {
-    struct {
-      __le64 nbuckets;
-      __le16 block_size;
-      __le16 bucket_size;
-      __le16 nr_in_set;
-      __le16 nr_this_dev;
-    };
-    struct {
-      __le64 data_offset;
-    };
-  };
-  __le32 last_mount;
-  __le16 first_bucket;
-  union {
-    __le16 njournal_buckets;
-    __le16 keys;
-  };
-  __le64 d[SB_JOURNAL_BUCKETS];
-  __le16 obso_bucket_size_hi;
-};
-struct cache_sb {
-  __u64 offset;
-  __u64 version;
-  __u8 magic[16];
-  __u8 uuid[16];
-  union {
-    __u8 set_uuid[16];
-    __u64 set_magic;
-  };
-  __u8 label[SB_LABEL_SIZE];
-  __u64 flags;
-  __u64 seq;
-  __u64 feature_compat;
-  __u64 feature_incompat;
-  __u64 feature_ro_compat;
-  union {
-    struct {
-      __u64 nbuckets;
-      __u16 block_size;
-      __u16 nr_in_set;
-      __u16 nr_this_dev;
-      __u32 bucket_size;
-    };
-    struct {
-      __u64 data_offset;
-    };
-  };
-  __u32 last_mount;
-  __u16 first_bucket;
-  union {
-    __u16 njournal_buckets;
-    __u16 keys;
-  };
-  __u64 d[SB_JOURNAL_BUCKETS];
-};
-#define CACHE_REPLACEMENT_LRU 0U
-#define CACHE_REPLACEMENT_FIFO 1U
-#define CACHE_REPLACEMENT_RANDOM 2U
-#define CACHE_MODE_WRITETHROUGH 0U
-#define CACHE_MODE_WRITEBACK 1U
-#define CACHE_MODE_WRITEAROUND 2U
-#define CACHE_MODE_NONE 3U
-#define BDEV_STATE_NONE 0U
-#define BDEV_STATE_CLEAN 1U
-#define BDEV_STATE_DIRTY 2U
-#define BDEV_STATE_STALE 3U
-#define JSET_MAGIC 0x245235c1a3625032ULL
-#define PSET_MAGIC 0x6750e15f87337f91ULL
-#define BSET_MAGIC 0x90135c78b99e07f5ULL
-#define BCACHE_JSET_VERSION_UUIDv1 1
-#define BCACHE_JSET_VERSION_UUID 1
-#define BCACHE_JSET_VERSION 1
-struct jset {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 keys;
-  __u64 last_seq;
-  BKEY_PADDED(uuid_bucket);
-  BKEY_PADDED(btree_root);
-  __u16 btree_level;
-  __u16 pad[3];
-  __u64 prio_bucket[MAX_CACHES_PER_SET];
-  union {
-    struct bkey start[0];
-    __u64 d[0];
-  };
-};
-struct prio_set {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 pad;
-  __u64 next_bucket;
-  struct bucket_disk {
-    __u16 prio;
-    __u8 gen;
-  } __attribute((packed)) data[];
-};
-struct uuid_entry {
-  union {
-    struct {
-      __u8 uuid[16];
-      __u8 label[32];
-      __u32 first_reg;
-      __u32 last_reg;
-      __u32 invalidated;
-      __u32 flags;
-      __u64 sectors;
-    };
-    __u8 pad[128];
-  };
-};
-#define BCACHE_BSET_CSUM 1
-#define BCACHE_BSET_VERSION 1
-struct bset {
-  __u64 csum;
-  __u64 magic;
-  __u64 seq;
-  __u32 version;
-  __u32 keys;
-  union {
-    struct bkey start[0];
-    __u64 d[0];
-  };
-};
-struct uuid_entry_v0 {
-  __u8 uuid[16];
-  __u8 label[32];
-  __u32 first_reg;
-  __u32 last_reg;
-  __u32 invalidated;
-  __u32 pad;
-};
-#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/bpf.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/bpf.h
index c643ffa..d363e81 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/bpf.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/bpf.h
@@ -91,6 +91,7 @@
   BPF_PROG_ATTACH,
   BPF_PROG_DETACH,
   BPF_PROG_TEST_RUN,
+  BPF_PROG_RUN = BPF_PROG_TEST_RUN,
   BPF_PROG_GET_NEXT_ID,
   BPF_MAP_GET_NEXT_ID,
   BPF_PROG_GET_FD_BY_ID,
@@ -148,6 +149,7 @@
   BPF_MAP_TYPE_RINGBUF,
   BPF_MAP_TYPE_INODE_STORAGE,
   BPF_MAP_TYPE_TASK_STORAGE,
+  BPF_MAP_TYPE_BLOOM_FILTER,
 };
 enum bpf_prog_type {
   BPF_PROG_TYPE_UNSPEC,
@@ -181,6 +183,7 @@
   BPF_PROG_TYPE_EXT,
   BPF_PROG_TYPE_LSM,
   BPF_PROG_TYPE_SK_LOOKUP,
+  BPF_PROG_TYPE_SYSCALL,
 };
 enum bpf_attach_type {
   BPF_CGROUP_INET_INGRESS,
@@ -221,6 +224,10 @@
   BPF_XDP_CPUMAP,
   BPF_SK_LOOKUP,
   BPF_XDP,
+  BPF_SK_SKB_VERDICT,
+  BPF_SK_REUSEPORT_SELECT,
+  BPF_SK_REUSEPORT_SELECT_OR_MIGRATE,
+  BPF_PERF_EVENT,
   __MAX_BPF_ATTACH_TYPE
 };
 #define MAX_BPF_ATTACH_TYPE __MAX_BPF_ATTACH_TYPE
@@ -232,6 +239,7 @@
   BPF_LINK_TYPE_ITER = 4,
   BPF_LINK_TYPE_NETNS = 5,
   BPF_LINK_TYPE_XDP = 6,
+  BPF_LINK_TYPE_PERF_EVENT = 7,
   MAX_BPF_LINK_TYPE,
 };
 #define BPF_F_ALLOW_OVERRIDE (1U << 0)
@@ -243,9 +251,13 @@
 #define BPF_F_TEST_STATE_FREQ (1U << 3)
 #define BPF_F_SLEEPABLE (1U << 4)
 #define BPF_PSEUDO_MAP_FD 1
+#define BPF_PSEUDO_MAP_IDX 5
 #define BPF_PSEUDO_MAP_VALUE 2
+#define BPF_PSEUDO_MAP_IDX_VALUE 6
 #define BPF_PSEUDO_BTF_ID 3
+#define BPF_PSEUDO_FUNC 4
 #define BPF_PSEUDO_CALL 1
+#define BPF_PSEUDO_KFUNC_CALL 2
 enum {
   BPF_ANY = 0,
   BPF_NOEXIST = 1,
@@ -302,6 +314,7 @@
     __u32 btf_key_type_id;
     __u32 btf_value_type_id;
     __u32 btf_vmlinux_value_type_id;
+    __u64 map_extra;
   };
   struct {
     __u32 map_fd;
@@ -347,6 +360,10 @@
       __u32 attach_prog_fd;
       __u32 attach_btf_obj_fd;
     };
+    __u32 core_relo_cnt;
+    __aligned_u64 fd_array;
+    __aligned_u64 core_relos;
+    __u32 core_relo_rec_size;
   };
   struct {
     __aligned_u64 pathname;
@@ -436,6 +453,9 @@
         __aligned_u64 iter_info;
         __u32 iter_info_len;
       };
+      struct {
+        __u64 bpf_cookie;
+      } perf_event;
     };
   } link_create;
   struct {
@@ -460,7 +480,7 @@
     __u32 flags;
   } prog_bind_map;
 } __attribute__((aligned(8)));
-#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu),
+#define __BPF_FUNC_MAPPER(FN) FN(unspec), FN(map_lookup_elem), FN(map_update_elem), FN(map_delete_elem), FN(probe_read), FN(ktime_get_ns), FN(trace_printk), FN(get_prandom_u32), FN(get_smp_processor_id), FN(skb_store_bytes), FN(l3_csum_replace), FN(l4_csum_replace), FN(tail_call), FN(clone_redirect), FN(get_current_pid_tgid), FN(get_current_uid_gid), FN(get_current_comm), FN(get_cgroup_classid), FN(skb_vlan_push), FN(skb_vlan_pop), FN(skb_get_tunnel_key), FN(skb_set_tunnel_key), FN(perf_event_read), FN(redirect), FN(get_route_realm), FN(perf_event_output), FN(skb_load_bytes), FN(get_stackid), FN(csum_diff), FN(skb_get_tunnel_opt), FN(skb_set_tunnel_opt), FN(skb_change_proto), FN(skb_change_type), FN(skb_under_cgroup), FN(get_hash_recalc), FN(get_current_task), FN(probe_write_user), FN(current_task_under_cgroup), FN(skb_change_tail), FN(skb_pull_data), FN(csum_update), FN(set_hash_invalid), FN(get_numa_node_id), FN(skb_change_head), FN(xdp_adjust_head), FN(probe_read_str), FN(get_socket_cookie), FN(get_socket_uid), FN(set_hash), FN(setsockopt), FN(skb_adjust_room), FN(redirect_map), FN(sk_redirect_map), FN(sock_map_update), FN(xdp_adjust_meta), FN(perf_event_read_value), FN(perf_prog_read_value), FN(getsockopt), FN(override_return), FN(sock_ops_cb_flags_set), FN(msg_redirect_map), FN(msg_apply_bytes), FN(msg_cork_bytes), FN(msg_pull_data), FN(bind), FN(xdp_adjust_tail), FN(skb_get_xfrm_state), FN(get_stack), FN(skb_load_bytes_relative), FN(fib_lookup), FN(sock_hash_update), FN(msg_redirect_hash), FN(sk_redirect_hash), FN(lwt_push_encap), FN(lwt_seg6_store_bytes), FN(lwt_seg6_adjust_srh), FN(lwt_seg6_action), FN(rc_repeat), FN(rc_keydown), FN(skb_cgroup_id), FN(get_current_cgroup_id), FN(get_local_storage), FN(sk_select_reuseport), FN(skb_ancestor_cgroup_id), FN(sk_lookup_tcp), FN(sk_lookup_udp), FN(sk_release), FN(map_push_elem), FN(map_pop_elem), FN(map_peek_elem), FN(msg_push_data), FN(msg_pop_data), FN(rc_pointer_rel), FN(spin_lock), FN(spin_unlock), FN(sk_fullsock), FN(tcp_sock), FN(skb_ecn_set_ce), FN(get_listener_sock), FN(skc_lookup_tcp), FN(tcp_check_syncookie), FN(sysctl_get_name), FN(sysctl_get_current_value), FN(sysctl_get_new_value), FN(sysctl_set_new_value), FN(strtol), FN(strtoul), FN(sk_storage_get), FN(sk_storage_delete), FN(send_signal), FN(tcp_gen_syncookie), FN(skb_output), FN(probe_read_user), FN(probe_read_kernel), FN(probe_read_user_str), FN(probe_read_kernel_str), FN(tcp_send_ack), FN(send_signal_thread), FN(jiffies64), FN(read_branch_records), FN(get_ns_current_pid_tgid), FN(xdp_output), FN(get_netns_cookie), FN(get_current_ancestor_cgroup_id), FN(sk_assign), FN(ktime_get_boot_ns), FN(seq_printf), FN(seq_write), FN(sk_cgroup_id), FN(sk_ancestor_cgroup_id), FN(ringbuf_output), FN(ringbuf_reserve), FN(ringbuf_submit), FN(ringbuf_discard), FN(ringbuf_query), FN(csum_level), FN(skc_to_tcp6_sock), FN(skc_to_tcp_sock), FN(skc_to_tcp_timewait_sock), FN(skc_to_tcp_request_sock), FN(skc_to_udp6_sock), FN(get_task_stack), FN(load_hdr_opt), FN(store_hdr_opt), FN(reserve_hdr_opt), FN(inode_storage_get), FN(inode_storage_delete), FN(d_path), FN(copy_from_user), FN(snprintf_btf), FN(seq_printf_btf), FN(skb_cgroup_classid), FN(redirect_neigh), FN(per_cpu_ptr), FN(this_cpu_ptr), FN(redirect_peer), FN(task_storage_get), FN(task_storage_delete), FN(get_current_task_btf), FN(bprm_opts_set), FN(ktime_get_coarse_ns), FN(ima_inode_hash), FN(sock_from_file), FN(check_mtu), FN(for_each_map_elem), FN(snprintf), FN(sys_bpf), FN(btf_find_by_name_kind), FN(sys_close), FN(timer_init), FN(timer_set_callback), FN(timer_start), FN(timer_cancel), FN(get_func_ip), FN(get_attach_cookie), FN(task_pt_regs), FN(get_branch_snapshot), FN(trace_vprintk), FN(skc_to_unix_sock), FN(kallsyms_lookup_name), FN(find_vma), FN(loop), FN(strncmp), FN(get_func_arg), FN(get_func_ret), FN(get_func_arg_cnt),
 #define __BPF_ENUM_FN(x) BPF_FUNC_ ##x
 enum bpf_func_id {
   __BPF_FUNC_MAPPER(__BPF_ENUM_FN) __BPF_FUNC_MAX_ID,
@@ -517,6 +537,7 @@
   BPF_F_ADJ_ROOM_ENCAP_L4_GRE = (1ULL << 3),
   BPF_F_ADJ_ROOM_ENCAP_L4_UDP = (1ULL << 4),
   BPF_F_ADJ_ROOM_NO_CSUM_RESET = (1ULL << 5),
+  BPF_F_ADJ_ROOM_ENCAP_L2_ETH = (1ULL << 6),
 };
 enum {
   BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff,
@@ -568,6 +589,10 @@
 enum {
   BPF_F_BPRM_SECUREEXEC = (1ULL << 0),
 };
+enum {
+  BPF_F_BROADCAST = (1ULL << 3),
+  BPF_F_EXCLUDE_INGRESS = (1ULL << 4),
+};
 #define __bpf_md_ptr(type,name) union { type name; __u64 : 64; \
 } __attribute__((aligned(8)))
 struct __sk_buff {
@@ -603,6 +628,8 @@
   __u32 gso_segs;
   __bpf_md_ptr(struct bpf_sock *, sk);
   __u32 gso_size;
+  __u32 : 32;
+  __u64 hwtstamp;
 };
 struct bpf_tunnel_key {
   __u32 tunnel_id;
@@ -749,6 +776,8 @@
   __u32 ip_protocol;
   __u32 bind_inany;
   __u32 hash;
+  __bpf_md_ptr(struct bpf_sock *, sk);
+  __bpf_md_ptr(struct bpf_sock *, migrating_sk);
 };
 #define BPF_TAG_SIZE 8
 struct bpf_prog_info {
@@ -788,6 +817,7 @@
   __u64 run_time_ns;
   __u64 run_cnt;
   __u64 recursion_misses;
+  __u32 verified_insns;
 } __attribute__((aligned(8)));
 struct bpf_map_info {
   __u32 type;
@@ -804,6 +834,8 @@
   __u32 btf_id;
   __u32 btf_key_type_id;
   __u32 btf_value_type_id;
+  __u32 : 32;
+  __u64 map_extra;
 } __attribute__((aligned(8)));
 struct bpf_btf_info {
   __aligned_u64 btf;
@@ -824,6 +856,8 @@
     } raw_tracepoint;
     struct {
       __u32 attach_type;
+      __u32 target_obj_id;
+      __u32 target_btf_id;
     } tracing;
     struct {
       __u64 cgroup_id;
@@ -1096,6 +1130,10 @@
 struct bpf_spin_lock {
   __u32 val;
 };
+struct bpf_timer {
+  __u64 : 64;
+  __u64 : 64;
+} __attribute__((aligned(8)));
 struct bpf_sysctl {
   __u32 write;
   __u32 file_pos;
@@ -1114,7 +1152,10 @@
   __u32 tgid;
 };
 struct bpf_sk_lookup {
-  __bpf_md_ptr(struct bpf_sock *, sk);
+  union {
+    __bpf_md_ptr(struct bpf_sock *, sk);
+    __u64 cookie;
+  };
   __u32 family;
   __u32 protocol;
   __u32 remote_ip4;
@@ -1123,6 +1164,7 @@
   __u32 local_ip4;
   __u32 local_ip6[4];
   __u32 local_port;
+  __u32 ingress_ifindex;
 };
 struct btf_ptr {
   void * ptr;
@@ -1135,4 +1177,24 @@
   BTF_F_PTR_RAW = (1ULL << 2),
   BTF_F_ZERO = (1ULL << 3),
 };
+enum bpf_core_relo_kind {
+  BPF_CORE_FIELD_BYTE_OFFSET = 0,
+  BPF_CORE_FIELD_BYTE_SIZE = 1,
+  BPF_CORE_FIELD_EXISTS = 2,
+  BPF_CORE_FIELD_SIGNED = 3,
+  BPF_CORE_FIELD_LSHIFT_U64 = 4,
+  BPF_CORE_FIELD_RSHIFT_U64 = 5,
+  BPF_CORE_TYPE_ID_LOCAL = 6,
+  BPF_CORE_TYPE_ID_TARGET = 7,
+  BPF_CORE_TYPE_EXISTS = 8,
+  BPF_CORE_TYPE_SIZE = 9,
+  BPF_CORE_ENUMVAL_EXISTS = 10,
+  BPF_CORE_ENUMVAL_VALUE = 11,
+};
+struct bpf_core_relo {
+  __u32 insn_off;
+  __u32 type_id;
+  __u32 access_str_off;
+  enum bpf_core_relo_kind kind;
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btf.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btf.h
index f22d637..fc57d3c 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btf.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btf.h
@@ -42,27 +42,32 @@
     __u32 type;
   };
 };
-#define BTF_INFO_KIND(info) (((info) >> 24) & 0x0f)
+#define BTF_INFO_KIND(info) (((info) >> 24) & 0x1f)
 #define BTF_INFO_VLEN(info) ((info) & 0xffff)
 #define BTF_INFO_KFLAG(info) ((info) >> 31)
-#define BTF_KIND_UNKN 0
-#define BTF_KIND_INT 1
-#define BTF_KIND_PTR 2
-#define BTF_KIND_ARRAY 3
-#define BTF_KIND_STRUCT 4
-#define BTF_KIND_UNION 5
-#define BTF_KIND_ENUM 6
-#define BTF_KIND_FWD 7
-#define BTF_KIND_TYPEDEF 8
-#define BTF_KIND_VOLATILE 9
-#define BTF_KIND_CONST 10
-#define BTF_KIND_RESTRICT 11
-#define BTF_KIND_FUNC 12
-#define BTF_KIND_FUNC_PROTO 13
-#define BTF_KIND_VAR 14
-#define BTF_KIND_DATASEC 15
-#define BTF_KIND_MAX BTF_KIND_DATASEC
-#define NR_BTF_KINDS (BTF_KIND_MAX + 1)
+enum {
+  BTF_KIND_UNKN = 0,
+  BTF_KIND_INT = 1,
+  BTF_KIND_PTR = 2,
+  BTF_KIND_ARRAY = 3,
+  BTF_KIND_STRUCT = 4,
+  BTF_KIND_UNION = 5,
+  BTF_KIND_ENUM = 6,
+  BTF_KIND_FWD = 7,
+  BTF_KIND_TYPEDEF = 8,
+  BTF_KIND_VOLATILE = 9,
+  BTF_KIND_CONST = 10,
+  BTF_KIND_RESTRICT = 11,
+  BTF_KIND_FUNC = 12,
+  BTF_KIND_FUNC_PROTO = 13,
+  BTF_KIND_VAR = 14,
+  BTF_KIND_DATASEC = 15,
+  BTF_KIND_FLOAT = 16,
+  BTF_KIND_DECL_TAG = 17,
+  BTF_KIND_TYPE_TAG = 18,
+  NR_BTF_KINDS,
+  BTF_KIND_MAX = NR_BTF_KINDS - 1,
+};
 #define BTF_INT_ENCODING(VAL) (((VAL) & 0x0f000000) >> 24)
 #define BTF_INT_OFFSET(VAL) (((VAL) & 0x00ff0000) >> 16)
 #define BTF_INT_BITS(VAL) ((VAL) & 0x000000ff)
@@ -107,4 +112,7 @@
   __u32 offset;
   __u32 size;
 };
+struct btf_decl_tag {
+  __s32 component_idx;
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btrfs.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btrfs.h
index c0a586c..08b96a3 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btrfs.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btrfs.h
@@ -175,6 +175,7 @@
 };
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE (1ULL << 0)
 #define BTRFS_FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID (1ULL << 1)
+#define BTRFS_FEATURE_COMPAT_RO_VERITY (1ULL << 2)
 #define BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF (1ULL << 0)
 #define BTRFS_FEATURE_INCOMPAT_DEFAULT_SUBVOL (1ULL << 1)
 #define BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS (1ULL << 2)
@@ -419,14 +420,16 @@
 #define BTRFS_SEND_FLAG_NO_FILE_DATA 0x1
 #define BTRFS_SEND_FLAG_OMIT_STREAM_HEADER 0x2
 #define BTRFS_SEND_FLAG_OMIT_END_CMD 0x4
-#define BTRFS_SEND_FLAG_MASK (BTRFS_SEND_FLAG_NO_FILE_DATA | BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | BTRFS_SEND_FLAG_OMIT_END_CMD)
+#define BTRFS_SEND_FLAG_VERSION 0x8
+#define BTRFS_SEND_FLAG_MASK (BTRFS_SEND_FLAG_NO_FILE_DATA | BTRFS_SEND_FLAG_OMIT_STREAM_HEADER | BTRFS_SEND_FLAG_OMIT_END_CMD | BTRFS_SEND_FLAG_VERSION)
 struct btrfs_ioctl_send_args {
   __s64 send_fd;
   __u64 clone_sources_count;
   __u64 __user * clone_sources;
   __u64 parent_root;
   __u64 flags;
-  __u64 reserved[4];
+  __u32 version;
+  __u8 reserved[28];
 };
 struct btrfs_ioctl_get_subvol_info_args {
   __u64 treeid;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
index 4e36c37..0476733 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/btrfs_tree.h
@@ -53,6 +53,8 @@
 #define BTRFS_INODE_REF_KEY 12
 #define BTRFS_INODE_EXTREF_KEY 13
 #define BTRFS_XATTR_ITEM_KEY 24
+#define BTRFS_VERITY_DESC_ITEM_KEY 36
+#define BTRFS_VERITY_MERKLE_ITEM_KEY 37
 #define BTRFS_ORPHAN_ITEM_KEY 48
 #define BTRFS_DIR_LOG_ITEM_KEY 60
 #define BTRFS_DIR_LOG_INDEX_KEY 72
@@ -424,4 +426,9 @@
   __le64 rsv_rfer;
   __le64 rsv_excl;
 } __attribute__((__packed__));
+struct btrfs_verity_descriptor_item {
+  __le64 size;
+  __le64 reserved[2];
+  __u8 encryption;
+} __attribute__((__packed__));
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
index c0ddccc..b6c978b 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/byteorder/big_endian.h
@@ -24,6 +24,7 @@
 #ifndef __BIG_ENDIAN_BITFIELD
 #define __BIG_ENDIAN_BITFIELD
 #endif
+#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 #define __constant_htonl(x) ((__force __be32) (__u32) (x))
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
index ea00092..a272d4d 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/byteorder/little_endian.h
@@ -24,6 +24,7 @@
 #ifndef __LITTLE_ENDIAN_BITFIELD
 #define __LITTLE_ENDIAN_BITFIELD
 #endif
+#include <linux/stddef.h>
 #include <linux/types.h>
 #include <linux/swab.h>
 #define __constant_htonl(x) ((__force __be32) ___constant_swab32((x)))
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can.h
index 59fc31e..30eeca2 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can.h
@@ -48,6 +48,7 @@
 };
 #define CANFD_BRS 0x01
 #define CANFD_ESI 0x02
+#define CANFD_FDF 0x04
 struct canfd_frame {
   canid_t can_id;
   __u8 len;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can/j1939.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can/j1939.h
index 531a222..42dbf15 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can/j1939.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can/j1939.h
@@ -50,10 +50,19 @@
 enum {
   J1939_NLA_PAD,
   J1939_NLA_BYTES_ACKED,
+  J1939_NLA_TOTAL_SIZE,
+  J1939_NLA_PGN,
+  J1939_NLA_SRC_NAME,
+  J1939_NLA_DEST_NAME,
+  J1939_NLA_SRC_ADDR,
+  J1939_NLA_DEST_ADDR,
 };
 enum {
   J1939_EE_INFO_NONE,
   J1939_EE_INFO_TX_ABORT,
+  J1939_EE_INFO_RX_RTS,
+  J1939_EE_INFO_RX_DPO,
+  J1939_EE_INFO_RX_ABORT,
 };
 struct j1939_filter {
   name_t name;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can/netlink.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can/netlink.h
index 3e6551d..f4086c0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can/netlink.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/can/netlink.h
@@ -69,6 +69,8 @@
 #define CAN_CTRLMODE_PRESUME_ACK 0x40
 #define CAN_CTRLMODE_FD_NON_ISO 0x80
 #define CAN_CTRLMODE_CC_LEN8_DLC 0x100
+#define CAN_CTRLMODE_TDC_AUTO 0x200
+#define CAN_CTRLMODE_TDC_MANUAL 0x400
 struct can_device_stats {
   __u32 bus_error;
   __u32 error_warning;
@@ -94,8 +96,30 @@
   IFLA_CAN_BITRATE_CONST,
   IFLA_CAN_DATA_BITRATE_CONST,
   IFLA_CAN_BITRATE_MAX,
-  __IFLA_CAN_MAX
+  IFLA_CAN_TDC,
+  IFLA_CAN_CTRLMODE_EXT,
+  __IFLA_CAN_MAX,
+  IFLA_CAN_MAX = __IFLA_CAN_MAX - 1
 };
-#define IFLA_CAN_MAX (__IFLA_CAN_MAX - 1)
+enum {
+  IFLA_CAN_TDC_UNSPEC,
+  IFLA_CAN_TDC_TDCV_MIN,
+  IFLA_CAN_TDC_TDCV_MAX,
+  IFLA_CAN_TDC_TDCO_MIN,
+  IFLA_CAN_TDC_TDCO_MAX,
+  IFLA_CAN_TDC_TDCF_MIN,
+  IFLA_CAN_TDC_TDCF_MAX,
+  IFLA_CAN_TDC_TDCV,
+  IFLA_CAN_TDC_TDCO,
+  IFLA_CAN_TDC_TDCF,
+  __IFLA_CAN_TDC,
+  IFLA_CAN_TDC_MAX = __IFLA_CAN_TDC - 1
+};
+enum {
+  IFLA_CAN_CTRLMODE_UNSPEC,
+  IFLA_CAN_CTRLMODE_SUPPORTED,
+  __IFLA_CAN_CTRLMODE,
+  IFLA_CAN_CTRLMODE_MAX = __IFLA_CAN_CTRLMODE - 1
+};
 #define CAN_TERMINATION_DISABLED 0
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cdrom.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cdrom.h
index 8f1c2f0..0fe0727 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cdrom.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cdrom.h
@@ -67,6 +67,7 @@
 #define CDROM_SEND_PACKET 0x5393
 #define CDROM_NEXT_WRITABLE 0x5394
 #define CDROM_LAST_WRITTEN 0x5395
+#define CDROM_TIMED_MEDIA_CHANGE 0x5396
 struct cdrom_msf0 {
   __u8 minute;
   __u8 second;
@@ -160,6 +161,11 @@
     void __user * unused;
   };
 };
+struct cdrom_timed_media_change_info {
+  __s64 last_media_change;
+  __u64 media_flags;
+};
+#define MEDIA_CHANGED_FLAG 0x1
 #define CD_MINS 74
 #define CD_SECS 60
 #define CD_FRAMES 75
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cec.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cec.h
index 238fa0a..b90dc49 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cec.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cec.h
@@ -262,7 +262,7 @@
 #define CEC_OP_REC_SEQ_WEDNESDAY 0x08
 #define CEC_OP_REC_SEQ_THURSDAY 0x10
 #define CEC_OP_REC_SEQ_FRIDAY 0x20
-#define CEC_OP_REC_SEQ_SATERDAY 0x40
+#define CEC_OP_REC_SEQ_SATURDAY 0x40
 #define CEC_OP_REC_SEQ_ONCE_ONLY 0x00
 #define CEC_MSG_CLEAR_DIGITAL_TIMER 0x99
 #define CEC_MSG_CLEAR_EXT_TIMER 0xa1
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/comedi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/comedi.h
new file mode 100644
index 0000000..e0d015a
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/comedi.h
@@ -0,0 +1,669 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 _COMEDI_H
+#define _COMEDI_H
+#define COMEDI_MAJORVERSION 0
+#define COMEDI_MINORVERSION 7
+#define COMEDI_MICROVERSION 76
+#define VERSION "0.7.76"
+#define COMEDI_MAJOR 98
+#define COMEDI_NDEVICES 16
+#define COMEDI_NDEVCONFOPTS 32
+#define COMEDI_DEVCONF_AUX_DATA3_LENGTH 25
+#define COMEDI_DEVCONF_AUX_DATA2_LENGTH 26
+#define COMEDI_DEVCONF_AUX_DATA1_LENGTH 27
+#define COMEDI_DEVCONF_AUX_DATA0_LENGTH 28
+#define COMEDI_DEVCONF_AUX_DATA_HI 29
+#define COMEDI_DEVCONF_AUX_DATA_LO 30
+#define COMEDI_DEVCONF_AUX_DATA_LENGTH 31
+#define COMEDI_NAMELEN 20
+#define CR_PACK(chan,rng,aref) ((((aref) & 0x3) << 24) | (((rng) & 0xff) << 16) | (chan))
+#define CR_PACK_FLAGS(chan,range,aref,flags) (CR_PACK(chan, range, aref) | ((flags) & CR_FLAGS_MASK))
+#define CR_CHAN(a) ((a) & 0xffff)
+#define CR_RANGE(a) (((a) >> 16) & 0xff)
+#define CR_AREF(a) (((a) >> 24) & 0x03)
+#define CR_FLAGS_MASK 0xfc000000
+#define CR_ALT_FILTER 0x04000000
+#define CR_DITHER CR_ALT_FILTER
+#define CR_DEGLITCH CR_ALT_FILTER
+#define CR_ALT_SOURCE 0x08000000
+#define CR_EDGE 0x40000000
+#define CR_INVERT 0x80000000
+#define AREF_GROUND 0x00
+#define AREF_COMMON 0x01
+#define AREF_DIFF 0x02
+#define AREF_OTHER 0x03
+#define GPCT_RESET 0x0001
+#define GPCT_SET_SOURCE 0x0002
+#define GPCT_SET_GATE 0x0004
+#define GPCT_SET_DIRECTION 0x0008
+#define GPCT_SET_OPERATION 0x0010
+#define GPCT_ARM 0x0020
+#define GPCT_DISARM 0x0040
+#define GPCT_GET_INT_CLK_FRQ 0x0080
+#define GPCT_INT_CLOCK 0x0001
+#define GPCT_EXT_PIN 0x0002
+#define GPCT_NO_GATE 0x0004
+#define GPCT_UP 0x0008
+#define GPCT_DOWN 0x0010
+#define GPCT_HWUD 0x0020
+#define GPCT_SIMPLE_EVENT 0x0040
+#define GPCT_SINGLE_PERIOD 0x0080
+#define GPCT_SINGLE_PW 0x0100
+#define GPCT_CONT_PULSE_OUT 0x0200
+#define GPCT_SINGLE_PULSE_OUT 0x0400
+#define INSN_MASK_WRITE 0x8000000
+#define INSN_MASK_READ 0x4000000
+#define INSN_MASK_SPECIAL 0x2000000
+#define INSN_READ (0 | INSN_MASK_READ)
+#define INSN_WRITE (1 | INSN_MASK_WRITE)
+#define INSN_BITS (2 | INSN_MASK_READ | INSN_MASK_WRITE)
+#define INSN_CONFIG (3 | INSN_MASK_READ | INSN_MASK_WRITE)
+#define INSN_DEVICE_CONFIG (INSN_CONFIG | INSN_MASK_SPECIAL)
+#define INSN_GTOD (4 | INSN_MASK_READ | INSN_MASK_SPECIAL)
+#define INSN_WAIT (5 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
+#define INSN_INTTRIG (6 | INSN_MASK_WRITE | INSN_MASK_SPECIAL)
+#define CMDF_BOGUS 0x00000001
+#define CMDF_PRIORITY 0x00000008
+#define CMDF_WAKE_EOS 0x00000020
+#define CMDF_WRITE 0x00000040
+#define CMDF_RAWDATA 0x00000080
+#define CMDF_ROUND_MASK 0x00030000
+#define CMDF_ROUND_NEAREST 0x00000000
+#define CMDF_ROUND_DOWN 0x00010000
+#define CMDF_ROUND_UP 0x00020000
+#define CMDF_ROUND_UP_NEXT 0x00030000
+#define COMEDI_EV_START 0x00040000
+#define COMEDI_EV_SCAN_BEGIN 0x00080000
+#define COMEDI_EV_CONVERT 0x00100000
+#define COMEDI_EV_SCAN_END 0x00200000
+#define COMEDI_EV_STOP 0x00400000
+#define TRIG_BOGUS CMDF_BOGUS
+#define TRIG_RT CMDF_PRIORITY
+#define TRIG_WAKE_EOS CMDF_WAKE_EOS
+#define TRIG_WRITE CMDF_WRITE
+#define TRIG_ROUND_MASK CMDF_ROUND_MASK
+#define TRIG_ROUND_NEAREST CMDF_ROUND_NEAREST
+#define TRIG_ROUND_DOWN CMDF_ROUND_DOWN
+#define TRIG_ROUND_UP CMDF_ROUND_UP
+#define TRIG_ROUND_UP_NEXT CMDF_ROUND_UP_NEXT
+#define TRIG_ANY 0xffffffff
+#define TRIG_INVALID 0x00000000
+#define TRIG_NONE 0x00000001
+#define TRIG_NOW 0x00000002
+#define TRIG_FOLLOW 0x00000004
+#define TRIG_TIME 0x00000008
+#define TRIG_TIMER 0x00000010
+#define TRIG_COUNT 0x00000020
+#define TRIG_EXT 0x00000040
+#define TRIG_INT 0x00000080
+#define TRIG_OTHER 0x00000100
+#define SDF_BUSY 0x0001
+#define SDF_BUSY_OWNER 0x0002
+#define SDF_LOCKED 0x0004
+#define SDF_LOCK_OWNER 0x0008
+#define SDF_MAXDATA 0x0010
+#define SDF_FLAGS 0x0020
+#define SDF_RANGETYPE 0x0040
+#define SDF_PWM_COUNTER 0x0080
+#define SDF_PWM_HBRIDGE 0x0100
+#define SDF_CMD 0x1000
+#define SDF_SOFT_CALIBRATED 0x2000
+#define SDF_CMD_WRITE 0x4000
+#define SDF_CMD_READ 0x8000
+#define SDF_READABLE 0x00010000
+#define SDF_WRITABLE 0x00020000
+#define SDF_WRITEABLE SDF_WRITABLE
+#define SDF_INTERNAL 0x00040000
+#define SDF_GROUND 0x00100000
+#define SDF_COMMON 0x00200000
+#define SDF_DIFF 0x00400000
+#define SDF_OTHER 0x00800000
+#define SDF_DITHER 0x01000000
+#define SDF_DEGLITCH 0x02000000
+#define SDF_MMAP 0x04000000
+#define SDF_RUNNING 0x08000000
+#define SDF_LSAMPL 0x10000000
+#define SDF_PACKED 0x20000000
+enum comedi_subdevice_type {
+  COMEDI_SUBD_UNUSED,
+  COMEDI_SUBD_AI,
+  COMEDI_SUBD_AO,
+  COMEDI_SUBD_DI,
+  COMEDI_SUBD_DO,
+  COMEDI_SUBD_DIO,
+  COMEDI_SUBD_COUNTER,
+  COMEDI_SUBD_TIMER,
+  COMEDI_SUBD_MEMORY,
+  COMEDI_SUBD_CALIB,
+  COMEDI_SUBD_PROC,
+  COMEDI_SUBD_SERIAL,
+  COMEDI_SUBD_PWM
+};
+enum comedi_io_direction {
+  COMEDI_INPUT = 0,
+  COMEDI_OUTPUT = 1,
+  COMEDI_OPENDRAIN = 2
+};
+enum configuration_ids {
+  INSN_CONFIG_DIO_INPUT = COMEDI_INPUT,
+  INSN_CONFIG_DIO_OUTPUT = COMEDI_OUTPUT,
+  INSN_CONFIG_DIO_OPENDRAIN = COMEDI_OPENDRAIN,
+  INSN_CONFIG_ANALOG_TRIG = 16,
+  INSN_CONFIG_ALT_SOURCE = 20,
+  INSN_CONFIG_DIGITAL_TRIG = 21,
+  INSN_CONFIG_BLOCK_SIZE = 22,
+  INSN_CONFIG_TIMER_1 = 23,
+  INSN_CONFIG_FILTER = 24,
+  INSN_CONFIG_CHANGE_NOTIFY = 25,
+  INSN_CONFIG_SERIAL_CLOCK = 26,
+  INSN_CONFIG_BIDIRECTIONAL_DATA = 27,
+  INSN_CONFIG_DIO_QUERY = 28,
+  INSN_CONFIG_PWM_OUTPUT = 29,
+  INSN_CONFIG_GET_PWM_OUTPUT = 30,
+  INSN_CONFIG_ARM = 31,
+  INSN_CONFIG_DISARM = 32,
+  INSN_CONFIG_GET_COUNTER_STATUS = 33,
+  INSN_CONFIG_RESET = 34,
+  INSN_CONFIG_GPCT_SINGLE_PULSE_GENERATOR = 1001,
+  INSN_CONFIG_GPCT_PULSE_TRAIN_GENERATOR = 1002,
+  INSN_CONFIG_GPCT_QUADRATURE_ENCODER = 1003,
+  INSN_CONFIG_SET_GATE_SRC = 2001,
+  INSN_CONFIG_GET_GATE_SRC = 2002,
+  INSN_CONFIG_SET_CLOCK_SRC = 2003,
+  INSN_CONFIG_GET_CLOCK_SRC = 2004,
+  INSN_CONFIG_SET_OTHER_SRC = 2005,
+  INSN_CONFIG_GET_HARDWARE_BUFFER_SIZE = 2006,
+  INSN_CONFIG_SET_COUNTER_MODE = 4097,
+  INSN_CONFIG_8254_SET_MODE = INSN_CONFIG_SET_COUNTER_MODE,
+  INSN_CONFIG_8254_READ_STATUS = 4098,
+  INSN_CONFIG_SET_ROUTING = 4099,
+  INSN_CONFIG_GET_ROUTING = 4109,
+  INSN_CONFIG_PWM_SET_PERIOD = 5000,
+  INSN_CONFIG_PWM_GET_PERIOD = 5001,
+  INSN_CONFIG_GET_PWM_STATUS = 5002,
+  INSN_CONFIG_PWM_SET_H_BRIDGE = 5003,
+  INSN_CONFIG_PWM_GET_H_BRIDGE = 5004,
+  INSN_CONFIG_GET_CMD_TIMING_CONSTRAINTS = 5005,
+};
+enum device_config_route_ids {
+  INSN_DEVICE_CONFIG_TEST_ROUTE = 0,
+  INSN_DEVICE_CONFIG_CONNECT_ROUTE = 1,
+  INSN_DEVICE_CONFIG_DISCONNECT_ROUTE = 2,
+  INSN_DEVICE_CONFIG_GET_ROUTES = 3,
+};
+enum comedi_digital_trig_op {
+  COMEDI_DIGITAL_TRIG_DISABLE = 0,
+  COMEDI_DIGITAL_TRIG_ENABLE_EDGES = 1,
+  COMEDI_DIGITAL_TRIG_ENABLE_LEVELS = 2
+};
+enum comedi_support_level {
+  COMEDI_UNKNOWN_SUPPORT = 0,
+  COMEDI_SUPPORTED,
+  COMEDI_UNSUPPORTED
+};
+enum comedi_counter_status_flags {
+  COMEDI_COUNTER_ARMED = 0x1,
+  COMEDI_COUNTER_COUNTING = 0x2,
+  COMEDI_COUNTER_TERMINAL_COUNT = 0x4,
+};
+#define CIO 'd'
+#define COMEDI_DEVCONFIG _IOW(CIO, 0, struct comedi_devconfig)
+#define COMEDI_DEVINFO _IOR(CIO, 1, struct comedi_devinfo)
+#define COMEDI_SUBDINFO _IOR(CIO, 2, struct comedi_subdinfo)
+#define COMEDI_CHANINFO _IOR(CIO, 3, struct comedi_chaninfo)
+#define COMEDI_LOCK _IO(CIO, 5)
+#define COMEDI_UNLOCK _IO(CIO, 6)
+#define COMEDI_CANCEL _IO(CIO, 7)
+#define COMEDI_RANGEINFO _IOR(CIO, 8, struct comedi_rangeinfo)
+#define COMEDI_CMD _IOR(CIO, 9, struct comedi_cmd)
+#define COMEDI_CMDTEST _IOR(CIO, 10, struct comedi_cmd)
+#define COMEDI_INSNLIST _IOR(CIO, 11, struct comedi_insnlist)
+#define COMEDI_INSN _IOR(CIO, 12, struct comedi_insn)
+#define COMEDI_BUFCONFIG _IOR(CIO, 13, struct comedi_bufconfig)
+#define COMEDI_BUFINFO _IOWR(CIO, 14, struct comedi_bufinfo)
+#define COMEDI_POLL _IO(CIO, 15)
+#define COMEDI_SETRSUBD _IO(CIO, 16)
+#define COMEDI_SETWSUBD _IO(CIO, 17)
+struct comedi_insn {
+  unsigned int insn;
+  unsigned int n;
+  unsigned int __user * data;
+  unsigned int subdev;
+  unsigned int chanspec;
+  unsigned int unused[3];
+};
+struct comedi_insnlist {
+  unsigned int n_insns;
+  struct comedi_insn __user * insns;
+};
+struct comedi_cmd {
+  unsigned int subdev;
+  unsigned int flags;
+  unsigned int start_src;
+  unsigned int start_arg;
+  unsigned int scan_begin_src;
+  unsigned int scan_begin_arg;
+  unsigned int convert_src;
+  unsigned int convert_arg;
+  unsigned int scan_end_src;
+  unsigned int scan_end_arg;
+  unsigned int stop_src;
+  unsigned int stop_arg;
+  unsigned int * chanlist;
+  unsigned int chanlist_len;
+  short __user * data;
+  unsigned int data_len;
+};
+struct comedi_chaninfo {
+  unsigned int subdev;
+  unsigned int __user * maxdata_list;
+  unsigned int __user * flaglist;
+  unsigned int __user * rangelist;
+  unsigned int unused[4];
+};
+struct comedi_rangeinfo {
+  unsigned int range_type;
+  void __user * range_ptr;
+};
+struct comedi_krange {
+  int min;
+  int max;
+  unsigned int flags;
+};
+struct comedi_subdinfo {
+  unsigned int type;
+  unsigned int n_chan;
+  unsigned int subd_flags;
+  unsigned int timer_type;
+  unsigned int len_chanlist;
+  unsigned int maxdata;
+  unsigned int flags;
+  unsigned int range_type;
+  unsigned int settling_time_0;
+  unsigned int insn_bits_support;
+  unsigned int unused[8];
+};
+struct comedi_devinfo {
+  unsigned int version_code;
+  unsigned int n_subdevs;
+  char driver_name[COMEDI_NAMELEN];
+  char board_name[COMEDI_NAMELEN];
+  int read_subdevice;
+  int write_subdevice;
+  int unused[30];
+};
+struct comedi_devconfig {
+  char board_name[COMEDI_NAMELEN];
+  int options[COMEDI_NDEVCONFOPTS];
+};
+struct comedi_bufconfig {
+  unsigned int subdevice;
+  unsigned int flags;
+  unsigned int maximum_size;
+  unsigned int size;
+  unsigned int unused[4];
+};
+struct comedi_bufinfo {
+  unsigned int subdevice;
+  unsigned int bytes_read;
+  unsigned int buf_write_ptr;
+  unsigned int buf_read_ptr;
+  unsigned int buf_write_count;
+  unsigned int buf_read_count;
+  unsigned int bytes_written;
+  unsigned int unused[4];
+};
+#define __RANGE(a,b) ((((a) & 0xffff) << 16) | ((b) & 0xffff))
+#define RANGE_OFFSET(a) (((a) >> 16) & 0xffff)
+#define RANGE_LENGTH(b) ((b) & 0xffff)
+#define RF_UNIT(flags) ((flags) & 0xff)
+#define RF_EXTERNAL 0x100
+#define UNIT_volt 0
+#define UNIT_mA 1
+#define UNIT_none 2
+#define COMEDI_MIN_SPEED 0xffffffffu
+enum i8254_mode {
+  I8254_MODE0 = (0 << 1),
+  I8254_MODE1 = (1 << 1),
+  I8254_MODE2 = (2 << 1),
+  I8254_MODE3 = (3 << 1),
+  I8254_MODE4 = (4 << 1),
+  I8254_MODE5 = (5 << 1),
+  I8254_BCD = 1,
+  I8254_BINARY = 0
+};
+#define NI_NAMES_BASE 0x8000u
+#define _TERM_N(base,n,x) ((base) + ((x) & ((n) - 1)))
+#define NI_PFI(x) _TERM_N(NI_NAMES_BASE, 64, x)
+#define TRIGGER_LINE(x) _TERM_N(NI_PFI(- 1) + 1, 8, x)
+#define NI_RTSI_BRD(x) _TERM_N(TRIGGER_LINE(- 1) + 1, 4, x)
+#define NI_MAX_COUNTERS 8
+#define NI_COUNTER_NAMES_BASE (NI_RTSI_BRD(- 1) + 1)
+#define NI_CtrSource(x) _TERM_N(NI_COUNTER_NAMES_BASE, NI_MAX_COUNTERS, x)
+#define NI_GATES_NAMES_BASE (NI_CtrSource(- 1) + 1)
+#define NI_CtrGate(x) _TERM_N(NI_GATES_NAMES_BASE, NI_MAX_COUNTERS, x)
+#define NI_CtrAux(x) _TERM_N(NI_CtrGate(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrA(x) _TERM_N(NI_CtrAux(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrB(x) _TERM_N(NI_CtrA(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrZ(x) _TERM_N(NI_CtrB(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_GATES_NAMES_MAX NI_CtrZ(- 1)
+#define NI_CtrArmStartTrigger(x) _TERM_N(NI_CtrZ(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrInternalOutput(x) _TERM_N(NI_CtrArmStartTrigger(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrOut(x) _TERM_N(NI_CtrInternalOutput(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_CtrSampleClock(x) _TERM_N(NI_CtrOut(- 1) + 1, NI_MAX_COUNTERS, x)
+#define NI_COUNTER_NAMES_MAX NI_CtrSampleClock(- 1)
+enum ni_common_signal_names {
+  PXI_Star = NI_COUNTER_NAMES_MAX + 1,
+  PXI_Clk10,
+  PXIe_Clk100,
+  NI_AI_SampleClock,
+  NI_AI_SampleClockTimebase,
+  NI_AI_StartTrigger,
+  NI_AI_ReferenceTrigger,
+  NI_AI_ConvertClock,
+  NI_AI_ConvertClockTimebase,
+  NI_AI_PauseTrigger,
+  NI_AI_HoldCompleteEvent,
+  NI_AI_HoldComplete,
+  NI_AI_ExternalMUXClock,
+  NI_AI_STOP,
+  NI_AO_SampleClock,
+  NI_AO_SampleClockTimebase,
+  NI_AO_StartTrigger,
+  NI_AO_PauseTrigger,
+  NI_DI_SampleClock,
+  NI_DI_SampleClockTimebase,
+  NI_DI_StartTrigger,
+  NI_DI_ReferenceTrigger,
+  NI_DI_PauseTrigger,
+  NI_DI_InputBufferFull,
+  NI_DI_ReadyForStartEvent,
+  NI_DI_ReadyForTransferEventBurst,
+  NI_DI_ReadyForTransferEventPipelined,
+  NI_DO_SampleClock,
+  NI_DO_SampleClockTimebase,
+  NI_DO_StartTrigger,
+  NI_DO_PauseTrigger,
+  NI_DO_OutputBufferFull,
+  NI_DO_DataActiveEvent,
+  NI_DO_ReadyForStartEvent,
+  NI_DO_ReadyForTransferEvent,
+  NI_MasterTimebase,
+  NI_20MHzTimebase,
+  NI_80MHzTimebase,
+  NI_100MHzTimebase,
+  NI_200MHzTimebase,
+  NI_100kHzTimebase,
+  NI_10MHzRefClock,
+  NI_FrequencyOutput,
+  NI_ChangeDetectionEvent,
+  NI_AnalogComparisonEvent,
+  NI_WatchdogExpiredEvent,
+  NI_WatchdogExpirationTrigger,
+  NI_SCXI_Trig1,
+  NI_LogicLow,
+  NI_LogicHigh,
+  NI_ExternalStrobe,
+  NI_PFI_DO,
+  NI_CaseGround,
+  NI_RGOUT0,
+  _NI_NAMES_MAX_PLUS_1,
+  NI_NUM_NAMES = _NI_NAMES_MAX_PLUS_1 - NI_NAMES_BASE,
+};
+#define NI_USUAL_PFI_SELECT(x) (((x) < 10) ? (0x1 + (x)) : (0xb + (x)))
+#define NI_USUAL_RTSI_SELECT(x) (((x) < 7) ? (0xb + (x)) : 0x1b)
+#define NI_GPCT_COUNTING_MODE_SHIFT 16
+#define NI_GPCT_INDEX_PHASE_BITSHIFT 20
+#define NI_GPCT_COUNTING_DIRECTION_SHIFT 24
+enum ni_gpct_mode_bits {
+  NI_GPCT_GATE_ON_BOTH_EDGES_BIT = 0x4,
+  NI_GPCT_EDGE_GATE_MODE_MASK = 0x18,
+  NI_GPCT_EDGE_GATE_STARTS_STOPS_BITS = 0x0,
+  NI_GPCT_EDGE_GATE_STOPS_STARTS_BITS = 0x8,
+  NI_GPCT_EDGE_GATE_STARTS_BITS = 0x10,
+  NI_GPCT_EDGE_GATE_NO_STARTS_NO_STOPS_BITS = 0x18,
+  NI_GPCT_STOP_MODE_MASK = 0x60,
+  NI_GPCT_STOP_ON_GATE_BITS = 0x00,
+  NI_GPCT_STOP_ON_GATE_OR_TC_BITS = 0x20,
+  NI_GPCT_STOP_ON_GATE_OR_SECOND_TC_BITS = 0x40,
+  NI_GPCT_LOAD_B_SELECT_BIT = 0x80,
+  NI_GPCT_OUTPUT_MODE_MASK = 0x300,
+  NI_GPCT_OUTPUT_TC_PULSE_BITS = 0x100,
+  NI_GPCT_OUTPUT_TC_TOGGLE_BITS = 0x200,
+  NI_GPCT_OUTPUT_TC_OR_GATE_TOGGLE_BITS = 0x300,
+  NI_GPCT_HARDWARE_DISARM_MASK = 0xc00,
+  NI_GPCT_NO_HARDWARE_DISARM_BITS = 0x000,
+  NI_GPCT_DISARM_AT_TC_BITS = 0x400,
+  NI_GPCT_DISARM_AT_GATE_BITS = 0x800,
+  NI_GPCT_DISARM_AT_TC_OR_GATE_BITS = 0xc00,
+  NI_GPCT_LOADING_ON_TC_BIT = 0x1000,
+  NI_GPCT_LOADING_ON_GATE_BIT = 0x4000,
+  NI_GPCT_COUNTING_MODE_MASK = 0x7 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_NORMAL_BITS = 0x0 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X1_BITS = 0x1 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X2_BITS = 0x2 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_QUADRATURE_X4_BITS = 0x3 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_TWO_PULSE_BITS = 0x4 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_COUNTING_MODE_SYNC_SOURCE_BITS = 0x6 << NI_GPCT_COUNTING_MODE_SHIFT,
+  NI_GPCT_INDEX_PHASE_MASK = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_LOW_A_LOW_B_BITS = 0x0 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_LOW_A_HIGH_B_BITS = 0x1 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_HIGH_A_LOW_B_BITS = 0x2 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_PHASE_HIGH_A_HIGH_B_BITS = 0x3 << NI_GPCT_INDEX_PHASE_BITSHIFT,
+  NI_GPCT_INDEX_ENABLE_BIT = 0x400000,
+  NI_GPCT_COUNTING_DIRECTION_MASK = 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_DOWN_BITS = 0x00 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_UP_BITS = 0x1 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_HW_UP_DOWN_BITS = 0x2 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_COUNTING_DIRECTION_HW_GATE_BITS = 0x3 << NI_GPCT_COUNTING_DIRECTION_SHIFT,
+  NI_GPCT_RELOAD_SOURCE_MASK = 0xc000000,
+  NI_GPCT_RELOAD_SOURCE_FIXED_BITS = 0x0,
+  NI_GPCT_RELOAD_SOURCE_SWITCHING_BITS = 0x4000000,
+  NI_GPCT_RELOAD_SOURCE_GATE_SELECT_BITS = 0x8000000,
+  NI_GPCT_OR_GATE_BIT = 0x10000000,
+  NI_GPCT_INVERT_OUTPUT_BIT = 0x20000000
+};
+enum ni_gpct_clock_source_bits {
+  NI_GPCT_CLOCK_SRC_SELECT_MASK = 0x3f,
+  NI_GPCT_TIMEBASE_1_CLOCK_SRC_BITS = 0x0,
+  NI_GPCT_TIMEBASE_2_CLOCK_SRC_BITS = 0x1,
+  NI_GPCT_TIMEBASE_3_CLOCK_SRC_BITS = 0x2,
+  NI_GPCT_LOGIC_LOW_CLOCK_SRC_BITS = 0x3,
+  NI_GPCT_NEXT_GATE_CLOCK_SRC_BITS = 0x4,
+  NI_GPCT_NEXT_TC_CLOCK_SRC_BITS = 0x5,
+  NI_GPCT_SOURCE_PIN_i_CLOCK_SRC_BITS = 0x6,
+  NI_GPCT_PXI10_CLOCK_SRC_BITS = 0x7,
+  NI_GPCT_PXI_STAR_TRIGGER_CLOCK_SRC_BITS = 0x8,
+  NI_GPCT_ANALOG_TRIGGER_OUT_CLOCK_SRC_BITS = 0x9,
+  NI_GPCT_PRESCALE_MODE_CLOCK_SRC_MASK = 0x30000000,
+  NI_GPCT_NO_PRESCALE_CLOCK_SRC_BITS = 0x0,
+  NI_GPCT_PRESCALE_X2_CLOCK_SRC_BITS = 0x10000000,
+  NI_GPCT_PRESCALE_X8_CLOCK_SRC_BITS = 0x20000000,
+  NI_GPCT_INVERT_CLOCK_SRC_BIT = 0x80000000
+};
+#define NI_GPCT_SOURCE_PIN_CLOCK_SRC_BITS(x) (0x10 + (x))
+#define NI_GPCT_RTSI_CLOCK_SRC_BITS(x) (0x18 + (x))
+#define NI_GPCT_PFI_CLOCK_SRC_BITS(x) (0x20 + (x))
+enum ni_gpct_gate_select {
+  NI_GPCT_TIMESTAMP_MUX_GATE_SELECT = 0x0,
+  NI_GPCT_AI_START2_GATE_SELECT = 0x12,
+  NI_GPCT_PXI_STAR_TRIGGER_GATE_SELECT = 0x13,
+  NI_GPCT_NEXT_OUT_GATE_SELECT = 0x14,
+  NI_GPCT_AI_START1_GATE_SELECT = 0x1c,
+  NI_GPCT_NEXT_SOURCE_GATE_SELECT = 0x1d,
+  NI_GPCT_ANALOG_TRIGGER_OUT_GATE_SELECT = 0x1e,
+  NI_GPCT_LOGIC_LOW_GATE_SELECT = 0x1f,
+  NI_GPCT_SOURCE_PIN_i_GATE_SELECT = 0x100,
+  NI_GPCT_GATE_PIN_i_GATE_SELECT = 0x101,
+  NI_GPCT_UP_DOWN_PIN_i_GATE_SELECT = 0x201,
+  NI_GPCT_SELECTED_GATE_GATE_SELECT = 0x21e,
+  NI_GPCT_DISABLED_GATE_SELECT = 0x8000,
+};
+#define NI_GPCT_GATE_PIN_GATE_SELECT(x) (0x102 + (x))
+#define NI_GPCT_RTSI_GATE_SELECT(x) NI_USUAL_RTSI_SELECT(x)
+#define NI_GPCT_PFI_GATE_SELECT(x) NI_USUAL_PFI_SELECT(x)
+#define NI_GPCT_UP_DOWN_PIN_GATE_SELECT(x) (0x202 + (x))
+enum ni_gpct_other_index {
+  NI_GPCT_SOURCE_ENCODER_A,
+  NI_GPCT_SOURCE_ENCODER_B,
+  NI_GPCT_SOURCE_ENCODER_Z
+};
+enum ni_gpct_other_select {
+  NI_GPCT_DISABLED_OTHER_SELECT = 0x8000,
+};
+#define NI_GPCT_PFI_OTHER_SELECT(x) NI_USUAL_PFI_SELECT(x)
+enum ni_gpct_arm_source {
+  NI_GPCT_ARM_IMMEDIATE = 0x0,
+  NI_GPCT_ARM_PAIRED_IMMEDIATE = 0x1,
+  NI_GPCT_HW_ARM = 0x1000,
+  NI_GPCT_ARM_UNKNOWN = NI_GPCT_HW_ARM,
+};
+enum ni_gpct_filter_select {
+  NI_GPCT_FILTER_OFF = 0x0,
+  NI_GPCT_FILTER_TIMEBASE_3_SYNC = 0x1,
+  NI_GPCT_FILTER_100x_TIMEBASE_1 = 0x2,
+  NI_GPCT_FILTER_20x_TIMEBASE_1 = 0x3,
+  NI_GPCT_FILTER_10x_TIMEBASE_1 = 0x4,
+  NI_GPCT_FILTER_2x_TIMEBASE_1 = 0x5,
+  NI_GPCT_FILTER_2x_TIMEBASE_3 = 0x6
+};
+enum ni_pfi_filter_select {
+  NI_PFI_FILTER_OFF = 0x0,
+  NI_PFI_FILTER_125ns = 0x1,
+  NI_PFI_FILTER_6425ns = 0x2,
+  NI_PFI_FILTER_2550us = 0x3
+};
+enum ni_mio_clock_source {
+  NI_MIO_INTERNAL_CLOCK = 0,
+  NI_MIO_RTSI_CLOCK = 1,
+  NI_MIO_PLL_PXI_STAR_TRIGGER_CLOCK = 2,
+  NI_MIO_PLL_PXI10_CLOCK = 3,
+  NI_MIO_PLL_RTSI0_CLOCK = 4
+};
+#define NI_MIO_PLL_RTSI_CLOCK(x) (NI_MIO_PLL_RTSI0_CLOCK + (x))
+enum ni_rtsi_routing {
+  NI_RTSI_OUTPUT_ADR_START1 = 0,
+  NI_RTSI_OUTPUT_ADR_START2 = 1,
+  NI_RTSI_OUTPUT_SCLKG = 2,
+  NI_RTSI_OUTPUT_DACUPDN = 3,
+  NI_RTSI_OUTPUT_DA_START1 = 4,
+  NI_RTSI_OUTPUT_G_SRC0 = 5,
+  NI_RTSI_OUTPUT_G_GATE0 = 6,
+  NI_RTSI_OUTPUT_RGOUT0 = 7,
+  NI_RTSI_OUTPUT_RTSI_BRD_0 = 8,
+  NI_RTSI_OUTPUT_RTSI_OSC = 12
+};
+#define NI_RTSI_OUTPUT_RTSI_BRD(x) (NI_RTSI_OUTPUT_RTSI_BRD_0 + (x))
+enum ni_pfi_routing {
+  NI_PFI_OUTPUT_PFI_DEFAULT = 0,
+  NI_PFI_OUTPUT_AI_START1 = 1,
+  NI_PFI_OUTPUT_AI_START2 = 2,
+  NI_PFI_OUTPUT_AI_CONVERT = 3,
+  NI_PFI_OUTPUT_G_SRC1 = 4,
+  NI_PFI_OUTPUT_G_GATE1 = 5,
+  NI_PFI_OUTPUT_AO_UPDATE_N = 6,
+  NI_PFI_OUTPUT_AO_START1 = 7,
+  NI_PFI_OUTPUT_AI_START_PULSE = 8,
+  NI_PFI_OUTPUT_G_SRC0 = 9,
+  NI_PFI_OUTPUT_G_GATE0 = 10,
+  NI_PFI_OUTPUT_EXT_STROBE = 11,
+  NI_PFI_OUTPUT_AI_EXT_MUX_CLK = 12,
+  NI_PFI_OUTPUT_GOUT0 = 13,
+  NI_PFI_OUTPUT_GOUT1 = 14,
+  NI_PFI_OUTPUT_FREQ_OUT = 15,
+  NI_PFI_OUTPUT_PFI_DO = 16,
+  NI_PFI_OUTPUT_I_ATRIG = 17,
+  NI_PFI_OUTPUT_RTSI0 = 18,
+  NI_PFI_OUTPUT_PXI_STAR_TRIGGER_IN = 26,
+  NI_PFI_OUTPUT_SCXI_TRIG1 = 27,
+  NI_PFI_OUTPUT_DIO_CHANGE_DETECT_RTSI = 28,
+  NI_PFI_OUTPUT_CDI_SAMPLE = 29,
+  NI_PFI_OUTPUT_CDO_UPDATE = 30
+};
+#define NI_PFI_OUTPUT_RTSI(x) (NI_PFI_OUTPUT_RTSI0 + (x))
+enum ni_660x_pfi_routing {
+  NI_660X_PFI_OUTPUT_COUNTER = 1,
+  NI_660X_PFI_OUTPUT_DIO = 2,
+};
+#define NI_EXT_PFI(x) (NI_USUAL_PFI_SELECT(x) - 1)
+#define NI_EXT_RTSI(x) (NI_USUAL_RTSI_SELECT(x) - 1)
+enum ni_m_series_cdio_scan_begin_src {
+  NI_CDIO_SCAN_BEGIN_SRC_GROUND = 0,
+  NI_CDIO_SCAN_BEGIN_SRC_AI_START = 18,
+  NI_CDIO_SCAN_BEGIN_SRC_AI_CONVERT = 19,
+  NI_CDIO_SCAN_BEGIN_SRC_PXI_STAR_TRIGGER = 20,
+  NI_CDIO_SCAN_BEGIN_SRC_G0_OUT = 28,
+  NI_CDIO_SCAN_BEGIN_SRC_G1_OUT = 29,
+  NI_CDIO_SCAN_BEGIN_SRC_ANALOG_TRIGGER = 30,
+  NI_CDIO_SCAN_BEGIN_SRC_AO_UPDATE = 31,
+  NI_CDIO_SCAN_BEGIN_SRC_FREQ_OUT = 32,
+  NI_CDIO_SCAN_BEGIN_SRC_DIO_CHANGE_DETECT_IRQ = 33
+};
+#define NI_CDIO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x)
+#define NI_CDIO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x)
+#define NI_AO_SCAN_BEGIN_SRC_PFI(x) NI_USUAL_PFI_SELECT(x)
+#define NI_AO_SCAN_BEGIN_SRC_RTSI(x) NI_USUAL_RTSI_SELECT(x)
+enum ni_freq_out_clock_source_bits {
+  NI_FREQ_OUT_TIMEBASE_1_DIV_2_CLOCK_SRC,
+  NI_FREQ_OUT_TIMEBASE_2_CLOCK_SRC
+};
+enum amplc_dio_clock_source {
+  AMPLC_DIO_CLK_CLKN,
+  AMPLC_DIO_CLK_10MHZ,
+  AMPLC_DIO_CLK_1MHZ,
+  AMPLC_DIO_CLK_100KHZ,
+  AMPLC_DIO_CLK_10KHZ,
+  AMPLC_DIO_CLK_1KHZ,
+  AMPLC_DIO_CLK_OUTNM1,
+  AMPLC_DIO_CLK_EXT,
+  AMPLC_DIO_CLK_VCC,
+  AMPLC_DIO_CLK_GND,
+  AMPLC_DIO_CLK_PAT_PRESENT,
+  AMPLC_DIO_CLK_20MHZ
+};
+enum amplc_dio_ts_clock_src {
+  AMPLC_DIO_TS_CLK_1GHZ,
+  AMPLC_DIO_TS_CLK_1MHZ,
+  AMPLC_DIO_TS_CLK_1KHZ
+};
+enum amplc_dio_gate_source {
+  AMPLC_DIO_GAT_VCC,
+  AMPLC_DIO_GAT_GND,
+  AMPLC_DIO_GAT_GATN,
+  AMPLC_DIO_GAT_NOUTNM2,
+  AMPLC_DIO_GAT_RESERVED4,
+  AMPLC_DIO_GAT_RESERVED5,
+  AMPLC_DIO_GAT_RESERVED6,
+  AMPLC_DIO_GAT_RESERVED7,
+  AMPLC_DIO_GAT_NGATN = 6,
+  AMPLC_DIO_GAT_OUTNM2,
+  AMPLC_DIO_GAT_PAT_PRESENT,
+  AMPLC_DIO_GAT_PAT_OCCURRED,
+  AMPLC_DIO_GAT_PAT_GONE,
+  AMPLC_DIO_GAT_NPAT_PRESENT,
+  AMPLC_DIO_GAT_NPAT_OCCURRED,
+  AMPLC_DIO_GAT_NPAT_GONE
+};
+enum ke_counter_clock_source {
+  KE_CLK_20MHZ,
+  KE_CLK_4MHZ,
+  KE_CLK_EXT
+};
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/counter.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/counter.h
new file mode 100644
index 0000000..091e33d
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/counter.h
@@ -0,0 +1,93 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_COUNTER_H_
+#define _UAPI_COUNTER_H_
+#include <linux/ioctl.h>
+#include <linux/types.h>
+enum counter_component_type {
+  COUNTER_COMPONENT_NONE,
+  COUNTER_COMPONENT_SIGNAL,
+  COUNTER_COMPONENT_COUNT,
+  COUNTER_COMPONENT_FUNCTION,
+  COUNTER_COMPONENT_SYNAPSE_ACTION,
+  COUNTER_COMPONENT_EXTENSION,
+};
+enum counter_scope {
+  COUNTER_SCOPE_DEVICE,
+  COUNTER_SCOPE_SIGNAL,
+  COUNTER_SCOPE_COUNT,
+};
+struct counter_component {
+  __u8 type;
+  __u8 scope;
+  __u8 parent;
+  __u8 id;
+};
+enum counter_event_type {
+  COUNTER_EVENT_OVERFLOW,
+  COUNTER_EVENT_UNDERFLOW,
+  COUNTER_EVENT_OVERFLOW_UNDERFLOW,
+  COUNTER_EVENT_THRESHOLD,
+  COUNTER_EVENT_INDEX,
+};
+struct counter_watch {
+  struct counter_component component;
+  __u8 event;
+  __u8 channel;
+};
+#define COUNTER_ADD_WATCH_IOCTL _IOW(0x3E, 0x00, struct counter_watch)
+#define COUNTER_ENABLE_EVENTS_IOCTL _IO(0x3E, 0x01)
+#define COUNTER_DISABLE_EVENTS_IOCTL _IO(0x3E, 0x02)
+struct counter_event {
+  __aligned_u64 timestamp;
+  __aligned_u64 value;
+  struct counter_watch watch;
+  __u8 status;
+};
+enum counter_count_direction {
+  COUNTER_COUNT_DIRECTION_FORWARD,
+  COUNTER_COUNT_DIRECTION_BACKWARD,
+};
+enum counter_count_mode {
+  COUNTER_COUNT_MODE_NORMAL,
+  COUNTER_COUNT_MODE_RANGE_LIMIT,
+  COUNTER_COUNT_MODE_NON_RECYCLE,
+  COUNTER_COUNT_MODE_MODULO_N,
+};
+enum counter_function {
+  COUNTER_FUNCTION_INCREASE,
+  COUNTER_FUNCTION_DECREASE,
+  COUNTER_FUNCTION_PULSE_DIRECTION,
+  COUNTER_FUNCTION_QUADRATURE_X1_A,
+  COUNTER_FUNCTION_QUADRATURE_X1_B,
+  COUNTER_FUNCTION_QUADRATURE_X2_A,
+  COUNTER_FUNCTION_QUADRATURE_X2_B,
+  COUNTER_FUNCTION_QUADRATURE_X4,
+};
+enum counter_signal_level {
+  COUNTER_SIGNAL_LEVEL_LOW,
+  COUNTER_SIGNAL_LEVEL_HIGH,
+};
+enum counter_synapse_action {
+  COUNTER_SYNAPSE_ACTION_NONE,
+  COUNTER_SYNAPSE_ACTION_RISING_EDGE,
+  COUNTER_SYNAPSE_ACTION_FALLING_EDGE,
+  COUNTER_SYNAPSE_ACTION_BOTH_EDGES,
+};
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cxl_mem.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
index 851bd79..15e9e29 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cxl_mem.h
@@ -21,7 +21,7 @@
 #include <linux/types.h>
 #define CXL_MEM_QUERY_COMMANDS _IOR(0xCE, 1, struct cxl_mem_query_commands)
 #define CXL_MEM_SEND_COMMAND _IOWR(0xCE, 2, struct cxl_send_command)
-#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(MAX, "invalid / last command")
+#define CXL_CMDS ___C(INVALID, "Invalid Command"), ___C(IDENTIFY, "Identify Command"), ___C(RAW, "Raw device command"), ___C(GET_SUPPORTED_LOGS, "Get Supported Logs"), ___C(GET_FW_INFO, "Get FW Info"), ___C(GET_PARTITION_INFO, "Get Partition Information"), ___C(GET_LSA, "Get Label Storage Area"), ___C(GET_HEALTH_INFO, "Get Health Info"), ___C(GET_LOG, "Get Log"), ___C(SET_PARTITION_INFO, "Set Partition Information"), ___C(SET_LSA, "Set Label Storage Area"), ___C(GET_ALERT_CONFIG, "Get Alert Configuration"), ___C(SET_ALERT_CONFIG, "Set Alert Configuration"), ___C(GET_SHUTDOWN_STATE, "Get Shutdown State"), ___C(SET_SHUTDOWN_STATE, "Set Shutdown State"), ___C(GET_POISON, "Get Poison List"), ___C(INJECT_POISON, "Inject Poison"), ___C(CLEAR_POISON, "Clear Poison"), ___C(GET_SCAN_MEDIA_CAPS, "Get Scan Media Capabilities"), ___C(SCAN_MEDIA, "Scan Media"), ___C(GET_SCAN_MEDIA, "Get Scan Media Results"), ___C(MAX, "invalid / last command")
 #define ___C(a,b) CXL_MEM_COMMAND_ID_ ##a
 enum {
   CXL_CMDS
@@ -30,7 +30,7 @@
 #define ___C(a,b) { b }
 static const struct {
   const char * name;
-} cxl_command_names[] = {
+} cxl_command_names[] __attribute__((__unused__)) = {
   CXL_CMDS
 };
 #undef ___C
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cyclades.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cyclades.h
index 60bc4af..c0aa7aa 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cyclades.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/cyclades.h
@@ -18,24 +18,14 @@
  ****************************************************************************/
 #ifndef _UAPI_LINUX_CYCLADES_H
 #define _UAPI_LINUX_CYCLADES_H
-#include <linux/types.h>
+#warning "Support for features provided by this header has been removed"
+#warning "Please consider updating your code"
 struct cyclades_monitor {
   unsigned long int_count;
   unsigned long char_count;
   unsigned long char_max;
   unsigned long char_last;
 };
-struct cyclades_idle_stats {
-  __kernel_old_time_t in_use;
-  __kernel_old_time_t recv_idle;
-  __kernel_old_time_t xmit_idle;
-  unsigned long recv_bytes;
-  unsigned long xmit_bytes;
-  unsigned long overruns;
-  unsigned long frame_errs;
-  unsigned long parity_errs;
-};
-#define CYCLADES_MAGIC 0x4359
 #define CYGETMON 0x435901
 #define CYGETTHRESH 0x435902
 #define CYSETTHRESH 0x435903
@@ -54,253 +44,4 @@
 #define CYGETCD1400VER 0x435910
 #define CYSETWAIT 0x435912
 #define CYGETWAIT 0x435913
-#define CZIOC ('M' << 8)
-#define CZ_NBOARDS (CZIOC | 0xfa)
-#define CZ_BOOT_START (CZIOC | 0xfb)
-#define CZ_BOOT_DATA (CZIOC | 0xfc)
-#define CZ_BOOT_END (CZIOC | 0xfd)
-#define CZ_TEST (CZIOC | 0xfe)
-#define CZ_DEF_POLL (HZ / 25)
-#define MAX_BOARD 4
-#define MAX_DEV 256
-#define CYZ_MAX_SPEED 921600
-#define CYZ_FIFO_SIZE 16
-#define CYZ_BOOT_NWORDS 0x100
-struct CYZ_BOOT_CTRL {
-  unsigned short nboard;
-  int status[MAX_BOARD];
-  int nchannel[MAX_BOARD];
-  int fw_rev[MAX_BOARD];
-  unsigned long offset;
-  unsigned long data[CYZ_BOOT_NWORDS];
-};
-#ifndef DP_WINDOW_SIZE
-#define DP_WINDOW_SIZE (0x00080000)
-#define ZE_DP_WINDOW_SIZE (0x00100000)
-#define CTRL_WINDOW_SIZE (0x00000080)
-struct CUSTOM_REG {
-  __u32 fpga_id;
-  __u32 fpga_version;
-  __u32 cpu_start;
-  __u32 cpu_stop;
-  __u32 misc_reg;
-  __u32 idt_mode;
-  __u32 uart_irq_status;
-  __u32 clear_timer0_irq;
-  __u32 clear_timer1_irq;
-  __u32 clear_timer2_irq;
-  __u32 test_register;
-  __u32 test_count;
-  __u32 timer_select;
-  __u32 pr_uart_irq_status;
-  __u32 ram_wait_state;
-  __u32 uart_wait_state;
-  __u32 timer_wait_state;
-  __u32 ack_wait_state;
-};
-struct RUNTIME_9060 {
-  __u32 loc_addr_range;
-  __u32 loc_addr_base;
-  __u32 loc_arbitr;
-  __u32 endian_descr;
-  __u32 loc_rom_range;
-  __u32 loc_rom_base;
-  __u32 loc_bus_descr;
-  __u32 loc_range_mst;
-  __u32 loc_base_mst;
-  __u32 loc_range_io;
-  __u32 pci_base_mst;
-  __u32 pci_conf_io;
-  __u32 filler1;
-  __u32 filler2;
-  __u32 filler3;
-  __u32 filler4;
-  __u32 mail_box_0;
-  __u32 mail_box_1;
-  __u32 mail_box_2;
-  __u32 mail_box_3;
-  __u32 filler5;
-  __u32 filler6;
-  __u32 filler7;
-  __u32 filler8;
-  __u32 pci_doorbell;
-  __u32 loc_doorbell;
-  __u32 intr_ctrl_stat;
-  __u32 init_ctrl;
-};
-#define WIN_RAM 0x00000001L
-#define WIN_CREG 0x14000001L
-#define TIMER_BY_1M 0x00
-#define TIMER_BY_256K 0x01
-#define TIMER_BY_128K 0x02
-#define TIMER_BY_32K 0x03
-#endif
-#ifndef ZFIRM_ID
-#define MAX_CHAN 64
-#define ID_ADDRESS 0x00000180L
-#define ZFIRM_ID 0x5557465AL
-#define ZFIRM_HLT 0x59505B5CL
-#define ZFIRM_RST 0x56040674L
-#define ZF_TINACT_DEF 1000
-#define ZF_TINACT ZF_TINACT_DEF
-struct FIRM_ID {
-  __u32 signature;
-  __u32 zfwctrl_addr;
-};
-#define C_OS_LINUX 0x00000030
-#define C_CH_DISABLE 0x00000000
-#define C_CH_TXENABLE 0x00000001
-#define C_CH_RXENABLE 0x00000002
-#define C_CH_ENABLE 0x00000003
-#define C_CH_LOOPBACK 0x00000004
-#define C_PR_NONE 0x00000000
-#define C_PR_ODD 0x00000001
-#define C_PR_EVEN 0x00000002
-#define C_PR_MARK 0x00000004
-#define C_PR_SPACE 0x00000008
-#define C_PR_PARITY 0x000000ff
-#define C_PR_DISCARD 0x00000100
-#define C_PR_IGNORE 0x00000200
-#define C_DL_CS5 0x00000001
-#define C_DL_CS6 0x00000002
-#define C_DL_CS7 0x00000004
-#define C_DL_CS8 0x00000008
-#define C_DL_CS 0x0000000f
-#define C_DL_1STOP 0x00000010
-#define C_DL_15STOP 0x00000020
-#define C_DL_2STOP 0x00000040
-#define C_DL_STOP 0x000000f0
-#define C_IN_DISABLE 0x00000000
-#define C_IN_TXBEMPTY 0x00000001
-#define C_IN_TXLOWWM 0x00000002
-#define C_IN_RXHIWM 0x00000010
-#define C_IN_RXNNDT 0x00000020
-#define C_IN_MDCD 0x00000100
-#define C_IN_MDSR 0x00000200
-#define C_IN_MRI 0x00000400
-#define C_IN_MCTS 0x00000800
-#define C_IN_RXBRK 0x00001000
-#define C_IN_PR_ERROR 0x00002000
-#define C_IN_FR_ERROR 0x00004000
-#define C_IN_OVR_ERROR 0x00008000
-#define C_IN_RXOFL 0x00010000
-#define C_IN_IOCTLW 0x00020000
-#define C_IN_MRTS 0x00040000
-#define C_IN_ICHAR 0x00080000
-#define C_FL_OXX 0x00000001
-#define C_FL_IXX 0x00000002
-#define C_FL_OIXANY 0x00000004
-#define C_FL_SWFLOW 0x0000000f
-#define C_FS_TXIDLE 0x00000000
-#define C_FS_SENDING 0x00000001
-#define C_FS_SWFLOW 0x00000002
-#define C_RS_PARAM 0x80000000
-#define C_RS_RTS 0x00000001
-#define C_RS_DTR 0x00000004
-#define C_RS_DCD 0x00000100
-#define C_RS_DSR 0x00000200
-#define C_RS_RI 0x00000400
-#define C_RS_CTS 0x00000800
-#define C_CM_RESET 0x01
-#define C_CM_IOCTL 0x02
-#define C_CM_IOCTLW 0x03
-#define C_CM_IOCTLM 0x04
-#define C_CM_SENDXOFF 0x10
-#define C_CM_SENDXON 0x11
-#define C_CM_CLFLOW 0x12
-#define C_CM_SENDBRK 0x41
-#define C_CM_INTBACK 0x42
-#define C_CM_SET_BREAK 0x43
-#define C_CM_CLR_BREAK 0x44
-#define C_CM_CMD_DONE 0x45
-#define C_CM_INTBACK2 0x46
-#define C_CM_TINACT 0x51
-#define C_CM_IRQ_ENBL 0x52
-#define C_CM_IRQ_DSBL 0x53
-#define C_CM_ACK_ENBL 0x54
-#define C_CM_ACK_DSBL 0x55
-#define C_CM_FLUSH_RX 0x56
-#define C_CM_FLUSH_TX 0x57
-#define C_CM_Q_ENABLE 0x58
-#define C_CM_Q_DISABLE 0x59
-#define C_CM_TXBEMPTY 0x60
-#define C_CM_TXLOWWM 0x61
-#define C_CM_RXHIWM 0x62
-#define C_CM_RXNNDT 0x63
-#define C_CM_TXFEMPTY 0x64
-#define C_CM_ICHAR 0x65
-#define C_CM_MDCD 0x70
-#define C_CM_MDSR 0x71
-#define C_CM_MRI 0x72
-#define C_CM_MCTS 0x73
-#define C_CM_MRTS 0x74
-#define C_CM_RXBRK 0x84
-#define C_CM_PR_ERROR 0x85
-#define C_CM_FR_ERROR 0x86
-#define C_CM_OVR_ERROR 0x87
-#define C_CM_RXOFL 0x88
-#define C_CM_CMDERROR 0x90
-#define C_CM_FATAL 0x91
-#define C_CM_HW_RESET 0x92
-struct CH_CTRL {
-  __u32 op_mode;
-  __u32 intr_enable;
-  __u32 sw_flow;
-  __u32 flow_status;
-  __u32 comm_baud;
-  __u32 comm_parity;
-  __u32 comm_data_l;
-  __u32 comm_flags;
-  __u32 hw_flow;
-  __u32 rs_control;
-  __u32 rs_status;
-  __u32 flow_xon;
-  __u32 flow_xoff;
-  __u32 hw_overflow;
-  __u32 sw_overflow;
-  __u32 comm_error;
-  __u32 ichar;
-  __u32 filler[7];
-};
-struct BUF_CTRL {
-  __u32 flag_dma;
-  __u32 tx_bufaddr;
-  __u32 tx_bufsize;
-  __u32 tx_threshold;
-  __u32 tx_get;
-  __u32 tx_put;
-  __u32 rx_bufaddr;
-  __u32 rx_bufsize;
-  __u32 rx_threshold;
-  __u32 rx_get;
-  __u32 rx_put;
-  __u32 filler[5];
-};
-struct BOARD_CTRL {
-  __u32 n_channel;
-  __u32 fw_version;
-  __u32 op_system;
-  __u32 dr_version;
-  __u32 inactivity;
-  __u32 hcmd_channel;
-  __u32 hcmd_param;
-  __u32 fwcmd_channel;
-  __u32 fwcmd_param;
-  __u32 zf_int_queue_addr;
-  __u32 filler[6];
-};
-#define QUEUE_SIZE (10 * MAX_CHAN)
-struct INT_QUEUE {
-  unsigned char intr_code[QUEUE_SIZE];
-  unsigned long channel[QUEUE_SIZE];
-  unsigned long param[QUEUE_SIZE];
-  unsigned long put;
-  unsigned long get;
-};
-struct ZFW_CTRL {
-  struct BOARD_CTRL board_ctrl;
-  struct CH_CTRL ch_ctrl[MAX_CHAN];
-  struct BUF_CTRL buf_ctrl[MAX_CHAN];
-};
-#endif
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/devlink.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/devlink.h
index e6e006f..a809306 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/devlink.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/devlink.h
@@ -99,6 +99,10 @@
   DEVLINK_CMD_TRAP_POLICER_NEW,
   DEVLINK_CMD_TRAP_POLICER_DEL,
   DEVLINK_CMD_HEALTH_REPORTER_TEST,
+  DEVLINK_CMD_RATE_GET,
+  DEVLINK_CMD_RATE_SET,
+  DEVLINK_CMD_RATE_NEW,
+  DEVLINK_CMD_RATE_DEL,
   __DEVLINK_CMD_MAX,
   DEVLINK_CMD_MAX = __DEVLINK_CMD_MAX - 1
 };
@@ -141,6 +145,10 @@
   DEVLINK_PORT_FLAVOUR_UNUSED,
   DEVLINK_PORT_FLAVOUR_PCI_SF,
 };
+enum devlink_rate_type {
+  DEVLINK_RATE_TYPE_LEAF,
+  DEVLINK_RATE_TYPE_NODE,
+};
 enum devlink_param_cmode {
   DEVLINK_PARAM_CMODE_RUNTIME,
   DEVLINK_PARAM_CMODE_DRIVERINIT,
@@ -370,6 +378,12 @@
   DEVLINK_ATTR_RELOAD_ACTION_INFO,
   DEVLINK_ATTR_RELOAD_ACTION_STATS,
   DEVLINK_ATTR_PORT_PCI_SF_NUMBER,
+  DEVLINK_ATTR_RATE_TYPE,
+  DEVLINK_ATTR_RATE_TX_SHARE,
+  DEVLINK_ATTR_RATE_TX_MAX,
+  DEVLINK_ATTR_RATE_NODE_NAME,
+  DEVLINK_ATTR_RATE_PARENT_NODE_NAME,
+  DEVLINK_ATTR_REGION_MAX_SNAPSHOTS,
   __DEVLINK_ATTR_MAX,
   DEVLINK_ATTR_MAX = __DEVLINK_ATTR_MAX - 1
 };
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dlm_device.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dlm_device.h
index 9cf41a8..5e54d2e 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dlm_device.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dlm_device.h
@@ -39,12 +39,12 @@
   void __user * bastaddr;
   struct dlm_lksb __user * lksb;
   char lvb[DLM_USER_LVB_LEN];
-  char name[0];
+  char name[];
 };
 struct dlm_lspace_params {
   __u32 flags;
   __u32 minor;
-  char name[0];
+  char name[];
 };
 struct dlm_purge_params {
   __u32 nodeid;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
index 4c0a9f0..09f8a98 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dm-ioctl.h
@@ -55,6 +55,8 @@
   __u32 next;
   char name[0];
 };
+#define DM_NAME_LIST_FLAG_HAS_UUID 1
+#define DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID 2
 struct dm_target_versions {
   __u32 next;
   __u32 version[3];
@@ -104,9 +106,9 @@
 #define DM_TARGET_MSG _IOWR(DM_IOCTL, DM_TARGET_MSG_CMD, struct dm_ioctl)
 #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl)
 #define DM_VERSION_MAJOR 4
-#define DM_VERSION_MINOR 44
+#define DM_VERSION_MINOR 45
 #define DM_VERSION_PATCHLEVEL 0
-#define DM_VERSION_EXTRA "-ioctl(2021-02-01)"
+#define DM_VERSION_EXTRA "-ioctl(2021-03-22)"
 #define DM_READONLY_FLAG (1 << 0)
 #define DM_SUSPEND_FLAG (1 << 1)
 #define DM_PERSISTENT_DEV_FLAG (1 << 3)
@@ -124,4 +126,5 @@
 #define DM_DATA_OUT_FLAG (1 << 16)
 #define DM_DEFERRED_REMOVE (1 << 17)
 #define DM_INTERNAL_SUSPEND_FLAG (1 << 18)
+#define DM_IMA_MEASUREMENT_FLAG (1 << 19)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
index db7c7e5..6164991 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/dqblk_xfs.h
@@ -130,6 +130,9 @@
   __s32 qs_rtbtimelimit;
   __u16 qs_bwarnlimit;
   __u16 qs_iwarnlimit;
-  __u64 qs_pad2[8];
+  __u16 qs_rtbwarnlimit;
+  __u16 qs_pad3;
+  __u32 qs_pad4;
+  __u64 qs_pad2[7];
 };
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/elf.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/elf.h
index f9f122a..7655f12 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/elf.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/elf.h
@@ -360,6 +360,7 @@
 #define NT_ARM_PACA_KEYS 0x407
 #define NT_ARM_PACG_KEYS 0x408
 #define NT_ARM_TAGGED_ADDR_CTRL 0x409
+#define NT_ARM_PAC_ENABLED_KEYS 0x40a
 #define NT_ARC_V2 0x600
 #define NT_VMCOREDD 0x700
 #define NT_MIPS_DSP 0x800
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ethtool.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ethtool.h
index 021a69b..741ea2a 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ethtool.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ethtool.h
@@ -78,6 +78,7 @@
   ETHTOOL_RX_COPYBREAK,
   ETHTOOL_TX_COPYBREAK,
   ETHTOOL_PFC_PREVENTION_TOUT,
+  ETHTOOL_TX_COPYBREAK_BUF_SIZE,
   __ETHTOOL_TUNABLE_COUNT,
 };
 enum tunable_type_id {
@@ -207,6 +208,7 @@
   ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE,
   ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED,
   ETHTOOL_LINK_EXT_STATE_OVERHEAT,
+  ETHTOOL_LINK_EXT_STATE_MODULE,
 };
 enum ethtool_link_ext_substate_autoneg {
   ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 1,
@@ -232,11 +234,16 @@
 enum ethtool_link_ext_substate_bad_signal_integrity {
   ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 1,
   ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE,
+  ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_REFERENCE_CLOCK_LOST,
+  ETHTOOL_LINK_EXT_SUBSTATE_BSI_SERDES_ALOS,
 };
 enum ethtool_link_ext_substate_cable_issue {
   ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 1,
   ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE,
 };
+enum ethtool_link_ext_substate_module {
+  ETHTOOL_LINK_EXT_SUBSTATE_MODULE_CMIS_NOT_READY = 1,
+};
 #define ETH_GSTRING_LEN 32
 enum ethtool_stringset {
   ETH_SS_TEST = 0,
@@ -255,8 +262,21 @@
   ETH_SS_TS_TX_TYPES,
   ETH_SS_TS_RX_FILTERS,
   ETH_SS_UDP_TUNNEL_TYPES,
+  ETH_SS_STATS_STD,
+  ETH_SS_STATS_ETH_PHY,
+  ETH_SS_STATS_ETH_MAC,
+  ETH_SS_STATS_ETH_CTRL,
+  ETH_SS_STATS_RMON,
   ETH_SS_COUNT
 };
+enum ethtool_module_power_mode_policy {
+  ETHTOOL_MODULE_POWER_MODE_POLICY_HIGH = 1,
+  ETHTOOL_MODULE_POWER_MODE_POLICY_AUTO,
+};
+enum ethtool_module_power_mode {
+  ETHTOOL_MODULE_POWER_MODE_LOW = 1,
+  ETHTOOL_MODULE_POWER_MODE_HIGH,
+};
 struct ethtool_gstrings {
   __u32 cmd;
   __u32 string_set;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
index 67091a1..7dcae22 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ethtool_netlink.h
@@ -49,6 +49,13 @@
   ETHTOOL_MSG_CABLE_TEST_ACT,
   ETHTOOL_MSG_CABLE_TEST_TDR_ACT,
   ETHTOOL_MSG_TUNNEL_INFO_GET,
+  ETHTOOL_MSG_FEC_GET,
+  ETHTOOL_MSG_FEC_SET,
+  ETHTOOL_MSG_MODULE_EEPROM_GET,
+  ETHTOOL_MSG_STATS_GET,
+  ETHTOOL_MSG_PHC_VCLOCKS_GET,
+  ETHTOOL_MSG_MODULE_GET,
+  ETHTOOL_MSG_MODULE_SET,
   __ETHTOOL_MSG_USER_CNT,
   ETHTOOL_MSG_USER_MAX = __ETHTOOL_MSG_USER_CNT - 1
 };
@@ -83,6 +90,13 @@
   ETHTOOL_MSG_CABLE_TEST_NTF,
   ETHTOOL_MSG_CABLE_TEST_TDR_NTF,
   ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY,
+  ETHTOOL_MSG_FEC_GET_REPLY,
+  ETHTOOL_MSG_FEC_NTF,
+  ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY,
+  ETHTOOL_MSG_STATS_GET_REPLY,
+  ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY,
+  ETHTOOL_MSG_MODULE_GET_REPLY,
+  ETHTOOL_MSG_MODULE_NTF,
   __ETHTOOL_MSG_KERNEL_CNT,
   ETHTOOL_MSG_KERNEL_MAX = __ETHTOOL_MSG_KERNEL_CNT - 1
 };
@@ -236,6 +250,7 @@
   ETHTOOL_A_RINGS_RX_MINI,
   ETHTOOL_A_RINGS_RX_JUMBO,
   ETHTOOL_A_RINGS_TX,
+  ETHTOOL_A_RINGS_RX_BUF_LEN,
   __ETHTOOL_A_RINGS_CNT,
   ETHTOOL_A_RINGS_MAX = (__ETHTOOL_A_RINGS_CNT - 1)
 };
@@ -278,6 +293,8 @@
   ETHTOOL_A_COALESCE_TX_USECS_HIGH,
   ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH,
   ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL,
+  ETHTOOL_A_COALESCE_USE_CQE_MODE_TX,
+  ETHTOOL_A_COALESCE_USE_CQE_MODE_RX,
   __ETHTOOL_A_COALESCE_CNT,
   ETHTOOL_A_COALESCE_MAX = (__ETHTOOL_A_COALESCE_CNT - 1)
 };
@@ -322,6 +339,14 @@
   ETHTOOL_A_TSINFO_MAX = (__ETHTOOL_A_TSINFO_CNT - 1)
 };
 enum {
+  ETHTOOL_A_PHC_VCLOCKS_UNSPEC,
+  ETHTOOL_A_PHC_VCLOCKS_HEADER,
+  ETHTOOL_A_PHC_VCLOCKS_NUM,
+  ETHTOOL_A_PHC_VCLOCKS_INDEX,
+  __ETHTOOL_A_PHC_VCLOCKS_CNT,
+  ETHTOOL_A_PHC_VCLOCKS_MAX = (__ETHTOOL_A_PHC_VCLOCKS_CNT - 1)
+};
+enum {
   ETHTOOL_A_CABLE_TEST_UNSPEC,
   ETHTOOL_A_CABLE_TEST_HEADER,
   __ETHTOOL_A_CABLE_TEST_CNT,
@@ -461,6 +486,121 @@
   __ETHTOOL_A_TUNNEL_INFO_CNT,
   ETHTOOL_A_TUNNEL_INFO_MAX = (__ETHTOOL_A_TUNNEL_INFO_CNT - 1)
 };
+enum {
+  ETHTOOL_A_FEC_UNSPEC,
+  ETHTOOL_A_FEC_HEADER,
+  ETHTOOL_A_FEC_MODES,
+  ETHTOOL_A_FEC_AUTO,
+  ETHTOOL_A_FEC_ACTIVE,
+  ETHTOOL_A_FEC_STATS,
+  __ETHTOOL_A_FEC_CNT,
+  ETHTOOL_A_FEC_MAX = (__ETHTOOL_A_FEC_CNT - 1)
+};
+enum {
+  ETHTOOL_A_FEC_STAT_UNSPEC,
+  ETHTOOL_A_FEC_STAT_PAD,
+  ETHTOOL_A_FEC_STAT_CORRECTED,
+  ETHTOOL_A_FEC_STAT_UNCORR,
+  ETHTOOL_A_FEC_STAT_CORR_BITS,
+  __ETHTOOL_A_FEC_STAT_CNT,
+  ETHTOOL_A_FEC_STAT_MAX = (__ETHTOOL_A_FEC_STAT_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_EEPROM_UNSPEC,
+  ETHTOOL_A_MODULE_EEPROM_HEADER,
+  ETHTOOL_A_MODULE_EEPROM_OFFSET,
+  ETHTOOL_A_MODULE_EEPROM_LENGTH,
+  ETHTOOL_A_MODULE_EEPROM_PAGE,
+  ETHTOOL_A_MODULE_EEPROM_BANK,
+  ETHTOOL_A_MODULE_EEPROM_I2C_ADDRESS,
+  ETHTOOL_A_MODULE_EEPROM_DATA,
+  __ETHTOOL_A_MODULE_EEPROM_CNT,
+  ETHTOOL_A_MODULE_EEPROM_MAX = (__ETHTOOL_A_MODULE_EEPROM_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_UNSPEC,
+  ETHTOOL_A_STATS_PAD,
+  ETHTOOL_A_STATS_HEADER,
+  ETHTOOL_A_STATS_GROUPS,
+  ETHTOOL_A_STATS_GRP,
+  __ETHTOOL_A_STATS_CNT,
+  ETHTOOL_A_STATS_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+};
+enum {
+  ETHTOOL_STATS_ETH_PHY,
+  ETHTOOL_STATS_ETH_MAC,
+  ETHTOOL_STATS_ETH_CTRL,
+  ETHTOOL_STATS_RMON,
+  __ETHTOOL_STATS_CNT
+};
+enum {
+  ETHTOOL_A_STATS_GRP_UNSPEC,
+  ETHTOOL_A_STATS_GRP_PAD,
+  ETHTOOL_A_STATS_GRP_ID,
+  ETHTOOL_A_STATS_GRP_SS_ID,
+  ETHTOOL_A_STATS_GRP_STAT,
+  ETHTOOL_A_STATS_GRP_HIST_RX,
+  ETHTOOL_A_STATS_GRP_HIST_TX,
+  ETHTOOL_A_STATS_GRP_HIST_BKT_LOW,
+  ETHTOOL_A_STATS_GRP_HIST_BKT_HI,
+  ETHTOOL_A_STATS_GRP_HIST_VAL,
+  __ETHTOOL_A_STATS_GRP_CNT,
+  ETHTOOL_A_STATS_GRP_MAX = (__ETHTOOL_A_STATS_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_PHY_5_SYM_ERR,
+  __ETHTOOL_A_STATS_ETH_PHY_CNT,
+  ETHTOOL_A_STATS_ETH_PHY_MAX = (__ETHTOOL_A_STATS_ETH_PHY_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_MAC_2_TX_PKT,
+  ETHTOOL_A_STATS_ETH_MAC_3_SINGLE_COL,
+  ETHTOOL_A_STATS_ETH_MAC_4_MULTI_COL,
+  ETHTOOL_A_STATS_ETH_MAC_5_RX_PKT,
+  ETHTOOL_A_STATS_ETH_MAC_6_FCS_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_7_ALIGN_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_8_TX_BYTES,
+  ETHTOOL_A_STATS_ETH_MAC_9_TX_DEFER,
+  ETHTOOL_A_STATS_ETH_MAC_10_LATE_COL,
+  ETHTOOL_A_STATS_ETH_MAC_11_XS_COL,
+  ETHTOOL_A_STATS_ETH_MAC_12_TX_INT_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_13_CS_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_14_RX_BYTES,
+  ETHTOOL_A_STATS_ETH_MAC_15_RX_INT_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_18_TX_MCAST,
+  ETHTOOL_A_STATS_ETH_MAC_19_TX_BCAST,
+  ETHTOOL_A_STATS_ETH_MAC_20_XS_DEFER,
+  ETHTOOL_A_STATS_ETH_MAC_21_RX_MCAST,
+  ETHTOOL_A_STATS_ETH_MAC_22_RX_BCAST,
+  ETHTOOL_A_STATS_ETH_MAC_23_IR_LEN_ERR,
+  ETHTOOL_A_STATS_ETH_MAC_24_OOR_LEN,
+  ETHTOOL_A_STATS_ETH_MAC_25_TOO_LONG_ERR,
+  __ETHTOOL_A_STATS_ETH_MAC_CNT,
+  ETHTOOL_A_STATS_ETH_MAC_MAX = (__ETHTOOL_A_STATS_ETH_MAC_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_ETH_CTRL_3_TX,
+  ETHTOOL_A_STATS_ETH_CTRL_4_RX,
+  ETHTOOL_A_STATS_ETH_CTRL_5_RX_UNSUP,
+  __ETHTOOL_A_STATS_ETH_CTRL_CNT,
+  ETHTOOL_A_STATS_ETH_CTRL_MAX = (__ETHTOOL_A_STATS_ETH_CTRL_CNT - 1)
+};
+enum {
+  ETHTOOL_A_STATS_RMON_UNDERSIZE,
+  ETHTOOL_A_STATS_RMON_OVERSIZE,
+  ETHTOOL_A_STATS_RMON_FRAG,
+  ETHTOOL_A_STATS_RMON_JABBER,
+  __ETHTOOL_A_STATS_RMON_CNT,
+  ETHTOOL_A_STATS_RMON_MAX = (__ETHTOOL_A_STATS_RMON_CNT - 1)
+};
+enum {
+  ETHTOOL_A_MODULE_UNSPEC,
+  ETHTOOL_A_MODULE_HEADER,
+  ETHTOOL_A_MODULE_POWER_MODE_POLICY,
+  ETHTOOL_A_MODULE_POWER_MODE,
+  __ETHTOOL_A_MODULE_CNT,
+  ETHTOOL_A_MODULE_MAX = (__ETHTOOL_A_MODULE_CNT - 1)
+};
 #define ETHTOOL_GENL_NAME "ethtool"
 #define ETHTOOL_GENL_VERSION 1
 #define ETHTOOL_MCGRP_MONITOR_NAME "monitor"
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fanotify.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fanotify.h
index c63d058..6249292 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fanotify.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fanotify.h
@@ -33,10 +33,12 @@
 #define FAN_MOVE_SELF 0x00000800
 #define FAN_OPEN_EXEC 0x00001000
 #define FAN_Q_OVERFLOW 0x00004000
+#define FAN_FS_ERROR 0x00008000
 #define FAN_OPEN_PERM 0x00010000
 #define FAN_ACCESS_PERM 0x00020000
 #define FAN_OPEN_EXEC_PERM 0x00040000
 #define FAN_EVENT_ON_CHILD 0x08000000
+#define FAN_RENAME 0x10000000
 #define FAN_ONDIR 0x40000000
 #define FAN_CLOSE (FAN_CLOSE_WRITE | FAN_CLOSE_NOWRITE)
 #define FAN_MOVE (FAN_MOVED_FROM | FAN_MOVED_TO)
@@ -49,11 +51,14 @@
 #define FAN_UNLIMITED_QUEUE 0x00000010
 #define FAN_UNLIMITED_MARKS 0x00000020
 #define FAN_ENABLE_AUDIT 0x00000040
+#define FAN_REPORT_PIDFD 0x00000080
 #define FAN_REPORT_TID 0x00000100
 #define FAN_REPORT_FID 0x00000200
 #define FAN_REPORT_DIR_FID 0x00000400
 #define FAN_REPORT_NAME 0x00000800
+#define FAN_REPORT_TARGET_FID 0x00001000
 #define FAN_REPORT_DFID_NAME (FAN_REPORT_DIR_FID | FAN_REPORT_NAME)
+#define FAN_REPORT_DFID_NAME_TARGET (FAN_REPORT_DFID_NAME | FAN_REPORT_FID | FAN_REPORT_TARGET_FID)
 #define FAN_ALL_INIT_FLAGS (FAN_CLOEXEC | FAN_NONBLOCK | FAN_ALL_CLASS_BITS | FAN_UNLIMITED_QUEUE | FAN_UNLIMITED_MARKS)
 #define FAN_MARK_ADD 0x00000001
 #define FAN_MARK_REMOVE 0x00000002
@@ -82,6 +87,10 @@
 #define FAN_EVENT_INFO_TYPE_FID 1
 #define FAN_EVENT_INFO_TYPE_DFID_NAME 2
 #define FAN_EVENT_INFO_TYPE_DFID 3
+#define FAN_EVENT_INFO_TYPE_PIDFD 4
+#define FAN_EVENT_INFO_TYPE_ERROR 5
+#define FAN_EVENT_INFO_TYPE_OLD_DFID_NAME 10
+#define FAN_EVENT_INFO_TYPE_NEW_DFID_NAME 12
 struct fanotify_event_info_header {
   __u8 info_type;
   __u8 pad;
@@ -92,6 +101,15 @@
   __kernel_fsid_t fsid;
   unsigned char handle[0];
 };
+struct fanotify_event_info_pidfd {
+  struct fanotify_event_info_header hdr;
+  __s32 pidfd;
+};
+struct fanotify_event_info_error {
+  struct fanotify_event_info_header hdr;
+  __s32 error;
+  __u32 error_count;
+};
 struct fanotify_response {
   __s32 fd;
   __u32 response;
@@ -100,6 +118,8 @@
 #define FAN_DENY 0x02
 #define FAN_AUDIT 0x10
 #define FAN_NOFD - 1
+#define FAN_NOPIDFD FAN_NOFD
+#define FAN_EPIDFD - 2
 #define FAN_EVENT_METADATA_LEN (sizeof(struct fanotify_event_metadata))
 #define FAN_EVENT_NEXT(meta,len) ((len) -= (meta)->event_len, (struct fanotify_event_metadata *) (((char *) (meta)) + (meta)->event_len))
 #define FAN_EVENT_OK(meta,len) ((long) (len) >= (long) FAN_EVENT_METADATA_LEN && (long) (meta)->event_len >= (long) FAN_EVENT_METADATA_LEN && (long) (meta)->event_len <= (long) (len))
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fs.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fs.h
index 0601768..3bb4183 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fs.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fs.h
@@ -129,6 +129,7 @@
 #define BLKSECDISCARD _IO(0x12, 125)
 #define BLKROTATIONAL _IO(0x12, 126)
 #define BLKZEROOUT _IO(0x12, 127)
+#define BLKGETDISKSEQ _IOR(0x12, 128, __u64)
 #define BMAP_IOCTL 1
 #define FIBMAP _IO(0x00, 1)
 #define FIGETBSZ _IO(0x00, 2)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fuse.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fuse.h
index efb5424..144e960 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fuse.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/fuse.h
@@ -20,7 +20,7 @@
 #define _LINUX_FUSE_H
 #include <stdint.h>
 #define FUSE_KERNEL_VERSION 7
-#define FUSE_KERNEL_MINOR_VERSION 33
+#define FUSE_KERNEL_MINOR_VERSION 36
 #define FUSE_ROOT_ID 1
 struct fuse_attr {
   uint64_t ino;
@@ -75,6 +75,7 @@
 #define FOPEN_NONSEEKABLE (1 << 2)
 #define FOPEN_CACHE_DIR (1 << 3)
 #define FOPEN_STREAM (1 << 4)
+#define FOPEN_NOFLUSH (1 << 5)
 #define FUSE_ASYNC_READ (1 << 0)
 #define FUSE_POSIX_LOCKS (1 << 1)
 #define FUSE_FILE_OPS (1 << 2)
@@ -104,7 +105,16 @@
 #define FUSE_MAP_ALIGNMENT (1 << 26)
 #define FUSE_SUBMOUNTS (1 << 27)
 #define FUSE_HANDLE_KILLPRIV_V2 (1 << 28)
+#define FUSE_SETXATTR_EXT (1 << 29)
+#define FUSE_INIT_EXT (1 << 30)
+#define FUSE_INIT_RESERVED (1 << 31)
+#define FUSE_SECURITY_CTX (1ULL << 32)
+#define FUSE_HAS_INODE_DAX (1ULL << 33)
+#if FUSE_KERNEL_VERSION > 7 || FUSE_KERNEL_VERSION == 7 && FUSE_KERNEL_MINOR_VERSION >= 36
+#define FUSE_PASSTHROUGH (1ULL << 63)
+#else
 #define FUSE_PASSTHROUGH (1 << 31)
+#endif
 #define CUSE_UNRESTRICTED_IOCTL (1 << 0)
 #define FUSE_RELEASE_FLUSH (1 << 0)
 #define FUSE_RELEASE_FLOCK_UNLOCK (1 << 1)
@@ -125,7 +135,9 @@
 #define FUSE_POLL_SCHEDULE_NOTIFY (1 << 0)
 #define FUSE_FSYNC_FDATASYNC (1 << 0)
 #define FUSE_ATTR_SUBMOUNT (1 << 0)
+#define FUSE_ATTR_DAX (1 << 1)
 #define FUSE_OPEN_KILL_SUIDGID (1 << 0)
+#define FUSE_SETXATTR_ACL_KILL_SGID (1 << 0)
 enum fuse_opcode {
   FUSE_LOOKUP = 1,
   FUSE_FORGET = 2,
@@ -174,6 +186,7 @@
   FUSE_COPY_FILE_RANGE = 47,
   FUSE_SETUPMAPPING = 48,
   FUSE_REMOVEMAPPING = 49,
+  FUSE_SYNCFS = 50,
   FUSE_CANONICAL_PATH = 2016,
   CUSE_INIT = 4096,
   CUSE_INIT_BSWAP_RESERVED = 1048576,
@@ -321,9 +334,12 @@
   uint32_t fsync_flags;
   uint32_t padding;
 };
+#define FUSE_COMPAT_SETXATTR_IN_SIZE 8
 struct fuse_setxattr_in {
   uint32_t size;
   uint32_t flags;
+  uint32_t setxattr_flags;
+  uint32_t padding;
 };
 struct fuse_getxattr_in {
   uint32_t size;
@@ -352,6 +368,8 @@
   uint32_t minor;
   uint32_t max_readahead;
   uint32_t flags;
+  uint32_t flags2;
+  uint32_t unused[11];
 };
 #define FUSE_COMPAT_INIT_OUT_SIZE 8
 #define FUSE_COMPAT_22_INIT_OUT_SIZE 24
@@ -366,7 +384,8 @@
   uint32_t time_gran;
   uint16_t max_pages;
   uint16_t map_alignment;
-  uint32_t unused[8];
+  uint32_t flags2;
+  uint32_t unused[7];
 };
 #define CUSE_INIT_INFO_MAX 4096
 struct cuse_init_in {
@@ -445,11 +464,6 @@
   uint32_t pid;
   uint32_t padding;
 };
-struct fuse_passthrough_out {
-  uint32_t fd;
-  uint32_t len;
-  void * vec;
-};
 struct fuse_out_header {
   uint32_t len;
   int32_t error;
@@ -462,8 +476,9 @@
   uint32_t type;
   char name[];
 };
+#define FUSE_REC_ALIGN(x) (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
 #define FUSE_NAME_OFFSET offsetof(struct fuse_dirent, name)
-#define FUSE_DIRENT_ALIGN(x) (((x) + sizeof(uint64_t) - 1) & ~(sizeof(uint64_t) - 1))
+#define FUSE_DIRENT_ALIGN(x) FUSE_REC_ALIGN(x)
 #define FUSE_DIRENT_SIZE(d) FUSE_DIRENT_ALIGN(FUSE_NAME_OFFSET + (d)->namelen)
 struct fuse_direntplus {
   struct fuse_entry_out entry_out;
@@ -510,7 +525,7 @@
 };
 #define FUSE_DEV_IOC_MAGIC 229
 #define FUSE_DEV_IOC_CLONE _IOR(FUSE_DEV_IOC_MAGIC, 0, uint32_t)
-#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 127, struct fuse_passthrough_out)
+#define FUSE_DEV_IOC_PASSTHROUGH_OPEN _IOW(FUSE_DEV_IOC_MAGIC, 126, uint32_t)
 struct fuse_lseek_in {
   uint64_t fh;
   uint64_t offset;
@@ -546,4 +561,15 @@
   uint64_t len;
 };
 #define FUSE_REMOVEMAPPING_MAX_ENTRY (PAGE_SIZE / sizeof(struct fuse_removemapping_one))
+struct fuse_syncfs_in {
+  uint64_t padding;
+};
+struct fuse_secctx {
+  uint32_t size;
+  uint32_t padding;
+};
+struct fuse_secctx_header {
+  uint32_t size;
+  uint32_t nr_secctx;
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/futex.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/futex.h
index 6176f38..c80b90c 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/futex.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/futex.h
@@ -33,6 +33,7 @@
 #define FUTEX_WAKE_BITSET 10
 #define FUTEX_WAIT_REQUEUE_PI 11
 #define FUTEX_CMP_REQUEUE_PI 12
+#define FUTEX_LOCK_PI2 13
 #define FUTEX_PRIVATE_FLAG 128
 #define FUTEX_CLOCK_REALTIME 256
 #define FUTEX_CMD_MASK ~(FUTEX_PRIVATE_FLAG | FUTEX_CLOCK_REALTIME)
@@ -42,12 +43,21 @@
 #define FUTEX_CMP_REQUEUE_PRIVATE (FUTEX_CMP_REQUEUE | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_OP_PRIVATE (FUTEX_WAKE_OP | FUTEX_PRIVATE_FLAG)
 #define FUTEX_LOCK_PI_PRIVATE (FUTEX_LOCK_PI | FUTEX_PRIVATE_FLAG)
+#define FUTEX_LOCK_PI2_PRIVATE (FUTEX_LOCK_PI2 | FUTEX_PRIVATE_FLAG)
 #define FUTEX_UNLOCK_PI_PRIVATE (FUTEX_UNLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_BITSET_PRIVATE (FUTEX_WAIT_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAKE_BITSET_PRIVATE (FUTEX_WAKE_BITSET | FUTEX_PRIVATE_FLAG)
 #define FUTEX_WAIT_REQUEUE_PI_PRIVATE (FUTEX_WAIT_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
 #define FUTEX_CMP_REQUEUE_PI_PRIVATE (FUTEX_CMP_REQUEUE_PI | FUTEX_PRIVATE_FLAG)
+#define FUTEX_32 2
+#define FUTEX_WAITV_MAX 128
+struct futex_waitv {
+  __u64 val;
+  __u64 uaddr;
+  __u32 flags;
+  __u32 __reserved;
+};
 struct robust_list {
   struct robust_list __user * next;
 };
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/hyperv.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/hyperv.h
index daa8fc7..4790bbf 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/hyperv.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/hyperv.h
@@ -18,7 +18,7 @@
  ****************************************************************************/
 #ifndef _UAPI_HYPERV_H
 #define _UAPI_HYPERV_H
-#include <linux/uuid.h>
+#include <linux/types.h>
 #define UTIL_FW_MINOR 0
 #define UTIL_WS2K8_FW_MAJOR 1
 #define UTIL_WS2K8_FW_VERSION (UTIL_WS2K8_FW_MAJOR << 16 | UTIL_FW_MINOR)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/icmp.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/icmp.h
index 5892d12..8847a48 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/icmp.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/icmp.h
@@ -20,6 +20,8 @@
 #define _UAPI_LINUX_ICMP_H
 #include <linux/types.h>
 #include <asm/byteorder.h>
+#include <linux/if.h>
+#include <linux/in6.h>
 #define ICMP_ECHOREPLY 0
 #define ICMP_DEST_UNREACH 3
 #define ICMP_SOURCE_QUENCH 4
@@ -57,6 +59,20 @@
 #define ICMP_REDIR_HOSTTOS 3
 #define ICMP_EXC_TTL 0
 #define ICMP_EXC_FRAGTIME 1
+#define ICMP_EXT_ECHO 42
+#define ICMP_EXT_ECHOREPLY 43
+#define ICMP_EXT_CODE_MAL_QUERY 1
+#define ICMP_EXT_CODE_NO_IF 2
+#define ICMP_EXT_CODE_NO_TABLE_ENT 3
+#define ICMP_EXT_CODE_MULT_IFS 4
+#define ICMP_EXT_ECHOREPLY_ACTIVE (1 << 2)
+#define ICMP_EXT_ECHOREPLY_IPV4 (1 << 1)
+#define ICMP_EXT_ECHOREPLY_IPV6 1
+#define ICMP_EXT_ECHO_CTYPE_NAME 1
+#define ICMP_EXT_ECHO_CTYPE_INDEX 2
+#define ICMP_EXT_ECHO_CTYPE_ADDR 3
+#define ICMP_AFI_IP 1
+#define ICMP_AFI_IP6 2
 struct icmphdr {
   __u8 type;
   __u8 code;
@@ -94,4 +110,23 @@
   __u8 class_num;
   __u8 class_type;
 };
+struct icmp_ext_echo_ctype3_hdr {
+  __be16 afi;
+  __u8 addrlen;
+  __u8 reserved;
+};
+struct icmp_ext_echo_iio {
+  struct icmp_extobj_hdr extobj_hdr;
+  union {
+    char name[IFNAMSIZ];
+    __be32 ifindex;
+    struct {
+      struct icmp_ext_echo_ctype3_hdr ctype3_hdr;
+      union {
+        __be32 ipv4_addr;
+        struct in6_addr ipv6_addr;
+      } ip_addr;
+    } addr;
+  } ident;
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/icmpv6.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/icmpv6.h
index e23fbb4..5285698 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/icmpv6.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/icmpv6.h
@@ -107,6 +107,8 @@
 #define ICMPV6_UNK_NEXTHDR 1
 #define ICMPV6_UNK_OPTION 2
 #define ICMPV6_HDR_INCOMP 3
+#define ICMPV6_EXT_ECHO_REQUEST 160
+#define ICMPV6_EXT_ECHO_REPLY 161
 #define ICMPV6_FILTER 1
 #define ICMPV6_FILTER_BLOCK 1
 #define ICMPV6_FILTER_PASS 2
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/idxd.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/idxd.h
index 4f1282e..ad9ed48 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/idxd.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/idxd.h
@@ -19,6 +19,28 @@
 #ifndef _USR_IDXD_H_
 #define _USR_IDXD_H_
 #include <stdint.h>
+enum idxd_scmd_stat {
+  IDXD_SCMD_DEV_ENABLED = 0x80000010,
+  IDXD_SCMD_DEV_NOT_ENABLED = 0x80000020,
+  IDXD_SCMD_WQ_ENABLED = 0x80000021,
+  IDXD_SCMD_DEV_DMA_ERR = 0x80020000,
+  IDXD_SCMD_WQ_NO_GRP = 0x80030000,
+  IDXD_SCMD_WQ_NO_NAME = 0x80040000,
+  IDXD_SCMD_WQ_NO_SVM = 0x80050000,
+  IDXD_SCMD_WQ_NO_THRESH = 0x80060000,
+  IDXD_SCMD_WQ_PORTAL_ERR = 0x80070000,
+  IDXD_SCMD_WQ_RES_ALLOC_ERR = 0x80080000,
+  IDXD_SCMD_PERCPU_ERR = 0x80090000,
+  IDXD_SCMD_DMA_CHAN_ERR = 0x800a0000,
+  IDXD_SCMD_CDEV_ERR = 0x800b0000,
+  IDXD_SCMD_WQ_NO_SWQ_SUPPORT = 0x800c0000,
+  IDXD_SCMD_WQ_NONE_CONFIGURED = 0x800d0000,
+  IDXD_SCMD_WQ_NO_SIZE = 0x800e0000,
+  IDXD_SCMD_WQ_NO_PRIV = 0x800f0000,
+  IDXD_SCMD_WQ_IRQ_ERR = 0x80100000,
+};
+#define IDXD_SCMD_SOFTERR_MASK 0x80000000
+#define IDXD_SCMD_SOFTERR_SHIFT 16
 #define IDXD_OP_FLAG_FENCE 0x0001
 #define IDXD_OP_FLAG_BOF 0x0002
 #define IDXD_OP_FLAG_CRAV 0x0004
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_arp.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_arp.h
index eda888f..1cd23ef 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_arp.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_arp.h
@@ -44,6 +44,7 @@
 #define ARPHRD_X25 271
 #define ARPHRD_HWX25 272
 #define ARPHRD_CAN 280
+#define ARPHRD_MCTP 290
 #define ARPHRD_PPP 512
 #define ARPHRD_CISCO 513
 #define ARPHRD_HDLC ARPHRD_CISCO
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_bridge.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_bridge.h
index 570c09e..2054fb3 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_bridge.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_bridge.h
@@ -405,9 +405,11 @@
 };
 #define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1)
 #define BRIDGE_VLANDB_DUMPF_STATS (1 << 0)
+#define BRIDGE_VLANDB_DUMPF_GLOBAL (1 << 1)
 enum {
   BRIDGE_VLANDB_UNSPEC,
   BRIDGE_VLANDB_ENTRY,
+  BRIDGE_VLANDB_GLOBAL_OPTIONS,
   __BRIDGE_VLANDB_MAX,
 };
 #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1)
@@ -418,6 +420,7 @@
   BRIDGE_VLANDB_ENTRY_STATE,
   BRIDGE_VLANDB_ENTRY_TUNNEL_INFO,
   BRIDGE_VLANDB_ENTRY_STATS,
+  BRIDGE_VLANDB_ENTRY_MCAST_ROUTER,
   __BRIDGE_VLANDB_ENTRY_MAX,
 };
 #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1)
@@ -439,6 +442,28 @@
 };
 #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1)
 enum {
+  BRIDGE_VLANDB_GOPTS_UNSPEC,
+  BRIDGE_VLANDB_GOPTS_ID,
+  BRIDGE_VLANDB_GOPTS_RANGE,
+  BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING,
+  BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION,
+  BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION,
+  BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT,
+  BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT,
+  BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL,
+  BRIDGE_VLANDB_GOPTS_PAD,
+  BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER,
+  BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS,
+  BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE,
+  __BRIDGE_VLANDB_GOPTS_MAX
+};
+#define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1)
+enum {
   MDBA_UNSPEC,
   MDBA_MDB,
   MDBA_ROUTER,
@@ -496,6 +521,9 @@
   MDBA_ROUTER_PATTR_UNSPEC,
   MDBA_ROUTER_PATTR_TIMER,
   MDBA_ROUTER_PATTR_TYPE,
+  MDBA_ROUTER_PATTR_INET_TIMER,
+  MDBA_ROUTER_PATTR_INET6_TIMER,
+  MDBA_ROUTER_PATTR_VID,
   __MDBA_ROUTER_PATTR_MAX
 };
 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
@@ -570,10 +598,23 @@
 };
 enum br_boolopt_id {
   BR_BOOLOPT_NO_LL_LEARN,
+  BR_BOOLOPT_MCAST_VLAN_SNOOPING,
   BR_BOOLOPT_MAX
 };
 struct br_boolopt_multi {
   __u32 optval;
   __u32 optmask;
 };
+enum {
+  BRIDGE_QUERIER_UNSPEC,
+  BRIDGE_QUERIER_IP_ADDRESS,
+  BRIDGE_QUERIER_IP_PORT,
+  BRIDGE_QUERIER_IP_OTHER_TIMER,
+  BRIDGE_QUERIER_PAD,
+  BRIDGE_QUERIER_IPV6_ADDRESS,
+  BRIDGE_QUERIER_IPV6_PORT,
+  BRIDGE_QUERIER_IPV6_OTHER_TIMER,
+  __BRIDGE_QUERIER_MAX
+};
+#define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_ether.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_ether.h
index 8405653..1f7f8f2 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_ether.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_ether.h
@@ -67,6 +67,7 @@
 #define ETH_P_LINK_CTL 0x886c
 #define ETH_P_ATMFATE 0x8884
 #define ETH_P_PAE 0x888E
+#define ETH_P_REALTEK 0x8899
 #define ETH_P_AOE 0x88A2
 #define ETH_P_8021AD 0x88A8
 #define ETH_P_802_EX1 0x88B5
@@ -123,6 +124,7 @@
 #define ETH_P_CAIF 0x00F7
 #define ETH_P_XDSA 0x00F8
 #define ETH_P_MAP 0x00F9
+#define ETH_P_MCTP 0x00FA
 #ifndef __UAPI_DEF_ETHHDR
 #define __UAPI_DEF_ETHHDR 1
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_link.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_link.h
index 2a5ba5a..7e413ae 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_link.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/if_link.h
@@ -148,6 +148,9 @@
   IFLA_ALT_IFNAME,
   IFLA_PERM_ADDRESS,
   IFLA_PROTO_DOWN_REASON,
+  IFLA_PARENT_DEV_NAME,
+  IFLA_PARENT_DEV_BUS_NAME,
+  IFLA_GRO_MAX_SIZE,
   __IFLA_MAX
 };
 #define IFLA_MAX (__IFLA_MAX - 1)
@@ -176,6 +179,7 @@
   IFLA_INET6_ICMP6STATS,
   IFLA_INET6_TOKEN,
   IFLA_INET6_ADDR_GEN_MODE,
+  IFLA_INET6_RA_MTU,
   __IFLA_INET6_MAX
 };
 #define IFLA_INET6_MAX (__IFLA_INET6_MAX - 1)
@@ -233,6 +237,7 @@
   IFLA_BR_MCAST_MLD_VERSION,
   IFLA_BR_VLAN_STATS_PER_PORT,
   IFLA_BR_MULTI_BOOLOPT,
+  IFLA_BR_MCAST_QUERIER_STATE,
   __IFLA_BR_MAX,
 };
 #define IFLA_BR_MAX (__IFLA_BR_MAX - 1)
@@ -354,6 +359,7 @@
   MACVLAN_MACADDR_SET,
 };
 #define MACVLAN_FLAG_NOPROMISC 1
+#define MACVLAN_FLAG_NODST 2
 enum {
   IFLA_VRF_UNSPEC,
   IFLA_VRF_TABLE,
@@ -550,6 +556,8 @@
   IFLA_BOND_AD_ACTOR_SYSTEM,
   IFLA_BOND_TLB_DYNAMIC_LB,
   IFLA_BOND_PEER_NOTIF_DELAY,
+  IFLA_BOND_AD_LACP_ACTIVE,
+  IFLA_BOND_MISSED_MAX,
   __IFLA_BOND_MAX,
 };
 #define IFLA_BOND_MAX (__IFLA_BOND_MAX - 1)
@@ -835,6 +843,8 @@
 #define RMNET_FLAGS_INGRESS_MAP_COMMANDS (1U << 1)
 #define RMNET_FLAGS_INGRESS_MAP_CKSUMV4 (1U << 2)
 #define RMNET_FLAGS_EGRESS_MAP_CKSUMV4 (1U << 3)
+#define RMNET_FLAGS_INGRESS_MAP_CKSUMV5 (1U << 4)
+#define RMNET_FLAGS_EGRESS_MAP_CKSUMV5 (1U << 5)
 enum {
   IFLA_RMNET_UNSPEC,
   IFLA_RMNET_MUX_ID,
@@ -846,4 +856,10 @@
   __u32 flags;
   __u32 mask;
 };
+enum {
+  IFLA_MCTP_UNSPEC,
+  IFLA_MCTP_NET,
+  __IFLA_MCTP_MAX,
+};
+#define IFLA_MCTP_MAX (__IFLA_MCTP_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
similarity index 80%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
index bb45c3d..ba2f5e3 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/iio/buffer.h
@@ -16,14 +16,7 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#ifndef _UAPI_IIO_BUFFER_H_
+#define _UAPI_IIO_BUFFER_H_
+#define IIO_BUFFER_GET_FD_IOCTL _IOWR('i', 0x91, int)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/in.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/in.h
index e5437ca..d4060e7 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/in.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/in.h
@@ -155,21 +155,32 @@
 #define IP_MSFILTER_SIZE(numsrc) (sizeof(struct ip_msfilter) - sizeof(__u32) + (numsrc) * sizeof(__u32))
 struct group_req {
   __u32 gr_interface;
-  struct sockaddr_storage gr_group;
+  struct __kernel_sockaddr_storage gr_group;
 };
 struct group_source_req {
   __u32 gsr_interface;
-  struct sockaddr_storage gsr_group;
-  struct sockaddr_storage gsr_source;
+  struct __kernel_sockaddr_storage gsr_group;
+  struct __kernel_sockaddr_storage gsr_source;
 };
 struct group_filter {
-  __u32 gf_interface;
-  struct sockaddr_storage gf_group;
-  __u32 gf_fmode;
-  __u32 gf_numsrc;
-  struct sockaddr_storage gf_slist[1];
+  union {
+    struct {
+      __u32 gf_interface_aux;
+      struct __kernel_sockaddr_storage gf_group_aux;
+      __u32 gf_fmode_aux;
+      __u32 gf_numsrc_aux;
+      struct __kernel_sockaddr_storage gf_slist[1];
+    };
+    struct {
+      __u32 gf_interface;
+      struct __kernel_sockaddr_storage gf_group;
+      __u32 gf_fmode;
+      __u32 gf_numsrc;
+      struct __kernel_sockaddr_storage gf_slist_flex[];
+    };
+  };
 };
-#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct sockaddr_storage) + (numsrc) * sizeof(struct sockaddr_storage))
+#define GROUP_FILTER_SIZE(numsrc) (sizeof(struct group_filter) - sizeof(struct __kernel_sockaddr_storage) + (numsrc) * sizeof(struct __kernel_sockaddr_storage))
 #endif
 #if __UAPI_DEF_IN_PKTINFO
 struct in_pktinfo {
@@ -214,6 +225,7 @@
 #define INADDR_ANY ((unsigned long int) 0x00000000)
 #define INADDR_BROADCAST ((unsigned long int) 0xffffffff)
 #define INADDR_NONE ((unsigned long int) 0xffffffff)
+#define INADDR_DUMMY ((unsigned long int) 0xc0000008)
 #define IN_LOOPBACKNET 127
 #define INADDR_LOOPBACK 0x7f000001
 #define IN_LOOPBACK(a) ((((long int) (a)) & 0xff000000) == 0x7f000000)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/in6.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/in6.h
index 8dd3238..49efe3c 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/in6.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/in6.h
@@ -105,6 +105,7 @@
 #define IPV6_TLV_PADN 1
 #define IPV6_TLV_ROUTERALERT 5
 #define IPV6_TLV_CALIPSO 7
+#define IPV6_TLV_IOAM 49
 #define IPV6_TLV_JUMBO 194
 #define IPV6_TLV_HAO 201
 #if __UAPI_DEF_IPV6_OPTIONS
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/incrementalfs.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
index 622a998..0804cc2 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/incrementalfs.h
@@ -171,6 +171,8 @@
   __u64 time_us_out;
   __u32 page_out;
   __u32 errno_out;
-  __u64 reserved;
+  __u32 uid_out;
+  __u32 reserved1;
+  __u64 reserved2;
 };
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/input-event-codes.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
index 732e9b7..34cd23c 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/input-event-codes.h
@@ -248,7 +248,8 @@
 #define KEY_PAUSECD 201
 #define KEY_PROG3 202
 #define KEY_PROG4 203
-#define KEY_DASHBOARD 204
+#define KEY_ALL_APPLICATIONS 204
+#define KEY_DASHBOARD KEY_ALL_APPLICATIONS
 #define KEY_SUSPEND 205
 #define KEY_CLOSE 206
 #define KEY_PLAY 207
@@ -548,6 +549,8 @@
 #define KEY_VOICECOMMAND 0x246
 #define KEY_ASSISTANT 0x247
 #define KEY_KBD_LAYOUT_NEXT 0x248
+#define KEY_EMOJI_PICKER 0x249
+#define KEY_DICTATE 0x24a
 #define KEY_BRIGHTNESS_MIN 0x250
 #define KEY_BRIGHTNESS_MAX 0x251
 #define KEY_KBDINPUTASSIST_PREV 0x260
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/io_uring.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/io_uring.h
index fa59d39..96944f8 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/io_uring.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/io_uring.h
@@ -50,19 +50,19 @@
     __u32 splice_flags;
     __u32 rename_flags;
     __u32 unlink_flags;
+    __u32 hardlink_flags;
   };
   __u64 user_data;
   union {
-    struct {
-      union {
-        __u16 buf_index;
-        __u16 buf_group;
-      } __attribute__((packed));
-      __u16 personality;
-      __s32 splice_fd_in;
-    };
-    __u64 __pad2[3];
+    __u16 buf_index;
+    __u16 buf_group;
+  } __attribute__((packed));
+  __u16 personality;
+  union {
+    __s32 splice_fd_in;
+    __u32 file_index;
   };
+  __u64 __pad2[2];
 };
 enum {
   IOSQE_FIXED_FILE_BIT,
@@ -71,6 +71,7 @@
   IOSQE_IO_HARDLINK_BIT,
   IOSQE_ASYNC_BIT,
   IOSQE_BUFFER_SELECT_BIT,
+  IOSQE_CQE_SKIP_SUCCESS_BIT,
 };
 #define IOSQE_FIXED_FILE (1U << IOSQE_FIXED_FILE_BIT)
 #define IOSQE_IO_DRAIN (1U << IOSQE_IO_DRAIN_BIT)
@@ -78,6 +79,7 @@
 #define IOSQE_IO_HARDLINK (1U << IOSQE_IO_HARDLINK_BIT)
 #define IOSQE_ASYNC (1U << IOSQE_ASYNC_BIT)
 #define IOSQE_BUFFER_SELECT (1U << IOSQE_BUFFER_SELECT_BIT)
+#define IOSQE_CQE_SKIP_SUCCESS (1U << IOSQE_CQE_SKIP_SUCCESS_BIT)
 #define IORING_SETUP_IOPOLL (1U << 0)
 #define IORING_SETUP_SQPOLL (1U << 1)
 #define IORING_SETUP_SQ_AFF (1U << 2)
@@ -123,18 +125,31 @@
   IORING_OP_SHUTDOWN,
   IORING_OP_RENAMEAT,
   IORING_OP_UNLINKAT,
+  IORING_OP_MKDIRAT,
+  IORING_OP_SYMLINKAT,
+  IORING_OP_LINKAT,
   IORING_OP_LAST,
 };
 #define IORING_FSYNC_DATASYNC (1U << 0)
 #define IORING_TIMEOUT_ABS (1U << 0)
 #define IORING_TIMEOUT_UPDATE (1U << 1)
+#define IORING_TIMEOUT_BOOTTIME (1U << 2)
+#define IORING_TIMEOUT_REALTIME (1U << 3)
+#define IORING_LINK_TIMEOUT_UPDATE (1U << 4)
+#define IORING_TIMEOUT_ETIME_SUCCESS (1U << 5)
+#define IORING_TIMEOUT_CLOCK_MASK (IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME)
+#define IORING_TIMEOUT_UPDATE_MASK (IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE)
 #define SPLICE_F_FD_IN_FIXED (1U << 31)
+#define IORING_POLL_ADD_MULTI (1U << 0)
+#define IORING_POLL_UPDATE_EVENTS (1U << 1)
+#define IORING_POLL_UPDATE_USER_DATA (1U << 2)
 struct io_uring_cqe {
   __u64 user_data;
   __s32 res;
   __u32 flags;
 };
 #define IORING_CQE_F_BUFFER (1U << 0)
+#define IORING_CQE_F_MORE (1U << 1)
 enum {
   IORING_CQE_BUFFER_SHIFT = 16,
 };
@@ -192,6 +207,8 @@
 #define IORING_FEAT_SQPOLL_NONFIXED (1U << 7)
 #define IORING_FEAT_EXT_ARG (1U << 8)
 #define IORING_FEAT_NATIVE_WORKERS (1U << 9)
+#define IORING_FEAT_RSRC_TAGS (1U << 10)
+#define IORING_FEAT_CQE_SKIP (1U << 11)
 enum {
   IORING_REGISTER_BUFFERS = 0,
   IORING_UNREGISTER_BUFFERS = 1,
@@ -206,18 +223,44 @@
   IORING_UNREGISTER_PERSONALITY = 10,
   IORING_REGISTER_RESTRICTIONS = 11,
   IORING_REGISTER_ENABLE_RINGS = 12,
+  IORING_REGISTER_FILES2 = 13,
+  IORING_REGISTER_FILES_UPDATE2 = 14,
+  IORING_REGISTER_BUFFERS2 = 15,
+  IORING_REGISTER_BUFFERS_UPDATE = 16,
+  IORING_REGISTER_IOWQ_AFF = 17,
+  IORING_UNREGISTER_IOWQ_AFF = 18,
+  IORING_REGISTER_IOWQ_MAX_WORKERS = 19,
   IORING_REGISTER_LAST
 };
+enum {
+  IO_WQ_BOUND,
+  IO_WQ_UNBOUND,
+};
 struct io_uring_files_update {
   __u32 offset;
   __u32 resv;
   __aligned_u64 fds;
 };
+struct io_uring_rsrc_register {
+  __u32 nr;
+  __u32 resv;
+  __u64 resv2;
+  __aligned_u64 data;
+  __aligned_u64 tags;
+};
 struct io_uring_rsrc_update {
   __u32 offset;
   __u32 resv;
   __aligned_u64 data;
 };
+struct io_uring_rsrc_update2 {
+  __u32 offset;
+  __u32 resv;
+  __aligned_u64 data;
+  __aligned_u64 tags;
+  __u32 nr;
+  __u32 resv2;
+};
 #define IORING_REGISTER_FILES_SKIP (- 2)
 #define IO_URING_OP_SUPPORTED (1U << 0)
 struct io_uring_probe_op {
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioam6.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioam6.h
new file mode 100644
index 0000000..e32c8e9
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioam6.h
@@ -0,0 +1,63 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOAM6_H
+#define _UAPI_LINUX_IOAM6_H
+#include <asm/byteorder.h>
+#include <linux/types.h>
+#define IOAM6_U16_UNAVAILABLE U16_MAX
+#define IOAM6_U32_UNAVAILABLE U32_MAX
+#define IOAM6_U64_UNAVAILABLE U64_MAX
+#define IOAM6_DEFAULT_ID (IOAM6_U32_UNAVAILABLE >> 8)
+#define IOAM6_DEFAULT_ID_WIDE (IOAM6_U64_UNAVAILABLE >> 8)
+#define IOAM6_DEFAULT_IF_ID IOAM6_U16_UNAVAILABLE
+#define IOAM6_DEFAULT_IF_ID_WIDE IOAM6_U32_UNAVAILABLE
+struct ioam6_hdr {
+  __u8 opt_type;
+  __u8 opt_len;
+  __u8 : 8;
+#define IOAM6_TYPE_PREALLOC 0
+  __u8 type;
+} __attribute__((packed));
+struct ioam6_trace_hdr {
+  __be16 namespace_id;
+#ifdef __LITTLE_ENDIAN_BITFIELD
+  __u8 : 1, : 1, overflow : 1, nodelen : 5;
+  __u8 remlen : 7, : 1;
+  union {
+    __be32 type_be32;
+    struct {
+      __u32 bit7 : 1, bit6 : 1, bit5 : 1, bit4 : 1, bit3 : 1, bit2 : 1, bit1 : 1, bit0 : 1, bit15 : 1, bit14 : 1, bit13 : 1, bit12 : 1, bit11 : 1, bit10 : 1, bit9 : 1, bit8 : 1, bit23 : 1, bit22 : 1, bit21 : 1, bit20 : 1, bit19 : 1, bit18 : 1, bit17 : 1, bit16 : 1, : 8;
+    } type;
+  };
+#elif defined(__BIG_ENDIAN_BITFIELD)
+  __u8 nodelen : 5, overflow : 1, : 1, : 1;
+  __u8 : 1, remlen : 7;
+  union {
+    __be32 type_be32;
+    struct {
+      __u32 bit0 : 1, bit1 : 1, bit2 : 1, bit3 : 1, bit4 : 1, bit5 : 1, bit6 : 1, bit7 : 1, bit8 : 1, bit9 : 1, bit10 : 1, bit11 : 1, bit12 : 1, bit13 : 1, bit14 : 1, bit15 : 1, bit16 : 1, bit17 : 1, bit18 : 1, bit19 : 1, bit20 : 1, bit21 : 1, bit22 : 1, bit23 : 1, : 8;
+    } type;
+  };
+#else
+#error "Please fix <asm/byteorder.h>"
+#endif
+#define IOAM6_TRACE_DATA_SIZE_MAX 244
+  __u8 data[0];
+} __attribute__((packed));
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h
new file mode 100644
index 0000000..1d00c47
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioam6_genl.h
@@ -0,0 +1,48 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOAM6_GENL_H
+#define _UAPI_LINUX_IOAM6_GENL_H
+#define IOAM6_GENL_NAME "IOAM6"
+#define IOAM6_GENL_VERSION 0x1
+enum {
+  IOAM6_ATTR_UNSPEC,
+  IOAM6_ATTR_NS_ID,
+  IOAM6_ATTR_NS_DATA,
+  IOAM6_ATTR_NS_DATA_WIDE,
+#define IOAM6_MAX_SCHEMA_DATA_LEN (255 * 4)
+  IOAM6_ATTR_SC_ID,
+  IOAM6_ATTR_SC_DATA,
+  IOAM6_ATTR_SC_NONE,
+  IOAM6_ATTR_PAD,
+  __IOAM6_ATTR_MAX,
+};
+#define IOAM6_ATTR_MAX (__IOAM6_ATTR_MAX - 1)
+enum {
+  IOAM6_CMD_UNSPEC,
+  IOAM6_CMD_ADD_NAMESPACE,
+  IOAM6_CMD_DEL_NAMESPACE,
+  IOAM6_CMD_DUMP_NAMESPACES,
+  IOAM6_CMD_ADD_SCHEMA,
+  IOAM6_CMD_DEL_SCHEMA,
+  IOAM6_CMD_DUMP_SCHEMAS,
+  IOAM6_CMD_NS_SET_SCHEMA,
+  __IOAM6_CMD_MAX,
+};
+#define IOAM6_CMD_MAX (__IOAM6_CMD_MAX - 1)
+#endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
similarity index 64%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
index bb45c3d..7426225 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioam6_iptunnel.h
@@ -16,14 +16,23 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_LINUX_IOAM6_IPTUNNEL_H
+#define _UAPI_LINUX_IOAM6_IPTUNNEL_H
+enum {
+  __IOAM6_IPTUNNEL_MODE_MIN,
+  IOAM6_IPTUNNEL_MODE_INLINE,
+  IOAM6_IPTUNNEL_MODE_ENCAP,
+  IOAM6_IPTUNNEL_MODE_AUTO,
+  __IOAM6_IPTUNNEL_MODE_MAX,
 };
+#define IOAM6_IPTUNNEL_MODE_MIN (__IOAM6_IPTUNNEL_MODE_MIN + 1)
+#define IOAM6_IPTUNNEL_MODE_MAX (__IOAM6_IPTUNNEL_MODE_MAX - 1)
+enum {
+  IOAM6_IPTUNNEL_UNSPEC,
+  IOAM6_IPTUNNEL_MODE,
+  IOAM6_IPTUNNEL_DST,
+  IOAM6_IPTUNNEL_TRACE,
+  __IOAM6_IPTUNNEL_MAX,
+};
+#define IOAM6_IPTUNNEL_MAX (__IOAM6_IPTUNNEL_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/iommu.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/iommu.h
index 1802fb4..0a0af92 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/iommu.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/iommu.h
@@ -132,7 +132,8 @@
 #define IOMMU_SVA_VTD_GPASID_PWT (1 << 3)
 #define IOMMU_SVA_VTD_GPASID_EMTE (1 << 4)
 #define IOMMU_SVA_VTD_GPASID_CD (1 << 5)
-#define IOMMU_SVA_VTD_GPASID_LAST (1 << 6)
+#define IOMMU_SVA_VTD_GPASID_WPE (1 << 6)
+#define IOMMU_SVA_VTD_GPASID_LAST (1 << 7)
   __u64 flags;
   __u32 pat;
   __u32 emt;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioprio.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioprio.h
new file mode 100644
index 0000000..7a90d87
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ioprio.h
@@ -0,0 +1,42 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_IOPRIO_H
+#define _UAPI_LINUX_IOPRIO_H
+#define IOPRIO_CLASS_SHIFT 13
+#define IOPRIO_CLASS_MASK 0x07
+#define IOPRIO_PRIO_MASK ((1UL << IOPRIO_CLASS_SHIFT) - 1)
+#define IOPRIO_PRIO_CLASS(ioprio) (((ioprio) >> IOPRIO_CLASS_SHIFT) & IOPRIO_CLASS_MASK)
+#define IOPRIO_PRIO_DATA(ioprio) ((ioprio) & IOPRIO_PRIO_MASK)
+#define IOPRIO_PRIO_VALUE(class,data) ((((class) & IOPRIO_CLASS_MASK) << IOPRIO_CLASS_SHIFT) | ((data) & IOPRIO_PRIO_MASK))
+enum {
+  IOPRIO_CLASS_NONE,
+  IOPRIO_CLASS_RT,
+  IOPRIO_CLASS_BE,
+  IOPRIO_CLASS_IDLE,
+};
+#define IOPRIO_NR_LEVELS 8
+#define IOPRIO_BE_NR IOPRIO_NR_LEVELS
+enum {
+  IOPRIO_WHO_PROCESS = 1,
+  IOPRIO_WHO_PGRP,
+  IOPRIO_WHO_USER,
+};
+#define IOPRIO_NORM 4
+#define IOPRIO_BE_NORM IOPRIO_NORM
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ip.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ip.h
index 564fd8d..9571cac 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ip.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ip.h
@@ -146,6 +146,7 @@
   IPV4_DEVCONF_DROP_UNICAST_IN_L2_MULTICAST,
   IPV4_DEVCONF_DROP_GRATUITOUS_ARP,
   IPV4_DEVCONF_BC_FORWARDING,
+  IPV4_DEVCONF_ARP_EVICT_NOCARRIER,
   __IPV4_DEVCONF_MAX
 };
 #define IPV4_DEVCONF_MAX (__IPV4_DEVCONF_MAX - 1)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipmi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipmi.h
index cf9928f..dd88f2f 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipmi.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipmi.h
@@ -40,6 +40,14 @@
   unsigned char slave_addr;
   unsigned char lun;
 };
+#define IPMI_IPMB_DIRECT_ADDR_TYPE 0x81
+struct ipmi_ipmb_direct_addr {
+  int addr_type;
+  short channel;
+  unsigned char slave_addr;
+  unsigned char rs_lun;
+  unsigned char rq_lun;
+};
 #define IPMI_LAN_ADDR_TYPE 0x04
 struct ipmi_lan_addr {
   int addr_type;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipv6.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipv6.h
index 438cacc..b3db9ce 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipv6.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipv6.h
@@ -144,6 +144,10 @@
   DEVCONF_NDISC_TCLASS,
   DEVCONF_RPL_SEG_ENABLED,
   DEVCONF_RA_DEFRTR_METRIC,
+  DEVCONF_IOAM6_ENABLED,
+  DEVCONF_IOAM6_ID,
+  DEVCONF_IOAM6_ID_WIDE,
+  DEVCONF_NDISC_EVICT_NOCARRIER,
   DEVCONF_MAX
 };
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipx.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipx.h
deleted file mode 100644
index d8a5424..0000000
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ipx.h
+++ /dev/null
@@ -1,90 +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 _IPX_H_
-#define _IPX_H_
-#include <linux/libc-compat.h>
-#include <linux/types.h>
-#include <linux/sockios.h>
-#include <linux/socket.h>
-#define IPX_NODE_LEN 6
-#define IPX_MTU 576
-#if __UAPI_DEF_SOCKADDR_IPX
-struct sockaddr_ipx {
-  __kernel_sa_family_t sipx_family;
-  __be16 sipx_port;
-  __be32 sipx_network;
-  unsigned char sipx_node[IPX_NODE_LEN];
-  __u8 sipx_type;
-  unsigned char sipx_zero;
-};
-#endif
-#define sipx_special sipx_port
-#define sipx_action sipx_zero
-#define IPX_DLTITF 0
-#define IPX_CRTITF 1
-#if __UAPI_DEF_IPX_ROUTE_DEFINITION
-struct ipx_route_definition {
-  __be32 ipx_network;
-  __be32 ipx_router_network;
-  unsigned char ipx_router_node[IPX_NODE_LEN];
-};
-#endif
-#if __UAPI_DEF_IPX_INTERFACE_DEFINITION
-struct ipx_interface_definition {
-  __be32 ipx_network;
-  unsigned char ipx_device[16];
-  unsigned char ipx_dlink_type;
-#define IPX_FRAME_NONE 0
-#define IPX_FRAME_SNAP 1
-#define IPX_FRAME_8022 2
-#define IPX_FRAME_ETHERII 3
-#define IPX_FRAME_8023 4
-#define IPX_FRAME_TR_8022 5
-  unsigned char ipx_special;
-#define IPX_SPECIAL_NONE 0
-#define IPX_PRIMARY 1
-#define IPX_INTERNAL 2
-  unsigned char ipx_node[IPX_NODE_LEN];
-};
-#endif
-#if __UAPI_DEF_IPX_CONFIG_DATA
-struct ipx_config_data {
-  unsigned char ipxcfg_auto_select_primary;
-  unsigned char ipxcfg_auto_create_interfaces;
-};
-#endif
-#if __UAPI_DEF_IPX_ROUTE_DEF
-struct ipx_route_def {
-  __be32 ipx_network;
-  __be32 ipx_router_network;
-#define IPX_ROUTE_NO_ROUTER 0
-  unsigned char ipx_router_node[IPX_NODE_LEN];
-  unsigned char ipx_device[16];
-  unsigned short ipx_flags;
-#define IPX_RT_SNAP 8
-#define IPX_RT_8022 4
-#define IPX_RT_BLUEBOOK 2
-#define IPX_RT_ROUTED 1
-};
-#endif
-#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE)
-#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1)
-#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2)
-#define SIOCIPXNCPCONN (SIOCPROTOPRIVATE + 3)
-#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kexec.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kexec.h
index b2dc88f..2e3bd0c 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kexec.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kexec.h
@@ -39,6 +39,7 @@
 #define KEXEC_ARCH_MIPS_LE (10 << 16)
 #define KEXEC_ARCH_MIPS (8 << 16)
 #define KEXEC_ARCH_AARCH64 (183 << 16)
+#define KEXEC_ARCH_RISCV (243 << 16)
 #define KEXEC_SEGMENT_MAX 16
 struct kexec_segment {
   const void * buf;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
index 73ef5de..c52ac64 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kfd_ioctl.h
@@ -21,7 +21,7 @@
 #include <drm/drm.h>
 #include <linux/ioctl.h>
 #define KFD_IOCTL_MAJOR_VERSION 1
-#define KFD_IOCTL_MINOR_VERSION 3
+#define KFD_IOCTL_MINOR_VERSION 6
 struct kfd_ioctl_get_version_args {
   __u32 major_version;
   __u32 minor_version;
@@ -244,6 +244,7 @@
 #define KFD_IOC_ALLOC_MEM_FLAGS_NO_SUBSTITUTE (1 << 28)
 #define KFD_IOC_ALLOC_MEM_FLAGS_AQL_QUEUE_MEM (1 << 27)
 #define KFD_IOC_ALLOC_MEM_FLAGS_COHERENT (1 << 26)
+#define KFD_IOC_ALLOC_MEM_FLAGS_UNCACHED (1 << 25)
 struct kfd_ioctl_alloc_memory_of_gpu_args {
   __u64 va_addr;
   __u64 size;
@@ -303,6 +304,44 @@
   KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL = 0,
   KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL = 4,
 };
+#define KFD_IOCTL_SVM_FLAG_HOST_ACCESS 0x00000001
+#define KFD_IOCTL_SVM_FLAG_COHERENT 0x00000002
+#define KFD_IOCTL_SVM_FLAG_HIVE_LOCAL 0x00000004
+#define KFD_IOCTL_SVM_FLAG_GPU_RO 0x00000008
+#define KFD_IOCTL_SVM_FLAG_GPU_EXEC 0x00000010
+#define KFD_IOCTL_SVM_FLAG_GPU_READ_MOSTLY 0x00000020
+enum kfd_ioctl_svm_op {
+  KFD_IOCTL_SVM_OP_SET_ATTR,
+  KFD_IOCTL_SVM_OP_GET_ATTR
+};
+enum kfd_ioctl_svm_location {
+  KFD_IOCTL_SVM_LOCATION_SYSMEM = 0,
+  KFD_IOCTL_SVM_LOCATION_UNDEFINED = 0xffffffff
+};
+enum kfd_ioctl_svm_attr_type {
+  KFD_IOCTL_SVM_ATTR_PREFERRED_LOC,
+  KFD_IOCTL_SVM_ATTR_PREFETCH_LOC,
+  KFD_IOCTL_SVM_ATTR_ACCESS,
+  KFD_IOCTL_SVM_ATTR_ACCESS_IN_PLACE,
+  KFD_IOCTL_SVM_ATTR_NO_ACCESS,
+  KFD_IOCTL_SVM_ATTR_SET_FLAGS,
+  KFD_IOCTL_SVM_ATTR_CLR_FLAGS,
+  KFD_IOCTL_SVM_ATTR_GRANULARITY
+};
+struct kfd_ioctl_svm_attribute {
+  __u32 type;
+  __u32 value;
+};
+struct kfd_ioctl_svm_args {
+  __u64 start_addr;
+  __u64 size;
+  __u32 op;
+  __u32 nattr;
+  struct kfd_ioctl_svm_attribute attrs[0];
+};
+struct kfd_ioctl_set_xnack_mode_args {
+  __s32 xnack_enabled;
+};
 #define AMDKFD_IOCTL_BASE 'K'
 #define AMDKFD_IO(nr) _IO(AMDKFD_IOCTL_BASE, nr)
 #define AMDKFD_IOR(nr,type) _IOR(AMDKFD_IOCTL_BASE, nr, type)
@@ -339,6 +378,8 @@
 #define AMDKFD_IOC_IMPORT_DMABUF AMDKFD_IOWR(0x1D, struct kfd_ioctl_import_dmabuf_args)
 #define AMDKFD_IOC_ALLOC_QUEUE_GWS AMDKFD_IOWR(0x1E, struct kfd_ioctl_alloc_queue_gws_args)
 #define AMDKFD_IOC_SMI_EVENTS AMDKFD_IOWR(0x1F, struct kfd_ioctl_smi_events_args)
+#define AMDKFD_IOC_SVM AMDKFD_IOWR(0x20, struct kfd_ioctl_svm_args)
+#define AMDKFD_IOC_SET_XNACK_MODE AMDKFD_IOWR(0x21, struct kfd_ioctl_set_xnack_mode_args)
 #define AMDKFD_COMMAND_START 0x01
-#define AMDKFD_COMMAND_END 0x20
+#define AMDKFD_COMMAND_END 0x22
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h
new file mode 100644
index 0000000..9604b03
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kfd_sysfs.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 KFD_SYSFS_H_INCLUDED
+#define KFD_SYSFS_H_INCLUDED
+#define HSA_CAP_HOT_PLUGGABLE 0x00000001
+#define HSA_CAP_ATS_PRESENT 0x00000002
+#define HSA_CAP_SHARED_WITH_GRAPHICS 0x00000004
+#define HSA_CAP_QUEUE_SIZE_POW2 0x00000008
+#define HSA_CAP_QUEUE_SIZE_32BIT 0x00000010
+#define HSA_CAP_QUEUE_IDLE_EVENT 0x00000020
+#define HSA_CAP_VA_LIMIT 0x00000040
+#define HSA_CAP_WATCH_POINTS_SUPPORTED 0x00000080
+#define HSA_CAP_WATCH_POINTS_TOTALBITS_MASK 0x00000f00
+#define HSA_CAP_WATCH_POINTS_TOTALBITS_SHIFT 8
+#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_MASK 0x00003000
+#define HSA_CAP_DOORBELL_TYPE_TOTALBITS_SHIFT 12
+#define HSA_CAP_DOORBELL_TYPE_PRE_1_0 0x0
+#define HSA_CAP_DOORBELL_TYPE_1_0 0x1
+#define HSA_CAP_DOORBELL_TYPE_2_0 0x2
+#define HSA_CAP_AQL_QUEUE_DOUBLE_MAP 0x00004000
+#define HSA_CAP_RESERVED_WAS_SRAM_EDCSUPPORTED 0x00080000
+#define HSA_CAP_MEM_EDCSUPPORTED 0x00100000
+#define HSA_CAP_RASEVENTNOTIFY 0x00200000
+#define HSA_CAP_ASIC_REVISION_MASK 0x03c00000
+#define HSA_CAP_ASIC_REVISION_SHIFT 22
+#define HSA_CAP_SRAM_EDCSUPPORTED 0x04000000
+#define HSA_CAP_SVMAPI_SUPPORTED 0x08000000
+#define HSA_CAP_FLAGS_COHERENTHOSTACCESS 0x10000000
+#define HSA_CAP_RESERVED 0xe00f8000
+#define HSA_MEM_HEAP_TYPE_SYSTEM 0
+#define HSA_MEM_HEAP_TYPE_FB_PUBLIC 1
+#define HSA_MEM_HEAP_TYPE_FB_PRIVATE 2
+#define HSA_MEM_HEAP_TYPE_GPU_GDS 3
+#define HSA_MEM_HEAP_TYPE_GPU_LDS 4
+#define HSA_MEM_HEAP_TYPE_GPU_SCRATCH 5
+#define HSA_MEM_FLAGS_HOT_PLUGGABLE 0x00000001
+#define HSA_MEM_FLAGS_NON_VOLATILE 0x00000002
+#define HSA_MEM_FLAGS_RESERVED 0xfffffffc
+#define HSA_CACHE_TYPE_DATA 0x00000001
+#define HSA_CACHE_TYPE_INSTRUCTION 0x00000002
+#define HSA_CACHE_TYPE_CPU 0x00000004
+#define HSA_CACHE_TYPE_HSACU 0x00000008
+#define HSA_CACHE_TYPE_RESERVED 0xfffffff0
+#define HSA_IOLINK_TYPE_UNDEFINED 0
+#define HSA_IOLINK_TYPE_HYPERTRANSPORT 1
+#define HSA_IOLINK_TYPE_PCIEXPRESS 2
+#define HSA_IOLINK_TYPE_AMBA 3
+#define HSA_IOLINK_TYPE_MIPI 4
+#define HSA_IOLINK_TYPE_QPI_1_1 5
+#define HSA_IOLINK_TYPE_RESERVED1 6
+#define HSA_IOLINK_TYPE_RESERVED2 7
+#define HSA_IOLINK_TYPE_RAPID_IO 8
+#define HSA_IOLINK_TYPE_INFINIBAND 9
+#define HSA_IOLINK_TYPE_RESERVED3 10
+#define HSA_IOLINK_TYPE_XGMI 11
+#define HSA_IOLINK_TYPE_XGOP 12
+#define HSA_IOLINK_TYPE_GZ 13
+#define HSA_IOLINK_TYPE_ETHERNET_RDMA 14
+#define HSA_IOLINK_TYPE_RDMA_OTHER 15
+#define HSA_IOLINK_TYPE_OTHER 16
+#define HSA_IOLINK_FLAGS_ENABLED (1 << 0)
+#define HSA_IOLINK_FLAGS_NON_COHERENT (1 << 1)
+#define HSA_IOLINK_FLAGS_NO_ATOMICS_32_BIT (1 << 2)
+#define HSA_IOLINK_FLAGS_NO_ATOMICS_64_BIT (1 << 3)
+#define HSA_IOLINK_FLAGS_NO_PEER_TO_PEER_DMA (1 << 4)
+#define HSA_IOLINK_FLAGS_RESERVED 0xffffffe0
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kvm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kvm.h
index 81fa779..1cf7182 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kvm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kvm.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef __LINUX_KVM_H
 #define __LINUX_KVM_H
+#include <linux/const.h>
 #include <linux/types.h>
 #include <linux/compiler.h>
 #include <linux/ioctl.h>
@@ -214,10 +215,12 @@
 #define KVM_EXIT_AP_RESET_HOLD 32
 #define KVM_EXIT_X86_BUS_LOCK 33
 #define KVM_EXIT_XEN 34
+#define KVM_EXIT_RISCV_SBI 35
 #define KVM_INTERNAL_ERROR_EMULATION 1
 #define KVM_INTERNAL_ERROR_SIMUL_EX 2
 #define KVM_INTERNAL_ERROR_DELIVERY_EV 3
 #define KVM_INTERNAL_ERROR_UNEXPECTED_EXIT_REASON 4
+#define KVM_INTERNAL_ERROR_EMULATION_FLAG_INSTRUCTION_BYTES (1ULL << 0)
 struct kvm_run {
   __u8 request_interrupt_window;
   __u8 immediate_exit;
@@ -300,6 +303,17 @@
       __u64 data[16];
     } internal;
     struct {
+      __u32 suberror;
+      __u32 ndata;
+      __u64 flags;
+      union {
+        struct {
+          __u8 insn_size;
+          __u8 insn_bytes[15];
+        };
+      };
+    } emulation_failure;
+    struct {
       __u64 gprs[32];
     } osi;
     struct {
@@ -352,6 +366,12 @@
       __u64 data;
     } msr;
     struct kvm_xen_exit xen;
+    struct {
+      unsigned long extension_id;
+      unsigned long function_id;
+      unsigned long args[6];
+      unsigned long ret[2];
+    } riscv_sbi;
     char padding[256];
   };
 #define SYNC_REGS_SIZE_BYTES 2048
@@ -854,6 +874,22 @@
 #define KVM_CAP_DIRTY_LOG_RING 192
 #define KVM_CAP_X86_BUS_LOCK_EXIT 193
 #define KVM_CAP_PPC_DAWR1 194
+#define KVM_CAP_SET_GUEST_DEBUG2 195
+#define KVM_CAP_SGX_ATTRIBUTE 196
+#define KVM_CAP_VM_COPY_ENC_CONTEXT_FROM 197
+#define KVM_CAP_PTP_KVM 198
+#define KVM_CAP_HYPERV_ENFORCE_CPUID 199
+#define KVM_CAP_SREGS2 200
+#define KVM_CAP_EXIT_HYPERCALL 201
+#define KVM_CAP_PPC_RPT_INVALIDATE 202
+#define KVM_CAP_BINARY_STATS_FD 203
+#define KVM_CAP_EXIT_ON_EMULATION_FAILURE 204
+#define KVM_CAP_ARM_MTE 205
+#define KVM_CAP_VM_MOVE_ENC_CONTEXT_FROM 206
+#define KVM_CAP_VM_GPA_BITS 207
+#define KVM_CAP_XSAVE2 208
+#define KVM_CAP_SYS_ATTRIBUTES 209
+#define KVM_CAP_PPC_AIL_MODE_3 210
 #ifdef KVM_CAP_IRQ_ROUTING
 struct kvm_irq_routing_irqchip {
   __u32 irqchip;
@@ -879,10 +915,17 @@
   __u32 vcpu;
   __u32 sint;
 };
+struct kvm_irq_routing_xen_evtchn {
+  __u32 port;
+  __u32 vcpu;
+  __u32 priority;
+};
+#define KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL ((__u32) (- 1))
 #define KVM_IRQ_ROUTING_IRQCHIP 1
 #define KVM_IRQ_ROUTING_MSI 2
 #define KVM_IRQ_ROUTING_S390_ADAPTER 3
 #define KVM_IRQ_ROUTING_HV_SINT 4
+#define KVM_IRQ_ROUTING_XEN_EVTCHN 5
 struct kvm_irq_routing_entry {
   __u32 gsi;
   __u32 type;
@@ -893,6 +936,7 @@
     struct kvm_irq_routing_msi msi;
     struct kvm_irq_routing_s390_adapter adapter;
     struct kvm_irq_routing_hv_sint hv_sint;
+    struct kvm_irq_routing_xen_evtchn xen_evtchn;
     __u32 pad[8];
   } u;
 };
@@ -918,6 +962,7 @@
 #define KVM_XEN_HVM_CONFIG_INTERCEPT_HCALL (1 << 1)
 #define KVM_XEN_HVM_CONFIG_SHARED_INFO (1 << 2)
 #define KVM_XEN_HVM_CONFIG_RUNSTATE (1 << 3)
+#define KVM_XEN_HVM_CONFIG_EVTCHN_2LEVEL (1 << 4)
 struct kvm_xen_hvm_config {
   __u32 flags;
   __u32 msr;
@@ -938,10 +983,15 @@
   __u8 pad[16];
 };
 #define KVM_CLOCK_TSC_STABLE 2
+#define KVM_CLOCK_REALTIME (1 << 2)
+#define KVM_CLOCK_HOST_TSC (1 << 3)
 struct kvm_clock_data {
   __u64 clock;
   __u32 flags;
-  __u32 pad[9];
+  __u32 pad0;
+  __u64 realtime;
+  __u64 host_tsc;
+  __u32 pad[4];
 };
 #define KVM_MMU_FSL_BOOKE_NOHV 0
 #define KVM_MMU_FSL_BOOKE_HV 1
@@ -1105,6 +1155,7 @@
 #define KVM_PPC_GET_CPU_CHAR _IOR(KVMIO, 0xb1, struct kvm_ppc_cpu_char)
 #define KVM_SET_PMU_EVENT_FILTER _IOW(KVMIO, 0xb2, struct kvm_pmu_event_filter)
 #define KVM_PPC_SVM_OFF _IO(KVMIO, 0xb3)
+#define KVM_ARM_MTE_COPY_TAGS _IOR(KVMIO, 0xb4, struct kvm_arm_copy_mte_tags)
 #define KVM_CREATE_DEVICE _IOWR(KVMIO, 0xe0, struct kvm_create_device)
 #define KVM_SET_DEVICE_ATTR _IOW(KVMIO, 0xe1, struct kvm_device_attr)
 #define KVM_GET_DEVICE_ATTR _IOW(KVMIO, 0xe2, struct kvm_device_attr)
@@ -1230,6 +1281,8 @@
 #define KVM_XEN_ATTR_TYPE_UPCALL_VECTOR 0x2
 #define KVM_XEN_VCPU_GET_ATTR _IOWR(KVMIO, 0xca, struct kvm_xen_vcpu_attr)
 #define KVM_XEN_VCPU_SET_ATTR _IOW(KVMIO, 0xcb, struct kvm_xen_vcpu_attr)
+#define KVM_GET_SREGS2 _IOR(KVMIO, 0xcc, struct kvm_sregs2)
+#define KVM_SET_SREGS2 _IOW(KVMIO, 0xcd, struct kvm_sregs2)
 struct kvm_xen_vcpu_attr {
   __u16 type;
   __u16 pad[3];
@@ -1274,6 +1327,7 @@
   KVM_SEV_DBG_ENCRYPT,
   KVM_SEV_CERT_EXPORT,
   KVM_SEV_GET_ATTESTATION_REPORT,
+  KVM_SEV_SEND_CANCEL,
   KVM_SEV_NR_MAX,
 };
 struct kvm_sev_cmd {
@@ -1321,6 +1375,41 @@
   __u64 uaddr;
   __u32 len;
 };
+struct kvm_sev_send_start {
+  __u32 policy;
+  __u64 pdh_cert_uaddr;
+  __u32 pdh_cert_len;
+  __u64 plat_certs_uaddr;
+  __u32 plat_certs_len;
+  __u64 amd_certs_uaddr;
+  __u32 amd_certs_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_send_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
+struct kvm_sev_receive_start {
+  __u32 handle;
+  __u32 policy;
+  __u64 pdh_uaddr;
+  __u32 pdh_len;
+  __u64 session_uaddr;
+  __u32 session_len;
+};
+struct kvm_sev_receive_update_data {
+  __u64 hdr_uaddr;
+  __u32 hdr_len;
+  __u64 guest_uaddr;
+  __u32 guest_len;
+  __u64 trans_uaddr;
+  __u32 trans_len;
+};
 #define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
 #define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)
 #define KVM_DEV_ASSIGN_MASK_INTX (1 << 2)
@@ -1381,8 +1470,8 @@
 #ifndef KVM_DIRTY_LOG_PAGE_OFFSET
 #define KVM_DIRTY_LOG_PAGE_OFFSET 0
 #endif
-#define KVM_DIRTY_GFN_F_DIRTY BIT(0)
-#define KVM_DIRTY_GFN_F_RESET BIT(1)
+#define KVM_DIRTY_GFN_F_DIRTY _BITUL(0)
+#define KVM_DIRTY_GFN_F_RESET _BITUL(1)
 #define KVM_DIRTY_GFN_F_MASK 0x3
 struct kvm_dirty_gfn {
   __u32 flags;
@@ -1391,4 +1480,42 @@
 };
 #define KVM_BUS_LOCK_DETECTION_OFF (1 << 0)
 #define KVM_BUS_LOCK_DETECTION_EXIT (1 << 1)
+struct kvm_stats_header {
+  __u32 flags;
+  __u32 name_size;
+  __u32 num_desc;
+  __u32 id_offset;
+  __u32 desc_offset;
+  __u32 data_offset;
+};
+#define KVM_STATS_TYPE_SHIFT 0
+#define KVM_STATS_TYPE_MASK (0xF << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_CUMULATIVE (0x0 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_INSTANT (0x1 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_PEAK (0x2 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_LINEAR_HIST (0x3 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_LOG_HIST (0x4 << KVM_STATS_TYPE_SHIFT)
+#define KVM_STATS_TYPE_MAX KVM_STATS_TYPE_LOG_HIST
+#define KVM_STATS_UNIT_SHIFT 4
+#define KVM_STATS_UNIT_MASK (0xF << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_NONE (0x0 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_BYTES (0x1 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_SECONDS (0x2 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_CYCLES (0x3 << KVM_STATS_UNIT_SHIFT)
+#define KVM_STATS_UNIT_MAX KVM_STATS_UNIT_CYCLES
+#define KVM_STATS_BASE_SHIFT 8
+#define KVM_STATS_BASE_MASK (0xF << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_POW10 (0x0 << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_POW2 (0x1 << KVM_STATS_BASE_SHIFT)
+#define KVM_STATS_BASE_MAX KVM_STATS_BASE_POW2
+struct kvm_stats_desc {
+  __u32 flags;
+  __s16 exponent;
+  __u16 size;
+  __u32 offset;
+  __u32 bucket_size;
+  char name[];
+};
+#define KVM_GET_STATS_FD _IO(KVMIO, 0xce)
+#define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kvm_para.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kvm_para.h
index 9a4dd29..85084c2 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kvm_para.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/kvm_para.h
@@ -35,5 +35,6 @@
 #define KVM_HC_CLOCK_PAIRING 9
 #define KVM_HC_SEND_IPI 10
 #define KVM_HC_SCHED_YIELD 11
+#define KVM_HC_MAP_GPA_RANGE 12
 #include <asm/kvm_para.h>
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/landlock.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/landlock.h
new file mode 100644
index 0000000..50d79d8
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/landlock.h
@@ -0,0 +1,46 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_LANDLOCK_H
+#define _UAPI_LINUX_LANDLOCK_H
+#include <linux/types.h>
+struct landlock_ruleset_attr {
+  __u64 handled_access_fs;
+};
+#define LANDLOCK_CREATE_RULESET_VERSION (1U << 0)
+enum landlock_rule_type {
+  LANDLOCK_RULE_PATH_BENEATH = 1,
+};
+struct landlock_path_beneath_attr {
+  __u64 allowed_access;
+  __s32 parent_fd;
+} __attribute__((packed));
+#define LANDLOCK_ACCESS_FS_EXECUTE (1ULL << 0)
+#define LANDLOCK_ACCESS_FS_WRITE_FILE (1ULL << 1)
+#define LANDLOCK_ACCESS_FS_READ_FILE (1ULL << 2)
+#define LANDLOCK_ACCESS_FS_READ_DIR (1ULL << 3)
+#define LANDLOCK_ACCESS_FS_REMOVE_DIR (1ULL << 4)
+#define LANDLOCK_ACCESS_FS_REMOVE_FILE (1ULL << 5)
+#define LANDLOCK_ACCESS_FS_MAKE_CHAR (1ULL << 6)
+#define LANDLOCK_ACCESS_FS_MAKE_DIR (1ULL << 7)
+#define LANDLOCK_ACCESS_FS_MAKE_REG (1ULL << 8)
+#define LANDLOCK_ACCESS_FS_MAKE_SOCK (1ULL << 9)
+#define LANDLOCK_ACCESS_FS_MAKE_FIFO (1ULL << 10)
+#define LANDLOCK_ACCESS_FS_MAKE_BLOCK (1ULL << 11)
+#define LANDLOCK_ACCESS_FS_MAKE_SYM (1ULL << 12)
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/lightnvm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/lightnvm.h
deleted file mode 100644
index b3ac317..0000000
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/lightnvm.h
+++ /dev/null
@@ -1,167 +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_LINUX_LIGHTNVM_H
-#define _UAPI_LINUX_LIGHTNVM_H
-#include <stdio.h>
-#include <sys/ioctl.h>
-#define DISK_NAME_LEN 32
-#include <linux/types.h>
-#include <linux/ioctl.h>
-#define NVM_TTYPE_NAME_MAX 48
-#define NVM_TTYPE_MAX 63
-#define NVM_MMTYPE_LEN 8
-#define NVM_CTRL_FILE "/dev/lightnvm/control"
-struct nvm_ioctl_info_tgt {
-  __u32 version[3];
-  __u32 reserved;
-  char tgtname[NVM_TTYPE_NAME_MAX];
-};
-struct nvm_ioctl_info {
-  __u32 version[3];
-  __u16 tgtsize;
-  __u16 reserved16;
-  __u32 reserved[12];
-  struct nvm_ioctl_info_tgt tgts[NVM_TTYPE_MAX];
-};
-enum {
-  NVM_DEVICE_ACTIVE = 1 << 0,
-};
-struct nvm_ioctl_device_info {
-  char devname[DISK_NAME_LEN];
-  char bmname[NVM_TTYPE_NAME_MAX];
-  __u32 bmversion[3];
-  __u32 flags;
-  __u32 reserved[8];
-};
-struct nvm_ioctl_get_devices {
-  __u32 nr_devices;
-  __u32 reserved[31];
-  struct nvm_ioctl_device_info info[31];
-};
-struct nvm_ioctl_create_simple {
-  __u32 lun_begin;
-  __u32 lun_end;
-};
-struct nvm_ioctl_create_extended {
-  __u16 lun_begin;
-  __u16 lun_end;
-  __u16 op;
-  __u16 rsv;
-};
-enum {
-  NVM_CONFIG_TYPE_SIMPLE = 0,
-  NVM_CONFIG_TYPE_EXTENDED = 1,
-};
-struct nvm_ioctl_create_conf {
-  __u32 type;
-  union {
-    struct nvm_ioctl_create_simple s;
-    struct nvm_ioctl_create_extended e;
-  };
-};
-enum {
-  NVM_TARGET_FACTORY = 1 << 0,
-};
-struct nvm_ioctl_create {
-  char dev[DISK_NAME_LEN];
-  char tgttype[NVM_TTYPE_NAME_MAX];
-  char tgtname[DISK_NAME_LEN];
-  __u32 flags;
-  struct nvm_ioctl_create_conf conf;
-};
-struct nvm_ioctl_remove {
-  char tgtname[DISK_NAME_LEN];
-  __u32 flags;
-};
-struct nvm_ioctl_dev_init {
-  char dev[DISK_NAME_LEN];
-  char mmtype[NVM_MMTYPE_LEN];
-  __u32 flags;
-};
-enum {
-  NVM_FACTORY_ERASE_ONLY_USER = 1 << 0,
-  NVM_FACTORY_RESET_HOST_BLKS = 1 << 1,
-  NVM_FACTORY_RESET_GRWN_BBLKS = 1 << 2,
-  NVM_FACTORY_NR_BITS = 1 << 3,
-};
-struct nvm_ioctl_dev_factory {
-  char dev[DISK_NAME_LEN];
-  __u32 flags;
-};
-struct nvm_user_vio {
-  __u8 opcode;
-  __u8 flags;
-  __u16 control;
-  __u16 nppas;
-  __u16 rsvd;
-  __u64 metadata;
-  __u64 addr;
-  __u64 ppa_list;
-  __u32 metadata_len;
-  __u32 data_len;
-  __u64 status;
-  __u32 result;
-  __u32 rsvd3[3];
-};
-struct nvm_passthru_vio {
-  __u8 opcode;
-  __u8 flags;
-  __u8 rsvd[2];
-  __u32 nsid;
-  __u32 cdw2;
-  __u32 cdw3;
-  __u64 metadata;
-  __u64 addr;
-  __u32 metadata_len;
-  __u32 data_len;
-  __u64 ppa_list;
-  __u16 nppas;
-  __u16 control;
-  __u32 cdw13;
-  __u32 cdw14;
-  __u32 cdw15;
-  __u64 status;
-  __u32 result;
-  __u32 timeout_ms;
-};
-enum {
-  NVM_INFO_CMD = 0x20,
-  NVM_GET_DEVICES_CMD,
-  NVM_DEV_CREATE_CMD,
-  NVM_DEV_REMOVE_CMD,
-  NVM_DEV_INIT_CMD,
-  NVM_DEV_FACTORY_CMD,
-  NVM_DEV_VIO_ADMIN_CMD = 0x41,
-  NVM_DEV_VIO_CMD = 0x42,
-  NVM_DEV_VIO_USER_CMD = 0x43,
-};
-#define NVM_IOCTL 'L'
-#define NVM_INFO _IOWR(NVM_IOCTL, NVM_INFO_CMD, struct nvm_ioctl_info)
-#define NVM_GET_DEVICES _IOR(NVM_IOCTL, NVM_GET_DEVICES_CMD, struct nvm_ioctl_get_devices)
-#define NVM_DEV_CREATE _IOW(NVM_IOCTL, NVM_DEV_CREATE_CMD, struct nvm_ioctl_create)
-#define NVM_DEV_REMOVE _IOW(NVM_IOCTL, NVM_DEV_REMOVE_CMD, struct nvm_ioctl_remove)
-#define NVM_DEV_INIT _IOW(NVM_IOCTL, NVM_DEV_INIT_CMD, struct nvm_ioctl_dev_init)
-#define NVM_DEV_FACTORY _IOW(NVM_IOCTL, NVM_DEV_FACTORY_CMD, struct nvm_ioctl_dev_factory)
-#define NVME_NVM_IOCTL_IO_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_USER_CMD, struct nvm_passthru_vio)
-#define NVME_NVM_IOCTL_ADMIN_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_ADMIN_CMD, struct nvm_passthru_vio)
-#define NVME_NVM_IOCTL_SUBMIT_VIO _IOWR(NVM_IOCTL, NVM_DEV_VIO_CMD, struct nvm_user_vio)
-#define NVM_VERSION_MAJOR 1
-#define NVM_VERSION_MINOR 0
-#define NVM_VERSION_PATCHLEVEL 0
-#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/lwtunnel.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
index f472150..e6fb536 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/lwtunnel.h
@@ -29,6 +29,7 @@
   LWTUNNEL_ENCAP_BPF,
   LWTUNNEL_ENCAP_SEG6_LOCAL,
   LWTUNNEL_ENCAP_RPL,
+  LWTUNNEL_ENCAP_IOAM6,
   __LWTUNNEL_ENCAP_MAX,
 };
 #define LWTUNNEL_ENCAP_MAX (__LWTUNNEL_ENCAP_MAX - 1)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/magic.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/magic.h
index 479ae81..6563411 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/magic.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/magic.h
@@ -22,6 +22,7 @@
 #define AFFS_SUPER_MAGIC 0xadff
 #define AFS_SUPER_MAGIC 0x5346414F
 #define AUTOFS_SUPER_MAGIC 0x0187
+#define CEPH_SUPER_MAGIC 0x00c36400
 #define CODA_SUPER_MAGIC 0x73757245
 #define CRAMFS_MAGIC 0x28cd3d45
 #define CRAMFS_MAGIC_WEND 0x453dcd28
@@ -51,12 +52,14 @@
 #define EFIVARFS_MAGIC 0xde5e81e4
 #define HOSTFS_SUPER_MAGIC 0x00c0ffee
 #define OVERLAYFS_SUPER_MAGIC 0x794c7630
+#define FUSE_SUPER_MAGIC 0x65735546
 #define MINIX_SUPER_MAGIC 0x137F
 #define MINIX_SUPER_MAGIC2 0x138F
 #define MINIX2_SUPER_MAGIC 0x2468
 #define MINIX2_SUPER_MAGIC2 0x2478
 #define MINIX3_SUPER_MAGIC 0x4d5a
 #define MSDOS_SUPER_MAGIC 0x4d44
+#define EXFAT_SUPER_MAGIC 0x2011BAB0
 #define NCP_SUPER_MAGIC 0x564c
 #define NFS_SUPER_MAGIC 0x6969
 #define OCFS2_SUPER_MAGIC 0x7461636f
@@ -69,6 +72,8 @@
 #define REISER2FS_SUPER_MAGIC_STRING "ReIsEr2Fs"
 #define REISER2FS_JR_SUPER_MAGIC_STRING "ReIsEr3Fs"
 #define SMB_SUPER_MAGIC 0x517B
+#define CIFS_SUPER_MAGIC 0xFF534D42
+#define SMB2_SUPER_MAGIC 0xFE534D42
 #define CGROUP_SUPER_MAGIC 0x27e0eb
 #define CGROUP2_SUPER_MAGIC 0x63677270
 #define RDTGROUP_SUPER_MAGIC 0x7655821
@@ -100,4 +105,5 @@
 #define DEVMEM_MAGIC 0x454d444d
 #define Z3FOLD_MAGIC 0x33
 #define PPC_CMM_MAGIC 0xc7571590
+#define SECRETMEM_MAGIC 0x5345434d
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/major.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/major.h
index 7768d7b..f5e2cfb 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/major.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/major.h
@@ -45,8 +45,6 @@
 #define GOLDSTAR_CDROM_MAJOR 16
 #define OPTICS_CDROM_MAJOR 17
 #define SANYO_CDROM_MAJOR 18
-#define CYCLADES_MAJOR 19
-#define CYCLADESAUX_MAJOR 20
 #define MITSUMI_X_CDROM_MAJOR 20
 #define MFM_ACORN_MAJOR 21
 #define SCSI_GENERIC_MAJOR 21
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h
new file mode 100644
index 0000000..657df6c
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/map_to_14segment.h
@@ -0,0 +1,56 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 MAP_TO_14SEGMENT_H
+#define MAP_TO_14SEGMENT_H
+#include <linux/errno.h>
+#include <linux/types.h>
+#include <asm/byteorder.h>
+#define BIT_SEG14_A 0
+#define BIT_SEG14_B 1
+#define BIT_SEG14_C 2
+#define BIT_SEG14_D 3
+#define BIT_SEG14_E 4
+#define BIT_SEG14_F 5
+#define BIT_SEG14_G1 6
+#define BIT_SEG14_G2 7
+#define BIT_SEG14_H 8
+#define BIT_SEG14_I 9
+#define BIT_SEG14_J 10
+#define BIT_SEG14_K 11
+#define BIT_SEG14_L 12
+#define BIT_SEG14_M 13
+#define BIT_SEG14_RESERVED1 14
+#define BIT_SEG14_RESERVED2 15
+struct seg14_conversion_map {
+  __be16 table[128];
+};
+#define SEG14_CONVERSION_MAP(_name,_map) struct seg14_conversion_map _name = {.table = { _map } }
+#define MAP_TO_SEG14_SYSFS_FILE "map_seg14"
+#define _SEG14(sym,a,b,c,d,e,f,g1,g2,h,j,k,l,m,n) __cpu_to_be16(a << BIT_SEG14_A | b << BIT_SEG14_B | c << BIT_SEG14_C | d << BIT_SEG14_D | e << BIT_SEG14_E | f << BIT_SEG14_F | g1 << BIT_SEG14_G1 | g2 << BIT_SEG14_G2 | h << BIT_SEG14_H | j << BIT_SEG14_I | k << BIT_SEG14_J | l << BIT_SEG14_K | m << BIT_SEG14_L | n << BIT_SEG14_M)
+#define _MAP_0_32_ASCII_SEG14_NON_PRINTABLE 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+#define _MAP_33_47_ASCII_SEG14_SYMBOL _SEG14('!', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('"', 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), _SEG14('#', 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14('$', 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14('%', 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('&', 1, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1), _SEG14('\'', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0), _SEG14('(', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1), _SEG14(')', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0), _SEG14('*', 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1), _SEG14('+', 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0), _SEG14(',', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0), _SEG14('-', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('.', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1), _SEG14('/', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
+#define _MAP_48_57_ASCII_SEG14_NUMERIC _SEG14('0', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('1', 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0), _SEG14('2', 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('3', 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0), _SEG14('4', 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('5', 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1), _SEG14('6', 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('7', 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0), _SEG14('8', 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('9', 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0),
+#define _MAP_58_64_ASCII_SEG14_SYMBOL _SEG14(':', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14(';', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0), _SEG14('<', 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1), _SEG14('=', 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('>', 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0), _SEG14('?', 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0), _SEG14('@', 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0),
+#define _MAP_65_90_ASCII_SEG14_ALPHA_UPPER _SEG14('A', 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('B', 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0), _SEG14('C', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('D', 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('E', 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('F', 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('G', 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0), _SEG14('H', 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('I', 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('J', 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('K', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1), _SEG14('L', 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('M', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0), _SEG14('N', 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1), _SEG14('O', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('P', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('Q', 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1), _SEG14('R', 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1), _SEG14('S', 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('T', 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('U', 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('V', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0), _SEG14('W', 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('X', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1), _SEG14('Y', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0), _SEG14('Z', 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0),
+#define _MAP_91_96_ASCII_SEG14_SYMBOL _SEG14('[', 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('\\', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1), _SEG14(']', 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('^', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('_', 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('`', 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0),
+#define _MAP_97_122_ASCII_SEG14_ALPHA_LOWER _SEG14('a', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('b', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1), _SEG14('c', 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('d', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0), _SEG14('e', 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0), _SEG14('f', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0), _SEG14('g', 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), _SEG14('h', 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('i', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0), _SEG14('j', 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0), _SEG14('k', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1), _SEG14('l', 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('m', 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0), _SEG14('n', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0), _SEG14('o', 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0), _SEG14('p', 0, 0, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0), _SEG14('q', 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0), _SEG14('r', 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('s', 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1), _SEG14('t', 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0), _SEG14('u', 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0), _SEG14('v', 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0), _SEG14('w', 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1), _SEG14('x', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1), _SEG14('y', 0, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0), _SEG14('z', 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0),
+#define _MAP_123_126_ASCII_SEG14_SYMBOL _SEG14('{', 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0), _SEG14('|', 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0), _SEG14('}', 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1), _SEG14('~', 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0),
+#define MAP_ASCII14SEG_ALPHANUM _MAP_0_32_ASCII_SEG14_NON_PRINTABLE _MAP_33_47_ASCII_SEG14_SYMBOL _MAP_48_57_ASCII_SEG14_NUMERIC _MAP_58_64_ASCII_SEG14_SYMBOL _MAP_65_90_ASCII_SEG14_ALPHA_UPPER _MAP_91_96_ASCII_SEG14_SYMBOL _MAP_97_122_ASCII_SEG14_ALPHA_LOWER _MAP_123_126_ASCII_SEG14_SYMBOL
+#define SEG14_DEFAULT_MAP(_name) SEG14_CONVERSION_MAP(_name, MAP_ASCII14SEG_ALPHANUM)
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mctp.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mctp.h
new file mode 100644
index 0000000..21a9a14
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mctp.h
@@ -0,0 +1,50 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_MCTP_H
+#define __UAPI_MCTP_H
+#include <linux/types.h>
+#include <linux/socket.h>
+#include <linux/netdevice.h>
+typedef __u8 mctp_eid_t;
+struct mctp_addr {
+  mctp_eid_t s_addr;
+};
+struct sockaddr_mctp {
+  __kernel_sa_family_t smctp_family;
+  __u16 __smctp_pad0;
+  unsigned int smctp_network;
+  struct mctp_addr smctp_addr;
+  __u8 smctp_type;
+  __u8 smctp_tag;
+  __u8 __smctp_pad1;
+};
+struct sockaddr_mctp_ext {
+  struct sockaddr_mctp smctp_base;
+  int smctp_ifindex;
+  __u8 smctp_halen;
+  __u8 __smctp_pad0[3];
+  __u8 smctp_haddr[MAX_ADDR_LEN];
+};
+#define MCTP_NET_ANY 0x0
+#define MCTP_ADDR_NULL 0x00
+#define MCTP_ADDR_ANY 0xff
+#define MCTP_TAG_MASK 0x07
+#define MCTP_TAG_OWNER 0x08
+#define MCTP_OPT_ADDR_EXT 1
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mdio.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mdio.h
index a38cbfc..d5c9da8 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mdio.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mdio.h
@@ -55,9 +55,11 @@
 #define MDIO_AN_EEE_LPABLE 61
 #define MDIO_AN_EEE_ADV2 62
 #define MDIO_AN_EEE_LPABLE2 63
+#define MDIO_AN_CTRL2 64
 #define MDIO_PMA_10GBT_SWAPPOL 130
 #define MDIO_PMA_10GBT_TXPWR 131
 #define MDIO_PMA_10GBT_SNR 133
+#define MDIO_PMA_10GBR_FSRT_CSR 147
 #define MDIO_PMA_10GBR_FECABLE 170
 #define MDIO_PCS_10GBX_STAT1 24
 #define MDIO_PCS_10GBRT_STAT1 32
@@ -104,6 +106,8 @@
 #define MDIO_PMA_SPEED_100 0x0020
 #define MDIO_PMA_SPEED_10 0x0040
 #define MDIO_PCS_SPEED_10P2B 0x0002
+#define MDIO_PCS_SPEED_2_5G 0x0040
+#define MDIO_PCS_SPEED_5G 0x0080
 #define MDIO_DEVS_PRESENT(devad) (1 << (devad))
 #define MDIO_DEVS_C22PRESENT MDIO_DEVS_PRESENT(0)
 #define MDIO_DEVS_PMAPMD MDIO_DEVS_PRESENT(MDIO_MMD_PMAPMD)
@@ -197,9 +201,11 @@
 #define MDIO_PMA_10GBT_SNR_MAX 127
 #define MDIO_PMA_10GBR_FECABLE_ABLE 0x0001
 #define MDIO_PMA_10GBR_FECABLE_ERRABLE 0x0002
+#define MDIO_PMA_10GBR_FSRT_ENABLE 0x0001
 #define MDIO_PCS_10GBRT_STAT1_BLKLK 0x0001
 #define MDIO_PCS_10GBRT_STAT2_ERR 0x00ff
 #define MDIO_PCS_10GBRT_STAT2_BER 0x3f00
+#define MDIO_AN_10GBT_CTRL_ADVFSRT2_5G 0x0020
 #define MDIO_AN_10GBT_CTRL_ADV2_5G 0x0080
 #define MDIO_AN_10GBT_CTRL_ADV5G 0x0100
 #define MDIO_AN_10GBT_CTRL_ADV10G 0x1000
@@ -226,6 +232,7 @@
 #define MDIO_EEE_100GR_DS 0x2000
 #define MDIO_EEE_2_5GT 0x0001
 #define MDIO_EEE_5GT 0x0002
+#define MDIO_AN_THP_BP2_5GT 0x0008
 #define MDIO_PMA_NG_EXTABLE_2_5GBT 0x0001
 #define MDIO_PMA_NG_EXTABLE_5GBT 0x0002
 #define MDIO_PMA_LASI_RX_PHYXSLFLT 0x0001
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mempolicy.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mempolicy.h
index 5425c0e..f92970f 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mempolicy.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mempolicy.h
@@ -25,6 +25,7 @@
   MPOL_BIND,
   MPOL_INTERLEAVE,
   MPOL_LOCAL,
+  MPOL_PREFERRED_MANY,
   MPOL_MAX,
 };
 #define MPOL_F_STATIC_NODES (1 << 15)
@@ -41,7 +42,9 @@
 #define MPOL_MF_INTERNAL (1 << 4)
 #define MPOL_MF_VALID (MPOL_MF_STRICT | MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)
 #define MPOL_F_SHARED (1 << 0)
-#define MPOL_F_LOCAL (1 << 1)
 #define MPOL_F_MOF (1 << 3)
 #define MPOL_F_MORON (1 << 4)
+#define RECLAIM_ZONE (1 << 0)
+#define RECLAIM_WRITE (1 << 1)
+#define RECLAIM_UNMAP (1 << 2)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/module.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/module.h
index f08dc67..34a4c56 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/module.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/module.h
@@ -20,4 +20,5 @@
 #define _UAPI_LINUX_MODULE_H
 #define MODULE_INIT_IGNORE_MODVERSIONS 1
 #define MODULE_INIT_IGNORE_VERMAGIC 2
+#define MODULE_INIT_COMPRESSED_FILE 4
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mount.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mount.h
index 5a112c9..2099b48 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mount.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mount.h
@@ -62,7 +62,8 @@
 #define MOVE_MOUNT_T_SYMLINKS 0x00000010
 #define MOVE_MOUNT_T_AUTOMOUNTS 0x00000020
 #define MOVE_MOUNT_T_EMPTY_PATH 0x00000040
-#define MOVE_MOUNT__MASK 0x00000077
+#define MOVE_MOUNT_SET_GROUP 0x00000100
+#define MOVE_MOUNT__MASK 0x00000177
 #define FSOPEN_CLOEXEC 0x00000001
 #define FSPICK_CLOEXEC 0x00000001
 #define FSPICK_SYMLINK_NOFOLLOW 0x00000002
@@ -89,6 +90,7 @@
 #define MOUNT_ATTR_STRICTATIME 0x00000020
 #define MOUNT_ATTR_NODIRATIME 0x00000080
 #define MOUNT_ATTR_IDMAP 0x00100000
+#define MOUNT_ATTR_NOSYMFOLLOW 0x00200000
 struct mount_attr {
   __u64 attr_set;
   __u64 attr_clr;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mptcp.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mptcp.h
index b15adf5..67b0ce3 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mptcp.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/mptcp.h
@@ -20,6 +20,10 @@
 #define _UAPI_MPTCP_H
 #include <linux/const.h>
 #include <linux/types.h>
+#include <linux/in.h>
+#include <linux/in6.h>
+#include <linux/socket.h>
+#include <sys/socket.h>
 #define MPTCP_SUBFLOW_FLAG_MCAP_REM _BITUL(0)
 #define MPTCP_SUBFLOW_FLAG_MCAP_LOC _BITUL(1)
 #define MPTCP_SUBFLOW_FLAG_JOIN_REM _BITUL(2)
@@ -72,6 +76,7 @@
 #define MPTCP_PM_ADDR_FLAG_SIGNAL (1 << 0)
 #define MPTCP_PM_ADDR_FLAG_SUBFLOW (1 << 1)
 #define MPTCP_PM_ADDR_FLAG_BACKUP (1 << 2)
+#define MPTCP_PM_ADDR_FLAG_FULLMESH (1 << 3)
 enum {
   MPTCP_PM_CMD_UNSPEC,
   MPTCP_PM_CMD_ADD_ADDR,
@@ -99,6 +104,7 @@
   __u64 mptcpi_rcv_nxt;
   __u8 mptcpi_local_addr_used;
   __u8 mptcpi_local_addr_max;
+  __u8 mptcpi_csum_enabled;
 };
 enum mptcp_event_type {
   MPTCP_EVENT_UNSPEC = 0,
@@ -128,7 +134,40 @@
   MPTCP_ATTR_FLAGS,
   MPTCP_ATTR_TIMEOUT,
   MPTCP_ATTR_IF_IDX,
+  MPTCP_ATTR_RESET_REASON,
+  MPTCP_ATTR_RESET_FLAGS,
   __MPTCP_ATTR_AFTER_LAST
 };
 #define MPTCP_ATTR_MAX (__MPTCP_ATTR_AFTER_LAST - 1)
+#define MPTCP_RST_EUNSPEC 0
+#define MPTCP_RST_EMPTCP 1
+#define MPTCP_RST_ERESOURCE 2
+#define MPTCP_RST_EPROHIBIT 3
+#define MPTCP_RST_EWQ2BIG 4
+#define MPTCP_RST_EBADPERF 5
+#define MPTCP_RST_EMIDDLEBOX 6
+struct mptcp_subflow_data {
+  __u32 size_subflow_data;
+  __u32 num_subflows;
+  __u32 size_kernel;
+  __u32 size_user;
+} __attribute__((aligned(8)));
+struct mptcp_subflow_addrs {
+  union {
+    __kernel_sa_family_t sa_family;
+    struct sockaddr sa_local;
+    struct sockaddr_in sin_local;
+    struct sockaddr_in6 sin6_local;
+    struct __kernel_sockaddr_storage ss_local;
+  };
+  union {
+    struct sockaddr sa_remote;
+    struct sockaddr_in sin_remote;
+    struct sockaddr_in6 sin6_remote;
+    struct __kernel_sockaddr_storage ss_remote;
+  };
+};
+#define MPTCP_INFO 1
+#define MPTCP_TCPINFO 2
+#define MPTCP_SUBFLOW_ADDRS 3
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/n_r3964.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/n_r3964.h
deleted file mode 100644
index 5a7cccc..0000000
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/n_r3964.h
+++ /dev/null
@@ -1,46 +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__LINUX_N_R3964_H__
-#define _UAPI__LINUX_N_R3964_H__
-#define R3964_ENABLE_SIGNALS 0x5301
-#define R3964_SETPRIORITY 0x5302
-#define R3964_USE_BCC 0x5303
-#define R3964_READ_TELEGRAM 0x5304
-#define R3964_MASTER 0
-#define R3964_SLAVE 1
-#define R3964_SIG_ACK 0x0001
-#define R3964_SIG_DATA 0x0002
-#define R3964_SIG_ALL 0x000f
-#define R3964_SIG_NONE 0x0000
-#define R3964_USE_SIGIO 0x1000
-enum {
-  R3964_MSG_ACK = 1,
-  R3964_MSG_DATA
-};
-#define R3964_MAX_MSG_COUNT 32
-#define R3964_OK 0
-#define R3964_TX_FAIL - 1
-#define R3964_OVERFLOW - 2
-struct r3964_client_message {
-  int msg_id;
-  int arg;
-  int error_code;
-};
-#define R3964_MTU 256
-#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
index 9faf689..dffb077 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nbd-netlink.h
@@ -32,6 +32,7 @@
   NBD_ATTR_SOCKETS,
   NBD_ATTR_DEAD_CONN_TIMEOUT,
   NBD_ATTR_DEVICE_LIST,
+  NBD_ATTR_BACKEND_IDENTIFIER,
   __NBD_ATTR_MAX,
 };
 #define NBD_ATTR_MAX (__NBD_ATTR_MAX - 1)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/neighbour.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/neighbour.h
index e0e84aa..278f7d1 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/neighbour.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/neighbour.h
@@ -45,17 +45,19 @@
   NDA_PROTOCOL,
   NDA_NH_ID,
   NDA_FDB_EXT_ATTRS,
+  NDA_FLAGS_EXT,
   __NDA_MAX
 };
 #define NDA_MAX (__NDA_MAX - 1)
-#define NTF_USE 0x01
-#define NTF_SELF 0x02
-#define NTF_MASTER 0x04
-#define NTF_PROXY 0x08
-#define NTF_EXT_LEARNED 0x10
-#define NTF_OFFLOADED 0x20
-#define NTF_STICKY 0x40
-#define NTF_ROUTER 0x80
+#define NTF_USE (1 << 0)
+#define NTF_SELF (1 << 1)
+#define NTF_MASTER (1 << 2)
+#define NTF_PROXY (1 << 3)
+#define NTF_EXT_LEARNED (1 << 4)
+#define NTF_OFFLOADED (1 << 5)
+#define NTF_STICKY (1 << 6)
+#define NTF_ROUTER (1 << 7)
+#define NTF_EXT_MANAGED (1 << 0)
 #define NUD_INCOMPLETE 0x01
 #define NUD_REACHABLE 0x02
 #define NUD_STALE 0x04
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/net_tstamp.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
index 373d1bb..510c0da 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/net_tstamp.h
@@ -36,15 +36,26 @@
   SOF_TIMESTAMPING_OPT_STATS = (1 << 12),
   SOF_TIMESTAMPING_OPT_PKTINFO = (1 << 13),
   SOF_TIMESTAMPING_OPT_TX_SWHW = (1 << 14),
-  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_OPT_TX_SWHW,
+  SOF_TIMESTAMPING_BIND_PHC = (1 << 15),
+  SOF_TIMESTAMPING_LAST = SOF_TIMESTAMPING_BIND_PHC,
   SOF_TIMESTAMPING_MASK = (SOF_TIMESTAMPING_LAST - 1) | SOF_TIMESTAMPING_LAST
 };
 #define SOF_TIMESTAMPING_TX_RECORD_MASK (SOF_TIMESTAMPING_TX_HARDWARE | SOF_TIMESTAMPING_TX_SOFTWARE | SOF_TIMESTAMPING_TX_SCHED | SOF_TIMESTAMPING_TX_ACK)
+struct so_timestamping {
+  int flags;
+  int bind_phc;
+};
 struct hwtstamp_config {
   int flags;
   int tx_type;
   int rx_filter;
 };
+enum hwtstamp_flags {
+  HWTSTAMP_FLAG_BONDED_PHC_INDEX = (1 << 0),
+#define HWTSTAMP_FLAG_BONDED_PHC_INDEX HWTSTAMP_FLAG_BONDED_PHC_INDEX
+  HWTSTAMP_FLAG_LAST = HWTSTAMP_FLAG_BONDED_PHC_INDEX,
+  HWTSTAMP_FLAG_MASK = (HWTSTAMP_FLAG_LAST - 1) | HWTSTAMP_FLAG_LAST
+};
 enum hwtstamp_tx_types {
   HWTSTAMP_TX_OFF,
   HWTSTAMP_TX_ON,
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter.h
index 261b979..77b8a91 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter.h
@@ -47,6 +47,7 @@
 };
 enum nf_dev_hooks {
   NF_NETDEV_INGRESS,
+  NF_NETDEV_EGRESS,
   NF_NETDEV_NUMHOOKS
 };
 enum {
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
index 0023a94..441cd60 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nf_tables.h
@@ -223,6 +223,7 @@
 #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,
@@ -385,6 +386,7 @@
   NFT_PAYLOAD_LL_HEADER,
   NFT_PAYLOAD_NETWORK_HEADER,
   NFT_PAYLOAD_TRANSPORT_HEADER,
+  NFT_PAYLOAD_INNER_HEADER,
 };
 enum nft_payload_csum_types {
   NFT_PAYLOAD_CSUM_NONE,
@@ -414,6 +416,7 @@
   NFT_EXTHDR_OP_IPV6,
   NFT_EXTHDR_OP_TCPOPT,
   NFT_EXTHDR_OP_IPV4,
+  NFT_EXTHDR_OP_SCTP,
   __NFT_EXTHDR_OP_MAX
 };
 #define NFT_EXTHDR_OP_MAX (__NFT_EXTHDR_OP_MAX - 1)
@@ -438,7 +441,8 @@
   NFT_META_OIF,
   NFT_META_IIFNAME,
   NFT_META_OIFNAME,
-  NFT_META_IIFTYPE,
+  NFT_META_IFTYPE,
+#define NFT_META_IIFTYPE NFT_META_IFTYPE
   NFT_META_OIFTYPE,
   NFT_META_SKUID,
   NFT_META_SKGID,
@@ -465,6 +469,7 @@
   NFT_META_TIME_HOUR,
   NFT_META_SDIF,
   NFT_META_SDIFNAME,
+  __NFT_META_IIFTYPE,
 };
 enum nft_rt_keys {
   NFT_RT_CLASSID,
@@ -512,6 +517,7 @@
   NFTA_SOCKET_UNSPEC,
   NFTA_SOCKET_KEY,
   NFTA_SOCKET_DREG,
+  NFTA_SOCKET_LEVEL,
   __NFTA_SOCKET_MAX
 };
 #define NFTA_SOCKET_MAX (__NFTA_SOCKET_MAX - 1)
@@ -519,6 +525,7 @@
   NFT_SOCKET_TRANSPARENT,
   NFT_SOCKET_MARK,
   NFT_SOCKET_WILDCARD,
+  NFT_SOCKET_CGROUPV2,
   __NFT_SOCKET_MAX
 };
 #define NFT_SOCKET_MAX (__NFT_SOCKET_MAX - 1)
@@ -601,6 +608,14 @@
   __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,
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
index 9145552..705de74 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink.h
@@ -64,7 +64,8 @@
 #define NFNL_SUBSYS_CTHELPER 9
 #define NFNL_SUBSYS_NFTABLES 10
 #define NFNL_SUBSYS_NFT_COMPAT 11
-#define NFNL_SUBSYS_COUNT 12
+#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 {
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
index 4501e53..200f1a0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_conntrack.h
@@ -67,6 +67,7 @@
   CTA_LABELS_MASK,
   CTA_SYNPROXY,
   CTA_FILTER,
+  CTA_STATUS_MASK,
   __CTA_MAX
 };
 #define CTA_MAX (__CTA_MAX - 1)
@@ -249,6 +250,7 @@
   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)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
new file mode 100644
index 0000000..ce1692c
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/nfnetlink_hook.h
@@ -0,0 +1,54 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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,
+};
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
index 23606df..6dd8dbc 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netfilter/xt_SECMARK.h
@@ -26,4 +26,9 @@
   __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/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netlink.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netlink.h
index da6a46b..77825cc 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netlink.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/netlink.h
@@ -80,7 +80,7 @@
 #define NLMSG_HDRLEN ((int) NLMSG_ALIGN(sizeof(struct nlmsghdr)))
 #define NLMSG_LENGTH(len) ((len) + NLMSG_HDRLEN)
 #define NLMSG_SPACE(len) NLMSG_ALIGN(NLMSG_LENGTH(len))
-#define NLMSG_DATA(nlh) ((void *) (((char *) nlh) + NLMSG_LENGTH(0)))
+#define NLMSG_DATA(nlh) ((void *) (((char *) nlh) + NLMSG_HDRLEN))
 #define NLMSG_NEXT(nlh,len) ((len) -= NLMSG_ALIGN((nlh)->nlmsg_len), (struct nlmsghdr *) (((char *) (nlh)) + NLMSG_ALIGN((nlh)->nlmsg_len)))
 #define NLMSG_OK(nlh,len) ((len) >= (int) sizeof(struct nlmsghdr) && (nlh)->nlmsg_len >= sizeof(struct nlmsghdr) && (nlh)->nlmsg_len <= (len))
 #define NLMSG_PAYLOAD(nlh,len) ((nlh)->nlmsg_len - NLMSG_SPACE((len)))
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nexthop.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nexthop.h
index f99a074..4bc9ff0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nexthop.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nexthop.h
@@ -34,6 +34,7 @@
 };
 enum {
   NEXTHOP_GRP_TYPE_MPATH,
+  NEXTHOP_GRP_TYPE_RES,
   __NEXTHOP_GRP_TYPE_MAX,
 };
 #define NEXTHOP_GRP_TYPE_MAX (__NEXTHOP_GRP_TYPE_MAX - 1)
@@ -50,7 +51,28 @@
   NHA_GROUPS,
   NHA_MASTER,
   NHA_FDB,
+  NHA_RES_GROUP,
+  NHA_RES_BUCKET,
   __NHA_MAX,
 };
 #define NHA_MAX (__NHA_MAX - 1)
+enum {
+  NHA_RES_GROUP_UNSPEC,
+  NHA_RES_GROUP_PAD = NHA_RES_GROUP_UNSPEC,
+  NHA_RES_GROUP_BUCKETS,
+  NHA_RES_GROUP_IDLE_TIMER,
+  NHA_RES_GROUP_UNBALANCED_TIMER,
+  NHA_RES_GROUP_UNBALANCED_TIME,
+  __NHA_RES_GROUP_MAX,
+};
+#define NHA_RES_GROUP_MAX (__NHA_RES_GROUP_MAX - 1)
+enum {
+  NHA_RES_BUCKET_UNSPEC,
+  NHA_RES_BUCKET_PAD = NHA_RES_BUCKET_UNSPEC,
+  NHA_RES_BUCKET_INDEX,
+  NHA_RES_BUCKET_IDLE_TIME,
+  NHA_RES_BUCKET_NH_ID,
+  __NHA_RES_BUCKET_MAX,
+};
+#define NHA_RES_BUCKET_MAX (__NHA_RES_BUCKET_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nfc.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nfc.h
index 72e3520..ff980f4 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nfc.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nfc.h
@@ -139,14 +139,14 @@
 #define NFC_SE_DISABLED 0x0
 #define NFC_SE_ENABLED 0x1
 struct sockaddr_nfc {
-  sa_family_t sa_family;
+  __kernel_sa_family_t sa_family;
   __u32 dev_idx;
   __u32 target_idx;
   __u32 nfc_protocol;
 };
 #define NFC_LLCP_MAX_SERVICE_NAME 63
 struct sockaddr_nfc_llcp {
-  sa_family_t sa_family;
+  __kernel_sa_family_t sa_family;
   __u32 dev_idx;
   __u32 target_idx;
   __u32 nfc_protocol;
@@ -154,7 +154,7 @@
   __u8 ssap;
   char service_name[NFC_LLCP_MAX_SERVICE_NAME];
 ;
-  size_t service_name_len;
+  __kernel_size_t service_name_len;
 };
 #define NFC_SOCKPROTO_RAW 0
 #define NFC_SOCKPROTO_LLCP 1
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h
deleted file mode 100644
index 1a805c3..0000000
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nfsd/nfsfh.h
+++ /dev/null
@@ -1,63 +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_LINUX_NFSD_FH_H
-#define _UAPI_LINUX_NFSD_FH_H
-#include <linux/types.h>
-#include <linux/nfs.h>
-#include <linux/nfs2.h>
-#include <linux/nfs3.h>
-#include <linux/nfs4.h>
-struct nfs_fhbase_old {
-  __u32 fb_dcookie;
-  __u32 fb_ino;
-  __u32 fb_dirino;
-  __u32 fb_dev;
-  __u32 fb_xdev;
-  __u32 fb_xino;
-  __u32 fb_generation;
-};
-struct nfs_fhbase_new {
-  __u8 fb_version;
-  __u8 fb_auth_type;
-  __u8 fb_fsid_type;
-  __u8 fb_fileid_type;
-  __u32 fb_auth[1];
-};
-struct knfsd_fh {
-  unsigned int fh_size;
-  union {
-    struct nfs_fhbase_old fh_old;
-    __u32 fh_pad[NFS4_FHSIZE / 4];
-    struct nfs_fhbase_new fh_new;
-  } fh_base;
-};
-#define ofh_dcookie fh_base.fh_old.fb_dcookie
-#define ofh_ino fh_base.fh_old.fb_ino
-#define ofh_dirino fh_base.fh_old.fb_dirino
-#define ofh_dev fh_base.fh_old.fb_dev
-#define ofh_xdev fh_base.fh_old.fb_xdev
-#define ofh_xino fh_base.fh_old.fb_xino
-#define ofh_generation fh_base.fh_old.fb_generation
-#define fh_version fh_base.fh_new.fb_version
-#define fh_fsid_type fh_base.fh_new.fb_fsid_type
-#define fh_auth_type fh_base.fh_new.fb_auth_type
-#define fh_fileid_type fh_base.fh_new.fb_fileid_type
-#define fh_fsid fh_base.fh_new.fb_auth
-#define fh_auth fh_base.fh_new.fb_auth
-#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h
new file mode 100644
index 0000000..9ade75a
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nl80211-vnd-intel.h
@@ -0,0 +1,49 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __VENDOR_CMD_INTEL_H__
+#define __VENDOR_CMD_INTEL_H__
+#define INTEL_OUI 0x001735
+enum iwl_mvm_vendor_cmd {
+  IWL_MVM_VENDOR_CMD_GET_CSME_CONN_INFO = 0x2d,
+  IWL_MVM_VENDOR_CMD_HOST_GET_OWNERSHIP = 0x30,
+  IWL_MVM_VENDOR_CMD_ROAMING_FORBIDDEN_EVENT = 0x32,
+};
+enum iwl_vendor_auth_akm_mode {
+  IWL_VENDOR_AUTH_OPEN,
+  IWL_VENDOR_AUTH_RSNA = 0x6,
+  IWL_VENDOR_AUTH_RSNA_PSK,
+  IWL_VENDOR_AUTH_SAE = 0x9,
+  IWL_VENDOR_AUTH_MAX,
+};
+enum iwl_mvm_vendor_attr {
+  __IWL_MVM_VENDOR_ATTR_INVALID = 0x00,
+  IWL_MVM_VENDOR_ATTR_VIF_ADDR = 0x02,
+  IWL_MVM_VENDOR_ATTR_ADDR = 0x0a,
+  IWL_MVM_VENDOR_ATTR_SSID = 0x3d,
+  IWL_MVM_VENDOR_ATTR_STA_CIPHER = 0x51,
+  IWL_MVM_VENDOR_ATTR_ROAMING_FORBIDDEN = 0x64,
+  IWL_MVM_VENDOR_ATTR_AUTH_MODE = 0x65,
+  IWL_MVM_VENDOR_ATTR_CHANNEL_NUM = 0x66,
+  IWL_MVM_VENDOR_ATTR_BAND = 0x69,
+  IWL_MVM_VENDOR_ATTR_COLLOC_CHANNEL = 0x70,
+  IWL_MVM_VENDOR_ATTR_COLLOC_ADDR = 0x71,
+  NUM_IWL_MVM_VENDOR_ATTR,
+  MAX_IWL_MVM_VENDOR_ATTR = NUM_IWL_MVM_VENDOR_ATTR - 1,
+};
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nl80211.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nl80211.h
index 5181160..e902178 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nl80211.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/nl80211.h
@@ -178,6 +178,13 @@
   NL80211_CMD_UNPROT_BEACON,
   NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS,
   NL80211_CMD_SET_SAR_SPECS,
+  NL80211_CMD_OBSS_COLOR_COLLISION,
+  NL80211_CMD_COLOR_CHANGE_REQUEST,
+  NL80211_CMD_COLOR_CHANGE_STARTED,
+  NL80211_CMD_COLOR_CHANGE_ABORTED,
+  NL80211_CMD_COLOR_CHANGE_COMPLETED,
+  NL80211_CMD_SET_FILS_AAD,
+  NL80211_CMD_ASSOC_COMEBACK,
   __NL80211_CMD_AFTER_LAST,
   NL80211_CMD_MAX = __NL80211_CMD_AFTER_LAST - 1
 };
@@ -496,6 +503,14 @@
   NL80211_ATTR_RECONNECT_REQUESTED,
   NL80211_ATTR_SAR_SPEC,
   NL80211_ATTR_DISABLE_HE,
+  NL80211_ATTR_OBSS_COLOR_BITMAP,
+  NL80211_ATTR_COLOR_CHANGE_COUNT,
+  NL80211_ATTR_COLOR_CHANGE_COLOR,
+  NL80211_ATTR_COLOR_CHANGE_ELEMS,
+  NL80211_ATTR_MBSSID_CONFIG,
+  NL80211_ATTR_MBSSID_ELEMS,
+  NL80211_ATTR_RADAR_BACKGROUND,
+  NL80211_ATTR_AP_SETTINGS_FLAGS,
   __NL80211_ATTR_AFTER_LAST,
   NUM_NL80211_ATTR = __NL80211_ATTR_AFTER_LAST,
   NL80211_ATTR_MAX = __NL80211_ATTR_AFTER_LAST - 1
@@ -738,6 +753,7 @@
   NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
   NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
   NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA,
+  NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS,
   __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
   NL80211_BAND_IFTYPE_ATTR_MAX = __NL80211_BAND_IFTYPE_ATTR_AFTER_LAST - 1
 };
@@ -1137,6 +1153,7 @@
   NL80211_BAND_60GHZ,
   NL80211_BAND_6GHZ,
   NL80211_BAND_S1GHZ,
+  NL80211_BAND_LC,
   NUM_NL80211_BANDS,
 };
 enum nl80211_ps_state {
@@ -1359,6 +1376,9 @@
   NL80211_TDLS_ENABLE_LINK,
   NL80211_TDLS_DISABLE_LINK,
 };
+enum nl80211_ap_sme_features {
+  NL80211_AP_SME_SA_QUERY_OFFLOAD = 1 << 0,
+};
 enum nl80211_feature_flags {
   NL80211_FEATURE_SK_TX_STATUS = 1 << 0,
   NL80211_FEATURE_HT_IBSS = 1 << 1,
@@ -1449,6 +1469,12 @@
   NL80211_EXT_FEATURE_FILS_DISCOVERY,
   NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
   NL80211_EXT_FEATURE_BEACON_RATE_HE,
+  NL80211_EXT_FEATURE_SECURE_LTF,
+  NL80211_EXT_FEATURE_SECURE_RTT,
+  NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
+  NL80211_EXT_FEATURE_BSS_COLOR,
+  NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD,
+  NL80211_EXT_FEATURE_RADAR_BACKGROUND,
   NUM_NL80211_EXT_FEATURES,
   MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
 };
@@ -1533,6 +1559,7 @@
   NL80211_TDLS_PEER_HT = 1 << 0,
   NL80211_TDLS_PEER_VHT = 1 << 1,
   NL80211_TDLS_PEER_WMM = 1 << 2,
+  NL80211_TDLS_PEER_HE = 1 << 3,
 };
 enum nl80211_sched_scan_plan {
   __NL80211_SCHED_SCAN_PLAN_INVALID,
@@ -1720,6 +1747,8 @@
   NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
   NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
   NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
+  NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
+  NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR,
   NUM_NL80211_PMSR_FTM_REQ_ATTR,
   NL80211_PMSR_FTM_REQ_ATTR_MAX = NUM_NL80211_PMSR_FTM_REQ_ATTR - 1
 };
@@ -1827,4 +1856,18 @@
   __NL80211_SAR_ATTR_SPECS_LAST,
   NL80211_SAR_ATTR_SPECS_MAX = __NL80211_SAR_ATTR_SPECS_LAST - 1,
 };
+enum nl80211_mbssid_config_attributes {
+  __NL80211_MBSSID_CONFIG_ATTR_INVALID,
+  NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES,
+  NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY,
+  NL80211_MBSSID_CONFIG_ATTR_INDEX,
+  NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX,
+  NL80211_MBSSID_CONFIG_ATTR_EMA,
+  __NL80211_MBSSID_CONFIG_ATTR_LAST,
+  NL80211_MBSSID_CONFIG_ATTR_MAX = __NL80211_MBSSID_CONFIG_ATTR_LAST - 1,
+};
+enum nl80211_ap_settings_flags {
+  NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 1 << 0,
+  NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 1 << 1,
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/openvswitch.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/openvswitch.h
index 7db5cd5..1f8ae17 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/openvswitch.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/openvswitch.h
@@ -43,6 +43,7 @@
   OVS_DP_ATTR_USER_FEATURES,
   OVS_DP_ATTR_PAD,
   OVS_DP_ATTR_MASKS_CACHE_SIZE,
+  OVS_DP_ATTR_PER_CPU_PIDS,
   __OVS_DP_ATTR_MAX
 };
 #define OVS_DP_ATTR_MAX (__OVS_DP_ATTR_MAX - 1)
@@ -72,6 +73,7 @@
 #define OVS_DP_F_UNALIGNED (1 << 0)
 #define OVS_DP_F_VPORT_PIDS (1 << 1)
 #define OVS_DP_F_TC_RECIRC_SHARING (1 << 2)
+#define OVS_DP_F_DISPATCH_UPCALL_PER_CPU (1 << 3)
 #define OVSP_LOCAL ((__u32) 0)
 #define OVS_PACKET_FAMILY "ovs_packet"
 #define OVS_PACKET_VERSION 0x1
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pci_regs.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pci_regs.h
index 81450a7..46612da 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pci_regs.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pci_regs.h
@@ -245,21 +245,21 @@
 #define PCI_SID_ESR_NSLOTS 0x1f
 #define PCI_SID_ESR_FIC 0x20
 #define PCI_SID_CHASSIS_NR 3
-#define PCI_MSI_FLAGS 2
+#define PCI_MSI_FLAGS 0x02
 #define PCI_MSI_FLAGS_ENABLE 0x0001
 #define PCI_MSI_FLAGS_QMASK 0x000e
 #define PCI_MSI_FLAGS_QSIZE 0x0070
 #define PCI_MSI_FLAGS_64BIT 0x0080
 #define PCI_MSI_FLAGS_MASKBIT 0x0100
 #define PCI_MSI_RFU 3
-#define PCI_MSI_ADDRESS_LO 4
-#define PCI_MSI_ADDRESS_HI 8
-#define PCI_MSI_DATA_32 8
-#define PCI_MSI_MASK_32 12
-#define PCI_MSI_PENDING_32 16
-#define PCI_MSI_DATA_64 12
-#define PCI_MSI_MASK_64 16
-#define PCI_MSI_PENDING_64 20
+#define PCI_MSI_ADDRESS_LO 0x04
+#define PCI_MSI_ADDRESS_HI 0x08
+#define PCI_MSI_DATA_32 0x08
+#define PCI_MSI_MASK_32 0x0c
+#define PCI_MSI_PENDING_32 0x10
+#define PCI_MSI_DATA_64 0x0c
+#define PCI_MSI_MASK_64 0x10
+#define PCI_MSI_PENDING_64 0x14
 #define PCI_MSIX_FLAGS 2
 #define PCI_MSIX_FLAGS_QSIZE 0x07FF
 #define PCI_MSIX_FLAGS_MASKALL 0x4000
@@ -273,10 +273,10 @@
 #define PCI_MSIX_FLAGS_BIRMASK PCI_MSIX_PBA_BIR
 #define PCI_CAP_MSIX_SIZEOF 12
 #define PCI_MSIX_ENTRY_SIZE 16
-#define PCI_MSIX_ENTRY_LOWER_ADDR 0
-#define PCI_MSIX_ENTRY_UPPER_ADDR 4
-#define PCI_MSIX_ENTRY_DATA 8
-#define PCI_MSIX_ENTRY_VECTOR_CTRL 12
+#define PCI_MSIX_ENTRY_LOWER_ADDR 0x0
+#define PCI_MSIX_ENTRY_UPPER_ADDR 0x4
+#define PCI_MSIX_ENTRY_DATA 0x8
+#define PCI_MSIX_ENTRY_VECTOR_CTRL 0xc
 #define PCI_MSIX_ENTRY_CTRL_MASKBIT 0x00000001
 #define PCI_CHSWP_CSR 2
 #define PCI_CHSWP_DHA 0x01
@@ -379,7 +379,7 @@
 #define PCI_X_BRIDGE_STATUS 4
 #define PCI_SSVID_VENDOR_ID 4
 #define PCI_SSVID_DEVICE_ID 6
-#define PCI_EXP_FLAGS 2
+#define PCI_EXP_FLAGS 0x02
 #define PCI_EXP_FLAGS_VERS 0x000f
 #define PCI_EXP_FLAGS_TYPE 0x00f0
 #define PCI_EXP_TYPE_ENDPOINT 0x0
@@ -393,7 +393,7 @@
 #define PCI_EXP_TYPE_RC_EC 0xa
 #define PCI_EXP_FLAGS_SLOT 0x0100
 #define PCI_EXP_FLAGS_IRQ 0x3e00
-#define PCI_EXP_DEVCAP 4
+#define PCI_EXP_DEVCAP 0x04
 #define PCI_EXP_DEVCAP_PAYLOAD 0x00000007
 #define PCI_EXP_DEVCAP_PHANTOM 0x00000018
 #define PCI_EXP_DEVCAP_EXT_TAG 0x00000020
@@ -406,13 +406,19 @@
 #define PCI_EXP_DEVCAP_PWR_VAL 0x03fc0000
 #define PCI_EXP_DEVCAP_PWR_SCL 0x0c000000
 #define PCI_EXP_DEVCAP_FLR 0x10000000
-#define PCI_EXP_DEVCTL 8
+#define PCI_EXP_DEVCTL 0x08
 #define PCI_EXP_DEVCTL_CERE 0x0001
 #define PCI_EXP_DEVCTL_NFERE 0x0002
 #define PCI_EXP_DEVCTL_FERE 0x0004
 #define PCI_EXP_DEVCTL_URRE 0x0008
 #define PCI_EXP_DEVCTL_RELAX_EN 0x0010
 #define PCI_EXP_DEVCTL_PAYLOAD 0x00e0
+#define PCI_EXP_DEVCTL_PAYLOAD_128B 0x0000
+#define PCI_EXP_DEVCTL_PAYLOAD_256B 0x0020
+#define PCI_EXP_DEVCTL_PAYLOAD_512B 0x0040
+#define PCI_EXP_DEVCTL_PAYLOAD_1024B 0x0060
+#define PCI_EXP_DEVCTL_PAYLOAD_2048B 0x0080
+#define PCI_EXP_DEVCTL_PAYLOAD_4096B 0x00a0
 #define PCI_EXP_DEVCTL_EXT_TAG 0x0100
 #define PCI_EXP_DEVCTL_PHANTOM 0x0200
 #define PCI_EXP_DEVCTL_AUX_PME 0x0400
@@ -425,7 +431,7 @@
 #define PCI_EXP_DEVCTL_READRQ_2048B 0x4000
 #define PCI_EXP_DEVCTL_READRQ_4096B 0x5000
 #define PCI_EXP_DEVCTL_BCR_FLR 0x8000
-#define PCI_EXP_DEVSTA 10
+#define PCI_EXP_DEVSTA 0x0a
 #define PCI_EXP_DEVSTA_CED 0x0001
 #define PCI_EXP_DEVSTA_NFED 0x0002
 #define PCI_EXP_DEVSTA_FED 0x0004
@@ -433,7 +439,7 @@
 #define PCI_EXP_DEVSTA_AUXPD 0x0010
 #define PCI_EXP_DEVSTA_TRPND 0x0020
 #define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V1 12
-#define PCI_EXP_LNKCAP 12
+#define PCI_EXP_LNKCAP 0x0c
 #define PCI_EXP_LNKCAP_SLS 0x0000000f
 #define PCI_EXP_LNKCAP_SLS_2_5GB 0x00000001
 #define PCI_EXP_LNKCAP_SLS_5_0GB 0x00000002
@@ -452,7 +458,7 @@
 #define PCI_EXP_LNKCAP_DLLLARC 0x00100000
 #define PCI_EXP_LNKCAP_LBNC 0x00200000
 #define PCI_EXP_LNKCAP_PN 0xff000000
-#define PCI_EXP_LNKCTL 16
+#define PCI_EXP_LNKCTL 0x10
 #define PCI_EXP_LNKCTL_ASPMC 0x0003
 #define PCI_EXP_LNKCTL_ASPM_L0S 0x0001
 #define PCI_EXP_LNKCTL_ASPM_L1 0x0002
@@ -465,7 +471,7 @@
 #define PCI_EXP_LNKCTL_HAWD 0x0200
 #define PCI_EXP_LNKCTL_LBMIE 0x0400
 #define PCI_EXP_LNKCTL_LABIE 0x0800
-#define PCI_EXP_LNKSTA 18
+#define PCI_EXP_LNKSTA 0x12
 #define PCI_EXP_LNKSTA_CLS 0x000f
 #define PCI_EXP_LNKSTA_CLS_2_5GB 0x0001
 #define PCI_EXP_LNKSTA_CLS_5_0GB 0x0002
@@ -485,7 +491,7 @@
 #define PCI_EXP_LNKSTA_LBMS 0x4000
 #define PCI_EXP_LNKSTA_LABS 0x8000
 #define PCI_CAP_EXP_ENDPOINT_SIZEOF_V1 20
-#define PCI_EXP_SLTCAP 20
+#define PCI_EXP_SLTCAP 0x14
 #define PCI_EXP_SLTCAP_ABP 0x00000001
 #define PCI_EXP_SLTCAP_PCP 0x00000002
 #define PCI_EXP_SLTCAP_MRLSP 0x00000004
@@ -498,7 +504,7 @@
 #define PCI_EXP_SLTCAP_EIP 0x00020000
 #define PCI_EXP_SLTCAP_NCCS 0x00040000
 #define PCI_EXP_SLTCAP_PSN 0xfff80000
-#define PCI_EXP_SLTCTL 24
+#define PCI_EXP_SLTCTL 0x18
 #define PCI_EXP_SLTCTL_ABPE 0x0001
 #define PCI_EXP_SLTCTL_PFDE 0x0002
 #define PCI_EXP_SLTCTL_MRLSCE 0x0004
@@ -520,7 +526,7 @@
 #define PCI_EXP_SLTCTL_EIC 0x0800
 #define PCI_EXP_SLTCTL_DLLSCE 0x1000
 #define PCI_EXP_SLTCTL_IBPD_DISABLE 0x4000
-#define PCI_EXP_SLTSTA 26
+#define PCI_EXP_SLTSTA 0x1a
 #define PCI_EXP_SLTSTA_ABP 0x0001
 #define PCI_EXP_SLTSTA_PFD 0x0002
 #define PCI_EXP_SLTSTA_MRLSC 0x0004
@@ -530,18 +536,18 @@
 #define PCI_EXP_SLTSTA_PDS 0x0040
 #define PCI_EXP_SLTSTA_EIS 0x0080
 #define PCI_EXP_SLTSTA_DLLSC 0x0100
-#define PCI_EXP_RTCTL 28
+#define PCI_EXP_RTCTL 0x1c
 #define PCI_EXP_RTCTL_SECEE 0x0001
 #define PCI_EXP_RTCTL_SENFEE 0x0002
 #define PCI_EXP_RTCTL_SEFEE 0x0004
 #define PCI_EXP_RTCTL_PMEIE 0x0008
 #define PCI_EXP_RTCTL_CRSSVE 0x0010
-#define PCI_EXP_RTCAP 30
+#define PCI_EXP_RTCAP 0x1e
 #define PCI_EXP_RTCAP_CRSVIS 0x0001
-#define PCI_EXP_RTSTA 32
+#define PCI_EXP_RTSTA 0x20
 #define PCI_EXP_RTSTA_PME 0x00010000
 #define PCI_EXP_RTSTA_PENDING 0x00020000
-#define PCI_EXP_DEVCAP2 36
+#define PCI_EXP_DEVCAP2 0x24
 #define PCI_EXP_DEVCAP2_COMP_TMOUT_DIS 0x00000010
 #define PCI_EXP_DEVCAP2_ARI 0x00000020
 #define PCI_EXP_DEVCAP2_ATOMIC_ROUTE 0x00000040
@@ -553,7 +559,7 @@
 #define PCI_EXP_DEVCAP2_OBFF_MSG 0x00040000
 #define PCI_EXP_DEVCAP2_OBFF_WAKE 0x00080000
 #define PCI_EXP_DEVCAP2_EE_PREFIX 0x00200000
-#define PCI_EXP_DEVCTL2 40
+#define PCI_EXP_DEVCTL2 0x28
 #define PCI_EXP_DEVCTL2_COMP_TIMEOUT 0x000f
 #define PCI_EXP_DEVCTL2_COMP_TMOUT_DIS 0x0010
 #define PCI_EXP_DEVCTL2_ARI 0x0020
@@ -565,9 +571,9 @@
 #define PCI_EXP_DEVCTL2_OBFF_MSGA_EN 0x2000
 #define PCI_EXP_DEVCTL2_OBFF_MSGB_EN 0x4000
 #define PCI_EXP_DEVCTL2_OBFF_WAKE_EN 0x6000
-#define PCI_EXP_DEVSTA2 42
-#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 44
-#define PCI_EXP_LNKCAP2 44
+#define PCI_EXP_DEVSTA2 0x2a
+#define PCI_CAP_EXP_RC_ENDPOINT_SIZEOF_V2 0x2c
+#define PCI_EXP_LNKCAP2 0x2c
 #define PCI_EXP_LNKCAP2_SLS_2_5GB 0x00000002
 #define PCI_EXP_LNKCAP2_SLS_5_0GB 0x00000004
 #define PCI_EXP_LNKCAP2_SLS_8_0GB 0x00000008
@@ -575,7 +581,7 @@
 #define PCI_EXP_LNKCAP2_SLS_32_0GB 0x00000020
 #define PCI_EXP_LNKCAP2_SLS_64_0GB 0x00000040
 #define PCI_EXP_LNKCAP2_CROSSLINK 0x00000100
-#define PCI_EXP_LNKCTL2 48
+#define PCI_EXP_LNKCTL2 0x30
 #define PCI_EXP_LNKCTL2_TLS 0x000f
 #define PCI_EXP_LNKCTL2_TLS_2_5GT 0x0001
 #define PCI_EXP_LNKCTL2_TLS_5_0GT 0x0002
@@ -586,12 +592,12 @@
 #define PCI_EXP_LNKCTL2_ENTER_COMP 0x0010
 #define PCI_EXP_LNKCTL2_TX_MARGIN 0x0380
 #define PCI_EXP_LNKCTL2_HASD 0x0020
-#define PCI_EXP_LNKSTA2 50
-#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 52
-#define PCI_EXP_SLTCAP2 52
+#define PCI_EXP_LNKSTA2 0x32
+#define PCI_CAP_EXP_ENDPOINT_SIZEOF_V2 0x32
+#define PCI_EXP_SLTCAP2 0x34
 #define PCI_EXP_SLTCAP2_IBPD 0x00000001
-#define PCI_EXP_SLTCTL2 56
-#define PCI_EXP_SLTSTA2 58
+#define PCI_EXP_SLTCTL2 0x38
+#define PCI_EXP_SLTSTA2 0x3a
 #define PCI_EXT_CAP_ID(header) (header & 0x0000ffff)
 #define PCI_EXT_CAP_VER(header) ((header >> 16) & 0xf)
 #define PCI_EXT_CAP_NEXT(header) ((header >> 20) & 0xffc)
@@ -631,7 +637,7 @@
 #define PCI_EXT_CAP_ID_MAX PCI_EXT_CAP_ID_PL_16GT
 #define PCI_EXT_CAP_DSN_SIZEOF 12
 #define PCI_EXT_CAP_MCAST_ENDPOINT_SIZEOF 40
-#define PCI_ERR_UNCOR_STATUS 4
+#define PCI_ERR_UNCOR_STATUS 0x04
 #define PCI_ERR_UNC_UND 0x00000001
 #define PCI_ERR_UNC_DLP 0x00000010
 #define PCI_ERR_UNC_SURPDN 0x00000020
@@ -649,9 +655,9 @@
 #define PCI_ERR_UNC_MCBTLP 0x00800000
 #define PCI_ERR_UNC_ATOMEG 0x01000000
 #define PCI_ERR_UNC_TLPPRE 0x02000000
-#define PCI_ERR_UNCOR_MASK 8
-#define PCI_ERR_UNCOR_SEVER 12
-#define PCI_ERR_COR_STATUS 16
+#define PCI_ERR_UNCOR_MASK 0x08
+#define PCI_ERR_UNCOR_SEVER 0x0c
+#define PCI_ERR_COR_STATUS 0x10
 #define PCI_ERR_COR_RCVR 0x00000001
 #define PCI_ERR_COR_BAD_TLP 0x00000040
 #define PCI_ERR_COR_BAD_DLLP 0x00000080
@@ -660,19 +666,19 @@
 #define PCI_ERR_COR_ADV_NFAT 0x00002000
 #define PCI_ERR_COR_INTERNAL 0x00004000
 #define PCI_ERR_COR_LOG_OVER 0x00008000
-#define PCI_ERR_COR_MASK 20
-#define PCI_ERR_CAP 24
-#define PCI_ERR_CAP_FEP(x) ((x) & 31)
+#define PCI_ERR_COR_MASK 0x14
+#define PCI_ERR_CAP 0x18
+#define PCI_ERR_CAP_FEP(x) ((x) & 0x1f)
 #define PCI_ERR_CAP_ECRC_GENC 0x00000020
 #define PCI_ERR_CAP_ECRC_GENE 0x00000040
 #define PCI_ERR_CAP_ECRC_CHKC 0x00000080
 #define PCI_ERR_CAP_ECRC_CHKE 0x00000100
-#define PCI_ERR_HEADER_LOG 28
-#define PCI_ERR_ROOT_COMMAND 44
+#define PCI_ERR_HEADER_LOG 0x1c
+#define PCI_ERR_ROOT_COMMAND 0x2c
 #define PCI_ERR_ROOT_CMD_COR_EN 0x00000001
 #define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002
 #define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004
-#define PCI_ERR_ROOT_STATUS 48
+#define PCI_ERR_ROOT_STATUS 0x30
 #define PCI_ERR_ROOT_COR_RCV 0x00000001
 #define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
 #define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
@@ -681,48 +687,48 @@
 #define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020
 #define PCI_ERR_ROOT_FATAL_RCV 0x00000040
 #define PCI_ERR_ROOT_AER_IRQ 0xf8000000
-#define PCI_ERR_ROOT_ERR_SRC 52
-#define PCI_VC_PORT_CAP1 4
+#define PCI_ERR_ROOT_ERR_SRC 0x34
+#define PCI_VC_PORT_CAP1 0x04
 #define PCI_VC_CAP1_EVCC 0x00000007
 #define PCI_VC_CAP1_LPEVCC 0x00000070
 #define PCI_VC_CAP1_ARB_SIZE 0x00000c00
-#define PCI_VC_PORT_CAP2 8
+#define PCI_VC_PORT_CAP2 0x08
 #define PCI_VC_CAP2_32_PHASE 0x00000002
 #define PCI_VC_CAP2_64_PHASE 0x00000004
 #define PCI_VC_CAP2_128_PHASE 0x00000008
 #define PCI_VC_CAP2_ARB_OFF 0xff000000
-#define PCI_VC_PORT_CTRL 12
+#define PCI_VC_PORT_CTRL 0x0c
 #define PCI_VC_PORT_CTRL_LOAD_TABLE 0x00000001
-#define PCI_VC_PORT_STATUS 14
+#define PCI_VC_PORT_STATUS 0x0e
 #define PCI_VC_PORT_STATUS_TABLE 0x00000001
-#define PCI_VC_RES_CAP 16
+#define PCI_VC_RES_CAP 0x10
 #define PCI_VC_RES_CAP_32_PHASE 0x00000002
 #define PCI_VC_RES_CAP_64_PHASE 0x00000004
 #define PCI_VC_RES_CAP_128_PHASE 0x00000008
 #define PCI_VC_RES_CAP_128_PHASE_TB 0x00000010
 #define PCI_VC_RES_CAP_256_PHASE 0x00000020
 #define PCI_VC_RES_CAP_ARB_OFF 0xff000000
-#define PCI_VC_RES_CTRL 20
+#define PCI_VC_RES_CTRL 0x14
 #define PCI_VC_RES_CTRL_LOAD_TABLE 0x00010000
 #define PCI_VC_RES_CTRL_ARB_SELECT 0x000e0000
 #define PCI_VC_RES_CTRL_ID 0x07000000
 #define PCI_VC_RES_CTRL_ENABLE 0x80000000
-#define PCI_VC_RES_STATUS 26
+#define PCI_VC_RES_STATUS 0x1a
 #define PCI_VC_RES_STATUS_TABLE 0x00000001
 #define PCI_VC_RES_STATUS_NEGO 0x00000002
 #define PCI_CAP_VC_BASE_SIZEOF 0x10
-#define PCI_CAP_VC_PER_VC_SIZEOF 0x0C
-#define PCI_PWR_DSR 4
-#define PCI_PWR_DATA 8
+#define PCI_CAP_VC_PER_VC_SIZEOF 0x0c
+#define PCI_PWR_DSR 0x04
+#define PCI_PWR_DATA 0x08
 #define PCI_PWR_DATA_BASE(x) ((x) & 0xff)
 #define PCI_PWR_DATA_SCALE(x) (((x) >> 8) & 3)
 #define PCI_PWR_DATA_PM_SUB(x) (((x) >> 10) & 7)
 #define PCI_PWR_DATA_PM_STATE(x) (((x) >> 13) & 3)
 #define PCI_PWR_DATA_TYPE(x) (((x) >> 15) & 7)
 #define PCI_PWR_DATA_RAIL(x) (((x) >> 18) & 7)
-#define PCI_PWR_CAP 12
+#define PCI_PWR_CAP 0x0c
 #define PCI_PWR_CAP_BUDGET(x) ((x) & 1)
-#define PCI_EXT_CAP_PWR_SIZEOF 16
+#define PCI_EXT_CAP_PWR_SIZEOF 0x10
 #define PCI_RCEC_RCIEP_BITMAP 4
 #define PCI_RCEC_BUSN 8
 #define PCI_RCEC_BUSN_REG_VER 0x02
@@ -822,7 +828,7 @@
 #define PCI_SRIOV_VFM_MI 0x1
 #define PCI_SRIOV_VFM_MO 0x2
 #define PCI_SRIOV_VFM_AV 0x3
-#define PCI_EXT_CAP_SRIOV_SIZEOF 64
+#define PCI_EXT_CAP_SRIOV_SIZEOF 0x40
 #define PCI_LTR_MAX_SNOOP_LAT 0x4
 #define PCI_LTR_MAX_NOSNOOP_LAT 0x6
 #define PCI_LTR_VALUE_MASK 0x000003ff
@@ -865,25 +871,25 @@
 #define PCI_TPH_LOC_MSIX 0x400
 #define PCI_TPH_CAP_ST_MASK 0x07FF0000
 #define PCI_TPH_CAP_ST_SHIFT 16
-#define PCI_TPH_BASE_SIZEOF 12
-#define PCI_EXP_DPC_CAP 4
+#define PCI_TPH_BASE_SIZEOF 0xc
+#define PCI_EXP_DPC_CAP 0x04
 #define PCI_EXP_DPC_IRQ 0x001F
 #define PCI_EXP_DPC_CAP_RP_EXT 0x0020
 #define PCI_EXP_DPC_CAP_POISONED_TLP 0x0040
 #define PCI_EXP_DPC_CAP_SW_TRIGGER 0x0080
 #define PCI_EXP_DPC_RP_PIO_LOG_SIZE 0x0F00
 #define PCI_EXP_DPC_CAP_DL_ACTIVE 0x1000
-#define PCI_EXP_DPC_CTL 6
+#define PCI_EXP_DPC_CTL 0x06
 #define PCI_EXP_DPC_CTL_EN_FATAL 0x0001
 #define PCI_EXP_DPC_CTL_EN_NONFATAL 0x0002
 #define PCI_EXP_DPC_CTL_INT_EN 0x0008
-#define PCI_EXP_DPC_STATUS 8
+#define PCI_EXP_DPC_STATUS 0x08
 #define PCI_EXP_DPC_STATUS_TRIGGER 0x0001
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN 0x0006
 #define PCI_EXP_DPC_STATUS_INTERRUPT 0x0008
 #define PCI_EXP_DPC_RP_BUSY 0x0010
 #define PCI_EXP_DPC_STATUS_TRIGGER_RSN_EXT 0x0060
-#define PCI_EXP_DPC_SOURCE_ID 10
+#define PCI_EXP_DPC_SOURCE_ID 0x0A
 #define PCI_EXP_DPC_RP_PIO_STATUS 0x0C
 #define PCI_EXP_DPC_RP_PIO_MASK 0x10
 #define PCI_EXP_DPC_RP_PIO_SEVERITY 0x14
@@ -920,7 +926,11 @@
 #define PCI_L1SS_CTL1_LTR_L12_TH_SCALE 0xe0000000
 #define PCI_L1SS_CTL2 0x0c
 #define PCI_DVSEC_HEADER1 0x4
+#define PCI_DVSEC_HEADER1_VID(x) ((x) & 0xffff)
+#define PCI_DVSEC_HEADER1_REV(x) (((x) >> 16) & 0xf)
+#define PCI_DVSEC_HEADER1_LEN(x) (((x) >> 20) & 0xfff)
 #define PCI_DVSEC_HEADER2 0x8
+#define PCI_DVSEC_HEADER2_ID(x) ((x) & 0xffff)
 #define PCI_DLF_CAP 0x04
 #define PCI_DLF_EXCHANGE_ENABLE 0x80000000
 #define PCI_PL_16GT_LE_CTRL 0x20
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/perf_event.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/perf_event.h
index b09c5d8..b022586 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/perf_event.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/perf_event.h
@@ -30,6 +30,8 @@
   PERF_TYPE_BREAKPOINT = 5,
   PERF_TYPE_MAX,
 };
+#define PERF_PMU_TYPE_SHIFT 32
+#define PERF_HW_EVENT_MASK 0xffffffff
 enum perf_hw_id {
   PERF_COUNT_HW_CPU_CYCLES = 0,
   PERF_COUNT_HW_INSTRUCTIONS = 1,
@@ -76,6 +78,7 @@
   PERF_COUNT_SW_EMULATION_FAULTS = 8,
   PERF_COUNT_SW_DUMMY = 9,
   PERF_COUNT_SW_BPF_OUTPUT = 10,
+  PERF_COUNT_SW_CGROUP_SWITCHES = 11,
   PERF_COUNT_SW_MAX,
 };
 enum perf_event_sample_format {
@@ -197,6 +200,7 @@
 #define PERF_ATTR_SIZE_VER4 104
 #define PERF_ATTR_SIZE_VER5 112
 #define PERF_ATTR_SIZE_VER6 120
+#define PERF_ATTR_SIZE_VER7 128
 struct perf_event_attr {
   __u32 type;
   __u32 size;
@@ -207,7 +211,7 @@
   };
   __u64 sample_type;
   __u64 read_format;
-  __u64 disabled : 1, inherit : 1, pinned : 1, exclusive : 1, exclude_user : 1, exclude_kernel : 1, exclude_hv : 1, exclude_idle : 1, mmap : 1, comm : 1, freq : 1, inherit_stat : 1, enable_on_exec : 1, task : 1, watermark : 1, precise_ip : 2, mmap_data : 1, sample_id_all : 1, exclude_host : 1, exclude_guest : 1, exclude_callchain_kernel : 1, exclude_callchain_user : 1, mmap2 : 1, comm_exec : 1, use_clockid : 1, context_switch : 1, write_backward : 1, namespaces : 1, ksymbol : 1, bpf_event : 1, aux_output : 1, cgroup : 1, text_poke : 1, build_id : 1, __reserved_1 : 29;
+  __u64 disabled : 1, inherit : 1, pinned : 1, exclusive : 1, exclude_user : 1, exclude_kernel : 1, exclude_hv : 1, exclude_idle : 1, mmap : 1, comm : 1, freq : 1, inherit_stat : 1, enable_on_exec : 1, task : 1, watermark : 1, precise_ip : 2, mmap_data : 1, sample_id_all : 1, exclude_host : 1, exclude_guest : 1, exclude_callchain_kernel : 1, exclude_callchain_user : 1, mmap2 : 1, comm_exec : 1, use_clockid : 1, context_switch : 1, write_backward : 1, namespaces : 1, ksymbol : 1, bpf_event : 1, aux_output : 1, cgroup : 1, text_poke : 1, build_id : 1, inherit_thread : 1, remove_on_exec : 1, sigtrap : 1, __reserved_1 : 26;
   union {
     __u32 wakeup_events;
     __u32 wakeup_watermark;
@@ -235,6 +239,7 @@
   __u16 __reserved_2;
   __u32 aux_sample_size;
   __u32 __reserved_3;
+  __u64 sig_data;
 };
 struct perf_event_query_bpf {
   __u32 ids_len;
@@ -345,6 +350,7 @@
   PERF_RECORD_BPF_EVENT = 18,
   PERF_RECORD_CGROUP = 19,
   PERF_RECORD_TEXT_POKE = 20,
+  PERF_RECORD_AUX_OUTPUT_HW_ID = 21,
   PERF_RECORD_MAX,
 };
 enum perf_record_ksymbol_type {
@@ -375,6 +381,9 @@
 #define PERF_AUX_FLAG_OVERWRITE 0x02
 #define PERF_AUX_FLAG_PARTIAL 0x04
 #define PERF_AUX_FLAG_COLLISION 0x08
+#define PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK 0xff00
+#define PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT 0x0000
+#define PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW 0x0100
 #define PERF_FLAG_FD_NO_GROUP (1UL << 0)
 #define PERF_FLAG_FD_OUTPUT (1UL << 1)
 #define PERF_FLAG_PID_CGROUP (1UL << 2)
@@ -383,14 +392,14 @@
 union perf_mem_data_src {
   __u64 val;
   struct {
-    __u64 mem_op : 5, mem_lvl : 14, mem_snoop : 5, mem_lock : 2, mem_dtlb : 7, mem_lvl_num : 4, mem_remote : 1, mem_snoopx : 2, mem_blk : 3, mem_rsvd : 21;
+    __u64 mem_op : 5, mem_lvl : 14, mem_snoop : 5, mem_lock : 2, mem_dtlb : 7, mem_lvl_num : 4, mem_remote : 1, mem_snoopx : 2, mem_blk : 3, mem_hops : 3, mem_rsvd : 18;
   };
 };
 #elif defined(__BIG_ENDIAN_BITFIELD)
 union perf_mem_data_src {
   __u64 val;
   struct {
-    __u64 mem_rsvd : 21, mem_blk : 3, mem_snoopx : 2, mem_remote : 1, mem_lvl_num : 4, mem_dtlb : 7, mem_lock : 2, mem_snoop : 5, mem_lvl : 14, mem_op : 5;
+    __u64 mem_rsvd : 18, mem_hops : 3, mem_blk : 3, mem_snoopx : 2, mem_remote : 1, mem_lvl_num : 4, mem_dtlb : 7, mem_lock : 2, mem_snoop : 5, mem_lvl : 14, mem_op : 5;
   };
 };
 #else
@@ -452,6 +461,11 @@
 #define PERF_MEM_BLK_DATA 0x02
 #define PERF_MEM_BLK_ADDR 0x04
 #define PERF_MEM_BLK_SHIFT 40
+#define PERF_MEM_HOPS_0 0x01
+#define PERF_MEM_HOPS_1 0x02
+#define PERF_MEM_HOPS_2 0x03
+#define PERF_MEM_HOPS_3 0x04
+#define PERF_MEM_HOPS_SHIFT 43
 #define PERF_MEM_S(a,s) (((__u64) PERF_MEM_ ##a ##_ ##s) << PERF_MEM_ ##a ##_SHIFT)
 struct perf_branch_entry {
   __u64 from;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
index 8f65681..d1e5486 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pfkeyv2.h
@@ -243,6 +243,7 @@
 #define SADB_X_AALG_SHA2_512HMAC 7
 #define SADB_X_AALG_RIPEMD160HMAC 8
 #define SADB_X_AALG_AES_XCBC_MAC 9
+#define SADB_X_AALG_SM3_256HMAC 10
 #define SADB_X_AALG_NULL 251
 #define SADB_AALG_MAX 251
 #define SADB_EALG_NONE 0
@@ -261,6 +262,7 @@
 #define SADB_X_EALG_AES_GCM_ICV16 20
 #define SADB_X_EALG_CAMELLIACBC 22
 #define SADB_X_EALG_NULL_AES_GMAC 23
+#define SADB_X_EALG_SM4CBC 24
 #define SADB_EALG_MAX 253
 #define SADB_X_EALG_SERPENTCBC 252
 #define SADB_X_EALG_TWOFISHCBC 253
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pfrut.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pfrut.h
new file mode 100644
index 0000000..14f713f
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pfrut.h
@@ -0,0 +1,95 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __PFRUT_H__
+#define __PFRUT_H__
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define PFRUT_IOCTL_MAGIC 0xEE
+#define PFRU_IOC_SET_REV _IOW(PFRUT_IOCTL_MAGIC, 0x01, unsigned int)
+#define PFRU_IOC_STAGE _IOW(PFRUT_IOCTL_MAGIC, 0x02, unsigned int)
+#define PFRU_IOC_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x03, unsigned int)
+#define PFRU_IOC_STAGE_ACTIVATE _IOW(PFRUT_IOCTL_MAGIC, 0x04, unsigned int)
+#define PFRU_IOC_QUERY_CAP _IOR(PFRUT_IOCTL_MAGIC, 0x05, struct pfru_update_cap_info)
+struct pfru_payload_hdr {
+  __u32 sig;
+  __u32 hdr_version;
+  __u32 hdr_size;
+  __u32 hw_ver;
+  __u32 rt_ver;
+  __u8 platform_id[16];
+};
+enum pfru_dsm_status {
+  DSM_SUCCEED = 0,
+  DSM_FUNC_NOT_SUPPORT = 1,
+  DSM_INVAL_INPUT = 2,
+  DSM_HARDWARE_ERR = 3,
+  DSM_RETRY_SUGGESTED = 4,
+  DSM_UNKNOWN = 5,
+  DSM_FUNC_SPEC_ERR = 6,
+};
+struct pfru_update_cap_info {
+  __u32 status;
+  __u32 update_cap;
+  __u8 code_type[16];
+  __u32 fw_version;
+  __u32 code_rt_version;
+  __u8 drv_type[16];
+  __u32 drv_rt_version;
+  __u32 drv_svn;
+  __u8 platform_id[16];
+  __u8 oem_id[16];
+  __u32 oem_info_len;
+};
+struct pfru_com_buf_info {
+  __u32 status;
+  __u32 ext_status;
+  __u64 addr_lo;
+  __u64 addr_hi;
+  __u32 buf_size;
+};
+struct pfru_updated_result {
+  __u32 status;
+  __u32 ext_status;
+  __u64 low_auth_time;
+  __u64 high_auth_time;
+  __u64 low_exec_time;
+  __u64 high_exec_time;
+};
+struct pfrt_log_data_info {
+  __u32 status;
+  __u32 ext_status;
+  __u64 chunk1_addr_lo;
+  __u64 chunk1_addr_hi;
+  __u64 chunk2_addr_lo;
+  __u64 chunk2_addr_hi;
+  __u32 max_data_size;
+  __u32 chunk1_size;
+  __u32 chunk2_size;
+  __u32 rollover_cnt;
+  __u32 reset_cnt;
+};
+struct pfrt_log_info {
+  __u32 log_level;
+  __u32 log_type;
+  __u32 log_revid;
+};
+#define PFRT_LOG_IOC_SET_INFO _IOW(PFRUT_IOCTL_MAGIC, 0x06, struct pfrt_log_info)
+#define PFRT_LOG_IOC_GET_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x07, struct pfrt_log_info)
+#define PFRT_LOG_IOC_GET_DATA_INFO _IOR(PFRUT_IOCTL_MAGIC, 0x08, struct pfrt_log_data_info)
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pkt_cls.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
index 45dca35..9fd89e0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pkt_cls.h
@@ -32,9 +32,12 @@
   TCA_ACT_FLAGS,
   TCA_ACT_HW_STATS,
   TCA_ACT_USED_HW_STATS,
+  TCA_ACT_IN_HW_COUNT,
   __TCA_ACT_MAX
 };
-#define TCA_ACT_FLAGS_NO_PERCPU_STATS 1
+#define TCA_ACT_FLAGS_NO_PERCPU_STATS (1 << 0)
+#define TCA_ACT_FLAGS_SKIP_HW (1 << 1)
+#define TCA_ACT_FLAGS_SKIP_SW (1 << 2)
 #define TCA_ACT_HW_STATS_IMMEDIATE (1 << 0)
 #define TCA_ACT_HW_STATS_DELAYED (1 << 1)
 #define TCA_ACT_MAX __TCA_ACT_MAX
@@ -146,6 +149,8 @@
   TCA_POLICE_PAD,
   TCA_POLICE_RATE64,
   TCA_POLICE_PEAKRATE64,
+  TCA_POLICE_PKTRATE64,
+  TCA_POLICE_PKTBURST64,
   __TCA_POLICE_MAX
 #define TCA_POLICE_RESULT TCA_POLICE_RESULT
 };
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pkt_sched.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
index d0541fc..e298b74 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/pkt_sched.h
@@ -613,6 +613,7 @@
   __u32 dropping;
   __u32 ce_mark;
 };
+#define FQ_CODEL_QUANTUM_MAX (1 << 20)
 enum {
   TCA_FQ_CODEL_UNSPEC,
   TCA_FQ_CODEL_TARGET,
@@ -624,6 +625,8 @@
   TCA_FQ_CODEL_CE_THRESHOLD,
   TCA_FQ_CODEL_DROP_BATCH_SIZE,
   TCA_FQ_CODEL_MEMORY_LIMIT,
+  TCA_FQ_CODEL_CE_THRESHOLD_SELECTOR,
+  TCA_FQ_CODEL_CE_THRESHOLD_MASK,
   __TCA_FQ_CODEL_MAX
 };
 #define TCA_FQ_CODEL_MAX (__TCA_FQ_CODEL_MAX - 1)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/prctl.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/prctl.h
index 6095881..9b4c695 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/prctl.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/prctl.h
@@ -138,6 +138,7 @@
 #define PR_SET_SPECULATION_CTRL 53
 #define PR_SPEC_STORE_BYPASS 0
 #define PR_SPEC_INDIRECT_BRANCH 1
+#define PR_SPEC_L1D_FLUSH 2
 #define PR_SPEC_NOT_AFFECTED 0
 #define PR_SPEC_PRCTL (1UL << 0)
 #define PR_SPEC_ENABLE (1UL << 1)
@@ -153,13 +154,13 @@
 #define PR_SET_TAGGED_ADDR_CTRL 55
 #define PR_GET_TAGGED_ADDR_CTRL 56
 #define PR_TAGGED_ADDR_ENABLE (1UL << 0)
-#define PR_MTE_TCF_SHIFT 1
-#define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT)
-#define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT)
+#define PR_MTE_TCF_NONE 0UL
+#define PR_MTE_TCF_SYNC (1UL << 1)
+#define PR_MTE_TCF_ASYNC (1UL << 2)
+#define PR_MTE_TCF_MASK (PR_MTE_TCF_SYNC | PR_MTE_TCF_ASYNC)
 #define PR_MTE_TAG_SHIFT 3
 #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT)
+#define PR_MTE_TCF_SHIFT 1
 #define PR_SET_IO_FLUSHER 57
 #define PR_GET_IO_FLUSHER 58
 #define PR_SET_SYSCALL_USER_DISPATCH 59
@@ -167,6 +168,17 @@
 #define PR_SYS_DISPATCH_ON 1
 #define SYSCALL_DISPATCH_FILTER_ALLOW 0
 #define SYSCALL_DISPATCH_FILTER_BLOCK 1
+#define PR_PAC_SET_ENABLED_KEYS 60
+#define PR_PAC_GET_ENABLED_KEYS 61
+#define PR_SCHED_CORE 62
+#define PR_SCHED_CORE_GET 0
+#define PR_SCHED_CORE_CREATE 1
+#define PR_SCHED_CORE_SHARE_TO 2
+#define PR_SCHED_CORE_SHARE_FROM 3
+#define PR_SCHED_CORE_MAX 4
+#define PR_SCHED_CORE_SCOPE_THREAD 0
+#define PR_SCHED_CORE_SCOPE_THREAD_GROUP 1
+#define PR_SCHED_CORE_SCOPE_PROCESS_GROUP 2
 #define PR_SET_VMA 0x53564d41
 #define PR_SET_VMA_ANON_NAME 0
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/psample.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/psample.h
index dc67445..efb1c24 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/psample.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/psample.h
@@ -28,6 +28,12 @@
   PSAMPLE_ATTR_DATA,
   PSAMPLE_ATTR_GROUP_REFCOUNT,
   PSAMPLE_ATTR_TUNNEL,
+  PSAMPLE_ATTR_PAD,
+  PSAMPLE_ATTR_OUT_TC,
+  PSAMPLE_ATTR_OUT_TC_OCC,
+  PSAMPLE_ATTR_LATENCY,
+  PSAMPLE_ATTR_TIMESTAMP,
+  PSAMPLE_ATTR_PROTO,
   __PSAMPLE_ATTR_MAX
 };
 enum psample_command {
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ptrace.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ptrace.h
index 5de0998..4bfa59a 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ptrace.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/ptrace.h
@@ -82,6 +82,14 @@
     } seccomp;
   };
 };
+#define PTRACE_GET_RSEQ_CONFIGURATION 0x420f
+struct ptrace_rseq_configuration {
+  __u64 rseq_abi_pointer;
+  __u32 rseq_abi_size;
+  __u32 signature;
+  __u32 flags;
+  __u32 pad;
+};
 #define PTRACE_EVENTMSG_SYSCALL_ENTRY 1
 #define PTRACE_EVENTMSG_SYSCALL_EXIT 2
 #define PTRACE_PEEKSIGINFO_SHARED (1 << 0)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rds.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rds.h
index bc29233..7006c87 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rds.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rds.h
@@ -217,7 +217,7 @@
   __u64 flags;
 };
 struct rds_get_mr_for_dest_args {
-  struct sockaddr_storage dest_addr;
+  struct __kernel_sockaddr_storage dest_addr;
   struct rds_iovec vec;
   __u64 cookie_addr;
   __u64 flags;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/resource.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/resource.h
index d76c273..6f531a0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/resource.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/resource.h
@@ -57,6 +57,6 @@
 #define PRIO_PGRP 1
 #define PRIO_USER 2
 #define _STK_LIM (8 * 1024 * 1024)
-#define MLOCK_LIMIT ((PAGE_SIZE > 64 * 1024) ? PAGE_SIZE : 64 * 1024)
+#define MLOCK_LIMIT (8 * 1024 * 1024)
 #include <asm/resource.h>
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rpmsg.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rpmsg.h
index 77f05e6..c5b5a76 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rpmsg.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rpmsg.h
@@ -20,6 +20,7 @@
 #define _UAPI_RPMSG_H_
 #include <linux/ioctl.h>
 #include <linux/types.h>
+#define RPMSG_ADDR_ANY 0xFFFFFFFF
 struct rpmsg_endpoint_info {
   char name[32];
   __u32 src;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rtc.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rtc.h
index 7f38483..cf5f22a 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rtc.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rtc.h
@@ -20,6 +20,7 @@
 #define _UAPI_LINUX_RTC_H_
 #include <linux/const.h>
 #include <linux/ioctl.h>
+#include <linux/types.h>
 struct rtc_time {
   int tm_sec;
   int tm_min;
@@ -45,6 +46,16 @@
   int pll_negmult;
   long pll_clock;
 };
+struct rtc_param {
+  __u64 param;
+  union {
+    __u64 uvalue;
+    __s64 svalue;
+    __u64 ptr;
+  };
+  __u32 index;
+  __u32 __pad;
+};
 #define RTC_AIE_ON _IO('p', 0x01)
 #define RTC_AIE_OFF _IO('p', 0x02)
 #define RTC_UIE_ON _IO('p', 0x03)
@@ -65,6 +76,8 @@
 #define RTC_WKALM_RD _IOR('p', 0x10, struct rtc_wkalrm)
 #define RTC_PLL_GET _IOR('p', 0x11, struct rtc_pll_info)
 #define RTC_PLL_SET _IOW('p', 0x12, struct rtc_pll_info)
+#define RTC_PARAM_GET _IOW('p', 0x13, struct rtc_param)
+#define RTC_PARAM_SET _IOW('p', 0x14, struct rtc_param)
 #define RTC_VL_DATA_INVALID _BITUL(0)
 #define RTC_VL_BACKUP_LOW _BITUL(1)
 #define RTC_VL_BACKUP_EMPTY _BITUL(2)
@@ -79,6 +92,17 @@
 #define RTC_FEATURE_ALARM 0
 #define RTC_FEATURE_ALARM_RES_MINUTE 1
 #define RTC_FEATURE_NEED_WEEK_DAY 2
-#define RTC_FEATURE_CNT 3
+#define RTC_FEATURE_ALARM_RES_2S 3
+#define RTC_FEATURE_UPDATE_INTERRUPT 4
+#define RTC_FEATURE_CORRECTION 5
+#define RTC_FEATURE_BACKUP_SWITCH_MODE 6
+#define RTC_FEATURE_CNT 7
+#define RTC_PARAM_FEATURES 0
+#define RTC_PARAM_CORRECTION 1
+#define RTC_PARAM_BACKUP_SWITCH_MODE 2
+#define RTC_BSM_DISABLED 0
+#define RTC_BSM_DIRECT 1
+#define RTC_BSM_LEVEL 2
+#define RTC_BSM_STANDBY 3
 #define RTC_MAX_FREQ 8192
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rtnetlink.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
index 22f8f1c..91c3ee4 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/rtnetlink.h
@@ -157,6 +157,12 @@
 #define RTM_DELVLAN RTM_DELVLAN
   RTM_GETVLAN,
 #define RTM_GETVLAN RTM_GETVLAN
+  RTM_NEWNEXTHOPBUCKET = 116,
+#define RTM_NEWNEXTHOPBUCKET RTM_NEWNEXTHOPBUCKET
+  RTM_DELNEXTHOPBUCKET,
+#define RTM_DELNEXTHOPBUCKET RTM_DELNEXTHOPBUCKET
+  RTM_GETNEXTHOPBUCKET,
+#define RTM_GETNEXTHOPBUCKET RTM_GETNEXTHOPBUCKET
   __RTM_MAX,
 #define RTM_MAX (((__RTM_MAX + 3) & ~3) - 1)
 };
@@ -219,6 +225,7 @@
 #define RTPROT_MROUTED 17
 #define RTPROT_KEEPALIVED 18
 #define RTPROT_BABEL 42
+#define RTPROT_OPENR 99
 #define RTPROT_BGP 186
 #define RTPROT_ISIS 187
 #define RTPROT_OSPF 188
@@ -552,6 +559,8 @@
 #define RTNLGRP_NEXTHOP RTNLGRP_NEXTHOP
   RTNLGRP_BRVLAN,
 #define RTNLGRP_BRVLAN RTNLGRP_BRVLAN
+  RTNLGRP_MCTP_IFADDR,
+#define RTNLGRP_MCTP_IFADDR RTNLGRP_MCTP_IFADDR
   __RTNLGRP_MAX
 };
 #define RTNLGRP_MAX (__RTNLGRP_MAX - 1)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/sctp.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/sctp.h
index 883920b..765d6c9 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/sctp.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/sctp.h
@@ -94,6 +94,7 @@
 #define SCTP_EXPOSE_POTENTIALLY_FAILED_STATE 131
 #define SCTP_EXPOSE_PF_STATE SCTP_EXPOSE_POTENTIALLY_FAILED_STATE
 #define SCTP_REMOTE_UDP_ENCAPS_PORT 132
+#define SCTP_PLPMTUD_PROBE_INTERVAL 133
 #define SCTP_PR_SCTP_NONE 0x0000
 #define SCTP_PR_SCTP_TTL 0x0010
 #define SCTP_PR_SCTP_RTX 0x0020
@@ -710,4 +711,9 @@
   SCTP_SS_RR,
   SCTP_SS_MAX = SCTP_SS_RR
 };
+struct sctp_probeinterval {
+  sctp_assoc_t spi_assoc_id;
+  struct sockaddr_storage spi_address;
+  __u32 spi_interval;
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/seccomp.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/seccomp.h
index 0ae0e12..e58b421 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/seccomp.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/seccomp.h
@@ -69,6 +69,7 @@
   __u32 flags;
 };
 #define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0)
+#define SECCOMP_ADDFD_FLAG_SEND (1UL << 1)
 struct seccomp_notif_addfd {
   __u64 id;
   __u32 flags;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/seg6_local.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/seg6_local.h
index 9508eca..61a8d97 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/seg6_local.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/seg6_local.h
@@ -30,6 +30,7 @@
   SEG6_LOCAL_OIF,
   SEG6_LOCAL_BPF,
   SEG6_LOCAL_VRFTABLE,
+  SEG6_LOCAL_COUNTERS,
   __SEG6_LOCAL_MAX,
 };
 #define SEG6_LOCAL_MAX (__SEG6_LOCAL_MAX - 1)
@@ -50,6 +51,7 @@
   SEG6_LOCAL_ACTION_END_AS = 13,
   SEG6_LOCAL_ACTION_END_AM = 14,
   SEG6_LOCAL_ACTION_END_BPF = 15,
+  SEG6_LOCAL_ACTION_END_DT46 = 16,
   __SEG6_LOCAL_ACTION_MAX,
 };
 #define SEG6_LOCAL_ACTION_MAX (__SEG6_LOCAL_ACTION_MAX - 1)
@@ -60,4 +62,13 @@
   __SEG6_LOCAL_BPF_PROG_MAX,
 };
 #define SEG6_LOCAL_BPF_PROG_MAX (__SEG6_LOCAL_BPF_PROG_MAX - 1)
+enum {
+  SEG6_LOCAL_CNT_UNSPEC,
+  SEG6_LOCAL_CNT_PAD,
+  SEG6_LOCAL_CNT_PACKETS,
+  SEG6_LOCAL_CNT_BYTES,
+  SEG6_LOCAL_CNT_ERRORS,
+  __SEG6_LOCAL_CNT_MAX,
+};
+#define SEG6_LOCAL_CNT_MAX (__SEG6_LOCAL_CNT_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/smc.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/smc.h
index 88eef62..01494da 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/smc.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/smc.h
@@ -38,6 +38,9 @@
 #define SMC_GENL_FAMILY_NAME "SMC_GEN_NETLINK"
 #define SMC_GENL_FAMILY_VERSION 1
 #define SMC_PCI_ID_STR_LEN 16
+#define SMC_MAX_HOSTNAME_LEN 32
+#define SMC_MAX_UEID 4
+#define SMC_MAX_EID_LEN 32
 enum {
   SMC_NETLINK_GET_SYS_INFO = 1,
   SMC_NETLINK_GET_LGR_SMCR,
@@ -45,6 +48,15 @@
   SMC_NETLINK_GET_LGR_SMCD,
   SMC_NETLINK_GET_DEV_SMCD,
   SMC_NETLINK_GET_DEV_SMCR,
+  SMC_NETLINK_GET_STATS,
+  SMC_NETLINK_GET_FBACK_STATS,
+  SMC_NETLINK_DUMP_UEID,
+  SMC_NETLINK_ADD_UEID,
+  SMC_NETLINK_REMOVE_UEID,
+  SMC_NETLINK_FLUSH_UEID,
+  SMC_NETLINK_DUMP_SEID,
+  SMC_NETLINK_ENABLE_SEID,
+  SMC_NETLINK_DISABLE_SEID,
 };
 enum {
   SMC_GEN_UNSPEC,
@@ -54,6 +66,8 @@
   SMC_GEN_LGR_SMCD,
   SMC_GEN_DEV_SMCD,
   SMC_GEN_DEV_SMCR,
+  SMC_GEN_STATS,
+  SMC_GEN_FBACK_STATS,
   __SMC_GEN_MAX,
   SMC_GEN_MAX = __SMC_GEN_MAX - 1
 };
@@ -64,6 +78,7 @@
   SMC_NLA_SYS_IS_ISM_V2,
   SMC_NLA_SYS_LOCAL_HOST,
   SMC_NLA_SYS_SEID,
+  SMC_NLA_SYS_IS_SMCR_V2,
   __SMC_NLA_SYS_MAX,
   SMC_NLA_SYS_MAX = __SMC_NLA_SYS_MAX - 1
 };
@@ -73,6 +88,14 @@
   SMC_NLA_LGR_V2_OS,
   SMC_NLA_LGR_V2_NEG_EID,
   SMC_NLA_LGR_V2_PEER_HOST,
+  __SMC_NLA_LGR_V2_MAX,
+  SMC_NLA_LGR_V2_MAX = __SMC_NLA_LGR_V2_MAX - 1
+};
+enum {
+  SMC_NLA_LGR_R_V2_UNSPEC,
+  SMC_NLA_LGR_R_V2_DIRECT,
+  __SMC_NLA_LGR_R_V2_MAX,
+  SMC_NLA_LGR_R_V2_MAX = __SMC_NLA_LGR_R_V2_MAX - 1
 };
 enum {
   SMC_NLA_LGR_R_UNSPEC,
@@ -82,6 +105,10 @@
   SMC_NLA_LGR_R_PNETID,
   SMC_NLA_LGR_R_VLAN_ID,
   SMC_NLA_LGR_R_CONNS_NUM,
+  SMC_NLA_LGR_R_V2_COMMON,
+  SMC_NLA_LGR_R_V2,
+  SMC_NLA_LGR_R_NET_COOKIE,
+  SMC_NLA_LGR_R_PAD,
   __SMC_NLA_LGR_R_MAX,
   SMC_NLA_LGR_R_MAX = __SMC_NLA_LGR_R_MAX - 1
 };
@@ -110,7 +137,7 @@
   SMC_NLA_LGR_D_PNETID,
   SMC_NLA_LGR_D_CHID,
   SMC_NLA_LGR_D_PAD,
-  SMC_NLA_LGR_V2,
+  SMC_NLA_LGR_D_V2_COMMON,
   __SMC_NLA_LGR_D_MAX,
   SMC_NLA_LGR_D_MAX = __SMC_NLA_LGR_D_MAX - 1
 };
@@ -140,4 +167,86 @@
   __SMC_NLA_DEV_MAX,
   SMC_NLA_DEV_MAX = __SMC_NLA_DEV_MAX - 1
 };
+enum {
+  SMC_NLA_STATS_PLOAD_PAD,
+  SMC_NLA_STATS_PLOAD_8K,
+  SMC_NLA_STATS_PLOAD_16K,
+  SMC_NLA_STATS_PLOAD_32K,
+  SMC_NLA_STATS_PLOAD_64K,
+  SMC_NLA_STATS_PLOAD_128K,
+  SMC_NLA_STATS_PLOAD_256K,
+  SMC_NLA_STATS_PLOAD_512K,
+  SMC_NLA_STATS_PLOAD_1024K,
+  SMC_NLA_STATS_PLOAD_G_1024K,
+  __SMC_NLA_STATS_PLOAD_MAX,
+  SMC_NLA_STATS_PLOAD_MAX = __SMC_NLA_STATS_PLOAD_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_RMB_PAD,
+  SMC_NLA_STATS_RMB_SIZE_SM_PEER_CNT,
+  SMC_NLA_STATS_RMB_SIZE_SM_CNT,
+  SMC_NLA_STATS_RMB_FULL_PEER_CNT,
+  SMC_NLA_STATS_RMB_FULL_CNT,
+  SMC_NLA_STATS_RMB_REUSE_CNT,
+  SMC_NLA_STATS_RMB_ALLOC_CNT,
+  SMC_NLA_STATS_RMB_DGRADE_CNT,
+  __SMC_NLA_STATS_RMB_MAX,
+  SMC_NLA_STATS_RMB_MAX = __SMC_NLA_STATS_RMB_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_T_PAD,
+  SMC_NLA_STATS_T_TX_RMB_SIZE,
+  SMC_NLA_STATS_T_RX_RMB_SIZE,
+  SMC_NLA_STATS_T_TXPLOAD_SIZE,
+  SMC_NLA_STATS_T_RXPLOAD_SIZE,
+  SMC_NLA_STATS_T_TX_RMB_STATS,
+  SMC_NLA_STATS_T_RX_RMB_STATS,
+  SMC_NLA_STATS_T_CLNT_V1_SUCC,
+  SMC_NLA_STATS_T_CLNT_V2_SUCC,
+  SMC_NLA_STATS_T_SRV_V1_SUCC,
+  SMC_NLA_STATS_T_SRV_V2_SUCC,
+  SMC_NLA_STATS_T_SENDPAGE_CNT,
+  SMC_NLA_STATS_T_SPLICE_CNT,
+  SMC_NLA_STATS_T_CORK_CNT,
+  SMC_NLA_STATS_T_NDLY_CNT,
+  SMC_NLA_STATS_T_URG_DATA_CNT,
+  SMC_NLA_STATS_T_RX_BYTES,
+  SMC_NLA_STATS_T_TX_BYTES,
+  SMC_NLA_STATS_T_RX_CNT,
+  SMC_NLA_STATS_T_TX_CNT,
+  __SMC_NLA_STATS_T_MAX,
+  SMC_NLA_STATS_T_MAX = __SMC_NLA_STATS_T_MAX - 1
+};
+enum {
+  SMC_NLA_STATS_PAD,
+  SMC_NLA_STATS_SMCD_TECH,
+  SMC_NLA_STATS_SMCR_TECH,
+  SMC_NLA_STATS_CLNT_HS_ERR_CNT,
+  SMC_NLA_STATS_SRV_HS_ERR_CNT,
+  __SMC_NLA_STATS_MAX,
+  SMC_NLA_STATS_MAX = __SMC_NLA_STATS_MAX - 1
+};
+enum {
+  SMC_NLA_FBACK_STATS_PAD,
+  SMC_NLA_FBACK_STATS_TYPE,
+  SMC_NLA_FBACK_STATS_SRV_CNT,
+  SMC_NLA_FBACK_STATS_CLNT_CNT,
+  SMC_NLA_FBACK_STATS_RSN_CODE,
+  SMC_NLA_FBACK_STATS_RSN_CNT,
+  __SMC_NLA_FBACK_STATS_MAX,
+  SMC_NLA_FBACK_STATS_MAX = __SMC_NLA_FBACK_STATS_MAX - 1
+};
+enum {
+  SMC_NLA_EID_TABLE_UNSPEC,
+  SMC_NLA_EID_TABLE_ENTRY,
+  __SMC_NLA_EID_TABLE_MAX,
+  SMC_NLA_EID_TABLE_MAX = __SMC_NLA_EID_TABLE_MAX - 1
+};
+enum {
+  SMC_NLA_SEID_UNSPEC,
+  SMC_NLA_SEID_ENTRY,
+  SMC_NLA_SEID_ENABLED,
+  __SMC_NLA_SEID_TABLE_MAX,
+  SMC_NLA_SEID_TABLE_MAX = __SMC_NLA_SEID_TABLE_MAX - 1
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/snmp.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/snmp.h
index 40e8fa5..a503a7e 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/snmp.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/snmp.h
@@ -257,6 +257,8 @@
   LINUX_MIB_TCPDUPLICATEDATAREHASH,
   LINUX_MIB_TCPDSACKRECVSEGS,
   LINUX_MIB_TCPDSACKIGNOREDDUBIOUS,
+  LINUX_MIB_TCPMIGRATEREQSUCCESS,
+  LINUX_MIB_TCPMIGRATEREQFAILURE,
   __LINUX_MIB_MAX
 };
 enum {
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/socket.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/socket.h
index 608d31f..be16548 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/socket.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/socket.h
@@ -20,7 +20,7 @@
 #define _UAPI_LINUX_SOCKET_H
 #define _K_SS_MAXSIZE 128
 typedef unsigned short __kernel_sa_family_t;
-struct sockaddr_storage {
+struct __kernel_sockaddr_storage {
   union {
     struct {
       __kernel_sa_family_t ss_family;
@@ -29,4 +29,7 @@
     void * __align;
   };
 };
+#define SOCK_SNDBUF_LOCK 1
+#define SOCK_RCVBUF_LOCK 2
+#define SOCK_BUF_LOCK_MASK (SOCK_SNDBUF_LOCK | SOCK_RCVBUF_LOCK)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/stddef.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/stddef.h
index 2a5fd95..d5cdf80 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/stddef.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/stddef.h
@@ -20,3 +20,5 @@
 #ifndef __always_inline
 #define __always_inline inline
 #endif
+#define __struct_group(TAG,NAME,ATTRS,MEMBERS...) union { struct { MEMBERS } ATTRS; struct TAG { MEMBERS } ATTRS NAME; }
+#define __DECLARE_FLEX_ARRAY(TYPE,NAME) struct { struct { } __empty_ ##NAME; TYPE NAME[]; }
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
index 25bfd8d..2e097f0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/surface_aggregator/cdev.h
@@ -42,5 +42,34 @@
     __u8 __pad[6];
   } response;
 } __attribute__((__packed__));
+struct ssam_cdev_notifier_desc {
+  __s32 priority;
+  __u8 target_category;
+} __attribute__((__packed__));
+struct ssam_cdev_event_desc {
+  struct {
+    __u8 target_category;
+    __u8 target_id;
+    __u8 cid_enable;
+    __u8 cid_disable;
+  } reg;
+  struct {
+    __u8 target_category;
+    __u8 instance;
+  } id;
+  __u8 flags;
+} __attribute__((__packed__));
+struct ssam_cdev_event {
+  __u8 target_category;
+  __u8 target_id;
+  __u8 command_id;
+  __u8 instance_id;
+  __u16 length;
+  __u8 data[];
+} __attribute__((__packed__));
 #define SSAM_CDEV_REQUEST _IOWR(0xA5, 1, struct ssam_cdev_request)
+#define SSAM_CDEV_NOTIF_REGISTER _IOW(0xA5, 2, struct ssam_cdev_notifier_desc)
+#define SSAM_CDEV_NOTIF_UNREGISTER _IOW(0xA5, 3, struct ssam_cdev_notifier_desc)
+#define SSAM_CDEV_EVENT_ENABLE _IOW(0xA5, 4, struct ssam_cdev_event_desc)
+#define SSAM_CDEV_EVENT_DISABLE _IOW(0xA5, 5, struct ssam_cdev_event_desc)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h
new file mode 100644
index 0000000..dde5ad3
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/surface_aggregator/dtx.h
@@ -0,0 +1,81 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_LINUX_SURFACE_AGGREGATOR_DTX_H
+#define _UAPI_LINUX_SURFACE_AGGREGATOR_DTX_H
+#include <linux/ioctl.h>
+#include <linux/types.h>
+#define SDTX_CATEGORY_STATUS 0x0000
+#define SDTX_CATEGORY_RUNTIME_ERROR 0x1000
+#define SDTX_CATEGORY_HARDWARE_ERROR 0x2000
+#define SDTX_CATEGORY_UNKNOWN 0xf000
+#define SDTX_CATEGORY_MASK 0xf000
+#define SDTX_CATEGORY(value) ((value) & SDTX_CATEGORY_MASK)
+#define SDTX_STATUS(code) ((code) | SDTX_CATEGORY_STATUS)
+#define SDTX_ERR_RT(code) ((code) | SDTX_CATEGORY_RUNTIME_ERROR)
+#define SDTX_ERR_HW(code) ((code) | SDTX_CATEGORY_HARDWARE_ERROR)
+#define SDTX_UNKNOWN(code) ((code) | SDTX_CATEGORY_UNKNOWN)
+#define SDTX_SUCCESS(value) (SDTX_CATEGORY(value) == SDTX_CATEGORY_STATUS)
+#define SDTX_LATCH_CLOSED SDTX_STATUS(0x00)
+#define SDTX_LATCH_OPENED SDTX_STATUS(0x01)
+#define SDTX_BASE_DETACHED SDTX_STATUS(0x00)
+#define SDTX_BASE_ATTACHED SDTX_STATUS(0x01)
+#define SDTX_DETACH_NOT_FEASIBLE SDTX_ERR_RT(0x01)
+#define SDTX_DETACH_TIMEDOUT SDTX_ERR_RT(0x02)
+#define SDTX_ERR_FAILED_TO_OPEN SDTX_ERR_HW(0x01)
+#define SDTX_ERR_FAILED_TO_REMAIN_OPEN SDTX_ERR_HW(0x02)
+#define SDTX_ERR_FAILED_TO_CLOSE SDTX_ERR_HW(0x03)
+#define SDTX_DEVICE_TYPE_HID 0x0100
+#define SDTX_DEVICE_TYPE_SSH 0x0200
+#define SDTX_DEVICE_TYPE_MASK 0x0f00
+#define SDTX_DEVICE_TYPE(value) ((value) & SDTX_DEVICE_TYPE_MASK)
+#define SDTX_BASE_TYPE_HID(id) ((id) | SDTX_DEVICE_TYPE_HID)
+#define SDTX_BASE_TYPE_SSH(id) ((id) | SDTX_DEVICE_TYPE_SSH)
+enum sdtx_device_mode {
+  SDTX_DEVICE_MODE_TABLET = 0x00,
+  SDTX_DEVICE_MODE_LAPTOP = 0x01,
+  SDTX_DEVICE_MODE_STUDIO = 0x02,
+};
+struct sdtx_event {
+  __u16 length;
+  __u16 code;
+  __u8 data[];
+} __attribute__((__packed__));
+enum sdtx_event_code {
+  SDTX_EVENT_REQUEST = 1,
+  SDTX_EVENT_CANCEL = 2,
+  SDTX_EVENT_BASE_CONNECTION = 3,
+  SDTX_EVENT_LATCH_STATUS = 4,
+  SDTX_EVENT_DEVICE_MODE = 5,
+};
+struct sdtx_base_info {
+  __u16 state;
+  __u16 base_id;
+} __attribute__((__packed__));
+#define SDTX_IOCTL_EVENTS_ENABLE _IO(0xa5, 0x21)
+#define SDTX_IOCTL_EVENTS_DISABLE _IO(0xa5, 0x22)
+#define SDTX_IOCTL_LATCH_LOCK _IO(0xa5, 0x23)
+#define SDTX_IOCTL_LATCH_UNLOCK _IO(0xa5, 0x24)
+#define SDTX_IOCTL_LATCH_REQUEST _IO(0xa5, 0x25)
+#define SDTX_IOCTL_LATCH_CONFIRM _IO(0xa5, 0x26)
+#define SDTX_IOCTL_LATCH_HEARTBEAT _IO(0xa5, 0x27)
+#define SDTX_IOCTL_LATCH_CANCEL _IO(0xa5, 0x28)
+#define SDTX_IOCTL_GET_BASE_INFO _IOR(0xa5, 0x29, struct sdtx_base_info)
+#define SDTX_IOCTL_GET_DEVICE_MODE _IOR(0xa5, 0x2a, __u16)
+#define SDTX_IOCTL_GET_LATCH_STATUS _IOR(0xa5, 0x2b, __u16)
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/sysctl.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/sysctl.h
index ebaf8a9..ae9c2ba 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/sysctl.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/sysctl.h
@@ -407,6 +407,7 @@
   NET_IPV4_CONF_PROMOTE_SECONDARIES = 20,
   NET_IPV4_CONF_ARP_ACCEPT = 21,
   NET_IPV4_CONF_ARP_NOTIFY = 22,
+  NET_IPV4_CONF_ARP_EVICT_NOCARRIER = 23,
 };
 enum {
   NET_IPV4_NF_CONNTRACK_MAX = 1,
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/target_core_user.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/target_core_user.h
index e0b9f22..dcba00e 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/target_core_user.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/target_core_user.h
@@ -26,6 +26,7 @@
 #define TCMU_MAILBOX_FLAG_CAP_OOOC (1 << 0)
 #define TCMU_MAILBOX_FLAG_CAP_READ_LEN (1 << 1)
 #define TCMU_MAILBOX_FLAG_CAP_TMR (1 << 2)
+#define TCMU_MAILBOX_FLAG_CAP_KEEP_BUF (1 << 3)
 struct tcmu_mailbox {
   __u16 version;
   __u16 flags;
@@ -45,6 +46,7 @@
   __u8 kflags;
 #define TCMU_UFLAG_UNKNOWN_OP 0x1
 #define TCMU_UFLAG_READ_LEN 0x2
+#define TCMU_UFLAG_KEEP_BUF 0x4
   __u8 uflags;
 } __packed;
 #define TCMU_OP_MASK 0x7
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/taskstats.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/taskstats.h
index 5f9d0cc..efa5b4a 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/taskstats.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/taskstats.h
@@ -19,7 +19,7 @@
 #ifndef _LINUX_TASKSTATS_H
 #define _LINUX_TASKSTATS_H
 #include <linux/types.h>
-#define TASKSTATS_VERSION 10
+#define TASKSTATS_VERSION 11
 #define TS_COMM_LEN 32
 struct taskstats {
   __u16 version;
@@ -69,6 +69,8 @@
   __u64 thrashing_count;
   __u64 thrashing_delay_total;
   __u64 ac_btime64;
+  __u64 compact_count;
+  __u64 compact_delay_total;
 };
 enum {
   TASKSTATS_CMD_UNSPEC = 0,
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
index 0a53b06..f0cd928 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tc_act/tc_skbmod.h
@@ -23,6 +23,7 @@
 #define SKBMOD_F_SMAC 0x2
 #define SKBMOD_F_ETYPE 0x4
 #define SKBMOD_F_SWAPMAC 0x8
+#define SKBMOD_F_ECN 0x10
 struct tc_skbmod {
   tc_gen;
   __u64 flags;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tcp.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tcp.h
index 99c5bff..c96d695 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tcp.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tcp.h
@@ -226,7 +226,7 @@
 #define TCP_MD5SIG_FLAG_PREFIX 0x1
 #define TCP_MD5SIG_FLAG_IFINDEX 0x2
 struct tcp_md5sig {
-  struct sockaddr_storage tcpm_addr;
+  struct __kernel_sockaddr_storage tcpm_addr;
   __u8 tcpm_flags;
   __u8 tcpm_prefixlen;
   __u16 tcpm_keylen;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tls.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tls.h
index c765f30..c98ea0b 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tls.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tls.h
@@ -54,6 +54,18 @@
 #define TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE 0
 #define TLS_CIPHER_CHACHA20_POLY1305_TAG_SIZE 16
 #define TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE 8
+#define TLS_CIPHER_SM4_GCM 55
+#define TLS_CIPHER_SM4_GCM_IV_SIZE 8
+#define TLS_CIPHER_SM4_GCM_KEY_SIZE 16
+#define TLS_CIPHER_SM4_GCM_SALT_SIZE 4
+#define TLS_CIPHER_SM4_GCM_TAG_SIZE 16
+#define TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE 8
+#define TLS_CIPHER_SM4_CCM 56
+#define TLS_CIPHER_SM4_CCM_IV_SIZE 8
+#define TLS_CIPHER_SM4_CCM_KEY_SIZE 16
+#define TLS_CIPHER_SM4_CCM_SALT_SIZE 4
+#define TLS_CIPHER_SM4_CCM_TAG_SIZE 16
+#define TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE 8
 #define TLS_SET_RECORD_TYPE 1
 #define TLS_GET_RECORD_TYPE 2
 struct tls_crypto_info {
@@ -88,6 +100,20 @@
   unsigned char salt[TLS_CIPHER_CHACHA20_POLY1305_SALT_SIZE];
   unsigned char rec_seq[TLS_CIPHER_CHACHA20_POLY1305_REC_SEQ_SIZE];
 };
+struct tls12_crypto_info_sm4_gcm {
+  struct tls_crypto_info info;
+  unsigned char iv[TLS_CIPHER_SM4_GCM_IV_SIZE];
+  unsigned char key[TLS_CIPHER_SM4_GCM_KEY_SIZE];
+  unsigned char salt[TLS_CIPHER_SM4_GCM_SALT_SIZE];
+  unsigned char rec_seq[TLS_CIPHER_SM4_GCM_REC_SEQ_SIZE];
+};
+struct tls12_crypto_info_sm4_ccm {
+  struct tls_crypto_info info;
+  unsigned char iv[TLS_CIPHER_SM4_CCM_IV_SIZE];
+  unsigned char key[TLS_CIPHER_SM4_CCM_KEY_SIZE];
+  unsigned char salt[TLS_CIPHER_SM4_CCM_SALT_SIZE];
+  unsigned char rec_seq[TLS_CIPHER_SM4_CCM_REC_SEQ_SIZE];
+};
 enum {
   TLS_INFO_UNSPEC,
   TLS_INFO_VERSION,
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tty.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tty.h
index 48fa908..dcce572 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tty.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tty.h
@@ -47,4 +47,5 @@
 #define N_NCI 25
 #define N_SPEAKUP 26
 #define N_NULL 27
+#define N_MCTP 28
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tty_flags.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tty_flags.h
index fe591e5..b8354cf 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tty_flags.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/tty_flags.h
@@ -36,7 +36,6 @@
 #define ASYNCB_AUTOPROBE 15
 #define ASYNCB_MAGIC_MULTIPLIER 16
 #define ASYNCB_LAST_USER 16
-#ifndef _KERNEL_
 #define ASYNCB_INITIALIZED 31
 #define ASYNCB_SUSPENDED 30
 #define ASYNCB_NORMAL_ACTIVE 29
@@ -47,7 +46,6 @@
 #define ASYNCB_SHARE_IRQ 24
 #define ASYNCB_CONS_FLOW 23
 #define ASYNCB_FIRST_KERNEL 22
-#endif
 #define ASYNC_HUP_NOTIFY (1U << ASYNCB_HUP_NOTIFY)
 #define ASYNC_SUSPENDED (1U << ASYNCB_SUSPENDED)
 #define ASYNC_FOURPORT (1U << ASYNCB_FOURPORT)
@@ -67,12 +65,11 @@
 #define ASYNC_AUTOPROBE (1U << ASYNCB_AUTOPROBE)
 #define ASYNC_MAGIC_MULTIPLIER (1U << ASYNCB_MAGIC_MULTIPLIER)
 #define ASYNC_FLAGS ((1U << (ASYNCB_LAST_USER + 1)) - 1)
-#define ASYNC_DEPRECATED (ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
+#define ASYNC_DEPRECATED (ASYNC_SPLIT_TERMIOS | ASYNC_SESSION_LOCKOUT | ASYNC_PGRP_LOCKOUT | ASYNC_CALLOUT_NOHUP | ASYNC_AUTOPROBE)
 #define ASYNC_USR_MASK (ASYNC_SPD_MASK | ASYNC_CALLOUT_NOHUP | ASYNC_LOW_LATENCY)
 #define ASYNC_SPD_CUST (ASYNC_SPD_HI | ASYNC_SPD_VHI)
 #define ASYNC_SPD_WARP (ASYNC_SPD_HI | ASYNC_SPD_SHI)
 #define ASYNC_SPD_MASK (ASYNC_SPD_HI | ASYNC_SPD_VHI | ASYNC_SPD_SHI)
-#ifndef _KERNEL_
 #define ASYNC_INITIALIZED (1U << ASYNCB_INITIALIZED)
 #define ASYNC_NORMAL_ACTIVE (1U << ASYNCB_NORMAL_ACTIVE)
 #define ASYNC_BOOT_AUTOCONF (1U << ASYNCB_BOOT_AUTOCONF)
@@ -83,4 +80,3 @@
 #define ASYNC_CONS_FLOW (1U << ASYNCB_CONS_FLOW)
 #define ASYNC_INTERNAL_FLAGS (~((1U << ASYNCB_FIRST_KERNEL) - 1))
 #endif
-#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/usb/video.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/usb/video.h
index cd2ede9..b45bada 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/usb/video.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/usb/video.h
@@ -217,8 +217,9 @@
   __u8 bControlSize;
   __u8 bmControls[2];
   __u8 iProcessing;
+  __u8 bmVideoStandards;
 } __attribute__((__packed__));
-#define UVC_DT_PROCESSING_UNIT_SIZE(n) (9 + (n))
+#define UVC_DT_PROCESSING_UNIT_SIZE(n) (10 + (n))
 struct uvc_extension_unit_descriptor {
   __u8 bLength;
   __u8 bDescriptorType;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/userfaultfd.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
index fc100ae..ca7b7a5 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/userfaultfd.h
@@ -20,16 +20,18 @@
 #define _LINUX_USERFAULTFD_H
 #include <linux/types.h>
 #define UFFD_API ((__u64) 0xAA)
-#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID)
+#define UFFD_API_REGISTER_MODES (UFFDIO_REGISTER_MODE_MISSING | UFFDIO_REGISTER_MODE_WP | UFFDIO_REGISTER_MODE_MINOR)
+#define UFFD_API_FEATURES (UFFD_FEATURE_PAGEFAULT_FLAG_WP | UFFD_FEATURE_EVENT_FORK | UFFD_FEATURE_EVENT_REMAP | UFFD_FEATURE_EVENT_REMOVE | UFFD_FEATURE_EVENT_UNMAP | UFFD_FEATURE_MISSING_HUGETLBFS | UFFD_FEATURE_MISSING_SHMEM | UFFD_FEATURE_SIGBUS | UFFD_FEATURE_THREAD_ID | UFFD_FEATURE_MINOR_HUGETLBFS | UFFD_FEATURE_MINOR_SHMEM)
 #define UFFD_API_IOCTLS ((__u64) 1 << _UFFDIO_REGISTER | (__u64) 1 << _UFFDIO_UNREGISTER | (__u64) 1 << _UFFDIO_API)
-#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT)
-#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY)
+#define UFFD_API_RANGE_IOCTLS ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_ZEROPAGE | (__u64) 1 << _UFFDIO_WRITEPROTECT | (__u64) 1 << _UFFDIO_CONTINUE)
+#define UFFD_API_RANGE_IOCTLS_BASIC ((__u64) 1 << _UFFDIO_WAKE | (__u64) 1 << _UFFDIO_COPY | (__u64) 1 << _UFFDIO_CONTINUE)
 #define _UFFDIO_REGISTER (0x00)
 #define _UFFDIO_UNREGISTER (0x01)
 #define _UFFDIO_WAKE (0x02)
 #define _UFFDIO_COPY (0x03)
 #define _UFFDIO_ZEROPAGE (0x04)
 #define _UFFDIO_WRITEPROTECT (0x06)
+#define _UFFDIO_CONTINUE (0x07)
 #define _UFFDIO_API (0x3F)
 #define UFFDIO 0xAA
 #define UFFDIO_API _IOWR(UFFDIO, _UFFDIO_API, struct uffdio_api)
@@ -39,6 +41,7 @@
 #define UFFDIO_COPY _IOWR(UFFDIO, _UFFDIO_COPY, struct uffdio_copy)
 #define UFFDIO_ZEROPAGE _IOWR(UFFDIO, _UFFDIO_ZEROPAGE, struct uffdio_zeropage)
 #define UFFDIO_WRITEPROTECT _IOWR(UFFDIO, _UFFDIO_WRITEPROTECT, struct uffdio_writeprotect)
+#define UFFDIO_CONTINUE _IOWR(UFFDIO, _UFFDIO_CONTINUE, struct uffdio_continue)
 struct uffd_msg {
   __u8 event;
   __u8 reserved1;
@@ -78,6 +81,7 @@
 #define UFFD_EVENT_UNMAP 0x16
 #define UFFD_PAGEFAULT_FLAG_WRITE (1 << 0)
 #define UFFD_PAGEFAULT_FLAG_WP (1 << 1)
+#define UFFD_PAGEFAULT_FLAG_MINOR (1 << 2)
 struct uffdio_api {
   __u64 api;
 #define UFFD_FEATURE_PAGEFAULT_FLAG_WP (1 << 0)
@@ -89,6 +93,8 @@
 #define UFFD_FEATURE_EVENT_UNMAP (1 << 6)
 #define UFFD_FEATURE_SIGBUS (1 << 7)
 #define UFFD_FEATURE_THREAD_ID (1 << 8)
+#define UFFD_FEATURE_MINOR_HUGETLBFS (1 << 9)
+#define UFFD_FEATURE_MINOR_SHMEM (1 << 10)
   __u64 features;
   __u64 ioctls;
 };
@@ -100,6 +106,7 @@
   struct uffdio_range range;
 #define UFFDIO_REGISTER_MODE_MISSING ((__u64) 1 << 0)
 #define UFFDIO_REGISTER_MODE_WP ((__u64) 1 << 1)
+#define UFFDIO_REGISTER_MODE_MINOR ((__u64) 1 << 2)
   __u64 mode;
   __u64 ioctls;
 };
@@ -124,5 +131,11 @@
 #define UFFDIO_WRITEPROTECT_MODE_DONTWAKE ((__u64) 1 << 1)
   __u64 mode;
 };
+struct uffdio_continue {
+  struct uffdio_range range;
+#define UFFDIO_CONTINUE_MODE_DONTWAKE ((__u64) 1 << 0)
+  __u64 mode;
+  __s64 mapped;
+};
 #define UFFD_USER_MODE_ONLY 1
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
index 75e5ccd..1a11355 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/v4l2-controls.h
@@ -18,6 +18,7 @@
  ****************************************************************************/
 #ifndef __LINUX_V4L2_CONTROLS_H
 #define __LINUX_V4L2_CONTROLS_H
+#include <linux/const.h>
 #include <linux/types.h>
 #define V4L2_CTRL_CLASS_USER 0x00980000
 #define V4L2_CTRL_CLASS_CODEC 0x00990000
@@ -32,6 +33,7 @@
 #define V4L2_CTRL_CLASS_RF_TUNER 0x00a20000
 #define V4L2_CTRL_CLASS_DETECT 0x00a30000
 #define V4L2_CTRL_CLASS_CODEC_STATELESS 0x00a40000
+#define V4L2_CTRL_CLASS_COLORIMETRY 0x00a50000
 #define V4L2_CID_BASE (V4L2_CTRL_CLASS_USER | 0x900)
 #define V4L2_CID_USER_BASE V4L2_CID_BASE
 #define V4L2_CID_USER_CLASS (V4L2_CTRL_CLASS_USER | 1)
@@ -88,6 +90,7 @@
   V4L2_COLORFX_SOLARIZATION = 13,
   V4L2_COLORFX_ANTIQUE = 14,
   V4L2_COLORFX_SET_CBCR = 15,
+  V4L2_COLORFX_SET_RGB = 16,
 };
 #define V4L2_CID_AUTOBRIGHTNESS (V4L2_CID_BASE + 32)
 #define V4L2_CID_BAND_STOP_FILTER (V4L2_CID_BASE + 33)
@@ -100,7 +103,8 @@
 #define V4L2_CID_MIN_BUFFERS_FOR_OUTPUT (V4L2_CID_BASE + 40)
 #define V4L2_CID_ALPHA_COMPONENT (V4L2_CID_BASE + 41)
 #define V4L2_CID_COLORFX_CBCR (V4L2_CID_BASE + 42)
-#define V4L2_CID_LASTP1 (V4L2_CID_BASE + 43)
+#define V4L2_CID_COLORFX_RGB (V4L2_CID_BASE + 43)
+#define V4L2_CID_LASTP1 (V4L2_CID_BASE + 44)
 #define V4L2_CID_USER_MEYE_BASE (V4L2_CID_USER_BASE + 0x1000)
 #define V4L2_CID_USER_BTTV_BASE (V4L2_CID_USER_BASE + 0x1010)
 #define V4L2_CID_USER_S2255_BASE (V4L2_CID_USER_BASE + 0x1030)
@@ -114,6 +118,7 @@
 #define V4L2_CID_USER_ATMEL_ISC_BASE (V4L2_CID_USER_BASE + 0x10c0)
 #define V4L2_CID_USER_CODA_BASE (V4L2_CID_USER_BASE + 0x10e0)
 #define V4L2_CID_USER_CCS_BASE (V4L2_CID_USER_BASE + 0x10f0)
+#define V4L2_CID_USER_ALLEGRO_BASE (V4L2_CID_USER_BASE + 0x1170)
 #define V4L2_CID_CODEC_BASE (V4L2_CTRL_CLASS_CODEC | 0x900)
 #define V4L2_CID_CODEC_CLASS (V4L2_CTRL_CLASS_CODEC | 1)
 #define V4L2_CID_MPEG_STREAM_TYPE (V4L2_CID_CODEC_BASE + 0)
@@ -318,6 +323,12 @@
 #define V4L2_CID_MPEG_VIDEO_MV_V_SEARCH_RANGE (V4L2_CID_CODEC_BASE + 228)
 #define V4L2_CID_MPEG_VIDEO_FORCE_KEY_FRAME (V4L2_CID_CODEC_BASE + 229)
 #define V4L2_CID_MPEG_VIDEO_BASELAYER_PRIORITY_ID (V4L2_CID_CODEC_BASE + 230)
+#define V4L2_CID_MPEG_VIDEO_AU_DELIMITER (V4L2_CID_CODEC_BASE + 231)
+#define V4L2_CID_MPEG_VIDEO_LTR_COUNT (V4L2_CID_CODEC_BASE + 232)
+#define V4L2_CID_MPEG_VIDEO_FRAME_LTR_INDEX (V4L2_CID_CODEC_BASE + 233)
+#define V4L2_CID_MPEG_VIDEO_USE_LTR_FRAMES (V4L2_CID_CODEC_BASE + 234)
+#define V4L2_CID_MPEG_VIDEO_DEC_CONCEAL_COLOR (V4L2_CID_CODEC_BASE + 235)
+#define V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD (V4L2_CID_CODEC_BASE + 236)
 #define V4L2_CID_MPEG_VIDEO_MPEG2_LEVEL (V4L2_CID_CODEC_BASE + 270)
 enum v4l2_mpeg_video_mpeg2_level {
   V4L2_MPEG_VIDEO_MPEG2_LEVEL_LOW = 0,
@@ -670,6 +681,8 @@
 #define V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 650)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MIN_QP (V4L2_CID_CODEC_BASE + 651)
 #define V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_MAX_QP (V4L2_CID_CODEC_BASE + 652)
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY (V4L2_CID_CODEC_BASE + 653)
+#define V4L2_CID_MPEG_VIDEO_DEC_DISPLAY_DELAY_ENABLE (V4L2_CID_CODEC_BASE + 654)
 #define V4L2_CID_CODEC_CX2341X_BASE (V4L2_CTRL_CLASS_CODEC | 0x1000)
 #define V4L2_CID_MPEG_CX2341X_VIDEO_SPATIAL_FILTER_MODE (V4L2_CID_CODEC_CX2341X_BASE + 0)
 enum v4l2_mpeg_cx2341x_video_spatial_filter_mode {
@@ -926,6 +939,7 @@
 #define V4L2_CID_TEST_PATTERN_BLUE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 6)
 #define V4L2_CID_TEST_PATTERN_GREENB (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 7)
 #define V4L2_CID_UNIT_CELL_SIZE (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 8)
+#define V4L2_CID_NOTIFY_GAINS (V4L2_CID_IMAGE_SOURCE_CLASS_BASE + 9)
 #define V4L2_CID_IMAGE_PROC_CLASS_BASE (V4L2_CTRL_CLASS_IMAGE_PROC | 0x900)
 #define V4L2_CID_IMAGE_PROC_CLASS (V4L2_CTRL_CLASS_IMAGE_PROC | 1)
 #define V4L2_CID_LINK_FREQ (V4L2_CID_IMAGE_PROC_CLASS_BASE + 1)
@@ -1158,17 +1172,17 @@
   __u32 flags;
 };
 #define V4L2_FWHT_VERSION 3
-#define V4L2_FWHT_FL_IS_INTERLACED BIT(0)
-#define V4L2_FWHT_FL_IS_BOTTOM_FIRST BIT(1)
-#define V4L2_FWHT_FL_IS_ALTERNATE BIT(2)
-#define V4L2_FWHT_FL_IS_BOTTOM_FIELD BIT(3)
-#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED BIT(4)
-#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED BIT(5)
-#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED BIT(6)
-#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT BIT(7)
-#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH BIT(8)
-#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED BIT(9)
-#define V4L2_FWHT_FL_I_FRAME BIT(10)
+#define V4L2_FWHT_FL_IS_INTERLACED _BITUL(0)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIRST _BITUL(1)
+#define V4L2_FWHT_FL_IS_ALTERNATE _BITUL(2)
+#define V4L2_FWHT_FL_IS_BOTTOM_FIELD _BITUL(3)
+#define V4L2_FWHT_FL_LUMA_IS_UNCOMPRESSED _BITUL(4)
+#define V4L2_FWHT_FL_CB_IS_UNCOMPRESSED _BITUL(5)
+#define V4L2_FWHT_FL_CR_IS_UNCOMPRESSED _BITUL(6)
+#define V4L2_FWHT_FL_CHROMA_FULL_HEIGHT _BITUL(7)
+#define V4L2_FWHT_FL_CHROMA_FULL_WIDTH _BITUL(8)
+#define V4L2_FWHT_FL_ALPHA_IS_UNCOMPRESSED _BITUL(9)
+#define V4L2_FWHT_FL_I_FRAME _BITUL(10)
 #define V4L2_FWHT_FL_COMPONENTS_NUM_MSK GENMASK(18, 16)
 #define V4L2_FWHT_FL_COMPONENTS_NUM_OFFSET 16
 #define V4L2_FWHT_FL_PIXENC_MSK GENMASK(20, 19)
@@ -1188,6 +1202,279 @@
   __u32 ycbcr_enc;
   __u32 quantization;
 };
+#define V4L2_VP8_SEGMENT_FLAG_ENABLED 0x01
+#define V4L2_VP8_SEGMENT_FLAG_UPDATE_MAP 0x02
+#define V4L2_VP8_SEGMENT_FLAG_UPDATE_FEATURE_DATA 0x04
+#define V4L2_VP8_SEGMENT_FLAG_DELTA_VALUE_MODE 0x08
+struct v4l2_vp8_segment {
+  __s8 quant_update[4];
+  __s8 lf_update[4];
+  __u8 segment_probs[3];
+  __u8 padding;
+  __u32 flags;
+};
+#define V4L2_VP8_LF_ADJ_ENABLE 0x01
+#define V4L2_VP8_LF_DELTA_UPDATE 0x02
+#define V4L2_VP8_LF_FILTER_TYPE_SIMPLE 0x04
+struct v4l2_vp8_loop_filter {
+  __s8 ref_frm_delta[4];
+  __s8 mb_mode_delta[4];
+  __u8 sharpness_level;
+  __u8 level;
+  __u16 padding;
+  __u32 flags;
+};
+struct v4l2_vp8_quantization {
+  __u8 y_ac_qi;
+  __s8 y_dc_delta;
+  __s8 y2_dc_delta;
+  __s8 y2_ac_delta;
+  __s8 uv_dc_delta;
+  __s8 uv_ac_delta;
+  __u16 padding;
+};
+#define V4L2_VP8_COEFF_PROB_CNT 11
+#define V4L2_VP8_MV_PROB_CNT 19
+struct v4l2_vp8_entropy {
+  __u8 coeff_probs[4][8][3][V4L2_VP8_COEFF_PROB_CNT];
+  __u8 y_mode_probs[4];
+  __u8 uv_mode_probs[3];
+  __u8 mv_probs[2][V4L2_VP8_MV_PROB_CNT];
+  __u8 padding[3];
+};
+struct v4l2_vp8_entropy_coder_state {
+  __u8 range;
+  __u8 value;
+  __u8 bit_count;
+  __u8 padding;
+};
+#define V4L2_VP8_FRAME_FLAG_KEY_FRAME 0x01
+#define V4L2_VP8_FRAME_FLAG_EXPERIMENTAL 0x02
+#define V4L2_VP8_FRAME_FLAG_SHOW_FRAME 0x04
+#define V4L2_VP8_FRAME_FLAG_MB_NO_SKIP_COEFF 0x08
+#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_GOLDEN 0x10
+#define V4L2_VP8_FRAME_FLAG_SIGN_BIAS_ALT 0x20
+#define V4L2_VP8_FRAME_IS_KEY_FRAME(hdr) (! ! ((hdr)->flags & V4L2_VP8_FRAME_FLAG_KEY_FRAME))
+#define V4L2_CID_STATELESS_VP8_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 200)
+struct v4l2_ctrl_vp8_frame {
+  struct v4l2_vp8_segment segment;
+  struct v4l2_vp8_loop_filter lf;
+  struct v4l2_vp8_quantization quant;
+  struct v4l2_vp8_entropy entropy;
+  struct v4l2_vp8_entropy_coder_state coder_state;
+  __u16 width;
+  __u16 height;
+  __u8 horizontal_scale;
+  __u8 vertical_scale;
+  __u8 version;
+  __u8 prob_skip_false;
+  __u8 prob_intra;
+  __u8 prob_last;
+  __u8 prob_gf;
+  __u8 num_dct_parts;
+  __u32 first_part_size;
+  __u32 first_part_header_bits;
+  __u32 dct_part_sizes[8];
+  __u64 last_frame_ts;
+  __u64 golden_frame_ts;
+  __u64 alt_frame_ts;
+  __u64 flags;
+};
+#define V4L2_MPEG2_SEQ_FLAG_PROGRESSIVE 0x01
+#define V4L2_CID_STATELESS_MPEG2_SEQUENCE (V4L2_CID_CODEC_STATELESS_BASE + 220)
+struct v4l2_ctrl_mpeg2_sequence {
+  __u16 horizontal_size;
+  __u16 vertical_size;
+  __u32 vbv_buffer_size;
+  __u16 profile_and_level_indication;
+  __u8 chroma_format;
+  __u8 flags;
+};
+#define V4L2_MPEG2_PIC_CODING_TYPE_I 1
+#define V4L2_MPEG2_PIC_CODING_TYPE_P 2
+#define V4L2_MPEG2_PIC_CODING_TYPE_B 3
+#define V4L2_MPEG2_PIC_CODING_TYPE_D 4
+#define V4L2_MPEG2_PIC_TOP_FIELD 0x1
+#define V4L2_MPEG2_PIC_BOTTOM_FIELD 0x2
+#define V4L2_MPEG2_PIC_FRAME 0x3
+#define V4L2_MPEG2_PIC_FLAG_TOP_FIELD_FIRST 0x0001
+#define V4L2_MPEG2_PIC_FLAG_FRAME_PRED_DCT 0x0002
+#define V4L2_MPEG2_PIC_FLAG_CONCEALMENT_MV 0x0004
+#define V4L2_MPEG2_PIC_FLAG_Q_SCALE_TYPE 0x0008
+#define V4L2_MPEG2_PIC_FLAG_INTRA_VLC 0x0010
+#define V4L2_MPEG2_PIC_FLAG_ALT_SCAN 0x0020
+#define V4L2_MPEG2_PIC_FLAG_REPEAT_FIRST 0x0040
+#define V4L2_MPEG2_PIC_FLAG_PROGRESSIVE 0x0080
+#define V4L2_CID_STATELESS_MPEG2_PICTURE (V4L2_CID_CODEC_STATELESS_BASE + 221)
+struct v4l2_ctrl_mpeg2_picture {
+  __u64 backward_ref_ts;
+  __u64 forward_ref_ts;
+  __u32 flags;
+  __u8 f_code[2][2];
+  __u8 picture_coding_type;
+  __u8 picture_structure;
+  __u8 intra_dc_precision;
+  __u8 reserved[5];
+};
+#define V4L2_CID_STATELESS_MPEG2_QUANTISATION (V4L2_CID_CODEC_STATELESS_BASE + 222)
+struct v4l2_ctrl_mpeg2_quantisation {
+  __u8 intra_quantiser_matrix[64];
+  __u8 non_intra_quantiser_matrix[64];
+  __u8 chroma_intra_quantiser_matrix[64];
+  __u8 chroma_non_intra_quantiser_matrix[64];
+};
+#define V4L2_CID_COLORIMETRY_CLASS_BASE (V4L2_CTRL_CLASS_COLORIMETRY | 0x900)
+#define V4L2_CID_COLORIMETRY_CLASS (V4L2_CTRL_CLASS_COLORIMETRY | 1)
+#define V4L2_CID_COLORIMETRY_HDR10_CLL_INFO (V4L2_CID_COLORIMETRY_CLASS_BASE + 0)
+struct v4l2_ctrl_hdr10_cll_info {
+  __u16 max_content_light_level;
+  __u16 max_pic_average_light_level;
+};
+#define V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY (V4L2_CID_COLORIMETRY_CLASS_BASE + 1)
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_LOW 5
+#define V4L2_HDR10_MASTERING_PRIMARIES_X_HIGH 37000
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_LOW 5
+#define V4L2_HDR10_MASTERING_PRIMARIES_Y_HIGH 42000
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_LOW 5
+#define V4L2_HDR10_MASTERING_WHITE_POINT_X_HIGH 37000
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_LOW 5
+#define V4L2_HDR10_MASTERING_WHITE_POINT_Y_HIGH 42000
+#define V4L2_HDR10_MASTERING_MAX_LUMA_LOW 50000
+#define V4L2_HDR10_MASTERING_MAX_LUMA_HIGH 100000000
+#define V4L2_HDR10_MASTERING_MIN_LUMA_LOW 1
+#define V4L2_HDR10_MASTERING_MIN_LUMA_HIGH 50000
+struct v4l2_ctrl_hdr10_mastering_display {
+  __u16 display_primaries_x[3];
+  __u16 display_primaries_y[3];
+  __u16 white_point_x;
+  __u16 white_point_y;
+  __u32 max_display_mastering_luminance;
+  __u32 min_display_mastering_luminance;
+};
+#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_ENABLED 0x1
+#define V4L2_VP9_LOOP_FILTER_FLAG_DELTA_UPDATE 0x2
+struct v4l2_vp9_loop_filter {
+  __s8 ref_deltas[4];
+  __s8 mode_deltas[2];
+  __u8 level;
+  __u8 sharpness;
+  __u8 flags;
+  __u8 reserved[7];
+};
+struct v4l2_vp9_quantization {
+  __u8 base_q_idx;
+  __s8 delta_q_y_dc;
+  __s8 delta_q_uv_dc;
+  __s8 delta_q_uv_ac;
+  __u8 reserved[4];
+};
+#define V4L2_VP9_SEGMENTATION_FLAG_ENABLED 0x01
+#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_MAP 0x02
+#define V4L2_VP9_SEGMENTATION_FLAG_TEMPORAL_UPDATE 0x04
+#define V4L2_VP9_SEGMENTATION_FLAG_UPDATE_DATA 0x08
+#define V4L2_VP9_SEGMENTATION_FLAG_ABS_OR_DELTA_UPDATE 0x10
+#define V4L2_VP9_SEG_LVL_ALT_Q 0
+#define V4L2_VP9_SEG_LVL_ALT_L 1
+#define V4L2_VP9_SEG_LVL_REF_FRAME 2
+#define V4L2_VP9_SEG_LVL_SKIP 3
+#define V4L2_VP9_SEG_LVL_MAX 4
+#define V4L2_VP9_SEGMENT_FEATURE_ENABLED(id) (1 << (id))
+#define V4L2_VP9_SEGMENT_FEATURE_ENABLED_MASK 0xf
+struct v4l2_vp9_segmentation {
+  __s16 feature_data[8][4];
+  __u8 feature_enabled[8];
+  __u8 tree_probs[7];
+  __u8 pred_probs[3];
+  __u8 flags;
+  __u8 reserved[5];
+};
+#define V4L2_VP9_FRAME_FLAG_KEY_FRAME 0x001
+#define V4L2_VP9_FRAME_FLAG_SHOW_FRAME 0x002
+#define V4L2_VP9_FRAME_FLAG_ERROR_RESILIENT 0x004
+#define V4L2_VP9_FRAME_FLAG_INTRA_ONLY 0x008
+#define V4L2_VP9_FRAME_FLAG_ALLOW_HIGH_PREC_MV 0x010
+#define V4L2_VP9_FRAME_FLAG_REFRESH_FRAME_CTX 0x020
+#define V4L2_VP9_FRAME_FLAG_PARALLEL_DEC_MODE 0x040
+#define V4L2_VP9_FRAME_FLAG_X_SUBSAMPLING 0x080
+#define V4L2_VP9_FRAME_FLAG_Y_SUBSAMPLING 0x100
+#define V4L2_VP9_FRAME_FLAG_COLOR_RANGE_FULL_SWING 0x200
+#define V4L2_VP9_SIGN_BIAS_LAST 0x1
+#define V4L2_VP9_SIGN_BIAS_GOLDEN 0x2
+#define V4L2_VP9_SIGN_BIAS_ALT 0x4
+#define V4L2_VP9_RESET_FRAME_CTX_NONE 0
+#define V4L2_VP9_RESET_FRAME_CTX_SPEC 1
+#define V4L2_VP9_RESET_FRAME_CTX_ALL 2
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP 0
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SMOOTH 1
+#define V4L2_VP9_INTERP_FILTER_EIGHTTAP_SHARP 2
+#define V4L2_VP9_INTERP_FILTER_BILINEAR 3
+#define V4L2_VP9_INTERP_FILTER_SWITCHABLE 4
+#define V4L2_VP9_REFERENCE_MODE_SINGLE_REFERENCE 0
+#define V4L2_VP9_REFERENCE_MODE_COMPOUND_REFERENCE 1
+#define V4L2_VP9_REFERENCE_MODE_SELECT 2
+#define V4L2_VP9_PROFILE_MAX 3
+#define V4L2_CID_STATELESS_VP9_FRAME (V4L2_CID_CODEC_STATELESS_BASE + 300)
+struct v4l2_ctrl_vp9_frame {
+  struct v4l2_vp9_loop_filter lf;
+  struct v4l2_vp9_quantization quant;
+  struct v4l2_vp9_segmentation seg;
+  __u32 flags;
+  __u16 compressed_header_size;
+  __u16 uncompressed_header_size;
+  __u16 frame_width_minus_1;
+  __u16 frame_height_minus_1;
+  __u16 render_width_minus_1;
+  __u16 render_height_minus_1;
+  __u64 last_frame_ts;
+  __u64 golden_frame_ts;
+  __u64 alt_frame_ts;
+  __u8 ref_frame_sign_bias;
+  __u8 reset_frame_context;
+  __u8 frame_context_idx;
+  __u8 profile;
+  __u8 bit_depth;
+  __u8 interpolation_filter;
+  __u8 tile_cols_log2;
+  __u8 tile_rows_log2;
+  __u8 reference_mode;
+  __u8 reserved[7];
+};
+#define V4L2_VP9_NUM_FRAME_CTX 4
+struct v4l2_vp9_mv_probs {
+  __u8 joint[3];
+  __u8 sign[2];
+  __u8 classes[2][10];
+  __u8 class0_bit[2];
+  __u8 bits[2][10];
+  __u8 class0_fr[2][2][3];
+  __u8 fr[2][3];
+  __u8 class0_hp[2];
+  __u8 hp[2];
+};
+#define V4L2_CID_STATELESS_VP9_COMPRESSED_HDR (V4L2_CID_CODEC_STATELESS_BASE + 301)
+#define V4L2_VP9_TX_MODE_ONLY_4X4 0
+#define V4L2_VP9_TX_MODE_ALLOW_8X8 1
+#define V4L2_VP9_TX_MODE_ALLOW_16X16 2
+#define V4L2_VP9_TX_MODE_ALLOW_32X32 3
+#define V4L2_VP9_TX_MODE_SELECT 4
+struct v4l2_ctrl_vp9_compressed_hdr {
+  __u8 tx_mode;
+  __u8 tx8[2][1];
+  __u8 tx16[2][2];
+  __u8 tx32[2][3];
+  __u8 coef[4][2][2][6][6][3];
+  __u8 skip[3];
+  __u8 inter_mode[7][3];
+  __u8 interp_filter[4][2];
+  __u8 is_inter[4];
+  __u8 comp_mode[5];
+  __u8 single_ref[5][2];
+  __u8 comp_ref[5];
+  __u8 y_mode[4][9];
+  __u8 uv_mode[10][9];
+  __u8 partition[16][3];
+  struct v4l2_vp9_mv_probs mv;
+};
 #define V4L2_CTRL_CLASS_MPEG V4L2_CTRL_CLASS_CODEC
 #define V4L2_CID_MPEG_CLASS V4L2_CID_CODEC_CLASS
 #define V4L2_CID_MPEG_BASE V4L2_CID_CODEC_BASE
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vdpa.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vdpa.h
index bee6618..b3e5d39 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vdpa.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vdpa.h
@@ -27,9 +27,11 @@
   VDPA_CMD_DEV_NEW,
   VDPA_CMD_DEV_DEL,
   VDPA_CMD_DEV_GET,
+  VDPA_CMD_DEV_CONFIG_GET,
 };
 enum vdpa_attr {
   VDPA_ATTR_UNSPEC,
+  VDPA_ATTR_PAD = VDPA_ATTR_UNSPEC,
   VDPA_ATTR_MGMTDEV_BUS_NAME,
   VDPA_ATTR_MGMTDEV_DEV_NAME,
   VDPA_ATTR_MGMTDEV_SUPPORTED_CLASSES,
@@ -38,6 +40,14 @@
   VDPA_ATTR_DEV_VENDOR_ID,
   VDPA_ATTR_DEV_MAX_VQS,
   VDPA_ATTR_DEV_MAX_VQ_SIZE,
+  VDPA_ATTR_DEV_MIN_VQ_SIZE,
+  VDPA_ATTR_DEV_NET_CFG_MACADDR,
+  VDPA_ATTR_DEV_NET_STATUS,
+  VDPA_ATTR_DEV_NET_CFG_MAX_VQP,
+  VDPA_ATTR_DEV_NET_CFG_MTU,
+  VDPA_ATTR_DEV_NEGOTIATED_FEATURES,
+  VDPA_ATTR_DEV_MGMTDEV_MAX_VQS,
+  VDPA_ATTR_DEV_SUPPORTED_FEATURES,
   VDPA_ATTR_MAX,
 };
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vduse.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vduse.h
new file mode 100644
index 0000000..2dc8c82
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vduse.h
@@ -0,0 +1,134 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VDUSE_H_
+#define _UAPI_VDUSE_H_
+#include <linux/types.h>
+#define VDUSE_BASE 0x81
+#define VDUSE_API_VERSION 0
+#define VDUSE_GET_API_VERSION _IOR(VDUSE_BASE, 0x00, __u64)
+#define VDUSE_SET_API_VERSION _IOW(VDUSE_BASE, 0x01, __u64)
+struct vduse_dev_config {
+#define VDUSE_NAME_MAX 256
+  char name[VDUSE_NAME_MAX];
+  __u32 vendor_id;
+  __u32 device_id;
+  __u64 features;
+  __u32 vq_num;
+  __u32 vq_align;
+  __u32 reserved[13];
+  __u32 config_size;
+  __u8 config[];
+};
+#define VDUSE_CREATE_DEV _IOW(VDUSE_BASE, 0x02, struct vduse_dev_config)
+#define VDUSE_DESTROY_DEV _IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX])
+struct vduse_iotlb_entry {
+  __u64 offset;
+  __u64 start;
+  __u64 last;
+#define VDUSE_ACCESS_RO 0x1
+#define VDUSE_ACCESS_WO 0x2
+#define VDUSE_ACCESS_RW 0x3
+  __u8 perm;
+};
+#define VDUSE_IOTLB_GET_FD _IOWR(VDUSE_BASE, 0x10, struct vduse_iotlb_entry)
+#define VDUSE_DEV_GET_FEATURES _IOR(VDUSE_BASE, 0x11, __u64)
+struct vduse_config_data {
+  __u32 offset;
+  __u32 length;
+  __u8 buffer[];
+};
+#define VDUSE_DEV_SET_CONFIG _IOW(VDUSE_BASE, 0x12, struct vduse_config_data)
+#define VDUSE_DEV_INJECT_CONFIG_IRQ _IO(VDUSE_BASE, 0x13)
+struct vduse_vq_config {
+  __u32 index;
+  __u16 max_size;
+  __u16 reserved[13];
+};
+#define VDUSE_VQ_SETUP _IOW(VDUSE_BASE, 0x14, struct vduse_vq_config)
+struct vduse_vq_state_split {
+  __u16 avail_index;
+};
+struct vduse_vq_state_packed {
+  __u16 last_avail_counter;
+  __u16 last_avail_idx;
+  __u16 last_used_counter;
+  __u16 last_used_idx;
+};
+struct vduse_vq_info {
+  __u32 index;
+  __u32 num;
+  __u64 desc_addr;
+  __u64 driver_addr;
+  __u64 device_addr;
+  union {
+    struct vduse_vq_state_split split;
+    struct vduse_vq_state_packed packed;
+  };
+  __u8 ready;
+};
+#define VDUSE_VQ_GET_INFO _IOWR(VDUSE_BASE, 0x15, struct vduse_vq_info)
+struct vduse_vq_eventfd {
+  __u32 index;
+#define VDUSE_EVENTFD_DEASSIGN - 1
+  int fd;
+};
+#define VDUSE_VQ_SETUP_KICKFD _IOW(VDUSE_BASE, 0x16, struct vduse_vq_eventfd)
+#define VDUSE_VQ_INJECT_IRQ _IOW(VDUSE_BASE, 0x17, __u32)
+enum vduse_req_type {
+  VDUSE_GET_VQ_STATE,
+  VDUSE_SET_STATUS,
+  VDUSE_UPDATE_IOTLB,
+};
+struct vduse_vq_state {
+  __u32 index;
+  union {
+    struct vduse_vq_state_split split;
+    struct vduse_vq_state_packed packed;
+  };
+};
+struct vduse_dev_status {
+  __u8 status;
+};
+struct vduse_iova_range {
+  __u64 start;
+  __u64 last;
+};
+struct vduse_dev_request {
+  __u32 type;
+  __u32 request_id;
+  __u32 reserved[4];
+  union {
+    struct vduse_vq_state vq_state;
+    struct vduse_dev_status s;
+    struct vduse_iova_range iova;
+    __u32 padding[32];
+  };
+};
+struct vduse_dev_response {
+  __u32 request_id;
+#define VDUSE_REQ_RESULT_OK 0x00
+#define VDUSE_REQ_RESULT_FAILED 0x01
+  __u32 result;
+  __u32 reserved[4];
+  union {
+    struct vduse_vq_state vq_state;
+    __u32 padding[32];
+  };
+};
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/version.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/version.h
index 86c0070..2dfd696 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/version.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/version.h
@@ -16,8 +16,8 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#define LINUX_VERSION_CODE 330752
+#define LINUX_VERSION_CODE 332032
 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + ((c) > 255 ? 255 : (c)))
 #define LINUX_VERSION_MAJOR 5
-#define LINUX_VERSION_PATCHLEVEL 12
+#define LINUX_VERSION_PATCHLEVEL 17
 #define LINUX_VERSION_SUBLEVEL 0
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/videodev2.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/videodev2.h
index 76d9af9..1cae711 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/videodev2.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/videodev2.h
@@ -24,7 +24,7 @@
 #include <linux/types.h>
 #include <linux/v4l2-common.h>
 #include <linux/v4l2-controls.h>
-#define VIDEO_MAX_FRAME 64
+#define VIDEO_MAX_FRAME 32
 #define VIDEO_MAX_PLANES 8
 #define v4l2_fourcc(a,b,c,d) ((__u32) (a) | ((__u32) (b) << 8) | ((__u32) (c) << 16) | ((__u32) (d) << 24))
 #define v4l2_fourcc_be(a,b,c,d) (v4l2_fourcc(a, b, c, d) | (1U << 31))
@@ -266,6 +266,7 @@
 #define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4')
 #define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O')
 #define V4L2_PIX_FMT_YUV565 v4l2_fourcc('Y', 'U', 'V', 'P')
+#define V4L2_PIX_FMT_YUV24 v4l2_fourcc('Y', 'U', 'V', '3')
 #define V4L2_PIX_FMT_YUV32 v4l2_fourcc('Y', 'U', 'V', '4')
 #define V4L2_PIX_FMT_AYUV32 v4l2_fourcc('A', 'Y', 'U', 'V')
 #define V4L2_PIX_FMT_XYUV32 v4l2_fourcc('X', 'Y', 'U', 'V')
@@ -278,13 +279,10 @@
 #define V4L2_PIX_FMT_NV61 v4l2_fourcc('N', 'V', '6', '1')
 #define V4L2_PIX_FMT_NV24 v4l2_fourcc('N', 'V', '2', '4')
 #define V4L2_PIX_FMT_NV42 v4l2_fourcc('N', 'V', '4', '2')
-#define V4L2_PIX_FMT_HM12 v4l2_fourcc('H', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV12M v4l2_fourcc('N', 'M', '1', '2')
 #define V4L2_PIX_FMT_NV21M v4l2_fourcc('N', 'M', '2', '1')
 #define V4L2_PIX_FMT_NV16M v4l2_fourcc('N', 'M', '1', '6')
 #define V4L2_PIX_FMT_NV61M v4l2_fourcc('N', 'M', '6', '1')
-#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
-#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_YUV410 v4l2_fourcc('Y', 'U', 'V', '9')
 #define V4L2_PIX_FMT_YVU410 v4l2_fourcc('Y', 'V', 'U', '9')
 #define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P')
@@ -297,6 +295,11 @@
 #define V4L2_PIX_FMT_YVU422M v4l2_fourcc('Y', 'M', '6', '1')
 #define V4L2_PIX_FMT_YUV444M v4l2_fourcc('Y', 'M', '2', '4')
 #define V4L2_PIX_FMT_YVU444M v4l2_fourcc('Y', 'M', '4', '2')
+#define V4L2_PIX_FMT_NV12_4L4 v4l2_fourcc('V', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12_16L16 v4l2_fourcc('H', 'M', '1', '2')
+#define V4L2_PIX_FMT_NV12_32L32 v4l2_fourcc('S', 'T', '1', '2')
+#define V4L2_PIX_FMT_NV12MT v4l2_fourcc('T', 'M', '1', '2')
+#define V4L2_PIX_FMT_NV12MT_16X16 v4l2_fourcc('V', 'M', '1', '2')
 #define V4L2_PIX_FMT_SBGGR8 v4l2_fourcc('B', 'A', '8', '1')
 #define V4L2_PIX_FMT_SGBRG8 v4l2_fourcc('G', 'B', 'R', 'G')
 #define V4L2_PIX_FMT_SGRBG8 v4l2_fourcc('G', 'R', 'B', 'G')
@@ -355,7 +358,9 @@
 #define V4L2_PIX_FMT_VC1_ANNEX_G v4l2_fourcc('V', 'C', '1', 'G')
 #define V4L2_PIX_FMT_VC1_ANNEX_L v4l2_fourcc('V', 'C', '1', 'L')
 #define V4L2_PIX_FMT_VP8 v4l2_fourcc('V', 'P', '8', '0')
+#define V4L2_PIX_FMT_VP8_FRAME v4l2_fourcc('V', 'P', '8', 'F')
 #define V4L2_PIX_FMT_VP9 v4l2_fourcc('V', 'P', '9', '0')
+#define V4L2_PIX_FMT_VP9_FRAME v4l2_fourcc('V', 'P', '9', 'F')
 #define V4L2_PIX_FMT_HEVC v4l2_fourcc('H', 'E', 'V', 'C')
 #define V4L2_PIX_FMT_FWHT v4l2_fourcc('F', 'W', 'H', 'T')
 #define V4L2_PIX_FMT_FWHT_STATELESS v4l2_fourcc('S', 'F', 'W', 'H')
@@ -390,8 +395,8 @@
 #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I')
 #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ')
 #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1')
+#define V4L2_PIX_FMT_MM21 v4l2_fourcc('M', 'M', '2', '1')
 #define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I')
-#define V4L2_PIX_FMT_SUNXI_TILED_NV12 v4l2_fourcc('S', 'T', '1', '2')
 #define V4L2_PIX_FMT_CNF4 v4l2_fourcc('C', 'N', 'F', '4')
 #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4')
 #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b')
@@ -526,8 +531,10 @@
   __u32 type;
   __u32 memory;
   __u32 capabilities;
-  __u32 reserved[1];
+  __u8 flags;
+  __u8 reserved[3];
 };
+#define V4L2_MEMORY_FLAG_NON_COHERENT (1 << 0)
 #define V4L2_BUF_CAP_SUPPORTS_MMAP (1 << 0)
 #define V4L2_BUF_CAP_SUPPORTS_USERPTR (1 << 1)
 #define V4L2_BUF_CAP_SUPPORTS_DMABUF (1 << 2)
@@ -888,6 +895,12 @@
     struct v4l2_ctrl_h264_slice_params __user * p_h264_slice_params;
     struct v4l2_ctrl_h264_decode_params __user * p_h264_decode_params;
     struct v4l2_ctrl_fwht_params __user * p_fwht_params;
+    struct v4l2_ctrl_vp8_frame __user * p_vp8_frame;
+    struct v4l2_ctrl_mpeg2_sequence __user * p_mpeg2_sequence;
+    struct v4l2_ctrl_mpeg2_picture __user * p_mpeg2_picture;
+    struct v4l2_ctrl_mpeg2_quantisation __user * p_mpeg2_quantisation;
+    struct v4l2_ctrl_vp9_compressed_hdr __user * p_vp9_compressed_hdr_probs;
+    struct v4l2_ctrl_vp9_frame __user * p_vp9_frame;
     void __user * ptr;
   };
 } __attribute__((packed));
@@ -925,6 +938,8 @@
   V4L2_CTRL_TYPE_U16 = 0x0101,
   V4L2_CTRL_TYPE_U32 = 0x0102,
   V4L2_CTRL_TYPE_AREA = 0x0106,
+  V4L2_CTRL_TYPE_HDR10_CLL_INFO = 0x0110,
+  V4L2_CTRL_TYPE_HDR10_MASTERING_DISPLAY = 0x0111,
   V4L2_CTRL_TYPE_H264_SPS = 0x0200,
   V4L2_CTRL_TYPE_H264_PPS = 0x0201,
   V4L2_CTRL_TYPE_H264_SCALING_MATRIX = 0x0202,
@@ -932,6 +947,12 @@
   V4L2_CTRL_TYPE_H264_DECODE_PARAMS = 0x0204,
   V4L2_CTRL_TYPE_H264_PRED_WEIGHTS = 0x0205,
   V4L2_CTRL_TYPE_FWHT_PARAMS = 0x0220,
+  V4L2_CTRL_TYPE_VP8_FRAME = 0x0240,
+  V4L2_CTRL_TYPE_MPEG2_QUANTISATION = 0x0250,
+  V4L2_CTRL_TYPE_MPEG2_SEQUENCE = 0x0251,
+  V4L2_CTRL_TYPE_MPEG2_PICTURE = 0x0252,
+  V4L2_CTRL_TYPE_VP9_COMPRESSED_HDR = 0x0260,
+  V4L2_CTRL_TYPE_VP9_FRAME = 0x0261,
 };
 struct v4l2_queryctrl {
   __u32 id;
@@ -1365,7 +1386,8 @@
   __u32 memory;
   struct v4l2_format format;
   __u32 capabilities;
-  __u32 reserved[7];
+  __u32 flags;
+  __u32 reserved[6];
 };
 #define VIDIOC_QUERYCAP _IOR('V', 0, struct v4l2_capability)
 #define VIDIOC_ENUM_FMT _IOWR('V', 2, struct v4l2_fmtdesc)
@@ -1450,4 +1472,6 @@
 #define VIDIOC_DBG_G_CHIP_INFO _IOWR('V', 102, struct v4l2_dbg_chip_info)
 #define VIDIOC_QUERY_EXT_CTRL _IOWR('V', 103, struct v4l2_query_ext_ctrl)
 #define BASE_VIDIOC_PRIVATE 192
+#define V4L2_PIX_FMT_HM12 V4L2_PIX_FMT_NV12_16L16
+#define V4L2_PIX_FMT_SUNXI_TILED_NV12 V4L2_PIX_FMT_NV12_32L32
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
similarity index 63%
copy from mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
index bb45c3d..7e29eaa 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_bt.h
@@ -16,14 +16,25 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_LINUX_VIRTIO_BT_H
+#define _UAPI_LINUX_VIRTIO_BT_H
+#include <linux/virtio_types.h>
+#define VIRTIO_BT_F_VND_HCI 0
+#define VIRTIO_BT_F_MSFT_EXT 1
+#define VIRTIO_BT_F_AOSP_EXT 2
+enum virtio_bt_config_type {
+  VIRTIO_BT_CONFIG_TYPE_PRIMARY = 0,
+  VIRTIO_BT_CONFIG_TYPE_AMP = 1,
 };
+enum virtio_bt_config_vendor {
+  VIRTIO_BT_CONFIG_VENDOR_NONE = 0,
+  VIRTIO_BT_CONFIG_VENDOR_ZEPHYR = 1,
+  VIRTIO_BT_CONFIG_VENDOR_INTEL = 2,
+  VIRTIO_BT_CONFIG_VENDOR_REALTEK = 3,
+};
+struct virtio_bt_config {
+  __u8 type;
+  __u16 vendor;
+  __u16 msft_opcode;
+} __attribute__((packed));
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h
new file mode 100644
index 0000000..543fe76
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_gpio.h
@@ -0,0 +1,66 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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_VIRTIO_GPIO_H
+#define _LINUX_VIRTIO_GPIO_H
+#include <linux/types.h>
+#define VIRTIO_GPIO_F_IRQ 0
+#define VIRTIO_GPIO_MSG_GET_NAMES 0x0001
+#define VIRTIO_GPIO_MSG_GET_DIRECTION 0x0002
+#define VIRTIO_GPIO_MSG_SET_DIRECTION 0x0003
+#define VIRTIO_GPIO_MSG_GET_VALUE 0x0004
+#define VIRTIO_GPIO_MSG_SET_VALUE 0x0005
+#define VIRTIO_GPIO_MSG_IRQ_TYPE 0x0006
+#define VIRTIO_GPIO_STATUS_OK 0x0
+#define VIRTIO_GPIO_STATUS_ERR 0x1
+#define VIRTIO_GPIO_DIRECTION_NONE 0x00
+#define VIRTIO_GPIO_DIRECTION_OUT 0x01
+#define VIRTIO_GPIO_DIRECTION_IN 0x02
+#define VIRTIO_GPIO_IRQ_TYPE_NONE 0x00
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_RISING 0x01
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_FALLING 0x02
+#define VIRTIO_GPIO_IRQ_TYPE_EDGE_BOTH 0x03
+#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_HIGH 0x04
+#define VIRTIO_GPIO_IRQ_TYPE_LEVEL_LOW 0x08
+struct virtio_gpio_config {
+  __le16 ngpio;
+  __u8 padding[2];
+  __le32 gpio_names_size;
+};
+struct virtio_gpio_request {
+  __le16 type;
+  __le16 gpio;
+  __le32 value;
+};
+struct virtio_gpio_response {
+  __u8 status;
+  __u8 value;
+};
+struct virtio_gpio_response_get_names {
+  __u8 status;
+  __u8 value[];
+};
+struct virtio_gpio_irq_request {
+  __le16 gpio;
+};
+struct virtio_gpio_irq_response {
+  __u8 status;
+};
+#define VIRTIO_GPIO_IRQ_STATUS_INVALID 0x0
+#define VIRTIO_GPIO_IRQ_STATUS_VALID 0x1
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
index 83ad5a7..8a21afd 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_gpu.h
@@ -23,6 +23,7 @@
 #define VIRTIO_GPU_F_EDID 1
 #define VIRTIO_GPU_F_RESOURCE_UUID 2
 #define VIRTIO_GPU_F_RESOURCE_BLOB 3
+#define VIRTIO_GPU_F_CONTEXT_INIT 4
 enum virtio_gpu_ctrl_type {
   VIRTIO_GPU_UNDEFINED = 0,
   VIRTIO_GPU_CMD_GET_DISPLAY_INFO = 0x0100,
@@ -70,12 +71,14 @@
   VIRTIO_GPU_SHM_ID_HOST_VISIBLE = 1
 };
 #define VIRTIO_GPU_FLAG_FENCE (1 << 0)
+#define VIRTIO_GPU_FLAG_INFO_RING_IDX (1 << 1)
 struct virtio_gpu_ctrl_hdr {
   __le32 type;
   __le32 flags;
   __le64 fence_id;
   __le32 ctx_id;
-  __le32 padding;
+  __u8 ring_idx;
+  __u8 padding[3];
 };
 struct virtio_gpu_cursor_pos {
   __le32 scanout_id;
@@ -181,10 +184,11 @@
   __le32 flags;
   __le32 padding;
 };
+#define VIRTIO_GPU_CONTEXT_INIT_CAPSET_ID_MASK 0x000000ff
 struct virtio_gpu_ctx_create {
   struct virtio_gpu_ctrl_hdr hdr;
   __le32 nlen;
-  __le32 padding;
+  __le32 context_init;
   char debug_name[64];
 };
 struct virtio_gpu_ctx_destroy {
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
similarity index 71%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
index bb45c3d..9540f26 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_i2c.h
@@ -16,14 +16,21 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _UAPI_LINUX_VIRTIO_I2C_H
+#define _UAPI_LINUX_VIRTIO_I2C_H
+#include <linux/const.h>
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#define VIRTIO_I2C_F_ZERO_LENGTH_REQUEST 0
+#define VIRTIO_I2C_FLAGS_FAIL_NEXT _BITUL(0)
+#define VIRTIO_I2C_FLAGS_M_RD _BITUL(1)
+struct virtio_i2c_out_hdr {
+  __le16 addr;
+  __le16 padding;
+  __le32 flags;
 };
+struct virtio_i2c_in_hdr {
+  __u8 status;
+};
+#define VIRTIO_I2C_MSG_OK 0
+#define VIRTIO_I2C_MSG_ERR 1
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_ids.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
index bae26a0..2894700 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_ids.h
@@ -40,7 +40,28 @@
 #define VIRTIO_ID_PSTORE 22
 #define VIRTIO_ID_IOMMU 23
 #define VIRTIO_ID_MEM 24
+#define VIRTIO_ID_SOUND 25
 #define VIRTIO_ID_FS 26
 #define VIRTIO_ID_PMEM 27
+#define VIRTIO_ID_RPMB 28
 #define VIRTIO_ID_MAC80211_HWSIM 29
+#define VIRTIO_ID_VIDEO_ENCODER 30
+#define VIRTIO_ID_VIDEO_DECODER 31
+#define VIRTIO_ID_SCMI 32
+#define VIRTIO_ID_NITRO_SEC_MOD 33
+#define VIRTIO_ID_I2C_ADAPTER 34
+#define VIRTIO_ID_WATCHDOG 35
+#define VIRTIO_ID_CAN 36
+#define VIRTIO_ID_DMABUF 37
+#define VIRTIO_ID_PARAM_SERV 38
+#define VIRTIO_ID_AUDIO_POLICY 39
+#define VIRTIO_ID_BT 40
+#define VIRTIO_ID_GPIO 41
+#define VIRTIO_TRANS_ID_NET 1000
+#define VIRTIO_TRANS_ID_BLOCK 1001
+#define VIRTIO_TRANS_ID_BALLOON 1002
+#define VIRTIO_TRANS_ID_CONSOLE 1003
+#define VIRTIO_TRANS_ID_SCSI 1004
+#define VIRTIO_TRANS_ID_RNG 1005
+#define VIRTIO_TRANS_ID_9P 1009
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
index b08de57..ec8def8 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_iommu.h
@@ -25,6 +25,7 @@
 #define VIRTIO_IOMMU_F_BYPASS 3
 #define VIRTIO_IOMMU_F_PROBE 4
 #define VIRTIO_IOMMU_F_MMIO 5
+#define VIRTIO_IOMMU_F_BYPASS_CONFIG 6
 struct virtio_iommu_range_64 {
   __le64 start;
   __le64 end;
@@ -38,6 +39,8 @@
   struct virtio_iommu_range_64 input_range;
   struct virtio_iommu_range_32 domain_range;
   __le32 probe_size;
+  __u8 bypass;
+  __u8 reserved[3];
 };
 #define VIRTIO_IOMMU_T_ATTACH 0x01
 #define VIRTIO_IOMMU_T_DETACH 0x02
@@ -61,11 +64,13 @@
   __u8 status;
   __u8 reserved[3];
 };
+#define VIRTIO_IOMMU_ATTACH_F_BYPASS (1 << 0)
 struct virtio_iommu_req_attach {
   struct virtio_iommu_req_head head;
   __le32 domain;
   __le32 endpoint;
-  __u8 reserved[8];
+  __le32 flags;
+  __u8 reserved[4];
   struct virtio_iommu_req_tail tail;
 };
 struct virtio_iommu_req_detach {
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_mem.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
index d6542b7..66ffce1 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_mem.h
@@ -23,6 +23,7 @@
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
 #define VIRTIO_MEM_F_ACPI_PXM 0
+#define VIRTIO_MEM_F_UNPLUGGED_INACCESSIBLE 1
 #define VIRTIO_MEM_REQ_PLUG 0
 #define VIRTIO_MEM_REQ_UNPLUG 1
 #define VIRTIO_MEM_REQ_UNPLUG_ALL 2
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
similarity index 68%
rename from mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/raw.h
rename to mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
index bb45c3d..01c5869 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_pcidev.h
@@ -16,14 +16,26 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
+#ifndef _UAPI_LINUX_VIRTIO_PCIDEV_H
+#define _UAPI_LINUX_VIRTIO_PCIDEV_H
 #include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+enum virtio_pcidev_ops {
+  VIRTIO_PCIDEV_OP_RESERVED = 0,
+  VIRTIO_PCIDEV_OP_CFG_READ,
+  VIRTIO_PCIDEV_OP_CFG_WRITE,
+  VIRTIO_PCIDEV_OP_MMIO_READ,
+  VIRTIO_PCIDEV_OP_MMIO_WRITE,
+  VIRTIO_PCIDEV_OP_MMIO_MEMSET,
+  VIRTIO_PCIDEV_OP_INT,
+  VIRTIO_PCIDEV_OP_MSI,
+  VIRTIO_PCIDEV_OP_PME,
+};
+struct virtio_pcidev_msg {
+  __u8 op;
+  __u8 bar;
+  __u16 reserved;
+  __u32 size;
+  __u64 addr;
+  __u8 data[];
 };
 #endif
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
similarity index 78%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
index bb45c3d..7907ed4 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_scmi.h
@@ -16,14 +16,12 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
-};
+#ifndef _UAPI_LINUX_VIRTIO_SCMI_H
+#define _UAPI_LINUX_VIRTIO_SCMI_H
+#include <linux/virtio_types.h>
+#define VIRTIO_SCMI_F_P2A_CHANNELS 0
+#define VIRTIO_SCMI_F_SHARED_MEMORY 1
+#define VIRTIO_SCMI_VQ_TX 0
+#define VIRTIO_SCMI_VQ_RX 1
+#define VIRTIO_SCMI_VQ_MAX_CNT 2
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_snd.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_snd.h
new file mode 100644
index 0000000..60dfa62
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_snd.h
@@ -0,0 +1,224 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 VIRTIO_SND_IF_H
+#define VIRTIO_SND_IF_H
+#include <linux/virtio_types.h>
+struct virtio_snd_config {
+  __le32 jacks;
+  __le32 streams;
+  __le32 chmaps;
+};
+enum {
+  VIRTIO_SND_VQ_CONTROL = 0,
+  VIRTIO_SND_VQ_EVENT,
+  VIRTIO_SND_VQ_TX,
+  VIRTIO_SND_VQ_RX,
+  VIRTIO_SND_VQ_MAX
+};
+enum {
+  VIRTIO_SND_D_OUTPUT = 0,
+  VIRTIO_SND_D_INPUT
+};
+enum {
+  VIRTIO_SND_R_JACK_INFO = 1,
+  VIRTIO_SND_R_JACK_REMAP,
+  VIRTIO_SND_R_PCM_INFO = 0x0100,
+  VIRTIO_SND_R_PCM_SET_PARAMS,
+  VIRTIO_SND_R_PCM_PREPARE,
+  VIRTIO_SND_R_PCM_RELEASE,
+  VIRTIO_SND_R_PCM_START,
+  VIRTIO_SND_R_PCM_STOP,
+  VIRTIO_SND_R_CHMAP_INFO = 0x0200,
+  VIRTIO_SND_EVT_JACK_CONNECTED = 0x1000,
+  VIRTIO_SND_EVT_JACK_DISCONNECTED,
+  VIRTIO_SND_EVT_PCM_PERIOD_ELAPSED = 0x1100,
+  VIRTIO_SND_EVT_PCM_XRUN,
+  VIRTIO_SND_S_OK = 0x8000,
+  VIRTIO_SND_S_BAD_MSG,
+  VIRTIO_SND_S_NOT_SUPP,
+  VIRTIO_SND_S_IO_ERR
+};
+struct virtio_snd_hdr {
+  __le32 code;
+};
+struct virtio_snd_event {
+  struct virtio_snd_hdr hdr;
+  __le32 data;
+};
+struct virtio_snd_query_info {
+  struct virtio_snd_hdr hdr;
+  __le32 start_id;
+  __le32 count;
+  __le32 size;
+};
+struct virtio_snd_info {
+  __le32 hda_fn_nid;
+};
+struct virtio_snd_jack_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 jack_id;
+};
+enum {
+  VIRTIO_SND_JACK_F_REMAP = 0
+};
+struct virtio_snd_jack_info {
+  struct virtio_snd_info hdr;
+  __le32 features;
+  __le32 hda_reg_defconf;
+  __le32 hda_reg_caps;
+  __u8 connected;
+  __u8 padding[7];
+};
+struct virtio_snd_jack_remap {
+  struct virtio_snd_jack_hdr hdr;
+  __le32 association;
+  __le32 sequence;
+};
+struct virtio_snd_pcm_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 stream_id;
+};
+enum {
+  VIRTIO_SND_PCM_F_SHMEM_HOST = 0,
+  VIRTIO_SND_PCM_F_SHMEM_GUEST,
+  VIRTIO_SND_PCM_F_MSG_POLLING,
+  VIRTIO_SND_PCM_F_EVT_SHMEM_PERIODS,
+  VIRTIO_SND_PCM_F_EVT_XRUNS
+};
+enum {
+  VIRTIO_SND_PCM_FMT_IMA_ADPCM = 0,
+  VIRTIO_SND_PCM_FMT_MU_LAW,
+  VIRTIO_SND_PCM_FMT_A_LAW,
+  VIRTIO_SND_PCM_FMT_S8,
+  VIRTIO_SND_PCM_FMT_U8,
+  VIRTIO_SND_PCM_FMT_S16,
+  VIRTIO_SND_PCM_FMT_U16,
+  VIRTIO_SND_PCM_FMT_S18_3,
+  VIRTIO_SND_PCM_FMT_U18_3,
+  VIRTIO_SND_PCM_FMT_S20_3,
+  VIRTIO_SND_PCM_FMT_U20_3,
+  VIRTIO_SND_PCM_FMT_S24_3,
+  VIRTIO_SND_PCM_FMT_U24_3,
+  VIRTIO_SND_PCM_FMT_S20,
+  VIRTIO_SND_PCM_FMT_U20,
+  VIRTIO_SND_PCM_FMT_S24,
+  VIRTIO_SND_PCM_FMT_U24,
+  VIRTIO_SND_PCM_FMT_S32,
+  VIRTIO_SND_PCM_FMT_U32,
+  VIRTIO_SND_PCM_FMT_FLOAT,
+  VIRTIO_SND_PCM_FMT_FLOAT64,
+  VIRTIO_SND_PCM_FMT_DSD_U8,
+  VIRTIO_SND_PCM_FMT_DSD_U16,
+  VIRTIO_SND_PCM_FMT_DSD_U32,
+  VIRTIO_SND_PCM_FMT_IEC958_SUBFRAME
+};
+enum {
+  VIRTIO_SND_PCM_RATE_5512 = 0,
+  VIRTIO_SND_PCM_RATE_8000,
+  VIRTIO_SND_PCM_RATE_11025,
+  VIRTIO_SND_PCM_RATE_16000,
+  VIRTIO_SND_PCM_RATE_22050,
+  VIRTIO_SND_PCM_RATE_32000,
+  VIRTIO_SND_PCM_RATE_44100,
+  VIRTIO_SND_PCM_RATE_48000,
+  VIRTIO_SND_PCM_RATE_64000,
+  VIRTIO_SND_PCM_RATE_88200,
+  VIRTIO_SND_PCM_RATE_96000,
+  VIRTIO_SND_PCM_RATE_176400,
+  VIRTIO_SND_PCM_RATE_192000,
+  VIRTIO_SND_PCM_RATE_384000
+};
+struct virtio_snd_pcm_info {
+  struct virtio_snd_info hdr;
+  __le32 features;
+  __le64 formats;
+  __le64 rates;
+  __u8 direction;
+  __u8 channels_min;
+  __u8 channels_max;
+  __u8 padding[5];
+};
+struct virtio_snd_pcm_set_params {
+  struct virtio_snd_pcm_hdr hdr;
+  __le32 buffer_bytes;
+  __le32 period_bytes;
+  __le32 features;
+  __u8 channels;
+  __u8 format;
+  __u8 rate;
+  __u8 padding;
+};
+struct virtio_snd_pcm_xfer {
+  __le32 stream_id;
+};
+struct virtio_snd_pcm_status {
+  __le32 status;
+  __le32 latency_bytes;
+};
+struct virtio_snd_chmap_hdr {
+  struct virtio_snd_hdr hdr;
+  __le32 chmap_id;
+};
+enum {
+  VIRTIO_SND_CHMAP_NONE = 0,
+  VIRTIO_SND_CHMAP_NA,
+  VIRTIO_SND_CHMAP_MONO,
+  VIRTIO_SND_CHMAP_FL,
+  VIRTIO_SND_CHMAP_FR,
+  VIRTIO_SND_CHMAP_RL,
+  VIRTIO_SND_CHMAP_RR,
+  VIRTIO_SND_CHMAP_FC,
+  VIRTIO_SND_CHMAP_LFE,
+  VIRTIO_SND_CHMAP_SL,
+  VIRTIO_SND_CHMAP_SR,
+  VIRTIO_SND_CHMAP_RC,
+  VIRTIO_SND_CHMAP_FLC,
+  VIRTIO_SND_CHMAP_FRC,
+  VIRTIO_SND_CHMAP_RLC,
+  VIRTIO_SND_CHMAP_RRC,
+  VIRTIO_SND_CHMAP_FLW,
+  VIRTIO_SND_CHMAP_FRW,
+  VIRTIO_SND_CHMAP_FLH,
+  VIRTIO_SND_CHMAP_FCH,
+  VIRTIO_SND_CHMAP_FRH,
+  VIRTIO_SND_CHMAP_TC,
+  VIRTIO_SND_CHMAP_TFL,
+  VIRTIO_SND_CHMAP_TFR,
+  VIRTIO_SND_CHMAP_TFC,
+  VIRTIO_SND_CHMAP_TRL,
+  VIRTIO_SND_CHMAP_TRR,
+  VIRTIO_SND_CHMAP_TRC,
+  VIRTIO_SND_CHMAP_TFLC,
+  VIRTIO_SND_CHMAP_TFRC,
+  VIRTIO_SND_CHMAP_TSL,
+  VIRTIO_SND_CHMAP_TSR,
+  VIRTIO_SND_CHMAP_LLFE,
+  VIRTIO_SND_CHMAP_RLFE,
+  VIRTIO_SND_CHMAP_BC,
+  VIRTIO_SND_CHMAP_BLC,
+  VIRTIO_SND_CHMAP_BRC
+};
+#define VIRTIO_SND_CHMAP_MAX_SIZE 18
+struct virtio_snd_chmap_info {
+  struct virtio_snd_info hdr;
+  __u8 direction;
+  __u8 channels;
+  __u8 positions[VIRTIO_SND_CHMAP_MAX_SIZE];
+};
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
index 7a9e259..73b5d49 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/virtio_vsock.h
@@ -21,6 +21,7 @@
 #include <linux/types.h>
 #include <linux/virtio_ids.h>
 #include <linux/virtio_config.h>
+#define VIRTIO_VSOCK_F_SEQPACKET 1
 struct virtio_vsock_config {
   __le64 guest_cid;
 } __attribute__((packed));
@@ -44,6 +45,7 @@
 } __attribute__((packed));
 enum virtio_vsock_type {
   VIRTIO_VSOCK_TYPE_STREAM = 1,
+  VIRTIO_VSOCK_TYPE_SEQPACKET = 2,
 };
 enum virtio_vsock_op {
   VIRTIO_VSOCK_OP_INVALID = 0,
@@ -59,4 +61,8 @@
   VIRTIO_VSOCK_SHUTDOWN_RCV = 1,
   VIRTIO_VSOCK_SHUTDOWN_SEND = 2,
 };
+enum virtio_vsock_rw {
+  VIRTIO_VSOCK_SEQ_EOM = 1,
+  VIRTIO_VSOCK_SEQ_EOR = 2,
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vm_sockets.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
index 50e8456..58f720d 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/vm_sockets.h
@@ -25,8 +25,14 @@
 #define SO_VM_SOCKETS_BUFFER_MAX_SIZE 2
 #define SO_VM_SOCKETS_PEER_HOST_VM_ID 3
 #define SO_VM_SOCKETS_TRUSTED 5
-#define SO_VM_SOCKETS_CONNECT_TIMEOUT 6
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD 6
 #define SO_VM_SOCKETS_NONBLOCK_TXRX 7
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW 8
+#if __BITS_PER_LONG == 64 || defined(__x86_64__) && defined(__ILP32__)
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD
+#else
+#define SO_VM_SOCKETS_CONNECT_TIMEOUT (sizeof(time_t) == sizeof(__kernel_long_t) ? SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD : SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW)
+#endif
 #define VMADDR_CID_ANY - 1U
 #define VMADDR_PORT_ANY - 1U
 #define VMADDR_CID_HYPERVISOR 0
diff --git a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/wwan.h
similarity index 81%
copy from mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
copy to mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/wwan.h
index bb45c3d..9f68713 100644
--- a/mainline/runtime/sdk/android/arm/include/bionic/libc/kernel/uapi/linux/raw.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/wwan.h
@@ -16,14 +16,12 @@
  ***
  ****************************************************************************
  ****************************************************************************/
-#ifndef __LINUX_RAW_H
-#define __LINUX_RAW_H
-#include <linux/types.h>
-#define RAW_SETBIND _IO(0xac, 0)
-#define RAW_GETBIND _IO(0xac, 1)
-struct raw_config_request {
-  int raw_minor;
-  __u64 block_major;
-  __u64 block_minor;
+#ifndef _UAPI_WWAN_H_
+#define _UAPI_WWAN_H_
+enum {
+  IFLA_WWAN_UNSPEC,
+  IFLA_WWAN_LINK_ID,
+  __IFLA_WWAN_MAX
 };
+#define IFLA_WWAN_MAX (__IFLA_WWAN_MAX - 1)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/xfrm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/xfrm.h
index b0e930c..f4df95f 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/xfrm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/linux/xfrm.h
@@ -182,6 +182,10 @@
 #define XFRM_MSG_GETSPDINFO XFRM_MSG_GETSPDINFO
   XFRM_MSG_MAPPING,
 #define XFRM_MSG_MAPPING XFRM_MSG_MAPPING
+  XFRM_MSG_SETDEFAULT,
+#define XFRM_MSG_SETDEFAULT XFRM_MSG_SETDEFAULT
+  XFRM_MSG_GETDEFAULT,
+#define XFRM_MSG_GETDEFAULT XFRM_MSG_GETDEFAULT
   __XFRM_MSG_MAX
 };
 #define XFRM_MSG_MAX (__XFRM_MSG_MAX - 1)
@@ -261,6 +265,7 @@
   XFRMA_SET_MARK,
   XFRMA_SET_MARK_MASK,
   XFRMA_IF_ID,
+  XFRMA_MTIMER_THRESH,
   __XFRMA_MAX
 #define XFRMA_OUTPUT_MARK XFRMA_SET_MARK
 #define XFRMA_MAX (__XFRMA_MAX - 1)
@@ -430,6 +435,14 @@
 };
 #define XFRM_OFFLOAD_IPV6 1
 #define XFRM_OFFLOAD_INBOUND 2
+struct xfrm_userpolicy_default {
+#define XFRM_USERPOLICY_UNSPEC 0
+#define XFRM_USERPOLICY_BLOCK 1
+#define XFRM_USERPOLICY_ACCEPT 2
+  __u8 in;
+  __u8 fwd;
+  __u8 out;
+};
 #define XFRMGRP_ACQUIRE 1
 #define XFRMGRP_EXPIRE 2
 #define XFRMGRP_SA 4
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/misc/habanalabs.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/misc/habanalabs.h
index b009023..6e3439a 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/misc/habanalabs.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/misc/habanalabs.h
@@ -208,11 +208,43 @@
   GAUDI_ENGINE_ID_NIC_9,
   GAUDI_ENGINE_ID_SIZE
 };
+enum hl_goya_pll_index {
+  HL_GOYA_CPU_PLL = 0,
+  HL_GOYA_IC_PLL,
+  HL_GOYA_MC_PLL,
+  HL_GOYA_MME_PLL,
+  HL_GOYA_PCI_PLL,
+  HL_GOYA_EMMC_PLL,
+  HL_GOYA_TPC_PLL,
+  HL_GOYA_PLL_MAX
+};
+enum hl_gaudi_pll_index {
+  HL_GAUDI_CPU_PLL = 0,
+  HL_GAUDI_PCI_PLL,
+  HL_GAUDI_SRAM_PLL,
+  HL_GAUDI_HBM_PLL,
+  HL_GAUDI_NIC_PLL,
+  HL_GAUDI_DMA_PLL,
+  HL_GAUDI_MESH_PLL,
+  HL_GAUDI_MME_PLL,
+  HL_GAUDI_TPC_PLL,
+  HL_GAUDI_IF_PLL,
+  HL_GAUDI_PLL_MAX
+};
 enum hl_device_status {
   HL_DEVICE_STATUS_OPERATIONAL,
   HL_DEVICE_STATUS_IN_RESET,
   HL_DEVICE_STATUS_MALFUNCTION,
-  HL_DEVICE_STATUS_NEEDS_RESET
+  HL_DEVICE_STATUS_NEEDS_RESET,
+  HL_DEVICE_STATUS_IN_DEVICE_CREATION,
+  HL_DEVICE_STATUS_LAST = HL_DEVICE_STATUS_IN_DEVICE_CREATION
+};
+enum hl_server_type {
+  HL_SERVER_TYPE_UNKNOWN = 0,
+  HL_SERVER_GAUDI_HLS1 = 1,
+  HL_SERVER_GAUDI_HLS1H = 2,
+  HL_SERVER_GAUDI_TYPE1 = 3,
+  HL_SERVER_GAUDI_TYPE2 = 4
 };
 #define HL_INFO_HW_IP_INFO 0
 #define HL_INFO_HW_EVENTS 1
@@ -230,6 +262,13 @@
 #define HL_INFO_SYNC_MANAGER 14
 #define HL_INFO_TOTAL_ENERGY 15
 #define HL_INFO_PLL_FREQUENCY 16
+#define HL_INFO_POWER 17
+#define HL_INFO_OPEN_STATS 18
+#define HL_INFO_DRAM_REPLACED_ROWS 21
+#define HL_INFO_DRAM_PENDING_ROWS 22
+#define HL_INFO_LAST_ERR_OPEN_DEV_TIME 23
+#define HL_INFO_CS_TIMEOUT_EVENT 24
+#define HL_INFO_RAZWI_EVENT 25
 #define HL_INFO_VERSION_MAX_LEN 128
 #define HL_INFO_CARD_NAME_MAX_LEN 16
 struct hl_info_hw_ip_info {
@@ -242,7 +281,7 @@
   __u32 module_id;
   __u32 reserved;
   __u16 first_available_interrupt_id;
-  __u16 reserved2;
+  __u16 server_type;
   __u32 cpld_version;
   __u32 psoc_pci_pll_nr;
   __u32 psoc_pci_pll_nf;
@@ -253,7 +292,7 @@
   __u8 pad[2];
   __u8 cpucp_version[HL_INFO_VERSION_MAX_LEN];
   __u8 card_name[HL_INFO_CARD_NAME_MAX_LEN];
-  __u64 reserved3;
+  __u64 reserved2;
   __u64 dram_page_size;
 };
 struct hl_info_dram_usage {
@@ -291,10 +330,18 @@
   __u64 tx_throughput;
   __u64 replay_cnt;
 };
-#define HL_CLK_THROTTLE_POWER 0x1
-#define HL_CLK_THROTTLE_THERMAL 0x2
+enum hl_clk_throttling_type {
+  HL_CLK_THROTTLE_TYPE_POWER,
+  HL_CLK_THROTTLE_TYPE_THERMAL,
+  HL_CLK_THROTTLE_TYPE_MAX
+};
+#define HL_CLK_THROTTLE_POWER (1 << HL_CLK_THROTTLE_TYPE_POWER)
+#define HL_CLK_THROTTLE_THERMAL (1 << HL_CLK_THROTTLE_TYPE_THERMAL)
 struct hl_info_clk_throttle {
   __u32 clk_throttling_reason;
+  __u32 pad;
+  __u64 clk_throttling_timestamp_us[HL_CLK_THROTTLE_TYPE_MAX];
+  __u64 clk_throttling_duration_ns[HL_CLK_THROTTLE_TYPE_MAX];
 };
 struct hl_info_energy {
   __u64 total_energy_consumption;
@@ -303,6 +350,13 @@
 struct hl_pll_frequency_info {
   __u16 output[HL_PLL_NUM_OUTPUTS];
 };
+struct hl_open_stats_info {
+  __u64 open_counter;
+  __u64 last_open_period_ms;
+};
+struct hl_power_info {
+  __u64 power;
+};
 struct hl_info_sync_manager {
   __u32 first_available_sync_object;
   __u32 first_available_monitor;
@@ -323,6 +377,24 @@
   __u64 total_validation_drop_cnt;
   __u64 ctx_validation_drop_cnt;
 };
+struct hl_info_last_err_open_dev_time {
+  __s64 timestamp;
+};
+struct hl_info_cs_timeout_event {
+  __s64 timestamp;
+  __u64 seq;
+};
+#define HL_RAZWI_PAGE_FAULT 0
+#define HL_RAZWI_MMU_ACCESS_ERROR 1
+struct hl_info_razwi_event {
+  __s64 timestamp;
+  __u64 addr;
+  __u16 engine_id_1;
+  __u16 engine_id_2;
+  __u8 no_engine_id;
+  __u8 error_type;
+  __u8 pad[2];
+};
 enum gaudi_dcores {
   HL_GAUDI_WS_DCORE,
   HL_GAUDI_WN_DCORE,
@@ -346,6 +418,7 @@
 #define HL_CB_OP_INFO 2
 #define HL_MAX_CB_SIZE (0x200000 - 32)
 #define HL_CB_FLAGS_MAP 0x1
+#define HL_CB_FLAGS_GET_DEVICE_VA 0x2
 struct hl_cb_in {
   __u64 cb_handle;
   __u32 op;
@@ -356,9 +429,12 @@
 struct hl_cb_out {
   union {
     __u64 cb_handle;
-    struct {
-      __u32 usage_cnt;
-      __u32 pad;
+    union {
+      struct {
+        __u32 usage_cnt;
+        __u32 pad;
+      };
+      __u64 device_va;
     };
   };
 };
@@ -371,11 +447,13 @@
   union {
     __u64 cb_handle;
     __u64 signal_seq_arr;
+    __u64 encaps_signal_seq;
   };
   __u32 queue_index;
   union {
     __u32 cb_size;
     __u32 num_signal_seq_arr;
+    __u32 encaps_signal_offset;
   };
   __u32 cs_chunk_flags;
   __u32 collective_engine_id;
@@ -389,47 +467,89 @@
 #define HL_CS_FLAGS_STAGED_SUBMISSION 0x40
 #define HL_CS_FLAGS_STAGED_SUBMISSION_FIRST 0x80
 #define HL_CS_FLAGS_STAGED_SUBMISSION_LAST 0x100
+#define HL_CS_FLAGS_CUSTOM_TIMEOUT 0x200
+#define HL_CS_FLAGS_SKIP_RESET_ON_TIMEOUT 0x400
+#define HL_CS_FLAGS_ENCAP_SIGNALS 0x800
+#define HL_CS_FLAGS_RESERVE_SIGNALS_ONLY 0x1000
+#define HL_CS_FLAGS_UNRESERVE_SIGNALS_ONLY 0x2000
 #define HL_CS_STATUS_SUCCESS 0
 #define HL_MAX_JOBS_PER_CS 512
 struct hl_cs_in {
   __u64 chunks_restore;
   __u64 chunks_execute;
   union {
-    __u64 chunks_store;
     __u64 seq;
+    __u32 encaps_sig_handle_id;
+    struct {
+      __u32 encaps_signals_count;
+      __u32 encaps_signals_q_idx;
+    };
   };
   __u32 num_chunks_restore;
   __u32 num_chunks_execute;
-  __u32 num_chunks_store;
+  __u32 timeout;
   __u32 cs_flags;
   __u32 ctx_id;
 };
 struct hl_cs_out {
-  __u64 seq;
+  union {
+    __u64 seq;
+    struct {
+      __u32 handle_id;
+      __u32 count;
+    };
+  };
   __u32 status;
-  __u32 pad;
+  __u32 sob_base_addr_offset;
+  __u16 sob_count_before_submission;
+  __u16 pad[3];
 };
 union hl_cs_args {
   struct hl_cs_in in;
   struct hl_cs_out out;
 };
+#define HL_WAIT_CS_FLAGS_INTERRUPT 0x2
+#define HL_WAIT_CS_FLAGS_INTERRUPT_MASK 0xFFF00000
+#define HL_WAIT_CS_FLAGS_MULTI_CS 0x4
+#define HL_WAIT_CS_FLAGS_INTERRUPT_KERNEL_CQ 0x10
+#define HL_WAIT_MULTI_CS_LIST_MAX_LEN 32
 struct hl_wait_cs_in {
-  __u64 seq;
-  __u64 timeout_us;
+  union {
+    struct {
+      __u64 seq;
+      __u64 timeout_us;
+    };
+    struct {
+      union {
+        __u64 addr;
+        __u64 cq_counters_handle;
+      };
+      __u64 target;
+    };
+  };
   __u32 ctx_id;
-  __u32 pad;
+  __u32 flags;
+  union {
+    struct {
+      __u8 seq_arr_len;
+      __u8 pad[7];
+    };
+    __u64 interrupt_timeout_us;
+  };
+  __u64 cq_counters_offset;
 };
 #define HL_WAIT_CS_STATUS_COMPLETED 0
 #define HL_WAIT_CS_STATUS_BUSY 1
 #define HL_WAIT_CS_STATUS_TIMEDOUT 2
 #define HL_WAIT_CS_STATUS_ABORTED 3
-#define HL_WAIT_CS_STATUS_INTERRUPTED 4
 #define HL_WAIT_CS_STATUS_FLAG_GONE 0x1
 #define HL_WAIT_CS_STATUS_FLAG_TIMESTAMP_VLD 0x2
 struct hl_wait_cs_out {
   __u32 status;
   __u32 flags;
   __s64 timestamp_nsec;
+  __u32 cs_completion_map;
+  __u32 pad;
 };
 union hl_wait_cs_args {
   struct hl_wait_cs_in in;
@@ -440,9 +560,11 @@
 #define HL_MEM_OP_MAP 2
 #define HL_MEM_OP_UNMAP 3
 #define HL_MEM_OP_MAP_BLOCK 4
+#define HL_MEM_OP_EXPORT_DMABUF_FD 5
 #define HL_MEM_CONTIGUOUS 0x1
 #define HL_MEM_SHARED 0x2
 #define HL_MEM_USERPTR 0x4
+#define HL_MEM_FORCE_HINT 0x8
 struct hl_mem_in {
   union {
     struct {
@@ -466,6 +588,10 @@
     struct {
       __u64 device_virt_addr;
     } unmap;
+    struct {
+      __u64 handle;
+      __u64 mem_size;
+    } export_dmabuf_fd;
   };
   __u32 op;
   __u32 flags;
@@ -481,6 +607,7 @@
       __u32 block_size;
       __u32 pad;
     };
+    __s32 fd;
   };
 };
 union hl_mem_args {
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
index 49d9f6a..87757a9 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/misc/uacce/hisi_qm.h
@@ -25,5 +25,6 @@
 };
 #define HISI_QM_API_VER_BASE "hisi_qm_v1"
 #define HISI_QM_API_VER2_BASE "hisi_qm_v2"
+#define HISI_QM_API_VER3_BASE "hisi_qm_v3"
 #define UACCE_CMD_QM_SET_QP_CTX _IOWR('H', 10, struct hisi_qp_ctx)
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
index 680ac1e..50ae565 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/mtd/mtd-abi.h
@@ -121,6 +121,7 @@
 #define MEMREADOOB64 _IOWR('M', 22, struct mtd_oob_buf64)
 #define MEMISLOCKED _IOR('M', 23, struct erase_info_user)
 #define MEMWRITE _IOWR('M', 24, struct mtd_write_req)
+#define OTPERASE _IOW('M', 25, struct otp_info)
 struct nand_oobinfo {
   __u32 useecc;
   __u32 eccbytes;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
index 3e45dc3..62ba685 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/bnxt_re-abi.h
@@ -24,7 +24,13 @@
 #define BNXT_RE_CHIP_ID0_CHIP_REV_SFT 0x10
 #define BNXT_RE_CHIP_ID0_CHIP_MET_SFT 0x18
 enum {
-  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL
+  BNXT_RE_UCNTX_CMASK_HAVE_CCTX = 0x1ULL,
+  BNXT_RE_UCNTX_CMASK_HAVE_MODE = 0x02ULL,
+};
+enum bnxt_re_wqe_mode {
+  BNXT_QPLIB_WQE_MODE_STATIC = 0x00,
+  BNXT_QPLIB_WQE_MODE_VARIABLE = 0x01,
+  BNXT_QPLIB_WQE_MODE_INVALID = 0x02,
 };
 struct bnxt_re_uctx_resp {
   __u32 dev_id;
@@ -36,6 +42,8 @@
   __aligned_u64 comp_mask;
   __u32 chip_id0;
   __u32 chip_id1;
+  __u32 mode;
+  __u32 rsvd1;
 };
 struct bnxt_re_pd_resp {
   __u32 pdid;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/efa-abi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
index f20e3e0..4b6842b 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/efa-abi.h
@@ -47,11 +47,18 @@
   __u16 pdn;
   __u8 reserved_30[2];
 };
+enum {
+  EFA_CREATE_CQ_WITH_COMPLETION_CHANNEL = 1 << 0,
+};
 struct efa_ibv_create_cq {
   __u32 comp_mask;
   __u32 cq_entry_size;
   __u16 num_sub_cqs;
-  __u8 reserved_50[6];
+  __u8 flags;
+  __u8 reserved_58[5];
+};
+enum {
+  EFA_CREATE_CQ_RESP_DB_OFF = 1 << 0,
 };
 struct efa_ibv_create_cq_resp {
   __u32 comp_mask;
@@ -59,7 +66,9 @@
   __aligned_u64 q_mmap_key;
   __aligned_u64 q_mmap_size;
   __u16 cq_idx;
-  __u8 reserved_d0[6];
+  __u8 reserved_d0[2];
+  __u32 db_off;
+  __aligned_u64 db_mmap_key;
 };
 enum {
   EFA_QP_DRIVER_TYPE_SRD = 0,
@@ -92,6 +101,7 @@
 enum {
   EFA_QUERY_DEVICE_CAPS_RDMA_READ = 1 << 0,
   EFA_QUERY_DEVICE_CAPS_RNR_RETRY = 1 << 1,
+  EFA_QUERY_DEVICE_CAPS_CQ_NOTIFICATIONS = 1 << 2,
 };
 struct efa_ibv_ex_query_device_resp {
   __u32 comp_mask;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/hns-abi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
index ad3e460..9c8d028 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/hns-abi.h
@@ -54,13 +54,17 @@
   HNS_ROCE_QP_CAP_RQ_RECORD_DB = 1 << 0,
   HNS_ROCE_QP_CAP_SQ_RECORD_DB = 1 << 1,
   HNS_ROCE_QP_CAP_OWNER_DB = 1 << 2,
+  HNS_ROCE_QP_CAP_DIRECT_WQE = 1 << 5,
 };
 struct hns_roce_ib_create_qp_resp {
   __aligned_u64 cap_flags;
+  __aligned_u64 dwqe_mmap_key;
 };
 struct hns_roce_ib_alloc_ucontext_resp {
   __u32 qp_tab_size;
   __u32 cqe_size;
+  __u32 srq_tab_size;
+  __u32 reserved;
 };
 struct hns_roce_ib_alloc_pd_resp {
   __u32 pdn;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h
deleted file mode 100644
index 60a17f5..0000000
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/i40iw-abi.h
+++ /dev/null
@@ -1,75 +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 I40IW_ABI_H
-#define I40IW_ABI_H
-#include <linux/types.h>
-#define I40IW_ABI_VER 5
-struct i40iw_alloc_ucontext_req {
-  __u32 reserved32;
-  __u8 userspace_ver;
-  __u8 reserved8[3];
-};
-struct i40iw_alloc_ucontext_resp {
-  __u32 max_pds;
-  __u32 max_qps;
-  __u32 wq_size;
-  __u8 kernel_ver;
-  __u8 reserved[3];
-};
-struct i40iw_alloc_pd_resp {
-  __u32 pd_id;
-  __u8 reserved[4];
-};
-struct i40iw_create_cq_req {
-  __aligned_u64 user_cq_buffer;
-  __aligned_u64 user_shadow_area;
-};
-struct i40iw_create_qp_req {
-  __aligned_u64 user_wqe_buffers;
-  __aligned_u64 user_compl_ctx;
-  __aligned_u64 user_sq_phb;
-  __aligned_u64 user_rq_phb;
-};
-enum i40iw_memreg_type {
-  IW_MEMREG_TYPE_MEM = 0x0000,
-  IW_MEMREG_TYPE_QP = 0x0001,
-  IW_MEMREG_TYPE_CQ = 0x0002,
-};
-struct i40iw_mem_reg_req {
-  __u16 reg_type;
-  __u16 cq_pages;
-  __u16 rq_pages;
-  __u16 sq_pages;
-};
-struct i40iw_create_cq_resp {
-  __u32 cq_id;
-  __u32 cq_size;
-  __u32 mmap_db_index;
-  __u32 reserved;
-};
-struct i40iw_create_qp_resp {
-  __u32 qp_id;
-  __u32 actual_sq_size;
-  __u32 actual_rq_size;
-  __u32 i40iw_drv_opt;
-  __u16 push_idx;
-  __u8 lsmm;
-  __u8 rsvd2;
-};
-#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
index c443738..3b94907 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/ib_user_ioctl_verbs.h
@@ -181,6 +181,7 @@
   RDMA_DRIVER_OCRDMA,
   RDMA_DRIVER_NES,
   RDMA_DRIVER_I40IW,
+  RDMA_DRIVER_IRDMA = RDMA_DRIVER_I40IW,
   RDMA_DRIVER_VMW_PVRDMA,
   RDMA_DRIVER_QEDR,
   RDMA_DRIVER_HNS,
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
index dadb590..04b9f08 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/ib_user_mad.h
@@ -61,7 +61,7 @@
 };
 struct ib_user_mad {
   struct ib_user_mad_hdr hdr;
-  __aligned_u64 data[0];
+  __aligned_u64 data[];
 };
 typedef unsigned long __attribute__((aligned(4))) packed_ulong;
 #define IB_USER_MAD_LONGS_PER_METHOD_MASK (128 / (8 * sizeof(long)))
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h
new file mode 100644
index 0000000..b6840cf
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/irdma-abi.h
@@ -0,0 +1,103 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 IRDMA_ABI_H
+#define IRDMA_ABI_H
+#include <linux/types.h>
+#define IRDMA_ABI_VER 5
+enum irdma_memreg_type {
+  IRDMA_MEMREG_TYPE_MEM = 0,
+  IRDMA_MEMREG_TYPE_QP = 1,
+  IRDMA_MEMREG_TYPE_CQ = 2,
+};
+struct irdma_alloc_ucontext_req {
+  __u32 rsvd32;
+  __u8 userspace_ver;
+  __u8 rsvd8[3];
+};
+struct irdma_alloc_ucontext_resp {
+  __u32 max_pds;
+  __u32 max_qps;
+  __u32 wq_size;
+  __u8 kernel_ver;
+  __u8 rsvd[3];
+  __aligned_u64 feature_flags;
+  __aligned_u64 db_mmap_key;
+  __u32 max_hw_wq_frags;
+  __u32 max_hw_read_sges;
+  __u32 max_hw_inline;
+  __u32 max_hw_rq_quanta;
+  __u32 max_hw_wq_quanta;
+  __u32 min_hw_cq_size;
+  __u32 max_hw_cq_size;
+  __u16 max_hw_sq_chunk;
+  __u8 hw_rev;
+  __u8 rsvd2;
+};
+struct irdma_alloc_pd_resp {
+  __u32 pd_id;
+  __u8 rsvd[4];
+};
+struct irdma_resize_cq_req {
+  __aligned_u64 user_cq_buffer;
+};
+struct irdma_create_cq_req {
+  __aligned_u64 user_cq_buf;
+  __aligned_u64 user_shadow_area;
+};
+struct irdma_create_qp_req {
+  __aligned_u64 user_wqe_bufs;
+  __aligned_u64 user_compl_ctx;
+};
+struct irdma_mem_reg_req {
+  __u16 reg_type;
+  __u16 cq_pages;
+  __u16 rq_pages;
+  __u16 sq_pages;
+};
+struct irdma_modify_qp_req {
+  __u8 sq_flush;
+  __u8 rq_flush;
+  __u8 rsvd[6];
+};
+struct irdma_create_cq_resp {
+  __u32 cq_id;
+  __u32 cq_size;
+};
+struct irdma_create_qp_resp {
+  __u32 qp_id;
+  __u32 actual_sq_size;
+  __u32 actual_rq_size;
+  __u32 irdma_drv_opt;
+  __u16 push_idx;
+  __u8 lsmm;
+  __u8 rsvd;
+  __u32 qp_caps;
+};
+struct irdma_modify_qp_resp {
+  __aligned_u64 push_wqe_mmap_key;
+  __aligned_u64 push_db_mmap_key;
+  __u16 push_offset;
+  __u8 push_valid;
+  __u8 rsvd[5];
+};
+struct irdma_create_ah_resp {
+  __u32 ah_id;
+  __u8 rsvd[4];
+};
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
index 59a9f53..aadb20e 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5-abi.h
@@ -33,6 +33,7 @@
   MLX5_QP_FLAG_ALLOW_SCATTER_CQE = 1 << 8,
   MLX5_QP_FLAG_PACKET_BASED_CREDIT_MODE = 1 << 9,
   MLX5_QP_FLAG_UAR_PAGE_INDEX = 1 << 10,
+  MLX5_QP_FLAG_DCI_STREAM = 1 << 11,
 };
 enum {
   MLX5_SRQ_FLAG_SIGNATURE = 1 << 0,
@@ -67,6 +68,8 @@
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_CORE_CLOCK_OFFSET = 1UL << 0,
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_DUMP_FILL_MKEY = 1UL << 1,
   MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2,
+  MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3,
+  MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4,
 };
 enum mlx5_user_cmds_supp_uhw {
   MLX5_USER_CMDS_SUPP_UHW_QUERY_DEVICE = 1 << 0,
@@ -163,6 +166,10 @@
   __u32 supported_qpts;
   __u32 reserved;
 };
+struct mlx5_ib_dci_streams_caps {
+  __u8 max_log_num_concurent;
+  __u8 max_log_num_errored;
+};
 enum mlx5_ib_query_dev_resp_flags {
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_COMP = 1 << 0,
   MLX5_IB_QUERY_DEV_RESP_FLAGS_CQE_128B_PAD = 1 << 1,
@@ -188,11 +195,13 @@
   struct mlx5_ib_sw_parsing_caps sw_parsing_caps;
   struct mlx5_ib_striding_rq_caps striding_rq_caps;
   __u32 tunnel_offloads_caps;
-  __u32 reserved;
+  struct mlx5_ib_dci_streams_caps dci_streams_caps;
+  __u16 reserved;
 };
 enum mlx5_ib_create_cq_flags {
   MLX5_IB_CREATE_CQ_FLAGS_CQE_128B_PAD = 1 << 0,
   MLX5_IB_CREATE_CQ_FLAGS_UAR_PAGE_INDEX = 1 << 1,
+  MLX5_IB_CREATE_CQ_FLAGS_REAL_TIME_TS = 1 << 2,
 };
 struct mlx5_ib_create_cq {
   __aligned_u64 buf_addr;
@@ -227,6 +236,10 @@
   __u32 srqn;
   __u32 reserved;
 };
+struct mlx5_ib_create_qp_dci_streams {
+  __u8 log_num_concurent;
+  __u8 log_num_errored;
+};
 struct mlx5_ib_create_qp {
   __aligned_u64 buf_addr;
   __aligned_u64 db_addr;
@@ -241,7 +254,8 @@
     __aligned_u64 access_key;
   };
   __u32 ece_options;
-  __u32 reserved;
+  struct mlx5_ib_create_qp_dci_streams dci_streams;
+  __u16 reserved;
 };
 enum mlx5_rx_hash_function_flags {
   MLX5_RX_HASH_FUNC_TOEPLITZ = 1 << 0,
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
index 804a90b..862abcb 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_cmds.h
@@ -23,6 +23,22 @@
 enum mlx5_ib_create_flow_action_attrs {
   MLX5_IB_ATTR_CREATE_FLOW_ACTION_FLAGS = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_dm_methods {
+  MLX5_IB_METHOD_DM_MAP_OP_ADDR = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_METHOD_DM_QUERY,
+};
+enum mlx5_ib_dm_map_op_addr_attrs {
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_REQ_OP,
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_START_OFFSET,
+  MLX5_IB_ATTR_DM_MAP_OP_ADDR_RESP_PAGE_INDEX,
+};
+enum mlx5_ib_query_dm_attrs {
+  MLX5_IB_ATTR_QUERY_DM_REQ_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_QUERY_DM_RESP_START_OFFSET,
+  MLX5_IB_ATTR_QUERY_DM_RESP_PAGE_INDEX,
+  MLX5_IB_ATTR_QUERY_DM_RESP_LENGTH,
+};
 enum mlx5_ib_alloc_dm_attrs {
   MLX5_IB_ATTR_ALLOC_DM_RESP_START_OFFSET = (1U << UVERBS_ID_NS_SHIFT),
   MLX5_IB_ATTR_ALLOC_DM_RESP_PAGE_INDEX,
@@ -118,6 +134,7 @@
   MLX5_IB_ATTR_DEVX_UMEM_REG_LEN,
   MLX5_IB_ATTR_DEVX_UMEM_REG_ACCESS,
   MLX5_IB_ATTR_DEVX_UMEM_REG_OUT_ID,
+  MLX5_IB_ATTR_DEVX_UMEM_REG_PGSZ_BITMAP,
 };
 enum mlx5_ib_devx_umem_dereg_attrs {
   MLX5_IB_ATTR_DEVX_UMEM_DEREG_HANDLE = (1U << UVERBS_ID_NS_SHIFT),
@@ -181,7 +198,7 @@
 enum mlx5_ib_device_query_context_attrs {
   MLX5_IB_ATTR_QUERY_CONTEXT_RESP_UCTX = (1U << UVERBS_ID_NS_SHIFT),
 };
-#define MLX5_IB_DW_MATCH_PARAM 0x90
+#define MLX5_IB_DW_MATCH_PARAM 0xA0
 struct mlx5_ib_match_params {
   __u32 match_params[MLX5_IB_DW_MATCH_PARAM];
 };
@@ -236,4 +253,11 @@
 enum mlx5_ib_pd_methods {
   MLX5_IB_METHOD_PD_QUERY = (1U << UVERBS_ID_NS_SHIFT),
 };
+enum mlx5_ib_device_methods {
+  MLX5_IB_METHOD_QUERY_PORT = (1U << UVERBS_ID_NS_SHIFT),
+};
+enum mlx5_ib_query_port_attrs {
+  MLX5_IB_ATTR_QUERY_PORT_PORT_NUM = (1U << UVERBS_ID_NS_SHIFT),
+  MLX5_IB_ATTR_QUERY_PORT,
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
index bfbfd76..c3c3f89 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/mlx5_user_ioctl_verbs.h
@@ -58,4 +58,26 @@
   MLX5_IB_UAPI_UAR_ALLOC_TYPE_BF = 0x0,
   MLX5_IB_UAPI_UAR_ALLOC_TYPE_NC = 0x1,
 };
+enum mlx5_ib_uapi_query_port_flags {
+  MLX5_IB_UAPI_QUERY_PORT_VPORT = 1 << 0,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_VHCA_ID = 1 << 1,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_RX = 1 << 2,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_STEERING_ICM_TX = 1 << 3,
+  MLX5_IB_UAPI_QUERY_PORT_VPORT_REG_C0 = 1 << 4,
+  MLX5_IB_UAPI_QUERY_PORT_ESW_OWNER_VHCA_ID = 1 << 5,
+};
+struct mlx5_ib_uapi_reg {
+  __u32 value;
+  __u32 mask;
+};
+struct mlx5_ib_uapi_query_port {
+  __aligned_u64 flags;
+  __u16 vport;
+  __u16 vport_vhca_id;
+  __u16 esw_owner_vhca_id;
+  __u16 rsvd0;
+  __aligned_u64 vport_steering_icm_rx;
+  __aligned_u64 vport_steering_icm_tx;
+  struct mlx5_ib_uapi_reg reg_c0;
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
index 48444da..bdb5fdd 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_netlink.h
@@ -207,6 +207,9 @@
   RDMA_NLDEV_CMD_RES_QP_GET_RAW,
   RDMA_NLDEV_CMD_RES_CQ_GET_RAW,
   RDMA_NLDEV_CMD_RES_MR_GET_RAW,
+  RDMA_NLDEV_CMD_RES_CTX_GET,
+  RDMA_NLDEV_CMD_RES_SRQ_GET,
+  RDMA_NLDEV_CMD_STAT_GET_STATUS,
   RDMA_NLDEV_NUM_OPS
 };
 enum rdma_nldev_print_type {
@@ -301,6 +304,16 @@
   RDMA_NLDEV_ATTR_STAT_HWCOUNTER_ENTRY_VALUE,
   RDMA_NLDEV_ATTR_DEV_DIM,
   RDMA_NLDEV_ATTR_RES_RAW,
+  RDMA_NLDEV_ATTR_RES_CTX,
+  RDMA_NLDEV_ATTR_RES_CTX_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SRQ,
+  RDMA_NLDEV_ATTR_RES_SRQ_ENTRY,
+  RDMA_NLDEV_ATTR_RES_SRQN,
+  RDMA_NLDEV_ATTR_MIN_RANGE,
+  RDMA_NLDEV_ATTR_MAX_RANGE,
+  RDMA_NLDEV_SYS_ATTR_COPY_ON_FORK,
+  RDMA_NLDEV_ATTR_STAT_HWCOUNTER_INDEX,
+  RDMA_NLDEV_ATTR_STAT_HWCOUNTER_DYNAMIC,
   RDMA_NLDEV_ATTR_MAX
 };
 enum rdma_nl_counter_mode {
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
index 9618734..7b1f7ee 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_user_cm.h
@@ -88,7 +88,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 reserved;
-  struct sockaddr_storage addr;
+  struct __kernel_sockaddr_storage addr;
 };
 struct rdma_ucm_resolve_ip {
   struct sockaddr_in6 src_addr;
@@ -102,8 +102,8 @@
   __u16 src_size;
   __u16 dst_size;
   __u32 reserved;
-  struct sockaddr_storage src_addr;
-  struct sockaddr_storage dst_addr;
+  struct __kernel_sockaddr_storage src_addr;
+  struct __kernel_sockaddr_storage dst_addr;
 };
 struct rdma_ucm_resolve_route {
   __u32 id;
@@ -137,8 +137,8 @@
   __u16 pkey;
   __u16 src_size;
   __u16 dst_size;
-  struct sockaddr_storage src_addr;
-  struct sockaddr_storage dst_addr;
+  struct __kernel_sockaddr_storage src_addr;
+  struct __kernel_sockaddr_storage dst_addr;
   __u32 ibdev_index;
   __u32 reserved1;
 };
@@ -225,7 +225,7 @@
   __u32 id;
   __u16 addr_size;
   __u16 join_flags;
-  struct sockaddr_storage addr;
+  struct __kernel_sockaddr_storage addr;
 };
 struct rdma_ucm_get_event {
   __aligned_u64 response;
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
index 9fd21d7..cdb00c7 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/rdma/rdma_user_rxe.h
@@ -76,15 +76,19 @@
       __u32 remote_qpn;
       __u32 remote_qkey;
       __u16 pkey_index;
+      __u16 reserved;
+      __u32 ah_num;
+      __u32 pad[4];
+      struct rxe_av av;
     } ud;
     struct {
-      union {
-        struct ib_mr * mr;
-        __aligned_u64 reserved;
-      };
-      __u32 key;
+      __aligned_u64 addr;
+      __aligned_u64 length;
+      __u32 mr_lkey;
+      __u32 mw_rkey;
+      __u32 rkey;
       __u32 access;
-    } reg;
+    } mw;
   } wr;
 };
 struct rxe_sge {
@@ -105,13 +109,12 @@
   __u32 sge_offset;
   __u32 reserved;
   union {
-    __u8 inline_data[0];
-    struct rxe_sge sge[0];
+    __DECLARE_FLEX_ARRAY(__u8, inline_data);
+    __DECLARE_FLEX_ARRAY(struct rxe_sge, sge);
   };
 };
 struct rxe_send_wqe {
   struct rxe_send_wr wr;
-  struct rxe_av av;
   __u32 status;
   __u32 state;
   __aligned_u64 iova;
@@ -129,6 +132,10 @@
   __u32 padding;
   struct rxe_dma_info dma;
 };
+struct rxe_create_ah_resp {
+  __u32 ah_num;
+  __u32 reserved;
+};
 struct rxe_create_cq_resp {
   struct mminfo mi;
 };
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
index f31e764..04ae5b8 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/scsi/fc/fc_els.h
@@ -42,6 +42,7 @@
   ELS_REC = 0x13,
   ELS_SRR = 0x14,
   ELS_FPIN = 0x16,
+  ELS_EDC = 0x17,
   ELS_RDP = 0x18,
   ELS_RDF = 0x19,
   ELS_PRLI = 0x20,
@@ -85,7 +86,7 @@
   ELS_LKA = 0x80,
   ELS_AUTH_ELS = 0x90,
 };
-#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_RDP] = "RDP",[ELS_RDF] = "RDF",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \
+#define FC_ELS_CMDS_INIT {[ELS_LS_RJT] = "LS_RJT",[ELS_LS_ACC] = "LS_ACC",[ELS_PLOGI] = "PLOGI",[ELS_FLOGI] = "FLOGI",[ELS_LOGO] = "LOGO",[ELS_ABTX] = "ABTX",[ELS_RCS] = "RCS",[ELS_RES] = "RES",[ELS_RSS] = "RSS",[ELS_RSI] = "RSI",[ELS_ESTS] = "ESTS",[ELS_ESTC] = "ESTC",[ELS_ADVC] = "ADVC",[ELS_RTV] = "RTV",[ELS_RLS] = "RLS",[ELS_ECHO] = "ECHO",[ELS_TEST] = "TEST",[ELS_RRQ] = "RRQ",[ELS_REC] = "REC",[ELS_SRR] = "SRR",[ELS_FPIN] = "FPIN",[ELS_EDC] = "EDC",[ELS_RDP] = "RDP",[ELS_RDF] = "RDF",[ELS_PRLI] = "PRLI",[ELS_PRLO] = "PRLO",[ELS_SCN] = "SCN",[ELS_TPLS] = "TPLS",[ELS_TPRLO] = "TPRLO",[ELS_LCLM] = "LCLM",[ELS_GAID] = "GAID",[ELS_FACT] = "FACT",[ELS_FDACDT] = "FDACDT",[ELS_NACT] = "NACT",[ELS_NDACT] = "NDACT",[ELS_QOSR] = "QOSR",[ELS_RVCS] = "RVCS",[ELS_PDISC] = "PDISC",[ELS_FDISC] = "FDISC",[ELS_ADISC] = "ADISC",[ELS_RNC] = "RNC",[ELS_FARP_REQ] = "FARP_REQ",[ELS_FARP_REPL] = "FARP_REPL",[ELS_RPS] = "RPS",[ELS_RPL] = "RPL",[ELS_RPBC] = "RPBC",[ELS_FAN] = "FAN",[ELS_RSCN] = "RSCN",[ELS_SCR] = "SCR",[ELS_RNFT] = "RNFT",[ELS_CSR] = "CSR",[ELS_CSU] = "CSU",[ELS_LINIT] = "LINIT",[ELS_LSTS] = "LSTS",[ELS_RNID] = "RNID",[ELS_RLIR] = "RLIR",[ELS_LIRR] = "LIRR",[ELS_SRL] = "SRL",[ELS_SBRP] = "SBRP",[ELS_RPSC] = "RPSC",[ELS_QSA] = "QSA",[ELS_EVFP] = "EVFP",[ELS_LKA] = "LKA",[ELS_AUTH_ELS] = "AUTH_ELS", \
 }
 struct fc_els_ls_acc {
   __u8 la_cmd;
@@ -128,13 +129,15 @@
 };
 enum fc_ls_tlv_dtag {
   ELS_DTAG_LS_REQ_INFO = 0x00000001,
+  ELS_DTAG_LNK_FAULT_CAP = 0x0001000D,
+  ELS_DTAG_CG_SIGNAL_CAP = 0x0001000F,
   ELS_DTAG_LNK_INTEGRITY = 0x00020001,
   ELS_DTAG_DELIVERY = 0x00020002,
   ELS_DTAG_PEER_CONGEST = 0x00020003,
   ELS_DTAG_CONGESTION = 0x00020004,
   ELS_DTAG_FPIN_REGISTER = 0x00030001,
 };
-#define FC_LS_TLV_DTAG_INIT { { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, { ELS_DTAG_CONGESTION, "Congestion Notification" }, { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
+#define FC_LS_TLV_DTAG_INIT { { ELS_DTAG_LS_REQ_INFO, "Link Service Request Information" }, { ELS_DTAG_LNK_FAULT_CAP, "Link Fault Capability" }, { ELS_DTAG_CG_SIGNAL_CAP, "Congestion Signaling Capability" }, { ELS_DTAG_LNK_INTEGRITY, "Link Integrity Notification" }, { ELS_DTAG_DELIVERY, "Delivery Notification Present" }, { ELS_DTAG_PEER_CONGEST, "Peer Congestion Notification" }, { ELS_DTAG_CONGESTION, "Congestion Notification" }, { ELS_DTAG_FPIN_REGISTER, "FPIN Registration" }, \
 }
 struct fc_tlv_desc {
   __be32 desc_tag;
@@ -668,4 +671,48 @@
   struct fc_els_lsri_desc lsri;
   struct fc_tlv_desc desc[0];
 };
+struct fc_diag_lnkflt_desc {
+  __be32 desc_tag;
+  __be32 desc_len;
+  __be32 degrade_activate_threshold;
+  __be32 degrade_deactivate_threshold;
+  __be32 fec_degrade_interval;
+};
+enum fc_edc_cg_signal_cap_types {
+  EDC_CG_SIG_NOTSUPPORTED = 0x00,
+  EDC_CG_SIG_WARN_ONLY = 0x01,
+  EDC_CG_SIG_WARN_ALARM = 0x02,
+};
+#define FC_EDC_CG_SIGNAL_CAP_TYPES_INIT { { EDC_CG_SIG_NOTSUPPORTED, "Signaling Not Supported" }, { EDC_CG_SIG_WARN_ONLY, "Warning Signal" }, { EDC_CG_SIG_WARN_ALARM, "Warning and Alarm Signals" }, \
+}
+enum fc_diag_cg_sig_freq_types {
+  EDC_CG_SIGFREQ_CNT_MIN = 1,
+  EDC_CG_SIGFREQ_CNT_MAX = 999,
+  EDC_CG_SIGFREQ_SEC = 0x1,
+  EDC_CG_SIGFREQ_MSEC = 0x2,
+};
+struct fc_diag_cg_sig_freq {
+  __be16 count;
+  __be16 units;
+};
+struct fc_diag_cg_sig_desc {
+  __be32 desc_tag;
+  __be32 desc_len;
+  __be32 xmt_signal_capability;
+  struct fc_diag_cg_sig_freq xmt_signal_frequency;
+  __be32 rcv_signal_capability;
+  struct fc_diag_cg_sig_freq rcv_signal_frequency;
+};
+struct fc_els_edc {
+  __u8 edc_cmd;
+  __u8 edc_zero[3];
+  __be32 desc_len;
+  struct fc_tlv_desc desc[0];
+};
+struct fc_els_edc_resp {
+  struct fc_els_ls_acc acc_hdr;
+  __be32 desc_list_len;
+  struct fc_els_lsri_desc lsri;
+  struct fc_tlv_desc desc[0];
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/asoc.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/asoc.h
index c962603..eeb12b0 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/asoc.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/asoc.h
@@ -157,8 +157,8 @@
 struct snd_soc_tplg_private {
   __le32 size;
   union {
-    char data[0];
-    struct snd_soc_tplg_vendor_array array[0];
+    __DECLARE_FLEX_ARRAY(char, data);
+    __DECLARE_FLEX_ARRAY(struct snd_soc_tplg_vendor_array, array);
   };
 } __attribute__((packed));
 struct snd_soc_tplg_tlv_dbscale {
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/asound.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/asound.h
index 397cccc..b0e47c1 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/asound.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/asound.h
@@ -32,8 +32,9 @@
 #define SNDRV_PROTOCOL_MINOR(version) (((version) >> 8) & 0xff)
 #define SNDRV_PROTOCOL_MICRO(version) ((version) & 0xff)
 #define SNDRV_PROTOCOL_INCOMPATIBLE(kversion,uversion) (SNDRV_PROTOCOL_MAJOR(kversion) != SNDRV_PROTOCOL_MAJOR(uversion) || (SNDRV_PROTOCOL_MAJOR(kversion) == SNDRV_PROTOCOL_MAJOR(uversion) && SNDRV_PROTOCOL_MINOR(kversion) != SNDRV_PROTOCOL_MINOR(uversion)))
+#define AES_IEC958_STATUS_SIZE 24
 struct snd_aes_iec958 {
-  unsigned char status[24];
+  unsigned char status[AES_IEC958_STATUS_SIZE];
   unsigned char subcode[147];
   unsigned char pad;
   unsigned char dig_subframe[4];
@@ -234,6 +235,8 @@
 #define SNDRV_PCM_INFO_HAS_LINK_ABSOLUTE_ATIME 0x02000000
 #define SNDRV_PCM_INFO_HAS_LINK_ESTIMATED_ATIME 0x04000000
 #define SNDRV_PCM_INFO_HAS_LINK_SYNCHRONIZED_ATIME 0x08000000
+#define SNDRV_PCM_INFO_EXPLICIT_SYNC 0x10000000
+#define SNDRV_PCM_INFO_NO_REWINDS 0x20000000
 #define SNDRV_PCM_INFO_DRAIN_TRIGGER 0x40000000
 #define SNDRV_PCM_INFO_FIFO_IN_FRAMES 0x80000000
 #if __BITS_PER_LONG == 32 && defined(__USE_TIME_BITS64)
@@ -562,7 +565,7 @@
 #define SNDRV_PCM_IOCTL_READN_FRAMES _IOR('A', 0x53, struct snd_xfern)
 #define SNDRV_PCM_IOCTL_LINK _IOW('A', 0x60, int)
 #define SNDRV_PCM_IOCTL_UNLINK _IO('A', 0x61)
-#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 1)
+#define SNDRV_RAWMIDI_VERSION SNDRV_PROTOCOL_VERSION(2, 0, 2)
 enum {
   SNDRV_RAWMIDI_STREAM_OUTPUT = 0,
   SNDRV_RAWMIDI_STREAM_INPUT,
@@ -584,12 +587,32 @@
   unsigned int subdevices_avail;
   unsigned char reserved[64];
 };
+#define SNDRV_RAWMIDI_MODE_FRAMING_MASK (7 << 0)
+#define SNDRV_RAWMIDI_MODE_FRAMING_SHIFT 0
+#define SNDRV_RAWMIDI_MODE_FRAMING_NONE (0 << 0)
+#define SNDRV_RAWMIDI_MODE_FRAMING_TSTAMP (1 << 0)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MASK (7 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_SHIFT 3
+#define SNDRV_RAWMIDI_MODE_CLOCK_NONE (0 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_REALTIME (1 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC (2 << 3)
+#define SNDRV_RAWMIDI_MODE_CLOCK_MONOTONIC_RAW (3 << 3)
+#define SNDRV_RAWMIDI_FRAMING_DATA_LENGTH 16
+struct snd_rawmidi_framing_tstamp {
+  __u8 frame_type;
+  __u8 length;
+  __u8 reserved[2];
+  __u32 tv_nsec;
+  __u64 tv_sec;
+  __u8 data[SNDRV_RAWMIDI_FRAMING_DATA_LENGTH];
+} __packed;
 struct snd_rawmidi_params {
   int stream;
   size_t buffer_size;
   size_t avail_min;
   unsigned int no_active_sensing : 1;
-  unsigned char reserved[16];
+  unsigned int mode;
+  unsigned char reserved[12];
 };
 struct snd_rawmidi_status {
   int stream;
@@ -601,6 +624,7 @@
 };
 #define SNDRV_RAWMIDI_IOCTL_PVERSION _IOR('W', 0x00, int)
 #define SNDRV_RAWMIDI_IOCTL_INFO _IOR('W', 0x01, struct snd_rawmidi_info)
+#define SNDRV_RAWMIDI_IOCTL_USER_PVERSION _IOW('W', 0x02, int)
 #define SNDRV_RAWMIDI_IOCTL_PARAMS _IOWR('W', 0x10, struct snd_rawmidi_params)
 #define SNDRV_RAWMIDI_IOCTL_STATUS _IOWR('W', 0x20, struct snd_rawmidi_status)
 #define SNDRV_RAWMIDI_IOCTL_DROP _IOW('W', 0x30, int)
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/firewire.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/firewire.h
index 67c010b..198a8f4 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/firewire.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/firewire.h
@@ -26,6 +26,7 @@
 #define SNDRV_FIREWIRE_EVENT_DIGI00X_MESSAGE 0x746e736c
 #define SNDRV_FIREWIRE_EVENT_MOTU_NOTIFICATION 0x64776479
 #define SNDRV_FIREWIRE_EVENT_TASCAM_CONTROL 0x7473636d
+#define SNDRV_FIREWIRE_EVENT_MOTU_REGISTER_DSP_CHANGE 0x4d545244
 struct snd_firewire_event_common {
   unsigned int type;
 };
@@ -68,6 +69,11 @@
   unsigned int type;
   struct snd_firewire_tascam_change changes[0];
 };
+struct snd_firewire_event_motu_register_dsp_change {
+  unsigned int type;
+  __u32 count;
+  __u32 changes[];
+};
 union snd_firewire_event {
   struct snd_firewire_event_common common;
   struct snd_firewire_event_lock_status lock_status;
@@ -76,11 +82,15 @@
   struct snd_firewire_event_digi00x_message digi00x_message;
   struct snd_firewire_event_tascam_control tascam_control;
   struct snd_firewire_event_motu_notification motu_notification;
+  struct snd_firewire_event_motu_register_dsp_change motu_register_dsp_change;
 };
 #define SNDRV_FIREWIRE_IOCTL_GET_INFO _IOR('H', 0xf8, struct snd_firewire_get_info)
 #define SNDRV_FIREWIRE_IOCTL_LOCK _IO('H', 0xf9)
 #define SNDRV_FIREWIRE_IOCTL_UNLOCK _IO('H', 0xfa)
 #define SNDRV_FIREWIRE_IOCTL_TASCAM_STATE _IOR('H', 0xfb, struct snd_firewire_tascam_state)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_METER _IOR('H', 0xfc, struct snd_firewire_motu_register_dsp_meter)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_COMMAND_DSP_METER _IOR('H', 0xfd, struct snd_firewire_motu_command_dsp_meter)
+#define SNDRV_FIREWIRE_IOCTL_MOTU_REGISTER_DSP_PARAMETER _IOR('H', 0xfe, struct snd_firewire_motu_register_dsp_parameter)
 #define SNDRV_FIREWIRE_TYPE_DICE 1
 #define SNDRV_FIREWIRE_TYPE_FIREWORKS 2
 #define SNDRV_FIREWIRE_TYPE_BEBOB 3
@@ -99,4 +109,49 @@
 struct snd_firewire_tascam_state {
   __be32 data[SNDRV_FIREWIRE_TASCAM_STATE_COUNT];
 };
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT 24
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT 24
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_INPUT_COUNT + SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_OUTPUT_COUNT)
+struct snd_firewire_motu_register_dsp_meter {
+  __u8 data[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_METER_COUNT];
+};
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT 4
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT 20
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT 10
+#define SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT (SNDRV_FIREWIRE_MOTU_REGISTER_DSP_INPUT_COUNT + 2)
+struct snd_firewire_motu_register_dsp_parameter {
+  struct {
+    struct {
+      __u8 gain[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 pan[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 paired_balance[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+      __u8 paired_width[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_SRC_COUNT];
+    } source[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+    struct {
+      __u8 paired_volume[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+      __u8 paired_flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_MIXER_COUNT];
+    } output;
+  } mixer;
+  struct {
+    __u8 main_paired_volume;
+    __u8 hp_paired_volume;
+    __u8 hp_paired_assignment;
+    __u8 reserved[5];
+  } output;
+  struct {
+    __u8 boost_flag;
+    __u8 nominal_level_flag;
+    __u8 reserved[6];
+  } line_input;
+  struct {
+    __u8 gain_and_invert[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
+    __u8 flag[SNDRV_FIREWIRE_MOTU_REGISTER_DSP_ALIGNED_INPUT_COUNT];
+  } input;
+  __u8 reserved[64];
+};
+#define SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT 400
+struct snd_firewire_motu_command_dsp_meter {
+  float data[SNDRV_FIREWIRE_MOTU_COMMAND_DSP_METER_COUNT];
+};
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h
new file mode 100644
index 0000000..39c0684
--- /dev/null
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/snd_ar_tokens.h
@@ -0,0 +1,83 @@
+/****************************************************************************
+ ****************************************************************************
+ ***
+ ***   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 __SND_AR_TOKENS_H__
+#define __SND_AR_TOKENS_H__
+#define APM_SUB_GRAPH_PERF_MODE_LOW_POWER 0x1
+#define APM_SUB_GRAPH_PERF_MODE_LOW_LATENCY 0x2
+#define APM_SUB_GRAPH_DIRECTION_TX 0x1
+#define APM_SUB_GRAPH_DIRECTION_RX 0x2
+#define APM_SUB_GRAPH_SID_AUDIO_PLAYBACK 0x1
+#define APM_SUB_GRAPH_SID_AUDIO_RECORD 0x2
+#define APM_SUB_GRAPH_SID_VOICE_CALL 0x3
+#define APM_CONTAINER_CAP_ID_PP 0x1
+#define APM_CONTAINER_CAP_ID_CD 0x2
+#define APM_CONTAINER_CAP_ID_EP 0x3
+#define APM_CONTAINER_CAP_ID_OLC 0x4
+#define APM_CONT_GRAPH_POS_STREAM 0x1
+#define APM_CONT_GRAPH_POS_PER_STR_PER_DEV 0x2
+#define APM_CONT_GRAPH_POS_STR_DEV 0x3
+#define APM_CONT_GRAPH_POS_GLOBAL_DEV 0x4
+#define APM_PROC_DOMAIN_ID_MDSP 0x1
+#define APM_PROC_DOMAIN_ID_ADSP 0x2
+#define APM_PROC_DOMAIN_ID_SDSP 0x4
+#define APM_PROC_DOMAIN_ID_CDSP 0x5
+#define PCM_INTERLEAVED 1
+#define PCM_DEINTERLEAVED_PACKED 2
+#define PCM_DEINTERLEAVED_UNPACKED 3
+#define AR_I2S_WS_SRC_EXTERNAL 0
+#define AR_I2S_WS_SRC_INTERNAL 1
+enum ar_event_types {
+  AR_EVENT_NONE = 0,
+  AR_PGA_DAPM_EVENT
+};
+#define SND_SOC_AR_TPLG_FE_BE_GRAPH_CTL_MIX 256
+#define SND_SOC_AR_TPLG_VOL_CTL 257
+#define AR_TKN_DAI_INDEX 1
+#define AR_TKN_U32_SUB_GRAPH_INSTANCE_ID 2
+#define AR_TKN_U32_SUB_GRAPH_PERF_MODE 3
+#define AR_TKN_U32_SUB_GRAPH_DIRECTION 4
+#define AR_TKN_U32_SUB_GRAPH_SCENARIO_ID 5
+#define AR_TKN_U32_CONTAINER_INSTANCE_ID 100
+#define AR_TKN_U32_CONTAINER_CAPABILITY_ID 101
+#define AR_TKN_U32_CONTAINER_STACK_SIZE 102
+#define AR_TKN_U32_CONTAINER_GRAPH_POS 103
+#define AR_TKN_U32_CONTAINER_PROC_DOMAIN 104
+#define AR_TKN_U32_MODULE_ID 200
+#define AR_TKN_U32_MODULE_INSTANCE_ID 201
+#define AR_TKN_U32_MODULE_MAX_IP_PORTS 202
+#define AR_TKN_U32_MODULE_MAX_OP_PORTS 203
+#define AR_TKN_U32_MODULE_IN_PORTS 204
+#define AR_TKN_U32_MODULE_OUT_PORTS 205
+#define AR_TKN_U32_MODULE_SRC_OP_PORT_ID 206
+#define AR_TKN_U32_MODULE_DST_IN_PORT_ID 207
+#define AR_TKN_U32_MODULE_SRC_INSTANCE_ID 208
+#define AR_TKN_U32_MODULE_DST_INSTANCE_ID 209
+#define AR_TKN_U32_MODULE_HW_IF_IDX 250
+#define AR_TKN_U32_MODULE_HW_IF_TYPE 251
+#define AR_TKN_U32_MODULE_FMT_INTERLEAVE 252
+#define AR_TKN_U32_MODULE_FMT_DATA 253
+#define AR_TKN_U32_MODULE_FMT_SAMPLE_RATE 254
+#define AR_TKN_U32_MODULE_FMT_BIT_DEPTH 255
+#define AR_TKN_U32_MODULE_SD_LINE_IDX 256
+#define AR_TKN_U32_MODULE_WS_SRC 257
+#define AR_TKN_U32_MODULE_FRAME_SZ_FACTOR 258
+#define AR_TKN_U32_MODULE_LOG_CODE 259
+#define AR_TKN_U32_MODULE_LOG_TAP_POINT_ID 260
+#define AR_TKN_U32_MODULE_LOG_MODE 261
+#endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
index 85a99c7..bf012fa 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/snd_sst_tokens.h
@@ -97,6 +97,7 @@
   SKL_TKN_U32_ASTATE_COUNT,
   SKL_TKN_U32_ASTATE_KCPS,
   SKL_TKN_U32_ASTATE_CLK_SRC,
-  SKL_TKN_MAX = SKL_TKN_U32_ASTATE_CLK_SRC,
+  SKL_TKN_U32_FMT_CFG_IDX = 96,
+  SKL_TKN_MAX = SKL_TKN_U32_FMT_CFG_IDX,
 };
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/sof/tokens.h b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
index ef62372..856281a 100644
--- a/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
+++ b/mainline/runtime/sdk/linux_bionic/include/bionic/libc/kernel/uapi/sound/sof/tokens.h
@@ -36,6 +36,7 @@
 #define SOF_TKN_SCHED_CORE 203
 #define SOF_TKN_SCHED_FRAMES 204
 #define SOF_TKN_SCHED_TIME_DOMAIN 205
+#define SOF_TKN_SCHED_DYNAMIC_PIPELINE 206
 #define SOF_TKN_VOLUME_RAMP_STEP_TYPE 250
 #define SOF_TKN_VOLUME_RAMP_STEP_MS 251
 #define SOF_TKN_SRC_RATE_IN 300
@@ -86,4 +87,7 @@
 #define SOF_TKN_INTEL_ALH_CH 1401
 #define SOF_TKN_INTEL_HDA_RATE 1500
 #define SOF_TKN_INTEL_HDA_CH 1501
+#define SOF_TKN_MEDIATEK_AFE_RATE 1600
+#define SOF_TKN_MEDIATEK_AFE_CH 1601
+#define SOF_TKN_MEDIATEK_AFE_FORMAT 1602
 #endif
diff --git a/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtbegin_dynamic.o b/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtbegin_dynamic.o
index 4161628..f6e5db9 100644
--- a/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtbegin_dynamic.o
+++ b/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtbegin_dynamic.o
Binary files differ
diff --git a/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtbegin_so.o b/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtbegin_so.o
index 216271b..64c03d4 100644
--- a/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtbegin_so.o
+++ b/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtbegin_so.o
Binary files differ
diff --git a/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtend.o b/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtend.o
index 3233f21..c9e8a09 100644
--- a/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtend.o
+++ b/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtend.o
Binary files differ
diff --git a/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtend_so.o b/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtend_so.o
index 22b2827..2f126fa 100644
--- a/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtend_so.o
+++ b/mainline/runtime/sdk/linux_bionic/x86_64/lib/crtend_so.o
Binary files differ
diff --git a/mainline/runtime/sdk/linux_bionic/x86_64/lib/libasync_safe.a b/mainline/runtime/sdk/linux_bionic/x86_64/lib/libasync_safe.a
index 4e7b74b..59737b2 100644
--- a/mainline/runtime/sdk/linux_bionic/x86_64/lib/libasync_safe.a
+++ b/mainline/runtime/sdk/linux_bionic/x86_64/lib/libasync_safe.a
Binary files differ
diff --git a/mainline/runtime/sdk/linux_bionic/x86_64/lib/libc.so b/mainline/runtime/sdk/linux_bionic/x86_64/lib/libc.so
index 15a3323..a51f508 100755
--- a/mainline/runtime/sdk/linux_bionic/x86_64/lib/libc.so
+++ b/mainline/runtime/sdk/linux_bionic/x86_64/lib/libc.so
Binary files differ
diff --git a/mainline/runtime/sdk/linux_bionic/x86_64/lib/libdl.so b/mainline/runtime/sdk/linux_bionic/x86_64/lib/libdl.so
index b9db728..5fdc55a 100755
--- a/mainline/runtime/sdk/linux_bionic/x86_64/lib/libdl.so
+++ b/mainline/runtime/sdk/linux_bionic/x86_64/lib/libdl.so
Binary files differ
diff --git a/mainline/runtime/sdk/linux_bionic/x86_64/lib/libdl_android.so b/mainline/runtime/sdk/linux_bionic/x86_64/lib/libdl_android.so
index eb84834..6868b2b 100755
--- a/mainline/runtime/sdk/linux_bionic/x86_64/lib/libdl_android.so
+++ b/mainline/runtime/sdk/linux_bionic/x86_64/lib/libdl_android.so
Binary files differ
diff --git a/mainline/runtime/sdk/linux_bionic/x86_64/lib/libm.so b/mainline/runtime/sdk/linux_bionic/x86_64/lib/libm.so
index dd4261b..e932188 100755
--- a/mainline/runtime/sdk/linux_bionic/x86_64/lib/libm.so
+++ b/mainline/runtime/sdk/linux_bionic/x86_64/lib/libm.so
Binary files differ
diff --git a/mainline/update.py b/mainline/update.py
index 06ffeee..6fd96c3 100755
--- a/mainline/update.py
+++ b/mainline/update.py
@@ -25,99 +25,108 @@
 import update_prebuilts as update
 
 PREBUILT_DESCRIPTION = 'mainline'
-TARGET = 'mainline_modules'
+MODULE_TARGET = 'mainline_modules-userdebug'
+SDK_TARGET = "mainline_modules_sdks-userdebug"
 
-COMMIT_MESSAGE_NOTE_TEMPLATE = """\
-CL prepared by prebuilts/runtime/mainline/update.py with the following
-targets: {}
+COMMIT_MESSAGE_NOTE = """\
+CL prepared by prebuilts/runtime/mainline/update.py.
 
 See prebuilts/runtime/mainline/README.md for update instructions.
 
 Test: Presubmits
 """
 
-def InstallApexEntries(apex_name, install_dir):
+def InstallApexEntries(apex_base_name, install_dir):
   res = []
   for arch in ['arm', 'arm64', 'x86', 'x86_64']:
     res.append(update.InstallEntry(
-        TARGET,
-        arch + '/' + apex_name + '.apex',
-        install_dir + '/' + apex_name + '-' + arch + '.apex',
+        MODULE_TARGET,
+        os.path.join('mainline_modules_' + arch,
+                     'com.android.' + apex_base_name + '.apex'),
+        os.path.join(install_dir,
+                     'com.android.' + apex_base_name + '-' + arch + '.apex'),
         install_unzipped=False))
   return res
 
+def InstallUnbundledSdkEntries(apex_base_name, sdk_type):
+  return [update.InstallEntry(
+      SDK_TARGET,
+      os.path.join('mainline-sdks/for-latest-build/current',
+                   'com.android.' + apex_base_name,
+                   sdk_type,
+                   apex_base_name + '-module-' + sdk_type + '-current.zip'),
+      os.path.join(apex_base_name, sdk_type),
+      install_unzipped=True)]
+
+def InstallBundledSdkEntries(apex_base_name, sdk_type):
+  return [update.InstallEntry(
+      SDK_TARGET,
+      os.path.join('bundled-mainline-sdks',
+                   'com.android.' + apex_base_name,
+                   sdk_type,
+                   apex_base_name + '-module-' + sdk_type + '-current.zip'),
+      os.path.join(apex_base_name, sdk_type),
+      install_unzipped=True)]
+
+def InstallPlatformMainlineSdkEntries(sdk_type):
+  return [update.InstallEntry(
+      SDK_TARGET,
+      os.path.join('bundled-mainline-sdks',
+                   'platform-mainline',
+                   sdk_type,
+                   'platform-mainline-' + sdk_type + '-current.zip'),
+      os.path.join('platform', sdk_type),
+      install_unzipped=True)]
+
 def InstallSharedLibEntries(lib_name, install_dir):
   res = []
   for arch in ['arm', 'arm64', 'x86', 'x86_64']:
     res.append(update.InstallEntry(
-        TARGET,
-        arch + '/' + lib_name + '.so',
-        install_dir + '/' + arch + '/' + lib_name  + '.so',
+        MODULE_TARGET,
+        os.path.join(arch, lib_name + '.so'),
+        os.path.join(install_dir, arch, lib_name  + '.so'),
         install_unzipped=False))
   return res
 
-def InstallSdkEntries(mainline_sdk_name, install_dir):
-  return [update.InstallEntry(
-      TARGET,
-      'mainline-sdks/' + mainline_sdk_name + '-current.zip',
-      install_dir,
-      install_unzipped=True)]
-
-PREBUILT_INSTALL_MODULES = {
+PREBUILT_INSTALL_MODULES = (
     # Conscrypt
-    'conscrypt': (
-        InstallApexEntries('com.android.conscrypt', 'conscrypt/apex') +
-        InstallSdkEntries('conscrypt-module-test-exports', 'conscrypt/test-exports') +
-        InstallSdkEntries('conscrypt-module-host-exports', 'conscrypt/host-exports')),
+    #InstallApexEntries('conscrypt', 'conscrypt/apex') +
+    #InstallUnbundledSdkEntries('conscrypt', 'test-exports') +
+    #InstallUnbundledSdkEntries('conscrypt', 'host-exports') +
 
     # Runtime (Bionic)
-    'runtime': (
-        InstallApexEntries('com.android.runtime', 'runtime/apex') +
-        InstallSdkEntries('runtime-module-sdk', 'runtime/sdk') +
-        InstallSdkEntries('runtime-module-host-exports', 'runtime/host-exports')),
+    #InstallApexEntries('runtime', 'runtime/apex') +
+    # sdk and host-exports must always be updated together, because the linker
+    # and the CRT object files gets embedded in the binaries on linux host
+    # Bionic (see code and comments around host_bionic_linker_script in
+    # build/soong).
+    InstallBundledSdkEntries('runtime', 'sdk') +
+    InstallBundledSdkEntries('runtime', 'host-exports') +
 
     # I18N
-    'i18n': (
-        InstallApexEntries('com.android.i18n', 'i18n/apex') +
-        InstallSdkEntries('i18n-module-sdk', 'i18n/sdk') +
-        InstallSdkEntries('i18n-module-test-exports', 'i18n/test-exports')),
+    #InstallApexEntries('i18n', 'i18n/apex') +
+    #InstallBundledSdkEntries('i18n', 'sdk') +
+    #InstallBundledSdkEntries('i18n', 'test-exports') +
 
     # tzdata
-    'tzdata': (
-        InstallApexEntries('com.android.tzdata', 'tzdata/apex') +
-        InstallSdkEntries('tzdata-module-test-exports', 'tzdata/test-exports')),
+    #InstallApexEntries('tzdata', 'tzdata/apex') +
+    #InstallBundledSdkEntries('tzdata', 'test-exports') +
 
     # statsd
-    'statsd': InstallApexEntries('com.android.os.statsd', 'statsd/apex'),
+    #InstallApexEntries('os.statsd', 'statsd/apex') +
 
     # Platform
-    'platform': (
-        InstallSdkEntries('platform-mainline-sdk', 'platform/sdk') +
-        InstallSdkEntries('platform-mainline-test-exports', 'platform/test-exports') +
-        # Shared libraries that are stubs in SDKs, but for which we need their
-        # implementation for device testing.
-        InstallSharedLibEntries('heapprofd_client_api', 'platform/impl') +
-        InstallSharedLibEntries('libartpalette-system', 'platform/impl') +
-        InstallSharedLibEntries('liblog', 'platform/impl')),
-}
+    #InstallPlatformMainlineSdkEntries('sdk') +
+    #InstallPlatformMainlineSdkEntries('test-exports') +
+    # Shared libraries that are stubs in SDKs, but for which we need their
+    # implementation for device testing.
+    #InstallSharedLibEntries('heapprofd_client_api', 'platform/impl') +
+    #InstallSharedLibEntries('libartpalette-system', 'platform/impl') +
+    #InstallSharedLibEntries('liblog', 'platform/impl') +
 
-def add_additional_arguments(parser):
-    parser.add_argument('--install-module', choices=['all'] + PREBUILT_INSTALL_MODULES.keys(),
-                        default='all',
-                        help="The prebuilt module(s) to install.")
+    [])
 
 if __name__ == '__main__':
-    args = update.parse_args(add_additional_arguments)
-
-    mainline_install_list = []
-    if args.install_module == 'all':
-      modules = PREBUILT_INSTALL_MODULES.keys()
-    else:
-      modules = [args.install_module]
-    for module in modules:
-      mainline_install_list.extend(PREBUILT_INSTALL_MODULES[module])
-
-    commit_message_note = COMMIT_MESSAGE_NOTE_TEMPLATE.format(', '.join(modules))
-
-    update.main(args, THIS_DIR, PREBUILT_DESCRIPTION, mainline_install_list, [],
-                commit_message_note)
+  args = update.parse_args()
+  update.main(args, THIS_DIR, PREBUILT_DESCRIPTION, PREBUILT_INSTALL_MODULES,
+              [], COMMIT_MESSAGE_NOTE)