Changeset fc8c2b6 in mainline for uspace/srv/devman/devman.c
- Timestamp:
- 2011-03-30T14:26:13Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e72fb34
- Parents:
- 3fddb55
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/devman/devman.c
r3fddb55 rfc8c2b6 1194 1194 } 1195 1195 1196 /** Find function node by its class name and index. */ 1197 fun_node_t *find_fun_node_by_class(class_list_t *class_list, 1198 const char *class_name, const char *dev_name) 1199 { 1200 assert(class_list != NULL); 1201 assert(class_name != NULL); 1202 assert(dev_name != NULL); 1203 1204 fibril_rwlock_read_lock(&class_list->rwlock); 1205 1206 dev_class_t *cl = find_dev_class_no_lock(class_list, class_name); 1207 if (cl == NULL) { 1208 fibril_rwlock_read_unlock(&class_list->rwlock); 1209 return NULL; 1210 } 1211 1212 dev_class_info_t *dev = find_dev_in_class(cl, dev_name); 1213 if (dev == NULL) { 1214 fibril_rwlock_read_unlock(&class_list->rwlock); 1215 return NULL; 1216 } 1217 1218 fun_node_t *fun = dev->fun; 1219 1220 fibril_rwlock_read_unlock(&class_list->rwlock); 1221 1222 return fun; 1223 } 1224 1225 1196 1226 /** Find child function node with a specified name. 1197 1227 * … … 1366 1396 } 1367 1397 1398 dev_class_info_t *find_dev_in_class(dev_class_t *dev_class, const char *dev_name) 1399 { 1400 assert(dev_class != NULL); 1401 assert(dev_name != NULL); 1402 1403 link_t *link; 1404 for (link = dev_class->devices.next; 1405 link != &dev_class->devices; 1406 link = link->next) { 1407 dev_class_info_t *dev = list_get_instance(link, 1408 dev_class_info_t, link); 1409 1410 if (str_cmp(dev->dev_name, dev_name) == 0) { 1411 return dev; 1412 } 1413 } 1414 1415 return NULL; 1416 } 1417 1368 1418 void init_class_list(class_list_t *class_list) 1369 1419 {
Note:
See TracChangeset
for help on using the changeset viewer.