- DRESULT res;
- int result;
-
- switch (drv) {
- case ATA :
- result = ATA_disk_write(buff, sector, count);
- // translate the reslut code here
-
- return res;
-
- case MMC :
- result = MMC_disk_write(buff, sector, count);
- // translate the reslut code here
-
- return res;
-
- case USB :
- result = USB_disk_write(buff, sector, count);
- // translate the reslut code here
-
- return res;
+ KBlock *dev = devs[drv];
+ ASSERT(dev);
+
+ while (count--)
+ {
+ if (kblock_write(dev, sector++, buff, 0, dev->blk_size) != dev->blk_size)
+ return RES_ERROR;
+ buff += dev->blk_size;