nico@207: nico@207:
nico@207:00001 /* nico@207: 00002 This file is part of CanFestival, a library implementing CanOpen Stack. nico@207: 00003 nico@207: 00004 Copyright (C): Edouard TISSERANT and Francis DUPIN nico@207: 00005 nico@207: 00006 See COPYING file for copyrights details. nico@207: 00007 nico@207: 00008 This library is free software; you can redistribute it and/or nico@207: 00009 modify it under the terms of the GNU Lesser General Public nico@207: 00010 License as published by the Free Software Foundation; either nico@207: 00011 version 2.1 of the License, or (at your option) any later version. nico@207: 00012 nico@207: 00013 This library is distributed in the hope that it will be useful, nico@207: 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of nico@207: 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU nico@207: 00016 Lesser General Public License for more details. nico@207: 00017 nico@207: 00018 You should have received a copy of the GNU Lesser General Public nico@207: 00019 License along with this library; if not, write to the Free Software nico@207: 00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA nico@207: 00021 */ nico@207: 00022 nico@207: 00023 /* exit.h - 32K Board specific parameters nico@207: 00024 Copyright (C) 2002 Free Software Foundation, Inc. nico@207: 00025 Written by Stephane Carrez (stcarrez@nerim.fr) nico@207: 00026 nico@207: 00027 This file is free software; you can redistribute it and/or modify it nico@207: 00028 under the terms of the GNU General Public License as published by the nico@207: 00029 Free Software Foundation; either version 2, or (at your option) any nico@207: 00030 later version. nico@207: 00031 nico@207: 00032 In addition to the permissions in the GNU General Public License, the nico@207: 00033 Free Software Foundation gives you unlimited permission to link the nico@207: 00034 compiled version of this file with other programs, and to distribute nico@207: 00035 those programs without any restriction coming from the use of this nico@207: 00036 file. (The General Public License restrictions do apply in other nico@207: 00037 respects; for example, they cover modification of the file, and nico@207: 00038 distribution when not linked into another program.) nico@207: 00039 nico@207: 00040 This file is distributed in the hope that it will be useful, but nico@207: 00041 WITHOUT ANY WARRANTY; without even the implied warranty of nico@207: 00042 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU nico@207: 00043 General Public License for more details. nico@207: 00044 nico@207: 00045 You should have received a copy of the GNU General Public License nico@207: 00046 along with this program; see the file COPYING. If not, write to nico@207: 00047 the Free Software Foundation, 59 Temple Place - Suite 330, nico@207: 00048 Boston, MA 02111-1307, USA. */ nico@207: 00049 nico@207: 00050 #ifndef _M68HC11_ARCH_32K_EXIT_H nico@207: 00051 #define _M68HC11_ARCH_32K_EXIT_H nico@207: 00052 nico@207: 00053 extern void _exit (short status) __attribute__((noreturn)); nico@207: 00054 nico@207: 00055 /* For the simulator, the wai stops everything and exits with the nico@207: 00056 error code stored in register d. nico@207: 00057 nico@207: 00058 For a real 68HC11, enable interrupts and wait forever. */ nico@207: 00059 extern inline void nico@207: 00060 _exit (short status) nico@207: 00061 { nico@207: 00062 /* Use 'd' constraint to force the status to be in the D nico@207: 00063 register before execution of the asm. */ nico@207: 00064 while (1) nico@207: 00065 { nico@207: 00066 __asm__ __volatile__ ("cli\n" nico@207: 00067 "wai" : : "d"(status)); nico@207: 00068 } nico@207: 00069 } nico@207: 00070 nico@207: 00071 #endif nico@207: