1254721Semaste//===-- RegisterContextMach_i386.cpp ----------------------------*- C++ -*-===// 2254721Semaste// 3254721Semaste// The LLVM Compiler Infrastructure 4254721Semaste// 5254721Semaste// This file is distributed under the University of Illinois Open Source 6254721Semaste// License. See LICENSE.TXT for details. 7254721Semaste// 8254721Semaste//===----------------------------------------------------------------------===// 9254721Semaste 10254721Semaste#if defined(__APPLE__) 11254721Semaste 12254721Semaste// C Includes 13254721Semaste#include <mach/thread_act.h> 14254721Semaste 15254721Semaste// C++ Includes 16254721Semaste// Other libraries and framework includes 17254721Semaste// Project includes 18254721Semaste#include "RegisterContextMach_i386.h" 19254721Semaste 20254721Semasteusing namespace lldb; 21254721Semasteusing namespace lldb_private; 22254721Semaste 23254721Semaste 24254721SemasteRegisterContextMach_i386::RegisterContextMach_i386(Thread &thread, uint32_t concrete_frame_idx) : 25254721Semaste RegisterContextDarwin_i386 (thread, concrete_frame_idx) 26254721Semaste{ 27254721Semaste} 28254721Semaste 29254721SemasteRegisterContextMach_i386::~RegisterContextMach_i386() 30254721Semaste{ 31254721Semaste} 32254721Semaste 33254721Semasteint 34254721SemasteRegisterContextMach_i386::DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr) 35254721Semaste{ 36254721Semaste mach_msg_type_number_t count = GPRWordCount; 37254721Semaste return ::thread_get_state(tid, flavor, (thread_state_t)&gpr, &count); 38254721Semaste} 39254721Semaste 40254721Semasteint 41254721SemasteRegisterContextMach_i386::DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu) 42254721Semaste{ 43254721Semaste mach_msg_type_number_t count = FPUWordCount; 44254721Semaste return ::thread_get_state(tid, flavor, (thread_state_t)&fpu, &count); 45254721Semaste} 46254721Semaste 47254721Semasteint 48254721SemasteRegisterContextMach_i386::DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc) 49254721Semaste{ 50254721Semaste mach_msg_type_number_t count = EXCWordCount; 51254721Semaste return ::thread_get_state(tid, flavor, (thread_state_t)&exc, &count); 52254721Semaste} 53254721Semaste 54254721Semasteint 55254721SemasteRegisterContextMach_i386::DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr) 56254721Semaste{ 57254721Semaste return ::thread_set_state(tid, flavor, (thread_state_t)&gpr, GPRWordCount); 58254721Semaste} 59254721Semaste 60254721Semasteint 61254721SemasteRegisterContextMach_i386::DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu) 62254721Semaste{ 63254721Semaste return ::thread_set_state(tid, flavor, (thread_state_t)&fpu, FPUWordCount); 64254721Semaste} 65254721Semaste 66254721Semasteint 67254721SemasteRegisterContextMach_i386::DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc) 68254721Semaste{ 69254721Semaste return ::thread_set_state(tid, flavor, (thread_state_t)&exc, EXCWordCount); 70254721Semaste} 71254721Semaste 72254721Semaste#endif 73