Home | History | Annotate | Download | only in elf-core
      1 //===-- RegisterContextCoreLinux_x86_64.h ----------------------*- 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 #ifndef liblldb_RegisterContextCoreLinux_x86_64_H_
     11 #define liblldb_RegisterContextCoreLinux_x86_64_H_
     12 
     13 #include "Plugins/Process/POSIX/RegisterContextLinux_x86_64.h"
     14 
     15 using namespace lldb_private;
     16 
     17 class RegisterContextCoreLinux_x86_64: public RegisterContextLinux_x86_64
     18 {
     19 public:
     20     RegisterContextCoreLinux_x86_64 (Thread &thread, const DataExtractor &gpregset,
     21                                      const DataExtractor &fpregset);
     22 
     23     ~RegisterContextCoreLinux_x86_64();
     24 
     25     virtual bool
     26     ReadRegister(const RegisterInfo *reg_info, RegisterValue &value);
     27 
     28     bool
     29     ReadAllRegisterValues(lldb::DataBufferSP &data_sp);
     30 
     31     virtual bool
     32     WriteRegister(const RegisterInfo *reg_info, const RegisterValue &value);
     33 
     34     bool
     35     WriteAllRegisterValues(const lldb::DataBufferSP &data_sp);
     36 
     37     bool
     38     HardwareSingleStep(bool enable);
     39 
     40     bool
     41     UpdateAfterBreakpoint();
     42 
     43 protected:
     44     bool
     45     ReadFPR()
     46     {
     47         assert(0);
     48     }
     49 
     50 private:
     51     uint8_t *m_gpregset;
     52 };
     53 
     54 #endif // #ifndef liblldb_RegisterContextCoreLinux_x86_64_H_
     55