Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/bdsh/cmds/modules/mount/mount.c

    r286286c r2e1b9dc  
    2727 */
    2828
     29#include <loc.h>
    2930#include <stdio.h>
    3031#include <stdlib.h>
    3132#include <vfs/vfs.h>
     33#include <adt/list.h>
    3234#include <errno.h>
    3335#include <getopt.h>
     36#include <inttypes.h>
    3437#include "config.h"
    3538#include "util.h"
     
    6063        }
    6164        return;
     65}
     66
     67static void print_mtab_list(void)
     68{
     69        LIST_INITIALIZE(mtab_list);
     70        mtab_ent_t *old_ent = NULL;
     71        char *svc_name;
     72        int rc;
     73
     74        get_mtab_list(&mtab_list);
     75
     76        list_foreach(mtab_list, cur) {
     77                mtab_ent_t *mtab_ent = list_get_instance(cur, mtab_ent_t,
     78                    link);
     79
     80                if (old_ent)
     81                        free(old_ent);
     82
     83                old_ent = mtab_ent;
     84
     85                printf("%s", mtab_ent->fs_name);
     86                if (mtab_ent->instance)
     87                        printf("/%d", mtab_ent->instance);
     88
     89                printf(" %s", mtab_ent->mp);
     90
     91                rc = loc_service_get_name(mtab_ent->service_id, &svc_name);
     92                if (rc == EOK) {
     93                        printf(" %s", svc_name);
     94                        free(svc_name);
     95                } else {
     96                        printf(" (%" PRIun ")", mtab_ent->service_id);
     97                }
     98
     99                if (str_size(mtab_ent->opts) > 0)
     100                        printf(" (%s)", mtab_ent->opts);
     101
     102                putchar('\n');
     103        }
     104
     105        if (old_ent)
     106                free(old_ent);
    62107}
    63108
     
    94139                t_argv = &argv[0];
    95140
    96         if ((argc < 3) || (argc > 5)) {
     141        if ((argc == 2) || (argc > 5)) {
    97142                printf("%s: invalid number of arguments. Try `mount --help'\n",
    98143                    cmdname);
    99144                return CMD_FAILURE;
     145        }
     146        if (argc == 1) {
     147                print_mtab_list();
     148                return CMD_SUCCESS;
    100149        }
    101150        if (argc > 3)
Note: See TracChangeset for help on using the changeset viewer.