Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Musl
提交
bb6335f1
T
Third Party Musl
项目概览
OpenHarmony
/
Third Party Musl
8 个月 前同步成功
通知
37
Star
125
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Musl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
bb6335f1
编写于
7月 12, 2022
作者:
O
openharmony_ci
提交者:
Gitee
7月 12, 2022
浏览文件
操作
浏览文件
下载
差异文件
!382 iccarm工具链支持
Merge pull request !382 from wish/tag_iccarm_and_realpath
上级
2f37f2ff
66bdc5fc
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
127 addition
and
11 deletion
+127
-11
porting/liteos_m_iccarm/kernel/BUILD.gn
porting/liteos_m_iccarm/kernel/BUILD.gn
+0
-11
porting/liteos_m_iccarm/kernel/iccarm.gni
porting/liteos_m_iccarm/kernel/iccarm.gni
+1
-0
porting/liteos_m_iccarm/kernel/include/stdlib.h
porting/liteos_m_iccarm/kernel/include/stdlib.h
+40
-0
porting/liteos_m_iccarm/kernel/src/misc/realpath.c
porting/liteos_m_iccarm/kernel/src/misc/realpath.c
+86
-0
未找到文件。
porting/liteos_m_iccarm/kernel/BUILD.gn
浏览文件 @
bb6335f1
...
...
@@ -33,19 +33,8 @@ libc = "iccarm-c"
LITEOS_MENUCONFIG_H = rebase_path("$root_out_dir/config.h")
config("include") {
include_dirs = [ "include" ]
}
static_library(libc) {
sources = ICCARM_ADAPT_SRC_COMMON
cflags = [
"-imacros",
"$LITEOS_MENUCONFIG_H",
]
public_configs = [ ":include" ]
}
group("kernel") {
...
...
porting/liteos_m_iccarm/kernel/iccarm.gni
浏览文件 @
bb6335f1
...
...
@@ -33,4 +33,5 @@ ICCARM_ADAPT_INCLUDE_DIRS = [ "$MUSLPORTINGDIR/include" ]
ICCARM_ADAPT_SRC_COMMON = [
"$MUSLPORTINGDIR/src/malloc.c",
"$MUSLPORTINGDIR/src/fs.c",
"$MUSLPORTINGDIR/src/misc/realpath.c",
]
porting/liteos_m_iccarm/kernel/include/stdlib.h
0 → 100644
浏览文件 @
bb6335f1
/*
* Copyright (c) 2022-2022 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef __ADAPT_STDLIB_H
#define __ADAPT_STDLIB_H
#include_next <stdlib.h>
#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
char
*
realpath
(
const
char
*
__restrict
,
char
*
__restrict
);
#endif
#endif
/* __ADAPT_STDLIB_H */
porting/liteos_m_iccarm/kernel/src/misc/realpath.c
0 → 100644
浏览文件 @
bb6335f1
/*
* Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
* Copyright (c) 2020-2021 Huawei Device Co., Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of the copyright holder nor the names of its contributors may be used
* to endorse or promote products derived from this software without specific prior written
* permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <limits.h>
#include <errno.h>
#include <sys/stat.h>
#include <securec.h>
/*
* LiteOS-M file system uses abs path
*/
static
unsigned
int
vfs_strnlen
(
const
char
*
str
,
size_t
maxlen
)
{
const
char
*
p
=
NULL
;
for
(
p
=
str
;
((
maxlen
--
!=
0
)
&&
(
*
p
!=
'\0'
));
++
p
)
{}
return
p
-
str
;
}
char
*
realpath
(
const
char
*
__restrict
path
,
char
*
__restrict
resolved_path
)
{
int
namelen
;
int
res
;
struct
stat
st
;
if
(
!
path
||
!*
path
||
!
resolved_path
)
{
errno
=
ENOENT
;
return
NULL
;
}
namelen
=
vfs_strnlen
(
path
,
PATH_MAX
);
if
(
!
namelen
)
{
errno
=
EINVAL
;
return
NULL
;
}
else
if
(
namelen
>=
PATH_MAX
)
{
errno
=
ENAMETOOLONG
;
return
NULL
;
}
// LiteOS-M file system uses abs path, so we just stat path and strcpy it.
if
(
stat
(
path
,
&
st
)
<
0
)
{
errno
=
ENOENT
;
return
NULL
;
}
res
=
strcpy_s
(
resolved_path
,
PATH_MAX
,
path
);
if
(
res
!=
0
)
{
errno
=
EINVAL
;
return
NULL
;
}
else
{
return
resolved_path
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录