|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 13/21] xen/dts: Add hypercalls to retrieve device node information
>>> On 31.07.14 at 17:00, <julien.grall@xxxxxxxxxx> wrote:
> --- a/xen/common/domctl.c
> +++ b/xen/common/domctl.c
> @@ -315,6 +315,7 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t)
> u_domctl)
> case XEN_DOMCTL_createdomain:
> case XEN_DOMCTL_getdomaininfo:
> case XEN_DOMCTL_test_assign_device:
> + case XEN_DOMCTL_dtdev_op:
> d = NULL;
> break;
> default:
> @@ -1017,6 +1018,15 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t)
> u_domctl)
> }
> break;
>
> +#ifdef HAS_DEVICE_TREE
> + case XEN_DOMCTL_dtdev_op:
> + {
> + ret = dt_do_domctl(op);
> + copyback = 1;
> + }
> + break;
> +#endif
No pointless braces please.
> --- a/xen/include/public/domctl.h
> +++ b/xen/include/public/domctl.h
> @@ -946,6 +946,44 @@ typedef struct xen_domctl_vcpu_msrs
> xen_domctl_vcpu_msrs_t;
> DEFINE_XEN_GUEST_HANDLE(xen_domctl_vcpu_msrs_t);
> #endif
>
> +/* Device Tree: Retrieve informations about a device node */
> +struct xen_domctl_dtdev_op {
> + /* IN */
> + uint32_t plen; /* Length of the path */
> + XEN_GUEST_HANDLE(char) path; /* Path to the device tree node */
XEN_GUEST_HANDLE_64? And padding between the two above
members, or fields re-ordered?
> +#define DOMCTL_DTDEV_GET_INFO 0
> +#define DOMCTL_DTDEV_GET_IRQ 1
> +#define DOMCTL_DTDEV_GET_MMIO 2
> +#define DOMCTL_DTDEV_GET_COMPAT 3
> + uint8_t op;
> + uint32_t pad0:24;
uint8_t pad0[3].
> + uint32_t index; /* Index for the IRQ/MMIO to retrieve */
> + /* OUT */
> + union {
> + struct {
> + uint32_t num_irqs; /* Number of IRQs */
> + uint32_t num_mmios; /* Number of MMIOs */
> + uint32_t compat_len; /* Length of the compatible string */
> + } info;
> + struct {
> + /* TODO: Do we need to handle MSI-X? */
> + uint32_t irq; /* IRQ number */
> + /* TODO: Describe with defines the IRQ type */
???
Also, are you planning to address these two TODOs before this gets
ready to be committed?
> + uint32_t type; /* IRQ type (i.e edge, level...) */
#define-s to specify what values here mean?
> + } irq;
> + struct {
> + xen_pfn_t mfn;
> + xen_pfn_t nr_mfn;
> + } mmio;
> + struct {
> + uint32_t len; /* IN: Size of buffer. OUT: Size copied
> */
> + XEN_GUEST_HANDLE_64(char) compat;
Padding again?
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |