|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 08/14] kernel-doc: public/memory.h
On Tue, 18 Aug 2020, Jan Beulich wrote:
> On 18.08.2020 00:56, Stefano Stabellini wrote:
> > On Mon, 17 Aug 2020, Jan Beulich wrote:
> >> On 07.08.2020 23:51, Stefano Stabellini wrote:
> >>> On Fri, 7 Aug 2020, Jan Beulich wrote:
> >>>> On 07.08.2020 01:49, Stefano Stabellini wrote:
> >>>>> @@ -200,90 +236,115 @@ DEFINE_XEN_GUEST_HANDLE(xen_machphys_mfn_list_t);
> >>>>> */
> >>>>> #define XENMEM_machphys_compat_mfn_list 25
> >>>>>
> >>>>> -/*
> >>>>> +#define XENMEM_machphys_mapping 12
> >>>>> +/**
> >>>>> + * struct xen_machphys_mapping - XENMEM_machphys_mapping
> >>>>> + *
> >>>>> * Returns the location in virtual address space of the machine_to_phys
> >>>>> * mapping table. Architectures which do not have a m2p table, or
> >>>>> which do not
> >>>>> * map it by default into guest address space, do not implement this
> >>>>> command.
> >>>>> * arg == addr of xen_machphys_mapping_t.
> >>>>> */
> >>>>> -#define XENMEM_machphys_mapping 12
> >>>>> struct xen_machphys_mapping {
> >>>>> + /** @v_start: Start virtual address */
> >>>>> xen_ulong_t v_start, v_end; /* Start and end virtual addresses.
> >>>>> */
> >>>>> - xen_ulong_t max_mfn; /* Maximum MFN that can be looked up.
> >>>>> */
> >>>>> + /** @v_end: End virtual addresses */
> >>>>> + xen_ulong_t v_end;
> >>>>> + /** @max_mfn: Maximum MFN that can be looked up */
> >>>>> + xen_ulong_t max_mfn;
> >>>>> };
> >>>>> typedef struct xen_machphys_mapping xen_machphys_mapping_t;
> >>>>> DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
> >>>>>
> >>>>> -/* Source mapping space. */
> >>>>> +/**
> >>>>> + * DOC: Source mapping space.
> >>>>> + *
> >>>>> + * - XENMAPSPACE_shared_info: shared info page
> >>>>> + * - XENMAPSPACE_grant_table: grant table page
> >>>>> + * - XENMAPSPACE_gmfn: GMFN
> >>>>> + * - XENMAPSPACE_gmfn_range: GMFN range, XENMEM_add_to_physmap only.
> >>>>> + * - XENMAPSPACE_gmfn_foreign: GMFN from another dom,
> >>>>> + * XENMEM_add_to_physmap_batch only.
> >>>>> + * - XENMAPSPACE_dev_mmio: device mmio region ARM only; the region
> >>>>> is mapped
> >>>>> + * in Stage-2 using the Normal
> >>>>> MemoryInner/Outer
> >>>>> + * Write-Back Cacheable memory attribute.
> >>>>> + */
> >>>>> /* ` enum phys_map_space { */
> >>>>
> >>>> Isn't this and ...
> >>>>
> >>>>> -#define XENMAPSPACE_shared_info 0 /* shared info page */
> >>>>> -#define XENMAPSPACE_grant_table 1 /* grant table page */
> >>>>> -#define XENMAPSPACE_gmfn 2 /* GMFN */
> >>>>> -#define XENMAPSPACE_gmfn_range 3 /* GMFN range,
> >>>>> XENMEM_add_to_physmap only. */
> >>>>> -#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom,
> >>>>> - * XENMEM_add_to_physmap_batch
> >>>>> only. */
> >>>>> -#define XENMAPSPACE_dev_mmio 5 /* device mmio region
> >>>>> - ARM only; the region is mapped in
> >>>>> - Stage-2 using the Normal Memory
> >>>>> - Inner/Outer Write-Back Cacheable
> >>>>> - memory attribute. */
> >>>>> +#define XENMAPSPACE_shared_info 0
> >>>>> +#define XENMAPSPACE_grant_table 1
> >>>>> +#define XENMAPSPACE_gmfn 2
> >>>>> +#define XENMAPSPACE_gmfn_range 3
> >>>>> +#define XENMAPSPACE_gmfn_foreign 4
> >>>>> +#define XENMAPSPACE_dev_mmio 5
> >>>>> /* ` } */
> >>>>
> >>>> ... this also something that wants converting?
> >>>
> >>> For clarity, I take you are talking about these two enum-related
> >>> comments:
> >>>
> >>> /* ` enum phys_map_space { */
> >>> [... various #defines ... ]
> >>> /* ` } */
> >>>
> >>> Is this something we want to convert to kernel-doc? I don't know. I
> >>> couldn't see an obvious value in doing it, in the sense that it doesn't
> >>> necessarely make things clearer.
> >>>
> >>> I took a second look at the header and the following would work:
> >>>
> >>> /**
> >>> * DOC: Source mapping space.
> >>> *
> >>> * enum phys_map_space {
> >>> *
> >>> * - XENMAPSPACE_shared_info: shared info page
> >>> * - XENMAPSPACE_grant_table: grant table page
> >>> * - XENMAPSPACE_gmfn: GMFN
> >>> * - XENMAPSPACE_gmfn_range: GMFN range, XENMEM_add_to_physmap only.
> >>> * - XENMAPSPACE_gmfn_foreign: GMFN from another dom,
> >>> * XENMEM_add_to_physmap_batch only.
> >>> * - XENMAPSPACE_dev_mmio: device mmio region ARM only; the region is
> >>> mapped
> >>> * in Stage-2 using the Normal
> >>> MemoryInner/Outer
> >>> * Write-Back Cacheable memory attribute.
> >>> * }
> >>> */
> >>>
> >>> Note the blank line after "enum phys_map_space {" is required.
> >>>
> >>>
> >>> All in all I am in favor of *not* converting the enum comment to
> >>> kernel-doc, but I'd be OK with it anyway.
> >>
> >> Iirc the enum comments were added for documentation purposes. This to
> >> me means there are two options at this point:
> >> - retain them in a way that the new doc model consumes them,
> >> - drop them at the same time as adding the new doc comments.
> >>
> >> Their (presumed) value is that they identify #define-s which supposed
> >> to be enum-like without actually being able to use enums in the public
> >> headers (with some exceptions).
> >
> > I understand. Then, it doesn't look like we want to keep them in the code
> > without converting them to kernel-doc. We could either:
> >
> > 1) remove them as part of this series
> > 2) convert them to kernel-doc in the top comment as shown above
> >
> > I could do either, but my preference is 1) because I think it leads to
> > clearer docs.
>
> While I'd slightly prefer 2, I'll be okay with your choice.
OK. I removed the enum comments.
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |