Changes in uspace/drv/bus/usb/ehci/hc.h [b7fd2a0:5a6cc679] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/hc.h
rb7fd2a0 r5a6cc679 55 55 /** Main EHCI driver structure */ 56 56 typedef struct hc { 57 /* Common device header */ 58 hc_device_t base; 59 57 60 /** Memory mapped CAPS register area */ 58 61 ehci_caps_regs_t *caps; … … 60 63 ehci_regs_t *registers; 61 64 62 /** Iso transfer list */ 63 link_pointer_t *periodic_list_base; 65 /** Iso transfer list, backed by dma_buffer */ 66 link_pointer_t *periodic_list; 67 68 dma_buffer_t dma_buffer; 64 69 65 70 /** CONTROL and BULK schedules */ … … 70 75 71 76 /** List of active transfers */ 72 list_t pending_ batches;77 list_t pending_endpoints; 73 78 74 79 /** Guards schedule and endpoint manipulation */ … … 80 85 /** USB hub emulation structure */ 81 86 ehci_rh_t rh; 87 88 /** USB bookkeeping */ 89 ehci_bus_t bus; 82 90 } hc_t; 83 91 84 errno_t hc_init(hc_t *instance, const hw_res_list_parsed_t *hw_res, bool interrupts); 85 void hc_fini(hc_t *instance); 92 static inline hc_t *hcd_to_hc(hc_device_t *hcd) 93 { 94 assert(hcd); 95 return (hc_t *) hcd; 96 } 86 97 87 void hc_enqueue_endpoint(hc_t * instance, const endpoint_t *ep);88 void hc_dequeue_endpoint(hc_t * instance, const endpoint_t *ep);98 void hc_enqueue_endpoint(hc_t *, const endpoint_t *); 99 void hc_dequeue_endpoint(hc_t *, const endpoint_t *); 89 100 90 errno_t ehci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res, int *irq); 101 /* Boottime operations */ 102 extern errno_t hc_add(hc_device_t *, const hw_res_list_parsed_t *); 103 extern errno_t hc_start(hc_device_t *); 104 extern errno_t hc_setup_roothub(hc_device_t *); 105 extern errno_t hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *, int *); 106 extern errno_t hc_gone(hc_device_t *); 91 107 92 void ehci_hc_interrupt(hcd_t *hcd, uint32_t status); 93 errno_t ehci_hc_status(hcd_t *hcd, uint32_t *status); 94 errno_t ehci_hc_schedule(hcd_t *hcd, usb_transfer_batch_t *batch); 108 /** Runtime operations */ 109 extern void ehci_hc_interrupt(bus_t *, uint32_t); 110 extern errno_t ehci_hc_status(bus_t *, uint32_t *); 111 extern errno_t ehci_hc_schedule(usb_transfer_batch_t *); 112 95 113 #endif 96 114 /**
Note:
See TracChangeset
for help on using the changeset viewer.