mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-07 20:00:13 +00:00
DM USB: extend the API for struct usb_devemu
For the purpose of USB port mapper, change struct usb_devemu to common interface between HCD layer and USB device layer. Besides, implements ue_init/ue_deinit/ue_info for port mapper. Change-Id: Id4b7345c7b321b9bdab58139c61169d9229cb6f8 Signed-off-by: Wu, Xiaoguang <xiaoguang.wu@intel.com> Reviewed-by: Shuo Liu <shuo.a.liu@intel.com> Reviewed-by: Yu Wang <yu1.wang@intel.com> Reviewed-by: Zhao Yakui <yakui.zhao@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
@@ -49,15 +49,17 @@ struct usb_devemu {
|
||||
int ue_usbspeed; /* usb device speed */
|
||||
|
||||
/* instance creation */
|
||||
void *(*ue_init)(struct usb_hci *hci, char *opt);
|
||||
void *(*ue_init)(void *pdata, char *opt);
|
||||
|
||||
/* handlers */
|
||||
int (*ue_request)(void *sc, struct usb_data_xfer *xfer);
|
||||
int (*ue_data)(void *sc, struct usb_data_xfer *xfer, int dir,
|
||||
int epctx);
|
||||
int (*ue_info)(void *sc, int type, void *value, int size);
|
||||
int (*ue_reset)(void *sc);
|
||||
int (*ue_remove)(void *sc);
|
||||
int (*ue_stop)(void *sc);
|
||||
void (*ue_deinit)(void *pdata);
|
||||
};
|
||||
#define USB_EMUL_SET(x) DATA_SET(usb_emu_set, x)
|
||||
|
||||
|
@@ -36,6 +36,15 @@
|
||||
#define USB_NUM_INTERFACE 16
|
||||
#define USB_NUM_ENDPOINT 15
|
||||
|
||||
enum {
|
||||
USB_INFO_VERSION,
|
||||
USB_INFO_SPEED,
|
||||
USB_INFO_BUS,
|
||||
USB_INFO_PORT,
|
||||
USB_INFO_VID,
|
||||
USB_INFO_PID
|
||||
};
|
||||
|
||||
struct usb_dev_ep {
|
||||
uint8_t pid;
|
||||
uint8_t type;
|
||||
@@ -48,6 +57,9 @@ struct usb_dev {
|
||||
int speed;
|
||||
int configuration;
|
||||
uint8_t port;
|
||||
uint8_t bus;
|
||||
uint8_t pid;
|
||||
uint16_t vid;
|
||||
|
||||
/* interface info */
|
||||
int if_num;
|
||||
@@ -91,5 +103,7 @@ struct usb_dev_sys_ctx_info {
|
||||
int usb_dev_sys_init(usb_dev_sys_cb conn_cb, usb_dev_sys_cb disconn_cb,
|
||||
usb_dev_sys_cb notify_cb, usb_dev_sys_cb intr_cb,
|
||||
void *hci_data, int log_level);
|
||||
|
||||
void *usb_dev_init(void *pdata, char *opt);
|
||||
void usb_dev_deinit(void *pdata);
|
||||
int usb_dev_info(void *pdata, int type, void *value, int size);
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user