summaryrefslogtreecommitdiffstats
path: root/newlib/libc/include/sys
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/include/sys')
-rw-r--r--newlib/libc/include/sys/reent.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
index 2d6ce4146..d1a04dc43 100644
--- a/newlib/libc/include/sys/reent.h
+++ b/newlib/libc/include/sys/reent.h
@@ -64,20 +64,24 @@ struct __tm
#define _ATEXIT_SIZE 32 /* must be at least 32 to guarantee ANSI conformance */
-#ifndef _REENT_SMALL
+struct _on_exit_args {
+ void * _fnargs[_ATEXIT_SIZE]; /* fn args for on_exit */
+ __ULong _fntypes; /* type of exit routine -
+ Must have at least _ATEXIT_SIZE bits */
+};
+
+#ifdef _REENT_SMALL
struct _atexit {
- struct _atexit *_next; /* next in list */
int _ind; /* next index in this table */
void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */
- void *_fnargs[_ATEXIT_SIZE]; /* fn args for on_exit */
- __ULong _fntypes; /* type of exit routine */
+ struct _on_exit_args * _on_exit_args_ptr;
};
#else
struct _atexit {
+ struct _atexit *_next; /* next in list */
int _ind; /* next index in this table */
void (*_fns[_ATEXIT_SIZE])(void); /* the table itself */
- void *_fnargs[_ATEXIT_SIZE]; /* fn args for on_exit */
- __ULong _fntypes; /* type of exit routine */
+ struct _on_exit_args _on_exit_args;
};
#endif