summaryrefslogtreecommitdiffstats
path: root/posix_users/process_creation_and_execution.rst
diff options
context:
space:
mode:
Diffstat (limited to 'posix_users/process_creation_and_execution.rst')
-rw-r--r--posix_users/process_creation_and_execution.rst421
1 files changed, 0 insertions, 421 deletions
diff --git a/posix_users/process_creation_and_execution.rst b/posix_users/process_creation_and_execution.rst
deleted file mode 100644
index 1668695..0000000
--- a/posix_users/process_creation_and_execution.rst
+++ /dev/null
@@ -1,421 +0,0 @@
-.. comment SPDX-License-Identifier: CC-BY-SA-4.0
-
-.. COMMENT: COPYRIGHT (c) 1988-2002.
-.. COMMENT: On-Line Applications Research Corporation (OAR).
-.. COMMENT: All rights reserved.
-
-Process Creation and Execution Manager
-######################################
-
-Introduction
-============
-
-The process creation and execution manager provides the functionality
-associated with the creation and termination of processes.
-
-The directives provided by the process creation and execution manager are:
-
-- fork_ - Create a Process
-
-- execl_ - Execute a File
-
-- execv_ - Execute a File
-
-- execle_ - Execute a File
-
-- execve_ - Execute a File
-
-- execlp_ - Execute a File
-
-- execvp_ - Execute a File
-
-- pthread_atfork_ - Register Fork Handlers
-
-- wait_ - Wait for Process Termination
-
-- waitpid_ - Wait for Process Termination
-
-- `_exit`_ - Terminate a Process
-
-Background
-==========
-
-POSIX process functionality can not be completely supported by RTEMS. This is
-because RTEMS provides no memory protection and implements a *single process,
-multi-threaded execution model*. In this light, RTEMS provides none of the
-routines that are associated with the creation of new processes. However,
-since the entire RTEMS application (e.g. executable) is logically a single
-POSIX process, RTEMS is able to provide implementations of many operations on
-processes. The rule of thumb is that those routines provide a meaningful
-result. For example, ``getpid()`` returns the node number.
-
-Operations
-==========
-
-The only functionality method defined by this manager which is supported by
-RTEMS is the ``_exit`` service. The implementation of ``_exit`` shuts the
-application down and is equivalent to invoking either ``exit`` or
-``rtems_shutdown_executive``.
-
-Directives
-==========
-
-This section details the process creation and execution manager's directives.
-A subsection is dedicated to each of this manager's directives and describes
-the calling sequence, related constants, usage, and status codes.
-
-.. _fork:
-
-fork - Create a Process
------------------------
-.. index:: fork
-.. index:: create a process
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- #include <sys/types.h>
- int fork( void );
-
-**STATUS CODES:**
-
-.. list-table::
- :class: rtems-table
-
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
-
-**DESCRIPTION:**
-
-This routine is not supported by RTEMS.
-
-**NOTES:**
-
-NONE
-
-.. _execl:
-
-execl - Execute a File
-----------------------
-.. index:: execl
-.. index:: execute a file
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- int execl(
- const char *path,
- const char *arg,
- ...
- );
-
-**STATUS CODES:**
-
-.. list-table::
- :class: rtems-table
-
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
-
-**DESCRIPTION:**
-
-This routine is not supported by RTEMS.
-
-**NOTES:**
-
-NONE
-
-.. _execv:
-
-execv - Execute a File
-----------------------
-.. index:: execv
-.. index:: execute a file
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- int execv(
- const char *path,
- char const *argv[],
- ...
- );
-
-**STATUS CODES:**
-
-.. list-table::
- :class: rtems-table
-
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
-
-**DESCRIPTION:**
-
-This routine is not supported by RTEMS.
-
-**NOTES:**
-
-NONE
-
-.. _execle:
-
-execle - Execute a File
------------------------
-.. index:: execle
-.. index:: execute a file
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- int execle(
- const char *path,
- const char *arg,
- ...
- );
-
-**STATUS CODES:**
-
-.. list-table::
- :class: rtems-table
-
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
-
-**DESCRIPTION:**
-
-This routine is not supported by RTEMS.
-
-**NOTES:**
-
-NONE
-
-.. _execve:
-
-execve - Execute a File
------------------------
-.. index:: execve
-.. index:: execute a file
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- int execve(
- const char *path,
- char *const argv[],
- char *const envp[]
- );
-
-**STATUS CODES:**
-
-.. list-table::
- :class: rtems-table
-
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
-
-**DESCRIPTION:**
-
-This routine is not supported by RTEMS.
-
-**NOTES:**
-
-NONE
-
-.. _execlp:
-
-execlp - Execute a File
------------------------
-.. index:: execlp
-.. index:: execute a file
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- int execlp(
- const char *file,
- const char *arg,
- ...
- );
-
-**STATUS CODES:**
-
-.. list-table::
- :class: rtems-table
-
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
-
-**DESCRIPTION:**
-
-This routine is not supported by RTEMS.
-
-**NOTES:**
-
-NONE
-
-.. _execvp:
-
-execvp - Execute a File
------------------------
-.. index:: execvp
-.. index:: execute a file
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- int execvp(
- const char *file,
- char *const argv[],
- ...
- );
-
-**STATUS CODES:**
-
-.. list-table::
- :class: rtems-table
-
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
-
-**DESCRIPTION:**
-
-This routine is not supported by RTEMS.
-
-**NOTES:**
-
-NONE
-
-.. _pthread_atfork:
-
-pthread_atfork - Register Fork Handlers
----------------------------------------
-.. index:: pthread_atfork
-.. index:: register fork handlers
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- #include <sys/types.h>
- int pthread_atfork(
- void (*prepare)(void),
- void (*parent)(void),
- void (*child)(void)
- );
-
-**STATUS CODES:**
-
-.. list-table::
- :class: rtems-table
-
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
-
-**DESCRIPTION:**
-
-This routine is not supported by RTEMS.
-
-**NOTES:**
-
-NONE
-
-.. _wait:
-
-wait - Wait for Process Termination
------------------------------------
-.. index:: wait
-.. index:: wait for process termination
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- #include <sys/types.h>
- #include <sys/wait.h>
- int wait(
- int *stat_loc
- );
-
-**STATUS CODES:**
-
-.. list-table::
- :class: rtems-table
-
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
-
-**DESCRIPTION:**
-
-This routine is not supported by RTEMS.
-
-**NOTES:**
-
-NONE
-
-.. _waitpid:
-
-waitpid - Wait for Process Termination
---------------------------------------
-.. index:: waitpid
-.. index:: wait for process termination
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- int wait(
- pid_t pid,
- int *stat_loc,
- int options
- );
-
-**STATUS CODES:**
-
-.. list-table::
- :class: rtems-table
-
- * - ``ENOSYS``
- - This routine is not supported by RTEMS.
-
-**DESCRIPTION:**
-
-This routine is not supported by RTEMS.
-
-**NOTES:**
-
-NONE
-
-.. _\_exit:
-
-_exit - Terminate a Process
----------------------------
-.. index:: _exit
-.. index:: terminate a process
-
-**CALLING SEQUENCE:**
-
-.. code-block:: c
-
- void _exit(
- int status
- );
-
-**STATUS CODES:**
-
-NONE
-
-**DESCRIPTION:**
-
-The ``_exit()`` function terminates the calling process.
-
-**NOTES:**
-
-In RTEMS, a process is equivalent to the entire application on a single
-processor. Invoking this service terminates the application.