fatfs: add vfs support

This commit is contained in:
Ivan Grokhotkov
2017-01-09 05:54:04 +08:00
parent d418776982
commit 44ce833d76
12 changed files with 1408 additions and 62 deletions

View File

@@ -21,22 +21,8 @@ int ff_cre_syncobj ( /* 1:Function succeeded, 0:Could not create the sync object
_SYNC_t *sobj /* Pointer to return the created sync object */
)
{
int ret;
*sobj = CreateMutex(NULL, FALSE, NULL); /* Win32 */
ret = (int)(*sobj != INVALID_HANDLE_VALUE);
// *sobj = SyncObjects[vol]; /* uITRON (give a static sync object) */
// ret = 1; /* The initial value of the semaphore must be 1. */
// *sobj = OSMutexCreate(0, &err); /* uC/OS-II */
// ret = (int)(err == OS_NO_ERR);
// *sobj = xSemaphoreCreateMutex(); /* FreeRTOS */
// ret = (int)(*sobj != NULL);
return ret;
*sobj = xSemaphoreCreateMutex();
return (*sobj != NULL) ? 1 : 0;
}
@@ -53,20 +39,8 @@ int ff_del_syncobj ( /* 1:Function succeeded, 0:Could not delete due to any erro
_SYNC_t sobj /* Sync object tied to the logical drive to be deleted */
)
{
int ret;
ret = CloseHandle(sobj); /* Win32 */
// ret = 1; /* uITRON (nothing to do) */
// OSMutexDel(sobj, OS_DEL_ALWAYS, &err); /* uC/OS-II */
// ret = (int)(err == OS_NO_ERR);
// vSemaphoreDelete(sobj); /* FreeRTOS */
// ret = 1;
return ret;
vSemaphoreDelete(sobj);
return 1;
}
@@ -82,18 +56,7 @@ int ff_req_grant ( /* 1:Got a grant to access the volume, 0:Could not get a gran
_SYNC_t sobj /* Sync object to wait */
)
{
int ret;
ret = (int)(WaitForSingleObject(sobj, _FS_TIMEOUT) == WAIT_OBJECT_0); /* Win32 */
// ret = (int)(wai_sem(sobj) == E_OK); /* uITRON */
// OSMutexPend(sobj, _FS_TIMEOUT, &err)); /* uC/OS-II */
// ret = (int)(err == OS_NO_ERR);
// ret = (int)(xSemaphoreTake(sobj, _FS_TIMEOUT) == pdTRUE); /* FreeRTOS */
return ret;
return (xSemaphoreTake(sobj, _FS_TIMEOUT) == pdTRUE) ? 1 : 0;
}
@@ -108,13 +71,7 @@ void ff_rel_grant (
_SYNC_t sobj /* Sync object to be signaled */
)
{
ReleaseMutex(sobj); /* Win32 */
// sig_sem(sobj); /* uITRON */
// OSMutexPost(sobj); /* uC/OS-II */
// xSemaphoreGive(sobj); /* FreeRTOS */
xSemaphoreGive(sobj);
}
#endif