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