From: Tamas K Lengyel <tamas@tklengyel.com>
To: xen-devel@lists.xenproject.org
Cc: Tamas K Lengyel <tamas@tklengyel.com>,
Ian Jackson <ian.jackson@eu.citrix.com>
Subject: [PATCH v5 9/9] tools/xen-access: add test-case for ARM SMC
Date: Thu, 2 Jun 2016 16:52:26 -0600 [thread overview]
Message-ID: <1464907946-19242-9-git-send-email-tamas@tklengyel.com> (raw)
In-Reply-To: <1464907946-19242-1-git-send-email-tamas@tklengyel.com>
Signed-off-by: Tamas K Lengyel <tamas@tklengyel.com>
Acked-by: Razvan Cojocaru <rcojocaru@bitdefender.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
---
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
---
tools/tests/xen-access/xen-access.c | 45 ++++++++++++++++++++++++++++++++++++-
1 file changed, 44 insertions(+), 1 deletion(-)
diff --git a/tools/tests/xen-access/xen-access.c b/tools/tests/xen-access/xen-access.c
index e615476..e467c48 100644
--- a/tools/tests/xen-access/xen-access.c
+++ b/tools/tests/xen-access/xen-access.c
@@ -338,6 +338,8 @@ void usage(char* progname)
fprintf(stderr, "Usage: %s [-m] <domain_id> write|exec", progname);
#if defined(__i386__) || defined(__x86_64__)
fprintf(stderr, "|breakpoint|altp2m_write|altp2m_exec|debug");
+#elif defined(__arm__) || defined(__aarch64__)
+ fprintf(stderr, "|privcall");
#endif
fprintf(stderr,
"\n"
@@ -426,6 +428,11 @@ int main(int argc, char *argv[])
{
debug = 1;
}
+#elif defined(__arm__) || defined(__aarch64__)
+ else if ( !strcmp(argv[0], "privcall") )
+ {
+ privcall = 1;
+ }
#endif
else
{
@@ -548,6 +555,16 @@ int main(int argc, char *argv[])
}
}
+ if ( privcall )
+ {
+ rc = xc_monitor_privileged_call(xch, domain_id, 1);
+ if ( rc < 0 )
+ {
+ ERROR("Error %d setting privileged call trapping with vm_event\n", rc);
+ goto exit;
+ }
+ }
+
/* Wait for access */
for (;;)
{
@@ -560,7 +577,8 @@ int main(int argc, char *argv[])
rc = xc_monitor_software_breakpoint(xch, domain_id, 0);
if ( debug )
rc = xc_monitor_debug_exceptions(xch, domain_id, 0, 0);
-
+ if ( privcall )
+ rc = xc_monitor_privileged_call(xch, domain_id, 0);
if ( altp2m )
{
rc = xc_altp2m_switch_to_view( xch, domain_id, 0 );
@@ -716,6 +734,31 @@ int main(int argc, char *argv[])
}
break;
+#if defined(__arm__) || defined(__aarch64__)
+ case VM_EVENT_REASON_PRIVILEGED_CALL:
+ {
+ const struct vm_event_regs_arm *in_regs = &req.data.regs.arm;
+ struct vm_event_regs_arm *out_regs = &rsp.data.regs.arm;
+ bool is32bit = !!(in_regs->cpsr & PSR_MODE_BIT);
+ uint64_t pc;
+
+ *out_regs = *in_regs;
+
+ if ( is32bit ) {
+ pc = in_regs->arch.arm32.pc;
+ out_regs->arch.arm32.pc += 4;
+ } else {
+ pc = in_regs->arch.arm64.pc;
+ out_regs->arch.arm64.pc += 8;
+ }
+
+ printf("Privileged call: pc=%016"PRIx64" (vcpu %d)\n",
+ pc, req.vcpu_id);
+
+ rsp.flags |= VM_EVENT_FLAG_SET_REGISTERS;
+ }
+ break;
+#endif
default:
fprintf(stderr, "UNKNOWN REASON CODE %d\n", req.reason);
}
--
2.8.1
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2016-06-02 22:52 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-02 22:52 [PATCH v5 1/9] vm_event: clear up return value of vm_event_monitor_traps Tamas K Lengyel
2016-06-02 22:52 ` [PATCH v5 2/9] monitor: Rename vm_event_monitor_get_capabilities Tamas K Lengyel
2016-06-17 19:07 ` Tamas K Lengyel
2016-06-21 9:20 ` Julien Grall
2016-06-02 22:52 ` [PATCH v5 3/9] monitor: Rename vm_event_monitor_guest_request Tamas K Lengyel
2016-06-17 19:10 ` Tamas K Lengyel
2016-06-21 9:18 ` Julien Grall
2016-06-02 22:52 ` [PATCH v5 4/9] monitor: Rename hvm/event to hvm/monitor Tamas K Lengyel
2016-06-02 22:52 ` [PATCH v5 5/9] monitor: ARM SMC events Tamas K Lengyel
2016-06-03 9:49 ` Julien Grall
2016-06-03 13:40 ` Tamas K Lengyel
2016-06-03 14:43 ` Julien Grall
2016-06-03 15:03 ` Tamas K Lengyel
2016-06-03 15:06 ` Julien Grall
2016-06-03 15:42 ` Tamas K Lengyel
2016-06-03 15:27 ` Tamas K Lengyel
2016-06-03 15:34 ` Tamas K Lengyel
2016-06-04 9:03 ` Edgar E. Iglesias
2016-06-04 17:40 ` Tamas K Lengyel
2016-06-06 10:07 ` Julien Grall
[not found] ` <CABfawh=tOsUP1dQi9oAZM+iy3rMmCKDW=VByT-L-xYdAMBiMKw@mail.gmail.com>
[not found] ` <CABfawhkSXqky9WWp8NyKEUrH_ZzSJToxAncTeSYeKBg1q63rwg@mail.gmail.com>
2016-06-06 15:24 ` Tamas K Lengyel
2016-06-06 15:54 ` Julien Grall
2016-06-06 15:56 ` Tamas K Lengyel
2016-06-06 16:14 ` Tamas K Lengyel
2016-06-06 16:38 ` Julien Grall
2016-06-06 17:28 ` Tamas K Lengyel
2016-06-07 7:13 ` Jan Beulich
2016-06-07 10:30 ` Stefano Stabellini
2016-06-07 16:06 ` Tamas K Lengyel
2016-06-02 22:52 ` [PATCH v5 6/9] arm/vm_event: get/set registers Tamas K Lengyel
2016-06-03 10:34 ` Jan Beulich
2016-06-03 19:27 ` Tamas K Lengyel
2016-06-02 22:52 ` [PATCH v5 7/9] tools/libxc: add xc_monitor_privileged_call Tamas K Lengyel
2016-06-02 22:52 ` [PATCH v5 8/9] x86/vm_event: Add HVM debug exception vm_events Tamas K Lengyel
2016-06-03 10:49 ` Jan Beulich
2016-06-03 13:29 ` Tamas K Lengyel
2016-06-03 14:23 ` Jan Beulich
2016-06-03 14:34 ` Tamas K Lengyel
2016-06-03 14:45 ` Jan Beulich
2016-06-03 14:51 ` Tamas K Lengyel
2016-06-02 22:52 ` Tamas K Lengyel [this message]
2016-06-03 7:08 ` [PATCH v5 1/9] vm_event: clear up return value of vm_event_monitor_traps Razvan Cojocaru
2016-06-03 15:54 ` Jan Beulich
2016-06-03 16:03 ` Tamas K Lengyel
2016-06-17 19:09 ` Tamas K Lengyel
2016-06-24 10:58 ` Tian, Kevin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1464907946-19242-9-git-send-email-tamas@tklengyel.com \
--to=tamas@tklengyel.com \
--cc=ian.jackson@eu.citrix.com \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).