2 diskio.c -- glue interface to ElmChan FAT FS driver. Part of the
5 Copyright (C) 2008, 2009 Haxx Enterprises <bushing@gmail.com>
6 Copyright (C) 2008, 2009 Sven Peter <svenpeter@gmail.com>
8 # This code is licensed to you under the terms of the GNU GPL, version 2;
9 # see file COPYING or http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
12 #include "bootmii_ppc.h"
18 static u8 *buffer[512] __attribute__((aligned(32)));
20 DSTATUS disk_initialize (BYTE drv)
24 int state = sd_get_state();
41 DSTATUS disk_status (BYTE drv)
45 int state = sd_get_state();
59 DRESULT disk_read (BYTE drv, BYTE *buff, DWORD sector, u32 count)
65 if (count > 1 && ((u32) buff % 64) == 0) {
66 if (sd_read(sector, count, buff) != 0)
72 for (i = 0; i < count; i++) {
73 if (sd_read(sector + i, 1, buffer) != 0) {
78 memcpy(buff + i * 512, buffer, 512);
85 DRESULT disk_write (BYTE drv, const BYTE *buff, DWORD sector, u32 count)
92 if (count > 1 && ((u32) buff % 64) == 0) {
93 if (sd_write(sector, count, buff) != 0)
98 for (i = 0; i < count; i++) {
99 memcpy(buffer, buff + i * 512, 512);
100 if (sd_write(sector + i, 1, buffer) != 0) {
108 #endif /* _READONLY */
110 DRESULT disk_ioctl (BYTE drv, BYTE ctrl, void *buff)
113 u32 *buff_u32 = (u32 *) buff;
114 DRESULT res = RES_OK;
119 case GET_SECTOR_COUNT:
120 *buff_u32 = sd_getsize();
122 case GET_SECTOR_SIZE:
136 DWORD get_fattime(void)