Automated g4 rollback of changelist 435790851.

*** Reason for rollback ***

Breaks Envoy which defines a iovec for windows independently.

*** Original change description ***

Move quiche_iovec.h out of platform.

***

PiperOrigin-RevId: 436591902
diff --git a/common/platform/api/quiche_iovec.h b/common/platform/api/quiche_iovec.h
new file mode 100644
index 0000000..c2d347d
--- /dev/null
+++ b/common/platform/api/quiche_iovec.h
@@ -0,0 +1,23 @@
+// Copyright (c) 2018 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_API_QUICHE_IOVEC_H_
+#define QUICHE_COMMON_PLATFORM_API_QUICHE_IOVEC_H_
+
+#include <cstddef>
+#include <type_traits>
+
+#include "net/quiche/common/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.
+static_assert(std::is_standard_layout<struct iovec>::value,
+              "iovec has to be a standard-layout struct");
+
+static_assert(offsetof(struct iovec, iov_base) < sizeof(struct iovec),
+              "iovec has to have iov_base");
+static_assert(offsetof(struct iovec, iov_len) < sizeof(struct iovec),
+              "iovec has to have iov_len");
+
+#endif  // QUICHE_COMMON_PLATFORM_API_QUICHE_IOVEC_H_
diff --git a/common/quiche_buffer_allocator.h b/common/quiche_buffer_allocator.h
index f4747f4..a30a675 100644
--- a/common/quiche_buffer_allocator.h
+++ b/common/quiche_buffer_allocator.h
@@ -11,7 +11,7 @@
 
 #include "absl/strings/string_view.h"
 #include "common/platform/api/quiche_export.h"
-#include "common/quiche_iovec.h"
+#include "common/platform/api/quiche_iovec.h"
 
 namespace quiche {
 
diff --git a/common/quiche_iovec.h b/common/quiche_iovec.h
deleted file mode 100644
index d16af88..0000000
--- a/common/quiche_iovec.h
+++ /dev/null
@@ -1,35 +0,0 @@
-// Copyright (c) 2018 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_QUICHE_IOVEC_H_
-#define QUICHE_COMMON_QUICHE_IOVEC_H_
-
-#include <cstddef>
-#include <type_traits>
-
-#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_PRIVATE iovec {
-  void* iov_base;
-  size_t iov_len;
-};
-
-#else
-
-#include <sys/uio.h>  // IWYU pragma: export
-
-#endif  // defined(_WIN32)
-
-static_assert(std::is_standard_layout<struct iovec>::value,
-              "iovec has to be a standard-layout struct");
-
-static_assert(offsetof(struct iovec, iov_base) < sizeof(struct iovec),
-              "iovec has to have iov_base");
-static_assert(offsetof(struct iovec, iov_len) < sizeof(struct iovec),
-              "iovec has to have iov_len");
-
-#endif  // QUICHE_COMMON_QUICHE_IOVEC_H_
diff --git a/common/quiche_mem_slice_storage.h b/common/quiche_mem_slice_storage.h
index d51512f..f30750d 100644
--- a/common/quiche_mem_slice_storage.h
+++ b/common/quiche_mem_slice_storage.h
@@ -10,9 +10,9 @@
 #include "absl/types/span.h"
 #include "quic/core/quic_types.h"
 #include "common/platform/api/quiche_export.h"
+#include "common/platform/api/quiche_iovec.h"
 #include "common/platform/api/quiche_mem_slice.h"
 #include "common/quiche_buffer_allocator.h"
-#include "common/quiche_iovec.h"
 
 namespace quiche {
 
diff --git a/common/test_tools/quiche_test_utils.h b/common/test_tools/quiche_test_utils.h
index 654f3f9..adbaaa4 100644
--- a/common/test_tools/quiche_test_utils.h
+++ b/common/test_tools/quiche_test_utils.h
@@ -8,7 +8,7 @@
 #include <string>
 
 #include "absl/strings/string_view.h"
-#include "common/quiche_iovec.h"
+#include "common/platform/api/quiche_iovec.h"
 
 namespace quiche {
 namespace test {
diff --git a/quic/core/http/quic_spdy_stream_body_manager.h b/quic/core/http/quic_spdy_stream_body_manager.h
index 3e259b6..76b34ae 100644
--- a/quic/core/http/quic_spdy_stream_body_manager.h
+++ b/quic/core/http/quic_spdy_stream_body_manager.h
@@ -10,8 +10,8 @@
 #include "quic/core/quic_constants.h"
 #include "quic/platform/api/quic_bug_tracker.h"
 #include "quic/platform/api/quic_export.h"
+#include "common/platform/api/quiche_iovec.h"
 #include "common/quiche_circular_deque.h"
-#include "common/quiche_iovec.h"
 
 namespace quic {
 
diff --git a/quic/core/quic_stream_sequencer_buffer.h b/quic/core/quic_stream_sequencer_buffer.h
index 54b913f..6ea3586 100644
--- a/quic/core/quic_stream_sequencer_buffer.h
+++ b/quic/core/quic_stream_sequencer_buffer.h
@@ -69,7 +69,7 @@
 #include "quic/core/quic_packets.h"
 #include "quic/core/quic_types.h"
 #include "quic/platform/api/quic_export.h"
-#include "common/quiche_iovec.h"
+#include "common/platform/api/quiche_iovec.h"
 
 namespace quic {