Message ID | 20250227111519.45787-5-sughosh.ganu@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | Add pmem node for preserving distro ISO's | expand |
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>
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 --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,
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(+)