etisserant@0: /* etisserant@0: This file is part of CanFestival, a library implementing CanOpen Stack. etisserant@0: etisserant@0: Copyright (C): Edouard TISSERANT and Francis DUPIN etisserant@0: etisserant@0: See COPYING file for copyrights details. etisserant@0: etisserant@0: This library is free software; you can redistribute it and/or etisserant@0: modify it under the terms of the GNU Lesser General Public etisserant@0: License as published by the Free Software Foundation; either etisserant@0: version 2.1 of the License, or (at your option) any later version. etisserant@0: etisserant@0: This library is distributed in the hope that it will be useful, etisserant@0: but WITHOUT ANY WARRANTY; without even the implied warranty of etisserant@0: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU etisserant@0: Lesser General Public License for more details. etisserant@0: etisserant@0: You should have received a copy of the GNU Lesser General Public etisserant@0: License along with this library; if not, write to the Free Software etisserant@0: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA etisserant@0: */ etisserant@0: etisserant@0: /* etisserant@0: Functions called by interrupts vectors. etisserant@0: */ etisserant@0: /* etisserant@0: This is a part of the driver, of course ! etisserant@0: But you have to put your code in this functions, etisserant@0: if you plan to use interruptions. etisserant@0: */ etisserant@0: dejoigny@9: #include "../include/data.h" etisserant@0: #include "../include/hcs12/applicfg.h" etisserant@0: #include "../include/hcs12/error.h" etisserant@0: #include "../include/hcs12/candriver.h" etisserant@0: #include "../include/hcs12/asm-m68hc12/regs.h" etisserant@0: #include "../include/hcs12/asm-m68hc12/portsaccess.h" etisserant@0: #include "../include/hcs12/asm-m68hc12/ports_def.h" etisserant@0: #include "../include/hcs12/asm-m68hc12/ports.h" etisserant@0: #include "../include/hcs12/interrupt.h" etisserant@0: etisserant@0: extern volatile char msgRecu; etisserant@0: extern volatile Message canMsgRcv; etisserant@0: etisserant@0: etisserant@0: etisserant@0: /* Inhibe les interruptions */ etisserant@0: etisserant@0: void lock (void) etisserant@0: { etisserant@0: unsigned short mask; etisserant@0: __asm__ __volatile__ ("tpa\n\tsei" : "=d"(mask)); etisserant@0: etisserant@0: } etisserant@0: etisserant@0: /* Autorise les interruptions */ etisserant@0: void unlock (void) etisserant@0: { etisserant@0: __asm__ __volatile__ ("cli"); etisserant@0: } etisserant@0: etisserant@0: etisserant@0: etisserant@0: