remote_gdb.hh revision 7752
1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * Copyright (c) 2007-2008 The Florida State University 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are 8 * met: redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer; 10 * redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution; 13 * neither the name of the copyright holders nor the names of its 14 * contributors may be used to endorse or promote products derived from 15 * this software without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 21 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * 29 * Authors: Nathan Binkert 30 * Stephen Hines 31 */ 32 33#ifndef __ARCH_ARM_REMOTE_GDB_HH__ 34#define __ARCH_ARM_REMOTE_GDB_HH__ 35 36#include "base/remote_gdb.hh" 37 38class System; 39class ThreadContext; 40class PhysicalMemory; 41 42namespace ArmISA 43{ 44// registers for arm with vfpv3/neon 45const int NUMREGS = 41; /* r0-r15, cpsr, d0-d31, fpscr */ 46const int REG_R0 = 0; 47const int REG_F0 = 8; 48const int REG_CPSR = 8; /* bit 512 to bit 543 */ 49const int REG_FPSCR = 40; /* bit 2592 to bit 2623 */ 50 51class RemoteGDB : public BaseRemoteGDB 52{ 53 54protected: 55 Addr notTakenBkpt; 56 Addr takenBkpt; 57 58protected: 59 bool acc(Addr addr, size_t len); 60 bool write(Addr addr, size_t size, const char *data); 61 62 void getregs(); 63 void setregs(); 64 65 void clearSingleStep(); 66 void setSingleStep(); 67 68public: 69 RemoteGDB(System *_system, ThreadContext *tc); 70}; 71} // namespace ArmISA 72 73#endif /* __ARCH_ARM_REMOTE_GDB_H__ */ 74