diff options
author | Daniel De Graaf <dgdegra@tycho.nsa.gov> | 2013-03-21 16:11:22 -0400 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-04-12 14:28:17 +0100 |
commit | 9f0cf56683a0efcaa3cda67c534144d335f7ad2c (patch) | |
tree | 85bc2bbcd3927f3410ed68f2adcdff5cb6b65e0f /extras/mini-os/events.c | |
parent | b05cb51b0605fb7c614e8a78ef03b79eeb06c85a (diff) | |
download | xen-9f0cf56683a0efcaa3cda67c534144d335f7ad2c.tar.gz xen-9f0cf56683a0efcaa3cda67c534144d335f7ad2c.tar.bz2 xen-9f0cf56683a0efcaa3cda67c534144d335f7ad2c.zip |
mini-os/tpmback: add tpmback_get_peercontext
This allows the XSM label of the TPM's client domain to be retrieved.
Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Diffstat (limited to 'extras/mini-os/events.c')
-rw-r--r-- | extras/mini-os/events.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/extras/mini-os/events.c b/extras/mini-os/events.c index 896c36565c..036b84b691 100644 --- a/extras/mini-os/events.c +++ b/extras/mini-os/events.c @@ -21,6 +21,7 @@ #include <mini-os/hypervisor.h> #include <mini-os/events.h> #include <mini-os/lib.h> +#include <xen/xsm/flask_op.h> #define NR_EVS 1024 @@ -258,6 +259,27 @@ int evtchn_bind_interdomain(domid_t pal, evtchn_port_t remote_port, return rc; } +int evtchn_get_peercontext(evtchn_port_t local_port, char *ctx, int size) +{ + int rc; + uint32_t sid; + struct xen_flask_op op; + op.cmd = FLASK_GET_PEER_SID; + op.interface_version = XEN_FLASK_INTERFACE_VERSION; + op.u.peersid.evtchn = local_port; + rc = _hypercall1(int, xsm_op, &op); + if (rc) + return rc; + sid = op.u.peersid.sid; + op.cmd = FLASK_SID_TO_CONTEXT; + op.u.sid_context.sid = sid; + op.u.sid_context.size = size; + set_xen_guest_handle(op.u.sid_context.context, ctx); + rc = _hypercall1(int, xsm_op, &op); + return rc; +} + + /* * Local variables: * mode: C |