Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/reent/reent.tex')
-rw-r--r--newlib/libc/reent/reent.tex117
1 files changed, 0 insertions, 117 deletions
diff --git a/newlib/libc/reent/reent.tex b/newlib/libc/reent/reent.tex
deleted file mode 100644
index 881c572c6..000000000
--- a/newlib/libc/reent/reent.tex
+++ /dev/null
@@ -1,117 +0,0 @@
-@node Reentrancy
-@chapter Reentrancy
-
-@cindex reentrancy
-Reentrancy is a characteristic of library functions which allows multiple
-processes to use the same address space with assurance that the values stored
-in those spaces will remain constant between calls. The Red Hat
-newlib implementation of the library functions ensures that
-whenever possible, these library functions are reentrant. However,
-there are some functions that can not be trivially made reentrant.
-Hooks have been provided to allow you to use these functions in a fully
-reentrant fashion.
-
-@findex _reent
-@findex reent.h
-@cindex reentrancy structure
-These hooks use the structure @code{_reent} defined in @file{reent.h}.
-A variable defined as @samp{struct _reent} is called a @dfn{reentrancy
-structure}. All functions which must manipulate global information are
-available in two versions. The first version has the usual name, and
-uses a single global instance of the reentrancy structure. The second
-has a different name, normally formed by prepending @samp{_} and
-appending @samp{_r}, and takes a pointer to the particular reentrancy
-structure to use.
-
-For example, the function @code{fopen} takes two arguments, @var{file}
-and @var{mode}, and uses the global reentrancy structure. The function
-@code{_fopen_r} takes the arguments, @var{struct_reent}, which is a
-pointer to an instance of the reentrancy structure, @var{file}
-and @var{mode}.
-
-There are two versions of @samp{struct _reent}, a normal one and one
-for small memory systems, controlled by the @code{_REENT_SMALL}
-definition from the (automatically included) @file{<sys/config.h>}.
-
-@cindex global reentrancy structure
-@findex _impure_ptr
-Each function which uses the global reentrancy structure uses the global
-variable @code{_impure_ptr}, which points to a reentrancy structure.
-
-This means that you have two ways to achieve reentrancy. Both require
-that each thread of execution control initialize a unique global
-variable of type @samp{struct _reent}:
-
-@enumerate
-@item
-@cindex extra argument, reentrant fns
-Use the reentrant versions of the library functions, after initializing
-a global reentrancy structure for each process. Use the pointer to this
-structure as the extra argument for all library functions.
-
-@item
-Ensure that each thread of execution control has a pointer to its own
-unique reentrancy structure in the global variable @code{_impure_ptr},
-and call the standard library subroutines.
-@end enumerate
-
-@cindex list of reentrant functions
-@cindex reentrant function list
-The following functions are provided in both reentrant
-and non-reentrant versions.
-
-@example
-@exdent @emph{Equivalent for errno variable:}
-_errno_r
-
-@exdent @emph{Locale functions:}
-_localeconv_r _setlocale_r
-
-@exdent @emph{Equivalents for stdio variables:}
-_stdin_r _stdout_r _stderr_r
-
-@page
-@exdent @emph{Stdio functions:}
-_fdopen_r _perror_r _tempnam_r
-_fopen_r _putchar_r _tmpnam_r
-_getchar_r _puts_r _tmpfile_r
-_gets_r _remove_r _vfprintf_r
-_iprintf_r _rename_r _vsnprintf_r
-_mkstemp_r _snprintf_r _vsprintf_r
-_mktemp_t _sprintf_r
-
-@exdent @emph{Signal functions:}
-_init_signal_r _signal_r
-_kill_r __sigtramp_r
-_raise_r
-
-@exdent @emph{Stdlib functions:}
-_calloc_r _mblen_r _setenv_r
-_dtoa_r _mbstowcs_r _srand_r
-_free_r _mbtowc_r _strtod_r
-_getenv_r _memalign_r _strtol_r
-_mallinfo_r _mstats_r _strtoul_r
-_malloc_r _putenv_r _system_r
-_malloc_r _rand_r _wcstombs_r
-_malloc_stats_r _realloc_r _wctomb_r
-
-@exdent @emph{String functions:}
-_strdup_r _strtok_r
-
-@exdent @emph{System functions:}
-_close_r _link_r _unlink_r
-_execve_r _lseek_r _wait_r
-_fcntl_r _open_r _write_r
-_fork_r _read_r
-_fstat_r _sbrk_r
-_gettimeofday_r _stat_r
-_getpid_r _times_r
-
-@ifset STDIO64
-@exdent @emph{Additional 64-bit I/O System functions:}
-_fstat64_r _lseek64_r _open64_r
-@end ifset
-
-@exdent @emph{Time function:}
-_asctime_r
-@end example