From 87795b46f2bc732bd11067805709161bdc00d6b6 Mon Sep 17 00:00:00 2001
From: Garrett D'Amore <garrett@damore.org>
Date: Sun, 25 Feb 2018 17:56:55 -0800
Subject: More man page reorganization.

Man pages need special handling, and we can have other kinds of documentation
like initial starting guides, etc., which would have different processing
applied.  So lets move them off into their own directory.
---
 docs/man/nng_aio_set_iov.adoc | 71 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)
 create mode 100644 docs/man/nng_aio_set_iov.adoc

(limited to 'docs/man/nng_aio_set_iov.adoc')

diff --git a/docs/man/nng_aio_set_iov.adoc b/docs/man/nng_aio_set_iov.adoc
new file mode 100644
index 00000000..d5991ed6
--- /dev/null
+++ b/docs/man/nng_aio_set_iov.adoc
@@ -0,0 +1,71 @@
+= nng_aio_set_iov(3)
+//
+// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
+// Copyright 2018 Capitar IT Group BV <info@capitar.com>
+//
+// This document is supplied under the terms of the MIT License, a
+// copy of which should be located in the distribution where this
+// file was obtained (LICENSE.txt).  A copy of the license may also be
+// found online at https://opensource.org/licenses/MIT.
+//
+
+== NAME
+
+nng_aio_set_iov - set scatter/gather vector
+
+== SYNOPSIS
+
+[source, c]
+-----------
+#include <nng/nng.h>
+
+int nng_aio_set_iov(nng_aio *aio, unsigned int niov, nng_iov *iov);
+-----------
+
+== DESCRIPTION
+
+The `nng_aio_set_iov()` function sets a scatter/gather vector _iov_ on the
+handle _aio_. 
+
+The _iov_ is a pointer to an array of _niov_ `nng_iov` structures, which have
+the following definition:
+
+[source, c]
+----
+    typedef struct nng_iov {
+        void * iov_buf;
+        size_t iov_len;
+    };
+----
+
+The _iov_ is copied into storage in the _aio_ itself, so that callers
+may use stack allocated `nng_iov` structures.  The values pointed to
+by the `iov_buf` members are *not* copied by this function though.
+
+Up to four `nng_iov` members may be supplied without causing any
+allocations, and thus this operation is guaranteed to succeed for
+values of _niov_ less than four.
+
+More than four (4) `nng_iov` members may be supplied, but this may require
+heap allocations, and so the operation may fail with `NNG_ENOMEM`.
+Additionally, not every operation can support longer vectors; the
+actual limit is determined by the system, but is generally at least
+sixteen (16).  Furthermore, values for _niov_ larger than sixty-four (64) will
+generally result in `NNG_EINVAL`.
+
+== RETURN VALUES
+
+This function returns 0 on success, and non-zero otherwise.
+
+== ERRORS
+
+`NNG_ENOMEM`:: Insufficient free memory to perform operation.
+`NNG_EINVAL`:: Value of specified _niov_ is too large.
+
+== SEE ALSO
+
+<<nng_aio_alloc#,nng_aio_alloc(3)>>,
+<<nng_aio_cancel#,nng_aio_cancel(3)>>,
+<<nng_aio_count#,nng_aio_count(3)>>,
+<<nng_aio_result#,nng_aio_result(3)>>,
+<<nng#,nng(7)>>
-- 
cgit v1.2.3-70-g09d2

