Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/ohci/hc.h

    r58563585 rb5111c46  
    2626 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    2727 */
    28 
    2928/** @addtogroup drvusbohci
    3029 * @{
     
    3332 * @brief OHCI host controller driver structure
    3433 */
    35 
    3634#ifndef DRV_OHCI_HC_H
    3735#define DRV_OHCI_HC_H
    3836
     37#include <ddf/driver.h>
     38#include <ddf/interrupt.h>
     39#include <fibril.h>
     40#include <fibril_synch.h>
    3941#include <adt/list.h>
    4042#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>
    4743
     44#include <usb/usb.h>
    4845#include <usb/host/hcd.h>
    49 #include <usb/host/endpoint.h>
    50 #include <usb/host/usb_transfer_batch.h>
    5146
     47#include "ohci_batch.h"
    5248#include "ohci_regs.h"
    53 #include "ohci_rh.h"
     49#include "root_hub.h"
    5450#include "endpoint_list.h"
    5551#include "hw_struct/hcca.h"
     
    5753/** Main OHCI driver structure */
    5854typedef struct hc {
     55        /** Generic USB hc driver */
     56        hcd_t *generic;
     57
    5958        /** Memory mapped I/O registers area */
    6059        ohci_regs_t *registers;
     
    7372        fibril_mutex_t guard;
    7473
    75         /** interrupts available */
    76         bool hw_interrupts;
    77 
    7874        /** USB hub emulation structure */
    79         ohci_rh_t rh;
     75        rh_t rh;
    8076} hc_t;
    8177
    82 extern int hc_init(hc_t *, const hw_res_list_parsed_t *, bool);
    83 extern void hc_fini(hc_t *);
     78int hc_get_irq_code(irq_pio_range_t [], size_t, irq_cmd_t [], size_t,
     79    addr_range_t *);
     80int hc_register_irq_handler(ddf_dev_t *, addr_range_t *, int,
     81    interrupt_handler_t);
     82int hc_register_hub(hc_t *, ddf_fun_t *);
     83int hc_init(hc_t *, ddf_fun_t *, addr_range_t *, bool);
    8484
    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 */
     89static inline void hc_fini(hc_t *instance) { /* TODO: implement*/ };
    8790
    88 int ohci_hc_gen_irq_code(irq_code_t *code, const hw_res_list_parsed_t *hw_res);
     91void hc_enqueue_endpoint(hc_t *instance, const endpoint_t *ep);
     92void hc_dequeue_endpoint(hc_t *instance, const endpoint_t *ep);
    8993
    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 
     94void hc_interrupt(hc_t *instance, uint32_t status);
    9495#endif
    95 
    9696/**
    9797 * @}
Note: See TracChangeset for help on using the changeset viewer.