00001 /*-------------------------------------------------------------------- 00002 * jtag_commander.cpp -- JTAG Commander Class Definition 00003 *-------------------------------------------------------------------- 00004 * $Id: jtag_commander.h,v 1.1 2003/04/08 08:59:53 cgaudin Exp $ 00005 *-------------------------------------------------------------------- 00006 * This file is part of JTAG Framework 00007 * (c) 2002 Julien Pilet <julien.pilet@epfl.ch> and 00008 * Stephane Magnenat <stephane.magnenat@epfl.ch> 00009 *-------------------------------------------------------------------- 00010 * JTAG Framework is free software; you can redistribute it 00011 * and/or modify it under the terms of the GNU General Public License 00012 * as published by the Free Software Foundation; either version 2 of 00013 * the License, or (at your option) any later version. 00014 * 00015 * JTAG Framework is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU General Public License 00021 * along with Foobar; if not, write to: 00022 * Free Software Foundation, Inc., 00023 * 59 Temple Place, 00024 * Suite 330, Boston, MA 02111-1307 USA 00025 *-------------------------------------------------------------------- 00026 *! \file 00027 * 00028 * \brief JTAG Commander Abstract Class Definition 00029 * 00030 * \author Julien Pilet <julien.pilet@epfl.ch> 00031 * \author Stephane Magnenat <stephane.magnenat@epfl.ch> 00032 * \author Cedric Gaudin <cedric.gaudin@epfl.ch> 00033 */ 00034 00035 #ifndef _JTAG_COMMANDER_ 00036 #define _JTAG_COMMANDER_ 00037 00038 class JTAG_Commander 00039 { 00040 public: 00041 00043 virtual bool init( int argc , 00044 char **argv ) = 0; 00045 00047 virtual void jtag_ireg( unsigned long value ) = 0; 00048 00050 virtual bool jtag_shiftdr( void ) = 0; 00051 00053 virtual bool jtag_updatedr( void ) = 0; 00054 00056 virtual unsigned long jtag_dreg( int bit_count , 00057 unsigned long data ) = 0; 00058 00060 virtual bool jtag_reset( bool cold ) = 0; 00061 00063 virtual void jtag_idle() = 0; 00064 00066 virtual bool cpu_reset( bool state ) = 0; 00067 00069 virtual void flush() = 0; 00070 00071 }; 00072 00073 #endif // _JTAG_COMMANDER_