Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Kernel Liteos M
提交
3181b439
K
Kernel Liteos M
项目概览
OpenHarmony
/
Kernel Liteos M
大约 1 年 前同步成功
通知
20
Star
28
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel Liteos M
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3181b439
编写于
5月 20, 2021
作者:
L
li_zan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add Multi mount func
上级
45c72e79
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
4 addition
and
21 deletion
+4
-21
components/fs/littlefs/lfs_api.c
components/fs/littlefs/lfs_api.c
+4
-21
未找到文件。
components/fs/littlefs/lfs_api.c
浏览文件 @
3181b439
...
...
@@ -47,17 +47,12 @@ FileOpInfo GetFsOpInfo(void)
LittleFsHandleStruct
*
LfsAllocFd
(
const
char
*
fileName
,
int
*
fd
)
{
int
len
=
strlen
(
fileName
)
+
1
;
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
;
g_handle
[
i
].
pathName
=
(
char
*
)
malloc
(
len
);
if
(
g_handle
[
i
].
pathName
)
{
strncpy_s
(
g_handle
[
i
].
pathName
,
LITTLE_FS_MAX_NAME_LEN
,
fileName
,
len
);
}
g_handle
[
i
].
pathName
=
strdup
(
fileName
);
pthread_mutex_unlock
(
&
g_FslocalMutex
);
return
&
(
g_handle
[
i
]);
}
...
...
@@ -84,16 +79,11 @@ BOOL CheckFileIsOpen(const char *fileName)
FileDirInfo
*
GetFreeDir
(
const
char
*
dirName
)
{
int
len
=
strlen
(
dirName
)
+
1
;
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
;
g_lfsDir
[
i
].
dirName
=
(
char
*
)
malloc
(
len
);
if
(
g_lfsDir
[
i
].
dirName
)
{
strncpy_s
(
g_lfsDir
[
i
].
dirName
,
len
,
dirName
,
len
);
}
g_lfsDir
[
i
].
dirName
=
strdup
(
dirName
);
pthread_mutex_unlock
(
&
g_FslocalMutex
);
return
&
(
g_lfsDir
[
i
]);
}
...
...
@@ -148,19 +138,12 @@ BOOL CheckPathIsMounted(const char *pathName, struct FileOpInfo **fileOpInfo)
struct
FileOpInfo
*
AllocMountRes
(
const
char
*
target
,
struct
FileOps
*
fileOps
)
{
int
len
=
strlen
(
target
)
+
1
;
pthread_mutex_lock
(
&
g_FslocalMutex
);
for
(
int
i
=
0
;
i
<
LFS_MAX_MOUNT_SIZE
;
i
++
)
{
if
(
g_fsOp
[
i
].
useFlag
==
0
&&
strcmp
(
target
,
g_littlefsMntName
[
i
])
==
0
)
{
g_fsOp
[
i
].
useFlag
=
1
;
g_fsOp
[
i
].
fsVops
=
fileOps
;
if
(
g_fsOp
[
i
].
dirName
==
NULL
)
{
g_fsOp
[
i
].
dirName
=
(
char
*
)
malloc
(
len
);
if
(
g_fsOp
[
i
].
dirName
)
{
(
void
)
strncpy_s
(
g_fsOp
[
i
].
dirName
,
len
,
target
,
len
);
}
}
g_fsOp
[
i
].
dirName
==
strdup
(
target
);
pthread_mutex_unlock
(
&
g_FslocalMutex
);
return
&
(
g_fsOp
[
i
]);
}
...
...
@@ -393,7 +376,7 @@ struct dirent *LfsReaddir(DIR *dir)
ret
=
lfs_dir_read
(
dirInfo
->
lfsHandle
,
(
lfs_dir_t
*
)(
&
(
dirInfo
->
dir
)),
&
lfsInfo
);
if
(
ret
==
0
)
{
pthread_mutex_lock
(
&
g_FslocalMutex
);
(
void
)
strncpy_s
(
g_nameValue
.
d_name
,
sizeof
(
g_nameValue
.
d_name
),
lfsInfo
.
name
,
strlen
(
lfsInfo
.
name
)
+
1
);
g_nameValue
.
d_name
=
strdup
(
lfsInfo
.
name
);
if
(
lfsInfo
.
type
==
LFS_TYPE_DIR
)
{
g_nameValue
.
d_type
=
DT_DIR
;
}
else
if
(
lfsInfo
.
type
==
LFS_TYPE_REG
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录