diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2009-10-15 09:36:40 +0100 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2009-10-15 09:36:40 +0100 |
commit | 61f2a440299cdf5ff809cd330a6400f6a5cdf910 (patch) | |
tree | 227d1b51b47a9bddf6dec437371eabad8d346221 /xen/include/public/domctl.h | |
parent | f8e61527db79a580d9d9d5602059ed4db6c06b2d (diff) | |
download | xen-61f2a440299cdf5ff809cd330a6400f6a5cdf910.tar.gz xen-61f2a440299cdf5ff809cd330a6400f6a5cdf910.tar.bz2 xen-61f2a440299cdf5ff809cd330a6400f6a5cdf910.zip |
gdbsx: a gdbserver stub for xen.
It should be run on dom0 on gdbsx enabled hypervisor. For details,
please see tools/debugger/gdbsx/README
Signed-off-by: Mukesh Rathor <mukesh.rathor@oracle.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/include/public/domctl.h')
-rw-r--r-- | xen/include/public/domctl.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h index 3b4cb51796..0a8c372796 100644 --- a/xen/include/public/domctl.h +++ b/xen/include/public/domctl.h @@ -650,6 +650,29 @@ typedef struct xen_domctl_hvmcontext_partial { } xen_domctl_hvmcontext_partial_t; DEFINE_XEN_GUEST_HANDLE(xen_domctl_hvmcontext_partial_t); +#define XEN_DOMCTL_gdbsx_guestmemio 1000 /* guest mem io */ +struct xen_domctl_gdbsx_memio { + uint64_aligned_t pgd3val;/* optional: init_mm.pgd[3] value */ + uint64_aligned_t gva; /* guest virtual address */ + uint64_aligned_t uva; /* user buffer virtual address */ + int len; /* number of bytes to read/write */ + int gwr; /* 0 = read from guest. 1 = write to guest */ + int remain; /* bytes remaining to be copied */ +}; + +#define XEN_DOMCTL_gdbsx_pausevcpu 1001 +#define XEN_DOMCTL_gdbsx_unpausevcpu 1002 +struct xen_domctl_gdbsx_pauseunp_vcpu { /* pause/unpause a vcpu */ + uint32_t vcpu; /* which vcpu */ +}; + +#define XEN_DOMCTL_gdbsx_domstatus 1003 +struct xen_domctl_gdbsx_domstatus { + int paused; /* is the domain paused */ + uint32_t vcpu_id; /* any vcpu in an event? */ + uint32_t vcpu_ev; /* if yes, what event? */ + +}; struct xen_domctl { uint32_t cmd; @@ -696,6 +719,9 @@ struct xen_domctl { #if defined(__i386__) || defined(__x86_64__) struct xen_domctl_cpuid cpuid; #endif + struct xen_domctl_gdbsx_memio gdbsx_guest_memio; + struct xen_domctl_gdbsx_pauseunp_vcpu gdbsx_pauseunp_vcpu; + struct xen_domctl_gdbsx_domstatus gdbsx_domstatus; uint8_t pad[128]; } u; }; |