Changeset 692c40cb in mainline for uspace/srv/devman/main.c
- Timestamp:
- 2010-05-28T09:04:37Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5159ae9
- Parents:
- c9f3b45c
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/devman/main.c
rc9f3b45c r692c40cb 60 60 static driver_list_t drivers_list; 61 61 static dev_tree_t device_tree; 62 static class_list_t class_list; 62 63 63 64 … … 240 241 // try to find suitable driver and assign it to the device 241 242 assign_driver(node, &drivers_list); 243 } 244 245 static void devman_add_device_to_class(ipc_callid_t callid, ipc_call_t *call) 246 { 247 device_handle_t handle = IPC_GET_ARG1(*call); 248 249 // Get class name 250 char *class_name; 251 int rc = async_data_write_accept((void **)&class_name, true, 0, 0, 0, 0); 252 if (rc != EOK) { 253 ipc_answer_0(callid, rc); 254 return; 255 } 256 257 node_t *dev = find_dev_node(&device_tree, handle); 258 if (NULL == dev) { 259 ipc_answer_0(callid, ENOENT); 260 return; 261 } 262 263 dev_class_t *cl = get_dev_class(&class_list, class_name); 264 265 dev_class_info_t *class_info = add_device_to_class(dev, cl, NULL); 266 267 // TODO register the device's class alias by devmapper 268 269 printf(NAME ": device '%s' added to class '%s', class name '%s' was asigned to it\n", dev->pathname, class_name, class_info->dev_name); 270 271 ipc_answer_0(callid, EOK); 242 272 } 243 273 … … 294 324 case DEVMAN_ADD_CHILD_DEVICE: 295 325 devman_add_child(callid, &call); 326 break; 327 case DEVMAN_ADD_DEVICE_TO_CLASS: 328 devman_add_device_to_class(callid, &call); 296 329 break; 297 330 default: … … 444 477 } 445 478 479 init_class_list(&class_list); 480 446 481 return true; 447 482 }
Note:
See TracChangeset
for help on using the changeset viewer.