Start work on adding a device mapper that is compatible with the corresponding subsystem in Linux.
v1: https://lore.kernel.org/barebox/20250828150637.2222474-1-tob...@waldekranz.com/ v1 -> v2: - Fix review comments from Ahmad (see individual commits) - Add (2/7): Add rasprintf(), to make scenarios where strings are built up in multiple steps more ergonomic to work with. - Add (5/7): As a result of making sure that the DM selftests execute in the CI suite, the qemu-malta build ran into a table size overflow. Tobias Waldekranz (7): string: add strtok/strtokv vsprintf: Add rasprintf(): the reallocing string printf family dm: Add initial device mapper infrastructure dm: linear: Add linear target MIPS: qemu-malta_defconfig: Use largest possible relocation table test: self: dm: Add test of linear target commands: dmsetup: Basic command set for dm device management arch/mips/configs/qemu-malta_defconfig | 1 + commands/Kconfig | 14 + commands/Makefile | 1 + commands/dmsetup.c | 144 +++++++++ drivers/block/Kconfig | 2 + drivers/block/Makefile | 1 + drivers/block/dm/Kconfig | 13 + drivers/block/dm/Makefile | 3 + drivers/block/dm/dm-core.c | 395 +++++++++++++++++++++++++ drivers/block/dm/dm-linear.c | 129 ++++++++ drivers/block/dm/dm-target.h | 39 +++ include/device-mapper.h | 16 + include/stdio.h | 10 + include/string.h | 1 + include/xfuncs.h | 4 + lib/string.c | 30 ++ lib/vsprintf.c | 35 +++ lib/xfuncs.c | 24 ++ test/self/Kconfig | 10 + test/self/Makefile | 1 + test/self/dm.c | 159 ++++++++++ 21 files changed, 1032 insertions(+) create mode 100644 commands/dmsetup.c create mode 100644 drivers/block/dm/Kconfig create mode 100644 drivers/block/dm/Makefile create mode 100644 drivers/block/dm/dm-core.c create mode 100644 drivers/block/dm/dm-linear.c create mode 100644 drivers/block/dm/dm-target.h create mode 100644 include/device-mapper.h create mode 100644 test/self/dm.c -- 2.43.0