1#ifndef __IOFORGE__IOFORGE_USB_HPP_
2#define __IOFORGE__IOFORGE_USB_HPP_
14 template <
typename Fn>
22 (*
reinterpret_cast<Fn*
>(ctx))(dev);
24 reinterpret_cast<void*
>(&fn));
36 IOUtils::memset(resp, 0, 64);
46 sizeof(*setup), (
uint32_t)resp_paddr,
51 IOUtils::DMAFree((
void*)setup_addr, (
void*)setup,
53 IOUtils::DMAFree((
void*)resp_paddr, (
void*)resp, 64);
75 IOUtils::DMAFree((
void*)setup_addr, (
void*)setup,
static void foreach_usb_device_by_devclass(struct ioforge_device *node, uint16_t devclass, Fn &&fn)
static uint8_t get_configuration(struct ioforge_usb_device *dev)
static void set_configuration(struct ioforge_usb_device *dev, uint8_t val)
IoForgeUSB(const char *mod)
void ioforge_find_usb_device_by_devclass(struct ioforge_device *node, uint16_t devclass, ioforge_usb_visitor_fn callback, void *ctx)
void(* send)(uint32_t addr, uint8_t endpoint, uint32_t data_phys, size_t request_size, uint32_t response_phys, size_t response_size)
struct UsbControllerOp ops
struct ioforge_usb_controller_service * controller