All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ammar Faizi <ammarfaizi2@gnuweeb.org>
To: Jens Axboe <axboe@kernel.dk>
Cc: Ammar Faizi <ammarfaizi2@gnuweeb.org>,
	Alviro Iskandar Setiawan <alviro.iskandar@gnuweeb.org>,
	Fernanda Ma'rouf <fernandafmr12@gnuweeb.org>,
	Hao Xu <howeyxu@tencent.com>,
	Pavel Begunkov <asml.silence@gmail.com>,
	io-uring Mailing List <io-uring@vger.kernel.org>,
	GNU/Weeb Mailing List <gwml@vger.gnuweeb.org>
Subject: [PATCH liburing v5 02/10] arch: syscall: Add `__sys_open()` syscall
Date: Tue,  5 Jul 2022 14:43:52 +0700	[thread overview]
Message-ID: <20220705073920.367794-3-ammar.faizi@intel.com> (raw)
In-Reply-To: <20220705073920.367794-1-ammar.faizi@intel.com>

From: Ammar Faizi <ammarfaizi2@gnuweeb.org>

A prep patch to support aarch64 nolibc. We will use this to get the
page size by reading /proc/self/auxv.

Reviewed-by: Alviro Iskandar Setiawan <alviro.iskandar@gnuweeb.org>
Signed-off-by: Ammar Faizi <ammarfaizi2@gnuweeb.org>
---
 src/arch/generic/syscall.h |  9 +++++++++
 src/arch/syscall-defs.h    | 14 ++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/src/arch/generic/syscall.h b/src/arch/generic/syscall.h
index fa93064..71b2234 100644
--- a/src/arch/generic/syscall.h
+++ b/src/arch/generic/syscall.h
@@ -7,6 +7,8 @@
 #ifndef LIBURING_ARCH_GENERIC_SYSCALL_H
 #define LIBURING_ARCH_GENERIC_SYSCALL_H
 
+#include <fcntl.h>
+
 static inline int ____sys_io_uring_register(int fd, unsigned opcode,
 					    const void *arg, unsigned nr_args)
 {
@@ -41,6 +43,13 @@ static inline int ____sys_io_uring_enter(int fd, unsigned to_submit,
 				       _NSIG / 8);
 }
 
+static inline int __sys_open(const char *pathname, int flags, mode_t mode)
+{
+	int ret;
+	ret = open(pathname, flags, mode);
+	return (ret < 0) ? -errno : ret;
+}
+
 static inline void *__sys_mmap(void *addr, size_t length, int prot, int flags,
 			       int fd, off_t offset)
 {
diff --git a/src/arch/syscall-defs.h b/src/arch/syscall-defs.h
index 1e8ae1b..d38b5f3 100644
--- a/src/arch/syscall-defs.h
+++ b/src/arch/syscall-defs.h
@@ -3,6 +3,20 @@
 #ifndef LIBURING_ARCH_SYSCALL_DEFS_H
 #define LIBURING_ARCH_SYSCALL_DEFS_H
 
+#include <fcntl.h>
+
+static inline int __sys_open(const char *pathname, int flags, mode_t mode)
+{
+	/*
+	 * Some architectures don't have __NR_open, but __NR_openat.
+	 */
+#ifdef __NR_open
+	return __do_syscall3(__NR_open, pathname, flags, mode);
+#else
+	return __do_syscall4(__NR_openat, AT_FDCWD, pathname, flags, mode);
+#endif
+}
+
 static inline void *__sys_mmap(void *addr, size_t length, int prot, int flags,
 			       int fd, off_t offset)
 {
-- 
Ammar Faizi


  parent reply	other threads:[~2022-07-05  7:45 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-05  7:43 [PATCH liburing v5 00/10] aarch64 support Ammar Faizi
2022-07-05  7:43 ` [PATCH liburing v5 01/10] CHANGELOG: Fixup missing space Ammar Faizi
2022-07-05  7:43 ` Ammar Faizi [this message]
2022-07-05  7:43 ` [PATCH liburing v5 03/10] arch: syscall: Add `__sys_read()` syscall Ammar Faizi
2022-07-05  7:43 ` [PATCH liburing v5 04/10] arch: Remove `__INTERNAL__LIBURING_LIB_H` checks Ammar Faizi
2022-07-05  7:43 ` [PATCH liburing v5 05/10] arch/aarch64: lib: Add `get_page_size()` function Ammar Faizi
2022-07-05  7:43 ` [PATCH liburing v5 06/10] lib: Style fixup for #if / #elif / #else / #endif Ammar Faizi
2022-07-05  7:43 ` [PATCH liburing v5 07/10] lib: Enable nolibc support for aarch64 Ammar Faizi
2022-07-05  7:43 ` [PATCH liburing v5 08/10] test: Add nolibc test Ammar Faizi
2022-07-05  7:43 ` [PATCH liburing v5 09/10] .github: Enable aarch64 nolibc build for GitHub bot Ammar Faizi
2022-07-05  7:44 ` [PATCH liburing v5 10/10] CHANGELOG: Note about aarch64 support Ammar Faizi
2022-07-05 14:26 ` [PATCH liburing v5 00/10] " Jens Axboe

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=20220705073920.367794-3-ammar.faizi@intel.com \
    --to=ammarfaizi2@gnuweeb.org \
    --cc=alviro.iskandar@gnuweeb.org \
    --cc=asml.silence@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=fernandafmr12@gnuweeb.org \
    --cc=gwml@vger.gnuweeb.org \
    --cc=howeyxu@tencent.com \
    --cc=io-uring@vger.kernel.org \
    /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.