diff options
author | Matthew Green <mrg@redhat.com> | 2002-02-03 09:24:18 +0000 |
---|---|---|
committer | Matthew Green <mrg@redhat.com> | 2002-02-03 09:24:18 +0000 |
commit | 8195aff714f2ea5d680a5129a1d54af388e90355 (patch) | |
tree | 683ff47f4802385e669491dda42bf8050772dbdf /newlib/libc/stdlib/atexit.c | |
parent | ad67ada2fc7cdb361643d506701e274a67d796f9 (diff) | |
download | cygnal-8195aff714f2ea5d680a5129a1d54af388e90355.tar.gz cygnal-8195aff714f2ea5d680a5129a1d54af388e90355.tar.bz2 cygnal-8195aff714f2ea5d680a5129a1d54af388e90355.zip |
* implement a new `struct _reent' that is significantly smaller. use this
if _REENT_SMALL is defined in config.h. define this for xstormy16.
Diffstat (limited to 'newlib/libc/stdlib/atexit.c')
-rw-r--r-- | newlib/libc/stdlib/atexit.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/newlib/libc/stdlib/atexit.c b/newlib/libc/stdlib/atexit.c index 88cdd234c..77aab0c98 100644 --- a/newlib/libc/stdlib/atexit.c +++ b/newlib/libc/stdlib/atexit.c @@ -65,6 +65,8 @@ _DEFUN (atexit, { register struct _atexit *p; +/* _REENT_SMALL atexit() doesn't allow more than the required 32 entries. */ +#ifndef _REENT_SMALL if ((p = _REENT->_atexit) == NULL) _REENT->_atexit = p = &_REENT->_atexit0; if (p->_ind >= _ATEXIT_SIZE) @@ -75,6 +77,11 @@ _DEFUN (atexit, p->_next = _REENT->_atexit; _REENT->_atexit = p; } +#else + p = &_REENT->_atexit; + if (p->_ind >= _ATEXIT_SIZE) + return -1; +#endif p->_fns[p->_ind++] = fn; return 0; } |