|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH V2 2/26] DOMCTL: Introduce new DOMCTL commands for vIOMMU support
On Thu, May 18, 2017 at 01:34:32AM -0400, Lan Tianyu wrote:
> This patch is to introduce create, destroy and query capabilities
> command for vIOMMU. vIOMMU layer will deal with requests and call
> arch vIOMMU ops.
>
> Signed-off-by: Lan Tianyu <tianyu.lan@xxxxxxxxx>
> ---
> xen/common/domctl.c | 3 +++
> xen/common/viommu.c | 35 +++++++++++++++++++++++++++++++++++
> xen/include/public/domctl.h | 40 ++++++++++++++++++++++++++++++++++++++++
> xen/include/xen/viommu.h | 8 +++++++-
> 4 files changed, 85 insertions(+), 1 deletion(-)
>
> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
> index 951a5dc..a178544 100644
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -1141,6 +1141,9 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t)
> u_domctl)
> if ( !ret )
> copyback = 1;
> break;
> + case XEN_DOMCTL_viommu_op:
> + ret = viommu_domctl(d, &op->u.viommu_op, ©back);
> + break;
>
> default:
> ret = arch_do_domctl(op, d, u_domctl);
> diff --git a/xen/common/viommu.c b/xen/common/viommu.c
> index eadcecb..74afbf5 100644
> --- a/xen/common/viommu.c
> +++ b/xen/common/viommu.c
> @@ -30,6 +30,41 @@ struct viommu_type {
> struct list_head node;
> };
>
> +int viommu_domctl(struct domain *d, struct xen_domctl_viommu_op *op,
> + bool_t *need_copy)
s/bool_t/bool/g
> +{
> + int rc = -EINVAL;
> +
> + switch ( op->cmd )
> + {
> + case XEN_DOMCTL_create_viommu:
> + rc = viommu_create(d, op->u.create_viommu.viommu_type,
> + op->u.create_viommu.base_address,
> + op->u.create_viommu.length,
> + op->u.create_viommu.capabilities);
Indentation.
> + if (rc >= 0) {
Style.
> + op->u.create_viommu.viommu_id = rc;
> + *need_copy = true;
> + }
> + break;
> +
> + case XEN_DOMCTL_destroy_viommu:
> + rc = viommu_destroy(d, op->u.destroy_viommu.viommu_id);
> + break;
> +
> + case XEN_DOMCTL_query_viommu_caps:
> + op->u.query_caps.caps
> + = viommu_query_caps(d, op->u.query_caps.viommu_type);
> + *need_copy = true;
> + break;
> +
> + default:
> + break;
> + }
> +
> + return rc;
> +}
> +
[...]
> static inline int viommu_init_domain(struct domain *d) { return 0 };
> @@ -62,8 +64,12 @@ static inline int viommu_register_type(u64 type, struct
> viommu_ops * ops)
> { return 0; };
> static inline void viommu_unregister_type(u64 type) { };
> static inline u64 viommu_query_caps(struct domain *d, u64 viommu_type)
> - { return -ENODEV };
> +{ return -ENODEV };
Spurious change.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |