mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-19 12:59:21 +08:00
7382f54405
So the prior patch for sysnecv850 was in newlib. This time we're fixing v850 bits in libgloss. Like other patches submitted recently, this converts implicit ints to explicit ints, adds a missing prototype and header includes.
35 lines
829 B
C
35 lines
829 B
C
#include <_ansi.h>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include "sys/syscall.h"
|
|
|
|
extern int errno;
|
|
|
|
int __trap0 (int function, int p1, int p2, int p3);
|
|
|
|
#define TRAP0(f, p1, p2, p3) __trap0(f, (int)(p1), (int)(p2), (int)(p3))
|
|
|
|
static void _do_dtors()
|
|
{
|
|
/* The loop variable is static so that if a destructor calls exit,
|
|
and we return here, we simply continue with the next destructor. */
|
|
typedef void (*pfunc) ();
|
|
extern pfunc __dtors[];
|
|
extern pfunc __dtors_end[];
|
|
static pfunc *p = __dtors;
|
|
|
|
while (p < __dtors_end)
|
|
(*p++) ();
|
|
}
|
|
|
|
|
|
void _exit (int n)
|
|
{
|
|
/* Destructors should be done earlier because they need to be done before the
|
|
files are closed, but here is better than nowhere (and this balances the
|
|
constructors done in crt1.c. */
|
|
_do_dtors();
|
|
|
|
TRAP0 (SYS_exit, n, 0, 0);
|
|
}
|