Split iovec out of SysUio.h
authorChristopher Dykes <cdykes@fb.com>
Sun, 20 Mar 2016 18:06:40 +0000 (11:06 -0700)
committerFacebook Github Bot 3 <facebook-github-bot-3-bot@fb.com>
Sun, 20 Mar 2016 18:20:25 +0000 (11:20 -0700)
Summary: This is needed to avoid a circular dependency.

Reviewed By: yfeldblum

Differential Revision: D3072037

fb-gh-sync-id: 546a46fd68f25f0c5b027d4d938335b2711d8fdd
shipit-source-id: 546a46fd68f25f0c5b027d4d938335b2711d8fdd

folly/Makefile.am
folly/portability/IOVec.h [new file with mode: 0755]

index fffd7edfd257afc717baa0c0905dc69ffa397bec..54b738d70dab1656a3153603e115da765c2b53f0 100644 (file)
@@ -272,6 +272,7 @@ nobase_follyinclude_HEADERS = \
        portability/Constexpr.h \
        portability/Environment.h \
        portability/GFlags.h \
+       portability/IOVec.h \
        portability/Memory.h \
        portability/Strings.h \
        portability/Syscall.h \
diff --git a/folly/portability/IOVec.h b/folly/portability/IOVec.h
new file mode 100755 (executable)
index 0000000..74e4809
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2016 Facebook, Inc.
+ *
+ * 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
+
+// This file only exists because without it there would be
+// a circular dependency between SysUio.h, Sockets.h, and Unistd.h
+#ifndef _WIN32
+#include <sys/uio.h>
+#else
+#include <stdlib.h>
+
+#define UIO_MAXIOV 16
+#define IOV_MAX UIO_MAXIOV
+
+struct iovec {
+  void* iov_base;
+  size_t iov_len;
+};
+#endif