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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc1/] [libgloss/] [iq2000/] [_exit.c] - Diff between revs 207 and 345

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 207 Rev 345
#include <_ansi.h>
#include <_ansi.h>
#include <sys/types.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/stat.h>
#include "trap.h"
#include "trap.h"
 
 
 
 
static void _do_dtors()
static void _do_dtors()
{
{
  /* The loop variable is static so that if a destructor calls exit,
  /* The loop variable is static so that if a destructor calls exit,
     and we return here, we simply continue with the next destructor. */
     and we return here, we simply continue with the next destructor. */
  typedef void (*pfunc) ();
  typedef void (*pfunc) ();
  extern pfunc __dtors[];
  extern pfunc __dtors[];
  extern pfunc __dtors_end[];
  extern pfunc __dtors_end[];
  static pfunc *p = __dtors;
  static pfunc *p = __dtors;
 
 
  while (p < __dtors_end)
  while (p < __dtors_end)
    (*p++) ();
    (*p++) ();
}
}
 
 
 
 
void _exit (n)
void _exit (n)
{
{
  extern unsigned char __eh_frame_begin[];
  extern unsigned char __eh_frame_begin[];
  extern void __deregister_frame_info (void *);
  extern void __deregister_frame_info (void *);
 
 
  /* Destructors should be done earlier because they need to be done before the
  /* 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
     files are closed, but here is better than nowhere (and this balances the
     constructors done in crt1.c. */
     constructors done in crt1.c. */
  _do_dtors();
  _do_dtors();
 
 
  /* Deregister any eh frames.  */
  /* Deregister any eh frames.  */
  __deregister_frame_info (__eh_frame_begin);
  __deregister_frame_info (__eh_frame_begin);
 
 
  TRAP0 (SYS_exit, n, 0, 0);
  TRAP0 (SYS_exit, n, 0, 0);
}
}
 
 

powered by: WebSVN 2.1.0

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