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);
26 if (rc != FR_OK)
break;
33 FRESULT result = FR_OK;
34 for (
int j = 0; j < io_vector.size(); j++) {
35 auto rc = io_vector[j]->un_mount(fs);
36 if (rc != FR_OK) result = rc;
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,
54 UINT count)
override {
55 if (pdrv >= io_vector.size())
return RES_NOTRDY;
56 return io_vector[pdrv]->disk_write(0, buff, sector, count);
58 DRESULT disk_ioctl(BYTE pdrv, ioctl_cmd_t cmd,
void* buff)
override {
59 if (pdrv >= io_vector.size())
return RES_NOTRDY;
60 return io_vector[pdrv]->disk_ioctl(0, cmd, buff);
64 std::vector<IO*> io_vector;