Update user guide to include asynchronous I/O

This commit is contained in:
Gregory Nutt
2014-10-04 18:30:48 -06:00
parent 27a7e77a16
commit 3dfbcc2544
+42 -16
View File
@@ -7629,10 +7629,11 @@ interface of the same name.
<li><a href="#directoryoperations">2.10.3 Directory Operations</a></li> <li><a href="#directoryoperations">2.10.3 Directory Operations</a></li>
<li><a href="#dirunistdops">2.10.4 UNIX Standard Operations</a></li> <li><a href="#dirunistdops">2.10.4 UNIX Standard Operations</a></li>
<li><a href="#standardio">2.10.5 Standard I/O</a></li> <li><a href="#standardio">2.10.5 Standard I/O</a></li>
<li><a href="#stdstrings">2.10.6 Standard String Operations</a></li> <li><a href="#aio">2.10.6 Asynchronous I/O</a></li>
<li><a href="#PipesNFifos">2.10.7 Pipes and FIFOs</a></li> <li><a href="#stdstrings">2.10.7 Standard String Operations</a></li>
<li><a href="#fatsupport">2.10.8 FAT File System Support</a></li> <li><a href="#PipesNFifos">2.10.8 Pipes and FIFOs</a></li>
<li><a href="#mmapxip">2.10.9 <code>mmap()</code> and eXecute In Place (XIP)</a></li> <li><a href="#fatsupport">2.10.9 FAT File System Support</a></li>
<li><a href="#mmapxip">2.10.10 <code>mmap()</code> and eXecute In Place (XIP)</a></li>
</ul> </ul>
<h3><a name="FileSystemOverview">2.10.1 NuttX File System Overview</a></h3> <h3><a name="FileSystemOverview">2.10.1 NuttX File System Overview</a></h3>
@@ -7966,7 +7967,23 @@ int statfs(const char *path, struct statfs *buf);
int fstatfs(int fd, struct statfs *buf); int fstatfs(int fd, struct statfs *buf);
</pre></ul> </pre></ul>
<h3><a name="stdstrings">2.10.6 Standard String Operations</a></h3> <h3><a name="aio">2.10.6 Asynchronous I/O</a></h3>
<ul><pre>
#include &lt;aio.h&gt;
int aio_cancel(int, FAR struct aiocb *aiocbp);
int aio_error(FAR const struct aiocb *aiocbp);
int aio_fsync(int, FAR struct aiocb *aiocbp);
int aio_read(FAR struct aiocb *aiocbp);
ssize_t aio_return(FAR struct aiocb *aiocbp);
int aio_suspend(FAR const struct aiocb *const list[], int nent,
FAR const struct timespec *timeout);
int aio_write(FAR struct aiocb *aiocbp);
int lio_listio(int mode, FAR struct aiocb *const list[], int nent,
FAR struct sigevent *sig);
</pre></ul>
<h3><a name="stdstrings">2.10.7 Standard String Operations</a></h3>
<ul><pre> <ul><pre>
#include &lt;string.h&gt; #include &lt;string.h&gt;
@@ -8000,9 +8017,9 @@ void *memmove(void *dest, const void *src, size_t count);
# define bzero(s,n) (void)memset(s,0,n) # define bzero(s,n) (void)memset(s,0,n)
</pre></ul> </pre></ul>
<h3><a name="PipesNFifos">2.10.7 Pipes and FIFOs</a></h3> <h3><a name="PipesNFifos">2.10.8 Pipes and FIFOs</a></h3>
<h3>2.10.7.1 <a name="pipe"><code>pipe</code></a></h3> <h3>2.10.8.1 <a name="pipe"><code>pipe</code></a></h3>
<p> <p>
<b>Function Prototype:</b> <b>Function Prototype:</b>
</p> </p>
@@ -8036,7 +8053,7 @@ int pipe(int fd[2]);
</ul> </ul>
</p> </p>
<h3>2.10.7.2 <a name="mkfifo"><code>mkfifo</code></a></h3> <h3>2.10.8.2 <a name="mkfifo"><code>mkfifo</code></a></h3>
<p> <p>
<b>Function Prototype:</b> <b>Function Prototype:</b>
</p> </p>
@@ -8083,8 +8100,8 @@ int mkfifo(FAR const char *pathname, mode_t mode);
</ul> </ul>
</p> </p>
<h3><a name="fatsupport">2.10.8 FAT File System Support</a></h3> <h3><a name="fatsupport">2.10.9 FAT File System Support</a></h3>
<h3>2.10.8.1 <a name="mkfatfs"><code>mkfatfs</code></a></h3> <h3>2.10.9.1 <a name="mkfatfs"><code>mkfatfs</code></a></h3>
<p> <p>
<b>Function Prototype:</b> <b>Function Prototype:</b>
</p> </p>
@@ -8161,7 +8178,7 @@ struct fat_format_s
</ul> </ul>
</p> </p>
<h3><a name="mmapxip">2.10.9 <code>mmap()</code> and eXecute In Place (XIP)</a></h3> <h3><a name="mmapxip">2.10.10 <code>mmap()</code> and eXecute In Place (XIP)</a></h3>
<p> <p>
NuttX operates in a flat open address space and is focused on MCUs that do NuttX operates in a flat open address space and is focused on MCUs that do
support Memory Management Units (MMUs). Therefore, NuttX generally does not support Memory Management Units (MMUs). Therefore, NuttX generally does not
@@ -8290,7 +8307,7 @@ struct fat_format_s
</li> </li>
</ol> </ol>
<h3><a name="mmap">2.10.9.1 <code>mmap</code></a></h3> <h3><a name="mmap">2.10.10.1 <code>mmap</code></a></h3>
<p> <p>
<b>Function Prototype:</b> <b>Function Prototype:</b>
</p> </p>
@@ -9608,6 +9625,14 @@ notify a task when a message is available on a queue.
<tr> <tr>
<td valign="top" width="34%"> <td valign="top" width="34%">
<li><a href="#accept">accept</a></li> <li><a href="#accept">accept</a></li>
<li><a href="#aio">aio.h</a></li>
<li><a href="#aio">aio_cancel</a></li>
<li><a href="#aio">aio_error</a></li>
<li><a href="#aio">aio_fsync</a></li>
<li><a href="#aio">aio_read</a></li>
<li><a href="#aio">aio_return</a></li>
<li><a href="#aio">aio_suspend</a></li>
<li><a href="#aio">aio_write</a></li>
<li><a href="#atexit">atexit</a> <li><a href="#atexit">atexit</a>
<li><a href="#bind">bind</a></li> <li><a href="#bind">bind</a></li>
<li><a href="#mmapxip">BIOC_XIPBASE</a></li> <li><a href="#mmapxip">BIOC_XIPBASE</a></li>
@@ -9663,6 +9688,7 @@ notify a task when a message is available on a queue.
<li><a href="#Introduction">Introduction</a> <li><a href="#Introduction">Introduction</a>
<li><a href="#drvrioctlops">ioctl</a></li> <li><a href="#drvrioctlops">ioctl</a></li>
<li><a href="#kill">kill</a></li> <li><a href="#kill">kill</a></li>
<li><a href="#aio">lio_listio</a></li>
<li><a href="#listen">listen</a></li> <li><a href="#listen">listen</a></li>
<li><a href="#localtimer">localtime_r</a></li> <li><a href="#localtimer">localtime_r</a></li>
<li><a href="#drvrunistdops">lseek</a></li> <li><a href="#drvrunistdops">lseek</a></li>
@@ -9684,14 +9710,14 @@ notify a task when a message is available on a queue.
<li><a href="#mmap">mmap</a></li> <li><a href="#mmap">mmap</a></li>
<li><a href="#Network">Network Interfaces</a></li> <li><a href="#Network">Network Interfaces</a></li>
<li><a href="#onexit">on_exit</a> <li><a href="#onexit">on_exit</a>
</td>
<td valign="top" width="33%">
<li><a href="#drvrfcntlops">open</a></li> <li><a href="#drvrfcntlops">open</a></li>
<li><a href="#dirdirentops">opendir</a></li> <li><a href="#dirdirentops">opendir</a></li>
<li><a href="#OS_Interfaces">OS Interfaces</a></li> <li><a href="#OS_Interfaces">OS Interfaces</a></li>
<li><a href="#pause">pause</a></li> <li><a href="#pause">pause</a></li>
<li><a href="#pipe">pipe</a></li> <li><a href="#pipe">pipe</a></li>
<li><a href="#poll">poll</a></li> <li><a href="#poll">poll</a></li>
</td>
<td valign="top" width="33%">
<li><a href="#drvrpollops">poll.h</a></li> <li><a href="#drvrpollops">poll.h</a></li>
<li><a href="#posix_spawn">posix_spawn</a></li> <li><a href="#posix_spawn">posix_spawn</a></li>
<li><a href="#posix_spawn_file_actions_addclose">posix_spawn_file_actions_addclose</a></li> <li><a href="#posix_spawn_file_actions_addclose">posix_spawn_file_actions_addclose</a></li>
@@ -9772,11 +9798,11 @@ notify a task when a message is available on a queue.
<li><a href="#standardio">puts</a></li> <li><a href="#standardio">puts</a></li>
<li><a href="#mmapxip">RAM disk driver</a></li> <li><a href="#mmapxip">RAM disk driver</a></li>
<li><a href="#drvrunistdops">read</a></li> <li><a href="#drvrunistdops">read</a></li>
</td>
<td valign="top">
<li><a href="#dirdirentops">readdir</a></li> <li><a href="#dirdirentops">readdir</a></li>
<li><a href="#dirdirentops">readdir_r</a></li> <li><a href="#dirdirentops">readdir_r</a></li>
<li><a href="#recv">recv</a></li> <li><a href="#recv">recv</a></li>
</td>
<td valign="top">
<li><a href="#recvfrom">recvfrom</a></li> <li><a href="#recvfrom">recvfrom</a></li>
<li><a href="#standardio">rename</a></li> <li><a href="#standardio">rename</a></li>
<li><a href="#standardio">rmdir</a></li> <li><a href="#standardio">rmdir</a></li>