Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/drv/generic/driver.c

    r9f6c5ef0 r0d6915f  
    4848#include <ctype.h>
    4949#include <errno.h>
    50 #include <inttypes.h>
    5150
    5251#include <ipc/driver.h>
     
    178177        res = driver->driver_ops->add_device(dev);
    179178        if (0 == res) {
    180                 printf("%s: new device with handle=%" PRIun " was added.\n",
     179                printf("%s: new device with handle = %x was added.\n",
    181180                    driver->name, dev_handle);
    182181        } else {
    183                 printf("%s: failed to add a new device with handle = %" PRIun ".\n",
     182                printf("%s: failed to add a new device with handle = %d.\n",
    184183                    driver->name, dev_handle);
    185184                remove_from_devices_list(dev);
     
    208207                        break;
    209208                default:
    210                         ipc_answer_0(callid, ENOENT);
     209                        if (!(callid & IPC_CALLID_NOTIFICATION))
     210                                ipc_answer_0(callid, ENOENT);
    211211                }
    212212        }
     
    230230        if (dev == NULL) {
    231231                printf("%s: driver_connection_gen error - no device with handle"
    232                     " %" PRIun " was found.\n", driver->name, handle);
     232                    " %x was found.\n", driver->name, handle);
    233233                ipc_answer_0(iid, ENOENT);
    234234                return;
     
    294294                                printf("%s: driver_connection_gen error - ",
    295295                                    driver->name);
    296                                 printf("device with handle %" PRIun " has no interface "
     296                                printf("device with handle %d has no interface "
    297297                                    "with id %d.\n", handle, iface_idx);
    298298                                ipc_answer_0(callid, ENOTSUP);
     
    381381}
    382382
    383 /** Wrapper for child_device_register for devices with single match id.
    384  *
    385  * @param parent Parent device.
    386  * @param child_name Child device name.
    387  * @param child_match_id Child device match id.
    388  * @param child_match_score Child device match score.
    389  * @return Error code.
    390  */
    391 int child_device_register_wrapper(device_t *parent, const char *child_name,
    392     const char *child_match_id, int child_match_score,
    393     devman_handle_t *child_handle)
    394 {
    395         device_t *child = NULL;
    396         match_id_t *match_id = NULL;
    397         int rc;
    398 
    399         child = create_device();
    400         if (child == NULL) {
    401                 rc = ENOMEM;
    402                 goto failure;
    403         }
    404 
    405         child->name = child_name;
    406 
    407         match_id = create_match_id();
    408         if (match_id == NULL) {
    409                 rc = ENOMEM;
    410                 goto failure;
    411         }
    412 
    413         match_id->id = child_match_id;
    414         match_id->score = child_match_score;
    415         add_match_id(&child->match_ids, match_id);
    416 
    417         rc = child_device_register(child, parent);
    418         if (EOK != rc)
    419                 goto failure;
    420 
    421         if (child_handle != NULL) {
    422                 *child_handle = child->handle;
    423         }
    424         return EOK;
    425 
    426 failure:
    427         if (match_id != NULL) {
    428                 match_id->id = NULL;
    429                 delete_match_id(match_id);
    430         }
    431 
    432         if (child != NULL) {
    433                 child->name = NULL;
    434                 delete_device(child);
    435         }
    436 
    437         return rc;
    438 }
    439 
    440383int driver_main(driver_t *drv)
    441384{
Note: See TracChangeset for help on using the changeset viewer.