* @brief Set the devclass of a device * @see devclass_add_device(). */
| 2726 | * @see devclass_add_device(). |
| 2727 | */ |
| 2728 | int |
| 2729 | device_set_devclass(device_t dev, const char *classname) |
| 2730 | { |
| 2731 | devclass_t dc; |
| 2732 | int error; |
| 2733 | |
| 2734 | if (!classname) { |
| 2735 | if (dev->devclass) |
| 2736 | devclass_delete_device(dev->devclass, dev); |
| 2737 | return (0); |
| 2738 | } |
| 2739 | |
| 2740 | if (dev->devclass) { |
| 2741 | printf("device_set_devclass: device class already set\n"); |
| 2742 | return (EINVAL); |
| 2743 | } |
| 2744 | |
| 2745 | dc = devclass_find_internal(classname, NULL, TRUE); |
| 2746 | if (!dc) |
| 2747 | return (ENOMEM); |
| 2748 | |
| 2749 | error = devclass_add_device(dc, dev); |
| 2750 | |
| 2751 | bus_data_generation_update(); |
| 2752 | return (error); |
| 2753 | } |
| 2754 | |
| 2755 | /** |
| 2756 | * @brief Set the devclass of a device and mark the devclass fixed. |
no test coverage detected