Распечатка 5.8 Структуры данных драйвера периферийного USB устройства |
Предыдущая Содержание Следующая |
Распечатка 5.8.
struct usb_gadget_driver {
/* Строка, описывающая функции периферийного устройства */ char *function;
/* * Самая высокая скорость, которую поддерживает драйвер. * (Одна из USB_SPEED_HIGH, USB_SPEED_FULL, USB_SPEED_LOW) */ enum usb_device_speed speed;
/* * Функция подключения устройства, вызываемая из драйвера * периферийного устройства во время регистрации */ int (*bind)(struct usb_gadget *);
/* * setup вызывается для обработки запросов управления ep0, * которые не обрабатываются драйвером контроллера */ int (*setup)(struct usb_gadget *, const struct usb_ctrlrequest *);
/* Этого вызов вызывает отключение устройства от хоста */ void (*disconnect)(struct usb_gadget *);
/* Вызывается после отключения устройства */ void (*unbind)(struct usb_gadget *);
/* Вызывает приостановку работы USB устройства */ void (*suspend)(struct usb_gadget *);
/* Вызывает возобновление работы USB устройства */ void (*resume)(struct usb_gadget *); }
struct usb_ep_ops {
/* Включение или Выключение оконечной точки */ int (*enable) (struct usb_ep *ep, const struct usb_endpoint_descriptor *desc); int (*disable) (struct usb_ep *ep);
/* Процедуры выделения и освобождения памяти для URB */ struct usb_request * (*alloc_request) (struct usb_ep *ep, int gfp_flags); void (*free_request) (struct usb_ep *ep, struct usb_request *req); void *(*alloc_buffer)(struct usb_ep *ep, unsigned bytes, dma_addr_t *dma, int gfp_flags); void (*free_buffer) (struct usb_ep *ep, void *buf, dma_addr_t dma, unsigned bytes);
/* Функции управления очередью оконечной точки */ int (*queue) (struct usb_ep *ep, struct usb_request *req, int gfp_flags); int (*dequeue) (struct usb_ep *ep, struct usb_request *req); int (*set_halt) (struct usb_ep *ep, int value); int (*fifo_status) (struct usb_ep *ep); void (*fifo_flush) (struct usb_ep *ep); };
|
Предыдущая Содержание Следующая |