All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zhangjin Wu <falcon@tinylab.org>
To: w@1wt.eu
Cc: david.laight@aculab.com, arnd@arndb.de, falcon@tinylab.org,
	linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
	linux-riscv@lists.infradead.org, thomas@t-8ch.de
Subject: [PATCH v4 00/10] tools/nolibc: add a new syscall helper
Date: Mon, 19 Jun 2023 23:40:10 +0800	[thread overview]
Message-ID: <cover.1687187451.git.falcon@tinylab.org> (raw)

Hi, Thomas, David, Willy

Thanks very much for your kindly review.

This is the revision of v3 "tools/nolibc: add a new syscall helper" [1],
this mainly applies the suggestion from David in this reply [2] and
rebased everything on the dev.2023.06.14a branch of linux-rcu [3].

The old __sysret() doesn't support the syscalls with pointer return
value, this revision now supports such syscalls. The left mmap() syscall
is converted to use this new __sysret() with additional test cases.

Changes from v3 -> v4:

* tools/nolibc: sys.h: add a syscall return helper
  tools/nolibc: unistd.h: apply __sysret() helper
  tools/nolibc: sys.h: apply __sysret() helper

  The original v3 series, no code change, except the Reviewed-by lines
  from Thomas.

* tools/nolibc: unistd.h: reorder the syscall macros

  reorder the syscall macros in using order and align most of them.

* tools/nolibc: add missing my_syscall6() for mips

  required by mmap() syscall, this is the last missing my_syscall6().

* tools/nolibc: __sysret: support syscalls who return a pointer

  Apply suggestion from David.  

  Let __sysret() also supports syscalls with pointer return value, so, the
  return value is converted to unsigned long and the comparing of < 0 is
  converted to the comparing of [(unsigned long)-MAX_ERRNO, (unsigned long)-1].

  This also allows return a huge value (not pointer) with highest bit as 1.

  It is able to merge this one to the first one if necessary.

* tools/nolibc: clean up mmap() support

  Apply new __sysret(), clean up #ifdef and some macros.

* selftests/nolibc: add EXPECT_PTREQ, EXPECT_PTRNE and EXPECT_PTRER
  selftests/nolibc: add sbrk_0 to test current brk getting
  selftests/nolibc: add mmap and munmap test cases

  Add some mmap & munmap test cases and the corresponding helpers, to
  verify one of the new helpers, a sbrk_0 test case is also added.

Best regards,
Zhangjin
---
[1]: https://lore.kernel.org/linux-riscv/87e7a391-b97b-4001-b12a-76d20790563e@t-8ch.de/
[2]: https://lore.kernel.org/linux-riscv/94dd5170929f454fbc0a10a2eb3b108d@AcuMS.aculab.com/
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/

Zhangjin Wu (10):
  tools/nolibc: sys.h: add a syscall return helper
  tools/nolibc: unistd.h: apply __sysret() helper
  tools/nolibc: sys.h: apply __sysret() helper
  tools/nolibc: unistd.h: reorder the syscall macros
  tools/nolibc: add missing my_syscall6() for mips
  tools/nolibc: __sysret: support syscalls who return a pointer
  tools/nolibc: clean up mmap() support
  selftests/nolibc: add EXPECT_PTREQ, EXPECT_PTRNE and EXPECT_PTRER
  selftests/nolibc: add sbrk_0 to test current brk getting
  selftests/nolibc: add mmap and munmap test cases

 tools/include/nolibc/arch-mips.h             |  26 ++
 tools/include/nolibc/nolibc.h                |   9 +-
 tools/include/nolibc/sys.h                   | 391 +++----------------
 tools/include/nolibc/types.h                 |  11 +
 tools/include/nolibc/unistd.h                |  13 +-
 tools/testing/selftests/nolibc/nolibc-test.c |  90 +++++
 6 files changed, 191 insertions(+), 349 deletions(-)

-- 
2.25.1


WARNING: multiple messages have this Message-ID (diff)
From: Zhangjin Wu <falcon@tinylab.org>
To: w@1wt.eu
Cc: david.laight@aculab.com, arnd@arndb.de, falcon@tinylab.org,
	linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org,
	linux-riscv@lists.infradead.org, thomas@t-8ch.de
Subject: [PATCH v4 00/10] tools/nolibc: add a new syscall helper
Date: Mon, 19 Jun 2023 23:40:10 +0800	[thread overview]
Message-ID: <cover.1687187451.git.falcon@tinylab.org> (raw)

Hi, Thomas, David, Willy

Thanks very much for your kindly review.

This is the revision of v3 "tools/nolibc: add a new syscall helper" [1],
this mainly applies the suggestion from David in this reply [2] and
rebased everything on the dev.2023.06.14a branch of linux-rcu [3].

The old __sysret() doesn't support the syscalls with pointer return
value, this revision now supports such syscalls. The left mmap() syscall
is converted to use this new __sysret() with additional test cases.

Changes from v3 -> v4:

* tools/nolibc: sys.h: add a syscall return helper
  tools/nolibc: unistd.h: apply __sysret() helper
  tools/nolibc: sys.h: apply __sysret() helper

  The original v3 series, no code change, except the Reviewed-by lines
  from Thomas.

* tools/nolibc: unistd.h: reorder the syscall macros

  reorder the syscall macros in using order and align most of them.

* tools/nolibc: add missing my_syscall6() for mips

  required by mmap() syscall, this is the last missing my_syscall6().

* tools/nolibc: __sysret: support syscalls who return a pointer

  Apply suggestion from David.  

  Let __sysret() also supports syscalls with pointer return value, so, the
  return value is converted to unsigned long and the comparing of < 0 is
  converted to the comparing of [(unsigned long)-MAX_ERRNO, (unsigned long)-1].

  This also allows return a huge value (not pointer) with highest bit as 1.

  It is able to merge this one to the first one if necessary.

* tools/nolibc: clean up mmap() support

  Apply new __sysret(), clean up #ifdef and some macros.

* selftests/nolibc: add EXPECT_PTREQ, EXPECT_PTRNE and EXPECT_PTRER
  selftests/nolibc: add sbrk_0 to test current brk getting
  selftests/nolibc: add mmap and munmap test cases

  Add some mmap & munmap test cases and the corresponding helpers, to
  verify one of the new helpers, a sbrk_0 test case is also added.

Best regards,
Zhangjin
---
[1]: https://lore.kernel.org/linux-riscv/87e7a391-b97b-4001-b12a-76d20790563e@t-8ch.de/
[2]: https://lore.kernel.org/linux-riscv/94dd5170929f454fbc0a10a2eb3b108d@AcuMS.aculab.com/
[3]: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git/

Zhangjin Wu (10):
  tools/nolibc: sys.h: add a syscall return helper
  tools/nolibc: unistd.h: apply __sysret() helper
  tools/nolibc: sys.h: apply __sysret() helper
  tools/nolibc: unistd.h: reorder the syscall macros
  tools/nolibc: add missing my_syscall6() for mips
  tools/nolibc: __sysret: support syscalls who return a pointer
  tools/nolibc: clean up mmap() support
  selftests/nolibc: add EXPECT_PTREQ, EXPECT_PTRNE and EXPECT_PTRER
  selftests/nolibc: add sbrk_0 to test current brk getting
  selftests/nolibc: add mmap and munmap test cases

 tools/include/nolibc/arch-mips.h             |  26 ++
 tools/include/nolibc/nolibc.h                |   9 +-
 tools/include/nolibc/sys.h                   | 391 +++----------------
 tools/include/nolibc/types.h                 |  11 +
 tools/include/nolibc/unistd.h                |  13 +-
 tools/testing/selftests/nolibc/nolibc-test.c |  90 +++++
 6 files changed, 191 insertions(+), 349 deletions(-)

-- 
2.25.1


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

             reply	other threads:[~2023-06-19 15:40 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-19 15:40 Zhangjin Wu [this message]
2023-06-19 15:40 ` [PATCH v4 00/10] tools/nolibc: add a new syscall helper Zhangjin Wu
2023-06-19 15:41 ` [PATCH v4 01/10] tools/nolibc: sys.h: add a syscall return helper Zhangjin Wu
2023-06-19 15:41   ` Zhangjin Wu
2023-06-19 15:42 ` [PATCH v4 02/10] tools/nolibc: unistd.h: apply __sysret() helper Zhangjin Wu
2023-06-19 15:42   ` Zhangjin Wu
2023-06-19 15:44 ` [PATCH v4 03/10] tools/nolibc: sys.h: " Zhangjin Wu
2023-06-19 15:44   ` Zhangjin Wu
2023-06-19 15:45 ` [PATCH v4 04/10] tools/nolibc: unistd.h: reorder the syscall macros Zhangjin Wu
2023-06-19 15:45   ` Zhangjin Wu
2023-06-19 15:47 ` [PATCH v4 05/10] tools/nolibc: add missing my_syscall6() for mips Zhangjin Wu
2023-06-19 15:47   ` Zhangjin Wu
2023-06-19 15:48 ` [PATCH v4 06/10] tools/nolibc: __sysret: support syscalls who return a pointer Zhangjin Wu
2023-06-19 15:48   ` Zhangjin Wu
2023-06-19 15:51 ` [PATCH v4 07/10] tools/nolibc: clean up mmap() support Zhangjin Wu
2023-06-19 15:51   ` Zhangjin Wu
2023-06-21 18:48   ` Thomas Weißschuh
2023-06-21 18:48     ` Thomas Weißschuh
2023-06-22 19:08     ` Zhangjin Wu
2023-06-22 19:08       ` Zhangjin Wu
2023-06-19 15:52 ` [PATCH v4 08/10] selftests/nolibc: add EXPECT_PTREQ, EXPECT_PTRNE and EXPECT_PTRER Zhangjin Wu
2023-06-19 15:52   ` Zhangjin Wu
2023-06-19 15:54 ` [PATCH v4 09/10] selftests/nolibc: add sbrk_0 to test current brk getting Zhangjin Wu
2023-06-19 15:54   ` Zhangjin Wu
2023-06-19 15:55 ` [PATCH v4 10/10] selftests/nolibc: add mmap and munmap test cases Zhangjin Wu
2023-06-19 15:55   ` Zhangjin Wu
2023-06-19 16:14   ` Zhangjin Wu
2023-06-19 16:14     ` Zhangjin Wu
2023-06-21 18:58   ` Thomas Weißschuh
2023-06-21 18:58     ` Thomas Weißschuh
2023-06-22 19:32     ` Zhangjin Wu
2023-06-22 19:32       ` Zhangjin Wu
2023-06-22 19:56       ` Thomas Weißschuh
2023-06-22 19:56         ` Thomas Weißschuh
2023-06-24  7:47         ` Zhangjin Wu
2023-06-24  7:47           ` Zhangjin Wu
2023-06-28 13:07 ` [PATCH v5 00/14] tools/nolibc: add a new syscall helper Zhangjin Wu
2023-06-28 13:07   ` Zhangjin Wu
2023-06-28 13:08   ` [PATCH v5 01/14] tools/nolibc: sys.h: add a syscall return helper Zhangjin Wu
2023-06-28 13:08     ` Zhangjin Wu
2023-06-28 13:11   ` [PATCH v5 02/14] tools/nolibc: unistd.h: apply __sysret() helper Zhangjin Wu
2023-06-28 13:11     ` Zhangjin Wu
2023-06-28 13:13   ` [PATCH v5 03/14] tools/nolibc: sys.h: " Zhangjin Wu
2023-06-28 13:13     ` Zhangjin Wu
2023-06-28 13:14   ` [PATCH v5 04/14] tools/nolibc: unistd.h: reorder the syscall macros Zhangjin Wu
2023-06-28 13:14     ` Zhangjin Wu
2023-06-28 13:17   ` [PATCH v5 05/14] tools/nolibc: string.h: clean up multiple whitespaces with tab Zhangjin Wu
2023-06-28 13:17     ` Zhangjin Wu
2023-06-28 13:19   ` [PATCH v5 06/14] tools/nolibc: arch-*.h: clean up multiple whitespaces Zhangjin Wu
2023-06-28 13:19     ` Zhangjin Wu
2023-07-02 18:44     ` Willy Tarreau
2023-07-02 18:44       ` Willy Tarreau
2023-07-03 14:02       ` Zhangjin Wu
2023-07-03 14:02         ` Zhangjin Wu
2023-06-28 13:22   ` [PATCH v5 07/14] tools/nolibc: arch-loongarch.h: shrink with SYSCALL_CLOBBERLIST Zhangjin Wu
2023-06-28 13:22     ` Zhangjin Wu
2023-07-02 18:50     ` Willy Tarreau
2023-07-02 18:50       ` Willy Tarreau
2023-07-03 11:28       ` Zhangjin Wu
2023-07-03 11:28         ` Zhangjin Wu
2023-06-28 13:31   ` [PATCH v5 08/14] tools/nolibc: arch-mips.h: " Zhangjin Wu
2023-06-28 13:31     ` Zhangjin Wu
2023-06-28 13:37   ` [PATCH v5 09/14] tools/nolibc: add missing my_syscall6() for mips Zhangjin Wu
2023-06-28 13:37     ` Zhangjin Wu
2023-07-02 18:55     ` Willy Tarreau
2023-07-02 18:55       ` Willy Tarreau
2023-07-03 10:13       ` Zhangjin Wu
2023-07-03 10:13         ` Zhangjin Wu
2023-06-28 13:39   ` [PATCH v5 10/14] tools/nolibc: __sysret: support syscalls who return a pointer Zhangjin Wu
2023-06-28 13:39     ` Zhangjin Wu
2023-07-02 19:17     ` Willy Tarreau
2023-07-02 19:17       ` Willy Tarreau
2023-07-03  8:36       ` Zhangjin Wu
2023-07-03  8:36         ` Zhangjin Wu
2023-07-03 10:03         ` Willy Tarreau
2023-07-03 10:03           ` Willy Tarreau
2023-07-03 11:15           ` Zhangjin Wu
2023-07-03 11:15             ` Zhangjin Wu
2023-06-28 13:41   ` [PATCH v5 11/14] tools/nolibc: clean up mmap() support Zhangjin Wu
2023-06-28 13:41     ` Zhangjin Wu
2023-07-02 19:23     ` Willy Tarreau
2023-07-02 19:23       ` Willy Tarreau
2023-07-03  6:51       ` Zhangjin Wu
2023-07-03  6:51         ` Zhangjin Wu
2023-06-28 13:44   ` [PATCH v5 12/14] selftests/nolibc: add EXPECT_PTREQ, EXPECT_PTRNE and EXPECT_PTRER Zhangjin Wu
2023-06-28 13:44     ` Zhangjin Wu
2023-06-28 13:46   ` [PATCH v5 13/14] selftests/nolibc: add sbrk_0 to test current brk getting Zhangjin Wu
2023-06-28 13:46     ` Zhangjin Wu
2023-06-28 13:51   ` [PATCH v5 14/14] selftests/nolibc: add mmap and munmap test cases Zhangjin Wu
2023-06-28 13:51     ` Zhangjin Wu
2023-07-02 19:33     ` Willy Tarreau
2023-07-02 19:33       ` Willy Tarreau
2023-07-03  6:03       ` Zhangjin Wu
2023-07-03  6:03         ` Zhangjin Wu
2023-07-03  7:25         ` Willy Tarreau
2023-07-03  7:25           ` Willy Tarreau
2023-07-03  8:06           ` Zhangjin Wu
2023-07-03  8:06             ` Zhangjin Wu
2023-07-03  8:20             ` Thomas Weißschuh
2023-07-03  8:20               ` Thomas Weißschuh
2023-07-03  9:15               ` Zhangjin Wu
2023-07-03  9:15                 ` Zhangjin Wu
2023-07-03  9:56             ` Willy Tarreau
2023-07-03  9:56               ` Willy Tarreau
2023-07-03 11:24               ` Zhangjin Wu
2023-07-03 11:24                 ` Zhangjin Wu
2023-07-02 19:34   ` [PATCH v5 00/14] tools/nolibc: add a new syscall helper Willy Tarreau
2023-07-02 19:34     ` Willy Tarreau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1687187451.git.falcon@tinylab.org \
    --to=falcon@tinylab.org \
    --cc=arnd@arndb.de \
    --cc=david.laight@aculab.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=thomas@t-8ch.de \
    --cc=w@1wt.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.