summaryrefslogtreecommitdiff
path: root/nuttx/Documentation/NuttxUserGuide.html
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-01-11 21:51:54 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-01-11 21:51:54 +0000
commit5a180ec4940c993311eedddaa13194f9977968f1 (patch)
tree60b33dff14781a7f98e7c78b6f47243cace54e77 /nuttx/Documentation/NuttxUserGuide.html
parent049b66a75a6f7795b5e80ce70122479f2ef31586 (diff)
downloadnuttx-5a180ec4940c993311eedddaa13194f9977968f1.tar.gz
nuttx-5a180ec4940c993311eedddaa13194f9977968f1.tar.bz2
nuttx-5a180ec4940c993311eedddaa13194f9977968f1.zip
Documentation update
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5512 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/Documentation/NuttxUserGuide.html')
-rw-r--r--nuttx/Documentation/NuttxUserGuide.html748
1 files changed, 694 insertions, 54 deletions
diff --git a/nuttx/Documentation/NuttxUserGuide.html b/nuttx/Documentation/NuttxUserGuide.html
index 89bc08942..c6eabd29a 100644
--- a/nuttx/Documentation/NuttxUserGuide.html
+++ b/nuttx/Documentation/NuttxUserGuide.html
@@ -13,7 +13,7 @@
<h1><big><font color="#3c34ec"><i>NuttX Operating System<p>User's Manual</i></font></big></h1>
<p><small>by</small></p>
<p>Gregory Nutt<p>
- <p>Last Updated: January 8, 2013</p>
+ <p>Last Updated: January 11, 2013</p>
</td>
</tr>
</table>
@@ -193,18 +193,52 @@ paragraphs.
<p><b>Task Control Interfaces</b>.
The following task control interfaces are provided by NuttX:
</p>
+<p>
+ Non-standard task control interfaces inspired by VxWorks interfaces:
+</p>
<ul>
<li><a href="#taskcreate">2.1.1 task_create</a></li>
<li><a href="#taskinit">2.1.2 task_init</a></li>
<li><a href="#taskactivate">2.1.3 task_activate</a></li>
<li><a href="#taskdelete">2.1.4 task_delete</a></li>
- <li><a href="#exit">2.1.5 exit</a></li>
- <li><a href="#taskrestart">2.1.6 task_restart</a></li>
+ <li><a href="#taskrestart">2.1.5 task_restart</a></li>
+</ul>
+<p>
+ Standard interfaces
+</p>
+<ul>
+ <li><a href="#exit">2.1.6 exit</a></li>
<li><a href="#getpid">2.1.7 getpid</a></li>
+</ul>
+<p>
+ Standard <code>vfork</code> and <code>exec[v|l]</code> interfaces:
+</p>
+<ul>
<li><a href="#vfork">2.1.8 vfork</a></li>
<li><a href="#execv">2.1.9 execv</a></li>
<li><a href="#execl">2.1.10 execl</a></li>
</ul>
+<p>
+ Standard <code>posix_spawn</code> interfaces:
+</p>
+
+<ul>
+ <li><a href="#posix_spawn">2.1.11 posix_spawn and posix_spawnp</a></li>
+ <li><a href="#posix_spawn_file_actions_init">2.1.12 posix_spawn_file_actions_init</a></li>
+ <li><a href="#posix_spawn_file_actions_destroy">2.1.13 posix_spawn_file_actions_destroy</a></li>
+ <li><a href="#posix_spawn_file_actions_addclose">2.1.14 posix_spawn_file_actions_addclose</a></li>
+ <li><a href="#posix_spawn_file_actions_adddup2">2.1.15 posix_spawn_file_actions_adddup2</a></li>
+ <li><a href="#posix_spawn_file_actions_addopen">2.1.16 posix_spawn_file_actions_addopen</a></li>
+ <li><a href="#posix_spawnattr_init">2.1.17 posix_spawnattr_init</a></li>
+ <li><a href="#posix_spawnattr_getflags">2.1.18 posix_spawnattr_getflags</a></li>
+ <li><a href="#posix_spawnattr_getschedparam">2.1.19 posix_spawnattr_getschedparam</a></li>
+ <li><a href="#posix_spawnattr_getschedpolicy">2.1.20 posix_spawnattr_getschedpolicy</a></li>
+ <li><a href="#posix_spawnattr_getsigmask">2.1.21 posix_spawnattr_getsigmask</a></li>
+ <li><a href="#posix_spawnattr_setflags">2.1.22 posix_spawnattr_setflags</a></li>
+ <li><a href="#posix_spawnattr_setschedparam">2.1.23 posix_spawnattr_setschedparam</a></li>
+ <li><a href="#posix_spawnattr_setschedpolicy">2.1.24 posix_spawnattr_setschedpolicy</a></li>
+ <li><a href="#posix_spawnattr_setsigmask">2.1.25 posix_spawnattr_setsigmask</a></li>
+</ul>
<H3><a name="taskcreate">2.1.1 task_create</a></H3>
@@ -472,53 +506,7 @@ STATUS taskDelete(int tid);
<li>Deletion of self is supported, but only because <code>task_delete()</code> will re-direct processing to <code>exit()</code>.
</ul>
-<H3><a name="exit">2.1.5 exit</a></H3>
-
-<p>
-<b>Function Prototype:</b>
-<pre>
- #include &lt;sched.h&gt;
- void exit(int code);
-
- #include &lt;nuttx/unistd.h&gt;
- void _exit(int code);
-</pre>
-
-<p>
-<b>Description:</b> This function causes the calling task to cease
-to exist -- its stack and TCB will be deallocated. exit differs from
-_exit in that it flushes streams, closes file descriptors and will
-execute any function registered with <code>atexit()</code> or <code>on_exit()</code>.
-<p>
-<b>Input Parameters:</b>
-<ul>
-<li><code>code</code>. (ignored)
-</ul>
-
-<p>
-<b>Returned Value:</b> None.
-
-<p>
-<b>Assumptions/Limitations:</b>
-
-<p>
-<b>POSIX Compatibility:</b> This is equivalent to the ANSI interface:
-<pre>
- void exit(int code);
-</pre>
-And the UNIX interface:
-<pre>
- void _exit(int code);
-</pre>
-
-<p>
- The NuttX exit() differs from ANSI exit() in the following ways:
-</p>
-<ul>
-<li>The <code>code</code> parameter is ignored.
-</ul>
-
-<H3><a name="taskrestart">2.1.6 task_restart</a></H3>
+<H3><a name="taskrestart">2.1.5 task_restart</a></H3>
<p>
<b>Function Prototype:</b>
<ul><pre>
@@ -588,6 +576,52 @@ VxWorks provides the following similar interface:
</li>
</ul>
+<H3><a name="exit">2.1.6 exit</a></H3>
+
+<p>
+<b>Function Prototype:</b>
+<pre>
+ #include &lt;sched.h&gt;
+ void exit(int code);
+
+ #include &lt;nuttx/unistd.h&gt;
+ void _exit(int code);
+</pre>
+
+<p>
+<b>Description:</b> This function causes the calling task to cease
+to exist -- its stack and TCB will be deallocated. exit differs from
+_exit in that it flushes streams, closes file descriptors and will
+execute any function registered with <code>atexit()</code> or <code>on_exit()</code>.
+<p>
+<b>Input Parameters:</b>
+<ul>
+<li><code>code</code>. (ignored)
+</ul>
+
+<p>
+<b>Returned Value:</b> None.
+
+<p>
+<b>Assumptions/Limitations:</b>
+
+<p>
+<b>POSIX Compatibility:</b> This is equivalent to the ANSI interface:
+<pre>
+ void exit(int code);
+</pre>
+And the UNIX interface:
+<pre>
+ void _exit(int code);
+</pre>
+
+<p>
+ The NuttX exit() differs from ANSI exit() in the following ways:
+</p>
+<ul>
+<li>The <code>code</code> parameter is ignored.
+</ul>
+
<H3><a name="getpid">2.1.7 getpid</a></H3>
<p>
@@ -780,6 +814,595 @@ int execl(FAR const char *path, ...);
There are, however, several compatibility issues as detailed in the description of <a href="#execv">execv()</a>.
</p>
+<h3><a name="posix_spawn">2.1.11 posix_spawn and posix_spawnp</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawn(FAR pid_t *pid, FAR const char *path,
+ FAR const posix_spawn_file_actions_t *file_actions,
+ FAR const posix_spawnattr_t *attr,
+ FAR char *const argv[], FAR char *const envp[]);
+int posix_spawnp(FAR pid_t *pid, FAR const char *file,
+ FAR const posix_spawn_file_actions_t *file_actions,
+ FAR const posix_spawnattr_t *attr,
+ FAR char *const argv[], FAR char *const envp[]);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawn()</code> and <code>posix_spawnp()</code> functions will create a new, child task, constructed from a regular executable file.<p>
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <p>
+ <code>pid</code>:
+ Upon successful completion, <code>posix_spawn()</code> and <code>posix_spawnp()</code> will return the task ID of the child task to the parent task, in the variable pointed to by a non-NULL <code>pid</code> argument.
+ If the <code>pid</code> argument is a null pointer, the process ID of the child is not returned to the caller.
+ </p>
+ </li>
+ <li>
+ <p>
+ <code>path</code> or <code>file</code>:
+ The <code>path</code> argument to <code>posix_spawn()</code> is the absolute path that identifies the file to execute.
+ The <code>file</code> argument to <code>posix_spawnp()</code> may also be a relative path and will be used to construct a pathname that identifies the file to execute.
+ In the case of a relative path, the path prefix for the file will be obtained by a search of the directories passed as the environment variable PATH.
+ </p>
+ <p>
+ NOTE: NuttX provides only one implementation:
+ If <code>CONFIG_BINFMT_EXEPATH</code> is defined, then only <code>posix_spawnp()</code> behavior is supported; otherwise, only <code>posix_spawn</code> behavior is supported.
+ </li>
+ <li>
+ <p>
+ <code>file_actions</code>:
+ If <code>file_actions</code> is a null pointer, then file descriptors open in the calling process will remain open in the child process (unless <code>CONFIG_FDCLONE_STDIO</code> is defined).
+ If <code>file_actions</code> is not NULL, then the file descriptors open in the child process will be those open in the calling process as modified by the spawn file actions object pointed to by <code>file_actions</code>.
+ </p>
+ </li>
+ <li>
+ <p>
+ <code>attr</code>:
+ If the value of the <code>attr</code> parameter is <code>NULL</code>, the all default values for the POSIX spawn attributes will be used.
+ Otherwise, the attributes will be set according to the spawn flags.
+ The <code>posix_spawnattr_t</code> spawn attributes object type is defined in <code>spawn.h</code>.
+ It will contains these attributes, not all of which are supported by NuttX:
+ </p>
+ <ul>
+ <li>
+ <code>POSIX_SPAWN_SETPGROUP</code>:
+ Setting of the new task's process group is not supported.
+ NuttX does not support process groups.
+ </li>
+ <li>
+ <code>POSIX_SPAWN_SETSCHEDPARAM</code>:
+ Set new tasks priority to the <code>sched_param</code> value.
+ </li>
+ <li>
+ <code>POSIX_SPAWN_SETSCHEDULER</code>:
+ Set the new task's scheduler policy to the <code>sched_policy</code> value.
+ </li>
+ <li>
+ <code>POSIX_SPAWN_RESETIDS</code>
+ Resetting of the effective user ID of the child process is not supported.
+ NuttX does not support effective user IDs.
+ </li>
+ <li>
+ <code>POSIX_SPAWN_SETSIGMASK</code>:
+ Set the new task's signal mask.
+ </li>
+ <li>
+ <code>POSIX_SPAWN_SETSIGDEF</code>:
+ Resetting signal default actions is not supported.
+ NuttX does not support default signal actions.
+ </li>
+ </ul>
+ </li>
+ <li>
+ <p>
+ <code>argv</code>:
+ <code>argv[]</code> is the argument list for the new task. <code>argv[]</code> is an array of pointers to null-terminated strings.
+ The list is terminated with a null pointer.
+ </p>
+ </li>
+ <li>
+ <p>
+ <code>envp</code>:
+ The <code>envp[]</code> argument is not used by NuttX and may be <code>NULL</code>.
+ In standard implementations, <code>envp[]</code> is an array of character pointers to null-terminated strings that provide the environment for the new process image.
+ The environment array is terminated by a null pointer.
+ In NuttX, the <code>envp[]</code> argument is ignored and the new task will inherit the environment of the parent task unconditionally. </p>
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ <code>posix_spawn()</code> and <code>posix_spawnp()</code> will return zero on success.
+ Otherwise, an error number will be returned as the function return value to indicate the error:
+</p>
+<ul>
+ <li>
+ <code>EINVAL</code>:
+ The value specified by <code>file_actions</code> or <code>attr</code> is invalid.
+ </li>
+ <li>
+ Any errors that might have been return if <code>vfork()</code> and <code>excec[l|v]()</code> had been called.
+ </li>
+</ul>
+<p>
+ <b>Assumptions/Limitations:</b>
+</p>
+<ul>
+ <li>
+ NuttX provides only <code>posix_spawn()</code> or <code>posix_spawnp()</code> behavior depending upon the setting of <code>CONFIG_BINFMT_EXEPATH</code>:
+ If <code>CONFIG_BINFMT_EXEPATH</code> is defined, then only <code>posix_spawnp()</code> behavior is supported; otherwise, only <code>posix_spawn()</code> behavior is supported.
+ </li>
+ <li>
+ The <code>envp</code> argument is not used and the <code>environ</code> variable is not altered (NuttX does not support the <code>environ</code> variable).
+ </li>
+ <li>
+ Process groups are not supported (See <code>POSIX_SPAWN_SETPGROUP</code> above).
+ </li>
+ <li>
+ Effective user IDs are not supported (See <code>POSIX_SPAWN_RESETIDS</code> above).
+ </li>
+ <li>
+ Signal default actions cannot be modified in the newly task executed because NuttX does not support default signal actions (See <code>POSIX_SPAWN_SETSIGDEF</code>).
+ </li>
+</ul>
+<p>
+ <b>POSIX Compatibility:</b>
+ The value of the <code>argv[0]</code> received by the child task is assigned by NuttX.
+ For the caller of <code>posix_spawn()</code>, the provided argv[0] will correspond to <code>argv[1]</code> received by the new task.
+</p>
+
+<h3><a name="posix_spawn_file_actions_init">2.1.12 posix_spawn_file_actions_init</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawn_file_actions_init(FAR posix_spawn_file_actions_t *file_actions);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawn_file_actions_init()</code> function initializes the object referenced by <code>file_actions</code> to an empty set of file actions for subsequent use in a call to <code>posix_spawn()</code> or <code>posix_spawnp()</code>.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>file_actions</code>:
+ The address of the <code>posix_spawn_file_actions_t</code> to be initialized.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>.
+<p>
+
+<h3><a name="posix_spawn_file_actions_destroy">2.1.13 posix_spawn_file_actions_destroy</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawn_file_actions_destroy(FAR posix_spawn_file_actions_t *file_actions);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawn_file_actions_destroy()</code> function destroys the object referenced by <code>file_actions</code> which was previously intialized by <code>posix_spawn_file_actions_init()</code>, returning any resources obtained at the time of initialization to the system for subsequent reuse.
+ A <code>posix_spawn_file_actions_t</code> may be reinitialized after having been destroyed, but must not be reused after destruction, unless it has been reinitialized.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>file_actions</code>:
+ The address of the <code>posix_spawn_file_actions_t</code> to be destroyed.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+<p>
+
+<h3><a name="posix_spawn_file_actions_addclose">2.1.14 posix_spawn_file_actions_addclose</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawn_file_actions_addclose(FAR posix_spawn_file_actions_t *file_actions, int fd);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawn_file_actions_addclose()</code> function adds a <i>close</i> operation to the list of operations associated with the object referenced by <code>file_actions</code>, for subsequent use in a call to <code>posix_spawn()</code> or <code>posix_spawnp()</code>.
+ The descriptor referred to by <code>fd</code> is closed as if <code>close()</code> had been called on it prior to the new child process starting execution.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>file_actions</code>:
+ The address of the <code>posix_spawn_file_actions_t</code> object to which the <i>close</i> operation will be appended.
+ </li>
+ <li>
+ <code>fd</code>:
+ The file descriptor to be closed.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawn_file_actions_adddup2">2.1.15 posix_spawn_file_actions_adddup2</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawn_file_actions_adddup2(FAR posix_spawn_file_actions_t *file_actions, int fd1, int fd2);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawn_file_actions_adddup2()</code> function adds a <i>dup2</i> operation to the list of operations associated with the object referenced by <code>file_actions</code>, for subsequent use in a call to <code>posix_spawn()</code> or <code>posix_spawnp()</code>.
+ The descriptor referred to by <code>fd2</code> is created as if <code>dup2()</code> had been called on <code>fd1</code> prior to the new child process starting execution.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>file_actions</code>:
+ The address of the <code>posix_spawn_file_actions_t</code> object to which the <i>dup2</i> operation will be appended.
+ </li>
+ <li>
+ <code>fd1</code>:
+ The file descriptor to be be duplicated.
+ The first file descriptor to be argument to <code>dup2()</code>.
+ </li>
+ <li>
+ <code>fd2</code>:
+ The file descriptor to be be created.
+ The second file descriptor to be argument to <code>dup2()</code>.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawn_file_actions_addopen">2.1.16 posix_spawn_file_actions_addopen</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawn_file_actions_addopen(FAR posix_spawn_file_actions_t *file_actions,
+ int fd, FAR const char *path, int oflags, mode_t mode);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawn_file_actions_addopen()</code> function adds an <i>open</i> operation to the list of operations associated with the object referenced by <code>file_actions</code>, for subsequent use in a call to <code>posix_spawn()</code> or <code>posix_spawnp()</code>.
+ The descriptor referred to by <code>fd</code> is opened using the <code>path</code>, <code>oflag</code>, and <code>mode</code> arguments as if <code>open()</code> had been called on it prior to the new child process starting execution.
+ The string path is copied by the <code>posix_spawn_file_actions_addopen()</code> function during this process, so storage need not be persistent in the caller.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>file_actions</code>:
+ The address of the <code>posix_spawn_file_actions_t</code> object to which the <i>open</i> operation will be appended.
+ </li>
+ <li>
+ <code>fd</code>:
+ The file descriptor to be opened.
+ </li>
+ <li>
+ <code>path</code>:
+ The path to be opened.
+ </li>
+ <li>
+ <code>oflags</code>:
+ Open flags.
+ </li>
+ <li>
+ <code>mode</code>:
+ File creation mode/
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawnattr_init">2.1.17 posix_spawnattr_init</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawnattr_init(FAR posix_spawnattr_t *attr);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawnattr_init()</code> function initializes the object referenced by <code>attr</code>, to an empty set of spawn attributes for subsequent use in a call to <code>posix_spawn()</code> or <code>posix_spawnp()</code>.
+<p>
+<p>
+ Then the spawn attributes are no longer needed, they should be destroyed by calling <code>posix_spawnattr_destroyed()</code>.
+ In NuttX, however, <code>posix_spawnattr_destroyed()</code> is just stub:
+</p>
+<ul><pre>
+#define posix_spawnattr_destroy(attr) (0)
+</pre></ul>
+<p>
+ For portability, the convention of calling <code>posix_spawnattr_destroyed()</code> when the attributes are not longer needed should still be followed.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>attr</code>:
+ The address of the spawn attributes to be initialized.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawnattr_getflags">2.1.18 posix_spawnattr_getflags</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawnattr_getflags(FAR const posix_spawnattr_t *attr, FAR short *flags);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawnattr_getflags()</code> function will obtain the value of the <i>spawn-flags</i> attribute from the attributes object referenced by <code>attr</code>.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>attr</code>:
+ The address spawn attributes to be queried.
+ </li>
+ <li>
+ <code>flags</code>:
+ The location to return the spawn flags
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawnattr_getschedparam">2.1.19 posix_spawnattr_getschedparam</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawnattr_getschedparam(FAR const posix_spawnattr_t *attr, FAR struct sched_param *param);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawnattr_getschedparam()</code> function will obtain the value of the <i>spawn-schedparam</i> attribute from the attributes object referenced by <code>attr</code>.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>attr</code>:
+ The address spawn attributes to be queried.
+ </li>
+ <li>
+ <code>param</code>:
+ The location to return the <i>spawn-schedparam</i> value.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawnattr_getschedpolicy">2.1.20 posix_spawnattr_getschedpolicy</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawnattr_getschedpolicy(FAR const posix_spawnattr_t *attr, FAR int *policy);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawnattr_getschedpolicy()</code> function will obtain the value of the <i>spawn-schedpolicy</i> attribute from the attributes object referenced by <code>attr</code>.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>attr</code>:
+ The address spawn attributes to be queried.
+ </li>
+ <li>
+ <code>policy</code>:
+ The location to return the <i>spawn-schedpolicy</i> value.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawnattr_getsigmask">2.1.21 posix_spawnattr_getsigmask</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+#ifndef CONFIG_DISABLE_SIGNALS
+int posix_spawnattr_getsigmask(FAR const posix_spawnattr_t *attr, FAR sigset_t *sigmask);
+#endif
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawnattr_getsigdefault()</code> function will obtain the value of the <i>spawn-sigmask</i> attribute from the attributes object referenced by <code>attr</code>.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>attr</code>:
+ The address spawn attributes to be queried.
+ </li>
+ <li>
+ <code>sigmask</code>:
+ The location to return the <i>spawn-sigmask</i> value.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawnattr_setflags">2.1.22 posix_spawnattr_setflags</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawnattr_setflags(FAR posix_spawnattr_t *attr, short flags);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawnattr_setflags()</code> function will set the <i>spawn-flags</i> attribute in an initialized attributes object referenced by <code>attr</code>.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>attr</code>:
+ The address spawn attributes to be used.
+ </li>
+ <li>
+ <code>flags</code>:
+ The new value of the <i>spawn-flags</i> attribute.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawnattr_setschedparam">2.1.23 posix_spawnattr_setschedparam</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawnattr_setschedparam(FAR posix_spawnattr_t *attr, FAR const struct sched_param *param);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawnattr_setschedparam()</code> function will set the <i>spawn-schedparam</i> attribute in an initialized attributes object referenced by <code>attr</code>.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>attr</code>:
+ The address spawn attributes to be used.
+ </li>
+ <li>
+ <code>param</code>:
+ The new value of the <i>spawn-schedparam</i> attribute.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawnattr_setschedpolicy">2.1.24 posix_spawnattr_setschedpolicy</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+int posix_spawnattr_setschedpolicy(FAR posix_spawnattr_t *attr, int policy);
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawnattr_setschedpolicy()</code> function will set the <i>spawn-schedpolicy</i> attribute in an initialized attributes object referenced by <code>attr</code>.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>attr</code>:
+ The address spawn attributes to be used.
+ </li>
+ <li>
+ <code>policy</code>:
+ The new value of the <i>spawn-schedpolicy</i> attribute.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
+<h3><a name="posix_spawnattr_setsigmask">2.1.25 posix_spawnattr_setsigmask</a></h3>
+<p>
+ <b>Function Prototype:</b>
+</p>
+ <ul><pre>
+#include &lt;spawn.h&gt;
+#ifndef CONFIG_DISABLE_SIGNALS
+int posix_spawnattr_setsigmask(FAR posix_spawnattr_t *attr, FAR const sigset_t *sigmask);
+#endif
+</pre></ul>
+<p>
+ <b>Description:</b>
+ The <code>posix_spawnattr_setsigmask()</code> function will set the <i>spawn-sigmask</i> attribute in an initialized attributes object referenced by <code>attr</code>.
+</p>
+<p>
+ <b>Input Parameters:</b>
+</p>
+<ul>
+ <li>
+ <code>attr</code>:
+ The address spawn attributes to be used.
+ </li>
+ <li>
+ <code>sigmask</code>:
+ The new value of the <i>spawn-sigmask</i> attribute.
+ </li>
+</ul>
+<p>
+ <b>Returned Value:</b>
+ On success, this function returns 0; on failure it will return an error number from <code>&lt;errno.h&gt;</code>
+</p>
+
<table width ="100%">
<tr bgcolor="#e4e4e4">
<td>
@@ -8395,13 +9018,30 @@ notify a task when a message is available on a queue.
<li><a href="#onexit">on_exit</a>
<li><a href="#drvrfcntlops">open</a></li>
<li><a href="#dirdirentops">opendir</a></li>
-</td>
-<td valign="top" width="33%">
<li><a href="#OS_Interfaces">OS Interfaces</a></li>
<li><a href="#pause">pause</a></li>
<li><a href="#pipe">pipe</a></li>
<li><a href="#poll">poll</a></li>
<li><a href="#drvrpollops">poll.h</a></li>
+</td>
+<td valign="top" width="33%">
+ <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_adddup2">posix_spawn_file_actions_adddup2</a></li>
+ <li><a href="#posix_spawn_file_actions_addopen">posix_spawn_file_actions_addopen</a></li>
+ <li><a href="#posix_spawn_file_actions_destroy">posix_spawn_file_actions_destroy</a></li>
+ <li><a href="#posix_spawn_file_actions_init">posix_spawn_file_actions_init</a></li>
+ <li><a href="#posix_spawnattr_init">posix_spawnattr_init</a></li>
+ <li><a href="#posix_spawnattr_init">posix_spawnattr_destroy</a></li>
+ <li><a href="#posix_spawnattr_getflags">posix_spawnattr_getflags</a></li>
+ <li><a href="#posix_spawnattr_getschedparam">posix_spawnattr_getschedparam</a></li>
+ <li><a href="#posix_spawnattr_getschedpolicy">posix_spawnattr_getschedpolicy</a></li>
+ <li><a href="#posix_spawnattr_getsigmask">posix_spawnattr_getsigmask</a></li>
+ <li><a href="#posix_spawnattr_setflags">posix_spawnattr_setflags</a></li>
+ <li><a href="#posix_spawnattr_setschedparam">posix_spawnattr_setschedparam</a></li>
+ <li><a href="#posix_spawnattr_setschedpolicy">posix_spawnattr_setschedpolicy</a></li>
+ <li><a href="#posix_spawnattr_setsigmask">posix_spawnattr_setsigmask</a></li>
+ <li><a href="#posix_spawn">posix_spawnp</a></li>
<li><a href="#standardio">printf</a></li>
<li><a href="#Pthread">Pthread Interfaces</a>
<li><a href="#pthreadattrdestroy">pthread_attr_destroy</a></li>
@@ -8467,6 +9107,8 @@ notify a task when a message is available on a queue.
<li><a href="#recv">recv</a></li>
<li><a href="#recvfrom">recvfrom</a></li>
<li><a href="#standardio">rename</a></li>
+</td>
+<td valign="top">
<li><a href="#standardio">rmdir</a></li>
<li><a href="#dirdirentops">rewinddir</a></li>
<li><a href="#mmapxip">ROM disk driver</a></li>
@@ -8474,8 +9116,6 @@ notify a task when a message is available on a queue.
<li><a href="#schedgetparam">sched_getparam</a></li>
<li><a href="#schedgetprioritymax">sched_get_priority_max</a></li>
<li><a href="#schedgetprioritymin">sched_get_priority_min</a></li>
-</td>
-<td valign="top">
<li><a href="#schedgetrrinterval">sched_get_rr_interval</a></li>
<li><a href="#schedlockcount">sched_lockcount</a></li>
<li><a href="#schedlock">sched_lock</a></li>