Provide default implementation of quiche_iovec.h
PiperOrigin-RevId: 438424649
diff --git a/common/platform/api/quiche_iovec.h b/common/platform/api/quiche_iovec.h
index c2d347d..351e627 100644
--- a/common/platform/api/quiche_iovec.h
+++ b/common/platform/api/quiche_iovec.h
@@ -8,7 +8,7 @@
#include <cstddef>
#include <type_traits>
-#include "net/quiche/common/platform/impl/quiche_iovec_impl.h"
+#include "quiche_platform_impl/quiche_iovec_impl.h"
// The impl header has to export struct iovec, or a POSIX-compatible polyfill.
// Below, we mostly assert that what we have is appropriate.
diff --git a/common/platform/default/quiche_platform_impl/quiche_iovec_impl.h b/common/platform/default/quiche_platform_impl/quiche_iovec_impl.h
new file mode 100644
index 0000000..175d49d
--- /dev/null
+++ b/common/platform/default/quiche_platform_impl/quiche_iovec_impl.h
@@ -0,0 +1,24 @@
+// Copyright 2022 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef QUICHE_COMMON_PLATFORM_DEFAULT_QUICHE_PLATFORM_IMPL_QUICHE_IOVEC_IMPL_H_
+#define QUICHE_COMMON_PLATFORM_DEFAULT_QUICHE_PLATFORM_IMPL_QUICHE_IOVEC_IMPL_H_
+
+#include "common/platform/api/quiche_export.h"
+
+#if defined(_WIN32)
+
+// See <https://pubs.opengroup.org/onlinepubs/009604599/basedefs/sys/uio.h.html>
+struct QUICHE_EXPORT_PRIVAATE iovec {
+ void* iov_base;
+ size_t iov_len;
+};
+
+#else
+
+#include <sys/uio.h> // IWYU pragma: export
+
+#endif // defined(_WIN32)
+
+#endif // QUICHE_COMMON_PLATFORM_DEFAULT_QUICHE_PLATFORM_IMPL_QUICHE_IOVEC_IMPL_H_