add littlefs code
This commit is contained in:
parent
ac46317e0f
commit
580ef55f7e
|
@ -48,27 +48,31 @@ FileOpInfo GetFsOpInfo(void)
|
|||
|
||||
LittleFsHandleStruct *GetFreeFd(int *fd)
|
||||
{
|
||||
pthread_mutex_lock(&g_FslocalMutex);
|
||||
for (int i = 0; i < LITTLE_FS_MAX_OPEN_FILES; i++) {
|
||||
if (g_handle[i].useFlag == 0) {
|
||||
*fd = i;
|
||||
g_handle[i].useFlag = 1;
|
||||
pthread_mutex_unlock(&g_FslocalMutex);
|
||||
return &(g_handle[i]);
|
||||
}
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&g_FslocalMutex);
|
||||
*fd = INVALID_FD;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
lfs_dir_t *GetFreeDir()
|
||||
{
|
||||
pthread_mutex_lock(&g_FslocalMutex);
|
||||
for (int i = 0; i < LFS_MAX_OPEN_DIRS; i++) {
|
||||
if (g_lfsDir[i].useFlag == 0) {
|
||||
g_lfsDir[i].useFlag = 1;
|
||||
pthread_mutex_unlock(&g_FslocalMutex);
|
||||
return &(g_lfsDir[i].dir);
|
||||
}
|
||||
}
|
||||
|
||||
pthread_mutex_unlock(&g_FslocalMutex);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -87,7 +91,7 @@ int InitMountInfo(const char *fileSystemType, const struct MountOps *fsMops)
|
|||
return VFS_ERROR;
|
||||
}
|
||||
|
||||
const struct fsmap_t *mount_findfs(const char*fileSystemtype)
|
||||
const struct fsmap_t *MountFindfs(const char*fileSystemtype)
|
||||
{
|
||||
struct fsmap_t *m = NULL;
|
||||
|
||||
|
@ -179,6 +183,7 @@ struct dirent *LfsReaddir(DIR * dir)
|
|||
|
||||
ret = lfs_dir_read(&g_lfs, (lfs_dir_t *)dir, &lfsInfo);
|
||||
if (ret == 0) {
|
||||
pthread_mutex_lock(&g_FslocalMutex);
|
||||
(void)memcpy_s(g_nameValue.d_name, sizeof(g_nameValue.d_name), lfsInfo.name, strlen(lfsInfo.name) + 1);
|
||||
if (lfsInfo.type == LFS_TYPE_DIR) {
|
||||
g_nameValue.d_type = DT_DIR;
|
||||
|
@ -187,6 +192,7 @@ struct dirent *LfsReaddir(DIR * dir)
|
|||
}
|
||||
|
||||
g_nameValue.d_reclen = lfsInfo.size;
|
||||
pthread_mutex_unlock(&g_FslocalMutex);
|
||||
|
||||
return &g_nameValue;
|
||||
}
|
||||
|
@ -254,7 +260,9 @@ int LfsClose(int fd)
|
|||
}
|
||||
|
||||
ret = lfs_file_close(&g_lfs, &(g_handle[fd].file));
|
||||
pthread_mutex_lock(&g_FslocalMutex);
|
||||
g_handle[fd].useFlag = 0;
|
||||
pthread_mutex_unlock(&g_FslocalMutex);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -127,6 +127,6 @@ int LfsStat(const char *path, struct stat *buf);
|
|||
int LfsFsync(int fd);
|
||||
|
||||
FileOpInfo GetFsOpInfo(void);
|
||||
const struct fsmap_t *mount_findfs(const char *filesystemtype);
|
||||
const struct fsmap_t *MountFindfs(const char *filesystemtype);
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue