static int FSDrvDirReset(struct _reent* r, DIR_ITER* dirState) { FSDirHandle* handle = (FSDirHandle*) dirState->dirStruct; FSStatus err = FSRewindDir(fsClient, fsCmdBlock, *handle, FS_RET_ALL_ERROR); if(err != FS_STATUS_OK) { FSDrvReportError(r); return -1; } return 0; }
static int sd_fat_dirreset_r (struct _reent *r, DIR_ITER *dirState) { sd_fat_dir_entry_t *dirIter = (sd_fat_dir_entry_t *)dirState->dirStruct; if(!dirIter->dev) { r->_errno = ENODEV; return -1; } OSLockMutex(dirIter->dev->pMutex); int result = FSRewindDir(dirIter->dev->pClient, dirIter->dev->pCmd, dirIter->dirHandle, -1); OSUnlockMutex(dirIter->dev->pMutex); if(result < 0) { r->_errno = result; return -1; } return 0; }