38 log(
mod,
"EHCI setup done");
44 auto curr_vector = IOUtils::isr_get_vector(
device->interrupt_line);
46 device->interrupt_line, curr_vector);
48 if (
device->interrupt_line) {
66 uint32_t data_phys,
size_t request_size,
68 size_t response_size) {
69 instance.send_async_with_response(
addr, endpoint, data_phys,
70 request_size, response_phys,
88 instance.set_controller(usb_controller);
static AHCIModule instance
ioforge_pci_device * device
static void fireHandler()
ioforge_usb_controller_service * controller
static EHCIModule * getInstance()
static void * alloc(size_t size)
static void strcopy(char *dst, char *src)
struct ioforge_pci_device * findDevice(uint16_t vendor_id, uint16_t device_id)
IOforgePCI(const char *mod)
void send_async_c_wrapper(uint32_t addr, uint8_t endpoint, uint32_t data_phys, size_t request_size, uint32_t response_phys, size_t response_size)
#define EHCI_1_MICRO_FRAME
uint32_t isr_irq_register(uint8_t irq, void *handler)
void ioforge_attach(struct ioforge_device *parent, struct ioforge_device *child)
void serial2_printf(const char *fmt,...)
#define log(mod, fmt,...)
#define IoForgeModuleConstructor(Class)
struct ioforge_device * ioforge_get_usb_ctrl_root()
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_device service