Hi Tobias,

This looks ok to me, but OTOH I haven't been involved with blkmap too much.

On Mon, 3 Feb 2025 at 12:59, Sughosh Ganu <sughosh.g...@linaro.org> wrote:
>
> Add information about the type of blkmap slice 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.g...@linaro.org>
> ---
> Changes since V3:
> * Add the map type to the blkmap slice instead of the entire blkmap
>   device
>
>  drivers/block/blkmap.c | 4 ++++
>  include/blkmap.h       | 6 ++++++
>  2 files changed, 10 insertions(+)
>
> diff --git a/drivers/block/blkmap.c b/drivers/block/blkmap.c
> index 34eed1380dc..4c71ec784e0 100644
> --- a/drivers/block/blkmap.c
> +++ b/drivers/block/blkmap.c
> @@ -25,12 +25,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
> + * @type: Type of blkmap slice
>   */
>  struct blkmap_slice {
>         struct list_head node;
>
>         lbaint_t blknr;
>         lbaint_t blkcnt;
> +       enum blkmap_slice_type type;
>
>         /**
>          * @read: - Read from slice
> @@ -169,6 +171,7 @@ int blkmap_map_linear(struct udevice *dev, lbaint_t 
> blknr, lbaint_t blkcnt,
>                 .slice = {
>                         .blknr = blknr,
>                         .blkcnt = blkcnt,
> +                       .type = BLKMAP_SLICE_LINEAR,
>
>                         .read = blkmap_linear_read,
>                         .write = blkmap_linear_write,
> @@ -248,6 +251,7 @@ int __blkmap_map_mem(struct udevice *dev, lbaint_t blknr, 
> lbaint_t blkcnt,
>                 .slice = {
>                         .blknr = blknr,
>                         .blkcnt = blkcnt,
> +                       .type = BLKMAP_SLICE_MEM,
>
>                         .read = blkmap_mem_read,
>                         .write = blkmap_mem_write,
> diff --git a/include/blkmap.h b/include/blkmap.h
> index d53095437fa..c7b4bf13c4e 100644
> --- a/include/blkmap.h
> +++ b/include/blkmap.h
> @@ -9,6 +9,12 @@
>
>  #include <dm/lists.h>
>
> +/* Type of blkmap slice, Linear or Memory */
> +enum blkmap_slice_type {
> +       BLKMAP_SLICE_LINEAR = 1,
> +       BLKMAP_SLICE_MEM,
> +};
> +
>  /**
>   * struct blkmap - Block map
>   *
> --
> 2.34.1
>

Reviewed-by: Ilias Apalodimas <ilias.apalodi...@linaro.org>

Reply via email to