[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v3 18/24] xen/include: introduce resource.h



On Friday, January 3rd, 2025 at 5:58 PM, Denis Mukhin via B4 Relay 
<devnull+dmukhin.ford.com@xxxxxxxxxx> wrote:

> 
> 
> From: Denis Mukhin dmukhin@xxxxxxxx
> 
> 
> Move common resource definitions to a new architecture-agnostic shared header
> file.

Moved to:
  https://lore.kernel.org/xen-devel/20250207231814.3863449-1-dmukhin@xxxxxxxx/

> 
> Signed-off-by: Denis Mukhin dmukhin@xxxxxxxx
> 
> ---
> It will be used in follow on NS8250 emulator code to describe legacy
> PC COM resources.
> ---
> ---
> 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(-)
> 
> diff --git a/xen/common/device-tree/device-tree.c 
> b/xen/common/device-tree/device-tree.c
> index 
> d0528c5825651f7cc9ebca0c949229c9083063c6..e8f810b2fe10890c033ed3a9d4ca627010ad019b
>  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 
> 03d22bce1e497e41834c273f9048b98dcbd48a54..aa6a968b574dce7cc753e8070fad3a6e585cd9e7
>  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 
> 0000000000000000000000000000000000000000..4512658133defe8dc62d87192ffd19ad94b63c3b
> --- /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
> 





 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.