1//===-- RegisterContextMach_arm.cpp -----------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#if defined(__APPLE__) 11 12#include "RegisterContextMach_arm.h" 13 14// C Includes 15#include <mach/mach_types.h> 16#include <mach/thread_act.h> 17 18// C++ Includes 19// Other libraries and framework includes 20// Project includes 21 22using namespace lldb; 23using namespace lldb_private; 24 25 26RegisterContextMach_arm::RegisterContextMach_arm(Thread &thread, uint32_t concrete_frame_idx) : 27 RegisterContextDarwin_arm (thread, concrete_frame_idx) 28{ 29} 30 31RegisterContextMach_arm::~RegisterContextMach_arm() 32{ 33} 34 35int 36RegisterContextMach_arm::DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr) 37{ 38 mach_msg_type_number_t count = GPRWordCount; 39 return ::thread_get_state(tid, flavor, (thread_state_t)&gpr, &count); 40} 41 42int 43RegisterContextMach_arm::DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu) 44{ 45 mach_msg_type_number_t count = FPUWordCount; 46 return ::thread_get_state(tid, flavor, (thread_state_t)&fpu, &count); 47} 48 49int 50RegisterContextMach_arm::DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc) 51{ 52 mach_msg_type_number_t count = EXCWordCount; 53 return ::thread_get_state(tid, flavor, (thread_state_t)&exc, &count); 54} 55 56int 57RegisterContextMach_arm::DoReadDBG (lldb::tid_t tid, int flavor, DBG &dbg) 58{ 59 mach_msg_type_number_t count = DBGWordCount; 60 return ::thread_get_state(tid, flavor, (thread_state_t)&dbg, &count); 61} 62 63int 64RegisterContextMach_arm::DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr) 65{ 66 return ::thread_set_state(tid, flavor, (thread_state_t)&gpr, GPRWordCount); 67} 68 69int 70RegisterContextMach_arm::DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu) 71{ 72 return ::thread_set_state(tid, flavor, (thread_state_t)&fpu, FPUWordCount); 73} 74 75int 76RegisterContextMach_arm::DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc) 77{ 78 return ::thread_set_state(tid, flavor, (thread_state_t)&exc, EXCWordCount); 79} 80 81int 82RegisterContextMach_arm::DoWriteDBG (lldb::tid_t tid, int flavor, const DBG &dbg) 83{ 84 return ::thread_set_state(tid, flavor, (thread_state_t)&dbg, DBGWordCount); 85} 86 87#endif 88