相关的Issue

#I73G40:内核time模块RTC与settimeofday接口逻辑修复

原因(目的、解决的问题等)

如果time中有rtc注册的钩子,那么内核所有time的posix接口的时间信息,都从rtc那边获取:
1、timezone全局变量和获取类似tv结构体,优先从rtc获取;
2、排查settimeofday这个接口行为是否标准,查看linux和posix标准,优先使用posix标准

描述(做了什么,变更了什么)

1、time中timezone全局变量修改为优先从RTC获取
2、settimeofday接口,linux和posix标准有差异,按照posix标准修改,具体如下:
int settimeofday(const struct timeval *tv, const struct timezone *tz)
2.1、linux中:https://linux.die.net/man/2/settimeofday

  • tz参数已弃用,一般设置为NULL;
  • tv参数,为NULL时返回0,不设置错误码,表示不修改当前时间;

2.2、posix中:https://docs.oracle.com/cd/E19048-01/chorus4/806-3328/6jcg1bm2u/index.html

  • tv或tz全部为NULL时,返回-1,设置错误码EFAULT;
  • tv或tz有一个不为NULL时,不设置相应的参数,返回0;不设置错误码;

3、新增settimeofday接口设置timezone相关测试用例

测试用例(新增、改动、可能影响的功能)

make menuconfig中打开全量测试:
输入图片说明
新增settimeofday设置timezone测试用例:
输入图片说明
全量测试用例:
输入图片说明

是否涉及对外变更(典型的如:对外API规格变更、新增对外接口等等)

必须选择一项(在MarkDown模式下用[x]替换[ ]即可勾选对应选项):

  • 是,涉及对外变更: 需要在commit message中按【模板要求】描述变更点
  • 否,不涉及对外变更

是否需要同步至release(如:3.0LTS ... )分支?

必须选择一项(在MarkDown模式下用[x]替换[ ]即可勾选对应选项):

  • 是,需要同步的分支:3.2-Release

理由:问题同步修改