Commit Graph

81 Commits

Author SHA1 Message Date
yinjiaming
96c16b0cbf fix: 修复gettimeofday接口获取时间方式依赖RTC钩子
gettimeofday 接口获取时间的方式依赖于RTC钩子,造成了精度的差异,
现去掉其依赖

BREAKING CHANGE:
修复gettimeofday接口获取时间方式依赖RTC钩子对外变更描述:
修改API:
int gettimeofday(struct timeval *tv, void *ptz);

Close #I6WV3V

Signed-off-by: yinjiaming <yinjiaming@huawei.com>
Change-Id: I87f46661a2b6edf9fd179e8c6e2cfe72da0c0c61
2023-05-29 17:27:55 +08:00
zhangdengyu
b4873b06e8 feat: 修复time中TIMEZONE优先使用RTC模块的问题
方案描述:
1、time中timezone全局变量修改为优先从RTC获取
2、settimeofday接口,linux和posix标准有差异,m核中对齐posix标准,具体如下:
int settimeofday(const struct timeval *tv, const struct timezone *tz)
2.1、linux中:
        tz参数已弃用,一般设置为NULL;
        tv参数,为NULL时返回0,不设置错误码,表示不修改当前时间;
2.2、posix中:
        tv或tz全部为NULL时,返回-1,设置错误码EFAULT;
        tv或tz有一个不为NULL时,不设置相应的参数,返回0;不设置错误码;
3、新增settimeofday接口设置timezone相关测试用例

BREAKING CHANGE:
修复time中TIMEZONE优先使用RTC模块的问题对外变更描述:
修改int settimeofday(const struct timeval *tv, const struct timezone *tz)接口
settimeofday接口对入参的判断逻辑修改:
1、tv或tz全部为NULL时,返回-1,设置错误码EFAULT;
2、tv或tz有一个不为NULL时,不设置相应的参数,返回0;不设置错误码;

Close: #I73G40

Signed-off-by: zhangdengyu <zhangdengyu2@huawei.com>
Change-Id: Id536fc27d8bf0697765ac1543776e8105e6f62f4
2023-05-18 11:50:38 +08:00
openharmony_ci
fe69c9dd65 !1043 Fix : pthread_cond_timedwait 函数等待的信号丢失问题
Merge pull request !1043 from yinjiaming/fix
2023-03-31 09:11:33 +00:00
yinjiaming
2374c01bb9 fix:pthread_cond_timedwait解锁后清理的问题
该函数解锁mutex 后先清理事件,导致等的事件丢失

Signed-off-by: yinjiaming <yinjiaming@huawei.com>
Change-Id: I36f8658b1b850734bc029b486fec103f6bd10588
2023-03-31 16:14:31 +08:00
root
81784f1c6b fix: 增加los错误码和posix错误码对接接口
方案描述:
1, 增加一个内部接口, 用于los接口返回的错误码转换成posix错误码

BREAKING CHANGE:
无新增接口, 原有接口pthread_create错误时的错误码进行了区分

Close #I6NWNV
Signed-off-by: wangchen <wangchen240@huawei.com>
2023-03-17 16:23:31 +08:00
arvinzzz
f038492dbc fix: pthread_create内部逻辑时序调整
在线程创建成功后,pthread_create内部先将函数返回值设置好,再进行TaskResume就绪调度状态

Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I795c115da612123b67f34cdc57e85eac955bbc08
2023-02-10 17:42:17 +08:00
arvinzzz
d7f3aef326 refactor: 不同C库的malloc适配归一
1. 不同C库的malloc实现归一化,由原先//kal/libc/musl、//kal/libc/newlib、
   //../../third_party/musl/porting/liteos_m_iccarm/kernel 各自实现,
   统一至//kal/posix/src/malloc.c实现,并实现对三种C库的兼容

2. Kconfig归一化的配套调整,删除Top->"Compat"->"Choose libc implementation"下
   malloc API的开关控制,统一归入"Top"->"Compat"->"Enable POSIX API"下
   "Enable POSIX MALLOC API"进行能力开关控制

BREAKING CHANGE:
Kconfig变更:
删除:
LOSCFG_LIBC_ICCARM_MALLOC
LOSCFG_LIBC_NEWLIB_MALLOC
新增:
LOSCFG_POSIX_MALLOC_API

close: I6AGOW

Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I584e337cdb36184cf40c36c4f7c73ab780c31a42
2023-01-18 11:22:01 +08:00
arvinzzz
ed50f7e373 fix: 不同libc下gettimeofday特性规格统一
Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: Iaaf1fed24101f43c636737294dbe870d2f467b0a
2023-01-10 20:36:34 +08:00
arvinzzz
2a4282f912 fix: The tm struct obtained by mktime lacks timezone information
BREAKING CHANGE:
The tm struct obtained by mktime lacks timezone information
变更API:
time_t mktime(struct tm *tmptr)
原先mktime从入参中获取时区信息进行计算,变更后tm结构体和返回值time_t的计算使用系统g_timezone时区环境变量。

Close I67UIA

Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I766cffbff3c1a25bb33cbd245225ee117909af3a
2022-12-29 16:26:08 +08:00
zhangdengyu
a940dda69a feat: 增加mutex trace功能
Close: #I5YJOZ

Signed-off-by: zhangdengyu <zhangdengyu2@huawei.com>
Change-Id: Id36ed4f4d23b9aa59ae9ee8cdb17c06d7e3c151b
2022-11-07 08:42:06 +08:00
yinjiaming
20ffd89865 fix: 给函数LOS_MutexDelete 前添加(VOID)
Signed-off-by: yinjiaming <yinjiaming@huawei.com>
Change-Id: I49a7c305e955bccca78b80ddeea66330e8b03ac0
2022-11-01 15:43:18 +08:00
Far
296a546bcd fix: 修复一些静态扫描工具发现的问题
Change-Id: I4890de0066f33bf44e913b550edfa3639bce7caf
Signed-off-by: Far <yesiyuan2@huawei.com>
2022-10-15 17:36:26 +08:00
xiacong
784429d0dc <fix>
修复报警信息,为以下修复点
1、修复空指针未判断
2、修复open后未及时close 导致内存泄露
3、修复strdup后未free
4、修复赋值后未使用等问题
5、修复编码中判断条件中无符号变量小于零的情况

Signed-off-by: xiacong <xiacong4@huawei.com>
Change-Id: I13d046141afeb8a116e6a04304a3793bf8e12bee
Signed-off-by: xiacong <xiacong4@huawei.com>
2022-09-24 22:11:27 +08:00
wangchen
8c46636052 fix: M核time模块支持调用RTC接口
【背景】M核time模块支持调用RTC接口

【修改方案】
1, 增加注册接口
2, 读写时间时判断是否有rtc

【影响】
对现有的产品编译不会有影响。
re #I5IKMN
Signed-off-by: wangchen <wangchen240@huawei.com>
2022-07-26 14:23:08 +00:00
openharmony_ci
1599669290 !748 Use rv32i substring as RISC-V architecture selector
Merge pull request !748 from Dmytro Kosmii/master
2022-07-18 02:15:55 +00:00
Dmytro Kosmii
3a190a1a1b Added missed includes.
Signed-off-by: Dmytro Kosmii <dmytro.kosmii@telink-semi.com>
Change-Id: I172a68a1ad6ca194399a6d47d46c54ebcfbd9338
2022-07-12 19:45:07 +03:00
i-wangliangliang
62eb96dd8d iccarm工具链编译适配
Signed-off-by: i-wangliangliang <willfox@126.com>
Change-Id: I9360dc232c35ec4db7a9bee08f3c288e22941e39
2022-07-12 17:01:44 +08:00
lihongjin
243fe55c68 style: Misspelling
Signed-off-by: lihongjin <lihongjin1@huawei.com>
Change-Id: Ie14607b483d31a6efdf17e40e9937fe4bc2484c2
2022-06-23 09:46:16 +08:00
openharmony_ci
8f1dc3a1ff !636 修改menuconfig关闭VFS选项后编译无法通过
Merge pull request !636 from wangchen/0317_m
2022-03-19 08:24:14 +00:00
openharmony_ci
9bf8ff9ce5 !641 fix: 规范整改
Merge pull request !641 from zhushengle/sample
2022-03-19 08:02:11 +00:00
zhushengle
a09d4882c4 fix: 规范整改
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I7be78853291d53636fd199104b4c72bbab222bcd
2022-03-19 15:46:10 +08:00
wangchen
3ad47afec4 fix: 通过menuconfig关闭VFS选项后,代码编译无法通过
【背景】关闭VFS时,编译无法通过

【修改方案】
1,添加对fs依赖的模块中对fs开启情况的判断

【影响】
对现有的产品编译不会有影响。

re #I4X5DX
Signed-off-by: wangchen <wangchen64@huawei.com>
2022-03-18 06:48:47 +00:00
LiteOS2021
83b6331aad fix(线程id判断有误,cmsis优先级创建修改): 线程id判断有误,cmsis优先级创建修改
线程id判断有误,cmsis优先级创建修改

Signed-off-by: LiteOS2021 <dinglu@huawei.com>
2022-03-18 11:16:51 +08:00
openharmony_ci
ea5b2e8ae4 !612 代码检视意见清零
Merge pull request !612 from JerryH/pipe_poll
2022-03-03 07:01:44 +00:00
JerryH
c5a3ed4fb1 fix: 处理检视出来的代码问题
close #I4VY0A

Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: I3bc2d3da95ecae53b3d124d086b8296ea4608d3a
2022-03-02 16:02:32 +08:00
zhushengle
96cc92d035 feat: 支持任务栈可配置
支持liteos_m 任务栈可配置
支持pthread 任务栈可配置
支持cmsis 任务栈可配置

BREAKING CHANGE:
pthread_create 支持任务栈设置
osThreadNew 支持任务栈设置
TSK_INIT_PARAM_S 结构体添加stackAddr 字段

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ifa2a3581b705631cc83cbde6182a39c28d66de2a
2022-02-21 09:08:05 +08:00
zhushengle
cc57f81ab8 fix: 修复pthread 编译告警
Close #I4U16U
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I67ba2469f2a4697bcb6da9f342bd8d18835cc874
2022-02-17 10:06:15 +08:00
openharmony_ci
5dbac3ab4c !599 fix: posix线程和LOS_TaskCreate任务不兼容,补齐接口防护,防止访问野指针
Merge pull request !599 from zhushengle/pthread
2022-02-16 11:15:25 +00:00
zhushengle
60805e1a7c fix: posix线程和LOS_TaskCreate任务不兼容,补齐接口防护,防止访问野指针
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I03040e86a5ac618d3ede671c497a0ae88a3717ae
2022-02-16 14:47:35 +08:00
fangye
21b46e82f3 fix: 修复未使用的参数和类型比较编译报错问题
Signed-off-by: fangye <fangye@talkweb.com.cn>
Change-Id: I64f9e0cd20b62f877f353340b81922ddd45fbf7c
2022-02-15 18:53:30 +08:00
LiteOS2021
cee9714a90 fix: kernel接口融合,添加/修改kernel函数
kernel接口融合,添加/修改kernel函数

BREAKING CHANGE:
新增接口:
LOS_TaskResRecycle
LOS_CurrNanosec
LOS_MDelay
接口修改:
LOS_QueueCreate:第一个入参添加const修饰并增加一种异常情况处理
los_memory.c中 OS_ERROR 修改为LOS_NOK,重定义LOS_NOK为(UINT32)-1。
接口位置转移:
LOS_UDelay 由los_task.h/.c 转移到los_tick.h/.c 
宏修改:
LOS_ERRNO_MUX_PEND_INTERR 改名为 LOS_ERRNO_MUX_IN_INTERR
增加宏:

Signed-off-by: LiteOS2021 <dinglu@huawei.com>
2022-02-15 09:47:58 +08:00
LiteOS2021
4b607fd074 fix(posix接口融合): posix接口融合,接口规范兼容性修改
posix接口融合,接口规范兼容性修改

BREAKING CHANGE:
接口修改:
calloc
pthread_mutex_init
mq_unlink
pthread_join
pthread_exit
pthread_attr_init
pthread_attr_destroy
pthread_condattr_destroy
pthread_cond_timedwait
pthread_mutexattr_init
pthread_mutexattr_settype
pthread_mutex_destroy
pthread_mutex_timedlock
pthread_mutex_trylockk
pthread_mutex_unlock
sem_getvalue
sem_timedwait
pthread_cond_timedwait
nanosleep
timer_create
timer_settime
timer_gettime
testStdlibStrtoull005
testStdlibStrtol011
testStdlibStrtoul007
testPthread004

新增接口:
CheckForCancel
pthread_setcancelstate
pthread_setcanceltype
pthread_once
pthread_setschedprio
pthread_attr_setstack
pthread_attr_getstack
pthread_condattr_getpshared
pthread_condattr_setpshared
pthread_condattr_getclock
pthread_mutexattr_gettype
CheckMutexAttr
OsMuxPreCheck
sem_trywait
MuxPendForPosix
MuxPostForPosix
增加overrun功能

接口变化:
mq_getsetattr 改为内部接口MqGetSetAttr
GetTickTimeFromNow->OsGetTickTimeFromNow

接口位置转移:
pthread_equal接口由newlib下转移到kal/posix/src/pthread.c中

Signed-off-by: LiteOS2021 <dinglu@huawei.com>
2022-02-10 16:41:12 +08:00
LiteOS2021
207efc15b8 fix(posix): posix兼容回退
posix兼容回退

Signed-off-by: LiteOS2021 <dinglu@huawei.com>
2022-01-30 23:09:20 +08:00
LiteOS
39558ae1a3 Merge branch 'master' of gitee.com:openharmony/kernel_liteos_m into master
Signed-off-by: LiteOS2021 <dinglu@huawei.com>
2022-01-29 19:30:28 +08:00
LiteOS2021
e0b12758da fix(posix): posix接口融合,接口规范兼容性修改
posix接口融合,接口规范兼容性修改

BREAKING CHANGE:
接口修改:
calloc
pthread_mutex_init
mq_unlink
pthread_join
pthread_exit
pthread_attr_init
pthread_attr_destroy
pthread_condattr_destroy
pthread_cond_timedwait
pthread_mutexattr_init
pthread_mutexattr_settype
pthread_mutex_destroy
pthread_mutex_timedlock
pthread_mutex_trylockk
pthread_mutex_unlock
sem_getvalue

新增接口:
CheckForCancel
pthread_setcancelstate
pthread_setcanceltype
pthread_once
pthread_setschedprio
pthread_attr_setstack
pthread_attr_getstack
pthread_condattr_getpshared
pthread_condattr_setpshared
pthread_condattr_getclock
pthread_mutexattr_gettype
CheckMutexAttr
OsMuxPreCheck
sem_trywait

接口变化:
mq_getsetattr 改为内部接口OsMqGetSetAttr

接口位置转移:
pthread_equal接口由newlib下转移到kal/posix/src/pthread.c中

Signed-off-by: LiteOS2021 <dinglu@huawei.com>
2022-01-29 16:57:49 +08:00
JerryH
017adac7a4 feature: Newlib support signal.
修改signal适配支持Newlic

close #I4RD3H

Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: I59f59856a275f5a4f802a1ea7d08e9405a2fb6aa
2022-01-20 18:50:17 +08:00
JerryH
8d7468b44c feature: Support kernel signal and POSIX API.
内核支持信号功能,支持注册、屏蔽、等待及触发等操作。

close #I4R72Q

Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: I26fb11a03d1899c6f7e665f0798824c578d592a6
2022-01-20 11:17:40 +08:00
yinjiaming
194ac5898d fix: 当前仓代码编译告警的问题
【背景】
当前仓代码存在编译告警需要处理

【修改方案】
在测试用例中屏蔽了-Werror选项
在对应的代码处添加了相应函数的声明头文件

【影响】
对现有的产品编译不会有影响。

re #I4N50W

Signed-off-by: yinjiaming <yinjiaming@huawei.com>
Change-Id: I7dc1e38105aa3d60f9f991f34f88875cccb48463
2022-01-19 02:27:14 +00:00
openharmony_ci
c2d3518c42 !538 支持pipe管道通信机制以及poll多文件描述符检测接口
Merge pull request !538 from JerryH/pipe
2022-01-18 10:29:15 +00:00
JerryH
4890222e7c feature: Support pipe and poll interfaces.
支持pipe管道驱动,支持poll多文件描述符检测接口。

Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: Ida1f29709affbc91a26b8518e4a77b8e5469be19
2022-01-18 16:47:35 +08:00
Lyb
eef7c80a72 fix: 队列相关的API实现中,参数的校验不完全,导致程序异常
Signed-off-by: Lyb <1576988680@qq.com>
2022-01-18 16:36:15 +08:00
wangchen
2219c32784 fix: L0 pthread_cond_timedwait接口实现存在的几个问题
【背景】L0 pthread_cond_timedwait接口存在计算溢出

【修改方案】
1,新增abstick 相关修改,先判断再转成32位,避免截断
2,LOS_Event相关函数返回值的处理已存在,无需处理
【影响】
对现有的产品编译不会有影响。

re #I4N9P8
Signed-off-by: wangchen <wangchen64@huawei.com>
2022-01-17 07:34:39 +00:00
zhushengle
4c4784e33d fix: 修复liteos-m在iar环境下的编译问题
1.数据类型转换
2.使用未初始化数据
3.无用的标签
4.pthread 线程退出后name指向野指针

Close #I4Q5Q5
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ib89390d8f61a355788da77651bf9aeee816561bb
2022-01-11 18:01:01 +08:00
zhushengle
cd949ddae0 fix: 修复pthread_create相关问题
1. 系统调度未起时,调用pthread_create失败
  系统调度未起时,系统无运行任务,获取当前线程失败
2. 先创建任务再给任务赋值name,且未加锁保护,和shell存在静态

Close #I4P78J

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I2570dcf90953ced06400a0a22193cc81719fb546
2022-01-04 15:06:13 +08:00
zhushengle
a856303b9c feat: 支持posix线程私有数据能力
BREAKING CHANGE:
  int pthread_key_create(pthread_key_t *k, void (*dtor)(void *))
  int pthread_key_delete(pthread_key_t k)
  int pthread_setspecific(pthread_key_t k, const void *x)
  void *pthread_getspecific(pthread_key_t k)

Close #I4ODEB
Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: I60ce26c20d1e2033922d2d1b01d73fc8938c8019
2021-12-28 19:55:10 +08:00
szy
58ebbf0a71 fix: 解决宏定义_SEM_MAGIC数据类型错误导致的编译问题
Signed-off-by: suzongyao <suzongyao@talkweb.com.cn>
2021-12-13 01:52:13 -08:00
JerryH
9689522a8e fix: 清除因g_tm变量没有使用引入的编译告警
close #I4LW3H

Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: I8f1be047ce5af5e7d50822c22764f9b2f04167d9
2021-12-11 10:38:35 +08:00
openharmony_ci
a1b4ebd479 !454 解决gmtime和localtime接口由于g_tm全局变量导致的竞态问题
Merge pull request !454 from JerryH/time
2021-12-10 02:20:33 +00:00
JerryH
1454b76482 fix: 解决gmtime和localtime接口由于g_tm全局变量导致的竞态问题
删除全局变量,接口使用自己的内部静态变量,避免竞态

Close #I4LW3H

Signed-off-by: JerryH <huangjieliang@huawei.com>
Change-Id: I3c74b1897b3909df93d21b9d521af270cc6fc610
2021-12-10 09:24:30 +08:00
arvinzzz
753d86014b feature: 支持newlib与musl切换
系统支持newlib,并且可以与musl-C自由切换

1. 新增newlib支持,适配newlib的预留钩子,针对系统能力适配newlib头文件(补充宏定义,结构体定义,posix能力开关),
  采用标准C与自研posix接口声明与结构体定义混合作为C库
2. 梳理kal的依赖关系,kal作为内核对外提供的标准接口,下属包含cmsis、libc、posix。
  cmsis为内核对cmsis接口的支持,libc为内核对三方C库的适配及使用,posix为内核自研提供的posix标准接口。
  若采用musl-C,则kal中选取libc/musl,posix共同作为C库对外支持;
  若采用newlib-C,则kal中选取libc/newlib,部分posix共同作为C库对外支持。
3. fs整理,components/fs下提供基于posix标准的接口改为内部对外接口,供musl以及newlib切换 适配使用

close: #I4ENQ1

Signed-off-by: arvinzzz <zhaotianyu9@huawei.com>
Change-Id: I72eda5ac5499f72c67e800e22b0f39eb288f2b94
2021-12-04 21:43:55 +08:00