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

Zhangjin Wu falcon at tinylab.org
Tue Jun 6 01:08:40 PDT 2023


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@tinylab.org/
[2]: https://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc.git
[3]: https://lore.kernel.org/linux-riscv/cover.1685780412.git.falcon@tinylab.org/

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




More information about the linux-riscv mailing list