From f4cea6a94bca6c159433080df920fcf144ea8c27 Mon Sep 17 00:00:00 2001 From: wuzhonghui Date: Tue, 8 Feb 2022 10:04:47 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90modify=E3=80=91Optimize=20macro=20depe?= =?UTF-8?q?ndencies=20of=20some=20functions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/lwp/lwp.c | 4 ++++ components/lwp/lwp_syscall.c | 14 ++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/components/lwp/lwp.c b/components/lwp/lwp.c index e2c197973f..11fcdc41ea 100644 --- a/components/lwp/lwp.c +++ b/components/lwp/lwp.c @@ -1267,7 +1267,11 @@ pid_t lwp_execve(char *filename, int argc, char **argv, char **envp) return -RT_ERROR; } +#ifdef RT_USING_MUSL extern char **__environ; +#else +char __environ = 0; +#endif #ifdef RT_USING_GDBSERVER pid_t exec(char *filename, int debug, int argc, char **argv) diff --git a/components/lwp/lwp_syscall.c b/components/lwp/lwp_syscall.c index 2457dd698e..1826d0defb 100644 --- a/components/lwp/lwp_syscall.c +++ b/components/lwp/lwp_syscall.c @@ -3917,8 +3917,6 @@ int sys_setsid(void) return (ret < 0 ? GET_ERRNO() : ret); } -int sys_cacheflush(void *addr, int len, int cache); - int sys_getrandom(void *buf, size_t buflen, unsigned int flags) { int ret = -1; @@ -3947,6 +3945,7 @@ int sys_getrandom(void *buf, size_t buflen, unsigned int flags) return -EFAULT; } +#ifdef RT_USING_USERSPACE kmem = kmem_get(buflen); if (!kmem) { @@ -3969,7 +3968,18 @@ int sys_getrandom(void *buf, size_t buflen, unsigned int flags) ret = lwp_put_to_user(buf, kmem, count); } kmem_put(kmem); +#else + while (count < buflen) + { + ret = rt_device_read(rd_dev, count, kmem + count, buflen - count); + if (ret <= 0) + break; + count += ret; + } + rt_device_close(rd_dev); + ret = count; +#endif return ret; } -- Gitee