Changeset cce8a83 in mainline for uspace/srv/hid/input


Ignore:
Timestamp:
2011-08-16T17:31:34Z (14 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
45058baa
Parents:
6d605e6
Message:

loc_service_get_name() to translate service ID to name.

Location:
uspace/srv/hid/input
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hid/input/ctl/kbdev.c

    r6d605e6 rcce8a83  
    9898        async_exch_t *exch;
    9999        kbdev_t *kbdev;
    100         char *svc_name;
    101100        int rc;
    102101
    103         if (asprintf(&svc_name, "devname%" PRIun, kdev->service_id) > 0)
    104                 svc_name = (char *) "unknown";
    105 
    106         sess = loc_service_connect(EXCHANGE_SERIALIZE, kdev->service_id, 0);
     102        sess = loc_service_connect(EXCHANGE_SERIALIZE, kdev->svc_id, 0);
    107103        if (sess == NULL) {
    108104                printf("%s: Failed starting session with '%s.'\n", NAME,
    109                     svc_name);
     105                    kdev->svc_name);
    110106                return -1;
    111107        }
     
    114110        if (kbdev == NULL) {
    115111                printf("%s: Failed allocating device structure for '%s'.\n",
    116                     NAME, svc_name);
     112                    NAME, kdev->svc_name);
    117113                return -1;
    118114        }
     
    123119        if (exch == NULL) {
    124120                printf("%s: Failed starting exchange with '%s'.\n", NAME,
    125                     svc_name);
     121                    kdev->svc_name);
    126122                kbdev_destroy(kbdev);
    127123                return -1;
     
    131127        if (rc != EOK) {
    132128                printf("%s: Failed creating callback connection from '%s'.\n",
    133                     NAME, svc_name);
     129                    NAME, kdev->svc_name);
    134130                async_exchange_end(exch);
    135131                kbdev_destroy(kbdev);
  • uspace/srv/hid/input/generic/input.c

    r6d605e6 rcce8a83  
    276276        kdev->port_ops = port;
    277277        kdev->ctl_ops = ctl;
    278         kdev->service_id = 0;
     278        kdev->svc_id = 0;
    279279       
    280280        /* Initialize port driver. */
     
    304304        mdev->port_ops = port;
    305305        mdev->proto_ops = proto;
    306         mdev->service_id = 0;
     306        mdev->svc_id = 0;
    307307       
    308308        /* Initialize port driver. */
     
    328328 *
    329329 */
    330 static int kbd_add_kbdev(service_id_t service_id)
     330static int kbd_add_kbdev(service_id_t service_id, kbd_dev_t **kdevp)
    331331{
    332332        kbd_dev_t *kdev = kbd_dev_new();
     
    334334                return -1;
    335335       
    336         kdev->service_id = service_id;
     336        kdev->svc_id = service_id;
    337337        kdev->port_ops = NULL;
    338338        kdev->ctl_ops = &kbdev_ctl;
    339339       
     340        int rc = loc_service_get_name(service_id, &kdev->svc_name);
     341        if (rc != EOK) {
     342                kdev->svc_name = NULL;
     343                goto fail;
     344        }
     345       
    340346        /* Initialize controller driver. */
    341347        if ((*kdev->ctl_ops->init)(kdev) != 0) {
     
    344350       
    345351        list_append(&kdev->kbd_devs, &kbd_devs);
     352        *kdevp = kdev;
    346353        return EOK;
    347354       
    348355fail:
     356        if (kdev->svc_name != NULL)
     357                free(kdev->svc_name);
    349358        free(kdev);
    350359        return -1;
     
    356365 *
    357366 */
    358 static int mouse_add_mousedev(service_id_t service_id)
     367static int mouse_add_mousedev(service_id_t service_id, mouse_dev_t **mdevp)
    359368{
    360369        mouse_dev_t *mdev = mouse_dev_new();
     
    362371                return -1;
    363372       
    364         mdev->service_id = service_id;
     373        mdev->svc_id = service_id;
    365374        mdev->port_ops = NULL;
    366375        mdev->proto_ops = &mousedev_proto;
    367376       
     377        int rc = loc_service_get_name(service_id, &mdev->svc_name);
     378        if (rc != EOK) {
     379                mdev->svc_name = NULL;
     380                goto fail;
     381        }
     382       
    368383        /* Initialize controller driver. */
    369384        if ((*mdev->proto_ops->init)(mdev) != 0) {
     
    372387       
    373388        list_append(&mdev->mouse_devs, &mouse_devs);
     389        *mdevp = mdev;
    374390        return EOK;
    375391       
     
    494510        size_t count, i;
    495511        bool already_known;
    496         const char *dev_name = "todo";
    497512        int rc;
    498513       
     
    529544                                kbd_dev_t *kdev = list_get_instance(kdev_link,
    530545                                    kbd_dev_t, kbd_devs);
    531                                 if (kdev->service_id == svcs[i]) {
     546                                if (kdev->svc_id == svcs[i]) {
    532547                                        already_known = true;
    533548                                        break;
     
    536551
    537552                        if (!already_known) {
    538                                 if (kbd_add_kbdev(svcs[i]) == EOK) {
     553                                kbd_dev_t *kdev;
     554                                if (kbd_add_kbdev(svcs[i], &kdev) == EOK) {
    539555                                        printf("%s: Connected keyboard device '%s'\n",
    540                                             NAME, dev_name);
     556                                            NAME, kdev->svc_name);
    541557                                }
    542558                        }
     
    562578                                mouse_dev_t *mdev = list_get_instance(mdev_link,
    563579                                    mouse_dev_t, mouse_devs);
    564                                 if (mdev->service_id == svcs[i]) {
     580                                if (mdev->svc_id == svcs[i]) {
    565581                                        already_known = true;
    566582                                        break;
     
    569585
    570586                        if (!already_known) {
    571                                 if (mouse_add_mousedev(svcs[i]) == EOK) {
     587                                mouse_dev_t *mdev;
     588                                if (mouse_add_mousedev(svcs[i], &mdev) == EOK) {
    572589                                        printf("%s: Connected mouse device '%s'\n",
    573                                             NAME, dev_name);
     590                                            NAME, mdev->svc_name);
    574591                                }
    575592                        }
  • uspace/srv/hid/input/include/kbd.h

    r6d605e6 rcce8a83  
    5151
    5252        /** Service ID (only for kbdev devices) */
    53         service_id_t service_id;
     53        service_id_t svc_id;
     54
     55        /** Device service name (only for kbdev devices) */
     56        char *svc_name;
    5457
    5558        /** Port ops */
  • uspace/srv/hid/input/include/mouse.h

    r6d605e6 rcce8a83  
    4949       
    5050        /** Service ID (only for mousedev devices) */
    51         service_id_t service_id;
     51        service_id_t svc_id;
     52       
     53        /** Device service name (only for mousedev devices) */
     54        char *svc_name;
    5255       
    5356        /** Port ops */
  • uspace/srv/hid/input/proto/mousedev.c

    r6d605e6 rcce8a83  
    117117static int mousedev_proto_init(mouse_dev_t *mdev)
    118118{
    119         char *svc_name;
    120        
    121         if (asprintf(&svc_name, "devname%" PRIun, mdev->service_id) > 0)
    122                 svc_name = (char *) "unknown";
    123        
    124119        async_sess_t *sess = loc_service_connect(EXCHANGE_SERIALIZE,
    125             mdev->service_id, 0);
     120            mdev->svc_id, 0);
    126121        if (sess == NULL) {
    127                 printf("%s: Failed starting session with '%s'\n", NAME, svc_name);
     122                printf("%s: Failed starting session with '%s'\n", NAME,
     123                    mdev->svc_name);
    128124                return -1;
    129125        }
     
    132128        if (mousedev == NULL) {
    133129                printf("%s: Failed allocating device structure for '%s'.\n",
    134                     NAME, svc_name);
     130                    NAME, mdev->svc_name);
    135131                return -1;
    136132        }
     
    141137        if (exch == NULL) {
    142138                printf("%s: Failed starting exchange with '%s'.\n", NAME,
    143                     svc_name);
     139                    mdev->svc_name);
    144140                mousedev_destroy(mousedev);
    145141                return -1;
     
    151147        if (rc != EOK) {
    152148                printf("%s: Failed creating callback connection from '%s'.\n",
    153                     NAME, svc_name);
     149                    NAME, mdev->svc_name);
    154150                mousedev_destroy(mousedev);
    155151                return -1;
Note: See TracChangeset for help on using the changeset viewer.