Changeset cce8a83 in mainline for uspace/srv/hid/input/generic/input.c


Ignore:
Timestamp:
2011-08-16T17:31:34Z (13 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.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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                        }
Note: See TracChangeset for help on using the changeset viewer.