diff --git a/bootloader/config/ini.c b/bootloader/config/ini.c index 36d2341..1388458 100644 --- a/bootloader/config/ini.c +++ b/bootloader/config/ini.c @@ -168,10 +168,10 @@ int ini_parse(link_t *dst, char *ini_path, bool is_dir) f_close(&fp); - } while (is_dir); + if (csec) + list_append(dst, &csec->link); - if (csec) - list_append(dst, &csec->link); + } while (is_dir); free(filename); free(filelist); diff --git a/bootloader/ianos/ianos.c b/bootloader/ianos/ianos.c index 4adb738..b39cae1 100644 --- a/bootloader/ianos/ianos.c +++ b/bootloader/ianos/ianos.c @@ -30,8 +30,6 @@ extern gfx_ctxt_t gfx_ctxt; extern gfx_con_t gfx_con; extern heap_t _heap; -extern sdmmc_t sd_sdmmc; -extern sdmmc_storage_t sd_storage; extern void *sd_file_read(char *path); extern bool sd_mount(); @@ -48,8 +46,6 @@ static void _ianos_call_ep(moduleEntrypoint_t entrypoint, void *moduleConfig) bdkParameters->memcpy = (memcpy_t)&memcpy; bdkParameters->memset = (memset_t)&memset; bdkParameters->sharedHeap = &_heap; - bdkParameters->sdSdmmc = &sd_sdmmc; - bdkParameters->sdStorage = &sd_storage; entrypoint(moduleConfig, bdkParameters); } diff --git a/bootloader/libs/fatfs/ff.c b/bootloader/libs/fatfs/ff.c index 210a965..352773e 100644 --- a/bootloader/libs/fatfs/ff.c +++ b/bootloader/libs/fatfs/ff.c @@ -4943,6 +4943,7 @@ FRESULT f_mkdir ( { FRESULT res; DIR dj; + FFOBJID sobj; FATFS *fs; BYTE *dir; DWORD dcl, pcl, tm; @@ -4960,8 +4961,8 @@ FRESULT f_mkdir ( res = FR_INVALID_NAME; } if (res == FR_NO_FILE) { /* Can create a new directory */ - dcl = create_chain(&dj.obj, 0); /* Allocate a cluster for the new directory table */ - dj.obj.objsize = (DWORD)fs->csize * SS(fs); + sobj.fs = fs; /* New object id to create a new chain */ + dcl = create_chain(&sobj, 0); /* Allocate a cluster for the new directory */ res = FR_OK; if (dcl == 0) res = FR_DENIED; /* No space to allocate a new cluster */ if (dcl == 1) res = FR_INT_ERR; @@ -4991,8 +4992,8 @@ FRESULT f_mkdir ( if (fs->fs_type == FS_EXFAT) { /* Initialize directory entry block */ st_dword(fs->dirbuf + XDIR_ModTime, tm); /* Created time */ st_dword(fs->dirbuf + XDIR_FstClus, dcl); /* Table start cluster */ - st_dword(fs->dirbuf + XDIR_FileSize, (DWORD)dj.obj.objsize); /* File size needs to be valid */ - st_dword(fs->dirbuf + XDIR_ValidFileSize, (DWORD)dj.obj.objsize); + st_dword(fs->dirbuf + XDIR_FileSize, (DWORD)fs->csize * SS(fs)); /* File size needs to be valid */ + st_dword(fs->dirbuf + XDIR_ValidFileSize, (DWORD)fs->csize * SS(fs)); fs->dirbuf[XDIR_GenFlags] = 3; /* Initialize the object flag */ fs->dirbuf[XDIR_Attr] = AM_DIR; /* Attribute */ res = store_xdir(&dj);