Fix mount code in fs_dev.c

This commit is contained in:
TuxSH 2018-05-06 13:03:45 +02:00
parent 8f5a5acb06
commit 306555e522
2 changed files with 6 additions and 16 deletions

View File

@ -94,11 +94,8 @@ int fsdev_mount_device(const char *name) {
if (!g_devices[i].setup) { if (!g_devices[i].setup) {
fsdev_fsdevice_t *device = &g_devices[i]; fsdev_fsdevice_t *device = &g_devices[i];
FRESULT rc; FRESULT rc;
char drname[40];
strcpy(drname, name);
strcat(drname, ":");
rc = f_mount(&device->fatfs, drname, 1); rc = f_mount(&device->fatfs, name, 1);
if (rc != FR_OK) { if (rc != FR_OK) {
return fsdev_convert_rc(NULL, rc); return fsdev_convert_rc(NULL, rc);
@ -130,7 +127,6 @@ int fsdev_set_default_device(const char *name) {
#else #else
int ret; int ret;
char drname[40];
int devid = FindDevice(name); int devid = FindDevice(name);
if (devid == -1) { if (devid == -1) {
@ -138,10 +134,7 @@ int fsdev_set_default_device(const char *name) {
return -1; return -1;
} }
strcpy(drname, name); ret = fsdev_convert_rc(NULL, f_chdrive(name));
strcat(drname, ":");
ret = fsdev_convert_rc(NULL, f_chdrive(drname));
if (ret == 0) { if (ret == 0) {
setDefaultDevice(devid); setDefaultDevice(devid);
@ -153,17 +146,14 @@ int fsdev_set_default_device(const char *name) {
int fsdev_unmount_device(const char *name) { int fsdev_unmount_device(const char *name) {
int ret; int ret;
char drname[40];
int devid = FindDevice(name); int devid = FindDevice(name);
if (devid == -1) { if (devid == -1) {
errno = ENOENT; errno = ENOENT;
return -1; return -1;
} }
strcpy(drname, name);
strcat(drname, ":");
ret = fsdev_convert_rc(NULL, f_unmount(drname)); ret = fsdev_convert_rc(NULL, f_unmount(name));
if (ret == 0) { if (ret == 0) {
fsdev_fsdevice_t *device = (fsdev_fsdevice_t *)(GetDeviceOpTab(name)->deviceData); fsdev_fsdevice_t *device = (fsdev_fsdevice_t *)(GetDeviceOpTab(name)->deviceData);

View File

@ -31,6 +31,9 @@ int main(int argc, void **argv) {
generic_panic(); generic_panic();
} }
/* Setup console/stdout. */
console_resume(args.lfb, args.console_row, args.console_col);
resume_sd_state((struct mmc *)args.sd_mmc); resume_sd_state((struct mmc *)args.sd_mmc);
fsdev_mount_all(); fsdev_mount_all();
fsdev_set_default_device("sdmc"); fsdev_set_default_device("sdmc");
@ -40,9 +43,6 @@ int main(int argc, void **argv) {
/* TODO: What other hardware init should we do here? */ /* TODO: What other hardware init should we do here? */
/* Setup console/stdout. */
console_resume(args.lfb, args.console_row, args.console_col);
printf(u8"Welcome to Atmosphère Fusée Stage 2!\n"); printf(u8"Welcome to Atmosphère Fusée Stage 2!\n");
printf("Stage 2 executing from: %s\n", (const char *)argv[STAGE2_ARGV_PROGRAM_PATH]); printf("Stage 2 executing from: %s\n", (const char *)argv[STAGE2_ARGV_PROGRAM_PATH]);