Stackdb
Stackdb is a stackable, multi-target and -level source debugger and memory forensics library.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Macros | Enumerations | Functions | Variables
target_xen_vm.h File Reference
#include "config.h"
#include <xenctrl.h>
#include <xen/xen.h>
#include "target_arch_x86.h"
#include "evloop.h"

Go to the source code of this file.

Data Structures

struct  xen_vm_spec
 
struct  xen_vm_thread_state
 
struct  xen_vm_state
 
struct  xen_vm_mem_ops
 

Macros

#define XV_TSREG_START_INDEX   126
 
#define XV_TSREG_COUNT   14
 
#define XV_TSREG_END_INDEX   (XV_TSREG_START_INDEX - XV_TSREG_COUNT + 1)
 

Enumerations

enum  xen_vm_feature_t { XV_FEATURE_BTS = 1 }
 
enum  xen_vm_tsreg_t {
  XV_TSREG_DR0 = XV_TSREG_START_INDEX, XV_TSREG_DR1 = XV_TSREG_START_INDEX - 1, XV_TSREG_DR2 = XV_TSREG_START_INDEX - 2, XV_TSREG_DR3 = XV_TSREG_START_INDEX - 3,
  XV_TSREG_DR6 = XV_TSREG_START_INDEX - 4, XV_TSREG_DR7 = XV_TSREG_START_INDEX - 5, XV_TSREG_CR0 = XV_TSREG_START_INDEX - 6, XV_TSREG_CR1 = XV_TSREG_START_INDEX - 7,
  XV_TSREG_CR2 = XV_TSREG_START_INDEX - 8, XV_TSREG_CR3 = XV_TSREG_START_INDEX - 9, XV_TSREG_CR4 = XV_TSREG_START_INDEX - 10, XV_TSREG_CR5 = XV_TSREG_START_INDEX - 11,
  XV_TSREG_CR6 = XV_TSREG_START_INDEX - 12, XV_TSREG_CR7 = XV_TSREG_START_INDEX - 13
}
 

Functions

struct targetxen_vm_instantiate (struct target_spec *spec, struct evloop *evloop)
 
struct xen_vm_specxen_vm_build_spec (void)
 
void xen_vm_free_spec (struct xen_vm_spec *xspec)
 
int xen_vm_spec_to_argv (struct target_spec *spec, int *argc, char ***argv)
 
unsigned char * xen_vm_read_pid (struct target *target, int pid, ADDR addr, unsigned long target_length, unsigned char *buf)
 
unsigned long xen_vm_write_pid (struct target *target, int pid, ADDR addr, unsigned long length, unsigned char *buf)
 

Variables

struct target_ops xen_vm_ops
 

Macro Definition Documentation

#define XV_TSREG_COUNT   14

Definition at line 47 of file target_xen_vm.h.

#define XV_TSREG_END_INDEX   (XV_TSREG_START_INDEX - XV_TSREG_COUNT + 1)

Definition at line 48 of file target_xen_vm.h.

#define XV_TSREG_START_INDEX   126

Definition at line 46 of file target_xen_vm.h.

Enumeration Type Documentation

Enumerator
XV_FEATURE_BTS 

Definition at line 35 of file target_xen_vm.h.

Enumerator
XV_TSREG_DR0 
XV_TSREG_DR1 
XV_TSREG_DR2 
XV_TSREG_DR3 
XV_TSREG_DR6 
XV_TSREG_DR7 
XV_TSREG_CR0 
XV_TSREG_CR1 
XV_TSREG_CR2 
XV_TSREG_CR3 
XV_TSREG_CR4 
XV_TSREG_CR5 
XV_TSREG_CR6 
XV_TSREG_CR7 

Definition at line 49 of file target_xen_vm.h.

Function Documentation

struct xen_vm_spec* xen_vm_build_spec ( void  )

Definition at line 639 of file target_xen_vm.c.

void xen_vm_free_spec ( struct xen_vm_spec xspec)

Definition at line 649 of file target_xen_vm.c.

struct target* xen_vm_instantiate ( struct target_spec spec,
struct evloop evloop 
)

These are the only user-visible functions.

Definition at line 634 of file target_xen_vm.c.

unsigned char* xen_vm_read_pid ( struct target target,
int  pid,
ADDR  addr,
unsigned long  target_length,
unsigned char *  buf 
)
int xen_vm_spec_to_argv ( struct target_spec spec,
int *  argc,
char ***  argv 
)

Definition at line 392 of file target_xen_vm.c.

unsigned long xen_vm_write_pid ( struct target target,
int  pid,
ADDR  addr,
unsigned long  length,
unsigned char *  buf 
)

Variable Documentation

struct target_ops xen_vm_ops

Definition at line 275 of file target_xen_vm.c.