| 67 | } |
| 68 | |
| 69 | error_t driver_remove(Driver* driver) { |
| 70 | LOG_I(TAG, "remove %s", driver->name); |
| 71 | |
| 72 | if (driver->owner == nullptr) return ERROR_NOT_ALLOWED; |
| 73 | |
| 74 | ledger.lock(); |
| 75 | const auto iterator = std::ranges::find(ledger.drivers, driver); |
| 76 | if (iterator == ledger.drivers.end()) { |
| 77 | ledger.unlock(); |
| 78 | return ERROR_NOT_FOUND; |
| 79 | } |
| 80 | ledger.drivers.erase(iterator); |
| 81 | ledger.unlock(); |
| 82 | |
| 83 | return ERROR_NONE; |
| 84 | } |
| 85 | |
| 86 | error_t driver_construct_add(struct Driver* driver) { |
| 87 | if (driver_construct(driver) != ERROR_NONE) return ERROR_RESOURCE; |
no test coverage detected