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_