[PATCH v2 0/4] tools/nolibc: add two new syscall helpers

From: Zhangjin Wu
Date: Tue Jun 06 2023 - 04:09:00 EST


Willy, Thomas

This is the revision of the v1 syscall helpers [1], just rebased it on
20230606-nolibc-rv32+stkp7a of [2]. It doesn't conflict with the -ENOSYS
patchset [3], so, it is ok to simply merge both of them.

This revision mainly applied your suggestions of v1, both of the syscall
return and call helpers are simplified or cleaned up.

Changes from v1 -> v2:

* tools/nolibc: sys.h: add __syscall() and __sysret() helpers
* Use inline function instead of macro for the syscall return helper
(Suggestion from Thomas)

* Rename syscall return helper from __syscall_ret to __sysret
(align with __syscall and it is not that long now)

* Make __sysret() be always inline
(Suggestion from Willy)

* Simplify the whole __syscall() macro to oneline code
(Benefit from the fixed 'long' return type of syscalls)

* tools/nolibc: unistd.h: apply __sysret() helper
* Convert the whole _syscall() macro to oneline code

* tools/nolibc: sys.h: apply __sysret() helper
* Futher convert both brk() and getpagesize() to oneline code

* tools/nolibc: sys.h: apply __syscall() helper
* Keep the same as v1, because the __syscall() usage not changed

Best regards,
Zhangjin

---
[1]: https://lore.kernel.org/linux-riscv/cover.1685856497.git.falcon@xxxxxxxxxxx/
[2]: https://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
[3]: https://lore.kernel.org/linux-riscv/cover.1685780412.git.falcon@xxxxxxxxxxx/

Zhangjin Wu (4):
tools/nolibc: sys.h: add __syscall() and __sysret() helpers
tools/nolibc: unistd.h: apply __sysret() helper
tools/nolibc: sys.h: apply __sysret() helper
tools/nolibc: sys.h: apply __syscall() helper

tools/include/nolibc/sys.h | 366 ++++++----------------------------
tools/include/nolibc/unistd.h | 11 +-
2 files changed, 57 insertions(+), 320 deletions(-)

--
2.25.1