blob: 14984c9f9ebec1477eefc71c015af232670125c5 [file] [log] [blame]
//===-- MachThreadContext_arm.h ---------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef liblldb_MachThreadContext_arm_h_
#define liblldb_MachThreadContext_arm_h_
#include "MachThreadContext.h"
#include "RegisterContextMach_arm.h"
class ThreadMacOSX;
class MachThreadContext_arm : public MachThreadContext
{
public:
enum { kMaxNumThumbITBreakpoints = 4 };
static MachThreadContext*
Create (const lldb_private::ArchSpec &arch_spec, ThreadMacOSX &thread);
static void
Initialize();
MachThreadContext_arm(ThreadMacOSX &thread);
virtual
~MachThreadContext_arm();
virtual lldb::RegisterContextSP
CreateRegisterContext (lldb_private::StackFrame *frame) const;
virtual void
InitializeInstance();
virtual void
ThreadWillResume ();
virtual bool
ShouldStop ();
virtual void
RefreshStateAfterStop ();
protected:
kern_return_t
EnableHardwareSingleStep (bool enable);
protected:
lldb::addr_t m_hw_single_chained_step_addr;
uint32_t m_bvr0_reg;
uint32_t m_bcr0_reg;
uint32_t m_bvr0_save;
uint32_t m_bcr0_save;
};
#endif // #ifndef liblldb_MachThreadContext_arm_h_