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