Changes in uspace/srv/devman/devman.h [45059d6b:80a96d2] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/devman/devman.h
r45059d6b r80a96d2 63 63 typedef struct fun_node fun_node_t; 64 64 65 typedef struct { 66 fibril_mutex_t mutex; 67 struct driver *driver; 68 } client_t; 69 65 70 typedef enum { 66 71 /** Driver has not been started. */ … … 113 118 } driver_list_t; 114 119 115 /** The state of the device.*/120 /** Device state */ 116 121 typedef enum { 117 122 DEVICE_NOT_INITIALIZED = 0, 118 123 DEVICE_USABLE, 119 124 DEVICE_NOT_PRESENT, 120 DEVICE_INVALID 125 DEVICE_INVALID, 126 /** Device node has been removed from the tree */ 127 DEVICE_REMOVED 121 128 } device_state_t; 122 129 123 130 /** Device node in the device tree. */ 124 131 struct dev_node { 132 /** Reference count */ 133 atomic_t refcnt; 134 125 135 /** The global unique identifier of the device. */ 126 136 devman_handle_t handle; … … 149 159 }; 150 160 161 /** Function state */ 162 typedef enum { 163 FUN_INIT = 0, 164 FUN_OFF_LINE, 165 FUN_ON_LINE, 166 /** Function node has been removed from the tree */ 167 FUN_REMOVED 168 } fun_state_t; 169 151 170 /** Function node in the device tree. */ 152 171 struct fun_node { 172 /** Reference count */ 173 atomic_t refcnt; 174 /** State */ 175 fun_state_t state; 176 153 177 /** The global unique identifier of the function */ 154 178 devman_handle_t handle; … … 234 258 235 259 extern void add_driver(driver_list_t *, driver_t *); 236 extern void attach_driver(dev_node_t *, driver_t *); 260 extern void attach_driver(dev_tree_t *, dev_node_t *, driver_t *); 261 extern void detach_driver(dev_tree_t *, dev_node_t *); 237 262 extern void add_device(driver_t *, dev_node_t *, dev_tree_t *); 238 263 extern bool start_driver(driver_t *); 264 extern int driver_dev_remove(dev_tree_t *, dev_node_t *); 265 extern int driver_dev_gone(dev_tree_t *, dev_node_t *); 266 extern int driver_fun_online(dev_tree_t *, fun_node_t *); 267 extern int driver_fun_offline(dev_tree_t *, fun_node_t *); 239 268 240 269 extern driver_t *find_driver(driver_list_t *, const char *); … … 249 278 extern dev_node_t *create_dev_node(void); 250 279 extern void delete_dev_node(dev_node_t *node); 280 extern void dev_add_ref(dev_node_t *); 281 extern void dev_del_ref(dev_node_t *); 251 282 extern dev_node_t *find_dev_node_no_lock(dev_tree_t *tree, 252 283 devman_handle_t handle); … … 258 289 extern fun_node_t *create_fun_node(void); 259 290 extern void delete_fun_node(fun_node_t *); 291 extern void fun_add_ref(fun_node_t *); 292 extern void fun_del_ref(fun_node_t *); 260 293 extern fun_node_t *find_fun_node_no_lock(dev_tree_t *tree, 261 294 devman_handle_t handle); 262 295 extern fun_node_t *find_fun_node(dev_tree_t *tree, devman_handle_t handle); 263 296 extern fun_node_t *find_fun_node_by_path(dev_tree_t *, char *); 264 extern fun_node_t *find_fun_node_in_device(dev_node_t *, const char *); 297 extern fun_node_t *find_fun_node_in_device(dev_tree_t *tree, dev_node_t *, 298 const char *); 265 299 266 300 /* Device tree */ … … 269 303 extern bool create_root_nodes(dev_tree_t *); 270 304 extern bool insert_dev_node(dev_tree_t *, dev_node_t *, fun_node_t *); 305 extern void remove_dev_node(dev_tree_t *, dev_node_t *); 271 306 extern bool insert_fun_node(dev_tree_t *, fun_node_t *, char *, dev_node_t *); 272 307 extern void remove_fun_node(dev_tree_t *, fun_node_t *);
Note:
See TracChangeset
for help on using the changeset viewer.