[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [Xen-devel] [XEN][RFC PATCH 01/15] hvm: Modify interfac
From: |
Jan Beulich |
Subject: |
Re: [Qemu-devel] [Xen-devel] [XEN][RFC PATCH 01/15] hvm: Modify interface to support multiple ioreq server |
Date: |
Fri, 23 Mar 2012 08:18:17 +0000 |
>>> On 22.03.12 at 16:59, Julien Grall <address@hidden> wrote:
> --- a/xen/include/public/hvm/hvm_op.h
> +++ b/xen/include/public/hvm/hvm_op.h
> @@ -24,6 +24,8 @@
> #include "../xen.h"
> #include "../trace.h"
>
> +#include "hvm_info_table.h" /* HVM_MAX_VCPUS */
> +
> /* Get/set subcommands: extra argument == pointer to xen_hvm_param struct.
> */
> #define HVMOP_set_param 0
> #define HVMOP_get_param 1
> @@ -227,6 +229,53 @@ struct xen_hvm_inject_trap {
> typedef struct xen_hvm_inject_trap xen_hvm_inject_trap_t;
> DEFINE_XEN_GUEST_HANDLE(xen_hvm_inject_trap_t);
>
> +#define HVMOP_register_ioreq_server 20
> +struct xen_hvm_register_ioreq_server {
> + domid_t domid; /* IN - domain to be serviced */
> + unsigned int id; /* OUT - handle for identifying this server */
> +};
> +typedef struct xen_hvm_register_ioreq_server
> xen_hvm_register_ioreq_server_t;
> +DEFINE_XEN_GUEST_HANDLE(xen_hvm_register_ioreq_server_t);
> +
> +#define HVMOP_get_ioreq_server_buf_channel 21
> +struct xen_hvm_get_ioreq_server_buf_channel {
> + domid_t domid; /* IN - domain to be serviced */
> + servid_t id; /* IN - handle from HVMOP_register_ioreq_server */
> + unsigned int channel; /* OUT - buf ioreq channel */
> +};
> +typedef struct xen_hvm_get_ioreq_server_buf_channel
> xen_hvm_get_ioreq_server_buf_channel_t;
> +DEFINE_XEN_GUEST_HANDLE(xen_hvm_get_ioreq_server_buf_channel_t);
> +
> +#define HVMOP_map_io_range_to_ioreq_server 22
> +struct xen_hvm_map_io_range_to_ioreq_server {
> + domid_t domid; /* IN - domain to be serviced */
> + uint8_t is_mmio; /* IN - MMIO or port IO? */
> + servid_t id; /* IN - handle from HVMOP_register_ioreq_server
> */
> + uint64_aligned_t s, e; /* IN - inclusive start and end of range */
> +};
> +typedef struct xen_hvm_map_io_range_to_ioreq_server
> xen_hvm_map_io_range_to_ioreq_server_t;
> +DEFINE_XEN_GUEST_HANDLE(xen_hvm_map_io_range_to_ioreq_server_t);
> +
> +#define HVMOP_unmap_io_range_from_ioreq_server 23
> +struct xen_hvm_unmap_io_range_from_ioreq_server {
> + domid_t domid; /* IN - domain to be serviced */
> + uint8_t is_mmio; /* IN - MMIO or port IO? */
> + servid_t id; /* IN - handle from HVMOP_register_ioreq_server
> */
> + uint64_aligned_t addr; /* IN - address inside the range to remove */
> +};
> +typedef struct xen_hvm_unmap_io_range_from_ioreq_server
> xen_hvm_unmap_io_range_from_ioreq_server_t;
> +DEFINE_XEN_GUEST_HANDLE(xen_hvm_unmap_io_range_from_ioreq_server_t);
> +
> +#define HVMOP_register_pcidev 24
> +struct xen_hvm_register_pcidev {
> + domid_t domid; /* IN - domain to be serviced */
> + servid_t id; /* IN - handle from HVMOP_register_ioreq_server */
> + uint16_t bdf; /* IN - pci */
Can we please avoid the mistake of again not surfacing the PCI
segment in interface definitions, even if it may be required to be
zero for the immediate needs?
Jan
> +};
> +typedef struct xen_hvm_register_pcidev xen_hvm_register_pcidev_t;
> +DEFINE_XEN_GUEST_HANDLE(xen_hvm_register_pcidev_t);
> +
> +
> #endif /* defined(__XEN__) || defined(__XEN_TOOLS__) */
>
> #define HVMOP_get_mem_type 15
[Qemu-devel] [XEN][RFC PATCH 05/15] hvm: Modify hvm_op, Julien Grall, 2012/03/22
[Qemu-devel] [XEN][RFC PATCH 11/15] xc: Fix python build, Julien Grall, 2012/03/22
[Qemu-devel] [XEN][RFC PATCH 07/15] hvm-io: send invalidate map cache to each registered servers, Julien Grall, 2012/03/22
[Qemu-devel] [XEN][RFC PATCH 13/15] xl-qmp: add device model id to qmp function, Julien Grall, 2012/03/22
[Qemu-devel] [XEN][RFC PATCH 09/15] xc: Add the hypercall for multiple servers, Julien Grall, 2012/03/22