#ifndef U_FFS_H
#define U_FFS_H
#include <linux/usb/composite.h>
#include <linux/list.h>
#include <linux/mutex.h>
#include <linux/workqueue.h>
#include <linux/refcount.h>
#ifdef VERBOSE_DEBUG
#ifndef pr_vdebug
#define pr_vdebug …
#endif
#define ffs_dump_mem(prefix, ptr, len) …
#else
#ifndef pr_vdebug
#define pr_vdebug …
#endif
#define ffs_dump_mem …
#endif
struct f_fs_opts;
struct ffs_dev { … };
extern struct mutex ffs_lock;
static inline void ffs_dev_lock(void)
{ … }
static inline void ffs_dev_unlock(void)
{ … }
int ffs_name_dev(struct ffs_dev *dev, const char *name);
int ffs_single_dev(struct ffs_dev *dev);
struct ffs_epfile;
struct ffs_function;
enum ffs_state { … };
enum ffs_setup_state { … };
struct ffs_data { … };
struct f_fs_opts { … };
static inline struct f_fs_opts *to_f_fs_opts(struct usb_function_instance *fi)
{ … }
#endif