Messages in this thread Patch in this message | | | From | chengchaohang@163 ... | Subject | [PATCH] lib/scatterlist: Provide scatterlist hexdump. | Date | Wed, 9 Feb 2022 11:36:59 +0800 |
| |
From: "chaohang.cheng" <chaohang.cheng@horizon.ai>
A scatterlist hexdump is essential during debug, sometimes.
Signed-off-by: chaohang.cheng <chaohang.cheng@horizon.ai> --- include/linux/scatterlist.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h index 7ff9d6386c12..ef8ecaac0016 100644 --- a/include/linux/scatterlist.h +++ b/include/linux/scatterlist.h @@ -563,4 +563,21 @@ bool sg_miter_skip(struct sg_mapping_iter *miter, off_t offset); bool sg_miter_next(struct sg_mapping_iter *miter); void sg_miter_stop(struct sg_mapping_iter *miter); +/* + * Hexdump scatterlist + * + * @sg: struct scatterlist* . + * it stands for the head of a scatterlist . + * + * note: print_hex_dump_debug is a dynamic debug . + * + */ +#define SG_HEXDUMP(sg) \ +do { \ + struct scatterlist *sg_tmp = NULL; \ + for (sg_tmp = sg; sg_tmp; sg_tmp = sg_next(sg_tmp)) \ + print_hex_dump_debug("", DUMP_PREFIX_OFFSET, \ + 16, 1, sg_virt(sg_tmp), sg_tmp->length, true); \ +} while (0) + #endif /* _LINUX_SCATTERLIST_H */ -- 2.25.1
| |