02585eb3b5
Extend the ums command to accept a list of block devices. Each of these will be exported as a separate LUN. An example use-case would be: ums 0 mmc 0,0.1,0.2 ... which would export LUNs for eMMC 0's user data, boot0, and boot1 HW partitions. This is useful since it allows the host access to everything on the eMMC without having to somehow stop the ums command from executing and restart it with different parameters. Signed-off-by: Stephen Warren <swarren@nvidia.com> Reviewed-by: Tom Rini <trini@konsulko.com>
34 lines
850 B
C
34 lines
850 B
C
/*
|
|
* Copyright (C) 2011 Samsung Electrnoics
|
|
* Lukasz Majewski <l.majewski@samsung.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0+
|
|
*/
|
|
|
|
#ifndef __USB_MASS_STORAGE_H__
|
|
#define __USB_MASS_STORAGE_H__
|
|
|
|
#define SECTOR_SIZE 0x200
|
|
#include <part.h>
|
|
#include <linux/usb/composite.h>
|
|
|
|
/* Wait at maximum 60 seconds for cable connection */
|
|
#define UMS_CABLE_READY_TIMEOUT 60
|
|
|
|
struct ums {
|
|
int (*read_sector)(struct ums *ums_dev,
|
|
ulong start, lbaint_t blkcnt, void *buf);
|
|
int (*write_sector)(struct ums *ums_dev,
|
|
ulong start, lbaint_t blkcnt, const void *buf);
|
|
unsigned int start_sector;
|
|
unsigned int num_sectors;
|
|
const char *name;
|
|
block_dev_desc_t block_dev;
|
|
};
|
|
|
|
int fsg_init(struct ums *ums_devs, int count);
|
|
void fsg_cleanup(void);
|
|
int fsg_main_thread(void *);
|
|
int fsg_add(struct usb_configuration *c);
|
|
#endif /* __USB_MASS_STORAGE_H__ */
|