Update.
[platform/upstream/glibc.git] / sysdeps / standalone / m68k / m68020 / mvme136 / _exit.c
1 /* Copyright (C) 1994, 1997, 1999 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3    Contributed by Joel Sherrill (jsherril@redstone-emh2.army.mil),
4      On-Line Applications Research Corporation.
5
6    The GNU C Library is free software; you can redistribute it and/or
7    modify it under the terms of the GNU Library General Public License as
8    published by the Free Software Foundation; either version 2 of the
9    License, or (at your option) any later version.
10
11    The GNU C Library is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14    Library General Public License for more details.
15
16    You should have received a copy of the GNU Library General Public
17    License along with the GNU C Library; see the file COPYING.LIB.  If not,
18    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19    Boston, MA 02111-1307, USA.  */
20
21 #include <unistd.h>
22 #include <stdlib.h>
23 #include "m68020.h"
24
25 /* Return control to 135Bug */
26
27 void
28 __exit_trap ()
29 {
30   set_vbr( 0 );                     /* restore 135Bug vectors */
31   asm volatile( "trap   #15"  );    /* trap to 135Bug */
32   asm volatile( ".short 0x63" );    /* return to 135Bug (.RETURN) */
33   asm volatile( "jmp    main" );    /* restart program */
34 }
35
36 /* The function `_exit' should take a status argument and simply
37    terminate program execution, using the low-order 8 bits of the
38    given integer as status.  */
39
40 void
41 __attribute__ ((noreturn))
42 _exit (status)
43      int status;
44 {
45   /* status is ignored */
46
47   M68Kvec[ 45 ] = __exit_trap;   /* install exit_trap handler */
48   asm volatile( "trap #13" );  /* insures SUPV mode */
49 }
50 weak_alias (_exit, _Exit)