/* * This header declares the utility functions used by "Gadget Zero", plus * interfaces to its two single-configuration function drivers. */ #ifndef __G_ZERO_H #define __G_ZERO_H #define GZERO_BULK_BUFLEN 4096 #define GZERO_QLEN 32 #define GZERO_ISOC_INTERVAL 4 #define GZERO_ISOC_MAXPACKET 1024 struct usb_zero_options { unsigned pattern; unsigned isoc_interval; unsigned isoc_maxpacket; unsigned isoc_mult; unsigned isoc_maxburst; unsigned bulk_buflen; unsigned qlen; }; struct f_ss_opts { struct usb_function_instance func_inst; unsigned pattern; unsigned isoc_interval; unsigned isoc_maxpacket; unsigned isoc_mult; unsigned isoc_maxburst; unsigned bulk_buflen; /* * Read/write access to configfs attributes is handled by configfs. * * This is to protect the data from concurrent access by read/write * and create symlink/remove symlink. */ struct mutex lock; int refcnt; }; struct f_lb_opts { struct usb_function_instance func_inst; unsigned bulk_buflen; unsigned qlen; /* * Read/write access to configfs attributes is handled by configfs. * * This is to protect the data from concurrent access by read/write * and create symlink/remove symlink. */ struct mutex lock; int refcnt; }; void lb_modexit(void); int lb_modinit(void); /* common utilities */ void disable_endpoints(struct usb_composite_dev *cdev, struct usb_ep *in, struct usb_ep *out, struct usb_ep *iso_in, struct usb_ep *iso_out); #endif /* __G_ZERO_H */