diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2021-06-14 07:58:30 +0000 |
---|---|---|
committer | Laurent Bercot <ska-skaware@skarnet.org> | 2021-06-14 07:58:30 +0000 |
commit | 2bb6dc4b762a4574d658d543ab1a56c92d90ef0c (patch) | |
tree | b277d8b8cbb91cedbcb002184d3866bdd3b19330 | |
parent | 659918a7eb3ed94e8519ebf3327493e05a29c4d2 (diff) | |
download | skalibs-2bb6dc4b762a4574d658d543ab1a56c92d90ef0c.tar.xz |
doc: allreadwrite: document scatter/gatter functions
Signed-off-by: Jesse Young <jlyo@jlyo.org>
-rw-r--r-- | doc/libstddjb/allreadwrite.html | 53 | ||||
-rw-r--r-- | src/include/skalibs/allreadwrite.h | 5 |
2 files changed, 55 insertions, 3 deletions
diff --git a/doc/libstddjb/allreadwrite.html b/doc/libstddjb/allreadwrite.html index 2619153..1c31022 100644 --- a/doc/libstddjb/allreadwrite.html +++ b/doc/libstddjb/allreadwrite.html @@ -52,6 +52,18 @@ and </p> <p> +<code> typedef ssize_t iovfunc_t (int fd, struct iovec const *v, unsigned int vlen) </code> <br /> +This is the simplified type of IO functions such as +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/readv.html">readv()</a> +and +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/writev.html">writev()</a>, +where the content to perform IO on is specified as a +<a href="siovec.html">scatter/gather array</a> of <em>vlen</em> +elements instead of a single string. +</p> + + +<p> <code> typedef size_t alliofunc_t (int fd, char *buf, size_t len) </code> <br /> This is the type of an IO operation that expects <em>all</em> of its <em>len</em> bytes to be sent or received, and that will loop around a @@ -83,6 +95,11 @@ on reading.) </p> <p> +<code> ssize_t unsanitize_read (ssize_t r) </code> <br /> +Returns the inverse of <code>sanitize_read</code>. +</p> + +<p> <code> size_t allreadwrite (iofunc_t *f, int fd, char *s, size_t len) </code> <br /> *<em>f</em> must be a basic reading or writing function such as <tt>fd_read</tt> or <tt>fd_write</tt>. <tt>allreadwrite()</tt> performs @@ -95,6 +112,14 @@ set errno to EWOULDBLOCK or EAGAIN. </p> <p> +<code> size_t allreadwritev (iovfunc_t *f, int fd, struct iovec const *v, unsigned int vlen) </code> <br /> +Like <code> allreadwrite </code> +but the content to perform IO on is specified as a +<a href="siovec.html">scatter/gather array</a> of <em>vlen</em> +elements instead of a single string. +</p> + +<p> <code> ssize_t fd_read (int fd, char *s, size_t len) </code> <br /> <a href="safewrappers.html">Safe wrapper</a> around the <a href="https://www.opengroup.org/onlinepubs/9699919799/functions/read.html">read()</a> @@ -107,6 +132,20 @@ function. <a href="https://www.opengroup.org/onlinepubs/9699919799/functions/write.html">write()</a> function. </p> +<p> + +<code> ssize_t fd_readv (int fd, struct iovec const *v, unsigned int vlen) </code> <br /> +<a href="safewrappers.html">Safe wrapper</a> around the +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/readv.html">readv()</a> +function. +</p> + +<p> +<code> ssize_t fd_writev (int fd, struct iovec const *v, unsigned int vlen) </code> <br /> +<a href="safewrappers.html">Safe wrapper</a> around the +<a href="https://www.opengroup.org/onlinepubs/9699919799/functions/writev.html">writev()</a> +function. +</p> <p> <code> ssize_t fd_recv (int fd, char *s, size_t len, unsigned int flags) </code> <br /> @@ -138,5 +177,19 @@ around <tt>fd_write()</tt> if necessary, until either <em>len</em> bytes are written or an error occurs. </p> +<p> +<code> size_t allreadv (int fd, struct iovec *v, unsigned int vlen) </code> <br /> +Like <tt>allread</tt>, but the bytes from <em>fd</em> are read into a +<a href="siovec.html">scatter/gather array</a> of <em>vlen</em> +elements instead of a single string. +</p> + +<p> +<code> size_t allwritev (int fd, struct iovec const *v, unsigned int vlen) </code> <br /> +Like <tt>allwrite</tt>, but the content to write is taken from a +<a href="siovec.html">scatter/gather array</a> of <em>vlen</em> +elements instead of a single string. +</p> + </body> </html> diff --git a/src/include/skalibs/allreadwrite.h b/src/include/skalibs/allreadwrite.h index 254d766..3df1ed1 100644 --- a/src/include/skalibs/allreadwrite.h +++ b/src/include/skalibs/allreadwrite.h @@ -14,6 +14,8 @@ extern size_t allreadwritev (iovfunc_t_ref, int, struct iovec const *, unsigned extern ssize_t fd_read (int, char *, size_t) ; extern ssize_t fd_write (int, char const *, size_t) ; +extern ssize_t fd_readv (int, struct iovec const *, unsigned int) ; +extern ssize_t fd_writev (int, struct iovec const *, unsigned int) ; extern ssize_t fd_recv (int, char *, size_t, unsigned int) ; extern ssize_t fd_send (int, char const *, size_t, unsigned int) ; @@ -23,7 +25,4 @@ extern size_t allwrite (int, char const *, size_t) ; extern size_t allreadv (int, struct iovec const *, unsigned int) ; extern size_t allwritev (int, struct iovec const *, unsigned int) ; -extern ssize_t fd_readv (int, struct iovec const *, unsigned int) ; -extern ssize_t fd_writev (int, struct iovec const *, unsigned int) ; - #endif |