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


Ignore:
Timestamp:
2010-06-01T19:49:48Z (14 years ago)
Author:
Lenka Trochtova <trochtova.lenka@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a32defa
Parents:
5159ae9
Message:

Add the 'class' namespace to the device mapper. When a driver adds a device to a class, the device is registered with its class specific name by the device mapper in the 'class' namespace.

File:
1 edited

Legend:

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

    r5159ae9 rce89036b  
    5252#define MATCH_EXT ".ma"
    5353#define DEVICE_BUCKETS 256
     54
     55#define DEVMAP_CLASS_NAMESPACE "class"
     56#define DEVMAP_DEVICE_NAMESPACE "devices"
     57#define DEVMAP_SEPARATOR "\\"
    5458
    5559struct node;
     
    149153        /** Hash table of devices registered by devmapper, indexed by devmap handles.*/
    150154        hash_table_t devmap_devices;
    151        
    152155} dev_tree_t;
    153156
     
    183186        /** The handle of the device by device mapper in the class namespace.*/
    184187        dev_handle_t devmap_handle;
     188        /** Link in the hash table of devices registered by the devmapper using their class names.*/
     189        link_t devmap_link;
    185190} dev_class_info_t;
    186191
     
    189194        /** List of classes */
    190195        link_t classes;
     196        /** Hash table of devices registered by devmapper using their class name, indexed by devmap handles.*/
     197        hash_table_t devmap_devices;
    191198        /** Fibril mutex for list of classes. */
    192         fibril_mutex_t classes_mutex;   
     199        fibril_rwlock_t rwlock;
    193200} class_list_t;
    194201
     
    404411dev_class_info_t * add_device_to_class(node_t *dev, dev_class_t *cl, const char *base_dev_name);
    405412
    406 static inline void init_class_list(class_list_t *class_list)
    407 {
    408         list_initialize(&class_list->classes);
    409         fibril_mutex_initialize(&class_list->classes_mutex);
    410 }
     413void init_class_list(class_list_t *class_list);
    411414
    412415dev_class_t * get_dev_class(class_list_t *class_list, char *class_name);
     
    418421}
    419422
     423
     424// devmap devices
     425
     426node_t *find_devmap_tree_device(dev_tree_t *tree, dev_handle_t devmap_handle);
     427node_t *find_devmap_class_device(class_list_t *classes, dev_handle_t devmap_handle);
     428
    420429#endif
    421430
Note: See TracChangeset for help on using the changeset viewer.