/*
 * exit.c
 *
 * Note: all programs need exit(), since it's invoked from
 * crt0.o.  Therefore there is no point in breaking apart
 * exit() and _exit().
 */

#include <extern.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/syscall.h>

/* We have an assembly version for i386 */

#ifndef __i386__

#define __NR___exit __NR_exit

/* Syscalls can't return void... */
static inline _syscall1(int,__exit,int,rv);

/* This allows atexit/on_exit to install a hook */
__noreturn (*__exit_handler)(int) = _exit;

__noreturn exit(int rv)
{
  __exit_handler(rv);
}

__noreturn _exit(int rv)
{
  __exit(rv);
  for(;;);
}

#endif
