Message ID | 20250207231814.3863449-1-dmukhin@ford.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | xen/include: introduce resource.h | expand |
On Fri, 7 Feb 2025, dmkhn@proton.me wrote: > Move resource definitions to a new architecture-agnostic shared header file. > > Signed-off-by: Denis Mukhin <dmukhin@ford.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> > --- > Link to the original patch: > https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-18-c5d36b31d66c@ford.com/ > --- > --- > xen/common/device-tree/device-tree.c | 21 +---------------- > xen/drivers/passthrough/arm/smmu.c | 15 +----------- > xen/include/xen/resource.h | 34 ++++++++++++++++++++++++++++ > 3 files changed, 36 insertions(+), 34 deletions(-) > create mode 100644 xen/include/xen/resource.h > > diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c > index d0528c5825..e8f810b2fe 100644 > --- a/xen/common/device-tree/device-tree.c > +++ b/xen/common/device-tree/device-tree.c > @@ -24,6 +24,7 @@ > #include <xen/ctype.h> > #include <asm/setup.h> > #include <xen/err.h> > +#include <xen/resource.h> > > const void *device_tree_flattened; > dt_irq_xlate_func dt_irq_xlate; > @@ -535,26 +536,6 @@ int dt_child_n_size_cells(const struct dt_device_node *parent) > return __dt_n_size_cells(parent, true); > } > > -/* > - * These are defined in Linux where much of this code comes from, but > - * are currently unused outside this file in the context of Xen. > - */ > -#define IORESOURCE_BITS 0x000000ff /* Bus-specific bits */ > - > -#define IORESOURCE_TYPE_BITS 0x00001f00 /* Resource type */ > -#define IORESOURCE_IO 0x00000100 /* PCI/ISA I/O ports */ > -#define IORESOURCE_MEM 0x00000200 > -#define IORESOURCE_REG 0x00000300 /* Register offsets */ > -#define IORESOURCE_IRQ 0x00000400 > -#define IORESOURCE_DMA 0x00000800 > -#define IORESOURCE_BUS 0x00001000 > - > -#define IORESOURCE_PREFETCH 0x00002000 /* No side effects */ > -#define IORESOURCE_READONLY 0x00004000 > -#define IORESOURCE_CACHEABLE 0x00008000 > -#define IORESOURCE_RANGELENGTH 0x00010000 > -#define IORESOURCE_SHADOWABLE 0x00020000 > - > /* > * Default translator (generic bus) > */ > diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c > index 03d22bce1e..aa6a968b57 100644 > --- a/xen/drivers/passthrough/arm/smmu.c > +++ b/xen/drivers/passthrough/arm/smmu.c > @@ -50,6 +50,7 @@ > #include <xen/rbtree.h> > #include <xen/sched.h> > #include <xen/sizes.h> > +#include <xen/resource.h> > #include <asm/atomic.h> > #include <asm/device.h> > #include <asm/io.h> > @@ -70,22 +71,8 @@ > #define of_property_read_u32(np, pname, out) (!dt_property_read_u32(np, pname, out)) > #define of_property_read_bool dt_property_read_bool > #define of_parse_phandle_with_args dt_parse_phandle_with_args > - > -/* Xen: Helpers to get device MMIO and IRQs */ > -struct resource > -{ > - paddr_t addr; > - paddr_t size; > - unsigned int type; > -}; > - > -#define resource_size(res) (res)->size; > - > #define platform_device dt_device_node > > -#define IORESOURCE_MEM 0 > -#define IORESOURCE_IRQ 1 > - > static struct resource *platform_get_resource(struct platform_device *pdev, > unsigned int type, > unsigned int num) > diff --git a/xen/include/xen/resource.h b/xen/include/xen/resource.h > new file mode 100644 > index 0000000000..5d10363128 > --- /dev/null > +++ b/xen/include/xen/resource.h > @@ -0,0 +1,34 @@ > +/* SPDX-License-Identifier: GPL-2.0-only */ > +/* > + * System resource description. > + */ > +#ifndef XEN__RESOURCE_H > +#define XEN__RESOURCE_H > + > +#define IORESOURCE_BITS 0x000000FFU /* Bus-specific bits */ > + > +#define IORESOURCE_TYPE_BITS 0x00001F00U /* Resource type */ > +#define IORESOURCE_IO 0x00000100U /* PCI/ISA I/O ports */ > +#define IORESOURCE_MEM 0x00000200U > +#define IORESOURCE_REG 0x00000300U /* Register offsets */ > +#define IORESOURCE_IRQ 0x00000400U > +#define IORESOURCE_DMA 0x00000800U > +#define IORESOURCE_BUS 0x00001000U > + > +#define IORESOURCE_PREFETCH 0x00002000U /* No side effects */ > +#define IORESOURCE_READONLY 0x00004000U > +#define IORESOURCE_CACHEABLE 0x00008000U > +#define IORESOURCE_RANGELENGTH 0x00010000U > +#define IORESOURCE_SHADOWABLE 0x00020000U > + > +#define IORESOURCE_UNKNOWN (~0U) > + > +struct resource { > + paddr_t addr; > + paddr_t size; > + unsigned int type; > +}; > + > +#define resource_size(res) ((res)->size) > + > +#endif /* XEN__RESOURCE_H */ > -- > 2.34.1 > >
On 08.02.2025 03:54, Stefano Stabellini wrote: > On Fri, 7 Feb 2025, dmkhn@proton.me wrote: >> Move resource definitions to a new architecture-agnostic shared header file. >> >> Signed-off-by: Denis Mukhin <dmukhin@ford.com> > > Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Hmm, don't you think ... >> @@ -70,22 +71,8 @@ >> #define of_property_read_u32(np, pname, out) (!dt_property_read_u32(np, pname, out)) >> #define of_property_read_bool dt_property_read_bool >> #define of_parse_phandle_with_args dt_parse_phandle_with_args >> - >> -/* Xen: Helpers to get device MMIO and IRQs */ >> -struct resource >> -{ >> - paddr_t addr; >> - paddr_t size; >> - unsigned int type; >> -}; >> - >> -#define resource_size(res) (res)->size; >> - >> #define platform_device dt_device_node ... one of the blank lines being removed here would better stay? Jan
On Monday, February 10th, 2025 at 1:27 AM, Jan Beulich <jbeulich@suse.com> wrote: > > > On 08.02.2025 03:54, Stefano Stabellini wrote: > > > On Fri, 7 Feb 2025, dmkhn@proton.me wrote: > > > > > Move resource definitions to a new architecture-agnostic shared header file. > > > > > > Signed-off-by: Denis Mukhin dmukhin@ford.com > > > > Reviewed-by: Stefano Stabellini sstabellini@kernel.org > > > Hmm, don't you think ... > > > > @@ -70,22 +71,8 @@ > > > #define of_property_read_u32(np, pname, out) (!dt_property_read_u32(np, pname, out)) > > > #define of_property_read_bool dt_property_read_bool > > > #define of_parse_phandle_with_args dt_parse_phandle_with_args > > > - > > > -/* Xen: Helpers to get device MMIO and IRQs */ > > > -struct resource > > > -{ > > > - paddr_t addr; > > > - paddr_t size; > > > - unsigned int type; > > > -}; > > > - > > > -#define resource_size(res) (res)->size; > > > - > > > #define platform_device dt_device_node > > > ... one of the blank lines being removed here would better stay? I think the block of assorted macros (the first macro is not of not of_xxx() type) does not need an extra newline. The resulting block of macros looks like the following: [[ /* Alias to Xen device tree helpers */ #define device_node dt_device_node #define of_phandle_args dt_phandle_args #define of_device_id dt_device_match #define of_match_node dt_match_node #define of_property_read_u32(np, pname, out) (!dt_property_read_u32(np, pname, out)) #define of_property_read_bool dt_property_read_bool #define of_parse_phandle_with_args dt_parse_phandle_with_args #define platform_device dt_device_node ]] > > Jan
On 11.02.2025 08:43, Denis Mukhin wrote: >> On 08.02.2025 03:54, Stefano Stabellini wrote: >>> On Fri, 7 Feb 2025, dmkhn@proton.me wrote: >>> >>>> Move resource definitions to a new architecture-agnostic shared header file. >>>> >>>> Signed-off-by: Denis Mukhin dmukhin@ford.com >>> >>> Reviewed-by: Stefano Stabellini sstabellini@kernel.org >> >> >> Hmm, don't you think ... >> >>>> @@ -70,22 +71,8 @@ >>>> #define of_property_read_u32(np, pname, out) (!dt_property_read_u32(np, pname, out)) >>>> #define of_property_read_bool dt_property_read_bool >>>> #define of_parse_phandle_with_args dt_parse_phandle_with_args >>>> - >>>> -/* Xen: Helpers to get device MMIO and IRQs */ >>>> -struct resource >>>> -{ >>>> - paddr_t addr; >>>> - paddr_t size; >>>> - unsigned int type; >>>> -}; >>>> - >>>> -#define resource_size(res) (res)->size; >>>> - >>>> #define platform_device dt_device_node >> >> >> ... one of the blank lines being removed here would better stay? > > I think the block of assorted macros (the first macro is not of not of_xxx() type) > does not need an extra newline. > > The resulting block of macros looks like the following: > [[ > > /* Alias to Xen device tree helpers */ > #define device_node dt_device_node > #define of_phandle_args dt_phandle_args > #define of_device_id dt_device_match > #define of_match_node dt_match_node > #define of_property_read_u32(np, pname, out) (!dt_property_read_u32(np, pname, out)) > #define of_property_read_bool dt_property_read_bool > #define of_parse_phandle_with_args dt_parse_phandle_with_args > #define platform_device dt_device_node > > ]] And I think the of_* ones would better be separated by blank lines from the others. Arguably platform_device might then want to move up, immediately next to device_node. Jan
diff --git a/xen/common/device-tree/device-tree.c b/xen/common/device-tree/device-tree.c index d0528c5825..e8f810b2fe 100644 --- a/xen/common/device-tree/device-tree.c +++ b/xen/common/device-tree/device-tree.c @@ -24,6 +24,7 @@ #include <xen/ctype.h> #include <asm/setup.h> #include <xen/err.h> +#include <xen/resource.h> const void *device_tree_flattened; dt_irq_xlate_func dt_irq_xlate; @@ -535,26 +536,6 @@ int dt_child_n_size_cells(const struct dt_device_node *parent) return __dt_n_size_cells(parent, true); } -/* - * These are defined in Linux where much of this code comes from, but - * are currently unused outside this file in the context of Xen. - */ -#define IORESOURCE_BITS 0x000000ff /* Bus-specific bits */ - -#define IORESOURCE_TYPE_BITS 0x00001f00 /* Resource type */ -#define IORESOURCE_IO 0x00000100 /* PCI/ISA I/O ports */ -#define IORESOURCE_MEM 0x00000200 -#define IORESOURCE_REG 0x00000300 /* Register offsets */ -#define IORESOURCE_IRQ 0x00000400 -#define IORESOURCE_DMA 0x00000800 -#define IORESOURCE_BUS 0x00001000 - -#define IORESOURCE_PREFETCH 0x00002000 /* No side effects */ -#define IORESOURCE_READONLY 0x00004000 -#define IORESOURCE_CACHEABLE 0x00008000 -#define IORESOURCE_RANGELENGTH 0x00010000 -#define IORESOURCE_SHADOWABLE 0x00020000 - /* * Default translator (generic bus) */ diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c index 03d22bce1e..aa6a968b57 100644 --- a/xen/drivers/passthrough/arm/smmu.c +++ b/xen/drivers/passthrough/arm/smmu.c @@ -50,6 +50,7 @@ #include <xen/rbtree.h> #include <xen/sched.h> #include <xen/sizes.h> +#include <xen/resource.h> #include <asm/atomic.h> #include <asm/device.h> #include <asm/io.h> @@ -70,22 +71,8 @@ #define of_property_read_u32(np, pname, out) (!dt_property_read_u32(np, pname, out)) #define of_property_read_bool dt_property_read_bool #define of_parse_phandle_with_args dt_parse_phandle_with_args - -/* Xen: Helpers to get device MMIO and IRQs */ -struct resource -{ - paddr_t addr; - paddr_t size; - unsigned int type; -}; - -#define resource_size(res) (res)->size; - #define platform_device dt_device_node -#define IORESOURCE_MEM 0 -#define IORESOURCE_IRQ 1 - static struct resource *platform_get_resource(struct platform_device *pdev, unsigned int type, unsigned int num) diff --git a/xen/include/xen/resource.h b/xen/include/xen/resource.h new file mode 100644 index 0000000000..5d10363128 --- /dev/null +++ b/xen/include/xen/resource.h @@ -0,0 +1,34 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * System resource description. + */ +#ifndef XEN__RESOURCE_H +#define XEN__RESOURCE_H + +#define IORESOURCE_BITS 0x000000FFU /* Bus-specific bits */ + +#define IORESOURCE_TYPE_BITS 0x00001F00U /* Resource type */ +#define IORESOURCE_IO 0x00000100U /* PCI/ISA I/O ports */ +#define IORESOURCE_MEM 0x00000200U +#define IORESOURCE_REG 0x00000300U /* Register offsets */ +#define IORESOURCE_IRQ 0x00000400U +#define IORESOURCE_DMA 0x00000800U +#define IORESOURCE_BUS 0x00001000U + +#define IORESOURCE_PREFETCH 0x00002000U /* No side effects */ +#define IORESOURCE_READONLY 0x00004000U +#define IORESOURCE_CACHEABLE 0x00008000U +#define IORESOURCE_RANGELENGTH 0x00010000U +#define IORESOURCE_SHADOWABLE 0x00020000U + +#define IORESOURCE_UNKNOWN (~0U) + +struct resource { + paddr_t addr; + paddr_t size; + unsigned int type; +}; + +#define resource_size(res) ((res)->size) + +#endif /* XEN__RESOURCE_H */
Move resource definitions to a new architecture-agnostic shared header file. Signed-off-by: Denis Mukhin <dmukhin@ford.com> --- Link to the original patch: https://lore.kernel.org/xen-devel/20250103-vuart-ns8250-v3-v1-18-c5d36b31d66c@ford.com/ --- --- xen/common/device-tree/device-tree.c | 21 +---------------- xen/drivers/passthrough/arm/smmu.c | 15 +----------- xen/include/xen/resource.h | 34 ++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 34 deletions(-) create mode 100644 xen/include/xen/resource.h