From 1a168f3f1fcdef65f9578b5af5399ffa18ef75ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Mon, 4 Aug 2008 14:50:32 +0000 Subject: [PATCH] * Added KDL command "bfs_block_runs" which shows the blocks runs in an array. * The "bfs" KDL command now also accepts ',' as group/start delimiter in a block_run. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26793 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/bfs/Debug.cpp | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/bfs/Debug.cpp b/src/add-ons/kernel/file_systems/bfs/Debug.cpp index 0724dfcfa6..373f1a7bca 100644 --- a/src/add-ons/kernel/file_systems/bfs/Debug.cpp +++ b/src/add-ons/kernel/file_systems/bfs/Debug.cpp @@ -321,7 +321,7 @@ dump_volume(int argc, char** argv) // convert block_runs/offsets for (int i = 2; i < argc; i++) { char* arg = argv[i]; - if (strchr(arg, '.') != NULL) { + if (strchr(arg, '.') != NULL || strchr(arg, ',') != NULL) { // block_run to offset block_run run; run.allocation_group = HOST_ENDIAN_TO_BFS_INT32( @@ -357,6 +357,28 @@ dump_volume(int argc, char** argv) } +static int +dump_block_run_array(int argc, char** argv) +{ + if (argc < 2 || !strcmp(argv[1], "--help")) { + kprintf("usage: %s [number-of-runs]\n", argv[0]); + return 0; + } + + block_run* runs = (block_run*)parse_expression(argv[1]); + uint32 count = 16; + if (argc > 2) + count = parse_expression(argv[2]); + + for (uint32 i = 0; i < count; i++) { + dprintf("[%3lu] ", i); + dump_block_run("", runs[i]); + } + + return 0; +} + + static int dump_bplustree_node(int argc, char** argv) { @@ -421,6 +443,8 @@ add_debugger_commands() add_debugger_command("bfs_btree_node", dump_bplustree_node, "dump a BFS B+tree node"); add_debugger_command("bfs", dump_volume, "dump a BFS volume"); + add_debugger_command("bfs_block_runs", dump_block_run_array, + "dump a block run array"); }