Author: bonefish Date: 2010-02-23 14:42:55 +0100 (Tue, 23 Feb 2010) New Revision: 35581 Changeset: http://dev.haiku-os.org/changeset/35581/haiku Modified: haiku/trunk/src/system/kernel/device_manager/devfs.cpp Log: * Use add_debugger_command_etc() for adding the debugger commands. * Added a "devfs_cookie" command. Modified: haiku/trunk/src/system/kernel/device_manager/devfs.cpp =================================================================== --- haiku/trunk/src/system/kernel/device_manager/devfs.cpp 2010-02-22 23:05:39 UTC (rev 35580) +++ haiku/trunk/src/system/kernel/device_manager/devfs.cpp 2010-02-23 13:42:55 UTC (rev 35581) @@ -790,8 +790,8 @@ static int dump_node(int argc, char **argv) { - if (argc < 2 || !strcmp(argv[1], "--help")) { - kprintf("usage: %s <address>\n", argv[0]); + if (argc != 2) { + print_debugger_command_usage(argv[0]); return 0; } @@ -841,6 +841,27 @@ } +static int +dump_cookie(int argc, char** argv) +{ + if (argc != 2) { + print_debugger_command_usage(argv[0]); + return 0; + } + + uint64 address; + if (!evaluate_debug_expression(argv[1], &address, false)) + return 0; + + struct devfs_cookie* cookie = (devfs_cookie*)(addr_t)address; + + kprintf("DEVFS COOKIE: %p\n", cookie); + kprintf(" device_cookie: %p\n", cookie->device_cookie); + + return 0; +} + + // #pragma mark - file system interface @@ -1883,14 +1904,23 @@ { switch (op) { case B_MODULE_INIT: - add_debugger_command("devfs_node", &dump_node, - "info about a private devfs node"); + add_debugger_command_etc("devfs_node", &dump_node, + "Print info on a private devfs node", + "<address>\n" + "Prints information on a devfs node given by <address>.\n", + 0); + add_debugger_command_etc("devfs_cookie", &dump_cookie, + "Print info on a private devfs cookie", + "<address>\n" + "Prints information on a devfs cookie given by <address>.\n", + 0); legacy_driver_init(); return B_OK; case B_MODULE_UNINIT: remove_debugger_command("devfs_node", &dump_node); + remove_debugger_command("devfs_cookie", &dump_cookie); return B_OK; default: