19 void add(
IO& io) { io_vector.push_back(&io); }
24 for (
int j = 0; j < io_vector.size(); j++) {
25 rc = io_vector[j]->mount(fs);
34 for (
int j = 0; j < io_vector.size(); j++) {
35 rc = io_vector[j]->un_mount(fs);
41 DSTATUS disk_initialize(BYTE pdrv)
override {
42 if (pdrv >= io_vector.size())
return STA_NODISK;
43 return io_vector[pdrv]->disk_initialize(0);
45 DSTATUS disk_status(BYTE pdrv)
override {
46 if (pdrv >= io_vector.size())
return STA_NODISK;
47 return io_vector[pdrv]->disk_status(0);
49 DRESULT disk_read(BYTE pdrv, BYTE* buff, LBA_t sector, UINT count)
override {
50 if (pdrv >= io_vector.size())
return RES_NOTRDY;
51 return io_vector[pdrv]->disk_read(0, buff, sector, count);
53 DRESULT disk_write(BYTE pdrv,
const BYTE* buff, LBA_t sector, UINT count)
override {
54 if (pdrv >= io_vector.size())
return RES_NOTRDY;
55 return io_vector[pdrv]->disk_write(0, buff, sector, count);
57 DRESULT disk_ioctl(BYTE pdrv, ioctl_cmd_t cmd,
void* buff)
override {
58 if (pdrv >= io_vector.size())
return RES_NOTRDY;
59 return io_vector[pdrv]->disk_ioctl(0, cmd, buff);
63 std::vector<IO*> io_vector;
API for FatFS See http://elm-chan.org/fsw/ff/00index_e.html.
Definition: ff.h:34
FatFS interface definition.
Definition: IO.h:74
File system driver which supports multiple drives: Add the drivers by calling add() then call mount()...
Definition: MultiIO.h:15
FRESULT un_mount(FatFs &fs) override
unmount all drivers
Definition: MultiIO.h:32
FRESULT mount(FatFs &fs) override
mount all the added drivers
Definition: MultiIO.h:22