Changeset 26e7d6d in mainline for uspace/drv/bus/usb/ohci/hc.h
- Timestamp:
- 2011-09-19T16:31:00Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a347a11
- Parents:
- 3842a955 (diff), 086290d (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/ohci/hc.h
r3842a955 r26e7d6d 41 41 42 42 #include <usb/usb.h> 43 #include <usb/host/device_keeper.h> 44 #include <usb/host/usb_endpoint_manager.h> 45 #include <usbhc_iface.h> 43 #include <usb/host/hcd.h> 46 44 47 #include " batch.h"45 #include "ohci_batch.h" 48 46 #include "ohci_regs.h" 49 47 #include "root_hub.h" … … 51 49 #include "hw_struct/hcca.h" 52 50 53 #define OHCI_NEEDED_IRQ_COMMANDS 5 54 55 /** Main OHCI drier structure */ 51 /** Main OHCI driver structure */ 56 52 typedef struct hc { 57 /** USB bus driver, devices and addresses */ 58 usb_device_keeper_t manager; 59 /** USB bus driver, endpoints */ 60 usb_endpoint_manager_t ep_manager; 53 /** Generic USB hc driver */ 54 hcd_t generic; 61 55 62 56 /** Memory mapped I/O registers area */ … … 76 70 fibril_mutex_t guard; 77 71 78 /** Code to be executed in kernel interrupt handler */79 irq_code_t interrupt_code;80 81 /** Commands that form interrupt code */82 irq_cmd_t interrupt_commands[OHCI_NEEDED_IRQ_COMMANDS];83 84 72 /** USB hub emulation structure */ 85 73 rh_t rh; 86 74 } hc_t; 87 75 76 size_t hc_irq_cmd_count(void); 77 int hc_get_irq_commands( 78 irq_cmd_t cmds[], size_t cmd_size, uintptr_t regs, size_t reg_size); 88 79 int hc_register_hub(hc_t *instance, ddf_fun_t *hub_fun); 89 80 int hc_init(hc_t *instance, uintptr_t regs, size_t reg_size, bool interrupts); 90 void hc_start_hw(hc_t *instance);91 81 92 82 /** Safely dispose host controller internal structures … … 94 84 * @param[in] instance Host controller structure to use. 95 85 */ 96 static inline void hc_fini(hc_t *instance) 97 { /* TODO: implement*/ }; 86 static inline void hc_fini(hc_t *instance) { /* TODO: implement*/ }; 98 87 99 int hc_add_endpoint(hc_t *instance, usb_address_t address, usb_endpoint_t ep, 100 usb_speed_t speed, usb_transfer_type_t type, usb_direction_t direction, 101 size_t max_packet_size, size_t size, unsigned interval); 102 int hc_remove_endpoint(hc_t *instance, usb_address_t address, 103 usb_endpoint_t endpoint, usb_direction_t direction); 104 endpoint_t * hc_get_endpoint(hc_t *instance, usb_address_t address, 105 usb_endpoint_t endpoint, usb_direction_t direction, size_t *bw); 88 void hc_enqueue_endpoint(hc_t *instance, endpoint_t *ep); 89 void hc_dequeue_endpoint(hc_t *instance, endpoint_t *ep); 106 90 107 int hc_schedule(hc_t *instance, usb_transfer_batch_t *batch);108 91 void hc_interrupt(hc_t *instance, uint32_t status); 109 110 /** Get and cast pointer to the driver data111 *112 * @param[in] fun DDF function pointer113 * @return cast pointer to driver_data114 */115 static inline hc_t * fun_to_hc(ddf_fun_t *fun)116 { return fun->driver_data; }117 92 #endif 118 93 /**
Note:
See TracChangeset
for help on using the changeset viewer.