co_usb
Loading...
Searching...
No Matches
kernel_driver_guard.hpp
Go to the documentation of this file.
1#pragma once
2
3#include "co_usb/raii.hpp"
4#include <boost/capy/io_result.hpp>
5#include <libusb-1.0/libusb.h>
6#include <memory>
7
8namespace co_usb
9{
10
18{
19 static boost::capy::io_result<kernel_driver_guard> detach(libusb_device_handle *devh,
20 int iface_num) noexcept;
21
22 static boost::capy::io_result<kernel_driver_guard> detach(unique_dev_handle &devh,
23 int iface_num) noexcept;
24
25 libusb_device_handle *dev() const noexcept;
26 int number() const noexcept;
27
32
33 private:
35
37 int m_iface_num;
38};
39
40} // namespace co_usb
Definition context.hpp:14
std::unique_ptr< libusb_device_handle, dev_handle_deleter_t > unique_dev_handle
Definition raii.hpp:19
use_service
Definition context.hpp:17
Definition error.hpp:88
Refcounted RAII guard for managing detachment of a kernel driver for an interface of a device.
Definition kernel_driver_guard.hpp:18
libusb_device_handle * dev() const noexcept
Definition kernel_driver_guard.cpp:32
static boost::capy::io_result< kernel_driver_guard > detach(libusb_device_handle *devh, int iface_num) noexcept
Definition kernel_driver_guard.cpp:13
int number() const noexcept
Definition kernel_driver_guard.cpp:37
void release() noexcept
Releases kernel guard and reattaches the driver.