libblock: Add block device statistics

This commit is contained in:
Sebastian Huber
2012-06-12 09:46:09 +02:00
parent 7d4a859441
commit 9f527308d7
17 changed files with 619 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Obere Lagerstr. 30
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
*/
#if HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/blkdev.h>
#include <rtems/shellconfig.h>
static bool is_reset_option(const char *opt)
{
return strcmp(opt, "-r") == 0 || strcmp(opt, "--reset") == 0;
}
static int rtems_shell_main_blkstats(int argc, char **argv)
{
bool ok = false;
bool reset = false;
const char *device;
if (argc == 2) {
ok = true;
device = argv [1];
} else if (argc == 3 && is_reset_option(argv [1])) {
ok = true;
reset = true;
device = argv [2];
}
if (ok) {
rtems_blkstats(stdout, device, reset);
} else {
fprintf(stdout, "usage: %s\n", rtems_shell_BLKSTATS_Command.usage);
}
return 0;
}
rtems_shell_cmd_t rtems_shell_BLKSTATS_Command = {
.name = "blkstats",
.usage = "blkstats [-r|--reset] PATH_TO_DEVICE",
.topic = "files",
.command = rtems_shell_main_blkstats
};

View File

@@ -65,6 +65,7 @@ extern rtems_shell_cmd_t rtems_shell_LSOF_Command;
extern rtems_shell_cmd_t rtems_shell_MOUNT_Command;
extern rtems_shell_cmd_t rtems_shell_UNMOUNT_Command;
extern rtems_shell_cmd_t rtems_shell_BLKSYNC_Command;
extern rtems_shell_cmd_t rtems_shell_BLKSTATS_Command;
extern rtems_shell_cmd_t rtems_shell_FDISK_Command;
extern rtems_shell_cmd_t rtems_shell_DD_Command;
extern rtems_shell_cmd_t rtems_shell_HEXDUMP_Command;
@@ -349,6 +350,11 @@ extern rtems_shell_alias_t *rtems_shell_Initial_aliases[];
defined(CONFIGURE_SHELL_COMMAND_BLKSYNC)
&rtems_shell_BLKSYNC_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_BLKSTATS)) || \
defined(CONFIGURE_SHELL_COMMAND_BLKSTATS)
&rtems_shell_BLKSTATS_Command,
#endif
#if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
!defined(CONFIGURE_SHELL_NO_COMMAND_FDISK)) || \
defined(CONFIGURE_SHELL_COMMAND_FDISK)