On 12.03.25 09:54, Sughosh Ganu wrote:
Add information about the type of blkmap slice as an attribute in the
%s/blkmap slice/blkmap slices/
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 <[email protected]>
Reviewed-by: Tobias Waldekranz <[email protected]>
Reviewed-by: Ilias Apalodimas <[email protected]>
---
Changes since V7: None
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 */
Please, provide a description of the constants in Sphinx style
explaining what linear and and memory slices are.
Cf.
https://docs.kernel.org/doc-guide/kernel-doc.html#object-like-macro-documentation
Best regards
Heinrich
+#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,