Changes in uspace/drv/bus/usb/ohci/hc.h [68e5406:129b821f] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ohci/hc.h
r68e5406 r129b821f 52 52 #include "ohci_regs.h" 53 53 #include "ohci_rh.h" 54 #include "ohci_bus.h" 54 55 #include "endpoint_list.h" 55 56 #include "hw_struct/hcca.h" … … 57 58 /** Main OHCI driver structure */ 58 59 typedef struct hc { 60 /** Common hcd header */ 61 hc_device_t base; 62 59 63 /** Memory mapped I/O registers area */ 60 64 ohci_regs_t *registers; 65 61 66 /** Host controller communication area structure */ 62 67 hcca_t *hcca; … … 64 69 /** Transfer schedules */ 65 70 endpoint_list_t lists[4]; 66 /** List of active transfers */67 list_t pending_batches;68 71 69 /** Fibril for periodic checks if interrupts can't be used*/70 fid_t interrupt_emulator;72 /** List of active endpoints */ 73 list_t pending_endpoints; 71 74 72 75 /** Guards schedule and endpoint manipulation */ 73 76 fibril_mutex_t guard; 74 77 75 /** interrupts available */76 bool hw_interrupts;77 78 78 /** USB hub emulation structure */ 79 79 ohci_rh_t rh; 80 81 /** USB bookkeeping */ 82 ohci_bus_t bus; 80 83 } hc_t; 81 84 82 extern int hc_init(hc_t *, const hw_res_list_parsed_t *, bool); 83 extern void hc_fini(hc_t *); 85 static inline hc_t * hcd_to_hc(hc_device_t *hcd) 86 { 87 assert(hcd); 88 return (hc_t *) hcd; 89 } 90 91 extern int hc_add(hc_device_t *, const hw_res_list_parsed_t *); 92 extern int hc_gen_irq_code(irq_code_t *, hc_device_t *, const hw_res_list_parsed_t *); 93 extern int hc_gain_control(hc_device_t *); 94 extern int hc_start(hc_device_t *); 95 extern int hc_setup_roothub(hc_device_t *); 96 extern int hc_gone(hc_device_t *); 84 97 85 98 extern void hc_enqueue_endpoint(hc_t *, const endpoint_t *); 86 99 extern void hc_dequeue_endpoint(hc_t *, const endpoint_t *); 87 100 88 int ohci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res, int *irq); 89 90 extern void ohci_hc_interrupt(hcd_t *, uint32_t); 91 extern int ohci_hc_status(hcd_t *, uint32_t *); 92 extern int ohci_hc_schedule(hcd_t *, usb_transfer_batch_t *); 101 extern int ohci_hc_schedule(usb_transfer_batch_t *); 102 extern int ohci_hc_status(bus_t *, uint32_t *); 103 extern void ohci_hc_interrupt(bus_t *, uint32_t); 93 104 94 105 #endif
Note:
See TracChangeset
for help on using the changeset viewer.