1
0
mirror of https://github.com/adtools/clib2.git synced 2025-12-08 14:59:05 +00:00

- Moved all the constructor code out of "stdlib_init_exit.c" and into the

files which initialize global data, such as the new "stdlib_program_name.c"
  and "stdlib_malloc.c".

- Until I can find a way to invoke it from within the library, the
  __machine_test() function is no longer invoked.

- Tagged global data with NOCOMMON attributes.

- Added the __lib_init() and __lib_exit() functions, which are part of the
  thread-safe library and which can be used to hook up clib2 with standard
  Amiga shared library/device code. Some documentation on how to use them
  can be found in the <dos.h> header file.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@14999 87f5fb63-7c3d-0410-a384-fd976d0f7a62
This commit is contained in:
Olaf Barthel
2005-07-03 10:36:48 +00:00
parent 2421ffcbb9
commit ebf5d63bc6
46 changed files with 540 additions and 157 deletions

View File

@ -1,5 +1,5 @@
/*
* $Id: stdlib_exit.c,v 1.4 2005-03-19 10:15:56 obarthel Exp $
* $Id: stdlib_exit.c,v 1.5 2005-07-03 10:36:47 obarthel Exp $
*
* :ts=4
*
@ -37,17 +37,21 @@
/****************************************************************************/
jmp_buf __exit_jmp_buf;
int __exit_value = RETURN_FAIL;
jmp_buf NOCOMMON __exit_jmp_buf;
int NOCOMMON __exit_value = RETURN_FAIL;
BOOL NOCOMMON __exit_blocked;
/****************************************************************************/
void
_exit(int return_code)
{
__exit_value = return_code;
if(NOT __exit_blocked)
{
__exit_value = return_code;
longjmp(__exit_jmp_buf,1);
longjmp(__exit_jmp_buf,1);
}
}
/****************************************************************************/
@ -56,7 +60,8 @@ _exit(int return_code)
void
_Exit(int return_code)
{
_exit(return_code);
if(NOT __exit_blocked)
_exit(return_code);
}
/****************************************************************************/
@ -64,7 +69,10 @@ _Exit(int return_code)
void
exit(int return_code)
{
__exit_trap_trigger();
if(NOT __exit_blocked)
{
__exit_trap_trigger();
_exit(return_code);
_exit(return_code);
}
}