OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [newlib-1.10.0/] [newlib/] [libc/] [sys/] [sysnecv850/] [_exit.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1010 ivang
#include <_ansi.h>
2
#include <sys/types.h>
3
#include <sys/stat.h>
4
#include "sys/syscall.h"
5
 
6
int errno;
7
 
8
int __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
 
12
static 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
 
26
void _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
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.