git: 510f5c88f043 - main - linux(4): Modify write syscall to match Linux
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sun, 20 Aug 2023 07:37:42 UTC
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 {