Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 20 Aug 2023 07:37:42 GMT
From:      Dmitry Chagin <dchagin@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 510f5c88f043 - main - linux(4): Modify write syscall to match Linux
Message-ID:  <202308200737.37K7bg1f049514@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by dchagin:

URL: https://cgit.FreeBSD.org/src/commit/?id=510f5c88f04316dc4014485ae281d90656f53d9d

commit 510f5c88f04316dc4014485ae281d90656f53d9d
Author:     Dmitry Chagin <dchagin@FreeBSD.org>
AuthorDate: 2023-08-20 07:36:28 +0000
Commit:     Dmitry Chagin <dchagin@FreeBSD.org>
CommitDate: 2023-08-20 07:36:28 +0000

    linux(4): Modify write syscall to match Linux
    
    Adding a write syscall wrapper is needed due to Linux family of write
    syscalls doesn't distinguish between in kernel blocking operations
    and always returns EAGAIN while FreeBSD can return ENOBUFS.
    
    MFC after:              1 month
---
 sys/amd64/linux/syscalls.master   | 4 ++--
 sys/amd64/linux32/syscalls.master | 6 +++---
 sys/arm64/linux/syscalls.master   | 4 ++--
 sys/i386/linux/syscalls.master    | 6 +++---
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/sys/amd64/linux/syscalls.master b/sys/amd64/linux/syscalls.master
index 178ae18836e6..885192963728 100644
--- a/sys/amd64/linux/syscalls.master
+++ b/sys/amd64/linux/syscalls.master
@@ -46,8 +46,8 @@
 		    l_size_t nbyte
 		);
 	}
-1	AUE_NULL	NOPROTO {
-		int write(
+1	AUE_NULL	STD {
+		int linux_write(
 		    int fd,
 		    char *buf,
 		    l_size_t nbyte
diff --git a/sys/amd64/linux32/syscalls.master b/sys/amd64/linux32/syscalls.master
index 9439a80b96f6..aa3e420053f4 100644
--- a/sys/amd64/linux32/syscalls.master
+++ b/sys/amd64/linux32/syscalls.master
@@ -55,11 +55,11 @@
 		    u_int nbyte
 		);
 	}
-4	AUE_NULL	NOPROTO {
-		int write(
+4	AUE_NULL	STD {
+		int linux_write(
 		    int fd,
 		    char *buf,
-		    u_int nbyte
+		    l_size_t nbyte
 		);
 	}
 5	AUE_OPEN_RWTC	STD {
diff --git a/sys/arm64/linux/syscalls.master b/sys/arm64/linux/syscalls.master
index 2bf8d4fad8ac..90c6fcfc4642 100644
--- a/sys/arm64/linux/syscalls.master
+++ b/sys/arm64/linux/syscalls.master
@@ -392,8 +392,8 @@
 		    l_size_t nbyte
 		);
 	}
-64	AUE_NULL	NOPROTO {
-		int write(
+64	AUE_NULL	STD {
+		int linux_write(
 		    int fd,
 		    char *buf,
 		    l_size_t nbyte
diff --git a/sys/i386/linux/syscalls.master b/sys/i386/linux/syscalls.master
index ff3a7d444600..81473ef776aa 100644
--- a/sys/i386/linux/syscalls.master
+++ b/sys/i386/linux/syscalls.master
@@ -55,11 +55,11 @@
 		    u_int nbyte
 		);
 	}
-4	AUE_NULL	NOPROTO {
-		int write(
+4	AUE_NULL	STD {
+		int linux_write(
 		    int fd,
 		    char *buf,
-		    u_int nbyte
+		    l_size_t nbyte
 		);
 	}
 5	AUE_OPEN_RWTC	STD {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202308200737.37K7bg1f049514>