aboutsummaryrefslogtreecommitdiff
path: root/nuttx/include
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-01-18 01:52:42 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2013-01-18 01:52:42 +0000
commit76753ad9cb67133892000f19de10f93de78bb525 (patch)
tree1eae1d92a03b0a2cbd1e83b45704a24d8662cf17 /nuttx/include
parent2f653578c632ec95e94f67306af24c7d82700d28 (diff)
downloadpx4-firmware-76753ad9cb67133892000f19de10f93de78bb525.tar.gz
px4-firmware-76753ad9cb67133892000f19de10f93de78bb525.tar.bz2
px4-firmware-76753ad9cb67133892000f19de10f93de78bb525.zip
Add internal API task_reparent(), used in posix_spawn(). Move libc/spawn/lib_ps.c to sched/task_posixspawn.c; Move libc/spawn/spawn.h to include/nuttx/spawn.h
git-svn-id: http://svn.code.sf.net/p/nuttx/code/trunk@5531 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/include')
-rw-r--r--nuttx/include/nuttx/spawn.h121
-rw-r--r--nuttx/include/signal.h9
2 files changed, 127 insertions, 3 deletions
diff --git a/nuttx/include/nuttx/spawn.h b/nuttx/include/nuttx/spawn.h
new file mode 100644
index 000000000..f84ae8355
--- /dev/null
+++ b/nuttx/include/nuttx/spawn.h
@@ -0,0 +1,121 @@
+/****************************************************************************
+ * include/nuttx/spawn.h
+ *
+ * Copyright (C) 2013 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <gnutt@nuttx.org>
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ * 3. Neither the name NuttX nor the names of its contributors may be
+ * used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+ * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ ****************************************************************************/
+
+#ifndef __INCLUDE_NUTTX_SPAWN_H
+#define __INCLUDE_NUTTX_SPAWN_H
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <nuttx/config.h>
+
+#include <spawn.h>
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+/****************************************************************************
+ * Type Definitions
+ ****************************************************************************/
+/* This enumerator identifies a file action */
+
+enum spawn_file_actions_e
+{
+ SPAWN_FILE_ACTION_NONE = 0,
+ SPAWN_FILE_ACTION_CLOSE,
+ SPAWN_FILE_ACTION_DUP2,
+ SPAWN_FILE_ACTION_OPEN
+};
+
+/* posix_spawn_file_actions_addclose(), posix_spawn_file_actions_adddup2(),
+ * and posix_spawn_file_actions_addopen() will allocate memory and append
+ * a new file action to an instance of posix_spawn_file_actions_t. The
+ * internal representation of these structures are defined below:
+ */
+
+struct spawn_general_file_action_s
+{
+ FAR struct spawn_general_file_action_s *flink; /* Supports a singly linked list */
+ enum spawn_file_actions_e action; /* A member of enum spawn_file_actions_e */
+};
+
+struct spawn_close_file_action_s
+{
+ FAR struct spawn_general_file_action_s *flink; /* Supports a singly linked list */
+ enum spawn_file_actions_e action; /* SPAWN_FILE_ACTION_CLOSE */
+ int fd; /* The file descriptor to close */
+};
+
+struct spawn_dup2_file_action_s
+{
+ FAR struct spawn_general_file_action_s *flink; /* Supports a singly linked list */
+ enum spawn_file_actions_e action; /* SPAWN_FILE_ACTION_DUP2 */
+ int fd1; /* The first file descriptor for dup2() */
+ int fd2; /* The second file descriptor for dup2() */
+};
+
+struct spawn_open_file_action_s
+{
+ FAR struct spawn_general_file_action_s *flink; /* Supports a singly linked list */
+ enum spawn_file_actions_e action; /* SPAWN_FILE_ACTION_OPEN */
+ int fd; /* The file descriptor after opening */
+ int oflags; /* Open flags */
+ mode_t mode; /* File creation mode */
+ char path[1]; /* Start of the path to be
+ * opened */
+};
+
+#define SIZEOF_OPEN_FILE_ACTION_S(n) \
+ (sizeof(struct spawn_open_file_action_s) + (n))
+
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+void add_file_action(FAR posix_spawn_file_actions_t *file_action,
+ FAR struct spawn_general_file_action_s *entry);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __INCLUDE_NUTTX_SPAWN_H */
diff --git a/nuttx/include/signal.h b/nuttx/include/signal.h
index 30726105b..7c6b4cd55 100644
--- a/nuttx/include/signal.h
+++ b/nuttx/include/signal.h
@@ -61,14 +61,17 @@
/* All signals are "real time" signals */
-#define SIGRTMIN 0 /* First real time signal */
-#define SIGRTMAX 31 /* Last real time signal */
+#define SIGRTMIN MIN_SIGNO /* First real time signal */
+#define SIGRTMAX MAX_SIGNO /* Last real time signal */
/* A few of the real time signals are used within the OS. They have
* default values that can be overridden from the configuration file. The
* rest are all user signals.
*
- * These are semi-standard signal definitions:
+ * The signal number zero is wasted for the most part. It is a valid
+ * signal number, but has special meaning at many interfaces (e.g., Kill()).
+ *
+ * These are the semi-standard signal definitions:
*/
#ifndef CONFIG_SIG_SIGUSR1