Changeset cca94a2 in rtems


Ignore:
Timestamp:
Feb 19, 2010, 3:23:11 AM (10 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, master
Children:
5268642
Parents:
37c0822d
Message:

2010-02-19 Chris Johns <chrisj@…>

  • libblock/src/diskdevs.c: Create the devices as block devices.
  • libmisc/shell/main_debugrfs.c, libmisc/shell/main_mkrfs.c, libmisc/shell/main_mount_rfs.c: New.
  • libmisc/shell/main_msdosfmt.c: Change the command to mkdos and alias the old name.
  • libmisc/shell/shellconfig.h, libmisc/Makefile.am: Add RFS support.
  • libfs/src/rfs/rtems-rfs-shell.c, libfs/src/rfs/rtems-rfs-shell.h: Move the format command code into the shell file.
Location:
cpukit
Files:
3 added
7 edited

Legend:

Unmodified
Added
Removed
  • cpukit/ChangeLog

    r37c0822d rcca94a2  
     12010-02-19      Chris Johns <chrisj@rtems.org>
     2
     3        * libblock/src/diskdevs.c: Create the devices as block devices.
     4
     5        * libmisc/shell/main_debugrfs.c, libmisc/shell/main_mkrfs.c,
     6        libmisc/shell/main_mount_rfs.c: New.
     7
     8        * libmisc/shell/main_msdosfmt.c: Change the command to mkdos and
     9        alias the old name.
     10
     11        * libmisc/shell/shellconfig.h, libmisc/Makefile.am: Add RFS
     12        support.
     13
     14        * libfs/src/rfs/rtems-rfs-shell.c,
     15        libfs/src/rfs/rtems-rfs-shell.h: Move the format command code into
     16        the shell file.
     17       
    1182010-02-18      Chris Johns <chrisj@rtems.org>
    219
  • cpukit/libblock/src/diskdevs.c

    r37c0822d rcca94a2  
    200200
    201201  if (name != NULL) {
    202     rtems_device_major_number major = 0;
    203     rtems_device_minor_number minor = 0;
    204 
    205     rtems_filesystem_split_dev_t(dev, major, minor);
    206 
    207     sc = rtems_io_register_name(name, major, minor);
    208     if (sc != RTEMS_SUCCESSFUL) {
     202    if (mknod(alloc_name, 0777 | S_IFBLK, dev) < 0) {
    209203      free(alloc_name);
    210204      free(dd);
    211 
    212205      return RTEMS_UNSATISFIED;
    213206    }
  • cpukit/libfs/src/rfs/rtems-rfs-shell.c

    r37c0822d rcca94a2  
    2323#include <rtems/rfs/rtems-rfs-inode.h>
    2424#include <rtems/rfs/rtems-rfs-dir.h>
     25#include <rtems/rtems-rfs-format.h>
    2526
    2627#include <sys/statvfs.h>
     
    609610
    610611int
    611 rtems_rfs_shell_debugrfs (int argc, char *argv[])
     612rtems_shell_debugrfs (int argc, char *argv[])
    612613{
    613614  const rtems_rfs_shell_cmd table[] =
     
    665666  return 1;
    666667}
     668
     669int
     670rtems_shell_rfs_format (int argc, char* argv[])
     671{
     672  rtems_rfs_format_config config;
     673  const char*             driver = NULL;
     674  int                     arg;
     675
     676  memset (&config, 0, sizeof (rtems_rfs_format_config));
     677
     678  for (arg = 1; arg < argc; arg++)
     679  {
     680    if (argv[arg][0] == '-')
     681    {
     682      switch (argv[arg][1])
     683      {
     684        case 'v':
     685          config.verbose = true;
     686          break;
     687         
     688        case 's':
     689          arg++;
     690          if (arg >= argc)
     691          {
     692            printf ("error: block size needs an argument\n");
     693            return 1;
     694          }
     695          config.block_size = strtoul (argv[arg], 0, 0);
     696          break;
     697       
     698        case 'b':
     699          arg++;
     700          if (arg >= argc)
     701          {
     702            printf ("error: group block count needs an argument\n");
     703            return 1;
     704          }
     705          config.group_blocks = strtoul (argv[arg], 0, 0);
     706          break;
     707         
     708        case 'i':
     709          arg++;
     710          if (arg >= argc)
     711          {
     712            printf ("error: group inode count needs an argument\n");
     713            return 1;
     714          }
     715          config.group_inodes = strtoul (argv[arg], 0, 0);
     716          break;
     717
     718        case 'I':
     719          config.initialise_inodes = true;
     720          break;
     721         
     722        case 'o':
     723          arg++;
     724          if (arg >= argc)
     725          {
     726            printf ("error: inode percentage overhead needs an argument\n");
     727            return 1;
     728          }
     729          config.inode_overhead = strtoul (argv[arg], 0, 0);
     730          break;
     731         
     732        default:
     733          printf ("error: invalid option: %s\n", argv[arg]);
     734          return 1;
     735      }
     736    }
     737    else
     738    {
     739      if (!driver)
     740        driver = argv[arg];
     741      else
     742      {
     743        printf ("error: only one driver name allowed: %s\n", argv[arg]);
     744        return 1;
     745      }
     746    }
     747  }
     748
     749  if (rtems_rfs_format (driver, &config) < 0)
     750  {
     751    printf ("error: format of %s failed: %s\n",
     752            driver, strerror (errno));
     753    return 1;
     754  }
     755 
     756  return 0;
     757}
  • cpukit/libfs/src/rfs/rtems-rfs-shell.h

    r37c0822d rcca94a2  
    3131 * @return int The exit code for the command. A 0 is no error.
    3232 */
    33 int rtems_rfs_shell_debugrfs (int argc, char *argv[]);
     33int rtems_shell_debugrfs (int argc, char *argv[]);
     34
     35/**
     36 * The shell command for formatting an RFS file system.
     37 *
     38 * @param argc The argument count.
     39 * @param argv The argument variables.
     40 * @return int The exit code for the command. A 0 is no error.
     41 */
     42int rtems_shell_rfs_format (int argc, char* argv[]);
    3443
    3544#endif
  • cpukit/libmisc/Makefile.am

    r37c0822d rcca94a2  
    9696    shell/main_hexdump.c shell/hexdump-conv.c shell/hexdump-display.c \
    9797    shell/hexdump-odsyntax.c shell/hexdump-parse.c shell/hexsyntax.c \
    98     shell/main_time.c shell/main_mknod.c \
    99     shell/main_setenv.c shell/main_getenv.c shell/main_unsetenv.c
     98    shell/main_time.c shell/main_mknod.c  shell/main_mount_rfs.c \
     99    shell/main_setenv.c shell/main_getenv.c shell/main_unsetenv.c \
     100    shell/main_mkrfs.c shell/main_debugrfs.c
    100101
    101102if LIBNETWORKING
  • cpukit/libmisc/shell/main_msdosfmt.c

    r37c0822d rcca94a2  
    167167
    168168rtems_shell_cmd_t rtems_shell_MSDOSFMT_Command = {
    169   "msdosfmt",                                /* name */
    170   "msdosfmt " OPTIONS " path # format disk", /* usage */
     169  "mkdos",                                   /* name */
     170  "mkdos " OPTIONS " path # format disk",    /* usage */
    171171  "files",                                   /* topic */
    172172  rtems_shell_main_msdos_format,             /* command */
    173   NULL,                                      /* alias */
     173  "msdosfmt",                                /* alias */
    174174  NULL                                       /* next */
    175175};
  • cpukit/libmisc/shell/shellconfig.h

    r37c0822d rcca94a2  
    5151extern rtems_shell_cmd_t rtems_shell_CHMOD_Command;
    5252extern rtems_shell_cmd_t rtems_shell_CAT_Command;
     53extern rtems_shell_cmd_t rtems_shell_MKRFS_Command;
    5354extern rtems_shell_cmd_t rtems_shell_MSDOSFMT_Command;
    5455extern rtems_shell_cmd_t rtems_shell_MV_Command;
     
    6364extern rtems_shell_cmd_t rtems_shell_DD_Command;
    6465extern rtems_shell_cmd_t rtems_shell_HEXDUMP_Command;
     66extern rtems_shell_cmd_t rtems_shell_DEBUGRFS_Command;
    6567
    6668extern rtems_shell_cmd_t rtems_shell_RTC_Command;
     
    9294 *  Externs for mount command helpers
    9395 */
     96extern rtems_shell_filesystems_t rtems_shell_Mount_RFS;
    9497extern rtems_shell_filesystems_t rtems_shell_Mount_MSDOS;
    9598extern rtems_shell_filesystems_t rtems_shell_Mount_TFTP;
     
    293296    #endif
    294297    #if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
     298         !defined(CONFIGURE_SHELL_NO_COMMAND_MKRFS)) || \
     299        defined(CONFIGURE_SHELL_COMMAND_MKRFS)
     300      &rtems_shell_MKRFS_Command,
     301    #endif
     302    #if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
    295303         !defined(CONFIGURE_SHELL_NO_COMMAND_MSDOSFMT)) || \
    296304        defined(CONFIGURE_SHELL_COMMAND_MSDOSFMT)
     
    352360      &rtems_shell_HEXDUMP_Command,
    353361    #endif
     362    #if (defined(CONFIGURE_SHELL_COMMANDS_ALL) && \
     363         !defined(CONFIGURE_SHELL_NO_COMMAND_DEBUGRFS)) || \
     364        defined(CONFIGURE_SHELL_COMMAND_DEBUGRFS)
     365      &rtems_shell_DEBUGRFS_Command,
     366    #endif
    354367
    355368    /*
     
    381394      &rtems_shell_WKSPACE_INFO_Command,
    382395    #endif
    383 
    384396
    385397    /*
     
    438450       defined(CONFIGURE_SHELL_COMMAND_MOUNT)
    439451    rtems_shell_filesystems_t *rtems_shell_Mount_filesystems[] = {
     452      #if defined(CONFIGURE_SHELL_MOUNT_RFS)
     453        &rtems_shell_Mount_RFS,
     454      #endif
    440455      #if defined(CONFIGURE_SHELL_MOUNT_MSDOS)
    441456        &rtems_shell_Mount_MSDOS,
Note: See TracChangeset for help on using the changeset viewer.