Changeset a32defa in mainline for uspace/srv/devman/devman.h


Ignore:
Timestamp:
2010-06-01T20:53:07Z (15 years ago)
Author:
Lenka Trochtova <trochtova.lenka@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a6e54c5d
Parents:
ce89036b
Message:

Register devices in the device tree by the device mapper so the device hierarchy can be seen from devfs.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/devman/devman.h

    rce89036b ra32defa  
    5555#define DEVMAP_CLASS_NAMESPACE "class"
    5656#define DEVMAP_DEVICE_NAMESPACE "devices"
    57 #define DEVMAP_SEPARATOR "\\"
     57#define DEVMAP_SEPARATOR '\\'
    5858
    5959struct node;
     
    230230
    231231driver_t * find_best_match_driver(driver_list_t *drivers_list, node_t *node);
    232 bool assign_driver(node_t *node, driver_list_t *drivers_list);
     232bool assign_driver(node_t *node, driver_list_t *drivers_list, dev_tree_t *tree);
    233233
    234234void add_driver(driver_list_t *drivers_list, driver_t *drv);
    235235void attach_driver(node_t *node, driver_t *drv);
    236 void add_device(int phone, driver_t *drv, node_t *node);
     236void add_device(int phone, driver_t *drv, node_t *node, dev_tree_t *tree);
    237237bool start_driver(driver_t *drv);
    238238
    239239driver_t * find_driver(driver_list_t *drv_list, const char *drv_name);
    240240void set_driver_phone(driver_t *driver, ipcarg_t phone);
    241 void initialize_running_driver(driver_t *driver);
     241void initialize_running_driver(driver_t *driver, dev_tree_t *tree);
    242242
    243243/**
     
    427427node_t *find_devmap_class_device(class_list_t *classes, dev_handle_t devmap_handle);
    428428
     429
     430static inline void class_add_devmap_device(class_list_t *class_list, dev_class_info_t *cli)
     431{
     432        unsigned long key = (unsigned long)cli->devmap_handle;
     433        fibril_rwlock_write_lock(&class_list->rwlock);
     434        hash_table_insert(&class_list->devmap_devices, &key, &cli->devmap_link);
     435        fibril_rwlock_write_unlock(&class_list->rwlock);
     436}
     437
     438static inline void tree_add_devmap_device(dev_tree_t *tree, node_t *node)
     439{
     440        unsigned long key = (unsigned long)node->devmap_handle;
     441        fibril_rwlock_write_lock(&tree->rwlock);
     442        hash_table_insert(&tree->devmap_devices, &key, &node->devmap_link);
     443        fibril_rwlock_write_unlock(&tree->rwlock);     
     444}
     445
    429446#endif
    430447
Note: See TracChangeset for help on using the changeset viewer.