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

Arijit Kumar Das arijitkdgit.official@gmail.com
Wed Jul 16 19:57:41 GMT 2025


Hi Thomas!

Here's the final commit. I hope it's okay :-)

Best regards,
Arijit


>From 3089acec0f3b5606bffcbca3b6864023ccd2afa3 Mon Sep 17 00:00:00 2001
From: Arijit Kumar Das <arijitkdgit.official@gmail.com>
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()

- 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).

Signed-off-by: Arijit Kumar Das <arijitkdgit.official@gmail.com>
---
 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(-)

diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h
index 4c9acc55c..c3cd51e86 100644
--- 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
diff --git a/newlib/libc/machine/nvptx/misc.c b/newlib/libc/machine/nvptx/misc.c
index 56e66b9f3..329804f88 100644
--- a/newlib/libc/machine/nvptx/misc.c
+++ b/newlib/libc/machine/nvptx/misc.c
@@ -62,8 +62,8 @@ open (const char *pathname, int flags, ...) {
   return -1;
 }

-int
-read(int fd, void *buf, size_t count) {
+_READ_WRITE_RETURN_TYPE
+read(int fd, void *buf, _READ_WRITE_BUFSIZE_TYPE count) {
   return 0;
 }

diff --git a/newlib/libc/machine/nvptx/write.c
b/newlib/libc/machine/nvptx/write.c
index 0544dd05e..49fb65944 100644
--- a/newlib/libc/machine/nvptx/write.c
+++ b/newlib/libc/machine/nvptx/write.c
@@ -18,7 +18,8 @@
 #include <unistd.h>
 #include <errno.h>

-_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)
 {
   size_t i;
   char *b = (char *)buf;
-- 
2.39.5
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-nvptx-Use-_READ_WRITE_RETURN_TYPE-for-return-type-an.patch
Type: text/x-patch
Size: 2275 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/newlib/attachments/20250717/0146fe58/attachment-0001.bin>


More information about the Newlib mailing list