From: Julien Grall <julien.grall@linaro.org>
To: Jan Beulich <JBeulich@suse.com>
Cc: Ian Jackson <ian.jackson@eu.citrix.com>,
tim@xen.org, stefano.stabellini@citrix.com,
ian.campbell@citrix.com, xen-devel@lists.xenproject.org
Subject: Re: [PATCH v2 13/21] xen/dts: Add hypercalls to retrieve device node information
Date: Wed, 06 Aug 2014 16:17:48 +0100 [thread overview]
Message-ID: <53E2471C.6020109@linaro.org> (raw)
In-Reply-To: <53DB70FD020000780002850B@mail.emea.novell.com>
Hi Jan,
On 08/01/2014 09:50 AM, Jan Beulich wrote:
>>>> On 31.07.14 at 17:00, <julien.grall@linaro.org> 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.
Will drop it.
>> --- 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?
Right. I never know when I should use XEN_GUEST_HANDLE_64 or
XEN_GUEST_HANDLE.
FYI, it's exactly the same on ARM.
> And padding between the two above
> members, or fields re-ordered?
I can reorder the field.
>> +#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].
Ok.
>> + 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 */
>
> ???
For now we are using the DT_IRQ_TYPE_* provided by the device tree (see
include/xen/device_tree.h). I haven't yet introduced specific IRQ type here.
> Also, are you planning to address these two TODOs before this gets
> ready to be committed?
I plan to handle the latter TODO (i.e IRQ type), for the MSI I don't
know how they will be described in the device tree. So I will drop the
TODO. It will be fine because it's a DOMCTL so it's possible to change
the interface easily.
>> + uint32_t type; /* IRQ type (i.e edge, level...) */
>
> #define-s to specify what values here mean?
See my answer a bit above.
>> + } 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?
I will invert the 2 fields.
Regards,
--
Julien Grall
next prev parent reply other threads:[~2014-08-06 15:17 UTC|newest]
Thread overview: 119+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-31 15:00 [PATCH v2 00/21] xen/arm: Add support for non-pci passthrough Julien Grall
2014-07-31 15:00 ` [PATCH v2 01/21] xen/common: do not implicitly permit access to mapped I/O memory Julien Grall
2014-07-31 15:22 ` Julien Grall
2014-07-31 15:00 ` [PATCH v2 02/21] xen: guestcopy: Provide an helper to safely copy string from guest Julien Grall
2014-08-01 8:40 ` Jan Beulich
2014-08-06 14:18 ` Julien Grall
2014-09-09 12:52 ` Ian Campbell
2014-09-09 13:17 ` Jan Beulich
2014-09-09 13:40 ` Ian Campbell
2014-08-06 13:56 ` Stefano Stabellini
2014-08-06 14:22 ` Julien Grall
2014-08-06 16:06 ` Daniel De Graaf
2014-07-31 15:00 ` [PATCH v2 03/21] xen/arm: vgic: Rename nr_lines into nr_spis Julien Grall
2014-08-06 13:58 ` Stefano Stabellini
2014-07-31 15:00 ` [PATCH v2 04/21] xen/arm: vgic: Introduce a function to initialize pending_irq Julien Grall
2014-08-06 14:06 ` Stefano Stabellini
2014-08-06 14:52 ` Julien Grall
2014-08-06 14:57 ` Stefano Stabellini
2014-07-31 15:00 ` [PATCH v2 05/21] xen/arm: follow-up to allow DOM0 manage IRQ and MMIO Julien Grall
2014-09-09 13:07 ` Ian Campbell
2014-09-11 22:32 ` Julien Grall
2014-09-12 10:13 ` Ian Campbell
2014-09-12 19:04 ` Julien Grall
2014-07-31 15:00 ` [PATCH v2 06/21] xen/arm: Allow virq != irq Julien Grall
2014-08-06 14:50 ` Stefano Stabellini
2014-08-06 15:07 ` Julien Grall
2014-08-06 16:48 ` Stefano Stabellini
2014-09-09 13:29 ` Ian Campbell
2014-09-09 18:42 ` Julien Grall
2014-09-11 22:50 ` Julien Grall
2014-09-12 10:13 ` Ian Campbell
2014-09-12 10:19 ` Ian Campbell
2014-07-31 15:00 ` [PATCH v2 07/21] xen/arm: route_irq_to_guest: Check validity of the IRQ Julien Grall
2014-08-06 14:56 ` Stefano Stabellini
2014-07-31 15:00 ` [PATCH v2 08/21] xen/arm: Initialize the virtual GIC later Julien Grall
2014-08-06 15:35 ` Stefano Stabellini
2014-09-09 13:35 ` Ian Campbell
2014-09-09 18:57 ` Julien Grall
2014-09-10 10:08 ` Ian Campbell
2014-09-11 23:01 ` Julien Grall
2014-09-12 10:14 ` Ian Campbell
2014-08-06 17:06 ` Daniel De Graaf
2014-08-29 13:09 ` Andrii Tseglytskyi
2014-08-29 18:57 ` Julien Grall
2014-08-29 19:49 ` Andrii Tseglytskyi
2014-08-29 20:04 ` Julien Grall
2014-08-29 20:14 ` Andrii Tseglytskyi
2014-09-09 13:33 ` Ian Campbell
2014-09-09 19:11 ` Julien Grall
2014-09-10 9:45 ` Andrii Tseglytskyi
2014-09-09 13:37 ` Ian Campbell
[not found] ` <CAAHg+HhhsZonrEDdHET93dy=dR1+YF-VPGJ=VwB20RRxWqdSYA@mail.gmail.com>
2014-10-06 16:04 ` Julien Grall
2014-07-31 15:00 ` [PATCH v2 09/21] xen/arm: Release IRQ routed to a domain when it's destroying Julien Grall
2014-08-06 15:49 ` Stefano Stabellini
2014-08-06 16:01 ` Julien Grall
2014-08-06 16:53 ` Stefano Stabellini
2014-08-06 17:09 ` Julien Grall
2014-08-07 15:36 ` Stefano Stabellini
2014-08-07 15:40 ` Julien Grall
2014-08-07 16:31 ` Stefano Stabellini
2014-08-07 16:35 ` Julien Grall
2014-08-07 16:39 ` Stefano Stabellini
2014-09-09 13:53 ` Ian Campbell
2014-09-09 22:29 ` Stefano Stabellini
2014-07-31 15:00 ` [PATCH v2 10/21] xen/arm: Implement hypercall PHYSDEVOP_{, un}map_pirq Julien Grall
2014-08-06 16:10 ` Stefano Stabellini
2014-08-29 12:34 ` Andrii Tseglytskyi
2014-08-29 19:08 ` Julien Grall
2014-08-29 19:44 ` Andrii Tseglytskyi
2014-07-31 15:00 ` [PATCH v2 11/21] xen/dts: Use unsigned int for MMIO and IRQ index Julien Grall
2014-08-06 16:12 ` Stefano Stabellini
2014-07-31 15:00 ` [PATCH v2 12/21] xen/dts: Provide an helper to get a DT node from a path provided by a guest Julien Grall
2014-09-09 13:55 ` Ian Campbell
2014-07-31 15:00 ` [PATCH v2 13/21] xen/dts: Add hypercalls to retrieve device node information Julien Grall
2014-08-01 8:50 ` Jan Beulich
2014-08-06 15:17 ` Julien Grall [this message]
2014-08-06 15:47 ` Jan Beulich
2014-07-31 15:00 ` [PATCH v2 14/21] xen/passthrough: Introduce iommu_construct Julien Grall
2014-08-01 8:55 ` Jan Beulich
2014-07-31 15:00 ` [PATCH v2 15/21] xen/passthrough: Call arch_iommu_domain_destroy before calling iommu_teardown Julien Grall
2014-08-01 9:00 ` Jan Beulich
2014-07-31 15:00 ` [PATCH v2 16/21] xen/passthrough: iommu_deassign_device_dt: By default reassign device to nobody Julien Grall
2014-08-06 16:23 ` Stefano Stabellini
2015-01-12 16:33 ` Julien Grall
2014-07-31 15:00 ` [PATCH v2 17/21] xen/iommu: arm: Wire iommu DOMCTL for ARM Julien Grall
2014-08-06 16:24 ` Stefano Stabellini
2014-07-31 15:00 ` [PATCH v2 18/21] xen/passthrough: dt: Add new domctl XEN_DOMCTL_assign_dt_device Julien Grall
2014-08-01 9:05 ` Jan Beulich
2014-07-31 15:00 ` [PATCH v2 19/21] xen/arm: Reserve region in guest memory for device passthrough Julien Grall
2014-08-06 16:27 ` Stefano Stabellini
2014-08-06 16:33 ` Julien Grall
2014-08-06 16:44 ` Stefano Stabellini
2014-08-06 16:45 ` Stefano Stabellini
2014-08-06 16:55 ` Julien Grall
2014-08-06 16:57 ` Stefano Stabellini
2014-08-06 16:47 ` Julien Grall
2014-07-31 15:00 ` [PATCH v2 20/21] libxl: Add support for non-PCI passthrough Julien Grall
2014-08-06 16:44 ` Stefano Stabellini
2014-08-06 16:50 ` Julien Grall
2014-08-06 16:58 ` Stefano Stabellini
2014-08-08 14:15 ` Julien Grall
2014-09-09 19:12 ` Julien Grall
2014-09-10 10:08 ` Ian Campbell
2014-07-31 15:00 ` [PATCH v2 21/21] xl: Add new option dtdev Julien Grall
2014-09-09 14:34 ` [PATCH v2 00/21] xen/arm: Add support for non-pci passthrough Ian Campbell
2014-09-09 19:34 ` Julien Grall
2014-09-10 9:22 ` Christoffer Dall
2014-09-10 10:51 ` Ian Campbell
2014-09-10 11:45 ` Christoffer Dall
2014-09-10 12:05 ` Ian Campbell
2014-09-10 22:03 ` Stefano Stabellini
2014-09-11 4:03 ` Christoffer Dall
2014-09-11 8:56 ` Ian Campbell
2014-09-12 19:16 ` Julien Grall
2014-09-10 10:11 ` Ian Campbell
2014-09-10 18:45 ` Julien Grall
2014-09-11 8:58 ` Ian Campbell
2014-09-11 19:11 ` Julien Grall
2014-09-12 10:16 ` Ian Campbell
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=53E2471C.6020109@linaro.org \
--to=julien.grall@linaro.org \
--cc=JBeulich@suse.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=stefano.stabellini@citrix.com \
--cc=tim@xen.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.