Commit Graph

91 Commits

Author SHA1 Message Date
zhao maosheng a6b2014214 fix exec and mount error code 2024-07-18 13:25:37 +08:00
Shell e5cf86267b
[smart] fixup of script execution (#9009)
This patch fixup the script execution capabilities on argv passing
and adds support for arguments larger than 4k.

According to POSIX, the script parameter is quiet different
from the current implementation. Especially on the way it inserts
the path of executables. At the end, when you execute a script
from `$PATH`, it always fails.

For the script, interpreter will be invoked with the following
arguments: `{interpreter [optional-arg] pathname arg...}`
where pathname is the pathname of the file specified as the first
argument of execve(), and arg...  is the series of words pointed
to by the argv argument of execve(), starting at argv[1].  Note that
there is no way to get the argv[0] that was passed to the
execve() call.

The changes include:

- Separating argument, environment variable, and auxiliary vector
  processing into a new lwp_args.c file.
- Fixing bugs in script argument processing and supporting arguments
  larger than 4k.
- Updating lwp_execve to use the new argscopy function and removing
  the old lwp_argscopy function.
- Making various modifications to lwp_load and elf_aux_fill to work
  with the new argument processing.
- Removing unnecessary code related to dynamic loading and interpreter
  scripts.

Signed-off-by: Shell <smokewood@qq.com>
2024-05-31 17:32:19 +08:00
Shell 63591d935e
[smart] fixup errno passing on sys_mkdir() (#9007)
Use _SYS_WRAP to fetch errno on return of mkdir to avoiding overriding
of it on other system APIs.

Signed-off-by: Shell <smokewood@qq.com>
2024-05-29 18:06:54 +08:00
Shell f179ce12b7
[smart] update sched_setaffinity() to use thread(task) ID (#9004)
Correct `sched_setaffinity()` to use the thread IDs (TIDs) instead of
process IDs (PIDs). The previous implementation used PIDs, which
caused issues since affinity settings need to be applied at the
thread level.

As the manual documented, the signature is:

>        int sched_setaffinity(pid_t pid, size_t cpusetsize,
>                             const cpu_set_t *mask);

Yes, it's tricky, the identification passing in is called **'PID'**.
But when we talk about 'pid' from GNU libc, it's the **'task-id'**,
aka, `thread->tid` known in kernel.

Changes were made by updating the function signatures and logic in
`lwp.h`, `lwp_pid.c`, and `lwp_syscall.c` to accept TIDs. Specifically,
the `lwp_setaffinity` function and related internal functions now
operate using thread IDs and adjust thread affinity settings accordingly

Signed-off-by: Shell <smokewood@qq.com>
2024-05-29 06:53:22 +08:00
xiao-mang 75f41723cb
fix sys_getcwd (#8852) 2024-04-25 18:28:53 +08:00
Shell 864055bf18
[fixup] aarch64 UMP compiler error (#8677)
Signed-off-by: Shell <smokewood@qq.com>
2024-03-30 17:58:38 +08:00
Shell 83e95bdff4
sync smart & dfs (#8672)
Signed-off-by: xqyjlj <xqyjlj@126.com>
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-03-28 23:42:56 +08:00
Shell 71560bafb5
🎯 Sync smart & scheduler codes (#8537)
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-02-23 17:49:15 +08:00
rcitachi 0c96b26c23
[sys_bind] [signalfd] update (#8507) 2024-01-26 22:14:02 +08:00
geniusgogo 6b22a0a2b7
dfsv2 code tidy. (#8374) 2023-12-16 18:06:47 +08:00
zmq810150896 2790ce5357
Updated issues related to uds capacity and eventfd macro redefinition (#8329) 2023-12-06 13:51:13 +08:00
rcitachi 58665c7f50
[AF_UNIX] Update AF_UNIX bind, connect entry (#8314) 2023-12-02 12:11:01 +08:00
rcitachi 1e6b2a81d0
修复 #8293 问题 (#8307) 2023-11-29 14:08:47 +08:00
geniusgogo 74925f43ed
fix dfs path name overflow. (#8305) 2023-11-28 17:16:21 +08:00
rcitachi c06f4e98fc
[SAL] Update SAL,Add socketpair sendmsg recvmsg function (#8293) 2023-11-28 13:56:06 +08:00
xqyjlj 5ad6a6f2c5
🐞 fix: fix taskset (#8211) 2023-11-02 23:12:44 +08:00
Shell c2036e769a
[smart] fixup of lwp recycling and mm varea (#8206)
Signed-off-by: shell <wangxiaoyao@rt-thread.com>
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2023-11-02 20:23:11 +08:00
xqyjlj 3283f54c7a
🎈 perf: perf rt_hw_interrupt_disable/enable (#8042)
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: Shell <smokewood@qq.com>
2023-10-25 20:31:25 +08:00
Shell fb78a71020
[smart] replace varea pgmgr and fixup of dfs mmap (#8184)
Signed-off-by: shell <smokewood@qq.com>
Signed-off-by: Shell <smokewood@qq.com>
2023-10-25 14:59:48 +08:00
geniusgogo ecd29fda60
Sync dfs lwp (#8123) 2023-10-17 13:07:59 +08:00
Shell 1e7add54d4
[smart] fixup: syscall.c (#8131)
Signed-off-by: shell <wangxiaoyao@rt-thread.com>
2023-10-14 13:09:17 +08:00
Shell 4158c8e88e
[smart] Replace irq disable/enable codes in futex (#7941)
Signed-off-by: Shell <smokewood@qq.com>
2023-10-14 13:07:45 +08:00
xiao-mang 5d16042765
add sys_utimensat (#8124) 2023-10-13 19:21:49 +08:00
Shell a300cef2a8 [smart] split out part of lwp_new() to lwp_create()
Prev implementation of lwp_new() including the create of lwp object
and the pid allocation. But not every lwp object need a pid.
So this patch split out the business of lwp_new() to improve the
maintainability.

Signed-off-by: Shell <smokewood@qq.com>
2023-10-11 08:48:06 +08:00
skychen123 fcd0fecd3e
add sys_setitimer syscall (#8096) 2023-10-08 13:30:04 +08:00
zmq810150896 7c2f807a7c
Add the system call timerfd and update SConscript for signalfd (#8067) 2023-09-23 14:18:29 +08:00
zmq810150896 dc84765823
[smart] Updated the API for kernel access to user address issues and for calculating string length (#8058) 2023-09-23 14:06:00 +08:00
Shell e7c3ca61fd
[smart] fix rt_memcpy to lwp_memcpy in smart source (#8033) 2023-09-15 15:57:08 +08:00
zmq810150896 7c3d966df6
Add the system call signalfd (#8001) 2023-09-11 14:06:08 +08:00
Shell 47b183a297
[smart/syscall] fix exit(2) and add exit_group(2) (#8005)
Signed-off-by: shell <smokewood@qq.com>
Signed-off-by: shell <wangxiaoyao@rt-thread.com>
Signed-off-by: Shell <smokewood@qq.com>
2023-09-09 09:35:56 +08:00
Meco Man 5f948690c9 [rtdef] rename RT_CTASSERT to RT_STATIC_ASSERT 2023-09-06 22:21:22 -04:00
xyz 341fb40c95 [smart][fix] lwp fork with data copy 2023-08-30 16:37:08 +08:00
Shell d862816a51
[components/mm] add unmap page API (#7834)
Signed-off-by: Shell <smokewood@qq.com>
2023-08-16 15:38:59 +08:00
geniusgogo 4d20416b2f
update components & lwp. (#7888) 2023-08-07 12:22:14 -04:00
Shell 325c3d2a48
[smart] Fix bugs on lwp kill (#7892)
Signed-off-by: Shell <smokewood@qq.com>
2023-08-03 20:25:13 +08:00
zmq810150896 3f0a5e76bf
Add the system call epoll (#7893) 2023-08-01 17:15:41 +08:00
zmq810150896 307e9e5e98
Add the system call eventfd (#7835) 2023-07-27 17:24:56 +08:00
Tennn11 43b451b27c
[syscall][socket]fix socket addr bug (#7876) 2023-07-27 17:24:26 +08:00
Shell ef91876ee7
[smart] fix the setup of fake lwp in sys_execve (#7855) 2023-07-25 15:58:10 +08:00
Shell 58e0ddf287
[component/lwp] support more feature of signal from IEEE Std 1003.1-2017 (#7828)
Signed-off-by: Shell <smokewood@qq.com>
2023-07-20 00:02:41 +08:00
geniusgogo 2aa4510aa8
execute elf add executable permissions check. (#7769) 2023-07-03 19:25:59 +08:00
Bernard Xiong 99e80f8d33
[dfs] Add DFS v2.0 (#7606) 2023-06-10 21:35:25 +08:00
geniusgogo 0315c0dee7
add lstat&sysinfo....syscall. (#7555) 2023-05-23 22:43:38 +08:00
xiao-mang 065a3e1b3a
[component] add sys_mount and umount2 (#7516) 2023-05-17 16:30:05 +08:00
geniusgogo 0e4a3142a8
[component] add openat syscall. (#7488) 2023-05-15 20:40:27 +08:00
zhkag a6a9b0dfcb
[components][posix] 完善 posix 接口消息队列 (#7395) 2023-05-05 18:14:07 +08:00
geniusgogo 18c452e4dd
fix lwp _load_script. (#7405) 2023-04-28 11:49:05 +08:00
zhkag 550b9282f9
[syscall] lwp_syscall 中 rt_err_t 改为 sysret_t (#7374) 2023-04-26 19:12:30 +08:00
xiao-mang c043657353
fork子进程时,lwp_struct_copy函数增加拷贝working_directory功能 (#7380) 2023-04-26 17:21:00 +08:00
Shell 470454d201
[components/mm] support for scalable memory management (#7277)
* [mm/page] multi-list page manager
[mm/page] page debugger
[libcpu/aarch64] hugepage support

* [quality] remove void-arith

* [format] remove kasan codes
2023-04-22 23:59:11 +08:00