diff mbox series

[v5,4/6] blkmap: store type of blkmap slice in corresponding structure

Message ID 20250227111519.45787-5-sughosh.ganu@linaro.org
State Superseded
Headers show
Series Add pmem node for preserving distro ISO's | expand

Commit Message

Sughosh Ganu Feb. 27, 2025, 11:15 a.m. UTC
Add information about the type of blkmap slice as an attribute in the
corresponding slice structure. Put information in the blkmap slice
structure to identify if it is associated with a memory or linear
mapped device. Which can then be used to take specific action based on
the type of the blkmap slice.

Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
---
Changes since V4:
* Use BIT() based macros instead of enum
* Change the name of the field from type to attr as it would contain
  attributes other than the type of the slice

 drivers/block/blkmap.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Tobias Waldekranz Feb. 27, 2025, 7:49 p.m. UTC | #1
On tor, feb 27, 2025 at 16:45, Sughosh Ganu <sughosh.ganu@linaro.org> wrote:
> Add information about the type of blkmap slice as an attribute in the
> corresponding slice structure. Put information in the blkmap slice
> structure to identify if it is associated with a memory or linear
> mapped device. Which can then be used to take specific action based on
> the type of the blkmap slice.
>
> Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
> ---

Reviewed-by: Tobias Waldekranz <tobias@waldekranz.com>
Ilias Apalodimas Feb. 28, 2025, 6:08 a.m. UTC | #2
On Thu, 27 Feb 2025 at 13:15, Sughosh Ganu <sughosh.ganu@linaro.org> wrote:
>
> Add information about the type of blkmap slice as an attribute in the
> corresponding slice structure. Put information in the blkmap slice
> structure to identify if it is associated with a memory or linear
> mapped device. Which can then be used to take specific action based on
> the type of the blkmap slice.
>
> Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
> ---
> Changes since V4:
> * Use BIT() based macros instead of enum
> * Change the name of the field from type to attr as it would contain
>   attributes other than the type of the slice
>
>  drivers/block/blkmap.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
>
> diff --git a/drivers/block/blkmap.c b/drivers/block/blkmap.c
> index 34eed1380dc..453510cca62 100644
> --- a/drivers/block/blkmap.c
> +++ b/drivers/block/blkmap.c
> @@ -16,6 +16,10 @@
>
>  struct blkmap;
>
> +/* Attributes of blkmap slice */
> +#define BLKMAP_SLICE_LINEAR    BIT(0)
> +#define BLKMAP_SLICE_MEM       BIT(1)
> +
>  /**
>   * struct blkmap_slice - Region mapped to a blkmap
>   *
> @@ -25,12 +29,14 @@ struct blkmap;
>   * @node: List node used to associate this slice with a blkmap
>   * @blknr: Start block number of the mapping
>   * @blkcnt: Number of blocks covered by this mapping
> + * @attr: Attributes of blkmap slice
>   */
>  struct blkmap_slice {
>         struct list_head node;
>
>         lbaint_t blknr;
>         lbaint_t blkcnt;
> +       uint     attr;
>
>         /**
>          * @read: - Read from slice
> @@ -169,6 +175,7 @@ int blkmap_map_linear(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
>                 .slice = {
>                         .blknr = blknr,
>                         .blkcnt = blkcnt,
> +                       .attr = BLKMAP_SLICE_LINEAR,
>
>                         .read = blkmap_linear_read,
>                         .write = blkmap_linear_write,
> @@ -248,6 +255,7 @@ int __blkmap_map_mem(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
>                 .slice = {
>                         .blknr = blknr,
>                         .blkcnt = blkcnt,
> +                       .attr = BLKMAP_SLICE_MEM,
>
>                         .read = blkmap_mem_read,
>                         .write = blkmap_mem_write,
> --
> 2.34.1
>

Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
diff mbox series

Patch

diff --git a/drivers/block/blkmap.c b/drivers/block/blkmap.c
index 34eed1380dc..453510cca62 100644
--- a/drivers/block/blkmap.c
+++ b/drivers/block/blkmap.c
@@ -16,6 +16,10 @@ 
 
 struct blkmap;
 
+/* Attributes of blkmap slice */
+#define BLKMAP_SLICE_LINEAR	BIT(0)
+#define BLKMAP_SLICE_MEM	BIT(1)
+
 /**
  * struct blkmap_slice - Region mapped to a blkmap
  *
@@ -25,12 +29,14 @@  struct blkmap;
  * @node: List node used to associate this slice with a blkmap
  * @blknr: Start block number of the mapping
  * @blkcnt: Number of blocks covered by this mapping
+ * @attr: Attributes of blkmap slice
  */
 struct blkmap_slice {
 	struct list_head node;
 
 	lbaint_t blknr;
 	lbaint_t blkcnt;
+	uint     attr;
 
 	/**
 	 * @read: - Read from slice
@@ -169,6 +175,7 @@  int blkmap_map_linear(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 		.slice = {
 			.blknr = blknr,
 			.blkcnt = blkcnt,
+			.attr = BLKMAP_SLICE_LINEAR,
 
 			.read = blkmap_linear_read,
 			.write = blkmap_linear_write,
@@ -248,6 +255,7 @@  int __blkmap_map_mem(struct udevice *dev, lbaint_t blknr, lbaint_t blkcnt,
 		.slice = {
 			.blknr = blknr,
 			.blkcnt = blkcnt,
+			.attr = BLKMAP_SLICE_MEM,
 
 			.read = blkmap_mem_read,
 			.write = blkmap_mem_write,