etisserant@246: /*
etisserant@246: This file is part of CanFestival, a library implementing CanOpen Stack. 
etisserant@246: 
etisserant@246: Copyright (C): Edouard TISSERANT and Francis DUPIN
etisserant@246: 
etisserant@246: See COPYING file for copyrights details.
etisserant@246: 
etisserant@246: This library is free software; you can redistribute it and/or
etisserant@246: modify it under the terms of the GNU Lesser General Public
etisserant@246: License as published by the Free Software Foundation; either
etisserant@246: version 2.1 of the License, or (at your option) any later version.
etisserant@246: 
etisserant@246: This library is distributed in the hope that it will be useful,
etisserant@246: but WITHOUT ANY WARRANTY; without even the implied warranty of
etisserant@246: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
etisserant@246: Lesser General Public License for more details.
etisserant@246: 
etisserant@246: You should have received a copy of the GNU Lesser General Public
etisserant@246: License along with this library; if not, write to the Free Software
etisserant@246: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
etisserant@246: */
etisserant@246: #ifdef USE_XENO
etisserant@246: #define eprintf(...)
etisserant@246: #else
etisserant@246: #define eprintf(...) printf (__VA_ARGS__)
etisserant@246: #endif
etisserant@246: 
etisserant@246: #include "canfestival.h"
etisserant@246: 
etisserant@246: /*
etisserant@246: #define CAN_FIFO_LENGTH 100
etisserant@246: 
etisserant@246: #define DECLARE_A_CAN_FIFO \
etisserant@246: static Message FIFO[CAN_FIFO_LENGTH];\
etisserant@246: static int FIFO_First = 0;\
etisserant@246: static int FIFO_Last = 0;\
etisserant@246: \
etisserant@246: static void PutInFIFO(Message *m)\
etisserant@246: {\
etisserant@246: 	FIFO[FIFO_Last++] = *m;\
etisserant@246: 	FIFO_Last %= CAN_FIFO_LENGTH;\
etisserant@246: }\
etisserant@246: \
etisserant@246: static void GetFromFIFO(Message *m)\
etisserant@246: {\
etisserant@246: 	*m = FIFO[FIFO_First++];\
etisserant@246: 	FIFO_First %= CAN_FIFO_LENGTH;\
etisserant@246: }\
etisserant@246: \
etisserant@246: static void TransmitMessage(CO_Data* d, UNS32 id)\
etisserant@246: {\
etisserant@246: 	Message m;\
etisserant@246: 	GetFromFIFO(&m);\
etisserant@246: 	canDispatch(d, &m);\
etisserant@246: }
etisserant@246: */