Changes in uspace/drv/bus/usb/ehci/hc.h [5a6cc679:b7fd2a0] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ehci/hc.h
r5a6cc679 rb7fd2a0 55 55 /** Main EHCI driver structure */ 56 56 typedef struct hc { 57 /* Common device header */58 hc_device_t base;59 60 57 /** Memory mapped CAPS register area */ 61 58 ehci_caps_regs_t *caps; … … 63 60 ehci_regs_t *registers; 64 61 65 /** Iso transfer list, backed by dma_buffer */ 66 link_pointer_t *periodic_list; 67 68 dma_buffer_t dma_buffer; 62 /** Iso transfer list */ 63 link_pointer_t *periodic_list_base; 69 64 70 65 /** CONTROL and BULK schedules */ … … 75 70 76 71 /** List of active transfers */ 77 list_t pending_ endpoints;72 list_t pending_batches; 78 73 79 74 /** Guards schedule and endpoint manipulation */ … … 85 80 /** USB hub emulation structure */ 86 81 ehci_rh_t rh; 87 88 /** USB bookkeeping */89 ehci_bus_t bus;90 82 } hc_t; 91 83 92 static inline hc_t *hcd_to_hc(hc_device_t *hcd) 93 { 94 assert(hcd); 95 return (hc_t *) hcd; 96 } 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); 97 86 98 void hc_enqueue_endpoint(hc_t * , const endpoint_t *);99 void hc_dequeue_endpoint(hc_t * , const endpoint_t *);87 void hc_enqueue_endpoint(hc_t *instance, const endpoint_t *ep); 88 void hc_dequeue_endpoint(hc_t *instance, const endpoint_t *ep); 100 89 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 *); 90 errno_t ehci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res, int *irq); 107 91 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 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); 113 95 #endif 114 96 /**
Note:
See TracChangeset
for help on using the changeset viewer.