Changes in uspace/drv/bus/usb/ohci/hc.h [58563585:b5111c46] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ohci/hc.h
r58563585 rb5111c46 26 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 27 */ 28 29 28 /** @addtogroup drvusbohci 30 29 * @{ … … 33 32 * @brief OHCI host controller driver structure 34 33 */ 35 36 34 #ifndef DRV_OHCI_HC_H 37 35 #define DRV_OHCI_HC_H 38 36 37 #include <ddf/driver.h> 38 #include <ddf/interrupt.h> 39 #include <fibril.h> 40 #include <fibril_synch.h> 39 41 #include <adt/list.h> 40 42 #include <ddi.h> 41 #include <ddf/driver.h>42 #include <device/hw_res_parsed.h>43 #include <fibril.h>44 #include <fibril_synch.h>45 #include <stdbool.h>46 #include <sys/types.h>47 43 44 #include <usb/usb.h> 48 45 #include <usb/host/hcd.h> 49 #include <usb/host/endpoint.h>50 #include <usb/host/usb_transfer_batch.h>51 46 47 #include "ohci_batch.h" 52 48 #include "ohci_regs.h" 53 #include " ohci_rh.h"49 #include "root_hub.h" 54 50 #include "endpoint_list.h" 55 51 #include "hw_struct/hcca.h" … … 57 53 /** Main OHCI driver structure */ 58 54 typedef struct hc { 55 /** Generic USB hc driver */ 56 hcd_t *generic; 57 59 58 /** Memory mapped I/O registers area */ 60 59 ohci_regs_t *registers; … … 73 72 fibril_mutex_t guard; 74 73 75 /** interrupts available */76 bool hw_interrupts;77 78 74 /** USB hub emulation structure */ 79 ohci_rh_t rh;75 rh_t rh; 80 76 } hc_t; 81 77 82 extern int hc_init(hc_t *, const hw_res_list_parsed_t *, bool); 83 extern void hc_fini(hc_t *); 78 int hc_get_irq_code(irq_pio_range_t [], size_t, irq_cmd_t [], size_t, 79 addr_range_t *); 80 int hc_register_irq_handler(ddf_dev_t *, addr_range_t *, int, 81 interrupt_handler_t); 82 int hc_register_hub(hc_t *, ddf_fun_t *); 83 int hc_init(hc_t *, ddf_fun_t *, addr_range_t *, bool); 84 84 85 extern void hc_enqueue_endpoint(hc_t *, const endpoint_t *); 86 extern void hc_dequeue_endpoint(hc_t *, const endpoint_t *); 85 /** Safely dispose host controller internal structures 86 * 87 * @param[in] instance Host controller structure to use. 88 */ 89 static inline void hc_fini(hc_t *instance) { /* TODO: implement*/ }; 87 90 88 int ohci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res); 91 void hc_enqueue_endpoint(hc_t *instance, const endpoint_t *ep); 92 void hc_dequeue_endpoint(hc_t *instance, const endpoint_t *ep); 89 93 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 *); 93 94 void hc_interrupt(hc_t *instance, uint32_t status); 94 95 #endif 95 96 96 /** 97 97 * @}
Note:
See TracChangeset
for help on using the changeset viewer.