aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/public/domctl.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-10-15 09:36:40 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-10-15 09:36:40 +0100
commit61f2a440299cdf5ff809cd330a6400f6a5cdf910 (patch)
tree227d1b51b47a9bddf6dec437371eabad8d346221 /xen/include/public/domctl.h
parentf8e61527db79a580d9d9d5602059ed4db6c06b2d (diff)
downloadxen-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.h26
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;
};