From e9264513e4b557f78551dd33c2bd2ff770ee4cb5 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Thu, 19 Nov 1998 16:33:49 +0000 Subject: Merged these into POSIX manual. --- doc/new_chapters/cancel.t | 175 ---- doc/new_chapters/clock.t | 274 ------ doc/new_chapters/cond.t | 323 ------- doc/new_chapters/cspecific.t | 623 ------------ doc/new_chapters/device.t | 465 --------- doc/new_chapters/files.t | 2088 ----------------------------------------- doc/new_chapters/io.t | 1085 --------------------- doc/new_chapters/key.t | 140 --- doc/new_chapters/memorymgmt.t | 315 ------- doc/new_chapters/message.t | 259 ----- doc/new_chapters/mutex.t | 555 ----------- doc/new_chapters/preface.texi | 34 - doc/new_chapters/procenv.t | 654 ------------- doc/new_chapters/process.t | 414 -------- doc/new_chapters/sched.t | 175 ---- doc/new_chapters/semaphores.t | 287 ------ doc/new_chapters/signal.t | 728 -------------- doc/new_chapters/systemdb.t | 259 ----- doc/new_chapters/thread.t | 892 ------------------ 19 files changed, 9745 deletions(-) delete mode 100644 doc/new_chapters/cancel.t delete mode 100644 doc/new_chapters/clock.t delete mode 100644 doc/new_chapters/cond.t delete mode 100644 doc/new_chapters/cspecific.t delete mode 100644 doc/new_chapters/device.t delete mode 100644 doc/new_chapters/files.t delete mode 100644 doc/new_chapters/io.t delete mode 100644 doc/new_chapters/key.t delete mode 100644 doc/new_chapters/memorymgmt.t delete mode 100644 doc/new_chapters/message.t delete mode 100644 doc/new_chapters/mutex.t delete mode 100644 doc/new_chapters/preface.texi delete mode 100644 doc/new_chapters/procenv.t delete mode 100644 doc/new_chapters/process.t delete mode 100644 doc/new_chapters/sched.t delete mode 100644 doc/new_chapters/semaphores.t delete mode 100644 doc/new_chapters/signal.t delete mode 100644 doc/new_chapters/systemdb.t delete mode 100644 doc/new_chapters/thread.t diff --git a/doc/new_chapters/cancel.t b/doc/new_chapters/cancel.t deleted file mode 100644 index e71d70c6df..0000000000 --- a/doc/new_chapters/cancel.t +++ /dev/null @@ -1,175 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Thread Cancellation Manager - -@section Introduction - -The -thread cancellation manager is ... - -The directives provided by the thread cancellation manager are: - -@itemize @bullet -@item @code{pthread_cancel} - -@item @code{pthread_setcancelstate} - -@item @code{pthread_setcanceltype} - -@item @code{pthread_testcancel} - -@item @code{pthread_cleanup_push} - -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the thread cancellation 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. - -@page -@subsection pthread_cancel - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int pthread_cancel( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_setcancelstate - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int pthread_setcancelstate( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_setcanceltype - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int pthread_setcanceltype( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_testcancel - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int pthread_testcancel( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_cleanup_push - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int pthread_cleanup_push( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/clock.t b/doc/new_chapters/clock.t deleted file mode 100644 index 7c05acd671..0000000000 --- a/doc/new_chapters/clock.t +++ /dev/null @@ -1,274 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Clock Manager - -@section Introduction - -The clock manager ... - -The directives provided by the clock manager are: - -@itemize @bullet -@item @code{clock_gettime} - -@item @code{clock_settime} - -@item @code{clock_getres} - -@item @code{sleep} - Delay Process Execution -@item @code{nanosleep} - -@item @code{gettimeofday} - Get the Time of Day -@item @code{time} - Get time in seconds -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the clock 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. - -@subsection clock_gettime - - -@subheading CALLING SEQUENCE: - -@example -#include - -int clock_gettime( - clockid_t clock_id, - struct timespec *tp -); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets errno to one of the following: - -@table @b -@item EINVAL -The tp pointer parameter is invalid. - -@item EINVAL -The clock_id specified is invalid. -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -NONE - -@page -@subsection clock_settime - - -@subheading CALLING SEQUENCE: - -@example -#include - -int clock_settime( - clockid_t clock_id, - const struct timespec *tp -); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets errno to one of the following: - -@table @b -@item EINVAL -The tp pointer parameter is invalid. - -@item EINVAL -The clock_id specified is invalid. - -@item EINVAL -The contents of the tp structure are invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -NONE - -@page -@subsection clock_getres - - -@subheading CALLING SEQUENCE: - -@example -#include - -int clock_getres( - clockid_t clock_id, - struct timespec *res -); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets errno to one of the following: - -@table @b -@item EINVAL -The res pointer parameter is invalid. - -@item EINVAL -The clock_id specified is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -If res is NULL, then the resolution is not returned. - -@page -@subsection sleep - Delay Process Execution - -@subheading CALLING SEQUENCE: - -@example -#include - -unsigned int sleep( - unsigned int seconds -); -@end example - -@subheading STATUS CODES: - -This routine returns the number of unslept seconds. - -@subheading DESCRIPTION: - -The @code{sleep()} function delays the calling thread by the specified -number of @code{seconds}. - -@subheading NOTES: - -This call is interruptible by a signal. - -@page -@subsection nanosleep - - -@subheading CALLING SEQUENCE: - -@example -#include - -int nanosleep( - const struct timespec *rqtp, - struct timespec *rmtp -); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets errno to one of the following: - -@table @b -@item EINTR -The routine was interrupted by a signal. - -@item EAGAIN -The requested sleep period specified negative seconds or nanoseconds. - -@item EINVAL -The requested sleep period specified an invalid number for the nanoseconds -field. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This call is interruptible by a signal. - -@page -@subsection gettimeofday - Get the Time of Day - -@subheading CALLING SEQUENCE: - -@example -#include -#include - -int gettimeofday( - struct timeval *tp, - struct timezone *tzp -); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets @code{errno} as appropriate. - -@table @b -@item EPERM -@code{settimeofdat} is called by someone other than the superuser. - -@item EINVAL -Timezone (or something else) is invalid. - -@item EFAULT -One of @code{tv} or @code{tz} pointed outside your accessible address -space - -@end table - -@subheading DESCRIPTION: - -This routine returns the current time of day in the @code{tp} structure. - -@subheading NOTES: - -Currently, the timezone information is not supported. The @code{tzp} -argument is ignored. - -@page -@subsection time - Get time in seconds - -@subheading CALLING SEQUENCE: - -@example -#include - -int time( - time_t *tloc -); -@end example - -@subheading STATUS CODES: - -This routine returns the number of seconds since the Epoch. - -@subheading DESCRIPTION: - -@code{time} returns the time since 00:00:00 GMT, January 1, 1970, -measured in seconds - -If @code{tloc} in non null, the return value is also stored in the -memory pointed to by @code{t}. - -@subheading NOTES: - -NONE - diff --git a/doc/new_chapters/cond.t b/doc/new_chapters/cond.t deleted file mode 100644 index 4c381a6864..0000000000 --- a/doc/new_chapters/cond.t +++ /dev/null @@ -1,323 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Condition Variable Manager - -@section Introduction - -The condition variable manager ... - -The directives provided by the condition variable manager are: - -@itemize @bullet -@item @code{pthread_condattr_init} - -@item @code{pthread_condattr_destroy} - -@item @code{pthread_condattr_setpshared} - -@item @code{pthread_condattr_getpshared} - -@item @code{pthread_cond_init} - -@item @code{pthread_cond_destroy} - -@item @code{pthread_cond_signal} - -@item @code{pthread_cond_broadcast} - -@item @code{pthread_cond_wait} - -@item @code{pthread_cond_timedwait} - -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the condition variable 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. - -@page -@subsection pthread_condattr_init - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_condattr_init( - pthread_condattr_t *attr -); -@end example - -@subheading STATUS CODES: -@table @b -@item ENOMEM -Insufficient memory is available to initialize the condition variable -attributes object. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_condattr_destroy - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_condattr_destroy( - pthread_condattr_t *attr -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The attribute object specified is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_condattr_setpshared - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_condattr_setpshared( - pthread_condattr_t *attr, - int pshared -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_condattr_getpshared - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_condattr_getpshared( - const pthread_condattr_t *attr, - int *pshared -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - - -@page -@subsection pthread_cond_init - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_cond_init( - pthread_cond_t *cond, - const pthread_condattr_t *attr -); -@end example - -@subheading STATUS CODES: -@table @b -@item EAGAIN -The system lacked a resource other than memory necessary to create the -initialize the condition variable object. - -@item ENOMEM -Insufficient memory is available to initialize the condition variable object. - -@item EBUSY -The specified condition variable has already been initialized. - -@item EINVAL -The specified attribute value is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_cond_destroy - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_cond_destroy( - pthread_cond_t *cond -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The specified condition variable is invalid. - -@item EBUSY -The specified condition variable is currently in use. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_cond_signal - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_cond_signal( - pthread_cond_t *cond -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The specified condition variable is not valid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine should not be invoked from a handler from an asynchronous signal -handler or an interrupt service routine. - -@page -@subsection pthread_cond_broadcast - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_cond_broadcast( - pthread_cond_t *cond -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The specified condition variable is not valid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine should not be invoked from a handler from an asynchronous signal -handler or an interrupt service routine. - -@page -@subsection pthread_cond_wait - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_cond_wait( - pthread_cond_t *cond, - pthread_mutex_t *mutex -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The specified condition variable or mutex is not initialized OR different -mutexes were specified for concurrent pthread_cond_wait() and -pthread_cond_timedwait() operations on the same condition variable OR -the mutex was not owned by the current thread at the time of the call. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_cond_timedwait - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_cond_timedwait( - pthread_cond_t *cond, - pthread_mutex_t *mutex, - const struct timespec *abstime -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The specified condition variable or mutex is not initialized OR different -mutexes were specified for concurrent pthread_cond_wait() and -pthread_cond_timedwait() operations on the same condition variable OR -the mutex was not owned by the current thread at the time of the call. - -@item ETIMEDOUT -The specified time has elapsed without the condition variable being -satisfied. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/cspecific.t b/doc/new_chapters/cspecific.t deleted file mode 100644 index 5e2de31617..0000000000 --- a/doc/new_chapters/cspecific.t +++ /dev/null @@ -1,623 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Language-Specific Services for the C Programming Language Manager - -@section Introduction - -The -language-specific services for the C programming language manager is ... - -The directives provided by the language-specific services for the C programming language manager are: - -@itemize @bullet -@item @code{setlocale} - -@item @code{fileno} - -@item @code{fdopen} - -@item @code{flcokfile} - -@item @code{ftrylockfile} - -@item @code{funlockfile} - -@item @code{getc_unlocked} - -@item @code{getchar_unlocked} - -@item @code{putc_unlocked} - -@item @code{putchar_unlocked} - -@item @code{setjmp} - -@item @code{longjmp} - -@item @code{sigsetjmp} - -@item @code{siglongjmp} - -@item @code{tzset} - -@item @code{strtok_r} - -@item @code{asctime_r} - -@item @code{ctime_r} - -@item @code{gmtime_r} - -@item @code{localtime_r} - -@item @code{rand_r} - -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the language-specific services for the C programming language 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. - -@page -@subsection setlocale - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int setlocale( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection fileno - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int fileno( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection fdopen - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int fdopen( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection flcokfile - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int flcokfile( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection ftrylockfile - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int ftrylockfile( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection funlockfile - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int funlockfile( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getc_unlocked - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getc_unlocked( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getchar_unlocked - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getchar_unlocked( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection putc_unlocked - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int putc_unlocked( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection putchar_unlocked - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int putchar_unlocked( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection setjmp - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int setjmp( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection longjmp - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int longjmp( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sigsetjmp - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sigsetjmp( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection siglongjmp - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int siglongjmp( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection tzset - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int tzset( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection strtok_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int strtok_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection asctime_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int asctime_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection ctime_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int ctime_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection gmtime_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int gmtime_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection localtime_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int localtime_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection rand_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int rand_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/device.t b/doc/new_chapters/device.t deleted file mode 100644 index 05ef101fec..0000000000 --- a/doc/new_chapters/device.t +++ /dev/null @@ -1,465 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Device- and Class- Specific Functions Manager - -@section Introduction - -The device- and class- specific functions manager is ... - -The directives provided by the device- and class- specific functions -manager are: - -@itemize @bullet -@item @code{cfgetispeed} - Reads terminal input baud rate -@item @code{cfgetospeed} - Reads terminal output baud rate -@item @code{cfsetispeed} - Sets terminal input baud rate -@item @code{cfsetospeed} - Set terminal output baud rate -@item @code{tcgetattr} - Gets terminal attributes -@item @code{tcsetattr} - Set terminal attributes -@item @code{tcsendbreak} - Sends a break to a terminal -@item @code{tcdrain} - Waits for all output to be transmitted to the terminal -@item @code{tcflush} - Discards terminal data -@item @code{tcflow} - Suspends/restarts terminal output -@item @code{tcgetpgrp} - Gets foreground process group ID -@item @code{tcsetpgrp} - Sets foreground process group ID -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the device- and class- specific functions 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. - -@page -@subsection cfgetispeed - Reads terminal input baud rate - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int cfgetispeed( - const struct termios *p -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -The @code{cfgetispeed()} function returns a code for baud rate. - -@subheading DESCRIPTION: - -The @code{cfsetispeed()} function stores a code for the terminal speed -stored in a struct termios. The codes are defined in @code{} -by the macros BO, B50, B75, B110, B134, B150, B200, B300, B600, B1200, -B1800, B2400, B4800, B9600, B19200, and B38400. - -The @code{cfsetispeed()} function does not do anything to the hardware. -It merely stores a value for use by @code{tcsetattr()}. - -@subheading NOTES: - -Baud rates are defined by symbols, such as B110, B1200, B2400. The actual -number returned for any given speed may change from system to system. - -@page -@subsection cfgetospeed - Reads terminal output baud rate - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int cfgetospeed( - const struct termios *p -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -The @code{cfgetospeed()} function returns the termios code for the baud rate. - -@subheading DESCRIPTION: - -The @code{cfgetospeed()} function returns a code for the terminal speed -stored in a @code{struct termios}. The codes are defined in @code{} -by the macros BO, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, -B2400, B4800, B9600, B19200, and B38400. - -The @code{cfgetospeed()} function does not do anything to the hardware. -It merely returns the value stored by a previous call to @code{tcgetattr()}. - -@subheading NOTES: - -Baud rates are defined by symbols, such as B110, B1200, B2400. The actual -number returned for any given speed may change from system to system. - -@page -@subsection cfsetispeed - Sets terminal input baud rate - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int cfsetispeed( - struct termios *p, - speed_t speed -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -The @code{cfsetispeed()} function returns a zero when successful and -returns -1 when an error occurs. - -@subheading DESCRIPTION: - -The @code{cfsetispeed()} function stores a code for the terminal speed -stored in a struct termios. The codes are defined in @code{} -by the macros B0, B50, B75, B110, B134, B150, B200, B300, B600, B1200, -B1800, B2400, B4800, B9600, B19200, and B38400. - -@subheading NOTES: - -This function merely stores a value in the @code{termios} structure. It -does not change the terminal speed until a @code{tcsetattr()} is done. -It does not detect impossible terminal speeds. - -@page -@subsection cfsetospeed - Sets terminal output baud rate - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int cfsetospeed( - struct termios *p, - speed_t speed -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -The @code{cfsetospeed()} function returns a zero when successful and -returns -1 when an error occurs. - - -@subheading DESCRIPTION: - -The @code{cfsetospeed()} function stores a code for the terminal speed stored -in a struct @code{termios}. The codes are defiined in @code{} by the -macros B0, B50, B75, B110, B134, B150, B200, B300, B600, B1200, B1800, B2400, -B4800, B9600, B19200, and B38400. - -The @code{cfsetospeed()} function does not do anything to the hardware. It -merely stores a value for use by @code{tcsetattr()}. - -@subheading NOTES: - -This function merely stores a value in the @code{termios} structure. -It does not change the terminal speed until a @code{tcsetattr()} is done. -It does not detect impossible terminal speeds. - -@page -@subsection tcgetattr - Gets terminal attributes - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int tcgetattr( - int fildes, - struct termios *p -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EBADF -Invalid file descriptor - -@item ENOOTY -Terminal control function attempted for a file that is not a terminal. -@end table - -@subheading DESCRIPTION: - -The @code{tcgetattr()} gets the parameters associated with the terminal -referred to by @code{fildes} and stores them into the @code{termios()} -structure pointed to by @code{termios_p}. - -@subheading NOTES: - -NONE - -@page -@subsection tcsetattr - Set terminal attributes - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int tcsetattr( - int fildes, - int options, - const struct termios *tp -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection tcsendbreak - Sends a break to a terminal - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int tcsendbreak( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection tcdrain - Waits for all output to be transmitted to the terminal. - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int tcdrain( - int fildes -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EBADF -Invalid file descriptor - -@item EINTR -Function was interrupted by a signal - -@item ENOTTY -Terminal control function attempted for a file that is not a terminal. - -@end table - -@subheading DESCRIPTION: - -The @code{tcdrain()} function waits until all output written to -@code{fildes} has been transmitted. - -@subheading NOTES: - -NONE - -@page -@subsection tcflush - Discards terminal data - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int tcflush( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection tcflow - Suspends/restarts terminal output. - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int tcflow( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection tcgetpgrp - Gets foreground process group ID - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int tcgetpgrp( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection tcsetpgrp - Sets foreground process group ID - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int tcsetpgrp( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - - diff --git a/doc/new_chapters/files.t b/doc/new_chapters/files.t deleted file mode 100644 index 1a116cc3fa..0000000000 --- a/doc/new_chapters/files.t +++ /dev/null @@ -1,2088 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Files and Directories Manager - -@section Introduction - -The files and directories manager is ... - -The directives provided by the files and directories manager are: - -@itemize @bullet -@item @code{opendir} - Open a Directory -@item @code{readdir} - Reads a directory -@item @code{rewinddir} - Resets the @code{readdir()} pointer -@item @code{scandir} - Scan a directory for matching entries -@item @code{telldir} - Return current location in directory stream -@item @code{closedir} - Ends directory read operation -@item @code{getdents} - Get directory entries -@item @code{chdir} - Changes the current working directory -@item @code{getcwd} - Gets current working directory -@item @code{open} - Opens a file -@item @code{creat} - Create a new file or rewrite an existing one -@item @code{umask} - Sets a file creation mask -@item @code{link} - Creates a link to a file -@item @code{symlink} - Creates a symbolic link to a file -@item @code{readlink} - Obtain the name of the link destination -@item @code{mkdir} - Makes a directory -@item @code{mkfifo} - Makes a FIFO special file -@item @code{unlink} - Removes a directory entry -@item @code{rmdir} - Delete a directory -@item @code{rename} - Renames a file -@item @code{stat} - Gets information about a file. -@item @code{fstat} - Gets file status -@item @code{access} - Check user's permissions for a file. -@item @code{chmod} - Changes file mode -@item @code{fchmod} - Changes permissions of a file -@item @code{chown} - Changes the owner and/ or group of a file -@item @code{utime} - Change access and/or modification times of an inode -@item @code{ftruncate} - Truncate a file to a specified length -@item @code{truncate} - Truncate a file to a specified length -@item @code{pathconf} - Gets configuration values for files -@item @code{fpathconf} - Get configuration values for files -@item @code{mknod} - Create a directory -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the files and directories 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. - -@page -@subsection opendir - Open a Directory - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int opendir( - const char *dirname -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Search permission was denied on a component of the path -prefix of @code{dirname}, or read permission is denied - -@item EMFILE -Too many file descriptors in use by process - -@item ENFILE -Too many files are currently open in the system. - -@item ENOENT -Directory does not exist, or @code{name} is an empty string. - -@item ENOMEM -Insufficient memory to complete the operation. - -@item ENOTDIR -@code{name} is not a directory. - -@end table - -@subheading DESCRIPTION: - -This routine opens a directory stream corresponding to the -directory specified by the @code{dirname} argument. The -directory stream is positioned at the first entry. - -@subheading NOTES: - -The routine is implemented in Cygnus newlib. - -@page -@subsection readdir - Reads a directory - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int readdir( - DIR *dirp -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EBADF -Invalid file descriptor - -@end table - -@subheading DESCRIPTION: - -The @code{readdir()} function returns a pointer to a structure @code{dirent} -representing the next directory entry from the directory stream pointed to -by @code{dirp}. On end-of-file, NULL is returned. - -The @code{readdir()} function may (or may not) return entries for . or .. Your -program should tolerate reading dot and dot-dot but not require them. - -The data pointed to be @code{readdir()} may be overwritten by another call to -@code{readdir()} for the same directory stream. It will not be overwritten by -a call for another directory. - -@subheading NOTES: - -If @code{ptr} is not a pointer returned by @code{malloc()}, @code{calloc()}, or -@code{realloc()} or has been deallocated with @code{free()} or -@code{realloc()}, the results are not portable and are probably disastrous. - -The routine is implemented in Cygnus newlib. - -@page -@subsection rewinddir - Resets the readdir() pointer - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -void rewinddir( - DIR *dirp -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -No value is returned. - -@subheading DESCRIPTION: - -The @code{rewinddir()} function resets the position associated with -the directory stream pointed to by @code{dirp}. It also causes the -directory stream to refer to the current state of the directory. - -@subheading NOTES: - -NONE - -If @code{dirp} is not a pointer by @code{opendir()}, the results are -undefined. - -The routine is implemented in Cygnus newlib. - -@page -@subsection scandir - Scan a directory for matching entries - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int scandir( - const char *dir, - struct direct ***namelist, - int (*select)(const struct dirent *), - int (*compar)(const struct dirent **, const struct dirent **) -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item ENOMEM -Insufficient memory to complete the operation. - -@end table - -@subheading DESCRIPTION: - -The @code{scandir()} function scans the directory @code{dir}, calling -@code{select()} on each directory entry. Entries for which @code{select()} -returns non-zero are stored in strings allocated via @code{malloc()}, -sorted using @code{qsort()} with the comparison function @code{compar()}, -and collected in array @code{namelist} which is allocated via @code{malloc()}. -If @code{select} is NULL, all entries are selected. - -@subheading NOTES: - -The routine is implemented in Cygnus newlib. - -@page -@subsection telldir - Return current location in directory stream - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -off_t telldir( - DIR *dir -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EBADF -Invalid directory stream descriptor @code{dir}. - -@end table - -@subheading DESCRIPTION: - -The @code{telldir()} function returns the current location associated with the -directory stream @code{dir}. - -@subheading NOTES: - -The routine is implemented in Cygnus newlib. - -@page -@subsection closedir - Ends directory read operation - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int closedir( - DIR *dirp -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EBADF -Invalid file descriptor - -@end table - -@subheading DESCRIPTION: - -The directory stream associated with @code{dirp} is closed. -The value in @code{dirp} may not be usable after a call to -@code{closedir()}. - -@subheading NOTES: - -NONE - -The argument to @code{closedir()} must be a pointer returned by -@code{opendir()}. If it is not, the results are not portable and -most likely unpleasant. - -The routine is implemented in Cygnus newlib. - -@page -@subsection chdir - Changes the current working directory - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int chdir( - const char *path -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Search permission is denied for a directory in a file's path prefix. - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is -in effect. - -@item ENOENT -A file or directory does not exist. - -@item ENOTDIR -A component of the specified pathname was not a directory when directory -was expected. - -@end table - -@subheading DESCRIPTION: - -The @code{chdir()} function causes the directory named by @code{path} to -become the current working directory; that is, the starting point for -searches of pathnames not beginning with a slash. - -If @code{chdir()} detects an error, the current working directory is not -changed. - -@subheading NOTES: - -NONE - -@page -@subsection getcwd - Gets current working directory - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int getcwd( void ); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EINVAL -Invalid argument - -@item ERANGE -Result is too large - -@item EACCES -Search permission is denied for a directory in a file's path prefix. - -@end table - -@subheading DESCRIPTION: - -The @code{getcwd()} function copies the absolute pathname of the current -working directory to the character array pointed to by @code{buf}. The -@code{size} argument is the number of bytes available in @code{buf} - -@subheading NOTES: - -There is no way to determine the maximum string length that @code{fetcwd()} -may need to return. Applications should tolerate getting @code{ERANGE} -and allocate a larger buffer. - -It is possible for @code{getcwd()} to return EACCES if, say, @code{login} -puts the process into a directory without read access. - -The 1988 standard uses @code{int} instead of @code{size_t} for the second -parameter. - -@page -@subsection open - Opens a file - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include -#include - -int open( - const char *path, - int oflag, - mode_t mode -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b - -@item EACCES -Search permission is denied for a directory in a file's path prefix. - -@item EEXIST -The named file already exists. - -@item EINTR -Function was interrupted by a signal. - -@item EISDIR -Attempt to open a directory for writing or to rename a file to be a -directory. - -@item EMFILE -Too many file descriptors are in use by this process. - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in -effect. - -@item ENFILE -Too many files are currently open in the system. - -@item ENOENT -A file or directory does not exist. - -@item ENOSPC -No space left on disk. - -@item ENOTDIR -A component of the specified pathname was not a directory when a directory -was expected. - -@item ENXIO -No such device. This error may also occur when a device is not ready, for -example, a tape drive is off-line. - -@item EROFS -Read-only file system. -@end table - -@subheading DESCRIPTION: - -The @code{open} function establishes a connection between a file and a file -descriptor. The file descriptor is a small integer that is used by I/O -functions to reference the file. The @code{path} argument points to the -pathname for the file. - -The @code{oflag} argument is the bitwise inclusive OR of the values of -symbolic constants. The programmer must specify exactly one of the following -three symbols: - -@table @b -@item O_RDONLY -Open for reading only. - -@item O_WRONLY -Open for writing only. - -@item O_RDWR -Open for reading and writing. - -@end table - -Any combination of the following symbols may also be used. - -@table @b -@item O_APPEND -Set the file offset to the end-of-file prior to each write. - -@item O_CREAT -If the file does not exist, allow it to be created. This flag indicates -that the @code{mode} argument is present in the call to @code{open}. - -@item O_EXCL -This flag may be used only if O_CREAT is also set. It causes the call -to @code{open} to fail if the file already exists. - -@item O_NOCTTY -If @code{path} identifies a terminal, this flag prevents that teminal from -becoming the controlling terminal for thi9s process. See Chapter 8 for a -description of terminal I/O. - -@item O_NONBLOCK -Do no wait for the device or file to be ready or available. After the file -is open, the @code{read} and @code{write} calls return immediately. If the -process would be delayed in the read or write opermation, -1 is returned and -@code{errno} is set to @code{EAGAIN} instead of blocking the caller. - -@item O_TRUNC -This flag should be used only on ordinary files opened for writing. It -causes the file to be tuncated to zero length.. - -@end table - -Upon successful completion, @code{open} returns a non-negative file -descriptor. - -@subheading NOTES: - -NONE - -@page -@subsection creat - Create a new file or rewrite an existing one - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include -#include - -int creat( - const char *path, - mode_t mode -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EEXIST -@code{path} already exists and O_CREAT and O_EXCL were used. - -@item EISDIR -@code{path} refers to a directory and the access requested involved -writing - -@item ETXTBSY -@code{path} refers to an executable image which is currently being -executed and write access was requested - -@item EFAULT -@code{path} points outside your accessible address space - -@item EACCES -The requested access to the file is not allowed, or one of the -directories in @code{path} did not allow search (execute) permission. - -@item ENAMETOOLONG -@code{path} was too long. - -@item ENOENT -A directory component in @code{path} does not exist or is a dangling -symbolic link. - -@item ENOTDIR -A component used as a directory in @code{path} is not, in fact, a -directory. - -@item EMFILE -The process alreadyh has the maximum number of files open. - -@item ENFILE -The limit on the total number of files open on the system has been -reached. - -@item ENOMEM -Insufficient kernel memory was available. - -@item EROFS -@code{path} refers to a file on a read-only filesystem and write access -was requested - -@end table - -@subheading DESCRIPTION: - -@code{creat} attempts to create a file and return a file descriptor for -use in read, write, etc. - -@subheading NOTES: - -NONE - -The routine is implemented in Cygnus newlib. - -@page -@subsection umask - Sets a file creation mask. - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -mode_t umask( - mode_t cmask -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@subheading DESCRIPTION: - -The @code{umask()} function sets the process file creation mask to @code{cmask}. -The file creation mask is used during @code{open()}, @code{creat()}, @code{mkdir()}, -@code{mkfifo()} calls to turn off permission bits in the @code{mode} argument. -Bit positions that are set in @code{cmask} are cleared in the mode of the -created file. - -@subheading NOTES: - -NONE - -The @code{cmask} argument should have only permission bits set. All other -bits should be zero. - -In a system which supports multiple processes, the file creation mask is inherited -across @code{fork()} and @code{exec()} calls. This makes it possible to alter the -default permission bits of created files. RTEMS does not support multiple processes -so this behavior is not possible. - -@page -@subsection link - Creates a link to a file - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int link( - const char *existing, - const char *new -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b - -@item EACCES -Search permission is denied for a directory in a file's path prefix - -@item EEXIST -The named file already exists. - -@item EMLINK -The number of links would exceed @code{LINK_MAX}. - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in -effect. - -@item ENOENT -A file or directory does not exist. -@item ENOSPC -No space left on disk. - -@item ENOTDIR -A component of the specified pathname was not a directory when a directory -was expected. - -@item EPERM -Operation is not permitted. Process does not have the appropriate priviledges -or permissions to perform the requested operations. - -@item EROFS -Read-only file system. - -@item EXDEV -Attempt to link a file to another file system. - -@end table - -@subheading DESCRIPTION: - -The @code{link()} function atomically creates a new link for an existing file -and increments the link count for the file. - -If the @code{link()} function fails, no directories are modified. - -The @code{existing} argument should not be a directory. - -The caller may (or may not) need permission to access the existing file. - -@subheading NOTES: - -NONE - -@page -@subsection symlink - Creates a symbolic link to a file - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int symlink( - const char *topath, - const char *frompath -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b - -@item EACCES -Search permission is denied for a directory in a file's path prefix - -@item EEXIST -The named file already exists. - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in -effect. - -@item ENOENT -A file or directory does not exist. - -@item ENOSPC -No space left on disk. - -@item ENOTDIR -A component of the specified pathname was not a directory when a directory -was expected. - -@item EPERM -Operation is not permitted. Process does not have the appropriate priviledges -or permissions to perform the requested operations. - -@item EROFS -Read-only file system. - -@end table - -@subheading DESCRIPTION: - -The @code{symlink()} function creates a symbolic link from the frombath to the -topath. The symbolic link will be interpreted at run-time. - -If the @code{symlink()} function fails, no directories are modified. - -The caller may (or may not) need permission to access the existing file. - -@subheading NOTES: - -NONE - -@page -@subsection readlink - Obtain the name of a symbolic link destination - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int readlink( - const char *path, - char *buf, - size_t bufsize -); - -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b - -@item EACCES -Search permission is denied for a directory in a file's path prefix - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in -effect. - -@item ENOENT -A file or directory does not exist. - -@item ENOTDIR -A component of the prefix pathname was not a directory when a directory -was expected. - -@item ELOOP -Too many symbolic links were encountered in the pathname. - -@item EINVAL -The pathname does not refer to a symbolic link - -@item EFAULT -An invalid pointer was passed into the @code{readlink()} routine. - -@end table - -@subheading DESCRIPTION: - -The @code{readlink()} function places the symbolic link destination into -@code{buf} argument and returns the number of characters copied. - -If the symbolic link destination is longer than bufsize characters the -name will be truncated. - -@subheading NOTES: - -NONE - -@page -@subsection mkdir - Makes a directory - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int mkdir( - const char *path, - mode_t mode -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Search permission is denied for a directory in a file's path prefix - -@item EEXIST -The name file already exist. - -@item EMLINK -The number of links would exceed LINK_MAX - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in -effect. - -@item ENOENT -A file or directory does not exist. - -@item ENOSPC -No space left on disk. - -@item ENOTDIR -A component of the specified pathname was not a directory when a directory -was expected. - -@item EROFS -Read-only file system. - -@end table - -@subheading DESCRIPTION: - -The @code{mkdir()} function creates a new diectory named @code{path}. The -permission bits (modified by the file creation mask) are set from @code{mode}. -The owner and group IDs for the directory are set from the effective user ID -and group ID. - -The new directory may (or may not) contain entries for.. and .. but is otherwise -empty. - -@subheading NOTES: - -NONE - -@page -@subsection mkfifo - Makes a FIFO special file - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - - -int mkfifo( - const char *path, - mode_t mode -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Search permission is denied for a directory in a file's path prefix - -@item EEXIST -The named file already exists. - -@item ENOENT -A file or directory does not exist. - -@item ENOSPC -No space left on disk. - -@item ENOTDIR -A component of the specified @code{path} was not a directory when a directory -was expected. - -@item EROFS -Read-only file system. - -@end table - -@subheading DESCRIPTION: - -The @code{mkfifo()} function creates a new FIFO special file named @code{path}. -The permission bits (modified by the file creation mask) are set from -@code{mode}. The owner and group IDs for the FIFO are set from the efective -user ID and group ID. - -@subheading NOTES: - -NONE - -@page -@subsection unlink - Removes a directory entry - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int unlink( - const char path -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Search permission is denied for a directory in a file's path prefix - -@item EBUSY -The directory is in use. - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in -effect. - -@item ENOENT -A file or directory does not exist. - -@item ENOTDIR -A component of the specified @code{path} was not a directory when a directory -was expected. - -@item EPERM -Operation is not permitted. Process does not have the appropriate priviledges -or permissions to perform the requested operations. - -@item EROFS -Read-only file system. - -@end table - -@subheading DESCRIPTION: - -The @code{unlink} function removes the link named by @code{path} and decrements the -link count of the file referenced by the link. When the link count goes to zero -and no process has the file open, the space occupied by the file is freed and the -file is no longer accessible. - -@subheading NOTES: - -NONE - -@page -@subsection rmdir - Delete a directory - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int rmdir( - const char *pathname -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EPERM -The filesystem containing @code{pathname} does not support the removal -of directories. - -@item EFAULT -@code{pathname} points ouside your accessible address space. - -@item EACCES -Write access to the directory containing @code{pathname} was not -allowed for the process's effective uid, or one of the directories in -@code{pathname} did not allow search (execute) permission. - -@item EPERM -The directory containing @code{pathname} has the stickybit (S_ISVTX) -set and the process's effective uid is neither the uid of the file to -be delected nor that of the director containing it. - -@item ENAMETOOLONG -@code{pathname} was too long. - -@item ENOENT -A dirctory component in @code{pathname} does not exist or is a -dangling symbolic link. - -@item ENOTDIR -@code{pathname}, or a component used as a directory in @code{pathname}, -is not, in fact, a directory. - -@item ENOTEMPTY -@code{pathname} contains entries other than . and .. . - -@item EBUSY -@code{pathname} is the current working directory or root directory of -some process - -@item EBUSY -@code{pathname} is the current directory or root directory of some -process. - -@item ENOMEM -Insufficient kernel memory was available - -@item EROGS -@code{pathname} refers to a file on a read-only filesystem. - -@item ELOOP -@code{pathname} contains a reference to a circular symbolic link - -@end table - -@subheading DESCRIPTION: - -@code{rmdir} deletes a directory, which must be empty - - -@subheading NOTES: - -NONE - -@page -@subsection rename - Renames a file - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int rename( - const char *old, - const char *new -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Search permission is denied for a directory in a file's path prefix. - -@item EBUSY -The directory is in use. - -@item EEXIST -The named file already exists. - -@item EINVAL -Invalid argument. - -@item EISDIR -Attempt to open a directory for writing or to rename a file to be a -directory. - -@item EMLINK -The number of links would exceed LINK_MAX. - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is -in effect. - -@item ENOENT -A file or directory does no exist. - -@item ENOSPC -No space left on disk. - -@item ENOTDIR -A component of the specified pathname was not a directory when a -directory was expected. - -@item ENOTEMPTY -Attempt to delete or rename a non-empty directory. - -@item EROFS -Read-only file system - -@item EXDEV -Attempt to link a file to another file system. -@end table - -@subheading DESCRIPTION: - -The @code{rename()} function causes the file known bo @code{old} to -now be known as @code{new}. - -Ordinary files may be renamed to ordinary files, and directories may be -renamed to directories; however, files cannot be converted using -@code{rename()}. The @code{new} pathname may not contain a path prefix -of @code{old}. - -@subheading NOTES: - -If a file already exists by the name @code{new}, it is removed. The -@code{rename()} function is atomic. If the @code{rename()} detects an -error, no files are removed. This guarantees that the -@code{rename("x", "x")} does not remove @code{x}. - -You may not rename dot or dot-dot. - -The routine is implemented in Cygnus newlib using @code{link()} and -@code{unlink()}. - -@page -@subsection stat - Gets information about a file - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int stat( - const char *path, - struct stat *buf -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Search permission is denied for a directory in a file's path prefix. - -@item EBADF -Invalid file descriptor. - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is -in effect. - -@item ENOENT -A file or directory does not exist. - -@item ENOTDIR -A component of the specified pathname was not a directory when a -directory was expected. - -@end table - -@subheading DESCRIPTION: - -The @code{path} argument points to a pathname for a file. Read, write, or -execute permission for the file is not required, but all directories listed -in @code{path} must be searchable. The @code{stat()} function obtains -information about the named file and writes it to the area pointed to by -@code{buf}. - -@subheading NOTES: - -NONE - -@page -@subsection fstat - Gets file status - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int fstat( - int fildes, - struct stat *buf -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EBADF -Invalid file descriptor - -@end table - -@subheading DESCRIPTION: - -The @code{fstat()} function obtains information about the file -associated with @code{fildes} and writes it to the area pointed -to by the @code{buf} argument. - -@subheading NOTES: - -NONE - -@page -@subsection access - Check user's permissions for a file - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int access( - const char *pathname, - int mode -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -The requested access would be denied, either to the file itself or -one of the directories in @code{pathname}. - -@item EFAULT -@code{pathname} points outside your accessible address space. - -@item EINVAL -@code{Mode} was incorrectly specified. - -@item ENAMETOOLONG -@code{pathname} is too long. - -@item ENOENT -A directory component in @code{pathname} would have been accessible but -does not exist or was a dangling symbolic link. - -@item ENOTDIR -A component used as a directory in @code{pathname} is not, in fact, -a directory. - -@item ENOMEM -Insufficient kernel memory was available. - -@end table - -@subheading DESCRIPTION: - -@code{Access} checks whether the process would be allowed to read, write or -test for existence of the file (or other file system object) whose name is -@code{pathname}. If @code{pathname} is a symbolic link permissions of the -file referred by this symbolic link are tested. - -@code{Mode} is a mask consisting of one or more of R_OK, W_OK, X_OK and F_OK. - -@subheading NOTES: - -NONE - -@page -@subsection chmod - Changes file mode. - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int chmod( - const char *path, - mode_t mode -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Search permission is denied for a directory in a file's path prefix - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in -effect. - -@item ENOENT -A file or directory does not exist. - -@item ENOTDIR -A component of the specified pathname was not a directory when a directory -was expected. - -@item EPERM -Operation is not permitted. Process does not have the appropriate priviledges -or permissions to perform the requested operations. - -@item EROFS -Read-only file system. - -@end table - -@subheading DESCRIPTION: - -Set the file permission bits, the set user ID bit, and the set group ID bit -for the file named by @code{path} to @code{mode}. If the effective user ID -does not match the owner of the file and the calling process does not have -the appropriate privileges, @code{chmod()} returns -1 and sets @code{errno} to -@code{EPERM}. - -@subheading NOTES: - -NONE - -@page -@subsection fchmod - Changes permissions of a file - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int fchmod( - int fildes, - mode_t mode -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Search permission is denied for a directory in a file's path prefix. - -@item EBADF -The descriptor is not valid. - -@item EFAULT -@code{path} points outside your accessible address space. - -@item EIO -A low-level I/o error occurred while modifying the inode. - -@item ELOOP -@code{path} contains a circular reference - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is -in effect. - -@item ENOENT -A file or directory does no exist. - -@item ENOMEM -Insufficient kernel memory was avaliable. - -@item ENOTDIR -A component of the specified pathname was not a directory when a -directory was expected. - -@item EPERM -The effective UID does not match the owner of the file, and is not -zero - -@item EROFS -Read-only file system -@end table - -@subheading DESCRIPTION: - -The mode of the file given by @code{path} or referenced by -@code{filedes} is changed. - -@subheading NOTES: - -NONE - -@page -@subsection getdents - Get directory entries - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include -#include - -long getdents( - int dd_fd, - char *dd_buf, - int dd_len -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -A successful call to @code{getdents} returns th the number of bytes read. -On end of directory, 0 is returned. When an error occurs, -1 is returned, -and @code{errno} is set appropriately. - -@table @b -@item EBADF -Invalid file descriptor @code{fd}. - -@item EFAULT -Argument points outside the calling process's address space. - -@item EINVAL -Result buffer is too small. - -@item ENOENT -No such directory. - -@item ENOTDIR -File descriptor does not refer to a directory. - -@end table - -@subheading DESCRIPTION: - -@code{getdents} reads several @code{dirent} structures from the directory -pointed by @code{fd} into the memory area pointed to by @code{dirp}. The -parameter @code{count} is the size of the memory area. - -@subheading NOTES: - -NONE - -@page -@subsection chown - Changes the owner and/or group of a file. - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int chown( - const char *path, - uid_t owner, - gid_t group -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Search permission is denied for a directory in a file's path prefix - -@item EINVAL -Invalid argument - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC is in -effect. - -@item ENOENT -A file or directory does not exist. - -@item ENOTDIR -A component of the specified pathname was not a directory when a directory -was expected. - -@item EPERM -Operation is not permitted. Process does not have the appropriate priviledges -or permissions to perform the requested operations. - -@item EROFS -Read-only file system. - -@end table - -@subheading DESCRIPTION: - -The user ID and group ID of the file named by @code{path} are set to -@code{owner} and @code{path}, respectively. - -For regular files, the set group ID (S_ISGID) and set user ID (S_ISUID) -bits are cleared. - -Some systems consider it a security violation to allow the owner of a file to -be changed, If users are billed for disk space usage, loaning a file to -another user could result in incorrect billing. The @code{chown()} function -may be restricted to privileged users for some or all files. The group ID can -still be changed to one of the supplementary group IDs. - -@subheading NOTES: - -This function may be restricted for some file. The @code{pathconf} function -can be used to test the @code{_PC_CHOWN_RESTRICTED} flag. - - - -@page -@subsection utime - Change access and/or modification times of an inode - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int utime( - const char *filename, - struct utimbuf *buf -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCES -Permission to write the file is denied - -@item ENOENT -@code{Filename} does not exist - -@end table - -@subheading DESCRIPTION: - -@code{Utime} changes the access and modification times of the inode -specified by @code{filename} to the @code{actime} and @code{modtime} -fields of @code{buf} respectively. If @code{buf} is NULL, then the -access and modification times of the file are set to the current time. - -@subheading NOTES: - -NONE - -@page -@subsection ftruncate - truncate a file to a specified length - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int ftrunctate( - int fd, - size_t length -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item ENOTDIR -A component of the path prefix is not a directory. - -@item EINVAL -The pathname contains a character with the high-order bit set. - -@item ENAMETOOLONG -A component of a pathname exceeded 255 characters, or an entire -path name exceeded 1023 characters. - -@item ENOENT -The named file does not exist. - -@item EACCES -The named file is not writable by the user. - -@item EACCES -Search permission is denied for a component of the path prefix. - -@item ELOOP -Too many symbolic links were encountered in translating the -pathname - -@item EISDIR -The named file is a directory. - -@item EROFS -The named file resides on a read-only file system - -@item ETXTBSY -The file is a pure procedure (shared text) file that is being -executed - -@item EIO -An I/O error occurred updating the inode. - -@item EFAULT -@code{Path} points outside the process's allocated address space. - -@item EBADF -The @code{fd} is not a valid descriptor. - -@end table - -@subheading DESCRIPTION: - -@code{truncate()} causes the file named by @code{path} or referenced by -@code{fd} to be truncated to at most @code{length} bytes in size. If the -file previously was larger than this size, the extra data is lost. With -@code{ftruncate()}, the file must be open for writing. - -@subheading NOTES: - -NONE - -@page -@subsection truncate - truncate a file to a specified length - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int trunctate( - const char *path, - size_t length -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item ENOTDIR -A component of the path prefix is not a directory. - -@item EINVAL -The pathname contains a character with the high-order bit set. - -@item ENAMETOOLONG -A component of a pathname exceeded 255 characters, or an entire -path name exceeded 1023 characters. - -@item ENOENT -The named file does not exist. - -@item EACCES -The named file is not writable by the user. - -@item EACCES -Search permission is denied for a component of the path prefix. - -@item ELOOP -Too many symbolic links were encountered in translating the -pathname - -@item EISDIR -The named file is a directory. - -@item EROFS -The named file resides on a read-only file system - -@item ETXTBSY -The file is a pure procedure (shared text) file that is being -executed - -@item EIO -An I/O error occurred updating the inode. - -@item EFAULT -@code{Path} points outside the process's allocated address space. - -@item EBADF -The @code{fd} is not a valid descriptor. - -@end table - -@subheading DESCRIPTION: - -@code{truncate()} causes the file named by @code{path} or referenced by -@code{fd} to be truncated to at most @code{length} bytes in size. If the -file previously was larger than this size, the extra data is lost. With -@code{ftruncate()}, the file must be open for writing. - -@subheading NOTES: - -NONE - -@page -@subsection pathconf - Gets configuration values for files - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int pathconf( - const char *path, - int name -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EINVAL -Invalid argument - -@item EACCES -Permission to write the file is denied - -@item ENAMETOOLONG -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC -is in effect. - -@item ENOENT -A file or directory does not exist - -@item ENOTDIR -A component of the specified @code{path} was not a directory whan a -directory was expected. - -@end table - -@subheading DESCRIPTION: - -@code{pathconf()} gets a value for the configuration option @code{name} -for the open file descriptor @code{filedes}. - -The possible values for @code{name} are: - -@table @b -@item _PC_LINK_MAX -returns the maximum number of links to the file. If @code{filedes} or -@code{path} refer to a directory, then the value applies to the whole -directory. The corresponding macro is @code{_POSIX_LINK_MAX}. - -@item _PC_MAX_CANON -returns the maximum length of a formatted input line, where @code{filedes} -or @code{path} must refer to a terminal. The corresponding macro is -@code{_POSIX_MAX_CANON}. - -@item _PC_MAX_INPUT -returns the maximum length of an input line, where @code{filedes} or -@code{path} must refer to a terminal. The corresponding macro is -@code{_POSIX_MAX_INPUT}. - -@item _PC_NAME_MAX -returns the maximum length of a filename in the directory @code{path} or -@code{filedes}. The process is allowed to create. The corresponding macro -is @code{_POSIX_NAME_MAX}. - -@item _PC_PATH_MAX -returns the maximum length of a relative pathname when @code{path} or -@code{filedes} is the current working directory. The corresponding macro -is @code{_POSIX_PATH_MAX}. - -@item _PC_PIPE_BUF -returns the size of the pipe buffer, where @code{filedes} must refer to a -pipe or FIFO and @code{path} must refer to a FIFO. The corresponding macro -is @code{_POSIX_PIPE_BUF}. - -@item _PC_CHOWN_RESTRICTED -returns nonzero if the chown(2) call may not be used on this file. If -@code{filedes} or @code{path} refer to a directory, then this applies to all -files in that directory. The corresponding macro is -@code{_POSIX_CHOWN_RESTRICTED}. - -@end table - -@subheading NOTES: - -Files with name lengths longer than the value returned for @code{name} equal -@code{_PC_NAME_MAX} may exist in the given directory. - -@page -@subsection fpathconf - Gets configuration values for files - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int fpathconf( - int filedes, - int name -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EINVAL -Invalid argument - -@item EACCES -Permission to write the file is denied -@item ENAMETOOLONG - -Length of a filename string exceeds PATH_MAX and _POSIX_NO_TRUNC -is in effect. - -@item ENOENT -A file or directory does not exist - -@item ENOTDIR -A component of the specified @code{path} was not a directory whan a -directory was expected. - -@end table - - -@subheading DESCRIPTION: - -@code{pathconf()} gets a value for the configuration option @code{name} -for the open file descriptor @code{filedes}. - -The possible values for name are: - -@table @b -@item _PC_LINK_MAX -returns the maximum number of links to the file. If @code{filedes} or -@code{path} refer to a directory, then the value applies to the whole -directory. The corresponding macro is _POSIX_LINK_MAX. - -@item _PC_MAX_CANON -returns the maximum length of a formatted input line, where @code{filedes} -or @code{path} must refer to a terminal. The corresponding macro is -@code{_POSIX_MAX_CANON}. - -@item _PC_MAX_INPUT -returns the maximum length of an input line, where @code{filedes} or -@code{path} must refer to a terminal. The corresponding macro is -@code{_POSIX_MAX_INPUT}. - -@item _PC_NAME_MAX -returns the maximum length of a filename in the directory @code{path} or -@code{filedes}. The process is allowed to create. The corresponding macro -is @code{_POSIX_NAME_MAX}. - -@item _PC_PATH_MAX -returns the maximum length of a relative pathname when @code{path} or -@code{filedes} is the current working directory. The corresponding macro -is @code{_POSIX_PATH_MAX}. - -@item _PC_PIPE_BUF -returns the size of the pipe buffer, where @code{filedes} must refer to a -pipe or FIFO and @code{path} must refer to a FIFO. The corresponding macro -is @code{_POSIX_PIPE_BUF}. - -@item _PC_CHOWN_RESTRICTED -returns nonzero if the @code{chown()} call may not be used on this file. If -@code{filedes} or @code{path} refer to a directory, then this applies to all -files in that directory. The corresponding macro is -@code{_POSIX_CHOWN_RESTRICTED}. - -@end table - -@subheading NOTES: - -NONE - -@page -@subsection mknod - create a directory - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include -#include -#include - -long mknod( - const char *pathname, - mode_t mode, - dev_t dev -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@code{mknod} returns zero on success, or -1 if an error occurred (in which case, -errno is set appropriately). - -@table @b -@item ENAMETOOLONG -@code{pathname} was too long. - -@item ENOENT -A directory component in @code{pathname} does not exist or is a dangling symbolic -link. - -@item ENOTDIR -A component used in the directory @code{pathname} is not, in fact, a directory. - -@item ENOMEM -Insufficient kernel memory was available - -@item EROFS -@code{pathname} refers to a file on a read-only filesystem. - -@item ELOOP -@code{pathname} contains a reference to a circular symbolic link, ie a symbolic -link whose expansion contains a reference to itself. - -@item ENOSPC -The device containing @code{pathname} has no room for the new node. - -@end table - -@subheading DESCRIPTION: - -@code{mknod} attempts to create a filesystem node (file, device special file or -named pipe) named @code{pathname}, specified by @code{mode} and @code{dev}. - -@code{mode} specifies both the permissions to use and the type of node to be created. - -It should be a combination (using bitwise OR) of one of the file types listed -below and the permissions for the new node. - -The permissions are modified by the process's @code{umask} in the usual way: the -permissions of the created node are @code{(mode & ~umask)}. - -The file type should be one of @code{S_IFREG}, @code{S_IFCHR}, @code{S_IFBLK} and -@code{S_IFIFO} to specify a normal file (which will be created empty), character -special file, block special file or FIFO (named pipe), respectively, or zero, which -will create a normal file. - -If the file type is @code{S_IFCHR} or @code{S_IFBLK} then @code{dev} specifies the major -and minor numbers of the newly created device special file; otherwise it is ignored. - -The newly created node will be owned by the effective uid of the process. If the -directory containing the node has the set group id bit set, or if the filesystem -is mounted with BSD group semantics, the new node will inherit the group ownership -from its parent directory; otherwise it will be owned by the effective gid of the -process. - - -@subheading NOTES: - -NONE diff --git a/doc/new_chapters/io.t b/doc/new_chapters/io.t deleted file mode 100644 index 17ff64e772..0000000000 --- a/doc/new_chapters/io.t +++ /dev/null @@ -1,1085 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Input and Output Primitives Manager - -@section Introduction - -The input and output primitives manager is ... - -The directives provided by the input and output primitives manager are: - -@itemize @bullet -@item @code{pipe} - YYY -@item @code{dup} - Duplicates an open file descriptor -@item @code{dup2} - Duplicates an open file descriptor -@item @code{close} - Closes a file -@item @code{read} - Reads from a file -@item @code{write} - Writes to a file -@item @code{fcntl} - Manipulates an open file descriptor -@item @code{lseek} - Reposition read/write file offset -@item @code{fsync} - Synchronize a file's complete in-core state with that on disk -@item @code{fdatasync} - synchronize a file's in-core data with that on disk -@item @code{mount} - Mount a file system -@item @code{umount} - Unmount file systems -@item @code{aio_read} - YYY -@item @code{aio_write} - YYY -@item @code{lio_listio} - YYY -@item @code{aio_error} - YYY -@item @code{aio_return} - YYY -@item @code{aio_cancel} - YYY -@item @code{aio_suspend} - YYY -@item @code{aio_fsync} - YYY -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the input and output primitives 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. - -@page -@subsection pipe - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int pipe( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection dup - Duplicates an open file descriptor - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int dup( - int fildes -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EBADF -Invalid file descriptor. - -@item EINTR -Function was interrupted by a signal. - -@item EMFILE -The process already has the maximum number of file descriptors open -and tried to open a new one. -@end table - -@subheading DESCRIPTION: - -The @code{dup} function returns the lowest numbered available file -descriptor. This new desciptor refers to the same open file as the -original descriptor and shares any locks. - -@subheading NOTES: - -NONE - -@page -@subsection dup2 - Duplicates an open file descriptor - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int dup2( - int fildes, - int fildes2 -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EBADF -Invalid file descriptor. - -@item EINTR -Function was interrupted by a signal. - -@item EMFILE -The process already has the maximum number of file descriptors open -and tried to open a new one. -@end table - -@subheading DESCRIPTION: - -@code{Dup2} creates a copy of the file descriptor @code{oldfd}. - -The old and new descriptors may be used interchangeably. They share locks, file -position pointers and flags; for example, if the file position is modified by using -@code{lseek} on one of the descriptors, the position is also changed for the other. - -@subheading NOTES: - -NONE - -@page -@subsection close - Closes a file. - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int close( - int fildes -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EBADF -Invalid file descriptor - -@item EINTR -Function was interrupted by a signal. -@end table - -@subheading DESCRIPTION: - -The @code{close()} function deallocates the file descriptor named by -@code{fildes} and makes it available for reuse. All outstanding -record locks owned by this process for the file are unlocked. - -@subheading NOTES: - -A signal can interrupt the @code{close()} function. In that case, -@code{close()} returns -1 with @code{errno} set to EINTR. The file -may or may not be closed. - -@page -@subsection read - Reads from a file. - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int read( - int fildes, - void *buf, - unsigned int nbyte -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets @code{errno} to one of -the following: - -@table @b -@item EAGAIN -The O_NONBLOCK flag is set for a file descriptor and the process -would be delayed in the I/O operation. - -@item EBADF -Invalid file descriptor - -@item EINTR -Function was interrupted by a signal. - -@item EIO -Input or output error - -@end table - -@subheading DESCRIPTION: - -The @code{read()} function reads @code{nbyte} bytes from the file -associated with @code{fildes} into the buffer pointed to by @code{buf}. - -The @code{read()} function returns the number of bytes actually read -and placed in the buffer. This will be less than @code{nbyte} if: - -@itemize @bullet - -@item The number of bytes left in the file is less than @code{nbyte}. - -@item The @code{read()} request was interrupted by a signal. - -@item The file is a pipe or FIFO or special file with less than @code{nbytes} -immediately available for reading. - -@end itemize - -When attempting to read from any empty pipe or FIFO: - - -@itemize @bullet - -@item If no process has the pipe open for writing, zero is returned to -indicate end-of-file. - -@item If some process has the pipe open for writing and O_NONBLOCK is set, --1 is returned and @code{errno} is set to EAGAIN. - -@item If some process has the pipe open for writing and O_NONBLOCK is clear, -@code{read()} waits for some data to be written or the pipe to be closed. - -@end itemize - - -When attempting to read from a file other than a pipe or FIFO and no data -is available. - -@itemize @bullet - -@item If O_NONBLOCK is set, -1 is returned and @code{errno} is set to EAGAIN. - -@item If O_NONBLOCK is clear, @code{read()} waits for some data to become -available. - -@item The O_NONBLOCK flag is ignored if data is available. - -@end itemize - -@subheading NOTES: - -NONE - -@page -@subsection write - Writes to a file - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -int write( - int fildes, - const void *buf, - unsigned int nbytes -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EAGAIN -The O_NONBLOCK flag is set for a file descriptor and the process -would be delayed in the I/O operation. - -@item EBADF -Invalid file descriptor - -@item EFBIG -An attempt was made to write to a file that exceeds the maximum file -size - -@item EINTR -The function was interrupted by a signal. - -@item EIO -Input or output error. - -@item ENOSPC -No space left on disk. - -@item EPIPE -Attempt to write to a pope or FIFO with no reader. - -@end table - -@subheading DESCRIPTION: - -The @code{write()} function writes @code{nbyte} from the array pointed -to by @code{buf} into the file associated with @code{fildes}. - -If @code{nybte} is zero and the file is a regular file, the @code{write()} -function returns zero and has no other effect. If @code{nbyte} is zero -and the file is a special file, te results are not portable. - -The @code{write()} function returns the number of bytes written. This -number will be less than @code{nbytes} if there is an error. It will never -be greater than @code{nbytes}. - -@subheading NOTES: - -NONE - -@page -@subsection fcntl - Manipulates an open file descriptor - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include -#include - -int fcntl( - int fildes, - int cmd -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EACCESS -Search permission is denied for a direcotry in a file's path -prefix. - -@item EAGAIN -The O_NONBLOCK flag is set for a file descriptor and the process -would be delayed in the I/O operation. - -@item EBADF -Invalid file descriptor - -@item EDEADLK -An @code{fcntl} with function F_SETLKW would cause a deadlock. - -@item EINTR -The functioin was interrupted by a signal. - -@item EINVAL -Invalid argument - -@item EMFILE -Too many file descriptor or in use by the process. - -@item ENOLCK -No locks available - -@end table - -@subheading DESCRIPTION: - -@code{fcntl()} performs one of various miscellaneous operations on -@code{fd}. The operation in question is determined by @code{cmd}: - -@table @b - -@item F_DUPFD -Makes @code{arg} be a copy of @code{fd}, closing @code{fd} first if necessary. - -The same functionality can be more easily achieved by using @code{dup2()}. - -The old and new descriptors may be used interchangeably. They share locks, -file position pointers and flags; for example, if the file position is -modified by using @code{lseek()} on one of the descriptors, the position is -also changed for the other. - -The two descriptors do not share the close-on-exec flag, however. The -close-on-exec flag of the copy is off, meaning that it will be closed on -exec. - -On success, the new descriptor is returned. - -@item F_GETFD -Read the close-on-exec flag. If the low-order bit is 0, the file will -remain open across exec, otherwise it will be closed. - -@item F_SETFD -Set the close-on-exec flag to the value specified by @code{arg} (only the least -significant bit is used). - -@item F_GETFL -Read the descriptor's flags (all flags (as set by open()) are returned). - -@item F_SETFL -Set the descriptor's flags to the value specified by @code{arg}. Only -@code{O_APPEND} and @code{O_NONBLOCK} may be set. - -The flags are shared between copies (made with @code{dup()} etc.) of the same -file descriptor. - -The flags and their semantics are described in @code{open()}. - -@item F_GETLK, F_SETLK and F_SETLKW -Manage discretionary file locks. The third argument @code{arg} is a pointer to a -struct flock (that may be overwritten by this call). - -@item F_GETLK -Return the flock structure that prevents us from obtaining the lock, or set the -@code{l_type} field of the lock to @code{F_UNLCK} if there is no obstruction. - -@item F_SETLK -The lock is set (when @code{l_type} is @code{F_RDLCK} or @code{F_WRLCK}) or -cleared (when it is @code{F_UNLCK}. If lock is held by someone else, this -call returns -1 and sets @code{errno} to EACCES or EAGAIN. - -@item F_SETLKW -Like @code{F_SETLK}, but instead of returning an error we wait for the lock to -be released. - -@item F_GETOWN -Get the process ID (or process group) of the owner of a socket. - -Process groups are returned as negative values. - -@item F_SETOWN -Set the process or process group that owns a socket. - -For these commands, ownership means receiving @code{SIGIO} or @code{SIGURG} -signals. - -Process groups are specified using negative values. - -@end table - -@subheading NOTES: - -The errors returned by @code{dup2} are different from those returned by -@code{F_DUPFD}. - -@page -@subsection lseek - Reposition read/write file offset - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int lseek( - int fildes, - off_t offset, - int whence -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EBADF -@code{Fildes} is not an open file descriptor. - -@item ESPIPE -@code{Fildes} is associated with a pipe, socket or FIFO. - -@item EINVAL -@code{Whence} is not a proper value. - -@end table - -@subheading DESCRIPTION: - -The @code{lseek} function repositions the offset of the file descriptor -@code{fildes} to the argument offset according to the directive whence. -The argument @code{fildes} must be an open file descriptor. @code{Lseek} -repositions the file pointer fildes as follows: - -@itemize @bullet - -@item -If @code{whence} is SEEK_SET, the offset is set to @code{offset} bytes. - -@item -If @code{whence} is SEEK_CUR, the offset is set to its current location -plus offset bytes. - -@item -If @code{whence} is SEEK_END, the offset is set to the size of the -file plus @code{offset} bytes. - -@end itemize - -The @code{lseek} function allows the file offset to be set beyond the end -of the existing end-of-file of the file. If data is later written at this -point, subsequent reads of the data in the gap return bytes of zeros -(until data is actually written into the gap). - -Some devices are incapable of seeking. The value of the pointer associated -with such a device is undefined. - -@subheading NOTES: - -NONE - -@page -@subsection fsync - Synchronize a file's complete in-core state with that on disk - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int fsync( - int fd -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -On success, zero is returned. On error, -1 is returned, and @code{errno} -is set appropriately. - -@table @b -@item EBADF -@code{fd} is not a valid descriptor open for writing - -@item EINVAL -@code{fd} is bound to a special file which does not support support synchronization - -@item EROFS -@code{fd} is bound to a special file which does not support support synchronization - -@item EIO -An error occurred during synchronization - -@end table - -@subheading DESCRIPTION: - -@code{fsync} copies all in-core parts of a file to disk. - -@subheading NOTES: - -NONE - -@page -@subsection fdatasync - synchronize a file's in-core data with that on disk. - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int fdatasync( - int fd -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -On success, zero is returned. On error, -1 is returned, and @code{errno} is -set appropriately. - -@table @b -@item EBADF -@code{fd} is not a valid file descriptor open for writing. - -@item EINVAL -@code{fd} is bound to a special file which does not support synchronization. - -@item EIO -An error occurred during synchronization. - -@item EROFS -@code{fd} is bound to a special file which dows not support synchronization. - -@end table - -@subheading DESCRIPTION: - -@code{fdatasync} flushes all data buffers of a file to disk (before the system call -returns). It resembles @code{fsync} but is not required to update the metadata such -as access time. - -Applications that access databases or log files often write a tiny data fragment -(e.g., one line in a log file) and then call @code{fsync} immediately in order to -ensure that the written data is physically stored on the harddisk. Unfortunately, -fsync will always initiate two write operations: one for the newly written data and -another one in order to update the modification time stored in the inode. If the -modification time is not a part of the transaction concept @code{fdatasync} can be -used to avoid unnecessary inode disk write operations. - -@subheading NOTES: - -NONE - -@page -@subsection mount - Mount a file system - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int mount( - const char *specialfile, - const char * dir, - const char * filesystemtype, - unsigned long rwflag, - const void * data -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EPERM -The user is not the super-user. - -@item ENODEV -@code{filesystemtype} not configured in the kernel. - -@item ENOTBLK -@code{specialfile} is not a block device (if a device was required). - -@item EBUSY -@code{specialfile} is already mounted. Or, it cannot be remounted -read-only, because it still holds files open for writing. Or, it -cannot be mounted on @code{dir} because @code{dir} is still busy -(it is the working directory of some task, the mount point of another -device, has open files, etc.). - -@item EINVAL -@code{specialfile} had an invalid superblock. Or, a remount was -attempted, while @code{specialfile} was not already mounted on @code{dir}. -Or, an umount was attempted, while @code{dir} was not a mount point. - -@item EFAULT -One of the pointer arguments points outside the user address space. - -@item ENOMEM -The kernel could not allocate a free page to copy filenames or data into. - -@item ENAMETOOLONG -A pathname was longer than MAXPATHLEN. - -@item ENOTDIR -A pathname was empty or had a nonexistent component. - -@item EACCES -A component of a path was not searchable. Or, mounting a read-only -filesystem was attempted without giving the MS_RDONLY flag. Or, the -block device @code{specialfile} is located on a filesystem mounted with -the MS_NODEV option. - -@item ENXIO -The major number of the block device @code{specialfile} is out of -range. - -@item EMFILE -(In case no block device is required:) Table of dummy devices is full. - -@end table - -@subheading DESCRIPTION: - -@code{Mount} attaches the filesystem specified by @code{specialfile} -(which is often a device name) to the directory specified by @code{dir}. - -Only the super-user may mount filesystems. - -The @code{filesystemtype} argument may take one of the values listed in -/proc/filesystems (link "minix", "ext2", "msdos", "proc", "nfs", -"iso9660" etc.). - -The @code{rwflag} argument has the magic number 0xCOED in the top 16 bits, -and various mount flags in the low order 16 bits. If the magic number is -absent, then the last two arguments are not used. - -The @code{data} argument is interpreted by the different file systems. - -@subheading NOTES: - -NONE - -@page -@subsection umount - Umount file systems - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -int umount( - const char *specialfile -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item EPERM -The user is not the super-user. - -@item ENODEV -@code{Filesystemtype} not configured in the kernel. - -@item ENOTBLK -@code{Specialfile} is not a block device (if a device was required). - -@item EBUSY -@code{Specialfile} is already mounted. Or, it cannot be remounted -read-only, because it still holds files open for writing. Or, it -cannot be mounted on @code{dir} because @code{dir} is still busy -(it is the working directory of some task, the mount point of another -device, has open files, etc.). - -@item EINVAL -@code{specialfile} had an invalid superblock. Or, a remount was -attempted, while @code{specialfile} was not already mounted on @code{dir}. -Or, an umount was attempted, while @code{dir} was not a mount point. - -@item EFAULT -One of the pointer arguments points outside the user address space. - -@item ENOMEM -The kernel could not allocate a free page to copy filenames or data into. - -@item ENAMETOOLONG -A pathname was longer than MAXPATHLEN. - -@item ENOTDIR -A pathname was empty or had a nonexistent component. - -@item EACCES -A component of a path was not searchable. Or, mounting a read-only -filesystem was attempted without giving the MS_RDONLY flag. Or, the -block device @code{specialfile} is located on a filesystem mounted with -the MS_NODEV option. - -@item ENXIO -The major number of the block device @code{specialfile} is out of -range. - -@item EMFILE -(In case no block device is required:) Table of dummy devices is full. - -@end table - -@subheading DESCRIPTION: - -@code{Umount} removes the attachment of the filesystem specified -by @code{specialfile} or @code{dir}. - -Only the super-user may umount filesystems. - -@subheading NOTES: - -NONE - -@page -@subsection aio_read - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int aio_read( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection aio_write - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int aio_write( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection lio_listio - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int lio_listio( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection aio_error - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int aio_error( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection aio_return - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int aio_return( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection aio_cancel - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int aio_cancel( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection aio_suspend - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int aio_suspend( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. - -@page -@subsection aio_fsync - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int aio_fsync( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -This routine is not currently supported by RTEMS but could be -in a future version. diff --git a/doc/new_chapters/key.t b/doc/new_chapters/key.t deleted file mode 100644 index 58e34bb259..0000000000 --- a/doc/new_chapters/key.t +++ /dev/null @@ -1,140 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Key Manager - -@section Introduction - -The key manager ... - -The directives provided by the key manager are: - -@itemize @bullet -@item @code{pthread_key_create} - -@item @code{pthread_key_delete} - -@item @code{pthread_setspecific} - -@item @code{pthread_getspecific} - -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the key 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. - -@page -@subsection pthread_key_create - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_key_create( - pthread_key_t *key, - void (*destructor)( void * ) -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EAGAIN -There were not enough resources available to create another key. - -@item ENOMEM -Insufficient memory exists to create the key. - -@end table - -@page -@subsection pthread_key_delete - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_key_delete( - pthread_key_t key, -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The key was invalid - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_setspecific - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_setspecific( - pthread_key_t key, - const void *value -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The specified key is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_getspecific - -@subheading CALLING SEQUENCE: - -@example -#include - -void *pthread_getspecific( - pthread_key_t key -); -@end example - -@subheading STATUS CODES: -@table @b -@item NULL -There is no thread-specific data associated with the specified key. - -@item non-NULL -The data associated with the specified key. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/memorymgmt.t b/doc/new_chapters/memorymgmt.t deleted file mode 100644 index 1aeaeb56a6..0000000000 --- a/doc/new_chapters/memorymgmt.t +++ /dev/null @@ -1,315 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Memory Management Manager - -@section Introduction - -The -memory management manager is ... - -The directives provided by the memory management manager are: - -@itemize @bullet -@item @code{mlockall} - -@item @code{munlockall} - -@item @code{mlock} - -@item @code{munlock} - -@item @code{mmap} - -@item @code{munmap} - -@item @code{mprotect} - -@item @code{msync} - -@item @code{shm_open} - -@item @code{shm_unlink} - -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the memory management 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. - -@page -@subsection mlockall - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mlockall( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection munlockall - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int munlockall( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection mlock - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mlock( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection munlock - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int munlock( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection mmap - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mmap( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection munmap - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int munmap( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection mprotect - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mprotect( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection msync - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int msync( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection shm_open - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int shm_open( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection shm_unlink - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int shm_unlink( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/message.t b/doc/new_chapters/message.t deleted file mode 100644 index d4b85ab788..0000000000 --- a/doc/new_chapters/message.t +++ /dev/null @@ -1,259 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Message Passing Manager - -@section Introduction - -The -message passing manager is ... - -The directives provided by the message passing manager are: - -@itemize @bullet -@item @code{mq_open} - -@item @code{mq_close} - -@item @code{mq_unlink} - -@item @code{mq_send} - -@item @code{mq_receive} - -@item @code{mq_notify} - -@item @code{mq_setattr} - -@item @code{mq_getattr} - -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the message passing 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. - -@page -@subsection mq_open - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mq_open( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection mq_close - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mq_close( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection mq_unlink - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mq_unlink( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection mq_send - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mq_send( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection mq_receive - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mq_receive( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection mq_notify - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mq_notify( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection mq_setattr - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mq_setattr( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection mq_getattr - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int mq_getattr( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/mutex.t b/doc/new_chapters/mutex.t deleted file mode 100644 index d158e07dc9..0000000000 --- a/doc/new_chapters/mutex.t +++ /dev/null @@ -1,555 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Mutex Manager - -@section Introduction - -The mutex manager ... - -The directives provided by the mutex manager are: - -@itemize @bullet -@item @code{pthread_mutexattr_init} - -@item @code{pthread_mutexattr_destroy} - -@item @code{pthread_mutexattr_setprotocol} - -@item @code{pthread_mutexattr_getprotocol} - -@item @code{pthread_mutexattr_setprioceiling} - -@item @code{pthread_mutexattr_getprioceiling} - -@item @code{pthread_mutexattr_setpshared} - -@item @code{pthread_mutexattr_getpshared} - -@item @code{pthread_mutex_init} - -@item @code{pthread_mutex_destroy} - -@item @code{pthread_mutex_lock} - -@item @code{pthread_mutex_trylock} - -@item @code{pthread_mutex_timedlock} - -@item @code{pthread_mutex_unlock} - -@item @code{pthread_mutex_setprioceiling} - -@item @code{pthread_mutex_getprioceiling} - -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the mutex 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. - -@page -@subsection pthread_mutexattr_init - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutexattr_init( - pthread_mutexattr_t *attr -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutexattr_destroy - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutexattr_destroy( - pthread_mutexattr_t *attr -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutexattr_setprotocol - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutexattr_setprotocol( - pthread_mutexattr_t *attr, - int protocol -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The protocol argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutexattr_getprotocol - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutexattr_getprotocol( - pthread_mutexattr_t *attr, - int *protocol -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The protocol pointer argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutexattr_setprioceiling - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutexattr_setprioceiling( - pthread_mutexattr_t *attr, - int prioceiling -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The prioceiling argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutexattr_getprioceiling - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutexattr_getprioceiling( - const pthread_mutexattr_t *attr, - int *prioceiling -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The prioceiling pointer argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutexattr_setpshared - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutexattr_setpshared( - pthread_mutexattr_t *attr, - int pshared -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The pshared argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutexattr_getpshared - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutexattr_getpshared( - const pthread_mutexattr_t *attr, - int *pshared -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The pshared pointer argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutex_init - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutex_init( - pthread_mutex_t *mutex, - const pthread_mutexattr_t *attr -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The specified protocol is invalid. - -@item EAGAIN -The system lacked the necessary resources to initialize another mutex. - -@item ENOMEM -Insufficient memory exists to initialize the mutex. - -@item EBUSY -Attempted to reinialize the object reference by mutex, a previously -initialized, but not yet destroyed. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutex_destroy - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutex_destroy( - pthread_mutex_t *mutex -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The specified mutex is invalid. - -@item EBUSY -Attempted to destroy the object reference by mutex, while it is locked or -referenced by another thread. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutex_lock - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutex_lock( - pthread_mutex_t *mutex -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The specified mutex is invalid. - -@item EINVAL -The mutex has the protocol attribute of PTHREAD_PRIO_PROTECT and the -priority of the calling thread is higher than the current priority -ceiling. - -@item EDEADLK -The current thread already owns the mutex. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutex_trylock - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutex_trylock( - pthread_mutex_t *mutex -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The specified mutex is invalid. - -@item EINVAL -The mutex has the protocol attribute of PTHREAD_PRIO_PROTECT and the -priority of the calling thread is higher than the current priority -ceiling. - -@item EDEADLK -The current thread already owns the mutex. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutex_timedlock - -@subheading CALLING SEQUENCE: - -@example -#include -#include - -int pthread_mutex_timedlock( - pthread_mutex_t *mutex, - const struct timespec *timeout -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The specified mutex is invalid. - -@item EINVAL -The nanoseconds field of timeout is invalid. - -@item EINVAL -The mutex has the protocol attribute of PTHREAD_PRIO_PROTECT and the -priority of the calling thread is higher than the current priority -ceiling. - -@item EDEADLK -The current thread already owns the mutex. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - - -@page -@subsection pthread_mutex_unlock - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutex_unlock( - pthread_mutex_t *mutex -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The specified mutex is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutex_setprioceiling - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutex_setprioceiling( - pthread_mutex_t *mutex, - int prioceiling, - int *oldceiling -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The oldceiling pointer parameter is invalid. - -@item EINVAL -The prioceiling parameter is an invalid priority. - -@item EINVAL -The specified mutex is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_mutex_getprioceiling - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_mutex_getprioceiling( - pthread_mutex_t *mutex, - int *prioceiling -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The prioceiling pointer parameter is invalid. - -@item EINVAL -The specified mutex is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/preface.texi b/doc/new_chapters/preface.texi deleted file mode 100644 index 83e85dfafa..0000000000 --- a/doc/new_chapters/preface.texi +++ /dev/null @@ -1,34 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@ifinfo -@node Preface, , Top, Top -@end ifinfo -@unnumbered Preface - -This is the User's Guide for the POSIX API support -provided in RTEMS. - -The functionality described in this document is based -on the following standards: - -@itemize @bullet - -@item POSIX 1003.1b-1993. - -@item POSIX 1003.1h/D3. - -@end itemize - -Much of the POSIX API standard is actually implemented in the -Cygnus Newlib ANSI C Library. Please refer to documentation on -Newlib for more information on what it supplies. - -At this point, this is just beginning to become what it -ultimately should be. - diff --git a/doc/new_chapters/procenv.t b/doc/new_chapters/procenv.t deleted file mode 100644 index 9f51ba8cf4..0000000000 --- a/doc/new_chapters/procenv.t +++ /dev/null @@ -1,654 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Process Environment Manager - -@section Introduction - -The -process environment manager is ... - -The directives provided by the process environment manager are: - -@itemize @bullet -@item @code{getpid} - -@item @code{getppid} - -@item @code{getuid} - -@item @code{geteuid} - -@item @code{getgid} - -@item @code{getegid} - -@item @code{setuid} - -@item @code{setgid} - -@item @code{getgroups} - -@item @code{getlogin} - -@item @code{getlogin_r} - -@item @code{getpgrp} - -@item @code{setsid} - -@item @code{setpgid} - -@item @code{uname} - -@item @code{times} - Get process times -@item @code{getenv} - -@item @code{ctermid} - -@item @code{ttyname} - -@item @code{ttyname_r} - -@item @code{isatty} - -@item @code{sysconf} - -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the process environment 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. - -@page -@subsection getpid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getpid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getppid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getppid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getuid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getuid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection geteuid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int geteuid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getgid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getgid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getegid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getegid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection setuid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int setuid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection setgid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int setgid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getgroups - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getgroups( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getlogin - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getlogin( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getlogin_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getlogin_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getpgrp - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getpgrp( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection setsid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int setsid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection setpgid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int setpgid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection uname - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int uname( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection times - Get process times - -@subheading CALLING SEQUENCE: - -@example -#include - -clock_t times( - struct tms *buf -); -@end example - -@subheading STATUS CODES: - -This routine returns the process times - -@subheading DESCRIPTION: - -@code{times} stores the current process times in @code{buf}. - -@code{struct tms} is as defined in @code{/usr/include/sys/times.h} - -@code{times} returns the number of clock ticks that have elapsed -since the systm has been up. - -@subheading NOTES: - -NONE - -@page -@subsection getenv - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getenv( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection ctermid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int ctermid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection ttyname - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int ttyname( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection ttyname_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int ttyname_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection isatty - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int isatty( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sysconf - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sysconf( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/process.t b/doc/new_chapters/process.t deleted file mode 100644 index 7b5bece910..0000000000 --- a/doc/new_chapters/process.t +++ /dev/null @@ -1,414 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Process Creation and Execution Manager - -@section Introduction - -The process creation and execution manager is ... - -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 - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@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. - -@page -@subsection fork - Create a Process - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -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 - -@page -@subsection execl - 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 - -@page -@subsection execv - 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 - -@page -@subsection execle - 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 - -@page -@subsection execve - 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 - -@page -@subsection execlp - 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 - -@page -@subsection execvp - 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 - -@page -@subsection pthread_atfork - Register Fork Handlers - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include - -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 - -@page -@subsection wait - Wait for Process Termination - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -#include -#include - -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 - -@page -@subsection waitpid - 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 - -@page -@subsection _exit - 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. diff --git a/doc/new_chapters/sched.t b/doc/new_chapters/sched.t deleted file mode 100644 index be12a9c264..0000000000 --- a/doc/new_chapters/sched.t +++ /dev/null @@ -1,175 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Scheduler Manager - -@section Introduction - -The scheduler manager ... - -The directives provided by the scheduler manager are: - -@itemize @bullet -@item @code{sched_get_priority_min} - -@item @code{sched_get_priority_max} - -@item @code{sched_rr_get_interval} - -@item @code{sched_yield} - -@end itemize - -@section Background - -@subsection Priority - -In the RTEMS implementation of the POSIX API, the priorities range from -the low priority of sched_get_priority_min() to the highest priority of -sched_get_priority_max(). Numerically higher values represent higher -priorities. - -@subsection Scheduling Policies - -The following scheduling policies are available: - -@table @b -@item SCHED_FIFO -Priority-based, preemptive scheduling with no timeslicing. This is equivalent -to what is called "manual round-robin" scheduling. - -@item SCHED_RR -Priority-based, preemptive scheduling with timeslicing. Time quantums are -maintained on a per-thread basis and are not reset at each context switch. -Thus, a thread which is preempted and subsequently resumes execution will -attempt to complete the unused portion of its time quantum. - -@item SCHED_OTHER -Priority-based, preemptive scheduling with timeslicing. Time quantums are -maintained on a per-thread basis and are reset at each context switch. - -@item SCHED_SPORADIC -Priority-based, preemptive scheduling utilizing three additional parameters: -budget, replenishment period, and low priority. Under this policy, the -thread is allowed to execute for "budget" amount of time before its priority -is lowered to "low priority". At the end of each replenishment period, -the thread resumes its initial priority and has its budget replenished. - -@end table - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the scheduler 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. - -@page -@subsection sched_get_priority_min - -@subheading CALLING SEQUENCE: - -@example -#include - -int sched_get_priority_min( - int policy -); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets errno to one of the following: - -@table @b -@item EINVAL -The indicated policy is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sched_get_priority_max - -@subheading CALLING SEQUENCE: - -@example -#include - -int sched_get_priority_max( - int policy -); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets errno to one of the following: - -@table @b -@item EINVAL -The indicated policy is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sched_rr_get_interval - -@subheading CALLING SEQUENCE: - -@example -#include - -int sched_rr_get_interval( - pid_t pid, - struct timespec *interval -); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets errno to one of the following: - -@table @b -@item ESRCH -The indicated process id is invalid. - -@item EINVAL -The specified interval pointer parameter is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sched_yield - -@subheading CALLING SEQUENCE: - -@example -#include - -int sched_yield( void ); -@end example - -@subheading STATUS CODES: - -This routine always returns zero to indicate success. - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/semaphores.t b/doc/new_chapters/semaphores.t deleted file mode 100644 index e3fa6b2cd1..0000000000 --- a/doc/new_chapters/semaphores.t +++ /dev/null @@ -1,287 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Semaphores Manager - -@section Introduction - -The -semaphore manager is ... - -The directives provided by the semaphore manager are: - -@itemize @bullet -@item @code{sem_init} - -@item @code{sem_destroy} - -@item @code{sem_open} - -@item @code{sem_close} - -@item @code{sem_unlink} - -@item @code{sem_wait} - -@item @code{sem_trywait} - -@item @code{sem_post} - -@item @code{sem_getvalue} - -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the semaphore 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. - -@page -@subsection sem_init - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sem_init( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sem_destroy - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sem_destroy( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sem_open - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sem_open( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sem_close - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sem_close( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sem_unlink - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sem_unlink( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sem_wait - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sem_wait( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sem_trywait - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sem_trywait( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sem_post - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sem_post( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection sem_getvalue - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int sem_getvalue( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/signal.t b/doc/new_chapters/signal.t deleted file mode 100644 index f37708bd4a..0000000000 --- a/doc/new_chapters/signal.t +++ /dev/null @@ -1,728 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Signal Manager - -@section Introduction - -The signal manager ... - -The directives provided by the signal manager are: - -@itemize @bullet -@item @code{sigaddset} - Add a Signal to a Signal Set -@item @code{sigdelset} - Delete a Signal from a Signal Set -@item @code{sigfillset} - Fill a Signal Set -@item @code{sigismember} - Is Signal a Member of a Signal Set -@item @code{sigemptyset} - Empty a Signal Set -@item @code{sigaction} - Examine and Change Signal Action -@item @code{pthread_kill} - Send a Signal to a Thread -@item @code{sigprocmask} - Examine and Change Process Blocked Signals -@item @code{pthread_sigmask} - Examine and Change Thread Blocked Signals -@item @code{kill} - Send a Signal to a Process -@item @code{sigpending} - Examine Pending Signals -@item @code{sigsuspend} - Wait for a Signal -@item @code{pause} - Suspend Process Execution -@item @code{sigwait} - Synchronously Accept a Signal -@item @code{sigwaitinfo} - Synchronously Accept a Signal -@item @code{sigtimedwait} - Synchronously Accept a Signal with Timeout -@item @code{sigqueue} - Queue a Signal to a Process -@item @code{alarm} - Schedule Alarm -@end itemize - -@section Background - -@subsection Signal Delivery - -Signals directed at a thread are delivered to the specified thread. - -Signals directed at a process are delivered to a thread which is selected -based on the following algorithm: - -@enumerate -@item If the action for this signal is currently @code{SIG_IGN}, -then the signal is simply ignored. - -@item If the currently executing thread has the signal unblocked, then -the signal is delivered to it. - -@item If any threads are currently blocked waiting for this signal -(@code{sigwait()}), then the signal is delivered to the highest priority -thread waiting for this signal. - -@item If any other threads are willing to accept delivery of the signal, then -the signal is delivered to the highest priority thread of this set. In the -event, multiple threads of the same priority are willing to accept this -signal, then priority is given first to ready threads, then to threads -blocked on calls which may be interrupted, and finally to threads blocked -on non-interruptible calls. - -@item In the event the signal still can not be delivered, then it is left -pending. The first thread to unblock the signal (@code{sigprocmask()} or -@code{pthread_sigprocmask()}) or to wait for this signal -(@code{sigwait()}) will be the recipient of the signal. - -@end enumerate - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the signal 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. - -@page -@subsection sigaddset - Add a Signal to a Signal Set - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigaddset( - sigset_t *set, - int signo -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -This function adds the @code{signo} to the specified signal @code{set}. - -@subheading NOTES: - -NONE - -@page -@subsection sigdelset - Delete a Signal from a Signal Set - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigdelset( - sigset_t *set, - int signo -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -This function deletes the @code{signo} to the specified signal @code{set}. - -@subheading NOTES: - -NONE - -@page -@subsection sigfillset - Fill a Signal Set - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigfillset( - sigset_t *set -); -@end example - -@subheading STATUS CODES: - -@table @b - -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -This function fills the specified signal @code{set} such that all -signals are set. - -@subheading NOTES: - -NONE - -@page -@subsection sigismember - Is Signal a Member of a Signal Set - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigismember( - const sigset_t *set, - int signo -); -@end example - -@subheading STATUS CODES: - -@table @b - -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -This function returns returns 1 if @code{signo} is a member of @code{set} -and 0 otherwise. - -@subheading NOTES: - -NONE - -@page -@subsection sigemptyset - Empty a Signal Set - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigemptyset( - sigset_t *set -); -@end example - -@subheading STATUS CODES: - -@table @b - -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -This function fills the specified signal @code{set} such that all -signals are cleared. - -@subheading NOTES: - -NONE - -@page -@subsection sigaction - Examine and Change Signal Action - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigaction( - int sig, - const struct sigaction *act, - struct sigaction *oact -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -Invalid argument passed. - -@item ENOTSUP -Realtime Signals Extension option not supported. - -@end table - -@subheading DESCRIPTION: - -This function is used to change the action taken by a process on -receipt of the specfic signal @code{sig}. The new action is -specified by @code{act} and the previous action is returned -via @code{oact}. - -@subheading NOTES: - -The signal number cannot be SIGKILL. - -@page -@subsection pthread_kill - Send a Signal to a Thread - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_kill( - pthread_t thread, - int sig -); -@end example - -@subheading STATUS CODES: - -@table @b - -@item ESRCH -The thread indicated by the parameter thread is invalid. - -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -This functions sends the specified signal @code{sig} to @code{thread}. - -@subheading NOTES: - -NONE - -@page -@subsection sigprocmask - Examine and Change Process Blocked Signals - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigprocmask( - int how, - const sigset_t *set, - sigset_t *oset -); -@end example - -@subheading STATUS CODES: - -@table @b - -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -This function is used to alter the set of currently blocked signals -on a process wide basis. A blocked signal will not be received by the -process. The behavior of this function is dependent on the value of -@code{how} which may be one of the following: - -@table @code - -@item SIG_BLOCK -The set of blocked signals is set to the union of @code{set} and -those signals currently blocked. - -@item SIG_UNBLOCK -The signals specific in @code{set} are removed from the currently -blocked set. - -@item SIG_SETMASK -The set of currently blocked signals is set to @code{set}. - -@end table - -If @code{oset} is not @code{NULL}, then the set of blocked signals -prior to this call is returned in @code{oset}. - -@subheading NOTES: - -It is not an error to unblock a signal which is not blocked. - -@page -@subsection pthread_sigmask - Examine and Change Thread Blocked Signals - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_sigmask( - int how, - const sigset_t *set, - sigset_t *oset -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -This function is used to alter the set of currently blocked signals -for the calling thread. A blocked signal will not be received by the -process. The behavior of this function is dependent on the value of -@code{how} which may be one of the following: - -@table @code -@item SIG_BLOCK -The set of blocked signals is set to the union of @code{set} and -those signals currently blocked. - -@item SIG_UNBLOCK -The signals specific in @code{set} are removed from the currently -blocked set. - -@item SIG_SETMASK -The set of currently blocked signals is set to @code{set}. - -@end table - -If @code{oset} is not @code{NULL}, then the set of blocked signals -prior to this call is returned in @code{oset}. - -@subheading NOTES: - -It is not an error to unblock a signal which is not blocked. - - -@page -@subsection kill - Send a Signal to a Process - -@subheading CALLING SEQUENCE: - -@example -#include -#include - -int kill( - pid_t pid, - int sig -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -Invalid argument passed. - -@item EPERM -Process does not have permission to send the signal to any receiving process. - -@item ESRCH -The process indicated by the parameter pid is invalid. - -@end table - -@subheading DESCRIPTION: - -This function sends the signal @code{sig} to the process @code{pid}. - -@subheading NOTES: - -NONE - -@page -@subsection sigpending - Examine Pending Signals - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigpending( - const sigset_t *set -); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets @code{errno} to one of -the following: - -@table @b - -@item EFAULT -Invalid address for set. - -@end table - -@subheading DESCRIPTION: - -This function allows the caller to examine the set of currently pending -signals. A pending signal is one which has been raised but is currently -blocked. The set of pending signals is returned in @code{set}. - -@subheading NOTES: - -NONE - -@page -@subsection sigsuspend - Wait for a Signal - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigsuspend( - const sigset_t *sigmask -); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets @code{errno} to one of -the following: - -@table @b - -@item EINTR -Signal interrupted this function. - -@end table - -@subheading DESCRIPTION: - -This function temporarily replaces the signal mask for the process -with that specified by @code{sigmask} and blocks the calling thread -until the signal is raised. - -@subheading NOTES: - -NONE - -@page -@subsection pause - Suspend Process Execution - -@subheading CALLING SEQUENCE: - -@example -#include - -int pause( void ); -@end example - -@subheading STATUS CODES: - -On error, this routine returns -1 and sets @code{errno} to one of -the following: - -@table @b - -@item EINTR -Signal interrupted this function. - -@end table - -@subheading DESCRIPTION: - -This function causes the calling thread to be blocked until the signal -is received. - -@subheading NOTES: - -NONE - -@page -@subsection sigwait - Synchronously Accept a Signal - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigwait( - const sigset_t *set, - int *sig -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -Invalid argument passed. - -@item EINTR -Signal interrupted this function. - -@end table - -@subheading DESCRIPTION: - -This function selects a pending signal based on the set specified in -@code{set}, atomically clears it from the set of pending signals, and -returns the signal number for that signal in @code{sig}. - - -@subheading NOTES: - -NONE - -@page -@subsection sigwaitinfo - Synchronously Accept a Signal - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigwaitinfo( - const sigset_t *set, - siginfo_t *info -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINTR -Signal interrupted this function. - -@end table - -@subheading DESCRIPTION: - -This function selects a pending signal based on the set specified in -@code{set}, atomically clears it from the set of pending signals, and -returns information about that signal in @code{info}. - -@subheading NOTES: - -NONE - -@page -@subsection sigtimedwait - Synchronously Accept a Signal with Timeout - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigtimedwait( - const sigset_t *set, - siginfo_t *info, - const struct timespec *timeout -); -@end example - -@subheading STATUS CODES: -@table @b -@item EAGAIN -Timed out while waiting for the specified signal set. - -@item EINVAL -Nanoseconds field of the timeout argument is invalid. - -@item EINTR -Signal interrupted this function. - -@end table - -@subheading DESCRIPTION: - -This function selects a pending signal based on the set specified in -@code{set}, atomically clears it from the set of pending signals, and -returns information about that signal in @code{info}. The calling thread -will block up to @code{timeout} waiting for the signal to arrive. - -@subheading NOTES: - -If @code{timeout} is NULL, then the calling thread will wait forever for -the specified signal set. - -@page -@subsection sigqueue - Queue a Signal to a Process - -@subheading CALLING SEQUENCE: - -@example -#include - -int sigqueue( - pid_t pid, - int signo, - const union sigval value -); -@end example - -@subheading STATUS CODES: - -@table @b - -@item EAGAIN -No resources available to queue the signal. The process has already -queued SIGQUEUE_MAX signals that are still pending at the receiver -or the systemwide resource limit has been exceeded. - -@item EINVAL -The value of the signo argument is an invalid or unsupported signal -number. - -@item EPERM -The process does not have the appropriate privilege to send the signal -to the receiving process. - -@item ESRCH -The process pid does not exist. - -@end table - -@subheading DESCRIPTION: - -This function sends the signal specified by @code{signo} to the -process @code{pid} - -@subheading NOTES: - -NONE - -@page -@subsection alarm - Schedule Alarm - -@subheading CALLING SEQUENCE: - -@example -#include - -unsigned int alarm( - unsigned int seconds -); -@end example - -@subheading STATUS CODES: - -This call always succeeds. - -@subheading DESCRIPTION: - -If there was a previous @code{alarm()} request with time remaining, -then this routine returns the number of seconds until that outstanding -alarm would have fired. If no previous @code{alarm()} request was -outstanding, then zero is returned. - -@subheading NOTES: - -NONE diff --git a/doc/new_chapters/systemdb.t b/doc/new_chapters/systemdb.t deleted file mode 100644 index af3a54a09c..0000000000 --- a/doc/new_chapters/systemdb.t +++ /dev/null @@ -1,259 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter System Databases Manager - -@section Introduction - -The -system databases manager is ... - -The directives provided by the system databases manager are: - -@itemize @bullet -@item @code{getgrgid} - -@item @code{getgrgid_r} - -@item @code{getgrnam} - -@item @code{getgrnam_r} - -@item @code{getpwuid} - -@item @code{getpwuid_r} - -@item @code{getpwnam} - -@item @code{getpwnam_r} - -@end itemize - -@section Background - -There is currently no text in this section. - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the system databases 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. - -@page -@subsection getgrgid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getgrgid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getgrgid_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getgrgid_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getgrnam - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getgrnam( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getgrnam_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getgrnam_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getpwuid - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getpwuid( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getpwuid_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getpwuid_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getpwnam - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getpwnam( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection getpwnam_r - - -@subheading CALLING SEQUENCE: - -@ifset is-C -@example -int getpwnam_r( -); -@end example -@end ifset - -@ifset is-Ada -@end ifset - -@subheading STATUS CODES: - -@table @b -@item E -The - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - diff --git a/doc/new_chapters/thread.t b/doc/new_chapters/thread.t deleted file mode 100644 index 6ef29eb1bf..0000000000 --- a/doc/new_chapters/thread.t +++ /dev/null @@ -1,892 +0,0 @@ -@c -@c COPYRIGHT (c) 1988-1998. -@c On-Line Applications Research Corporation (OAR). -@c All rights reserved. -@c -@c $Id$ -@c - -@chapter Thread Manager - -@section Introduction - -The thread manager ... - -The directives provided by the thread manager are: - -@itemize @bullet -@item @code{pthread_attr_init} - -@item @code{pthread_attr_destroy} - -@item @code{pthread_attr_setdetachstate} - -@item @code{pthread_attr_getdetachstate} - -@item @code{pthread_attr_setstacksize} - -@item @code{pthread_attr_getstacksize} - -@item @code{pthread_attr_setstackaddr} - -@item @code{pthread_attr_getstackaddr} - -@item @code{pthread_attr_setscope} - -@item @code{pthread_attr_getscope} - -@item @code{pthread_attr_setinheritsched} - -@item @code{pthread_attr_getinheritsched} - -@item @code{pthread_attr_setschedpolicy} - -@item @code{pthread_attr_getschedpolicy} - -@item @code{pthread_attr_setschedparam} - -@item @code{pthread_attr_getschedparam} - -@item @code{pthread_create} - -@item @code{pthread_exit} - -@item @code{pthread_detach} - -@item @code{pthread_join} - -@item @code{pthread_self} - -@item @code{pthread_equal} - -@item @code{pthread_once} - -@item @code{pthread_setschedparam} - -@item @code{pthread_getschedparam} - -@end itemize - -@section Background - -@subsection Thread Attributes - -Thread attributes are utilized only at thread creation time. - -@table @b -@item stack address -is the address of the optionally user specified stack area for this thread. -If this value is NULL, then RTEMS allocates the memory for the thread stack -from the RTEMS Workspace Area. Otherwise, this is the user specified -address for the memory to be used for the thread's stack. Each thread must -have a distinct stack area. Each processor family has different alignment -rules which should be followed. - -@item stack size -is the minimum desired size for this thread's stack area. -If the size of this area as specified by the stack size attribute -is smaller than the minimum for this processor family and the stack -is not user specified, then RTEMS will automatically allocate a -stack of the minimum size for this processor family. - -@item contention scope -specifies the scheduling contention scope. RTEMS only supports the -PTHREAD_SCOPE_PROCESS scheduling contention scope. - -@item scheduling inheritance -specifies whether a user specified or the scheduling policy and -parameters of the currently executing thread are to be used. When -this is PTHREAD_INHERIT_SCHED, then the scheduling policy and -parameters of the currently executing thread are inherited by -the newly created thread. - -@item scheduling policy and parameters -specify the manner in which the thread will contend for the processor. -The scheduling parameters are interpreted based on the specified policy. -All policies utilize the thread priority parameter. - -@end table - -@section Operations - -There is currently no text in this section. - -@section Directives - -This section details the thread 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. - -@page -@subsection pthread_attr_init - -@subheading CALLING SEQUENCE: - - -@example -#include - -int pthread_attr_init( - pthread_attr_t *attr -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_destroy - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_destroy( - pthread_attr_t *attr -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_setdetachstate - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_setdetachstate( - pthread_attr_t *attr, - int detachstate -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The detachstate argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_getdetachstate - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_getdetachstate( - const pthread_attr_t *attr, - int *detachstate -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The detatchstate pointer argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_setstacksize - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_setstacksize( - pthread_attr_t *attr, - size_t stacksize -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -If the specified stacksize is below the minimum required for this CPU, then -the stacksize will be set to the minimum for this CPU. - -@page -@subsection pthread_attr_getstacksize - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_getstacksize( - const pthread_attr_t *attr, - size_t *stacksize -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The stacksize pointer argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_setstackaddr - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_setstackaddr( - pthread_attr_t *attr, - void *stackaddr -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_getstackaddr - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_getstackaddr( - const pthread_attr_t *attr, - void **stackaddr -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The stackaddr pointer argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_setscope - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_setscope( - pthread_attr_t *attr, - int contentionscope -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The contention scope specified is not valid. - -@item ENOTSUP -The contention scope specified (PTHREAD_SCOPE_SYSTEM) is not supported. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_getscope - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_getscope( - const pthread_attr_t *attr, - int *contentionscope -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The contentionscope pointer argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_setinheritsched - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_setinheritsched( - pthread_attr_t *attr, - int inheritsched -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The specified scheduler inheritance argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_getinheritsched - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_getinheritsched( - const pthread_attr_t *attr, - int *inheritsched -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The inheritsched pointer argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_setschedpolicy - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_setschedpolicy( - pthread_attr_t *attr, - int policy -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item ENOTSUP -The specified scheduler policy argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_getschedpolicy - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_getschedpolicy( - const pthread_attr_t *attr, - int *policy -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The specified scheduler policy argument pointer is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_setschedparam - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_setschedparam( - pthread_attr_t *attr, - const struct sched_param param -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The specified scheduler parameter argument is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_attr_getschedparam - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_attr_getschedparam( - const pthread_attr_t *attr, - struct sched_param *param -); -@end example - -@subheading STATUS CODES: -@table @b -@item EINVAL -The attribute pointer argument is invalid. - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The specified scheduler parameter argument pointer is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_create - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_create( - pthread_t *thread, - const pthread_attr_t *attr, - void (*start_routine)( void * ), - void *arg -); -@end example - -@subheading STATUS CODES: - -@table @b - -@item EINVAL -The attribute set is not initialized. - -@item EINVAL -The user specified a stack address and the size of the area was not -large enough to meet this processor's minimum stack requirements. - -@item EINVAL -The specified scheduler inheritance policy was invalid. - -@item ENOTSUP -The specified contention scope was PTHREAD_SCOPE_PROCESS. - -@item EINVAL -The specified thread priority was invalid. - -@item EINVAL -The specified scheduling policy was invalid. - -@item EINVAL -The scheduling policy was SCHED_SPORADIC and the specified replenishment -period is less than the initial budget. - -@item EINVAL -The scheduling policy was SCHED_SPORADIC and the specified low priority -is invalid. - -@item EAGAIN -The system lacked the necessary resources to create another thread, or the -self imposed limit on the total number of threads in a process -PTHREAD_THREAD_MAX would be exceeded. - -@item EINVAL -Invalid argument passed. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_exit - -@subheading CALLING SEQUENCE: - -@example -#include - -void pthread_exit( - void *status -); -@end example - -@subheading STATUS CODES: -@table @b -@item NONE - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_detach - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_detach( - pthread_t thread -); -@end example - -@subheading STATUS CODES: -@table @b -@item ESRCH -The thread specified is invalid. - -@item EINVAL -The thread specified is not a joinable thread. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -If any threads have previously joined with the specified thread, then they -will remain joined with that thread. Any subsequent calls to pthread_join -on the specified thread will fail. - -@page -@subsection pthread_join - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_join( - pthread_t thread, - void **value_ptr -); -@end example - -@subheading STATUS CODES: -@table @b -@item ESRCH -The thread specified is invalid. - -@item EINVAL -The thread specified is not a joinable thread. - -@item EDEADLK -A deadlock was detected or thread is the calling thread. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -If any threads have previously joined with the specified thread, then they -will remain joined with that thread. Any subsequent calls to pthread_join -on the specified thread will fail. - -If value_ptr is NULL, then no value is returned. - -@page -@subsection pthread_self - -@subheading CALLING SEQUENCE: - -@example -#include - -pthread_t pthread_self( void ); -@end example - -@subheading STATUS CODES: - -This routine returns the id of the calling thread. - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_equal - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_equal( - pthread_t t1, - pthread_t t2 -); -@end example - -@subheading STATUS CODES: - -@table @b -@item zero -The thread ids are not equal. - -@item non-zero -The thread ids are equal. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -The behavior is undefined if the thread IDs are not valid. - -@page -@subsection pthread_once - -@subheading CALLING SEQUENCE: - -@example -#include - -pthread_once_t once_control = PTHREAD_ONCE_INIT; - -int pthread_once( - pthread_once_t *once_control, - void (*init_routine)(void) -); -@end example - -@subheading STATUS CODES: - -NONE - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_setschedparam - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_setschedparam( - pthread_t thread, - int policy, - struct sched_param *param -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The scheduling parameters indicated by the parameter param is invalid. - -@item EINVAL -The value specified by policy is invalid. - -@item EINVAL -The scheduling policy was SCHED_SPORADIC and the specified replenishment -period is less than the initial budget. - -@item EINVAL -The scheduling policy was SCHED_SPORADIC and the specified low priority -is invalid. - -@item ESRCH -The thread indicated was invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -@page -@subsection pthread_getschedparam - -@subheading CALLING SEQUENCE: - -@example -#include - -int pthread_getschedparam( - pthread_t thread, - int *policy, - struct sched_param *param -); -@end example - -@subheading STATUS CODES: - -@table @b -@item EINVAL -The policy pointer argument is invalid. - -@item EINVAL -The scheduling parameters pointer argument is invalid. - -@item ESRCH -The thread indicated by the parameter thread is invalid. - -@end table - -@subheading DESCRIPTION: - -@subheading NOTES: - -- cgit v1.2.3