]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
lib/syscall_shim: Add pread64 syscall
authorMarc Rittinghaus <marc.rittinghaus@unikraft.io>
Fri, 14 Apr 2023 14:57:26 +0000 (16:57 +0200)
committerUnikraft <monkey@unikraft.io>
Wed, 26 Apr 2023 23:10:14 +0000 (23:10 +0000)
This commit adds a definition of the pread64 syscall to prsyscall

Signed-off-by: Marc Rittinghaus <marc.rittinghaus@unikraft.io>
Reviewed-by: Razvan Deaconescu <razvand@unikraft.io>
Reviewed-by: Cezar Craciunoiu <cezar.craciunoiu@unikraft.io>
Approved-by: Simon Kuenzer <simon@unikraft.io>
Tested-by: Unikraft CI <monkey@unikraft.io>
GitHub-Closes: #836

lib/syscall_shim/uk_prsyscall.c

index a49e04fc9690d8219f3da4e51a9217ca07e0c657..657e8ccc7dfe553595f52b3680abde833767a77a 100644 (file)
@@ -966,6 +966,23 @@ static void pr_syscall(struct uk_streambuf *sb, int fmtf,
                break;
 #endif /* HAVE_uk_syscall_read && HAVE_uk_syscall_write */
 
+#ifdef HAVE_uk_syscall_pread64
+       case SYS_pread64:
+               do {
+                       int fd    = (int)    va_arg(args, long);
+                       void *buf = (void *) va_arg(args, long);
+                       __sz len  = (__sz)   va_arg(args, long);
+                       __sz off  = (__sz)   va_arg(args, long);
+
+                       PR_SYSCALL(sb, fmtf, syscall_num, rc >= 0, PT_FD, fd,
+                                  PT_BUFP(((rc >= 0) ? (__sz) rc : len))
+                                  | PT_OUT, buf,
+                                  PT_UDEC, len, PT_UDEC, off);
+                       PR_SYSRET(sb, fmtf, PT_UDEC, rc);
+               } while (0);
+               break;
+#endif /* HAVE_uk_syscall_pread64 */
+
 #ifdef HAVE_uk_syscall_stat
        case SYS_stat:
                VPR_SYSCALL(sb, fmtf, syscall_num, args, rc == 0,