source: trunk/libs/newlib/src/libgloss/v850/_exit.c

Last change on this file was 444, checked in by satin@…, 7 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 818 bytes
Line 
1#include <_ansi.h>
2#include <sys/types.h>
3#include <sys/stat.h>
4#include "sys/syscall.h"
5
6int errno;
7
8int __trap0 (int function, int p1, int p2, int p3);
9
10#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3))
11
12static void _do_dtors()
13{
14  /* The loop variable is static so that if a destructor calls exit,
15     and we return here, we simply continue with the next destructor. */
16  typedef void (*pfunc) ();
17  extern pfunc __dtors[];
18  extern pfunc __dtors_end[];
19  static pfunc *p = __dtors;
20 
21  while (p < __dtors_end)
22    (*p++) ();
23}
24
25
26void _exit (n)
27{
28  /* Destructors should be done earlier because they need to be done before the
29     files are closed, but here is better than nowhere (and this balances the
30     constructors done in crt1.c. */
31  _do_dtors();
32
33  TRAP0 (SYS_exit, n, 0, 0);
34}
Note: See TracBrowser for help on using the repository browser.