Files
rtems/doc/posix_users/process.t
Joel Sherrill 9b4422a251 Remove All CVS Id Strings Possible Using a Script
Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines
  next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
  contain CVS Ids
+ If the processing left a blank line at the top of
  a file, it was removed.
2012-05-11 08:44:13 -05:00

494 lines
7.0 KiB
Perl

@c
@c COPYRIGHT (c) 1988-2002.
@c On-Line Applications Research Corporation (OAR).
@c All rights reserved.
@chapter Process Creation and Execution Manager
@section 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:
@itemize @bullet
@item @code{fork} - Create a Process
@item @code{execl} - Execute a File
@item @code{execv} - Execute a File
@item @code{execle} - Execute a File
@item @code{execve} - Execute a File
@item @code{execlp} - Execute a File
@item @code{execvp} - Execute a File
@item @code{pthread_atfork} - Register Fork Handlers
@item @code{wait} - Wait for Process Termination
@item @code{waitpid} - Wait for Process Termination
@item @code{_exit} - Terminate a Process
@end itemize
@section Background
POSIX process functionality can not be completely
supported by RTEMS. This is because RTEMS provides no memory
protection and implements a @i{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, @code{getpid()} returns the node number.
@section Operations
The only functionality method defined by this manager which is
supported by RTEMS is the @code{_exit} service. The
implementation of @code{_exit} shuts the application down and
is equivalent to invoking either @code{exit} or
@code{rtems_shutdown_executive}.
@section 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.
@c
@c
@c
@page
@subsection fork - Create a Process
@findex fork
@cindex create a process
@subheading CALLING SEQUENCE:
@ifset is-C
@example
#include <sys/types.h>
int fork( void );
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item ENOSYS
This routine is not supported by RTEMS.
@end table
@subheading DESCRIPTION:
This routine is not supported by RTEMS.
@subheading NOTES:
NONE
@c
@c
@c
@page
@subsection execl - Execute a File
@findex execl
@cindex execute a file
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int execl(
const char *path,
const char *arg,
...
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item ENOSYS
This routine is not supported by RTEMS.
@end table
@subheading DESCRIPTION:
This routine is not supported by RTEMS.
@subheading NOTES:
NONE
@c
@c
@c
@page
@subsection execv - Execute a File
@findex execv
@cindex execute a file
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int execv(
const char *path,
char const *argv[],
...
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item ENOSYS
This routine is not supported by RTEMS.
@end table
@subheading DESCRIPTION:
This routine is not supported by RTEMS.
@subheading NOTES:
NONE
@c
@c
@c
@page
@subsection execle - Execute a File
@findex execle
@cindex execute a file
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int execle(
const char *path,
const char *arg,
...
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item ENOSYS
This routine is not supported by RTEMS.
@end table
@subheading DESCRIPTION:
This routine is not supported by RTEMS.
@subheading NOTES:
NONE
@c
@c
@c
@page
@subsection execve - Execute a File
@findex execve
@cindex execute a file
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int execve(
const char *path,
char *const argv[],
char *const envp[]
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item ENOSYS
This routine is not supported by RTEMS.
@end table
@subheading DESCRIPTION:
This routine is not supported by RTEMS.
@subheading NOTES:
NONE
@c
@c
@c
@page
@subsection execlp - Execute a File
@findex execlp
@cindex execute a file
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int execlp(
const char *file,
const char *arg,
...
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item ENOSYS
This routine is not supported by RTEMS.
@end table
@subheading DESCRIPTION:
This routine is not supported by RTEMS.
@subheading NOTES:
NONE
@c
@c
@c
@page
@subsection execvp - Execute a File
@findex execvp
@cindex execute a file
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int execvp(
const char *file,
char *const argv[]
...
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item ENOSYS
This routine is not supported by RTEMS.
@end table
@subheading DESCRIPTION:
This routine is not supported by RTEMS.
@subheading NOTES:
NONE
@c
@c
@c
@page
@subsection pthread_atfork - Register Fork Handlers
@findex pthread_atfork
@cindex register fork handlers
@subheading CALLING SEQUENCE:
@ifset is-C
@example
#include <sys/types.h>
int pthread_atfork(
void (*prepare)(void),
void (*parent)(void),
void (*child)(void)
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item ENOSYS
This routine is not supported by RTEMS.
@end table
@subheading DESCRIPTION:
This routine is not supported by RTEMS.
@subheading NOTES:
NONE
@c
@c
@c
@page
@subsection wait - Wait for Process Termination
@findex wait
@cindex wait for process termination
@subheading CALLING SEQUENCE:
@ifset is-C
@example
#include <sys/types.h>
#include <sys/wait.h>
int wait(
int *stat_loc
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item ENOSYS
This routine is not supported by RTEMS.
@end table
@subheading DESCRIPTION:
This routine is not supported by RTEMS.
@subheading NOTES:
NONE
@c
@c
@c
@page
@subsection waitpid - Wait for Process Termination
@findex waitpid
@cindex wait for process termination
@subheading CALLING SEQUENCE:
@ifset is-C
@example
int wait(
pid_t pid,
int *stat_loc,
int options
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
@table @b
@item ENOSYS
This routine is not supported by RTEMS.
@end table
@subheading DESCRIPTION:
This routine is not supported by RTEMS.
@subheading NOTES:
NONE
@c
@c
@c
@page
@subsection _exit - Terminate a Process
@findex _exit
@cindex terminate a process
@subheading CALLING SEQUENCE:
@ifset is-C
@example
void _exit(
int status
);
@end example
@end ifset
@ifset is-Ada
@end ifset
@subheading STATUS CODES:
NONE
@subheading DESCRIPTION:
The @code{_exit()} function terminates the calling process.
@subheading NOTES:
In RTEMS, a process is equivalent to the entire application on a single
processor. Invoking this service terminates the application.