linux/drivers/usb/gadget/function/f_mass_storage.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef USB_F_MASS_STORAGE_H
#define USB_F_MASS_STORAGE_H

#include <linux/usb/composite.h>
#include "storage_common.h"

struct fsg_module_parameters {};

#define _FSG_MODULE_PARAM_ARRAY(prefix, params, name, type, desc)

#define _FSG_MODULE_PARAM(prefix, params, name, type, desc)

#define __FSG_MODULE_PARAMETERS(prefix, params)

#ifdef CONFIG_USB_GADGET_DEBUG_FILES

#define FSG_MODULE_PARAMETERS(prefix, params)
#else

#define FSG_MODULE_PARAMETERS

#endif

struct fsg_common;

/* FSF callback functions */
struct fsg_lun_opts {};

struct fsg_opts {};

struct fsg_lun_config {};

struct fsg_config {};

static inline struct fsg_opts *
fsg_opts_from_func_inst(const struct usb_function_instance *fi)
{}

void fsg_common_set_sysfs(struct fsg_common *common, bool sysfs);

int fsg_common_set_num_buffers(struct fsg_common *common, unsigned int n);

void fsg_common_free_buffers(struct fsg_common *common);

int fsg_common_set_cdev(struct fsg_common *common,
			struct usb_composite_dev *cdev, bool can_stall);

void fsg_common_remove_lun(struct fsg_lun *lun);

void fsg_common_remove_luns(struct fsg_common *common);

int fsg_common_create_lun(struct fsg_common *common, struct fsg_lun_config *cfg,
			  unsigned int id, const char *name,
			  const char **name_pfx);

int fsg_common_create_luns(struct fsg_common *common, struct fsg_config *cfg);

void fsg_common_set_inquiry_string(struct fsg_common *common, const char *vn,
				   const char *pn);

void fsg_config_from_params(struct fsg_config *cfg,
			    const struct fsg_module_parameters *params,
			    unsigned int fsg_num_buffers);

#endif /* USB_F_MASS_STORAGE_H */