Re: [PATCH] nvptx: Add _ssize_t as _READ_WRITE_RETURN_TYPE in newlib/libc/include/sys/config.h

Thomas Schwinge <[email protected]>
Newsgroups gmane.comp.lib.newlib
Message-ID <[email protected]>
Hi Arijit!

On 2025-07-17T01:27:41+0530, Arijit Kumar Das <[email protected]> wrote:
> Here's the final commit. I hope it's okay :-)

Almost.  ;-)

> From 3089acec0f3b5606bffcbca3b6864023ccd2afa3 Mon Sep 17 00:00:00 2001
> From: Arijit Kumar Das <[email protected]>
> Date: Thu, 17 Jul 2025 01:01:03 +0530
> Subject: [PATCH] [nvptx]: Use _READ_WRITE_RETURN_TYPE for return type and
>  _READ_WRITE_BUFSIZE_TYPE for count in read() and write()

The important thing about this commit is the changes of types.  I'd say:

    nvptx: Change 'read' and 'write' to 'ssize_t' return type, and 'size_t count'

Your following text is just textually describing the commit:

> - Changed the return type of read() from int to _READ_WRITE_RETURN_TYPE as per conventions.
> - Changed the 'count' parameter of read() and write() to _READ_WRITE_BUFSIZE_TYPE.
> - Defined both of the above macros in libc/include/sys/config.h under __nvptx__.
> - _READ_WRITE_RETURN_TYPE defined as _ssize_t (ssize_t).
> - _READ_WRITE_BUFSIZE_TYPE defined as __size_t (size_t).

..., so I personally wouldn't include that.  Instead, you could add some
rationale, perhaps:

    ... to match their specification in POSIX, and enable large files.

> Signed-off-by: Arijit Kumar Das <[email protected]>
> ---
>  newlib/libc/include/sys/config.h  | 5 +++++
>  newlib/libc/machine/nvptx/misc.c  | 4 ++--
>  newlib/libc/machine/nvptx/write.c | 3 ++-
>  3 files changed, 9 insertions(+), 3 deletions(-)

> --- a/newlib/libc/include/sys/config.h
> +++ b/newlib/libc/include/sys/config.h
> @@ -12,6 +12,11 @@
>  #define __DYNAMIC_REENT__
>  #endif
>  
> +#ifdef __nvptx__
> +#define _READ_WRITE_RETURN_TYPE _ssize_t
> +#define _READ_WRITE_BUFSIZE_TYPE __size_t
> +#endif
> +
>  /* exceptions first */
>  #if defined(__H8500__) || defined(__W65__)
>  #define __SMALL_BITFIELDS

ACK.

But for the following two nvptx-specific implementation files:

> --- a/newlib/libc/machine/nvptx/misc.c
> +++ b/newlib/libc/machine/nvptx/misc.c

> -int
> -read(int fd, void *buf, size_t count) {
> +_READ_WRITE_RETURN_TYPE
> +read(int fd, void *buf, _READ_WRITE_BUFSIZE_TYPE count) {

> --- a/newlib/libc/machine/nvptx/write.c
> +++ b/newlib/libc/machine/nvptx/write.c

> -_READ_WRITE_RETURN_TYPE write (int fd, const void *buf, size_t count)
> +_READ_WRITE_RETURN_TYPE
> +write (int fd, const void *buf, _READ_WRITE_BUFSIZE_TYPE count)
>  {

..., I'd like you to use the actual types.  So, please here replace
'_READ_WRITE_RETURN_TYPE' with 'ssize_t', and revert back
'_READ_WRITE_BUFSIZE_TYPE' to 'size_t'.


Grüße
 Thomas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.