Changeset 90478727 in mainline for uspace/app


Ignore:
Timestamp:
2012-08-12T11:46:44Z (14 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
41b764b7
Parents:
e1e4192 (diff), 371cb6c (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

merge mainline changes

Location:
uspace/app
Files:
9 edited
1 moved

Legend:

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

    re1e4192 r90478727  
    6262static sysarg_t console_rows = 0;
    6363static bool should_quit = false;
     64static bool dash_represents_stdin = false;
    6465
    6566static console_ctrl_t *console = NULL;
     
    7374        { "more", no_argument, 0, 'm' },
    7475        { "hex", no_argument, 0, 'x' },
     76        { "stdin", no_argument, 0, 's' },
    7577        { 0, 0, 0, 0 }
    7678};
     
    9395                "  -m, --more       Pause after each screen full\n"
    9496                "  -x, --hex        Print bytes as hex values\n"
     97                "  -s  --stdin      Treat `-' in file list as standard input\n"
    9598                "Currently, %s is under development, some options don't work.\n",
    9699                cmdname, cmdname);
     
    172175        off64_t file_size = 0, length = 0;
    173176
    174         fd = open(fname, O_RDONLY);
     177        bool reading_stdin = dash_represents_stdin && (str_cmp(fname, "-") == 0);
     178       
     179        if (reading_stdin) {
     180                fd = fileno(stdin);
     181                /* Allow storing the whole UTF-8 character. */
     182                blen = STR_BOUNDS(1);
     183        } else
     184                fd = open(fname, O_RDONLY);
     185       
    175186        if (fd < 0) {
    176187                printf("Unable to open %s\n", fname);
     
    207218
    208219        do {
    209                 bytes = read(fd, buff + copied_bytes, (
    210                         (length != CAT_FULL_FILE && length - (off64_t)count <= (off64_t)(blen - copied_bytes)) ?
    211                         (size_t)(length - count) :
    212                         (blen - copied_bytes) ) );
     220                size_t bytes_to_read;
     221                if (reading_stdin) {
     222                        bytes_to_read = 1;
     223                } else {
     224                        if ((length != CAT_FULL_FILE) &&
     225                            (length - (off64_t)count <= (off64_t)(blen - copied_bytes))) {
     226                                bytes_to_read = (size_t) (length - count);
     227                        } else {
     228                                bytes_to_read = blen - copied_bytes;
     229                        }
     230                }
     231               
     232                bytes = read(fd, buff + copied_bytes, bytes_to_read);
    213233                bytes += copied_bytes;
    214234                copied_bytes = 0;
     
    242262                        reads++;
    243263                }
     264               
     265                if (reading_stdin)
     266                        fflush(stdout);
    244267        } while (bytes > 0 && !should_quit && (count < length || length == CAT_FULL_FILE));
    245268
     
    284307
    285308        for (c = 0, optind = 0, opt_ind = 0; c != -1;) {
    286                 c = getopt_long(argc, argv, "xhvmH:t:b:", long_options, &opt_ind);
     309                c = getopt_long(argc, argv, "xhvmH:t:b:s", long_options, &opt_ind);
    287310                switch (c) {
    288311                case 'h':
     
    318341                        hex = true;
    319342                        break;
     343                case 's':
     344                        dash_represents_stdin = true;
     345                        break;
    320346                }
    321347        }
  • uspace/app/devctl/devctl.c

    re1e4192 r90478727  
    4444#define MAX_NAME_LENGTH 1024
    4545
     46char name[MAX_NAME_LENGTH];
     47char drv_name[MAX_NAME_LENGTH];
     48
    4649static int fun_subtree_print(devman_handle_t funh, int lvl)
    4750{
    48         char name[MAX_NAME_LENGTH];
    4951        devman_handle_t devh;
    5052        devman_handle_t *cfuns;
     
    5759
    5860        rc = devman_fun_get_name(funh, name, MAX_NAME_LENGTH);
    59         if (rc != EOK) {
    60                 str_cpy(name, MAX_NAME_LENGTH, "unknown");
    61                 return ENOMEM;
    62         }
     61        if (rc != EOK)
     62                return ELIMIT;
    6363
    6464        if (name[0] == '\0')
    6565                str_cpy(name, MAX_NAME_LENGTH, "/");
    6666
    67         printf("%s (%" PRIun ")\n", name, funh);
     67        rc = devman_fun_get_driver_name(funh, drv_name, MAX_NAME_LENGTH);
     68        if (rc != EOK && rc != EINVAL)
     69                return ELIMIT;
     70
     71        if (rc == EINVAL)
     72                printf("%s\n", name);
     73        else
     74                printf("%s : %s\n", name, drv_name);
    6875
    6976        rc = devman_fun_get_child(funh, &devh);
  • uspace/app/loc/loc.c

    re1e4192 r90478727  
    4848        size_t svc_cnt;
    4949        char *svc_name;
     50        char *server_name;
    5051        int rc;
    5152        size_t j;
    5253
    53         printf("%s (%" PRIun "):\n", cat_name, cat_id);
     54        printf("%s:\n", cat_name);
    5455
    5556        rc = loc_category_get_svcs(cat_id, &svc_ids, &svc_cnt);
     
    6768                        continue;
    6869                }
    69                 printf("\t%s (%" PRIun ")\n", svc_name, svc_ids[j]);
     70
     71                rc = loc_service_get_server_name(svc_ids[j], &server_name);
     72                if (rc != EOK && rc != EINVAL) {
     73                        free(svc_name);
     74                        printf(NAME ": Unknown service name (SID %"
     75                            PRIun ").\n", svc_ids[j]);
     76                        continue;
     77                }
     78
     79                if (rc == EOK)
     80                        printf("\t%s : %s\n", svc_name, server_name);
     81                else
     82                        printf("\t%s\n", svc_name);
     83       
    7084                free(svc_name);
     85                free(server_name);
    7186        }
    7287
  • uspace/app/sportdmp/sportdmp.c

    re1e4192 r90478727  
    3737static void syntax_print(void)
    3838{
    39         fprintf(stderr, "Usage: sportdmp <baud> <device_service>\n");
     39        fprintf(stderr, "Usage: sportdmp [--baud=<baud>] [device_service]\n");
    4040}
    4141
    4242int main(int argc, char **argv)
    4343{
    44         const char* svc_path = "devices/\\hw\\pci0\\00:01.0\\com1\\a";
    4544        sysarg_t baud = 9600;
     45        service_id_t svc_id;
    4646       
    47         if (argc > 1) {
     47        int arg = 1;
     48        int rc;
     49               
     50        if (argc > arg && str_test_prefix(argv[arg], "--baud=")) {
     51                size_t arg_offset = str_lsize(argv[arg], 7);
     52                char* arg_str = argv[arg] + arg_offset;
     53                if (str_length(arg_str) == 0) {
     54                        fprintf(stderr, "--baud requires an argument\n");
     55                        syntax_print();
     56                        return 1;
     57                }
    4858                char *endptr;
    49                 baud = strtol(argv[1], &endptr, 10);
     59                baud = strtol(arg_str, &endptr, 10);
    5060                if (*endptr != '\0') {
    5161                        fprintf(stderr, "Invalid value for baud\n");
     
    5363                        return 1;
    5464                }
     65                arg++;
    5566        }
    5667       
    57         if (argc > 2) {
    58                 svc_path = argv[2];
     68        if (argc > arg) {
     69                rc = loc_service_get_id(argv[arg], &svc_id, 0);
     70                if (rc != EOK) {
     71                        fprintf(stderr, "Cannot find device service %s\n",
     72                            argv[arg]);
     73                        return 1;
     74                }
     75                arg++;
     76        }
     77        else {
     78                category_id_t serial_cat_id;
     79               
     80                rc = loc_category_get_id("serial", &serial_cat_id, 0);
     81                if (rc != EOK) {
     82                        fprintf(stderr, "Failed getting id of category "
     83                            "'serial'\n");
     84                        return 1;
     85                }
     86               
     87                service_id_t *svc_ids;
     88                size_t svc_count;
     89               
     90                rc = loc_category_get_svcs(serial_cat_id, &svc_ids, &svc_count);                if (rc != EOK) {
     91                        fprintf(stderr, "Failed getting list of services\n");
     92                        return 1;
     93                }
     94               
     95                if (svc_count == 0) {
     96                        fprintf(stderr, "No service in category 'serial'\n");
     97                        free(svc_ids);
     98                        return 1;
     99                }
     100               
     101                svc_id = svc_ids[0];
     102                free(svc_ids);
    59103        }
    60104       
    61         if (argc > 3) {
     105        if (argc > arg) {
     106                fprintf(stderr, "Too many arguments\n");
    62107                syntax_print();
    63108                return 1;
    64109        }
    65110       
    66         service_id_t svc_id;
    67         int rc = loc_service_get_id(svc_path, &svc_id, IPC_FLAG_BLOCKING);
    68         if (rc != EOK) {
    69                 fprintf(stderr, "Cannot find device service %s\n", svc_path);
    70                 return 1;
    71         }
    72111       
    73112        async_sess_t *sess = loc_service_connect(EXCHANGE_SERIALIZE, svc_id,
    74113            IPC_FLAG_BLOCKING);
    75114        if (!sess) {
    76                 fprintf(stderr, "Failed connecting to service %s\n", svc_path);
     115                fprintf(stderr, "Failed connecting to service\n");
    77116        }
    78117       
  • uspace/app/tester/mm/common.c

    re1e4192 r90478727  
    342342        link_initialize(&area->link);
    343343       
    344         area->addr = as_area_create((void *) -1, size,
     344        area->addr = as_area_create(AS_AREA_ANY, size,
    345345            AS_AREA_WRITE | AS_AREA_READ);
    346         if (area->addr == (void *) -1) {
     346        if (area->addr == AS_MAP_FAILED) {
    347347                free(area);
    348348                check_consistency("map_area (a)");
  • uspace/app/tester/mm/mapping1.c

    re1e4192 r90478727  
    4242        TPRINTF("Creating AS area...\n");
    4343       
    44         void *result = as_area_create((void *) -1, size,
     44        void *result = as_area_create(AS_AREA_ANY, size,
    4545            AS_AREA_READ | AS_AREA_WRITE);
    46         if (result == (void *) -1)
     46        if (result == AS_MAP_FAILED)
    4747                return NULL;
    4848       
  • uspace/app/usbinfo/Makefile

    re1e4192 r90478727  
    4747        hid.c \
    4848        info.c \
     49        list.c \
    4950        main.c
    5051
  • uspace/app/usbinfo/list.c

    re1e4192 r90478727  
    4747#include <usb/hc.h>
    4848
    49 #define NAME "lsusb"
     49#include "usbinfo.h"
    5050
    5151#define MAX_USB_ADDRESS USB11_ADDRESS_MAX
     
    9090}
    9191
    92 int main(int argc, char *argv[])
     92void list(void)
    9393{
    9494        category_id_t usbhc_cat;
     
    102102                printf(NAME ": Error resolving category '%s'",
    103103                    USB_HC_CATEGORY);
    104                 return 1;
     104                return;
    105105        }
    106106
     
    108108        if (rc != EOK) {
    109109                printf(NAME ": Error getting list of host controllers.\n");
    110                 return 1;
     110                return;
    111111        }
    112112
     
    131131
    132132        free(svcs);
    133 
    134         return 0;
    135133}
    136134
  • uspace/app/usbinfo/main.c

    re1e4192 r90478727  
    6262
    6363        _OPTION("-h --help", "Print this help and exit.");
     64        _OPTION("-l --list", "Print a list of host controllers and devices.");
    6465        _OPTION("-i --identification", "Brief device identification.");
    6566        _OPTION("-m --match-ids", "Print match ids generated for the device.");
     
    8283        {"help", no_argument, NULL, 'h'},
    8384        {"identification", no_argument, NULL, 'i'},
     85        {"list", no_argument, NULL, 'l'},
    8486        {"match-ids", no_argument, NULL, 'm'},
    8587        {"descriptor-tree", no_argument, NULL, 't'},
     
    9193        {0, 0, NULL, 0}
    9294};
    93 static const char *short_options = "himtTsSrR";
     95static const char *short_options = "hilmtTsSrR";
    9496
    9597static usbinfo_action_t actions[] = {
     
    146148        }
    147149
     150        bool something_active = false;
    148151        /*
    149152         * Process command-line options. They determine what shall be
     
    156159                switch (opt) {
    157160                        case -1:
     161                                break;
     162                        case 'l':
     163                                list();
    158164                                break;
    159165                        case '?':
     
    168174                                        if (actions[idx].opt == opt) {
    169175                                                actions[idx].active = true;
     176                                                something_active = true;
    170177                                                break;
    171178                                        }
     
    178185
    179186        /* Set the default action. */
    180         int idx = 0;
    181         bool something_active = false;
    182         while (actions[idx].opt != 0) {
    183                 if (actions[idx].active) {
    184                         something_active = true;
    185                         break;
    186                 }
    187                 idx++;
    188         }
    189187        if (!something_active) {
    190188                actions[0].active = true;
  • uspace/app/usbinfo/usbinfo.h

    re1e4192 r90478727  
    7979    dump_descriptor_in_tree_t, size_t, void *);
    8080
     81void list(void);
    8182
    8283void dump_short_device_identification(usbinfo_device_t *);
Note: See TracChangeset for help on using the changeset viewer.