From patchwork Sun Aug 13 08:41:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820756 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=odi+VaeB; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7KK2nqxz1yfS for ; Mon, 14 Aug 2023 05:44:53 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzR-0007j8-W7; Sun, 13 Aug 2023 15:43:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzQ-0007iu-QB for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:04 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzP-0002Lq-7L for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:04 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-3fe32016bc8so32836815e9.1 for ; Sun, 13 Aug 2023 12:43:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955782; x=1692560582; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BL3xjDJvjzEgMaYToYQ6Bx56p2LIHs2TtBVlnMHlDaw=; b=odi+VaeB8kAtJ5pY4QLftDxfnC2b7jaGIwaE302In1e8peVQTfcdAbZGOAfWuP2/GI nwIcKPaiUtSYhThzDaZZ0+O2+ZbZ4XdRrHEcek2Wvu8IZWpR0g2mj7FaaQ86q88mmcXb +zRPupamWyG24vXpuO76pleSpSbzECGllH3MrIZk7XNxsBBFhLOlDecEekuV1Hu5mjnY A4fQNhNJm7H7kRythn3URaryTyunPCwFrp6OdY8fYS3mlQ1+3S/Jvc09EYQC0DwsKtQP f7aVGki8JQwz8Fz033ho/vDRTDhAFXD5LzZzzCVTssDeaD838THoV/C9yJBIVE02FjUa nZnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955782; x=1692560582; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BL3xjDJvjzEgMaYToYQ6Bx56p2LIHs2TtBVlnMHlDaw=; b=AcEcb5O+WGlibN6w0bH94ttWJHY0E8oTGEizVwOfX5InRl0JgzoA6ayWJEEVBUp8GJ foeMgV5v8TOLGjW9koKEW9xgEEU6pz4If+7aIUJWxK3ZbT/VeVs9hml9RoKdIO7k3VPn e+GsF6O4I9lokivVAHp9CNUy2n/nT16TTpIwPKKG+se24fIOTFoiviiEL6o6yrezC0w1 2UM7KYCcPFw7RoPUlEX3CUtCGC+bwbvG38Ii+25iH1/PvdUT2k8zYmln3b8/ESvlsr9a YhXAmnCri9xrWjvmAsxUaH95mWhADA5U9oAGtf1Ab9aAmGHXMAyqAijdkBnHtNkfO3xW gXig== X-Gm-Message-State: AOJu0YxfoeutE+Ecc11BD+Q9wzKH1hlRuoEHQ0rIL3vsEGua5wALY4MZ jKvtDV86SjwFgGy2v39b9smjSnDihxU= X-Google-Smtp-Source: AGHT+IHcfAMlVbsBfQhIdSIvlN04vhUOIcFfabHbBrG+MW4goPEtwcbGFSQnGRJw1l53PgYOhoRZsA== X-Received: by 2002:a05:600c:b44:b0:3fe:6199:9393 with SMTP id k4-20020a05600c0b4400b003fe61999393mr6226040wmr.27.1691955781635; Sun, 13 Aug 2023 12:43:01 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:01 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v3 01/32] Move _WANT_FREEBSD macros to include/qemu/osdep.h Date: Sun, 13 Aug 2023 10:41:22 +0200 Message-Id: <20230813084153.6510-2-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32d.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Warner Losh move _WANT_FREEBSD macros from bsd-user/freebsd/os-syscall.c to include/qemu/osdep.h in order to pull some struct defintions needed later in the build. Signed-off-by: Warner Losh Signed-off-by: Karim Taha Acked-by: Richard Henderson --- bsd-user/freebsd/os-syscall.c | 11 ----------- include/qemu/osdep.h | 13 +++++++++++++ 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c index de36c4b71c..2224a280ea 100644 --- a/bsd-user/freebsd/os-syscall.c +++ b/bsd-user/freebsd/os-syscall.c @@ -17,17 +17,6 @@ * You should have received a copy of the GNU General Public License * along with this program; if not, see . */ - -/* - * We need the FreeBSD "legacy" definitions. Rust needs the FreeBSD 11 system - * calls since it doesn't use libc at all, so we have to emulate that despite - * FreeBSD 11 being EOL'd. - */ -#define _WANT_FREEBSD11_STAT -#define _WANT_FREEBSD11_STATFS -#define _WANT_FREEBSD11_DIRENT -#define _WANT_KERNEL_ERRNO -#define _WANT_SEMUN #include "qemu/osdep.h" #include "qemu/cutils.h" #include "qemu/path.h" diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h index cc61b00ba9..1ca94ad3de 100644 --- a/include/qemu/osdep.h +++ b/include/qemu/osdep.h @@ -88,6 +88,19 @@ QEMU_EXTERN_C int daemon(int, int); #define __USE_MINGW_ANSI_STDIO 1 #endif +/* + * We need the FreeBSD "legacy" definitions. Rust needs the FreeBSD 11 system + * calls since it doesn't use libc at all, so we have to emulate that despite + * FreeBSD 11 being EOL'd. + */ +#ifdef __FreeBSD__ +#define _WANT_FREEBSD11_STAT +#define _WANT_FREEBSD11_STATFS +#define _WANT_FREEBSD11_DIRENT +#define _WANT_KERNEL_ERRNO +#define _WANT_SEMUN +#endif + #include #include #include From patchwork Sun Aug 13 08:41:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820758 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=NNsJPjj6; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Kj08Mmz1yf2 for ; Mon, 14 Aug 2023 05:45:13 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzT-0007jn-LA; Sun, 13 Aug 2023 15:43:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzS-0007j9-1v for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:06 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzQ-0002Ly-GK for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:05 -0400 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-3fe32016bc8so32836955e9.1 for ; Sun, 13 Aug 2023 12:43:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955783; x=1692560583; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Wf2Tilhe91EY1UAFxJ7h27O9Jy4Z0F8evRl+LBgLLVg=; b=NNsJPjj6gdiE9AY9Ov/JoS7/Hs8GeNYSor4fQT2unef8qpKwqxwhHLl4VjJmHIB060 jK1Qe0obXzHXBKgg841QZDh7OOCtapYvYFsra38n0rRRYP57L2AfhI1C7bblfKHCILtI BQyFzekV/NbACeHdI2ro6wTOtBCFhafZtbSb9FwHvMk2yotlguB9I3e5/r1AF96gGsSe iRPT3XzXRHn0vE8v9OrefQOMqDw9rmu9dX2LfmWzMMWSnrgXBEfjyuoNvh11hYsOdqXf IjoGT8YsgB7rOE1e9Nvh2eCBExjob36qdPe0BmhNXifCDBonnetDEImHzlP6geoAvgBJ QmUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955783; x=1692560583; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Wf2Tilhe91EY1UAFxJ7h27O9Jy4Z0F8evRl+LBgLLVg=; b=gwKWko5mtQtj3/sv8m+B0EcVEY/+YoBhODGVmHNmTQV+jXnlQuldUJHgmqtW6LCyo/ 14LIHHliawTlbtyx60vvN7MPJ4D6Sw03MqI1dCcc6kUdtWwyrrqygkjIuygqcePJBQLG g0ZKNakYi+BRVm8Zcn69OCHENnyxO4I+zJezxo3Wt+p8UzLZCnIGZOUAYxu4fND0AlKC I5z6MaMTEC1ZvnVXj5cuArlYne87eGs8Q0SZFSqHsqtnjtl1c6CvO76yjMMDHdsACBT/ MVsbuvDXzqyq6GDmvO+otgncf+9qe7GECJZky71TNsM5nqk4lxoCFxR2EOAGdMQY8ATu 736A== X-Gm-Message-State: AOJu0YxQI/McC40RoOJIhpTfdmUYE5KoFNSvsGvWv6e1iVaTeiLdNcwq VkDYjOxTO+cgaqGmPYhhlE00NKnfOFA= X-Google-Smtp-Source: AGHT+IFInV8UhjWI+ZflgrLcCsBVQM+KlNAGX3zAvLCgJ0jeErryAQuyUv4rW7uP2Cqb7+ye8jb1Eg== X-Received: by 2002:a7b:c44f:0:b0:3fb:abd0:2b52 with SMTP id l15-20020a7bc44f000000b003fbabd02b52mr6218222wmi.13.1691955782772; Sun, 13 Aug 2023 12:43:02 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:02 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Kyle Evans , Karim Taha , Richard Henderson Subject: [PATCH v3 02/32] Disable clang warnings Date: Sun, 13 Aug 2023 10:41:23 +0200 Message-Id: <20230813084153.6510-3-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Kyle Evans Implement PRAGMA_DISABLE_PACKED_WARNING and PRAGMA_REENABLE_PACKED_WARNING macros in include/qemu/compiler.h. Signed-off-by: Kyle Evans Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- include/qemu/compiler.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/include/qemu/compiler.h b/include/qemu/compiler.h index a309f90c76..b037442518 100644 --- a/include/qemu/compiler.h +++ b/include/qemu/compiler.h @@ -22,6 +22,36 @@ #define QEMU_EXTERN_C extern #endif +/* + * Tricky points: + * - Use __builtin_choose_expr to avoid type promotion from ?:, + * - Invalid sizes result in a compile time error stemming from + * the fact that abort has no parameters. + * - It's easier to use the endian-specific unaligned load/store + * functions than host-endian unaligned load/store plus tswapN. + * - The pragmas are necessary only to silence a clang false-positive + * warning: see https://bugs.llvm.org/show_bug.cgi?id=39113 . + * - We have to disable -Wpragmas warnings to avoid a complaint about + * an unknown warning type from older compilers that don't know about + * -Waddress-of-packed-member. + * - gcc has bugs in its _Pragma() support in some versions, eg + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83256 -- so we only + * include the warning-suppression pragmas for clang + */ +#ifdef __clang__ +#define PRAGMA_DISABLE_PACKED_WARNING \ + _Pragma("GCC diagnostic push"); \ + _Pragma("GCC diagnostic ignored \"-Wpragmas\""); \ + _Pragma("GCC diagnostic ignored \"-Waddress-of-packed-member\"") + +#define PRAGMA_REENABLE_PACKED_WARNING \ + _Pragma("GCC diagnostic pop") + +#else +#define PRAGMA_DISABLE_PACKED_WARNING +#define PRAGMA_REENABLE_PACKED_WARNING +#endif + #if defined(_WIN32) && (defined(__x86_64__) || defined(__i386__)) # define QEMU_PACKED __attribute__((gcc_struct, packed)) #else From patchwork Sun Aug 13 08:41:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820767 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=P6bDIRf0; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Mh4hl8z1yf2 for ; Mon, 14 Aug 2023 05:46:56 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzU-0007kB-6Y; Sun, 13 Aug 2023 15:43:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzT-0007jm-Iq for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:07 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzR-0002MH-P7 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:07 -0400 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-3fe4a89e7efso32819335e9.3 for ; Sun, 13 Aug 2023 12:43:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955784; x=1692560584; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=DXpa9kEhKhFw0qGM/7h10TnGQSqD2YJSfz1ZM17XIl0=; b=P6bDIRf0TRRlpYX5vnV5BWGnKBKc44WNww2eRQXaRSgGQBKOobg6YHNum11c7Sv0A7 Cm4brdWLYfANERvPd89xnngj5lbSF+9b2Wb6O7JTiiOF4BbFxDwy2lfkQoDXkCUQTjW4 YmK4sUkBWyOU+O9A0lfuwVaVx8t3mxajn0z2MbTMeI40zQwTGxrmpNw48Rt0MEIBXMOG +rBiCBr/3bBSDNROhZmzFhicoS4gbE4MetxlrQsZD1VbysXwpHriPU9gooyOwskFAFJP kc4rJCsfywNh9aAEo+JaAv/G4zBQhHEr+MbQDgTFm7qr3ZfvJT+hYfuVukXbkHTJ9nfD PhGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955784; x=1692560584; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=DXpa9kEhKhFw0qGM/7h10TnGQSqD2YJSfz1ZM17XIl0=; b=dlLpQno52TApb9nuOcL1c8+rkF9IZG3Kbl3+z1TzVkUJDCq3aS6XDFQxc0sXtxZJL3 jLJdJur1thfdfy1TLORJc7sJP2J9W+l2mRtUoUOzJ6t6jopiFucCxfY/FhyBPtRgAX6R PfN4V9Nc/dPaDCtoc0q/6jdc2yr9TqIJj0NyYhD6TXS973ASGiI2hc9v3+lvwDw+9jla i4n0RGRhALga9y0Pwz2PmWOXimFcPwAMR+UaI/2GLebAt8ni1sDcu5Th7USIDTXuOrr5 +n6zSaxUCXwT2L6DefXSjajvYFc+4+D5C+Ti/7LXXClYvvS8EGnz/leJ1+rTOELblkuE 6uhQ== X-Gm-Message-State: AOJu0YybjKJe3zoI95Q0gqLmOAFpg222QrICOW7ACIKcG8JbgejEmuxz 4EjW/wsFlSBLRx3AoDtBplBHvBqNiDk= X-Google-Smtp-Source: AGHT+IEwotdSrecsDYTf5c08bL4PXId3YALrC2Xvg3twxTfEcQsLD9/GV4Oxr7ndUnDwRdQSFGv6Jg== X-Received: by 2002:a05:600c:22da:b0:3f7:e3dd:8a47 with SMTP id 26-20020a05600c22da00b003f7e3dd8a47mr6098617wmg.11.1691955783901; Sun, 13 Aug 2023 12:43:03 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:03 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v3 03/32] Update the definitions of __put_user and __get_user macros Date: Sun, 13 Aug 2023 10:41:24 +0200 Message-Id: <20230813084153.6510-4-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32f.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Warner Losh Use __builtin_choose_expr to avoid type promotion from ?: in __put_user_e and __get_user_e macros. Copied from linux-user/qemu.h, originally by Blue Swirl. Signed-off-by: Warner Losh Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/qemu.h | 81 ++++++++++++++++++++--------------------------- bsd-user/signal.c | 5 +-- 2 files changed, 35 insertions(+), 51 deletions(-) diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h index edf9602f9b..656f38db56 100644 --- a/bsd-user/qemu.h +++ b/bsd-user/qemu.h @@ -276,50 +276,37 @@ static inline bool access_ok(int type, abi_ulong addr, abi_ulong size) * These are usually used to access struct data members once the struct has been * locked - usually with lock_user_struct(). */ -#define __put_user(x, hptr)\ -({\ - int size = sizeof(*hptr);\ - switch (size) {\ - case 1:\ - *(uint8_t *)(hptr) = (uint8_t)(typeof(*hptr))(x);\ - break;\ - case 2:\ - *(uint16_t *)(hptr) = tswap16((typeof(*hptr))(x));\ - break;\ - case 4:\ - *(uint32_t *)(hptr) = tswap32((typeof(*hptr))(x));\ - break;\ - case 8:\ - *(uint64_t *)(hptr) = tswap64((typeof(*hptr))(x));\ - break;\ - default:\ - abort();\ - } \ - 0;\ -}) +#define __put_user_e(x, hptr, e) \ + do { \ + PRAGMA_DISABLE_PACKED_WARNING; \ + (__builtin_choose_expr(sizeof(*(hptr)) == 1, stb_p, \ + __builtin_choose_expr(sizeof(*(hptr)) == 2, stw_##e##_p, \ + __builtin_choose_expr(sizeof(*(hptr)) == 4, stl_##e##_p, \ + __builtin_choose_expr(sizeof(*(hptr)) == 8, stq_##e##_p, abort)))) \ + ((hptr), (x)), (void)0); \ + PRAGMA_REENABLE_PACKED_WARNING; \ + } while (0) + +#define __get_user_e(x, hptr, e) \ + do { \ + PRAGMA_DISABLE_PACKED_WARNING; \ + ((x) = (typeof(*hptr))( \ + __builtin_choose_expr(sizeof(*(hptr)) == 1, ldub_p, \ + __builtin_choose_expr(sizeof(*(hptr)) == 2, lduw_##e##_p, \ + __builtin_choose_expr(sizeof(*(hptr)) == 4, ldl_##e##_p, \ + __builtin_choose_expr(sizeof(*(hptr)) == 8, ldq_##e##_p, abort)))) \ + (hptr)), (void)0); \ + PRAGMA_REENABLE_PACKED_WARNING; \ + } while (0) -#define __get_user(x, hptr) \ -({\ - int size = sizeof(*hptr);\ - switch (size) {\ - case 1:\ - x = (typeof(*hptr))*(uint8_t *)(hptr);\ - break;\ - case 2:\ - x = (typeof(*hptr))tswap16(*(uint16_t *)(hptr));\ - break;\ - case 4:\ - x = (typeof(*hptr))tswap32(*(uint32_t *)(hptr));\ - break;\ - case 8:\ - x = (typeof(*hptr))tswap64(*(uint64_t *)(hptr));\ - break;\ - default:\ - x = 0;\ - abort();\ - } \ - 0;\ -}) + +#if TARGET_BIG_ENDIAN +# define __put_user(x, hptr) __put_user_e(x, hptr, be) +# define __get_user(x, hptr) __get_user_e(x, hptr, be) +#else +# define __put_user(x, hptr) __put_user_e(x, hptr, le) +# define __get_user(x, hptr) __get_user_e(x, hptr, le) +#endif /* * put_user()/get_user() take a guest address and check access @@ -332,10 +319,10 @@ static inline bool access_ok(int type, abi_ulong addr, abi_ulong size) ({ \ abi_ulong __gaddr = (gaddr); \ target_type *__hptr; \ - abi_long __ret; \ + abi_long __ret = 0; \ __hptr = lock_user(VERIFY_WRITE, __gaddr, sizeof(target_type), 0); \ if (__hptr) { \ - __ret = __put_user((x), __hptr); \ + __put_user((x), __hptr); \ unlock_user(__hptr, __gaddr, sizeof(target_type)); \ } else \ __ret = -TARGET_EFAULT; \ @@ -346,10 +333,10 @@ static inline bool access_ok(int type, abi_ulong addr, abi_ulong size) ({ \ abi_ulong __gaddr = (gaddr); \ target_type *__hptr; \ - abi_long __ret; \ + abi_long __ret = 0; \ __hptr = lock_user(VERIFY_READ, __gaddr, sizeof(target_type), 1); \ if (__hptr) { \ - __ret = __get_user((x), __hptr); \ + __get_user((x), __hptr); \ unlock_user(__hptr, __gaddr, 0); \ } else { \ (x) = 0; \ diff --git a/bsd-user/signal.c b/bsd-user/signal.c index f4e078ee1d..4db85a3485 100644 --- a/bsd-user/signal.c +++ b/bsd-user/signal.c @@ -787,10 +787,7 @@ static int reset_signal_mask(target_ucontext_t *ucontext) TaskState *ts = (TaskState *)thread_cpu->opaque; for (i = 0; i < TARGET_NSIG_WORDS; i++) { - if (__get_user(target_set.__bits[i], - &ucontext->uc_sigmask.__bits[i])) { - return -TARGET_EFAULT; - } + __get_user(target_set.__bits[i], &ucontext->uc_sigmask.__bits[i]); } target_to_host_sigset_internal(&blocked, &target_set); ts->signal_mask = blocked; From patchwork Sun Aug 13 08:41:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820785 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=edDY1tzR; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7SG5Wvpz1yYC for ; Mon, 14 Aug 2023 05:50:54 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzW-0007l1-Pl; Sun, 13 Aug 2023 15:43:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzV-0007kQ-8U for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:09 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzT-0002MY-CN for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:08 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-3fe4cdb727cso37658205e9.0 for ; Sun, 13 Aug 2023 12:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955785; x=1692560585; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rihZrS1lXwvEqAtW/9cqI/d+KmpRY2H0KWTcRttsIkw=; b=edDY1tzRF+ZXqbuaWC3iPJoQ9/PanrXnol5IaD3n1aKokEyzkfUuMpBplBi+PR+laW Kssf0fFpkMaobcnv01Cs7T+XFnhvf/l5DBCvmAVBEvXaTgT++YrEwkw/9QM5p2j4hNvH UXXpKI01InOP46aPdXU5Way23++P7xj4O3bmqgHhkuZ6GE56Zb++QvCpyXheD6XdDagH y3AHw3Vnd7T3+ymZeljh8sx72GGsgkSu4ajDq+jBzx0/EpdMOUhuIMcgQiVgwjVq7BKj 0xgmk64fMxHr64FUHlOVu9/YMUC30aDy0cTxFt3qmA4IYRwikoWbRQeCt8RAMMOvNw+C RQjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955785; x=1692560585; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rihZrS1lXwvEqAtW/9cqI/d+KmpRY2H0KWTcRttsIkw=; b=Rq5pNGPmg0rTGlNQEjfs6lz8QGn3Z+XN8vJyd4qXBpklH5pYFUnhsyu08Qfjz17EwQ kLULnhRrkL24cEEGp8RKiObi5ygcygOEnh+B0XMs6MZ6ABLw7oHG6xQuEMDqZMsXD7Qc 0gLn//gIz0RsupWtS0L1LfImAzEMt8Ic+O4tCAPSbWRoogx8/nTJkonQbDF7BzqyuECw AcxV+QmAAAj9+nOPqqQJe3VTgfkNaNBc84nOjOWVaa8n25Pm+HYmelmbjzlhMskCpZtT OlE/t04PdLEhcoCMiWjH9CIyER+XpgcehRrSWvgX8drNp5BmrzqGLH2NfExSjTijk61b 6PAg== X-Gm-Message-State: AOJu0YwG0dkSMHO/ni7l9H93ML4AQfh24joYGN1fjHxkDNFeN/r/z6xV T9CjhvQSi+MwezHkAr6B12XPCkDI9PE= X-Google-Smtp-Source: AGHT+IE1OewVvgflXoca6bRMzSnIsbZedwi+veqjKxk0eDv+iuMvCLMLqs85Ln4dHFC+DdIxzu8xpw== X-Received: by 2002:a05:600c:230f:b0:3fa:964e:e85 with SMTP id 15-20020a05600c230f00b003fa964e0e85mr6252865wmo.5.1691955785072; Sun, 13 Aug 2023 12:43:05 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:04 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Michal Meloun , Karim Taha , Richard Henderson Subject: [PATCH v3 04/32] Declarations of h2t and t2h conversion functions. Date: Sun, 13 Aug 2023 10:41:25 +0200 Message-Id: <20230813084153.6510-5-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x333.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Declarations of functions that convert between host and target structs. Co-authored-by: Michal Meloun Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/qemu-os.h | 50 ++++++++++++++++++++++++++++++++++++++ bsd-user/qemu.h | 1 + 2 files changed, 51 insertions(+) create mode 100644 bsd-user/freebsd/qemu-os.h diff --git a/bsd-user/freebsd/qemu-os.h b/bsd-user/freebsd/qemu-os.h new file mode 100644 index 0000000000..12adc50928 --- /dev/null +++ b/bsd-user/freebsd/qemu-os.h @@ -0,0 +1,50 @@ +/* + * FreeBSD conversion extern declarations + * + * Copyright (c) 2013 Stacey D. Son + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#ifndef QEMU_OS_H +#define QEMU_OS_H + +/* qemu/osdep.h pulls in the rest */ + +#include +#include +#include +#include +#include +#include +#include + +struct freebsd11_stat; + +/* os-stat.c */ +abi_long h2t_freebsd11_stat(abi_ulong target_addr, + struct freebsd11_stat *host_st); +abi_long h2t_freebsd11_nstat(abi_ulong target_addr, + struct freebsd11_stat *host_st); +abi_long t2h_freebsd_fhandle(fhandle_t *host_fh, abi_ulong target_addr); +abi_long h2t_freebsd_fhandle(abi_ulong target_addr, fhandle_t *host_fh); +abi_long h2t_freebsd11_statfs(abi_ulong target_addr, + struct freebsd11_statfs *host_statfs); +abi_long target_to_host_fcntl_cmd(int cmd); +abi_long h2t_freebsd_stat(abi_ulong target_addr, + struct stat *host_st); +abi_long h2t_freebsd_statfs(abi_ulong target_addr, + struct statfs *host_statfs); + +#endif /* QEMU_OS_H */ diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h index 656f38db56..2725fdd7ac 100644 --- a/bsd-user/qemu.h +++ b/bsd-user/qemu.h @@ -38,6 +38,7 @@ extern char **environ; #include "exec/gdbstub.h" #include "qemu/clang-tsa.h" +#include "qemu-os.h" /* * This struct is used to hold certain information about the image. Basically, * it replicates in user space what would be certain task_struct fields in the From patchwork Sun Aug 13 08:41:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820766 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=Vh2l663+; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7MM1XGpz1yf2 for ; Mon, 14 Aug 2023 05:46:39 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzX-0007lO-Ak; Sun, 13 Aug 2023 15:43:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzV-0007kR-CV for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:09 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzT-0002Mf-Ux for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:09 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-3fe5c0e5747so21078115e9.0 for ; Sun, 13 Aug 2023 12:43:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955786; x=1692560586; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=N1kSJoA0fUeLrj0hCdLA06yJohbmCzmxtAnupvK2JPQ=; b=Vh2l663+i37yRh+PunYEcmq2jBWvqxOqErV+Shm5K03rIjqPp6hj1aZEDJVWwaTFxV AT1T9VkmYJHmphhJqvqN4yRncg8SkayR3sMdk7ruQ4u+JPI+xXCjxS0ae8ddOUW5/FME YHA5OjJZ+JTiB178fJjeOp8AuthZsaJtRWhkayxH9H3RwAj18UvU32+jIaIGVVVd/6DU H0JKvFuwT4WyJ0iREAZxtYsMeASg7m8TzyJpd3Qe8DZKHmNL3ujcPZl67uh0kmeWl38f Yph+CuIexhVdbJx5rCaKiwQUC5IC/js3hlx9Gp0kkaf/EqpQfNeWA6R4vgZf6Hg3cqtr NS8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955786; x=1692560586; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N1kSJoA0fUeLrj0hCdLA06yJohbmCzmxtAnupvK2JPQ=; b=IRnQKO8CTlMaEiluxeRc1mpSjk9Tp0oF0CVNlyzyBkximBEaK0BnaGjwDyYsne90qM Cw7LWE59NAqMkq4eJwIFPgw1snCzDH22ywPgoXXEquXjxU0oGeQ6YROdK3/fQHA2IWS0 HRQO4RnOeEvHoToXIzW77AM55Uw9qaKpKvESkWZW6t0kzD5eVMRF6Sbfe8wpQ97LQfbD lGoR+S11gWicsZwZmVQ6OBEocfk5Av6iz0O6L26iFA0ThugjOu4pn7zkICYWF2J9K9UQ cZZBr7vZTw1M5UdgL3Pgdcs76XcW+hktdaK3fCYZSaB7jyIWCSbKMlQKQdKXbomAbvmC t7Qw== X-Gm-Message-State: AOJu0YyCOM/x55YCjH+NKi7HhSbZjfTTny61Z4fW+7kMv/ikumkd6Ves ZvX3lacKVdubJy0qQy7WC7/hUk7uM2Q= X-Google-Smtp-Source: AGHT+IE0PDUCsK45LBRYcnmlfEuTAZHF0iYUjN3M6n7lgfmlSLqQ9Ox59bErgp7WMYqtYKjP+Xai1w== X-Received: by 2002:a7b:ce99:0:b0:3fe:1f70:9e54 with SMTP id q25-20020a7bce99000000b003fe1f709e54mr8290255wmj.4.1691955786266; Sun, 13 Aug 2023 12:43:06 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:05 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 05/32] Add struct target_freebsd11_stat to bsd-user/syscall_defs Date: Sun, 13 Aug 2023 10:41:26 +0200 Message-Id: <20230813084153.6510-6-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x333.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Signed-off-by: Stacey Son Signed-off-by: Karim Taha Acked-by: Richard Henderson --- bsd-user/syscall_defs.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h index b6d113d24a..30c24bfe1b 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -179,6 +179,39 @@ struct target_freebsd__wrusage { struct target_freebsd_rusage wru_children; }; +/* + * sys/stat.h + */ +struct target_freebsd11_stat { + uint32_t st_dev; /* inode's device */ + uint32_t st_ino; /* inode's number */ + int16_t st_mode; /* inode protection mode */ + int16_t st_nlink; /* number of hard links */ + uint32_t st_uid; /* user ID of the file's owner */ + uint32_t st_gid; /* group ID of the file's group */ + uint32_t st_rdev; /* device type */ + struct target_freebsd_timespec st_atim; /* time last accessed */ + struct target_freebsd_timespec st_mtim; /* time last data modification */ + struct target_freebsd_timespec st_ctim; /* time last file status change */ + int64_t st_size; /* file size, in bytes */ + int64_t st_blocks; /* blocks allocated for file */ + uint32_t st_blksize; /* optimal blocksize for I/O */ + uint32_t st_flags; /* user defined flags for file */ + uint32_t st_gen; /* file generation number */ + int32_t st_lspare; + struct target_freebsd_timespec st_birthtim; /* time of file creation */ + /* + * Explicitly pad st_birthtim to 16 bytes so that the size of + * struct stat is backwards compatible. We use bitfields instead + * of an array of chars so that this doesn't require a C99 compiler + * to compile if the size of the padding is 0. We use 2 bitfields + * to cover up to 64 bits on 32-bit machines. We assume that + * CHAR_BIT is 8... + */ + unsigned int:(8 / 2) * (16 - (int)sizeof(struct target_freebsd_timespec)); + unsigned int:(8 / 2) * (16 - (int)sizeof(struct target_freebsd_timespec)); +} __packed; + #define safe_syscall0(type, name) \ type safe_##name(void) \ { \ From patchwork Sun Aug 13 08:41:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820769 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=Nguw5GqW; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7N70wZPz1yf2 for ; Mon, 14 Aug 2023 05:47:19 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzX-0007lR-SO; Sun, 13 Aug 2023 15:43:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzW-0007l2-PF for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:10 -0400 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzV-0002My-8H for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:10 -0400 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-3fe4cdb727cso37658465e9.0 for ; Sun, 13 Aug 2023 12:43:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955787; x=1692560587; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=H+kI/UOoSzs0V1atGOhJOSHuZhuHYYPbhxRnCeQAmR4=; b=Nguw5GqWuNwdU9MrcZ5hNd9U2MfyFAjHXWHIwae2C36ThsTj/45eU2vMA23OlMWi2F 97u+N41g1fq0HvhxKi59fpLi84LQapbYObC42tAf42vmCCqPcP9rLRCzduUbXkCpI1w9 konpTW/WWahLDm1BrOyWy6rOMK50K3GMSvIs6dX1StBrUXGhT3SbgPibeVYx9y3rf3dH X3vuj1fnva/X7MEQEhOT5v3jB+F13R9cTWs7Q0DrW9sfle4kpRv8PjpKCBpOC4OQLfWY 2lBb/wh3L1YFGDMqE2Jm61mrYmeahoSa9QSF/FmHWLfTAP0rXd1riNzIKharxitLpqtZ WkHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955787; x=1692560587; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H+kI/UOoSzs0V1atGOhJOSHuZhuHYYPbhxRnCeQAmR4=; b=YwThLTkLn9MY7mNdqAJ04UwE0H1DRgIdA9wSI64A7vQK/+HKbWx/Y09kkRTupPxsio avZ/Y/SNDjlCHH1OjBbFf+1Y8l0rJxltk8vSInlE3xD9cxrukEJfkpWf1FY85CIpSjDM MnNtj/RlyFfwaGLeQEW+dqz6D6CQBMfzKvVPbhlbRzZW4r/OSMF7V/UMpyr1G2HuHCSx RHWQvntq/gQQg3tfUszThAi5oUPqHXceFEP3RPRt6s/kNSvGCieacx//s+YY7Uh5BUbM tJefbRLgSS5NC4bOsS2Fr4kQDLVUDOIIOtZePbUSgldhsAWCCKEUBmUe53icBWUvPBrx vBuA== X-Gm-Message-State: AOJu0YyVYdYAFOtp2n8zfEdMiiaYNiBVB2zMiIZLfLkfoy/v+kKbNkOZ 5BZU9WnEcNAVbvR/JvUTe7sUoLBq7L8= X-Google-Smtp-Source: AGHT+IEZ8un/7zs3/4IvZsyYt5e/N8qYI0ReCvFfN0UxIAu9syb5SnLkyh6lUTJv5+O0dxpMlWuu5A== X-Received: by 2002:a05:600c:c7:b0:3fe:1cac:37d5 with SMTP id u7-20020a05600c00c700b003fe1cac37d5mr6482455wmm.4.1691955787455; Sun, 13 Aug 2023 12:43:07 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:07 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Karim Taha , Richard Henderson Subject: [PATCH v3 06/32] Add struct target_stat to bsd-user/syscall_defs.h Date: Sun, 13 Aug 2023 10:41:27 +0200 Message-Id: <20230813084153.6510-7-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x334.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Michal Meloun Signed-off-by: Michal Meloun Signed-off-by: Karim Taha Acked-by: Richard Henderson --- bsd-user/syscall_defs.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h index 30c24bfe1b..41259848cd 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -212,6 +212,44 @@ struct target_freebsd11_stat { unsigned int:(8 / 2) * (16 - (int)sizeof(struct target_freebsd_timespec)); } __packed; +#if defined(__i386__) +#define TARGET_HAS_STAT_TIME_T_EXT 1 +#endif + +struct target_stat { + uint64_t st_dev; /* inode's device */ + uint64_t st_ino; /* inode's number */ + uint64_t st_nlink; /* number of hard links */ + int16_t st_mode; /* inode protection mode */ + int16_t st_padding0; + uint32_t st_uid; /* user ID of the file's owner */ + uint32_t st_gid; /* group ID of the file's group */ + int32_t st_padding1; + uint64_t st_rdev; /* device type */ +#ifdef TARGET_HAS_STAT_TIME_T_EXT + int32_t st_atim_ext; +#endif + struct target_freebsd_timespec st_atim; /* time of last access */ +#ifdef TARGET_HAS_STAT_TIME_T_EXT + int32_t st_mtim_ext; +#endif + struct target_freebsd_timespec st_mtim; /* time of last data modification */ +#ifdef TARGET_HAS_STAT_TIME_T_EXT + int32_t st_ctim_ext; +#endif + struct target_freebsd_timespec st_ctim;/* time of last file status change */ +#ifdef TARGET_HAS_STAT_TIME_T_EXT + int32_t st_btim_ext; +#endif + struct target_freebsd_timespec st_birthtim; /* time of file creation */ + int64_t st_size; /* file size, in bytes */ + int64_t st_blocks; /* blocks allocated for file */ + uint32_t st_blksize; /* optimal blocksize for I/O */ + uint32_t st_flags; /* user defined flags for file */ + uint64_t st_gen; /* file generation number */ + uint64_t st_spare[10]; +}; + #define safe_syscall0(type, name) \ type safe_##name(void) \ { \ From patchwork Sun Aug 13 08:41:28 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820775 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=leaYNDIb; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Pm4Nr3z1yf2 for ; Mon, 14 Aug 2023 05:48:44 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzZ-0007lu-Aq; Sun, 13 Aug 2023 15:43:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzY-0007lS-1t for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:12 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzW-0002NL-As for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:11 -0400 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-3fbea147034so33299035e9.0 for ; Sun, 13 Aug 2023 12:43:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955789; x=1692560589; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FZ1PstjxV58F6xW5IPzHSu5+uF2rn3kjg/rqjVrZAhM=; b=leaYNDIbqhnk5b0wknrzriuMsop0sevQQLH9/UlZhJol6t/pT867/fyEAiEEogrvHG C6FOjTBJlmxDfvbxzRKWncipmTY9q92G0Zc7Nsxfd7gU69qtN2reKQ/zvTdskSGmCCam E9+YFSSEaQGYAEIZMLtO69j7RVxoJYNm6VaEJCGZxJDA141/kVLn1ztByf4vqdL9QhUF ivlWlfVMzrqOoEBJCyB7dRnwaTAeYjIPH9p2F4HXshDx91ohmQuykQAZnfk1XSBGm5/X q15mEib7ChAAlhJhF4R9NDh3tH5pcXcqzm0HdCFNhzL71I8fVFMldxBFwWfmpiOCHbLU Rolw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955789; x=1692560589; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FZ1PstjxV58F6xW5IPzHSu5+uF2rn3kjg/rqjVrZAhM=; b=C9AXCn0vZ7q/b0A0lRMqQYJvmquy3fCWtQDYaswbYpv3vDiKNMwrOAwHvdDz/6bsgM +ZkJqNlFr1uqgj5+CCihj3tSkiKRrc3SjUZ3dwp3kNwAT4MKZTMcyAclkd4EMozu+et3 r6rq+qFd0hoOqc/i5APns+hve+Oh7TlPHB4B6PSomvZQW8q8+pxMgORLXRLA8oJMrn7+ ujU/06pnfJWSch/YgzK/lmC2eNcjLTqID6hMnoLC3pdPoq3jVS00+sGEXiXICUZSPyJQ BysD/h3ahTQDjB5kdB3znYfRtxWeDNDBVOYKgSeQsX5d8igHy4bhG1hajm2EalpGBXrr p2WA== X-Gm-Message-State: AOJu0YxWYTdYGXom45BYFI3nTI5Ph9UznNifa1IHI6sQUtVN7EBht+yi hkMw2AAiNeTloZXFKhyamZmYkHv0vMU= X-Google-Smtp-Source: AGHT+IGMoME1oxZDuP54P7zzj46dEx0iyOI7MzXj9tWDTdKD2Rb7MXZ8E384vQLZ4u+i2WK+/I02OQ== X-Received: by 2002:a05:600c:2494:b0:3fe:2021:d616 with SMTP id 20-20020a05600c249400b003fe2021d616mr6105999wms.38.1691955788756; Sun, 13 Aug 2023 12:43:08 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:08 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 07/32] Add structs target_freebsd11_nstat and target_freebsd11_statfs to bsd-user/syscall_defs.h Date: Sun, 13 Aug 2023 10:41:28 +0200 Message-Id: <20230813084153.6510-8-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32f.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Signed-off-by: Stacey Son Signed-off-by: Karim Taha Acked-by: Richard Henderson --- bsd-user/syscall_defs.h | 64 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h index 41259848cd..f8f37517b2 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -250,6 +250,70 @@ struct target_stat { uint64_t st_spare[10]; }; + +/* struct nstat is the same as stat above but without the st_lspare field */ +struct target_freebsd11_nstat { + uint32_t st_dev; /* inode's device */ + uint32_t st_ino; /* inode's number */ + int16_t st_mode; /* inode protection mode */ + int16_t st_nlink; /* number of hard links */ + uint32_t st_uid; /* user ID of the file's owner */ + uint32_t st_gid; /* group ID of the file's group */ + uint32_t st_rdev; /* device type */ + struct target_freebsd_timespec st_atim; /* time last accessed */ + struct target_freebsd_timespec st_mtim; /* time last data modification */ + struct target_freebsd_timespec st_ctim; /* time last file status change */ + int64_t st_size; /* file size, in bytes */ + int64_t st_blocks; /* blocks allocated for file */ + uint32_t st_blksize; /* optimal blocksize for I/O */ + uint32_t st_flags; /* user defined flags for file */ + uint32_t st_gen; /* file generation number */ + struct target_freebsd_timespec st_birthtim; /* time of file creation */ + /* + * Explicitly pad st_birthtim to 16 bytes so that the size of + * struct stat is backwards compatible. We use bitfields instead + * of an array of chars so that this doesn't require a C99 compiler + * to compile if the size of the padding is 0. We use 2 bitfields + * to cover up to 64 bits on 32-bit machines. We assume that + * CHAR_BIT is 8... + */ + unsigned int:(8 / 2) * (16 - (int)sizeof(struct target_freebsd_timespec)); + unsigned int:(8 / 2) * (16 - (int)sizeof(struct target_freebsd_timespec)); +} __packed; + +/* + * sys/mount.h + */ + +/* filesystem id type */ +typedef struct target_freebsd_fsid { int32_t val[2]; } target_freebsd_fsid_t; + +/* filesystem statistics */ +struct target_freebsd11_statfs { + uint32_t f_version; /* structure version number */ + uint32_t f_type; /* type of filesystem */ + uint64_t f_flags; /* copy of mount exported flags */ + uint64_t f_bsize; /* filesystem fragment size */ + uint64_t f_iosize; /* optimal transfer block size */ + uint64_t f_blocks; /* total data blocks in filesystem */ + uint64_t f_bfree; /* free blocks in filesystem */ + int64_t f_bavail; /* free blocks avail to non-superuser */ + uint64_t f_files; /* total file nodes in filesystem */ + int64_t f_ffree; /* free nodes avail to non-superuser */ + uint64_t f_syncwrites; /* count of sync writes since mount */ + uint64_t f_asyncwrites; /* count of async writes since mount */ + uint64_t f_syncreads; /* count of sync reads since mount */ + uint64_t f_asyncreads; /* count of async reads since mount */ + uint64_t f_spare[10]; /* unused spare */ + uint32_t f_namemax; /* maximum filename length */ + uint32_t f_owner; /* user that mounted the filesystem */ + target_freebsd_fsid_t f_fsid; /* filesystem id */ + char f_charspare[80]; /* spare string space */ + char f_fstypename[16]; /* filesys type name */ + char f_mntfromname[88]; /* mount filesystem */ + char f_mntonname[88]; /* dir on which mounted*/ +}; + #define safe_syscall0(type, name) \ type safe_##name(void) \ { \ From patchwork Sun Aug 13 08:41:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820779 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=FkEInF0Q; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Qp54fLz1yg2 for ; Mon, 14 Aug 2023 05:49:38 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGza-0007mj-Sb; Sun, 13 Aug 2023 15:43:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzZ-0007lw-CL for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:13 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzX-0002Na-RP for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:13 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-3fe1fc8768aso37028465e9.1 for ; Sun, 13 Aug 2023 12:43:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955790; x=1692560590; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5FGE2sta9eusQxC1zo0jWDIeINfRT8xwkVjpvLMM6rA=; b=FkEInF0QonkUzM6F5ty5NvQEkAz8BYPfey+n0xjKPgICJ1wUHaty0ovJwPHAP0/gxL nzTor5gw/YMGITae0xsPJ+xVEtYK0aSZo72dZqRHjlTLLWnm2hCR4C+1VkNVbVs+MKrH fnaUzY7qZN0kk+YpkLK/K1me1Wy94DxUFZpWWl2CX9tz58D6sjk+FaXN1MwCm+FGmfvp +fET/og/ZWbR0rMwMJbATzfYGsrKGoaQtPaFhd1PiccGXZRAe10nMwMPhPcYqwtRnwEf KyluuBCttefoP3WhV037QmPIVM9jwoiRmpG3PnUXHiq6x4e6mLx7PumPZjeh5uIdmTFY FxgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955790; x=1692560590; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5FGE2sta9eusQxC1zo0jWDIeINfRT8xwkVjpvLMM6rA=; b=YI9wfSs7E63R62BB3mNqPTJh0kD74n49sjNlEaaa9lpyuDa3E2bBR/Bvz81IJXhdmf jk0+rnhTZl+3iNJjTz9qFoCYd2ZTQUWbS9pLH9zjPLcA7FX1BgoZlu/Sk9wVIrFwA2z2 9wNp/9+rJ7Osl0maFwWF9WwhSM737W95c1yNWx8v7pQwFtyzcA3Cms3A/taAEFjNomwl 8Bms87SBjPehn+/EyIj3FRGq5fkoa2k8N2oJ97n1cP+PgmUnv35l4KIFVBUO7W+91V1y cYukH5RE6HUnBpCtrJjVOpxCTdk/PrznjmgFyeNtFPdEcTbIUZKeyVeFtePMjyBL554/ sKgQ== X-Gm-Message-State: AOJu0YzsMZDpHyz+fLdMtmQIshmH3LGYWme/EF5Da54dV4RGfiH0ue7y jPVYiddqu0pcRIHGtHXKhEB6LnP5Nq8= X-Google-Smtp-Source: AGHT+IGvr6dy+BdMnj9Glxof+hNY9Lv/lIiJnj6jBOL/pqgnhZKV4l9QajraiDi286YZgPe4tvsRAg== X-Received: by 2002:a05:600c:214d:b0:3fc:193:734e with SMTP id v13-20020a05600c214d00b003fc0193734emr6877866wml.32.1691955790036; Sun, 13 Aug 2023 12:43:10 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:09 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Karim Taha , Richard Henderson Subject: [PATCH v3 08/32] Add struct target_statfs to bsd-user/syscall_defs.h Date: Sun, 13 Aug 2023 10:41:29 +0200 Message-Id: <20230813084153.6510-9-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x332.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Michal Meloun Signed-off-by: Michal Meloun Signed-off-by: Karim Taha Acked-by: Richard Henderson --- bsd-user/syscall_defs.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h index f8f37517b2..2aefdd205e 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -314,6 +314,31 @@ struct target_freebsd11_statfs { char f_mntonname[88]; /* dir on which mounted*/ }; +struct target_statfs { + uint32_t f_version; /* structure version number */ + uint32_t f_type; /* type of filesystem */ + uint64_t f_flags; /* copy of mount exported flags */ + uint64_t f_bsize; /* filesystem fragment size */ + uint64_t f_iosize; /* optimal transfer block size */ + uint64_t f_blocks; /* total data blocks in filesystem */ + uint64_t f_bfree; /* free blocks in filesystem */ + int64_t f_bavail; /* free blocks avail to non-superuser */ + uint64_t f_files; /* total file nodes in filesystem */ + int64_t f_ffree; /* free nodes avail to non-superuser */ + uint64_t f_syncwrites; /* count of sync writes since mount */ + uint64_t f_asyncwrites; /* count of async writes since mount */ + uint64_t f_syncreads; /* count of sync reads since mount */ + uint64_t f_asyncreads; /* count of async reads since mount */ + uint64_t f_spare[10]; /* unused spare */ + uint32_t f_namemax; /* maximum filename length */ + uint32_t f_owner; /* user that mounted the filesystem */ + target_freebsd_fsid_t f_fsid; /* filesystem id */ + char f_charspare[80]; /* spare string space */ + char f_fstypename[16]; /* filesystem type name */ + char f_mntfromname[1024]; /* mounted filesystem */ + char f_mntonname[1024]; /* directory on which mounted */ +}; + #define safe_syscall0(type, name) \ type safe_##name(void) \ { \ From patchwork Sun Aug 13 08:41:30 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820771 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=r9cbskGB; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7NG27fyz1yg2 for ; Mon, 14 Aug 2023 05:47:26 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzc-0007mz-37; Sun, 13 Aug 2023 15:43:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGza-0007ma-Gd for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:14 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzZ-0002Np-3S for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:14 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-3fe4cdb72b9so33223695e9.0 for ; Sun, 13 Aug 2023 12:43:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955791; x=1692560591; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=67G9fN2Q7zbfyveGtQLMpgK+UelnXLFsR1uug7FJ/Rk=; b=r9cbskGBmDH5qrSiXWO7Fmh/7zK+LWgQCmY0mTVp9rAf5N1+x+RYvmdbjJ7kFV/lNy gK19M1fVFVLxHZ9vJeyratKY0uU69f/l/BxE3yhchh2xMYqJSzk3kY/evqWHD4ygptLx QhFUXOqR0rvhbZ4b+wKh73yUszHa1N5v3zdkn6U1FDW1vYphCu11XoOa7h8mjtNGfXBj D8Hm7UJBY4Oc3j4uTUcq3Z/q+2SmNknDxM79uU/KuoXB4q4bLfbNX5lNTVn3fIdmojSA T2vXo3h1pSFMOI9wPJQYqLtFk7OFlf/ZBwTB/+TEYK708AxwsAkoXl08GyDRCFHck3Ce twbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955791; x=1692560591; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=67G9fN2Q7zbfyveGtQLMpgK+UelnXLFsR1uug7FJ/Rk=; b=lJEYBNptbLbIbuwUTZHsI+UwxXZkQRQ+7DwS57j/Ikvhxxyq9JK0jtrNXEZNkylLkk nVlK9tJ52j2srdMGI9tNkUSqM0CTtd0mwEdQeIGYsx2q/WbpcK9++5GqmZWZbOZd8NXj AmDolgFQUkqzFGUk4PsMJ0DR1zuNvoW/XTB5zsrabfwKFsRQ2KScwOlhZvQ9fLTeuXdE 1taTrPvpgBwnhAMNRKdsapM5UnmbmwVW0i9AhUhwC0IP6FyGin+e2sOwHVQPceenAspR ZguI3O5vOu5TiarjWfI5d+Scu9uF3LSw5AKbiwpPekmWCELmcDrK17siFpDdikyRZMaC pmPw== X-Gm-Message-State: AOJu0YwtMLC+zm9WmnWof4UjZILCJ0SzwoRLFxvS1d5n6JCjj9YXL70J BlU9PNhrIDunmJAkQICU2FjV6cL+uvo= X-Google-Smtp-Source: AGHT+IEdjOBsXeH0mgBoAfUxOkIkSpNE8iXeRNzP6IETMkVvh1Vuqd9K6Y9EkNf9czbPOyB2eAyGPA== X-Received: by 2002:a05:600c:1c13:b0:3fb:b1af:a455 with SMTP id j19-20020a05600c1c1300b003fbb1afa455mr5961948wms.5.1691955791148; Sun, 13 Aug 2023 12:43:11 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:10 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 09/32] Add struct target_freebsd_fhandle and fcntl flags to bsd-user/syscall_defs.h Date: Sun, 13 Aug 2023 10:41:30 +0200 Message-Id: <20230813084153.6510-10-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x332.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Signed-off-by: Stacey Son Signed-off-by: Karim Taha Acked-by: Richard Henderson --- bsd-user/syscall_defs.h | 51 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h index 2aefdd205e..68db9cf4b2 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -339,6 +339,57 @@ struct target_statfs { char f_mntonname[1024]; /* directory on which mounted */ }; +/* File identifier. These are unique per filesystem on a single machine. */ +#define TARGET_MAXFIDSZ 16 + +struct target_freebsd_fid { + uint16_t fid_len; /* len of data in bytes */ + uint16_t fid_data0; /* force longword align */ + char fid_data[TARGET_MAXFIDSZ]; /* data (variable len) */ +}; + +/* Generic file handle */ +struct target_freebsd_fhandle { + target_freebsd_fsid_t fh_fsid; /* Filesystem id of mount point */ + struct target_freebsd_fid fh_fid; /* Filesys specific id */ +}; +typedef struct target_freebsd_fhandle target_freebsd_fhandle_t; + +/* + * sys/fcntl.h + */ +#define TARGET_F_DUPFD 0 +#define TARGET_F_GETFD 1 +#define TARGET_F_SETFD 2 +#define TARGET_F_GETFL 3 +#define TARGET_F_SETFL 4 +#define TARGET_F_GETOWN 5 +#define TARGET_F_SETOWN 6 +#define TARGET_F_OGETLK 7 +#define TARGET_F_OSETLK 8 +#define TARGET_F_OSETLKW 9 +#define TARGET_F_DUP2FD 10 +#define TARGET_F_GETLK 11 +#define TARGET_F_SETLK 12 +#define TARGET_F_SETLKW 13 +#define TARGET_F_SETLK_REMOTE 14 +#define TARGET_F_READAHEAD 15 +#define TARGET_F_RDAHEAD 16 +#define TARGET_F_DUPFD_CLOEXEC 17 +#define TARGET_F_DUP2FD_CLOEXEC 18 +/* FreeBSD-specific */ +#define TARGET_F_ADD_SEALS 19 +#define TARGET_F_GET_SEALS 20 + +struct target_freebsd_flock { + int64_t l_start; + int64_t l_len; + int32_t l_pid; + int16_t l_type; + int16_t l_whence; + int32_t l_sysid; +} QEMU_PACKED; + #define safe_syscall0(type, name) \ type safe_##name(void) \ { \ From patchwork Sun Aug 13 08:41:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820776 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=R8jzdv2k; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7QW4kmQz1yf2 for ; Mon, 14 Aug 2023 05:49:23 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGze-0007nl-Ca; Sun, 13 Aug 2023 15:43:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzb-0007mq-98 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:15 -0400 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzZ-0002O0-RB for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:15 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-3fe5c0e57d2so33018045e9.0 for ; Sun, 13 Aug 2023 12:43:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955792; x=1692560592; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0uTjuUZfn1BMnx+++7JtIeJPCYgZiSfPp9MKsrrDqfY=; b=R8jzdv2k3tkXmhnawXu0kCHasixcIfB3cKv+eOt5H1gmjou8MlX7et4pNJWIdOGQtI iSmzN2/ilgAyq+5tPi6uo2Tkq4/YNS6B27bBZh6a55Q8JSAinoetspKrVE5S6Fl82qTs NoYrWXS9VLf8mY33Lf8ccP9IwtNku26n/ngrLy7Ipa5EYWWmllq5wEH0HzAsEdgrqMaq I/GanErMll4Es9lU5u8ONnswGw8sRr4n1LowZ0Vcx/nxQCWWgVn4K9bM+zNCkBXJYRZ6 DjUTWeCumYfdUoiGfsTDZ4eq6hFFRkmW/Zqohmbu9aFbnEcm2ss5nudzZi+vCkaaIHBu ezzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955792; x=1692560592; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0uTjuUZfn1BMnx+++7JtIeJPCYgZiSfPp9MKsrrDqfY=; b=ggdIrtGyS3+tleO5BE+Ah0aMKw/xad7dymsP224j7lmeQ69mCZdme37HSQn9tgy9D9 8DZxzxTKH6PMI5lgPNN4XV3nIABjBkMVNVCiNvCgFMcoS6anxl0GwRW7w3W3X+KmEBa+ ai88I/IvcZC7aZPKz7v8xJYretrbOrQQqvTSIoKE5i/3TD+UBWOY7fozRWvNmurncMw7 LNJPCTKUxvhFdxHPFiIThbFZgoDb80zyIg+3a4vVRKDPnsNACwV+uVRHJiGtOjH51Ffv ZxbvUduS6yvDQLBHnxBuN6IBl0khTx+rsSl86acxHvpQxIE1xs3KJCPRTgAscPERiQV4 DBdg== X-Gm-Message-State: AOJu0YyWO0JQNy++3YtSb6ZAWuR8ZVaCQ+t1x8tRcbiiMbzFGPxqDRv7 VBqxLGJfanhk8na8K2wOP67Tt+/uAeA= X-Google-Smtp-Source: AGHT+IGbswNsXXUURDyTe/+MrrFSHtS1Fa+19ILA2Mpt2Xj6XuzcrRSmUsnQlPXEn4esL7A/K86xlQ== X-Received: by 2002:a05:600c:2811:b0:3fe:188c:b684 with SMTP id m17-20020a05600c281100b003fe188cb684mr5774881wmb.7.1691955792237; Sun, 13 Aug 2023 12:43:12 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:11 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Kyle Evans , Karim Taha , Richard Henderson Subject: [PATCH v3 10/32] Define safe_fcntl macro in bsd-user/syscall_defs.h Date: Sun, 13 Aug 2023 10:41:31 +0200 Message-Id: <20230813084153.6510-11-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32b.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Kyle Evans Signed-off-by: Kyle Evans Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/syscall_defs.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h index 68db9cf4b2..bdcdc4c0fe 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -437,6 +437,8 @@ type safe_##name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \ return safe_syscall(SYS_##name, arg1, arg2, arg3, arg4, arg5, arg6); \ } +#define safe_fcntl(...) safe_syscall(SYS_fcntl, __VA_ARGS__) + /* So far all target and host bitmasks are the same */ #define target_to_host_bitmask(x, tbl) (x) #define host_to_target_bitmask(x, tbl) (x) From patchwork Sun Aug 13 08:41:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820759 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=YzIR7wwk; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Kj1QCxz1yg2 for ; Mon, 14 Aug 2023 05:45:13 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzd-0007nc-Mb; Sun, 13 Aug 2023 15:43:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzc-0007n0-C7 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:16 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGza-0002OG-T0 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:16 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-3fbd33a57b6so36893935e9.2 for ; Sun, 13 Aug 2023 12:43:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955793; x=1692560593; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=MDTOrlECkXwtbP3Q8uyO+H9meUZpmn7vqWB6qzJf774=; b=YzIR7wwkPhs16ONmCw4wI54gcDFFOzfEFtXFkkVPrnIm851C8map4VdKnDGZCgCE6y 5twCXJUa7k40tz4N3TMWLDepkirKnFzCV1sGj+ZE09Voi4ArA/dDLSAdgQmpV7C/SSCP XRqfJHAy30NaWAwtB47H2QCE7wt34T4Ta541NTg//GWGRNh0LRH0ZAch8eQG90xQjPjp 80wYGpR9iPsCFXDL77H/Up+X/ZWUgCRRZgIossS4u5Kf7PYAqyUXITjo3RgToQFuSVzH M+UcoCGQS7Z4bvvudmV0XNZEj+HuCeyKCTgXyFZaPB65BlQn6TIoq1QNBqi+t3ru7usj KTrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955793; x=1692560593; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=MDTOrlECkXwtbP3Q8uyO+H9meUZpmn7vqWB6qzJf774=; b=j/6ASlIJdaEnpJuDktssNy/OwcG5lRwLEUp/NdO8EOHHs/qTu4z0VLL+HVnNnG5ick vJU6Y2JgRh89wVjmC8q78GQpoLhVvzkdI3qVTRw2TSRAsXYtlmrc2k3/nKPh7FAmSYvj Y6cnZ9pLuhBMNE+HFkWWZ1ZtxCRnBfX4O5Y9DujCrKRJ2d6ofhZ7I1LCMhkhOcJRxVj1 sUAvX5dg8T3ZfmXbGyxuxgPAD2I6hGwkzHlAlJpkxRSKXr82LQaO5h/rbEIVhg10mRS2 KZmvddMMCgJEAxHn8PL4MxUTHNyxYr1CJCHcvF+uKUF1azUZWHBEg+uvRs+BXgqHCjkG fu3w== X-Gm-Message-State: AOJu0Yx0zFvkvc8QKEFTxdUm1M4xjIn2QK1byIiu6VUSs2m7s81K9ayf gRN32EYtaiADVBMcpplkBVKBT0ZcVcg= X-Google-Smtp-Source: AGHT+IFgMhw+8Rd1sJ/HEm/4OtLn4mbajUnYqBA9csymsOQYZmbGYHinHiV4gnwrPZyNd8YadmtLcw== X-Received: by 2002:a05:600c:217:b0:3fe:10d8:e7ef with SMTP id 23-20020a05600c021700b003fe10d8e7efmr7364324wmi.19.1691955793338; Sun, 13 Aug 2023 12:43:13 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:13 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v3 11/32] Rename target_freebsd_time_t to target_time_t Date: Sun, 13 Aug 2023 10:41:32 +0200 Message-Id: <20230813084153.6510-12-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x335.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Warner Losh This is necessary for future code using target_time_t, in bsd-user/syscall_defs. Signed-off-by: Warner Losh Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/syscall_defs.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h index bdcdc4c0fe..ae679650e3 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -45,9 +45,9 @@ * */ #if (!defined(TARGET_I386)) -typedef int64_t target_freebsd_time_t; +typedef int64_t target_time_t; #else -typedef int32_t target_freebsd_time_t; +typedef int32_t target_time_t; #endif struct target_iovec { @@ -102,7 +102,7 @@ typedef abi_long target_freebsd_suseconds_t; /* compare to sys/timespec.h */ struct target_freebsd_timespec { - target_freebsd_time_t tv_sec; /* seconds */ + target_time_t tv_sec; /* seconds */ abi_long tv_nsec; /* and nanoseconds */ #if !defined(TARGET_I386) && TARGET_ABI_BITS == 32 abi_long _pad; @@ -120,7 +120,7 @@ struct target_freebsd__umtx_time { }; struct target_freebsd_timeval { - target_freebsd_time_t tv_sec; /* seconds */ + target_time_t tv_sec; /* seconds */ target_freebsd_suseconds_t tv_usec;/* and microseconds */ #if !defined(TARGET_I386) && TARGET_ABI_BITS == 32 abi_long _pad; From patchwork Sun Aug 13 08:41:33 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820774 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=l/JlncKY; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7PY16Bpz1yf2 for ; Mon, 14 Aug 2023 05:48:33 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzg-0007oH-8D; Sun, 13 Aug 2023 15:43:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGze-0007ne-55 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:18 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzc-0002OX-BE for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:17 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-3fe12820bffso33126375e9.3 for ; Sun, 13 Aug 2023 12:43:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955794; x=1692560594; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=N061FeldVaX4BPj8mc2L/kWBPacnM9wuo1qQS1JmhVg=; b=l/JlncKYX/94CfdbvX9+k1CpW+AS+QeJOYHo33QY3h0Gr9kyE9GbScr6/CXOMxP1e5 g5A33lPrdJZMAAGSGAfU8uxHbBa9X2t9kOIn71VOQebG9XnkNzKXEuStzZuSRk4O9GMp 5o2NoaqrNR97eQLVKSS3LX0bQN+YtdgXwzTWr1S5yP7oW7Z5ofTD2MNpAuwZwJuvsw75 DwM5j7/SmchBLtTUjU7RmDig71d+InXXayzM5Mdt1bRvWydXbr5k3/FkoOgh636J/SlI n1K3fOI3erdpDpBaN/O+9b8/lUvUI7KXOJaVQRXqIeeJgMm1U6034PE8XDsPuVBBo4Js J2ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955794; x=1692560594; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=N061FeldVaX4BPj8mc2L/kWBPacnM9wuo1qQS1JmhVg=; b=ba52VewGs1KsYidloXqrMIz+ii2Z7zXuDMZraI2tzCdMzks2IsE3PG0CMQ7rr3smQM 8ZzVKJzpyLnuZX0a5Fb7wNu3dZ2Vb/Ycpnz61RXGrXvGt9RFIZTDBhNeimY2N2xY2LIk C3mm0uvpl2g4C2NgVFmw+qUiJeZvVhBszFsq3zJK2pp8DjUBsASOKJewLLul5vv62QYM O8V+tbTsDtBQR6XzKZuwNxNieuoOf9Rl+4YfE0j4R3/tU6IpnfOdUXzfzx3vX0g17blC uhsN9JyykG9uwA+zKY0wwRKkWTGBAM/vgScBjJQ9ZjsF8Osj5qkDjTyT9ulkSFgkDtjy ocCw== X-Gm-Message-State: AOJu0Yw6ZgSbeAbgRhr9CqHyBX7Elqu2UbGXpBEnBH9v1lpPgsAQ1V0h MUAuKGo5NYIL6/e9B/In64hG8wUK1t4= X-Google-Smtp-Source: AGHT+IFE7/G3g5sTYPXvcN+dDP7y9CRn5ma7Hf3Qr4tHno5mpZ4krHlAYYOIgPMj+XncOJFBke1Mcw== X-Received: by 2002:a1c:7703:0:b0:3fb:403d:90c0 with SMTP id t3-20020a1c7703000000b003fb403d90c0mr6160180wmi.39.1691955794645; Sun, 13 Aug 2023 12:43:14 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:14 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 12/32] Implement h2t_freebsd11_stat h2t_freebsd_nstat Date: Sun, 13 Aug 2023 10:41:33 +0200 Message-Id: <20230813084153.6510-13-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x331.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the stat conversion functions: h2t_freebsd11_stat h2t_freebsd_nstat Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.c | 94 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 bsd-user/freebsd/os-stat.c diff --git a/bsd-user/freebsd/os-stat.c b/bsd-user/freebsd/os-stat.c new file mode 100644 index 0000000000..8c73f7402c --- /dev/null +++ b/bsd-user/freebsd/os-stat.c @@ -0,0 +1,94 @@ +/* + * FreeBSD stat related conversion routines + * + * Copyright (c) 2013 Stacey D. Son + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ +#include "qemu/osdep.h" + +#include "qemu.h" + +/* + * stat conversion + */ +abi_long h2t_freebsd11_stat(abi_ulong target_addr, + struct freebsd11_stat *host_st) +{ + struct target_freebsd11_stat *target_st; + + if (!lock_user_struct(VERIFY_WRITE, target_st, target_addr, 0)) { + return -TARGET_EFAULT; + } + memset(target_st, 0, sizeof(*target_st)); + __put_user(host_st->st_dev, &target_st->st_dev); + __put_user(host_st->st_ino, &target_st->st_ino); + __put_user(host_st->st_mode, &target_st->st_mode); + __put_user(host_st->st_nlink, &target_st->st_nlink); + __put_user(host_st->st_uid, &target_st->st_uid); + __put_user(host_st->st_gid, &target_st->st_gid); + __put_user(host_st->st_rdev, &target_st->st_rdev); + __put_user(host_st->st_atim.tv_sec, &target_st->st_atim.tv_sec); + __put_user(host_st->st_atim.tv_nsec, &target_st->st_atim.tv_nsec); + __put_user(host_st->st_mtim.tv_sec, &target_st->st_mtim.tv_sec); + __put_user(host_st->st_mtim.tv_nsec, &target_st->st_mtim.tv_nsec); + __put_user(host_st->st_ctim.tv_sec, &target_st->st_ctim.tv_sec); + __put_user(host_st->st_ctim.tv_nsec, &target_st->st_ctim.tv_nsec); + __put_user(host_st->st_size, &target_st->st_size); + __put_user(host_st->st_blocks, &target_st->st_blocks); + __put_user(host_st->st_blksize, &target_st->st_blksize); + __put_user(host_st->st_flags, &target_st->st_flags); + __put_user(host_st->st_gen, &target_st->st_gen); + /* st_lspare not used */ + __put_user(host_st->st_birthtim.tv_sec, &target_st->st_birthtim.tv_sec); + __put_user(host_st->st_birthtim.tv_nsec, &target_st->st_birthtim.tv_nsec); + unlock_user_struct(target_st, target_addr, 1); + + return 0; +} + +abi_long h2t_freebsd11_nstat(abi_ulong target_addr, + struct freebsd11_stat *host_st) +{ + struct target_freebsd11_nstat *target_st; + + if (!lock_user_struct(VERIFY_WRITE, target_st, target_addr, 0)) { + return -TARGET_EFAULT; + } + memset(target_st, 0, sizeof(*target_st)); + __put_user(host_st->st_dev, &target_st->st_dev); + __put_user(host_st->st_ino, &target_st->st_ino); + __put_user(host_st->st_mode, &target_st->st_mode); + __put_user(host_st->st_nlink, &target_st->st_nlink); + __put_user(host_st->st_uid, &target_st->st_uid); + __put_user(host_st->st_gid, &target_st->st_gid); + __put_user(host_st->st_rdev, &target_st->st_rdev); + __put_user(host_st->st_atim.tv_sec, &target_st->st_atim.tv_sec); + __put_user(host_st->st_atim.tv_nsec, &target_st->st_atim.tv_nsec); + __put_user(host_st->st_mtim.tv_sec, &target_st->st_mtim.tv_sec); + __put_user(host_st->st_mtim.tv_nsec, &target_st->st_mtim.tv_nsec); + __put_user(host_st->st_ctim.tv_sec, &target_st->st_ctim.tv_sec); + __put_user(host_st->st_ctim.tv_nsec, &target_st->st_ctim.tv_nsec); + __put_user(host_st->st_size, &target_st->st_size); + __put_user(host_st->st_blocks, &target_st->st_blocks); + __put_user(host_st->st_blksize, &target_st->st_blksize); + __put_user(host_st->st_flags, &target_st->st_flags); + __put_user(host_st->st_gen, &target_st->st_gen); + __put_user(host_st->st_birthtim.tv_sec, &target_st->st_birthtim.tv_sec); + __put_user(host_st->st_birthtim.tv_nsec, &target_st->st_birthtim.tv_nsec); + unlock_user_struct(target_st, target_addr, 1); + + return 0; +} + From patchwork Sun Aug 13 08:41:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820773 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=YzhCEmm7; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7PK3P2Mz1yf2 for ; Mon, 14 Aug 2023 05:48:21 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzi-0007os-CY; Sun, 13 Aug 2023 15:43:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzf-0007o1-6F for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:19 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzd-0002Om-J0 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:18 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-3fe32016bc8so32837675e9.1 for ; Sun, 13 Aug 2023 12:43:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955796; x=1692560596; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ifoCtKg1yGM9PYJTvZyGZBbRR1jmyTpgo6v/+2GRTtI=; b=YzhCEmm7BF5SNyzz3ETB8spvmGorVBRwhSrVTVBvfiwaMs+pFVNarn5AaP+N7CRFKZ J6auRnVudonAjSGhfHLupxSJ6m6dVkQ6pNZo8hJPFA8EcZBaHM7Sp9LI6MNCjktWeB2Q Utw/ZGwyd3SFKFDzwy3PpN7YTH9ZhZNMdLuRD3YDCQ9c7ZA8dHf9GgYHazC1RR1HbBRI zdht5LTQyDa+EE7owkl7UNsFTZeZw+jDMlqyyQkxcJnrVFuPSqXPty0vYBOqsUOH+Lov o9xGprGEQx4Y/DZrtO0lj8nZSxBX9pd8pFZwpN2EkQaP8QBSMhaBID2N854WGKQ2CWH8 eXNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955796; x=1692560596; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ifoCtKg1yGM9PYJTvZyGZBbRR1jmyTpgo6v/+2GRTtI=; b=Hz3G8grY91N3yOgUKDTprkL83gE+hSSWVuCewsOBrDIZAzp43CB7qLk05eyXOlUgeu o0fksS6WQkZXb7r0jEU9dSfY3gNhQGpR5JIyBvzte7BEoVf7FXQk1gu15PZLdmXZHPcS t0WlucAu51Qw36lJeVdRzE/uy+4/NX8MnCpWJ98sAL7EFXo2spfJKCe0OyDfET3QhGVF QJ1WrEimXbhAE5Z0YGfWl8IU40IOrEKuW0WFjy4hrBcJBQTJrm+YDlihXE/T+EoMazHT UiiupjBMPFOUZVMSssiTv8zIya6eEEFhURBFrvjrA/TJlu3kOD9zLvwyCKUo8vop7cuG eBTA== X-Gm-Message-State: AOJu0YwI7kfz45lGSzClTvrH1YbRYIUv39XyF73FciP6Rx0yKuhWKA63 gpNKm+fh5KVsprWXL0dtD9E0GKR/so8= X-Google-Smtp-Source: AGHT+IGbaj2wATIqDjuDsjO8jsv4aWJynKL7YSHpv9TjJugN0nIhQBEjYxyNz9xRueALbikPXkwkvw== X-Received: by 2002:a05:600c:2041:b0:3f7:3699:c294 with SMTP id p1-20020a05600c204100b003f73699c294mr5922596wmg.29.1691955795758; Sun, 13 Aug 2023 12:43:15 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:15 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 13/32] Implement h2t_freebsd_fhandle t2h_freebsd_fhandle functions Date: Sun, 13 Aug 2023 10:41:34 +0200 Message-Id: <20230813084153.6510-14-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x336.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the stat conversion functions: h2t_freebsd_fhandle t2h_freebsd_fhandle Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/bsd-user/freebsd/os-stat.c b/bsd-user/freebsd/os-stat.c index 8c73f7402c..6716cee3e2 100644 --- a/bsd-user/freebsd/os-stat.c +++ b/bsd-user/freebsd/os-stat.c @@ -92,3 +92,40 @@ abi_long h2t_freebsd11_nstat(abi_ulong target_addr, return 0; } +/* + * file handle conversion + */ +abi_long t2h_freebsd_fhandle(fhandle_t *host_fh, abi_ulong target_addr) +{ + target_freebsd_fhandle_t *target_fh; + + if (!lock_user_struct(VERIFY_READ, target_fh, target_addr, 1)) { + return -TARGET_EFAULT; + } + __get_user(host_fh->fh_fsid.val[0], &target_fh->fh_fsid.val[0]); + __get_user(host_fh->fh_fsid.val[1], &target_fh->fh_fsid.val[0]); + __get_user(host_fh->fh_fid.fid_len, &target_fh->fh_fid.fid_len); + /* u_short fid_data0; */ + memcpy(host_fh->fh_fid.fid_data, target_fh->fh_fid.fid_data, + TARGET_MAXFIDSZ); + unlock_user_struct(target_fh, target_addr, 0); + return 0; +} + +abi_long h2t_freebsd_fhandle(abi_ulong target_addr, fhandle_t *host_fh) +{ + target_freebsd_fhandle_t *target_fh; + + if (!lock_user_struct(VERIFY_WRITE, target_fh, target_addr, 0)) { + return -TARGET_EFAULT; + } + __put_user(host_fh->fh_fsid.val[0], &target_fh->fh_fsid.val[0]); + __put_user(host_fh->fh_fsid.val[1], &target_fh->fh_fsid.val[0]); + __put_user(host_fh->fh_fid.fid_len, &target_fh->fh_fid.fid_len); + /* u_short fid_data0; */ + memcpy(target_fh->fh_fid.fid_data, host_fh->fh_fid.fid_data, + TARGET_MAXFIDSZ); + unlock_user_struct(target_fh, target_addr, 1); + return 0; +} + From patchwork Sun Aug 13 08:41:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820783 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=m+BPXfCB; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7SC5mrWz1yYC for ; Mon, 14 Aug 2023 05:50:51 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzh-0007oh-LT; Sun, 13 Aug 2023 15:43:21 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzg-0007oU-E3 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:20 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGze-0002P0-Ge for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:20 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-3fbea14706eso33078545e9.2 for ; Sun, 13 Aug 2023 12:43:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955797; x=1692560597; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CZm7KAKyPJJ5GYxiMh2TRpYvzF8zdBBBHB1AfPsS1dk=; b=m+BPXfCBjyoYVP+Z9fqPtBZdNmlXQrr7ESkMX21NEnwqakOzNRXPNAqP0IhEjUVDZR sAnAIUBuABMhMkMEl/qWDiONJq3vbXVa5Otz7kX7dF5B5vvV26grT5S15J/nrwNvVGZi vx2/YYvBG1NNRux8smN84Y5RyAJmKeK8I+orkLhKl1vk/u2HQJd2ZdoKv0a//BDtPUjN EQ31/EgPYqicxvdpOlhKHJA4ih4rnbx5ptluPZrmtQtfv+8pq6roZoahlJzecqBwVPfe nJlRbNqlgGPCkh82I9CUophtIi5z6ZxdT6RCVucirQWU2zRVPO9UeVJSxvJPIst/QeZg icIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955797; x=1692560597; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CZm7KAKyPJJ5GYxiMh2TRpYvzF8zdBBBHB1AfPsS1dk=; b=P1jc41DyCRo14pR1P+ysmzwr2dUBgJuxQKicLxMfeJ3I2sbzSEK0rhiKX5RBYbw1YV DxscUjnm+PZg8UdhuwQ8H5kja7a1YsIaf2mtAq4Ig1p9o9In21RIJcsMqW2QdoG3gGO1 cQPlDK5/uQ2qEMi3YrvPl+jP81Km2i+iBKu3toQITtpj02JxaBOjgl4lseeGaHkkoHUt 4l1IMTlcX8MpavEXRwTCWJTXIMv3AebiW7M8XTzhbJjynRbUAR2+tgWkyhBiB7KSeuKu 879LLsD8SPm1KaI6j+eg0eC8fGBzrt7r2jwAIc+nw57nkT/onOIivk6oZmxqB3aifVHq OUtQ== X-Gm-Message-State: AOJu0YxsX9eyywDxKoEP/E+uUlksDmCm+UTxp3KQsHlSjdLPeOwPCowO jF68LLgQKym6m5bQCfktVk8wS5L512Y= X-Google-Smtp-Source: AGHT+IGHoxxhwJ3OM/uuusWTb9iuE8VaJ6WS5pMGaNagr5qKS/xP5lxjB5LQAoSz8z1jNPB8nxkrwA== X-Received: by 2002:a05:600c:2983:b0:3fc:dd9:91fd with SMTP id r3-20020a05600c298300b003fc0dd991fdmr5286747wmd.40.1691955796847; Sun, 13 Aug 2023 12:43:16 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:16 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 14/32] Implement h2t_freebds11_statfs Date: Sun, 13 Aug 2023 10:41:35 +0200 Message-Id: <20230813084153.6510-15-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32a.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the stat conversion functions: h2t_freebds11_statfs Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.c | 41 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/bsd-user/freebsd/os-stat.c b/bsd-user/freebsd/os-stat.c index 6716cee3e2..9eb01bf664 100644 --- a/bsd-user/freebsd/os-stat.c +++ b/bsd-user/freebsd/os-stat.c @@ -129,3 +129,44 @@ abi_long h2t_freebsd_fhandle(abi_ulong target_addr, fhandle_t *host_fh) return 0; } +/* + * file system stat + */ +abi_long h2t_freebsd11_statfs(abi_ulong target_addr, + struct freebsd11_statfs *host_statfs) +{ + struct target_freebsd11_statfs *target_statfs; + + if (!lock_user_struct(VERIFY_WRITE, target_statfs, target_addr, 0)) { + return -TARGET_EFAULT; + } + __put_user(host_statfs->f_version, &target_statfs->f_version); + __put_user(host_statfs->f_type, &target_statfs->f_type); + __put_user(host_statfs->f_flags, &target_statfs->f_flags); + __put_user(host_statfs->f_bsize, &target_statfs->f_bsize); + __put_user(host_statfs->f_iosize, &target_statfs->f_iosize); + __put_user(host_statfs->f_blocks, &target_statfs->f_blocks); + __put_user(host_statfs->f_bfree, &target_statfs->f_bfree); + __put_user(host_statfs->f_bavail, &target_statfs->f_bavail); + __put_user(host_statfs->f_files, &target_statfs->f_files); + __put_user(host_statfs->f_ffree, &target_statfs->f_ffree); + __put_user(host_statfs->f_syncwrites, &target_statfs->f_syncwrites); + __put_user(host_statfs->f_asyncwrites, &target_statfs->f_asyncwrites); + __put_user(host_statfs->f_syncreads, &target_statfs->f_syncreads); + __put_user(host_statfs->f_asyncreads, &target_statfs->f_asyncreads); + /* uint64_t f_spare[10]; */ + __put_user(host_statfs->f_namemax, &target_statfs->f_namemax); + __put_user(host_statfs->f_owner, &target_statfs->f_owner); + __put_user(host_statfs->f_fsid.val[0], &target_statfs->f_fsid.val[0]); + __put_user(host_statfs->f_fsid.val[1], &target_statfs->f_fsid.val[1]); + /* char f_charspace[80]; */ + strncpy(target_statfs->f_fstypename, host_statfs->f_fstypename, + sizeof(target_statfs->f_fstypename)); + strncpy(target_statfs->f_mntfromname, host_statfs->f_mntfromname, + sizeof(target_statfs->f_mntfromname)); + strncpy(target_statfs->f_mntonname, host_statfs->f_mntonname, + sizeof(target_statfs->f_mntonname)); + unlock_user_struct(target_statfs, target_addr, 1); + return 0; +} + From patchwork Sun Aug 13 08:41:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820752 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=N75i4Pt5; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Jl6RYfz1yg2 for ; Mon, 14 Aug 2023 05:44:22 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzi-0007qx-Ug; Sun, 13 Aug 2023 15:43:22 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzh-0007od-FA for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:21 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzg-0002PR-0M for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:21 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-3fe426b8583so37457695e9.2 for ; Sun, 13 Aug 2023 12:43:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955798; x=1692560598; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ab1IvE3iWruWgD8FlAhi9ghHGvE08UiOYtOTrfrC7KI=; b=N75i4Pt5P6ophRwVt+gScX6o1dgnFr54Ev66g+dPPujxuPtPI/cltE67z0CmiaNbUN DiqJOjEn+MDQksxBy9lvyK9iOXmRn4VXYpbGDoRF11NJgz6EkKY8Qu5eDWGGr3ZCTs/t +Jm4tQVlM3aiIdKx84C2vnLzFOGCN/R4+zjY/PjAGNKaes0oOr7Wl5AHTkvKn8QGM6ZS 79UR+vO2DE1V9eiyep2BAhbOxmeNTV4SwajiBeBdjUwfkzUcor4Wfe4zT7dwhZkQV4Cf 8uzV3ERo+0+GMaZpNyXgPUbiF3HtRkfyIXS++iJvvZbtYIT2hsCFrv37uVuX4JQT9eN4 DgTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955798; x=1692560598; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ab1IvE3iWruWgD8FlAhi9ghHGvE08UiOYtOTrfrC7KI=; b=htGUVAqeQQequGhMAh6/0UEym3Yum9aLwE5pLUYMYQKLZgOByFX7o/qI53seBsonbG D2/BbBB7kzzPnDoR00LfyUdtc5tjjSRi8dZ+QGcNBrfu/Csswarq4H0nJP/kY4U+UMAU WYJceCH+9xbKoKV1lY9DqyLAQVH3qP7dU6gtBOtlIEnOXlclblUCb4Dlm2O5U92eNSy0 BgVUFO2q95ETSJYddo5Sqwc/PEisRoeMGUs/540fNB1wVlWGakVr5JrobdZYiUNb7AAB ak3Cyl1ZI4MpgDcFAUQZnhrmby/stI7Ct1ubwoMPvCCCkLQl1met4sM3mL6/H0RvfnrT V6+Q== X-Gm-Message-State: AOJu0Yzz1wDAlIObkgKwjetYBfZ93h4b9sKf7ei0SjqXM1dO9jZBInQu zEdD5r27ghspWfKPK+OWnGW4HhXGrLo= X-Google-Smtp-Source: AGHT+IGc0Y7Q98C8JqYXv/4PQ0GTwqQkfRNXvIaQY4djlXWdK5ECC3XIZrY4Murj5Obxkk01er1Msg== X-Received: by 2002:a7b:c40d:0:b0:3fb:415a:d07 with SMTP id k13-20020a7bc40d000000b003fb415a0d07mr6084497wmi.36.1691955798087; Sun, 13 Aug 2023 12:43:18 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:17 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 15/32] Implement target_to_host_fcntl_cmd Date: Sun, 13 Aug 2023 10:41:36 +0200 Message-Id: <20230813084153.6510-16-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x329.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the stat conversion functions: target_to_host_fcntl_cmd Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bsd-user/freebsd/os-stat.c b/bsd-user/freebsd/os-stat.c index 9eb01bf664..2ce235d5da 100644 --- a/bsd-user/freebsd/os-stat.c +++ b/bsd-user/freebsd/os-stat.c @@ -170,3 +170,11 @@ abi_long h2t_freebsd11_statfs(abi_ulong target_addr, return 0; } +/* + * fcntl cmd conversion + */ +abi_long target_to_host_fcntl_cmd(int cmd) +{ + return cmd; +} + From patchwork Sun Aug 13 08:41:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820781 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=WEtnHDo2; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7R95dFpz1yf2 for ; Mon, 14 Aug 2023 05:49:57 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzj-0007r5-Q9; Sun, 13 Aug 2023 15:43:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzi-0007pR-H1 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:22 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzg-0002Pj-Rw for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:22 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-3fe426b8583so37457805e9.2 for ; Sun, 13 Aug 2023 12:43:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955799; x=1692560599; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=J8L3HOHlk/xf2rOVmXOBAbQXT/UfmcxzbxJEFMoMIhk=; b=WEtnHDo2Yzx9PLGm0zdZDB5TJ3AGoQmHlLpSjQzdtYEFruFkWddsV4EUf3sctrcOcy BQDlYudKqlNJGezwm0w6OXMP1EEVV4ABfV3WPSQH5kvcuyeCQeEytuh9m2Zq/ULAv9z1 yWvffXT32D7o10FOkkKrRIuyRiBQvYpyjXBtGwY4VIJ+oNGlaK9es3yYkXU4paPZ424j JGIfnVQ1AT5VhvfNLD/Y/DFUe0B4mwKwnGi52huMFvodnvZy32ZFUKDVXnqEwVNbsSpf YeGWDNyWsRAzns59Tw+RYS9/fcH6Noq4ksn9waKn46AcVTuwEL2gtWmqqlibE2w2n6IV 88oA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955799; x=1692560599; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=J8L3HOHlk/xf2rOVmXOBAbQXT/UfmcxzbxJEFMoMIhk=; b=KySJaGgkk1Q1uJs+RJa6bBPS4jvCx5Cua2yUiGw+RZxy5uOPPWmdXqkmO/kXx3TlFI DQblgPRv2QRRjeGXSCwK/dW+F0KSi/xGNGrqQy5MkeOZAQR+aG8984nqozzxVr+JyU9q XUaFIgdf6+8HAjV17LyHMRH9LTOw5HyocOf1/GjAv1x4O/kqDrk+2MLiYE4bT37IhqLw jO++uHBU0ePwDlY8ILn+t0msInt9QY6OAYG3apEhoHMpn5Xa8UgselszZ0e1zYuu+vns g+dF8nx7EqGoEpivvcEXIj2RW2ZLIB2X6MGt0sfK8DbUn2lGIhHXllw0e+rOQpSkDLxR DmkQ== X-Gm-Message-State: AOJu0YwASiILli+GO2WqL8cCx+HSJbb5m8GtWKf4qVs0sov5CLE+cerK COMYHh8JufoW4wWEwL1+S94KbPQS7aw= X-Google-Smtp-Source: AGHT+IGWfLJNr7yNgnaeXAgJO8yU1qg5KEHd0bMtABq2i06RfhKJyFVPAczhubQNq8JDnmcA8cWNww== X-Received: by 2002:a05:600c:20b:b0:3fe:22a9:910 with SMTP id 11-20020a05600c020b00b003fe22a90910mr5954447wmi.14.1691955799318; Sun, 13 Aug 2023 12:43:19 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:18 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Karim Taha , Richard Henderson Subject: [PATCH v3 16/32] Implement h2t_freebsd_stat and h2t_freebsd_statfs functions Date: Sun, 13 Aug 2023 10:41:37 +0200 Message-Id: <20230813084153.6510-17-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32a.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Michal Meloun They are the 64-bit variants of h2t_freebsd11_stat and h2t_freebsd11_statfs, respectively Signed-off-by: Michal Meloun Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.c | 82 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) diff --git a/bsd-user/freebsd/os-stat.c b/bsd-user/freebsd/os-stat.c index 2ce235d5da..f0f9e609c3 100644 --- a/bsd-user/freebsd/os-stat.c +++ b/bsd-user/freebsd/os-stat.c @@ -58,6 +58,50 @@ abi_long h2t_freebsd11_stat(abi_ulong target_addr, return 0; } +abi_long h2t_freebsd_stat(abi_ulong target_addr, + struct stat *host_st) +{ + struct target_stat *target_st; + + if (!lock_user_struct(VERIFY_WRITE, target_st, target_addr, 0)) { + return -TARGET_EFAULT; + } + memset(target_st, 0, sizeof(*target_st)); + __put_user(host_st->st_dev, &target_st->st_dev); + __put_user(host_st->st_ino, &target_st->st_ino); + __put_user(host_st->st_nlink, &target_st->st_nlink); + __put_user(host_st->st_mode, &target_st->st_mode); + __put_user(host_st->st_uid, &target_st->st_uid); + __put_user(host_st->st_gid, &target_st->st_gid); + __put_user(host_st->st_rdev, &target_st->st_rdev); + __put_user(host_st->st_atim.tv_sec, &target_st->st_atim.tv_sec); + __put_user(host_st->st_atim.tv_nsec, &target_st->st_atim.tv_nsec); +#ifdef TARGET_HAS_STAT_TIME_T_EXT +/* __put_user(host_st->st_mtim_ext, &target_st->st_mtim_ext); XXX */ +#endif + __put_user(host_st->st_mtim.tv_sec, &target_st->st_mtim.tv_sec); + __put_user(host_st->st_mtim.tv_nsec, &target_st->st_mtim.tv_nsec); +#ifdef TARGET_HAS_STAT_TIME_T_EXT +/* __put_user(host_st->st_ctim_ext, &target_st->st_ctim_ext); XXX */ +#endif + __put_user(host_st->st_ctim.tv_sec, &target_st->st_ctim.tv_sec); + __put_user(host_st->st_ctim.tv_nsec, &target_st->st_ctim.tv_nsec); +#ifdef TARGET_HAS_STAT_TIME_T_EXT +/* __put_user(host_st->st_birthtim_ext, &target_st->st_birthtim_ext); XXX */ +#endif + __put_user(host_st->st_birthtim.tv_sec, &target_st->st_birthtim.tv_sec); + __put_user(host_st->st_birthtim.tv_nsec, &target_st->st_birthtim.tv_nsec); + + __put_user(host_st->st_size, &target_st->st_size); + __put_user(host_st->st_blocks, &target_st->st_blocks); + __put_user(host_st->st_blksize, &target_st->st_blksize); + __put_user(host_st->st_flags, &target_st->st_flags); + __put_user(host_st->st_gen, &target_st->st_gen); + unlock_user_struct(target_st, target_addr, 1); + + return 0; +} + abi_long h2t_freebsd11_nstat(abi_ulong target_addr, struct freebsd11_stat *host_st) { @@ -170,6 +214,44 @@ abi_long h2t_freebsd11_statfs(abi_ulong target_addr, return 0; } +abi_long h2t_freebsd_statfs(abi_ulong target_addr, + struct statfs *host_statfs) +{ + struct target_statfs *target_statfs; + + if (!lock_user_struct(VERIFY_WRITE, target_statfs, target_addr, 0)) { + return -TARGET_EFAULT; + } + __put_user(host_statfs->f_version, &target_statfs->f_version); + __put_user(host_statfs->f_type, &target_statfs->f_type); + __put_user(host_statfs->f_flags, &target_statfs->f_flags); + __put_user(host_statfs->f_bsize, &target_statfs->f_bsize); + __put_user(host_statfs->f_iosize, &target_statfs->f_iosize); + __put_user(host_statfs->f_blocks, &target_statfs->f_blocks); + __put_user(host_statfs->f_bfree, &target_statfs->f_bfree); + __put_user(host_statfs->f_bavail, &target_statfs->f_bavail); + __put_user(host_statfs->f_files, &target_statfs->f_files); + __put_user(host_statfs->f_ffree, &target_statfs->f_ffree); + __put_user(host_statfs->f_syncwrites, &target_statfs->f_syncwrites); + __put_user(host_statfs->f_asyncwrites, &target_statfs->f_asyncwrites); + __put_user(host_statfs->f_syncreads, &target_statfs->f_syncreads); + __put_user(host_statfs->f_asyncreads, &target_statfs->f_asyncreads); + /* uint64_t f_spare[10]; */ + __put_user(host_statfs->f_namemax, &target_statfs->f_namemax); + __put_user(host_statfs->f_owner, &target_statfs->f_owner); + __put_user(host_statfs->f_fsid.val[0], &target_statfs->f_fsid.val[0]); + __put_user(host_statfs->f_fsid.val[1], &target_statfs->f_fsid.val[1]); + /* char f_charspace[80]; */ + strncpy(target_statfs->f_fstypename, host_statfs->f_fstypename, + sizeof(target_statfs->f_fstypename)); + strncpy(target_statfs->f_mntfromname, host_statfs->f_mntfromname, + sizeof(target_statfs->f_mntfromname)); + strncpy(target_statfs->f_mntonname, host_statfs->f_mntonname, + sizeof(target_statfs->f_mntonname)); + unlock_user_struct(target_statfs, target_addr, 1); + return 0; +} + /* * fcntl cmd conversion */ From patchwork Sun Aug 13 08:41:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820753 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=Es+yWFRd; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Jl5bg9z1yfS for ; Mon, 14 Aug 2023 05:44:22 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzl-0007s6-C3; Sun, 13 Aug 2023 15:43:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzj-0007rF-Ry for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:23 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzi-0002Pv-5u for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:23 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-3fe32016bc8so32837875e9.1 for ; Sun, 13 Aug 2023 12:43:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955800; x=1692560600; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+dm6ERbWnDuZOwPqGLPqR4XT6w3jbBV5vVVArlyMxbM=; b=Es+yWFRdE7Tg5C2sGUQQQgFNyKMLiEWTZP5gt5knfecmY8ceCb1zs2qkIHrbywh0ls 3Ko3+5imTLwMmGgh9sEThlLi7bW/gMDPiA0Gg4fZdThoSVXhVDGHjI88ONqzf5awrRhs attVognwWDkj5/S8gaXG4hRX+hVIlByl7CBHYWLFaTbQvoMCQ1BEOaj1N6BU4shSVz3K s6aL7SE7Ojubq8uGXUrTkQJmXIf1flSPQ9o4hbURXKO+vdPXl2GT2CYQtN379D0tPtBn gfoLPa3jTLhAflIGn81mW7DbDCtJc3plJuag/XK+WRQyoKDrYWvkbRbWqnX6P/TAcOHo GJVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955800; x=1692560600; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+dm6ERbWnDuZOwPqGLPqR4XT6w3jbBV5vVVArlyMxbM=; b=HpOE0CtOs6yrAFf9Ua/+3/hK5tZX3jwEcMajpiYIB9/T1scLIRy/YH3zhsxKo96+9S uM7a3X/IR01ubTMpKF+A8h7xpFD0DCbPqnKImvxlk2VTjwUrsWMRDTb8EbxsfK51Scmd HCISx7xKSSIDoh+5eH9ATyl2PQH4gkbnoVdQObxXKpkck4n88KAd1RV1i27ZiTJ+LVR1 EeSFESq5UZ3NanWKtIdY5tVuCSvBRnoR8Dd2eqnSksPsub8bVtP2d6JWy1e9lT7tsDqP 96bipybjLoUPNJRp0El59paiTrt0yjgQZat1c4r0CXQozmOuUWuBOFIZDkxVBRMty/BA C9iA== X-Gm-Message-State: AOJu0YxrAIZUaQGsimdHs2Q6GWZyi/qYYvrYJI4CpM2t7LN5DPOHXvIX 18+WdZTtdcMFkykseqboFQ5YjxozJ9k= X-Google-Smtp-Source: AGHT+IHjgC3xlxIsvrIY5w9WJmUZg3eRMOxgE5KFkrdGO2WzAr4GxiYH3118VS+/7LA8zeZbBZudwQ== X-Received: by 2002:a05:600c:420b:b0:3fe:3521:d9ca with SMTP id x11-20020a05600c420b00b003fe3521d9camr5563403wmh.3.1691955800467; Sun, 13 Aug 2023 12:43:20 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:20 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 17/32] Implement stat related syscalls Date: Sun, 13 Aug 2023 10:41:38 +0200 Message-Id: <20230813084153.6510-18-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x329.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the following syscalls: stat(2) lstat(2) fstat(2) fstatat(2) nstat nfstat nlstat Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 130 +++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 bsd-user/freebsd/os-stat.h diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h new file mode 100644 index 0000000000..f8f99b4a72 --- /dev/null +++ b/bsd-user/freebsd/os-stat.h @@ -0,0 +1,130 @@ +/* + * stat related system call shims and definitions + * + * Copyright (c) 2013 Stacey D. Son + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#ifndef BSD_USER_FREEBSD_OS_STAT_H +#define BSD_USER_FREEBSD_OS_STAT_H + +/* stat(2) */ +static inline abi_long do_freebsd11_stat(abi_long arg1, abi_long arg2) +{ + abi_long ret; + void *p; + struct freebsd11_stat st; + + LOCK_PATH(p, arg1); + ret = get_errno(freebsd11_stat(path(p), &st)); + UNLOCK_PATH(p, arg1); + if (!is_error(ret)) { + ret = h2t_freebsd11_stat(arg2, &st); + } + return ret; +} + +/* lstat(2) */ +static inline abi_long do_freebsd11_lstat(abi_long arg1, abi_long arg2) +{ + abi_long ret; + void *p; + struct freebsd11_stat st; + + LOCK_PATH(p, arg1); + ret = get_errno(freebsd11_lstat(path(p), &st)); + UNLOCK_PATH(p, arg1); + if (!is_error(ret)) { + ret = h2t_freebsd11_stat(arg2, &st); + } + return ret; +} + +/* fstat(2) */ +static inline abi_long do_freebsd_fstat(abi_long arg1, abi_long arg2) +{ + abi_long ret; + struct stat st; + + ret = get_errno(fstat(arg1, &st)); + if (!is_error(ret)) { + ret = h2t_freebsd_stat(arg2, &st); + } + return ret; +} + +/* fstatat(2) */ +static inline abi_long do_freebsd_fstatat(abi_long arg1, abi_long arg2, + abi_long arg3, abi_long arg4) +{ + abi_long ret; + void *p; + struct stat st; + + LOCK_PATH(p, arg2); + ret = get_errno(fstatat(arg1, p, &st, arg4)); + UNLOCK_PATH(p, arg2); + if (!is_error(ret) && arg3) { + ret = h2t_freebsd_stat(arg3, &st); + } + return ret; +} + +/* undocummented nstat(char *path, struct nstat *ub) syscall */ +static abi_long do_freebsd11_nstat(abi_long arg1, abi_long arg2) +{ + abi_long ret; + void *p; + struct freebsd11_stat st; + + LOCK_PATH(p, arg1); + ret = get_errno(freebsd11_nstat(path(p), &st)); + UNLOCK_PATH(p, arg1); + if (!is_error(ret)) { + ret = h2t_freebsd11_nstat(arg2, &st); + } + return ret; +} + +/* undocummented nfstat(int fd, struct nstat *sb) syscall */ +static abi_long do_freebsd11_nfstat(abi_long arg1, abi_long arg2) +{ + abi_long ret; + struct freebsd11_stat st; + + ret = get_errno(freebsd11_nfstat(arg1, &st)); + if (!is_error(ret)) { + ret = h2t_freebsd11_nstat(arg2, &st); + } + return ret; +} + +/* undocummented nlstat(char *path, struct nstat *ub) syscall */ +static abi_long do_freebsd11_nlstat(abi_long arg1, abi_long arg2) +{ + abi_long ret; + void *p; + struct freebsd11_stat st; + + LOCK_PATH(p, arg1); + ret = get_errno(freebsd11_nlstat(path(p), &st)); + UNLOCK_PATH(p, arg1); + if (!is_error(ret)) { + ret = h2t_freebsd11_nstat(arg2, &st); + } + return ret; +} + +#endif /* BSD_USER_FREEBSD_OS_STAT_H */ From patchwork Sun Aug 13 08:41:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820768 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=DEYcRmoo; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Mk4XmJz1yf2 for ; Mon, 14 Aug 2023 05:46:58 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzm-0007sO-B4; Sun, 13 Aug 2023 15:43:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzk-0007rg-Q3 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:24 -0400 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzj-0002Q9-53 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:24 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-3fe1a17f983so33046795e9.3 for ; Sun, 13 Aug 2023 12:43:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955801; x=1692560601; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=D4VC00NMaV/EVxyvh1YhfOSLjPJ+EyYcglqkFbj3qYA=; b=DEYcRmooWODjrPebEf7QEIXUOVX6chHgM0LiTR9wBahmo3HKGY7ppJOLQhcr5e6w8W xZGvfhzqCJSTXB/h2IJEpc1FV3vTuzD7al+w344XB6hc2DcNGnU5by+m3pWVrrDbHpLy 7BA8u696oRb8sVmgLySlBRy3Guc59RFbCJsCJBz5y8k34Dd+ZEj8eVWINL/5/JTQu55I 94Z+JSvhoI8eOgt0ZxRz0O8CNN6wHGFyiKfcBbrTpcovO+mhqPIgZ/Iu7W3Sls/HFROi m5ZUG7nTRrnecb2hB1NEDPid7bbyre/iJVZqCXDwWfsbLZqTCVMO/NtzmupO2xBHPrYd SNLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955801; x=1692560601; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=D4VC00NMaV/EVxyvh1YhfOSLjPJ+EyYcglqkFbj3qYA=; b=RY3lZR35SAyRH2IwztBuYbQ9eS4XNohiC+fgpcztqj8tEPgzLYFE8GKNd7Oy+H9MLq KHZgaoYFUy5CvBlFyR5yiBzj99DZeaRx2mgQYi3yRrebEi9PQ/QmxYcBl9L0p/LH+uIO 0VA22QWe5Vcqd/rMOs83m9Y7gdkd+hhjUmVPbkzGJFQImCQClVIGF2H8cNlLQD4DXkyJ o7bMBSZOvTQ3YHryu/STPWbndnnHaWpU3G02+KCIl9gcfg6L2+WEKKZkhNAjJpbazrGy 8f6pEU5eHit9W4YgmQLh5BfA0nyPLMROBQzjVmDjcdx6D2O3zWLuf375uHkXCBcw/Owo 6ZgA== X-Gm-Message-State: AOJu0YwPT/cwvZpQbcQGvlh5mGOha9B5qG4dgDMz+dBqDEnDIZDGk2Ky IoHgcDzfnAdg+IhyJbH3c4JQV2hE70w= X-Google-Smtp-Source: AGHT+IF5TYJF6E4sB+qEj6BnhtgHkIYjE9kCBOOpiRjfQM/ucO3GF5jkztSI3d1P0e3ZKWRsCaZrGg== X-Received: by 2002:a05:600c:2494:b0:3fc:7d2:e0c0 with SMTP id 20-20020a05600c249400b003fc07d2e0c0mr6407023wms.27.1691955801620; Sun, 13 Aug 2023 12:43:21 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:21 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 18/32] Implement stat related syscalls Date: Sun, 13 Aug 2023 10:41:39 +0200 Message-Id: <20230813084153.6510-19-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::331; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x331.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the following syscalls: getfh(2) lgetfh(2) fhopen(2) fhstat(2) fhstatfs(2) Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 83 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h index f8f99b4a72..935663c071 100644 --- a/bsd-user/freebsd/os-stat.h +++ b/bsd-user/freebsd/os-stat.h @@ -127,4 +127,87 @@ static abi_long do_freebsd11_nlstat(abi_long arg1, abi_long arg2) return ret; } +/* getfh(2) */ +static abi_long do_freebsd_getfh(abi_long arg1, abi_long arg2) +{ + abi_long ret; + void *p; + fhandle_t host_fh; + + LOCK_PATH(p, arg1); + ret = get_errno(getfh(path(p), &host_fh)); + UNLOCK_PATH(p, arg1); + if (is_error(ret)) { + return ret; + } + return h2t_freebsd_fhandle(arg2, &host_fh); +} + +/* lgetfh(2) */ +static inline abi_long do_freebsd_lgetfh(abi_long arg1, abi_long arg2) +{ + abi_long ret; + void *p; + fhandle_t host_fh; + + LOCK_PATH(p, arg1); + ret = get_errno(lgetfh(path(p), &host_fh)); + UNLOCK_PATH(p, arg1); + if (is_error(ret)) { + return ret; + } + return h2t_freebsd_fhandle(arg2, &host_fh); +} + +/* fhopen(2) */ +static inline abi_long do_freebsd_fhopen(abi_long arg1, abi_long arg2) +{ + abi_long ret; + fhandle_t host_fh; + + ret = t2h_freebsd_fhandle(&host_fh, arg1); + if (is_error(ret)) { + return ret; + } + + return get_errno(fhopen(&host_fh, arg2)); +} + +/* fhstat(2) */ +static inline abi_long do_freebsd_fhstat(abi_long arg1, abi_long arg2) +{ + abi_long ret; + fhandle_t host_fh; + struct stat host_sb; + + ret = t2h_freebsd_fhandle(&host_fh, arg1); + if (is_error(ret)) { + return ret; + } + ret = get_errno(fhstat(&host_fh, &host_sb)); + if (is_error(ret)) { + return ret; + } + return h2t_freebsd_stat(arg2, &host_sb); +} + +/* fhstatfs(2) */ +static inline abi_long do_freebsd_fhstatfs(abi_ulong target_fhp_addr, + abi_ulong target_stfs_addr) +{ + abi_long ret; + fhandle_t host_fh; + struct statfs host_stfs; + + ret = t2h_freebsd_fhandle(&host_fh, target_fhp_addr); + if (is_error(ret)) { + return ret; + } + ret = get_errno(fhstatfs(&host_fh, &host_stfs)); + if (is_error(ret)) { + return ret; + } + return h2t_freebsd_statfs(target_stfs_addr, &host_stfs); +} + #endif /* BSD_USER_FREEBSD_OS_STAT_H */ From patchwork Sun Aug 13 08:41:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820763 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=cTAqmOYv; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7LK46BKz1yf2 for ; Mon, 14 Aug 2023 05:45:45 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzn-0007sf-RR; Sun, 13 Aug 2023 15:43:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzm-0007sF-6z for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:26 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzk-0002Rf-LK for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:25 -0400 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-3fe5695b180so32849145e9.2 for ; Sun, 13 Aug 2023 12:43:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955803; x=1692560603; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=tytNoWwd4l2oWWKY6hZbDrOZveBwceyNmveWX7P6eu0=; b=cTAqmOYvZNPRbzXdLSPER2UH3nXK07P+MYYDnNxxPjEuOEqwscLWvusa4i2vvYsZ/J mZg0vz0+NdhvLIM9owU+1HGHZFLlQRduIY1byR57Nn9afa4k/C5ItNX4AnHp+bW0/HZu ZaROdx0+A+dJAYQwbTGA8z32AUpTvi8kSvelATn6Ei8ZpUiI55n1wF3dGXX/NRjKNdhc 5UYMj6vyNZYXLml6cLfojWQfjQvk3MxjhXwINAJyUaDlgcVpiHFsbaH1fqPGx3DeseKO owysjggy7W6PjN+U78FYtNgM5H4vwbT0nFgaxcJf9k6RtF91X060g+ojEkr0UhfSahto YR+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955803; x=1692560603; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=tytNoWwd4l2oWWKY6hZbDrOZveBwceyNmveWX7P6eu0=; b=DhPcyQ547181cIb5xZh4UNWriCJGEriwt/o2SgzFigLzTsVIfO/+LeozfRlqabNTym MAgKOYr002LhO9pg7kVqmLnLVRTn0oBtE7MdUauMB3nsY7ZWeZVAxd5Up/F99/AtUzKA DVxxE9bTnYSVthAPVYubSt/h4VaqkSDoG8d+DimHUh21j7Sixy+8QFXnLchaXXSEg8m+ QjiO2AA1ka6RQOfK9tUgtwuwLZXhqaDq2K/aR3LqLHm/1ffM7Xg1u8aVLu6oSMTARrZH R0BJi2dT/uNQM3ujs7jim4DPuC16J/Nd7s+A9x9RqtTmHGE+unTp5MSKUiTbgkuuNzHN sANQ== X-Gm-Message-State: AOJu0YwMKijlEoz3iN8utyjKyt4LMzVny/QxlS/cvp6DM/A28sVzBS6d DnQl6OjrRpDWMm2ku1ue16dlhpfhB88= X-Google-Smtp-Source: AGHT+IGnLcsWXDdbKPnD3IRkofX5D0TsKqbwRd6ySJFTSG6kWi5nBHX4XLUvKgVTZ3ogcgAfz2Y2PA== X-Received: by 2002:a05:600c:2258:b0:3fe:2f80:8394 with SMTP id a24-20020a05600c225800b003fe2f808394mr5812407wmm.15.1691955802800; Sun, 13 Aug 2023 12:43:22 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:22 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 19/32] Implement stat related syscalls Date: Sun, 13 Aug 2023 10:41:40 +0200 Message-Id: <20230813084153.6510-20-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the following syscalls: statfs(2) fstatfs(2) getfsstat(2) Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 69 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h index 935663c071..9492c93c55 100644 --- a/bsd-user/freebsd/os-stat.h +++ b/bsd-user/freebsd/os-stat.h @@ -210,4 +210,73 @@ static inline abi_long do_freebsd_fhstatfs(abi_ulong target_fhp_addr, return h2t_freebsd_statfs(target_stfs_addr, &host_stfs); } +/* statfs(2) */ +static inline abi_long do_freebsd_statfs(abi_long arg1, abi_long arg2) +{ + abi_long ret; + void *p; + struct statfs host_stfs; + + LOCK_PATH(p, arg1); + ret = get_errno(statfs(path(p), &host_stfs)); + UNLOCK_PATH(p, arg1); + if (is_error(ret)) { + return ret; + } + + return h2t_freebsd_statfs(arg2, &host_stfs); +} + +/* fstatfs(2) */ +static inline abi_long do_freebsd_fstatfs(abi_long fd, abi_ulong target_addr) +{ + abi_long ret; + struct statfs host_stfs; + + ret = get_errno(fstatfs(fd, &host_stfs)); + if (is_error(ret)) { + return ret; + } + + return h2t_freebsd_statfs(target_addr, &host_stfs); +} + +/* getfsstat(2) */ +static inline abi_long do_freebsd_getfsstat(abi_ulong target_addr, + abi_long bufsize, abi_long flags) +{ + abi_long ret; + struct statfs *host_stfs; + int count; + long host_bufsize; + + count = bufsize / sizeof(struct target_statfs); + + /* if user buffer is NULL then return number of mounted FS's */ + if (target_addr == 0 || count == 0) { + return get_errno(freebsd11_getfsstat(NULL, 0, flags)); + } + + /* XXX check count to be reasonable */ + host_bufsize = sizeof(struct statfs) * count; + host_stfs = alloca(host_bufsize); + if (!host_stfs) { + return -TARGET_EINVAL; + } + + ret = count = get_errno(getfsstat(host_stfs, host_bufsize, flags)); + if (is_error(ret)) { + return ret; + } + + while (count--) { + if (h2t_freebsd_statfs((target_addr + + (count * sizeof(struct target_statfs))), + &host_stfs[count])) { + return -TARGET_EFAULT; + } + } + return ret; +} + #endif /* BSD_USER_FREEBSD_OS_STAT_H */ From patchwork Sun Aug 13 08:41:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820757 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=HyVGLzKu; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Kb5gGqz1yf2 for ; Mon, 14 Aug 2023 05:45:07 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzo-0007sm-CP; Sun, 13 Aug 2023 15:43:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzn-0007sX-0h for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:27 -0400 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzl-0002Rz-Fy for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:26 -0400 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-313e742a787so2084540f8f.1 for ; Sun, 13 Aug 2023 12:43:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955804; x=1692560604; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nWpL2ZjaRHGF59jykGmUuJR96pZMoEaAnfNSKG75X6s=; b=HyVGLzKuYyh2NsEDQi8eh6shQbd6aRLV8kZpTmyqRE/s/4/0zQICke/vaFX6DiTN9s o3I+nXgU1FMKrEUULeg1LLgYeIPLomZO5st8vx7zB79jZejDCNmbmQnzf+M7L+Nhq4JY DDjhSEMsCBYCA+oz4iVg8xPWBZ+mYYlsLTlYokTCkevEIriHmUOe/aJ/cy8Q57tVnsM0 OvKvFSCjGf6OU8FlWmEMLrdwaQC3RmCgrA72Ia7sxqnkSDD2vGN7CluYqC2xuG7Ce9DY xpln1UiEeMEfcEn6qrPNLCuClELJ+RHOVnPXiBa9WOBtsOOvPGF9mAqMNwLgsjs0UQUW HJxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955804; x=1692560604; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nWpL2ZjaRHGF59jykGmUuJR96pZMoEaAnfNSKG75X6s=; b=b6SVzCz6bpSDFS2xvy2s5ThtRhY8THjbuyOF7B9JfFzmjb6A2y0oGv+3sV9p/uBg96 aMcwrBV3XFtjDvJwKcMPSVgTNFP5L69QnkbfcSXHoiJNQV9ZA9OHraZD7CwYkaETmzWI m6uE4gZxRzOCadGFklS2yuxfvy8kQPcMkXD4eaVT51yqqdpdGZD+rJw307jQugUu4WRV 8BgD/NAYgtkEgQQaI+O3gq8giAYXfYfkiCR77kp8eTQdmiDVOr/yRIiPByMFwex0XPi0 Zu3C8rrOpRSLK1+0UH2BXnzBlFOGQiX042jnxkTL1UXn5kt+r5nyAYedUjC42DqybF25 xf0w== X-Gm-Message-State: AOJu0Yz8RW8788dJCfhlI7kBvTe119qg+5imuZbc5bw5jpktDX8ImmqG E8w5wXA7V+x/O2J28yaTrC66OIGfcAs= X-Google-Smtp-Source: AGHT+IHm/ihADqgYWsfybnWbsRk6ZacnSaJ/221eRzCRuR9KeUIFWSUQ58BbvVzrRK6gugndBNhOPA== X-Received: by 2002:a5d:4990:0:b0:317:58a4:916f with SMTP id r16-20020a5d4990000000b0031758a4916fmr8093496wrq.33.1691955803898; Sun, 13 Aug 2023 12:43:23 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:23 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 20/32] Implement stat related syscalls Date: Sun, 13 Aug 2023 10:41:41 +0200 Message-Id: <20230813084153.6510-21-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42a; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x42a.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the following syscalls: getdents(2) getdirecentries(2) Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 72 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h index 9492c93c55..7dc41cd0bf 100644 --- a/bsd-user/freebsd/os-stat.h +++ b/bsd-user/freebsd/os-stat.h @@ -279,4 +279,76 @@ static inline abi_long do_freebsd_getfsstat(abi_ulong target_addr, return ret; } +/* getdents(2) */ +static inline abi_long do_freebsd11_getdents(abi_long arg1, + abi_ulong arg2, abi_long nbytes) +{ + abi_long ret; + struct freebsd11_dirent *dirp; + + dirp = lock_user(VERIFY_WRITE, arg2, nbytes, 0); + if (dirp == NULL) { + return -TARGET_EFAULT; + } + ret = get_errno(freebsd11_getdents(arg1, (char *)dirp, nbytes)); + if (!is_error(ret)) { + struct freebsd11_dirent *de; + int len = ret; + int reclen; + + de = dirp; + while (len > 0) { + reclen = de->d_reclen; + if (reclen > len) { + return -TARGET_EFAULT; + } + de->d_reclen = tswap16(reclen); + de->d_fileno = tswap32(de->d_fileno); + len -= reclen; + } + } + return ret; +} + +/* getdirecentries(2) */ +static inline abi_long do_freebsd_getdirentries(abi_long arg1, + abi_ulong arg2, abi_long nbytes, abi_ulong arg4) +{ + abi_long ret; + struct dirent *dirp; + long basep; + + dirp = lock_user(VERIFY_WRITE, arg2, nbytes, 0); + if (dirp == NULL) { + return -TARGET_EFAULT; + } + ret = get_errno(getdirentries(arg1, (char *)dirp, nbytes, &basep)); + if (!is_error(ret)) { + struct dirent *de; + int len = ret; + int reclen; + + de = dirp; + while (len > 0) { + reclen = de->d_reclen; + if (reclen > len) { + return -TARGET_EFAULT; + } + de->d_fileno = tswap64(de->d_fileno); + de->d_off = tswap64(de->d_off); + de->d_reclen = tswap16(de->d_reclen); + de->d_namlen = tswap16(de->d_namlen); + len -= reclen; + de = (struct dirent *)((void *)de + reclen); + } + } + unlock_user(dirp, arg2, ret); + if (arg4) { + if (put_user(basep, arg4, abi_ulong)) { + return -TARGET_EFAULT; + } + } + return ret; +} + #endif /* BSD_USER_FREEBSD_OS_STAT_H */ From patchwork Sun Aug 13 08:41:42 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820782 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=grTFNn6j; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7RQ2V9pz1yYC for ; Mon, 14 Aug 2023 05:50:10 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzq-0007ta-Cw; Sun, 13 Aug 2023 15:43:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzo-0007t0-Fn for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:28 -0400 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzm-0002SA-TM for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:28 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-3fe1fc8768aso37029715e9.1 for ; Sun, 13 Aug 2023 12:43:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955805; x=1692560605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=PTfbh54lTPCGxJdlrzh9SvxhO5f2kaYoIfXGlcT4LDc=; b=grTFNn6jzenNb6x8RFiaJ5V2Dm7dDcfwDXt3SRxKHzI0BvcZlbnseMGqxBUur5Ykrw VOt27JumEVT4HpLim4jiA0MPVTJpF3VTdw/Aq+Gpkz736KuJbislnN+L+otXYpAbKl0h yqIWlujnrEX5TGd1+rGWQE9R9M8DJfiGlmE01nzPynFDJquEhLC3LWP15cOLVA3jrx2r iYfgFyNSHLvJDiZpNRywzZwnZJpeBANd3Jfsb4UQCT4cN2KbqCGr3CBSYM9UW+XVfDLi /NgsTLFqUmlv/2PkqwpIXAUe2F1lnzW7qZzUCLXuekqD02hH6RyHfwSxGMV1QrwXKk29 LgfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955805; x=1692560605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PTfbh54lTPCGxJdlrzh9SvxhO5f2kaYoIfXGlcT4LDc=; b=MDnarS55lhbUE6JXYTm+2K9W1yMJgaVWyBCNbmFTaA0ZqV1qZklE4Qh3Hp8EQdWtsh BJQ+FmWg+QlAZSidB6jb4Oeovk8EMD9EB84+6fm0XfGzfafHX+I0r9OFeD/bTWlYTpae PXnXcD23Qm6qxERZ9tOV4x85plP3gVufYeRJh/mPIfd4cKp2SF35b1GNVB6RL8upY5ai st1+cLhucOk1F0mrvnE6tu1d/VfqT++fjTquzM9OnvLvSf601+Jv0stJ17oSnhULuXVx AyW/g2MK5/hhlafA29FyZDFjO97vE+KHi60bqA1z05F+SsR7ngaP6EZ5Dqq5l69+aLvV u2dg== X-Gm-Message-State: AOJu0Yzc7PNIZr7eqNCjaEvCuungi5WnvO+46oSV23b9DF7PL3vJGRLv XM70YQHA5CqX0gmHF3QhlhyRANWmYpA= X-Google-Smtp-Source: AGHT+IGc76LbDQWca63bbFlTI5Xbo5cj/t8zDhiPT7dbdBXIXzNMXYkvYPehRngOBq9qPG31XH6S8Q== X-Received: by 2002:a1c:6a14:0:b0:3f5:fff8:d4f3 with SMTP id f20-20020a1c6a14000000b003f5fff8d4f3mr6838450wmc.7.1691955805065; Sun, 13 Aug 2023 12:43:25 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:24 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 21/32] Implement stat related syscalls Date: Sun, 13 Aug 2023 10:41:42 +0200 Message-Id: <20230813084153.6510-22-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32c.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the following syscalls: fcntl(2) Signed-off-by: Stacey Son Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 74 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h index 7dc41cd0bf..5d9323c7d1 100644 --- a/bsd-user/freebsd/os-stat.h +++ b/bsd-user/freebsd/os-stat.h @@ -351,4 +351,78 @@ static inline abi_long do_freebsd_getdirentries(abi_long arg1, return ret; } +/* fcntl(2) */ +static inline abi_long do_freebsd_fcntl(abi_long arg1, abi_long arg2, + abi_ulong arg3) +{ + abi_long ret; + int host_cmd; + struct flock fl; + struct target_freebsd_flock *target_fl; + + host_cmd = target_to_host_fcntl_cmd(arg2); + if (host_cmd < 0) { + return host_cmd; + } + switch (arg2) { + case TARGET_F_GETLK: + if (!lock_user_struct(VERIFY_READ, target_fl, arg3, 1)) { + return -TARGET_EFAULT; + } + __get_user(fl.l_type, &target_fl->l_type); + __get_user(fl.l_whence, &target_fl->l_whence); + __get_user(fl.l_start, &target_fl->l_start); + __get_user(fl.l_len, &target_fl->l_len); + __get_user(fl.l_pid, &target_fl->l_pid); + __get_user(fl.l_sysid, &target_fl->l_sysid); + unlock_user_struct(target_fl, arg3, 0); + ret = get_errno(safe_fcntl(arg1, host_cmd, &fl)); + if (!is_error(ret)) { + if (!lock_user_struct(VERIFY_WRITE, target_fl, arg3, 0)) { + return -TARGET_EFAULT; + } + __put_user(fl.l_type, &target_fl->l_type); + __put_user(fl.l_whence, &target_fl->l_whence); + __put_user(fl.l_start, &target_fl->l_start); + __put_user(fl.l_len, &target_fl->l_len); + __put_user(fl.l_pid, &target_fl->l_pid); + __put_user(fl.l_sysid, &target_fl->l_sysid); + unlock_user_struct(target_fl, arg3, 1); + } + break; + + case TARGET_F_SETLK: + case TARGET_F_SETLKW: + if (!lock_user_struct(VERIFY_READ, target_fl, arg3, 1)) { + return -TARGET_EFAULT; + } + __get_user(fl.l_type, &target_fl->l_type); + __get_user(fl.l_whence, &target_fl->l_whence); + __get_user(fl.l_start, &target_fl->l_start); + __get_user(fl.l_len, &target_fl->l_len); + __get_user(fl.l_pid, &target_fl->l_pid); + __get_user(fl.l_sysid, &target_fl->l_sysid); + unlock_user_struct(target_fl, arg3, 0); + ret = get_errno(safe_fcntl(arg1, host_cmd, &fl)); + break; + + case TARGET_F_DUPFD: + case TARGET_F_DUP2FD: + case TARGET_F_GETOWN: + case TARGET_F_SETOWN: + case TARGET_F_GETFD: + case TARGET_F_SETFD: + case TARGET_F_GETFL: + case TARGET_F_SETFL: + case TARGET_F_READAHEAD: + case TARGET_F_RDAHEAD: + case TARGET_F_ADD_SEALS: + case TARGET_F_GET_SEALS: + default: + ret = get_errno(safe_fcntl(arg1, host_cmd, arg3)); + break; + } + return ret; +} + #endif /* BSD_USER_FREEBSD_OS_STAT_H */ From patchwork Sun Aug 13 08:41:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820780 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=polU+v6J; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7R45VrVz1yf2 for ; Mon, 14 Aug 2023 05:49:52 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzr-0007ts-0L; Sun, 13 Aug 2023 15:43:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzp-0007tN-2V for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:29 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzn-0002SL-MC for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:28 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-3fe24dd8898so34105985e9.2 for ; Sun, 13 Aug 2023 12:43:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955806; x=1692560606; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ekgOxp/3PUSZDR+G9wkupgXm77JnNTTdc/U/1XMcvVo=; b=polU+v6JSW+E87r2LJwmMU17gnlOOcZ7+1ce//SayoEjZjLgfzrvwmwmCE1HNdbESL Qvl0l6X4UKK/LNRsHXaZDZhyyhP22VKegNz+h7iJSyiMGDE8D4o+FEdKYnd9mgPJ9AKg qsA0a3o34Jfv1NI+2EOX+5nBXSS/HnaPEgS4iUVLf61VBAnzZbW9q8pkiS9Hp/HWNLV6 lmcdbm5VIGzdpliPq+qCsy4Z3Q8+RhkWoBAjoslfAeaM1CcVBBlr6IpgyNmTOh9suK41 y1gc4SZbUbfrhmcyYoOJhbR+jWOwd+KAhWNBDjpR6st4GefNQIBdvoxgVgE4/0JicYbs ct4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955806; x=1692560606; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ekgOxp/3PUSZDR+G9wkupgXm77JnNTTdc/U/1XMcvVo=; b=Tzp44y/OpUrXMEc7hcycPeKyn4EKEuoMy8C0DNfJgo2O7riMrdmHYvlykx55LT6vQp HzyBVKEk+16wpnmfaGZM6UFKcaFIlXuvFXktwITEDra6938Qk/XqXfpLp8K/AotDEu11 CHPUOLTri4qZDuxTwb85rBgeZ09Xd3wqBz+CyxwGXJWPGcIZikNqpC2fBuwK8+AOS5iE jam+wCa6r/ip0F/So6aTFdjSMLDDaTb3aiqhis83Acmf3bV3OeEWhZWTzPcHMWOXRDWH AVFxNj1ZWWlBJXaW0x7CQPn2ob4YognuN29lY2JSH/qB3rPz/cs3yc9Fv4JD14fg/1OG OOjQ== X-Gm-Message-State: AOJu0YyW4jU7OwAJIJhomz3LN1ToDAme6HES9gtdufCCItp/ltch8imo Dx491iHnjeQBEXsP/qoDQoCWlTuDJgs= X-Google-Smtp-Source: AGHT+IE8+u030Q6uRR6C9LHGXrVtx47D8VJDQwvRctgl8HdKCgkYdPLpnoVY+gLTYqglejv86uXVdQ== X-Received: by 2002:a05:600c:143:b0:3fb:dff2:9f17 with SMTP id w3-20020a05600c014300b003fbdff29f17mr5956552wmm.15.1691955806223; Sun, 13 Aug 2023 12:43:26 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:25 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 22/32] Implement freebsd11 stat related syscalls Date: Sun, 13 Aug 2023 10:41:43 +0200 Message-Id: <20230813084153.6510-23-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x329.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Michal Meloun Rename the following syscalls to the freebsd11 variant: do_freebsd_lstat -> do_freebsd11_lstat do_freebsd_stat -> do_freebsd11_stat Co-authored-by: Stacey Son Signed-off-by: Stacey Son Signed-off-by: Michal Meloun Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h index 5d9323c7d1..aef55c8bb5 100644 --- a/bsd-user/freebsd/os-stat.h +++ b/bsd-user/freebsd/os-stat.h @@ -20,6 +20,11 @@ #ifndef BSD_USER_FREEBSD_OS_STAT_H #define BSD_USER_FREEBSD_OS_STAT_H +int freebsd11_stat(const char *path, struct freebsd11_stat *stat); +__sym_compat(stat, freebsd11_stat, FBSD_1.0); +int freebsd11_lstat(const char *path, struct freebsd11_stat *stat); +__sym_compat(lstat, freebsd11_lstat, FBSD_1.0); + /* stat(2) */ static inline abi_long do_freebsd11_stat(abi_long arg1, abi_long arg2) { From patchwork Sun Aug 13 08:41:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820777 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=GbdKwFIk; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7QY4cVPz1yf2 for ; Mon, 14 Aug 2023 05:49:25 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzt-0007un-FF; Sun, 13 Aug 2023 15:43:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzr-0007u5-Ad for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:31 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzp-0002Sf-P2 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:31 -0400 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-3fe1d9a8ec6so26609515e9.1 for ; Sun, 13 Aug 2023 12:43:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955808; x=1692560608; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=rLo5r1g4/RAPygywIJaYvQMkE2Y7Fg+pDuqNkJm5wq4=; b=GbdKwFIkikkE5cyVnyoU5B5lOU8+Ov+87dFHiPtXn4hTRRMuuaIUPUw3HKxOIzy6H/ 3l7w3PulQssIHZ4NNgj2jukkUoLt6hoRxAPmCMb0hpZxxuGSKFGZrWdDxbFUZlTNAU+a QZpG0ffhddmLKc0spisYZ8zToc0aXXd6bZQB1H6CPhpfpu41rundpk55l9XmHxRJX7RN Z8YPpVyuEbVPR51cFLzLG3hM0hwM+MYbtTmzDUcVajc1tqtbsCKgDwb9YTenVduiNq+Y 4qFC41J9PapDO4L5V/OkyNR9IgzN+rHki0VPyNiVkI3Nys9+DMHo/3GlEleZQP2tBmmD ndCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955808; x=1692560608; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=rLo5r1g4/RAPygywIJaYvQMkE2Y7Fg+pDuqNkJm5wq4=; b=j3rCE3G9DpWSGwcJzSBZ7fLiZrVAFHwM66Hxj1tbpggOiDvcGEYGx9tKnjuNEieb36 Ex0z8QbzzcuxNj8BwBtbYBQ9UtVqddwHbJMBpsipUnd2DlnRIZX3uvfANPaQAFhW15Iq tr5wQA0dfAfaC5L3S7K58QcLunGFah7fWzYJMTnr2rDEP4fQzy/AYvQf0zV3oUh7vDyB x05T8tr+FcXAe7axtrxh/YIuB87+MHOdgB/8QOdjBGYZ/m7OeJhPUOXG+f0bc9AGEN37 DMH1ENVuGetv3bg2ttI3TeXPLKOdi2W9K2QDJwqNjcehnWa0jfdckwuSdUOp8Mp5qQwa sSCA== X-Gm-Message-State: AOJu0YwcxCRXyBCeJI47rt7ZIBeB2UUc9nUgfdB3Kqhfk+MdGuZflMAR mF4st9VdFVVJApnmqVe3DV/DCWPPEoA= X-Google-Smtp-Source: AGHT+IGCxtjY545PwKdDWtp9+x9+i2voJYUNyQsFsMth1nDWAKb30V2e1smkbPIbn/XNSef8hM5MUg== X-Received: by 2002:a7b:cd0d:0:b0:3fb:e1d0:6417 with SMTP id f13-20020a7bcd0d000000b003fbe1d06417mr8166809wmj.19.1691955807459; Sun, 13 Aug 2023 12:43:27 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:27 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 23/32] Implement freebsd11 stat related syscalls Date: Sun, 13 Aug 2023 10:41:44 +0200 Message-Id: <20230813084153.6510-24-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Michal Meloun Implement the freebsd11 variant of the following syscalls: fstat(2) fstatat(2) fhstat(2) fhstatfs(2) Co-authored-by: Stacey Son Signed-off-by: Stacey Son Signed-off-by: Michal Meloun Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 78 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h index aef55c8bb5..2e0c7245df 100644 --- a/bsd-user/freebsd/os-stat.h +++ b/bsd-user/freebsd/os-stat.h @@ -24,6 +24,17 @@ int freebsd11_stat(const char *path, struct freebsd11_stat *stat); __sym_compat(stat, freebsd11_stat, FBSD_1.0); int freebsd11_lstat(const char *path, struct freebsd11_stat *stat); __sym_compat(lstat, freebsd11_lstat, FBSD_1.0); +int freebsd11_fstat(int fd, struct freebsd11_stat *stat); +__sym_compat(fstat, freebsd11_fstat, FBSD_1.0); +int freebsd11_fstatat(int fd, const char *path, struct freebsd11_stat *stat, + int flag); +__sym_compat(fstatat, freebsd11_fstatat, FBSD_1.1); + +int freebsd11_fhstat(const fhandle_t *fhandle, struct freebsd11_stat *stat); +__sym_compat(fhstat, freebsd11_fhstat, FBSD_1.0); +int freebsd11_fhstatfs(const fhandle_t *fhandle, struct freebsd11_statfs * buf); +__sym_compat(fhstatfs, freebsd11_fhstatfs, FBSD_1.0); +int freebsd11_statfs(const char *path, struct freebsd11_statfs *buf); /* stat(2) */ static inline abi_long do_freebsd11_stat(abi_long arg1, abi_long arg2) @@ -57,6 +68,19 @@ static inline abi_long do_freebsd11_lstat(abi_long arg1, abi_long arg2) return ret; } +/* fstat(2) */ +static inline abi_long do_freebsd11_fstat(abi_long arg1, abi_long arg2) +{ + abi_long ret; + struct freebsd11_stat st; + + ret = get_errno(freebsd11_fstat(arg1, &st)); + if (!is_error(ret)) { + ret = h2t_freebsd11_stat(arg2, &st); + } + return ret; +} + /* fstat(2) */ static inline abi_long do_freebsd_fstat(abi_long arg1, abi_long arg2) { @@ -70,6 +94,23 @@ static inline abi_long do_freebsd_fstat(abi_long arg1, abi_long arg2) return ret; } +/* fstatat(2) */ +static inline abi_long do_freebsd11_fstatat(abi_long arg1, abi_long arg2, + abi_long arg3, abi_long arg4) +{ + abi_long ret; + void *p; + struct freebsd11_stat st; + + LOCK_PATH(p, arg2); + ret = get_errno(freebsd11_fstatat(arg1, p, &st, arg4)); + UNLOCK_PATH(p, arg2); + if (!is_error(ret) && arg3) { + ret = h2t_freebsd11_stat(arg3, &st); + } + return ret; +} + /* fstatat(2) */ static inline abi_long do_freebsd_fstatat(abi_long arg1, abi_long arg2, abi_long arg3, abi_long arg4) @@ -178,6 +219,24 @@ static inline abi_long do_freebsd_fhopen(abi_long arg1, abi_long arg2) return get_errno(fhopen(&host_fh, arg2)); } +/* fhstat(2) */ +static inline abi_long do_freebsd11_fhstat(abi_long arg1, abi_long arg2) +{ + abi_long ret; + fhandle_t host_fh; + struct freebsd11_stat host_sb; + + ret = t2h_freebsd_fhandle(&host_fh, arg1); + if (is_error(ret)) { + return ret; + } + ret = get_errno(freebsd11_fhstat(&host_fh, &host_sb)); + if (is_error(ret)) { + return ret; + } + return h2t_freebsd11_stat(arg2, &host_sb); +} + /* fhstat(2) */ static inline abi_long do_freebsd_fhstat(abi_long arg1, abi_long arg2) { @@ -196,6 +255,25 @@ static inline abi_long do_freebsd_fhstat(abi_long arg1, abi_long arg2) return h2t_freebsd_stat(arg2, &host_sb); } +/* fhstatfs(2) */ +static inline abi_long do_freebsd11_fhstatfs(abi_ulong target_fhp_addr, + abi_ulong target_stfs_addr) +{ + abi_long ret; + fhandle_t host_fh; + struct freebsd11_statfs host_stfs; + + ret = t2h_freebsd_fhandle(&host_fh, target_fhp_addr); + if (is_error(ret)) { + return ret; + } + ret = get_errno(freebsd11_fhstatfs(&host_fh, &host_stfs)); + if (is_error(ret)) { + return ret; + } + return h2t_freebsd11_statfs(target_stfs_addr, &host_stfs); +} + /* fhstatfs(2) */ static inline abi_long do_freebsd_fhstatfs(abi_ulong target_fhp_addr, abi_ulong target_stfs_addr) From patchwork Sun Aug 13 08:41:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820760 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=EPr6JbhT; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Kz2RZpz1yf2 for ; Mon, 14 Aug 2023 05:45:27 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzs-0007ua-V3; Sun, 13 Aug 2023 15:43:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzr-0007uE-QQ for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:31 -0400 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzq-0002Sj-66 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:31 -0400 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-3fe32016bc8so32838305e9.1 for ; Sun, 13 Aug 2023 12:43:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955809; x=1692560609; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0MONonAVf/x+5s65BrH15EWH3H62fPVv1nAh+5Em/Wk=; b=EPr6JbhTCENO2PZnLG5Y6yZxfqtGq7AHg+Btaa5AlHcCmzUyYIB3WROkhxrLsvldDK psJaEVf4AIq0oHCnKueNHj2shW0doFvoYSkgvMrEHT7GzySJ30J+of+0LeetjVAo3UeI WX5pYo+uYiVminoYjMu6hc4xKrQlu9XOfztYTX96oKkfsRsN89xeMu2lprqgFGxqbzjk j8e8ImcKdUubq7iRnzZZWSweRtZUY5VPEBuyKhF1CozzCqx6DUpUt5vhfmzZNU55tmm2 oblJTwACG7gkudCD6uuQ82BOCtyvvhs3IP8SY9UoGqXda1KMwn4BpaPGTeVO9Rci0EPI CGvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955809; x=1692560609; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0MONonAVf/x+5s65BrH15EWH3H62fPVv1nAh+5Em/Wk=; b=EjUgRhG5tj+1j45/T5rDIXgMQ8l5hE2+w57KAeSSx40+4Atjls4EaXNETqTxqVk8TM yKjjZ2jIPfd2Cvju9UTl5qz3FMcUDSLNFRjTF75kxJFq0NtmvLG+m0q8B1+aWP8S0711 XnnSipeGufl/OUV7oGIGUYfndB14J3b4MNZsgCLGkJiBmx2QI0wQxub0wYztzr7E3jx0 0rSuu22X3FZIQIBXrwwzslxNUjpx/DZLFtdewDfdyWEmtSmZU2d6LCosYprvxgloLRnJ yc29OBNaRcPgxmNX8DJm64v3zOMShP+4jGYk6wHITPi6WnQZ7F0jtSc+3eujLBc4eCv7 be/A== X-Gm-Message-State: AOJu0YxH8VoQxyAohtyTTj4nlFlb5zDsAZfjF9vnd+d0ae7fywB9o9zD auCkXnL7HKabMaqsuXEABgeHBKWmv9s= X-Google-Smtp-Source: AGHT+IENxMyB5zUfQAUd8zagO5SPi1sWj1D4Z7ad0jjIqJwwLe4rqMhNPwgnoNLLWIbFcC9VZu9c7A== X-Received: by 2002:a05:600c:2258:b0:3fe:2f80:8394 with SMTP id a24-20020a05600c225800b003fe2f808394mr5812517wmm.15.1691955808686; Sun, 13 Aug 2023 12:43:28 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:28 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 24/32] Implement freebsd11 stat related syscalls Date: Sun, 13 Aug 2023 10:41:45 +0200 Message-Id: <20230813084153.6510-25-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32d.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Michal Meloun Implement the freebsd11 variant of the following syscalls: statfs(2) fstatfs(2) getfsstat(2) Co-authored-by: Stacey Son Signed-off-by: Stacey Son Signed-off-by: Michal Meloun Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 75 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h index 2e0c7245df..04a61fabd1 100644 --- a/bsd-user/freebsd/os-stat.h +++ b/bsd-user/freebsd/os-stat.h @@ -32,9 +32,15 @@ __sym_compat(fstatat, freebsd11_fstatat, FBSD_1.1); int freebsd11_fhstat(const fhandle_t *fhandle, struct freebsd11_stat *stat); __sym_compat(fhstat, freebsd11_fhstat, FBSD_1.0); +int freebsd11_getfsstat(struct freebsd11_statfs *buf, long bufsize, int mode); +__sym_compat(getfsstat, freebsd11_getfsstat, FBSD_1.0); int freebsd11_fhstatfs(const fhandle_t *fhandle, struct freebsd11_statfs * buf); __sym_compat(fhstatfs, freebsd11_fhstatfs, FBSD_1.0); int freebsd11_statfs(const char *path, struct freebsd11_statfs *buf); +__sym_compat(statfs, freebsd11_statfs, FBSD_1.0); +int freebsd11_fstatfs(int fd, struct freebsd11_statfs *buf); +__sym_compat(fstatfs, freebsd11_fstatfs, FBSD_1.0); + /* stat(2) */ static inline abi_long do_freebsd11_stat(abi_long arg1, abi_long arg2) @@ -293,6 +299,23 @@ static inline abi_long do_freebsd_fhstatfs(abi_ulong target_fhp_addr, return h2t_freebsd_statfs(target_stfs_addr, &host_stfs); } +/* statfs(2) */ +static inline abi_long do_freebsd11_statfs(abi_long arg1, abi_long arg2) +{ + abi_long ret; + void *p; + struct freebsd11_statfs host_stfs; + + LOCK_PATH(p, arg1); + ret = get_errno(freebsd11_statfs(path(p), &host_stfs)); + UNLOCK_PATH(p, arg1); + if (is_error(ret)) { + return ret; + } + + return h2t_freebsd11_statfs(arg2, &host_stfs); +} + /* statfs(2) */ static inline abi_long do_freebsd_statfs(abi_long arg1, abi_long arg2) { @@ -310,6 +333,20 @@ static inline abi_long do_freebsd_statfs(abi_long arg1, abi_long arg2) return h2t_freebsd_statfs(arg2, &host_stfs); } +/* fstatfs(2) */ +static inline abi_long do_freebsd11_fstatfs(abi_long fd, abi_ulong target_addr) +{ + abi_long ret; + struct freebsd11_statfs host_stfs; + + ret = get_errno(freebsd11_fstatfs(fd, &host_stfs)); + if (is_error(ret)) { + return ret; + } + + return h2t_freebsd11_statfs(target_addr, &host_stfs); +} + /* fstatfs(2) */ static inline abi_long do_freebsd_fstatfs(abi_long fd, abi_ulong target_addr) { @@ -324,6 +361,44 @@ static inline abi_long do_freebsd_fstatfs(abi_long fd, abi_ulong target_addr) return h2t_freebsd_statfs(target_addr, &host_stfs); } +/* getfsstat(2) */ +static inline abi_long do_freebsd11_getfsstat(abi_ulong target_addr, + abi_long bufsize, abi_long flags) +{ + abi_long ret; + struct freebsd11_statfs *host_stfs; + int count; + long host_bufsize; + + count = bufsize / sizeof(struct target_freebsd11_statfs); + + /* if user buffer is NULL then return number of mounted FS's */ + if (target_addr == 0 || count == 0) { + return get_errno(freebsd11_getfsstat(NULL, 0, flags)); + } + + /* XXX check count to be reasonable */ + host_bufsize = sizeof(struct freebsd11_statfs) * count; + host_stfs = alloca(host_bufsize); + if (!host_stfs) { + return -TARGET_EINVAL; + } + + ret = count = get_errno(freebsd11_getfsstat(host_stfs, host_bufsize, flags)); + if (is_error(ret)) { + return ret; + } + + while (count--) { + if (h2t_freebsd11_statfs((target_addr + + (count * sizeof(struct target_freebsd11_statfs))), + &host_stfs[count])) { + return -TARGET_EFAULT; + } + } + return ret; +} + /* getfsstat(2) */ static inline abi_long do_freebsd_getfsstat(abi_ulong target_addr, abi_long bufsize, abi_long flags) From patchwork Sun Aug 13 08:41:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820770 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=gIM80ICv; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7NG04zSz1yf2 for ; Mon, 14 Aug 2023 05:47:26 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzu-0007vX-IV; Sun, 13 Aug 2023 15:43:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzs-0007uZ-Tz for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:32 -0400 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzr-0002Sv-CS for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:32 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-3fe4a89e8c4so33541525e9.3 for ; Sun, 13 Aug 2023 12:43:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955810; x=1692560610; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bVHCLZbghf3dGGNPrTbCLPgQNA7m08ZBl/Dqb3D8Ozc=; b=gIM80ICvWWkSqZzTWtn68TdW4FDnfzPtXAXWX+4l8v1MOesCBREB6ABRUU+yQuq2VJ lcpGaozQhGWyJvVvs1gmxPaAkpIIzusrWILPoMsvVEEFdgZ0+0pWHog4ReVx4XqPAquH /cZpby/bO/UqB8SojN66vtoL1LGbsf7Kufa4RMTskYJ+OlNAUGzwuatsTZwbPhn7tK2v Rup4M4uLQ7X0tFiw4jQfP6M5IL2eOctj0M4ZtvaIF5YviwN01BzaVwwc3xuNTl4ESClP pgcqAjriBLBwW4MRG9bcx8A9A7d1Xt4NJw33EBsd1HwLzh8cRRniLTnq+scbdL3DtmB2 37ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955810; x=1692560610; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bVHCLZbghf3dGGNPrTbCLPgQNA7m08ZBl/Dqb3D8Ozc=; b=IlieFIiy0bSEGp/SO7rLb9hsIHqYO46xB7ZP3zJtglLjCnI/Mt/GO/edE8ODlRglFH 2DjqnsY6wvHfEkRwMBb1miroX5zKyQ/a1cE9CezW1mpwkO8pll1ikdrY1a6gLrOUOJ2u pdxRAixP35Qxz6q+/ayC0EKEHqNoo1qyhmt9Lb6RbknV4NwiDjlpbbIHS/J4P44SYnjh k0r7okSO2nodXvxgdatsudKI6ZkNQg1F67+0a0PzWk5VKppXJPV1hgeG2OL4AYP1fsY9 5BIo6g5//VKy4lWPeFK/GDIjCMnLm8HK9/3pqHJ5+n6dBujUJZRDjx81PXL9Zn1m0DqQ Yi8g== X-Gm-Message-State: AOJu0YzVdkGagw9g3id2qnK63vF9FGrMSjW5VtQNUOX6qHC+rfVy6KY7 v6Iby+8YUIC1Jo5PaCCEkJuTySDnhwU= X-Google-Smtp-Source: AGHT+IHjTxgx7laaEdMWH6B/deM6yXtTZl3PaQgz1eyz64WoHL3aWqiy742qPbFOQr2sA8aoCJAybg== X-Received: by 2002:a7b:cd02:0:b0:3fe:21b9:806 with SMTP id f2-20020a7bcd02000000b003fe21b90806mr5758654wmj.0.1691955809836; Sun, 13 Aug 2023 12:43:29 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:29 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 25/32] Implement freebsd11 stat related syscalls Date: Sun, 13 Aug 2023 10:41:46 +0200 Message-Id: <20230813084153.6510-26-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x333.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Michal Meloun Implement the freebsd11 variant of the following syscalls: getdirecentries(2) Co-authored-by: Stacey Son Signed-off-by: Stacey Son Signed-off-by: Michal Meloun Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 44 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h index 04a61fabd1..26909af455 100644 --- a/bsd-user/freebsd/os-stat.h +++ b/bsd-user/freebsd/os-stat.h @@ -41,6 +41,11 @@ __sym_compat(statfs, freebsd11_statfs, FBSD_1.0); int freebsd11_fstatfs(int fd, struct freebsd11_statfs *buf); __sym_compat(fstatfs, freebsd11_fstatfs, FBSD_1.0); +ssize_t freebsd11_getdirentries(int fd, char *buf, size_t nbytes, off_t *basep); +__sym_compat(getdirentries, freebsd11_getdirentries, FBSD_1.0); +ssize_t freebsd11_getdents(int fd, char *buf, size_t nbytes); +__sym_compat(getdents, freebsd11_getdents, FBSD_1.0); + /* stat(2) */ static inline abi_long do_freebsd11_stat(abi_long arg1, abi_long arg2) @@ -468,6 +473,45 @@ static inline abi_long do_freebsd11_getdents(abi_long arg1, return ret; } +/* getdirecentries(2) */ +static inline abi_long do_freebsd11_getdirentries(abi_long arg1, + abi_ulong arg2, abi_long nbytes, abi_ulong arg4) +{ + abi_long ret; + struct freebsd11_dirent *dirp; + long basep; + + dirp = lock_user(VERIFY_WRITE, arg2, nbytes, 0); + if (dirp == NULL) { + return -TARGET_EFAULT; + } + ret = get_errno(freebsd11_getdirentries(arg1, (char *)dirp, nbytes, &basep)); + if (!is_error(ret)) { + struct freebsd11_dirent *de; + int len = ret; + int reclen; + + de = dirp; + while (len > 0) { + reclen = de->d_reclen; + if (reclen > len) { + return -TARGET_EFAULT; + } + de->d_reclen = tswap16(reclen); + de->d_fileno = tswap32(de->d_fileno); + len -= reclen; + de = (struct freebsd11_dirent *)((void *)de + reclen); + } + } + unlock_user(dirp, arg2, ret); + if (arg4) { + if (put_user(basep, arg4, abi_ulong)) { + return -TARGET_EFAULT; + } + } + return ret; +} + /* getdirecentries(2) */ static inline abi_long do_freebsd_getdirentries(abi_long arg1, abi_ulong arg2, abi_long nbytes, abi_ulong arg4) From patchwork Sun Aug 13 08:41:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820764 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=elF6qNMb; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Lb3QNfz1yf2 for ; Mon, 14 Aug 2023 05:45:59 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzv-0007vr-Fe; Sun, 13 Aug 2023 15:43:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzu-0007vG-AF for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:34 -0400 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzs-0002TG-Qz for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:34 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-317c3ac7339so3172917f8f.0 for ; Sun, 13 Aug 2023 12:43:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955811; x=1692560611; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=r/uzfJdCP5YIWSEpmgBXqvmwwuwBH/r3kHOMiqXIu+E=; b=elF6qNMbZOcny/WRMhEbdcPniKFVnaVG8fxLQ3eRec8wWVdQLG2796NOMaYi2CvWD7 4SbzlF6jWY5p1dYU5mJyW6p3WiMwvNx3W3IejecYNFX78HTN1/Tqp/8cqUNTLT783xSZ rC4FyBHIhxWYhV1cRcFYIeViHP7hap97s9+0TToFlB3E8DIJaVAHUGhUPzGqQ7ekYwfh YyycIsSSzzEJfLBhOOtfQ8+eL5c8apO5of0KULe7q1fX2CNP4ScwDhny4HncKUlJNCXh qJDnbx01gaaA+ltH+nNaoRhLQFmp1YcFdAALc3jr7oWc1CWijctzlAQrPFS84hHgGRgL xYLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955811; x=1692560611; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=r/uzfJdCP5YIWSEpmgBXqvmwwuwBH/r3kHOMiqXIu+E=; b=NGzOfB/3+CHxav9ny0tHh3r3Ybm0aV4I61gtYVlYkVEPnFM7xnK2JeZpPuQOJ/tTID R2sK4tZotPwtv8zPn6S2dLI/Jiw60TyHqTre3rvYJlMGH/Fl0VmEAx1Otrz2iEEO3pf8 4W9N8zieQlxAOfUQEZE/8AWYx04ecBVqHGrxSMgxgbV+H0Or4yfjZ4/pPCiiawNmtrsm 5JoO4quiAdMO1zsN9MPWA8pf8eNWxzOg5/YuCPkAjW+nwwhaIN3QwVqjPM6S7ST7g+uN LcV5A7zy4sYpSiX51oJiElqKuDlwppYlPJJWh7YD5JYNKdlh6Kmt1JecVGU1zui+sV4O P9tw== X-Gm-Message-State: AOJu0YyWCcQDkymUyhtNsJoXSBMKOPsfMgyku1/sag/4wD64AumD1HOo HccsCLgtD1MJiwpRxqmMWMHIrYHhYkQ= X-Google-Smtp-Source: AGHT+IEF9Bvf0JjntJVWH5pme0OrSSlUnG9GMOE8/YDfCQ7+IVb2UkAWfphNUMRwM1GD4OFOPqwKvA== X-Received: by 2002:a5d:560d:0:b0:313:e953:65d0 with SMTP id l13-20020a5d560d000000b00313e95365d0mr5365477wrv.28.1691955811055; Sun, 13 Aug 2023 12:43:31 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:30 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v3 26/32] Implement freebsd11 stat related syscalls Date: Sun, 13 Aug 2023 10:41:47 +0200 Message-Id: <20230813084153.6510-27-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::432; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x432.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Michal Meloun Forward declaration of the nstat syscalls: nstat nlstat nfstat Co-authored-by: Stacey Son Signed-off-by: Stacey Son Signed-off-by: Michal Meloun Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h index 26909af455..e31b2aab9e 100644 --- a/bsd-user/freebsd/os-stat.h +++ b/bsd-user/freebsd/os-stat.h @@ -46,6 +46,13 @@ __sym_compat(getdirentries, freebsd11_getdirentries, FBSD_1.0); ssize_t freebsd11_getdents(int fd, char *buf, size_t nbytes); __sym_compat(getdents, freebsd11_getdents, FBSD_1.0); +/* undocumented nstat system calls */ +int freebsd11_nstat(const char *path, struct freebsd11_stat *sb); +__sym_compat(nstat, freebsd11_nstat, FBSD_1.0); +int freebsd11_nlstat(const char *path, struct freebsd11_stat *sb); +__sym_compat(nlstat, freebsd11_nlstat, FBSD_1.0); +int freebsd11_nfstat(int fd, struct freebsd11_stat *sb); +__sym_compat(nfstat, freebsd11_nfstat, FBSD_1.0); /* stat(2) */ static inline abi_long do_freebsd11_stat(abi_long arg1, abi_long arg2) From patchwork Sun Aug 13 08:41:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820762 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=Mfa8haEP; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7L425l8z1yf2 for ; Mon, 14 Aug 2023 05:45:32 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzx-0007wl-5y; Sun, 13 Aug 2023 15:43:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzv-0007w0-MY for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:35 -0400 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzu-0002TV-2E for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:35 -0400 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-3fe4b95c371so20962665e9.1 for ; Sun, 13 Aug 2023 12:43:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955812; x=1692560612; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=4HD36HNy1sYanocpvKbE1/qChGIAf2ss1+1ZwBL1pR0=; b=Mfa8haEPjADAU6M+ziKDM4FwGEKpxD7prdszWdGvdXkhF5VCjXv/M+G8nn4/1xvdnB ltgseHSCkgok1Fn3Xubv//HRfNCVqCT1KiRqYDCclhehd/Oo1x8LuabWtR/DsBd0Xl5O xHbwPDVZnq87zoVPajp70lWgiD8TwM4jOo1q5VEZdA0ZVd/vakCokvSsZvglApde7pYS zez79kJ44Vc8/NdaAVVchGbG3w2dkf8wffp8VlQdNT7pqcq/8+0xCapA7PUH3zCNkqv2 UmPdr+h1DA7RwkPJ9ETa4vfilAvFoKBhiiCtNxSYoydkRqU7DmY7SURuMExALuIT6k0l iQcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955812; x=1692560612; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4HD36HNy1sYanocpvKbE1/qChGIAf2ss1+1ZwBL1pR0=; b=LlIm+P55paweVJjeMKU+i1f//YIno9xMB0dMgnrbt+W0WRRyfTnxR5L08jBdlDkZ2e 5MRMv804qJJwubFMTOxi80LlqfkfE1DqNly8E2eoQyKVjDfu6p79zpscYKbJvIkuITwW CjhGHLDhIE7j0hyXtlP/y3/hyT2ep7jaCxWWz83CTviLIAMU/wh/HBFAJOHKJbtOQuBj p2LMkZKZH9A5WMAc62StMb+3rnraXoMqhBPKFoDG2GHDfFA8OwfLkgUiX6JZKFWeWnUX YrFDkPwBId74c/UtmH7RV/Xwn/F8wKaUpZmOQ4WAusRrgTPk4apT1ggNwJ7uFNDetNQ3 JnTw== X-Gm-Message-State: AOJu0Yw2J9nCjxXnMV+5yy4I9oS72p9M69nUEL8d/5OgPnUTs9TzMBfs /BUIot04IMjXlDDFLfzWiclhoFN7s8o= X-Google-Smtp-Source: AGHT+IGSyq5ocKP3HWtO8VIC0xEM40ArIfGaomto5Vr8OJ632BBFqs7aNyq2wiUBFf2/4ER9kzOU9A== X-Received: by 2002:a05:600c:1e14:b0:3fe:373a:e523 with SMTP id ay20-20020a05600c1e1400b003fe373ae523mr8713283wmb.15.1691955812313; Sun, 13 Aug 2023 12:43:32 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:32 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, =?utf-8?q?Mika=C3=ABl_Urankar?= , Karim Taha , Richard Henderson Subject: [PATCH v3 27/32] Implement do_freebsd_realpathat syscall Date: Sun, 13 Aug 2023 10:41:48 +0200 Message-Id: <20230813084153.6510-28-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x334.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Mikaël Urankar Signed-off-by: Mikaël Urankar Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-stat.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/bsd-user/freebsd/os-stat.h b/bsd-user/freebsd/os-stat.h index e31b2aab9e..b20e270774 100644 --- a/bsd-user/freebsd/os-stat.h +++ b/bsd-user/freebsd/os-stat.h @@ -634,4 +634,30 @@ static inline abi_long do_freebsd_fcntl(abi_long arg1, abi_long arg2, return ret; } +#if defined(__FreeBSD_version) && __FreeBSD_version >= 1300080 +extern int __realpathat(int fd, const char *path, char *buf, size_t size, + int flags); +/* https://svnweb.freebsd.org/base?view=revision&revision=358172 */ +/* no man page */ +static inline abi_long do_freebsd_realpathat(abi_long arg1, abi_long arg2, + abi_long arg3, abi_long arg4, abi_long arg5) +{ + abi_long ret; + void *p, *b; + + LOCK_PATH(p, arg2); + b = lock_user(VERIFY_WRITE, arg3, arg4, 0); + if (b == NULL) { + UNLOCK_PATH(p, arg2); + return -TARGET_EFAULT; + } + + ret = get_errno(__realpathat(arg1, p, b, arg4, arg5)); + UNLOCK_PATH(p, arg2); + unlock_user(b, arg3, ret); + + return ret; +} +#endif + #endif /* BSD_USER_FREEBSD_OS_STAT_H */ From patchwork Sun Aug 13 08:41:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820772 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=E9c1NNx0; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7NT0H0qz1yf2 for ; Mon, 14 Aug 2023 05:47:37 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzx-0007x2-PL; Sun, 13 Aug 2023 15:43:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzw-0007wQ-AU for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:36 -0400 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzu-0002Tc-UI for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:36 -0400 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-3fe1fc8768aso37030595e9.1 for ; Sun, 13 Aug 2023 12:43:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955813; x=1692560613; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+1p1EbelIrl574LxcCV2hZyhTqJPEK2mCoLPeGMnT7c=; b=E9c1NNx09yaHiIFsH7O2XqtUJdyP38PjdOYQZOm1Z2CIPSn018OU+9SLu+NB2YCjKj IFUk2xuUVjGLSIgbFBFqASvN649ZrxIiEvT0tDJN7HnIe5fVrSNyT3cGgtUzZS+OLKjK bMXEs8Usb1sILDP0n6AC8Dr3Whd04Ja8up8ICrKgvpj/nu6x8iEZIsloUnQYUfeyMIrs 5BUDjOjNIWT6+VTXXh/0mWgJeuBbQ2525fCet3ITnMJfOAdR1Vxl1V4lUDXjcIY8W7/s DDXDrdTSPEWGCJYj6drOYP9wF/2Gd4SQpOs1col9YUE96/Z7uPRl6wCGA1AguJT9TmEz yL1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955813; x=1692560613; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+1p1EbelIrl574LxcCV2hZyhTqJPEK2mCoLPeGMnT7c=; b=EDP7Ku+7sJxEhntMW3gneXL3laSgO0WCcndUgDoH4YI4Vr/MkBGBuygkkoTH/c7mPZ boLrQqolPc62cjVFga8nD371Vu/MvsrkOqfRHSL+GGiT+yCSJXHmb6RAjCKaBM95M0/4 sAE9L6G+IUOHAoyfUmvuXEddO1NAzBvRCXK6D5X7l53raGikUaiO2gmk5fXR/S1xl2Ls BJFYGQvTz3bUjyi6orSYubXR9pQRSBLFoxgH0JBSfU0ga4Zl7PR9HY/MD/F9Mp4E6j+n jBxfP/Uq5rXU9Im2XcW8/wSxn5PpgvCERERxzPKVbx6Ii6nlGbgb1PMjtqPz8BVWKVXG 6uBw== X-Gm-Message-State: AOJu0YyiT3xitxX/D5sQpuiYhc+i8GqxBDQiVvWQyH3ThTQhMuUESdX9 6lZpj0gEZDZ8TEC+Hp4Q+gUYaY635Mg= X-Google-Smtp-Source: AGHT+IEX5glHz3BvJoH1T7gtuohjZ6tY3crGcr/dprnN49BoXz/0eZ6qVGbwIp99i8g5+y2JGUWFqA== X-Received: by 2002:a1c:7417:0:b0:3fe:173e:4a34 with SMTP id p23-20020a1c7417000000b003fe173e4a34mr6066495wmc.40.1691955813382; Sun, 13 Aug 2023 12:43:33 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:33 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v3 28/32] Add os-stat.c to the build Date: Sun, 13 Aug 2023 10:41:49 +0200 Message-Id: <20230813084153.6510-29-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32f.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/meson.build | 1 + 1 file changed, 1 insertion(+) diff --git a/bsd-user/freebsd/meson.build b/bsd-user/freebsd/meson.build index f87c788e84..f2f047cca3 100644 --- a/bsd-user/freebsd/meson.build +++ b/bsd-user/freebsd/meson.build @@ -1,4 +1,5 @@ bsd_user_ss.add(files( + 'os-stat.c', 'os-sys.c', 'os-syscall.c', )) From patchwork Sun Aug 13 08:41:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820761 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=nvOdMOyv; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7L03p6zz1yf2 for ; Mon, 14 Aug 2023 05:45:28 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVGzz-0007xY-BQ; Sun, 13 Aug 2023 15:43:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzy-0007x4-GS for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:38 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzw-0002To-0d for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:38 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-3fe4b95c371so20962785e9.1 for ; Sun, 13 Aug 2023 12:43:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955814; x=1692560614; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/pm7PUDTlSRoOOpzR5gtIrbIF/DxYO36NC9GLHOZYTQ=; b=nvOdMOyvmixYAUTjs+lJvTWtGUxR8DMf39/Y03ve8pawQB0h5E2pYJrN+bR7mjo314 k1zz3QukpY7YIlZCqJByb63hMn7F8y6nIRotKNSTSfD7ACxuWpQFiaMTQFA/hzrYgci8 /4+duDCAjT81eJKojaVNaA/PD7NjgVyKBChXf3tEcDCaxK0M3IDnDWlwrw8NVWXAybks Jws21j2jYUcr0YAjShZidp8FyIA6yJxP65hwAQHdC6EqSo/ZJcLRJ36srk+RAcwQXKFK z54C0a4uk5cUXOHTyFdWjuR1qWJg5RuxoCASFvGBaxlqt2wUebKpijE9S4OLKoRgeB5F F4vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955814; x=1692560614; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/pm7PUDTlSRoOOpzR5gtIrbIF/DxYO36NC9GLHOZYTQ=; b=E5+Xe7Xibk3ozZYeJ5ben3lHXvv1fEv0eDPwZ2Ky6KvK02E9dYWan09IvDH4sVRLt9 yRZiGYlVCaD9aHH7byGEi+B4VoqKO0opW67a+p+aSWYvHCFb7Uq6tV5iFW3ENNei0TNN Ao4659MecmR8sKTxBqx+0Cv4GqW/Syqr/uugFs7CiJHBfe4bfRFBxdrkX1xaRhBpVHYw V1crEV6bjFzSzexlTjry0aMmwBp/43yaxo623Vbnru0dZvnmfNmDDjbeSooKYB7M151s KnNRlHyb/7cQ7WkGsf0dXqQxFmwpZJdnj0FrmTMbWq0vuDHddUxW8DyZDIg/2EoO1btm nNPQ== X-Gm-Message-State: AOJu0YwIY5ZJeAQQ3+WKhuCkMzi1rt+fCjwGB6FNdOk+e7e4irpY6ngq z8CcFGNywEmkd8u5EY3OQD2kEoHy0jw= X-Google-Smtp-Source: AGHT+IEbXFwWBt4AJme6an1EK2slUrjw71Z0dTbH3ZEd5nB1RfUq0kjjBAgL5j9/4bQLF30/3iczWw== X-Received: by 2002:a7b:ca53:0:b0:3fe:3389:122f with SMTP id m19-20020a7bca53000000b003fe3389122fmr8274773wml.1.1691955814428; Sun, 13 Aug 2023 12:43:34 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:34 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v3 29/32] Add glue to call the following syscalls to the freebsd_syscall function: Date: Sun, 13 Aug 2023 10:41:50 +0200 Message-Id: <20230813084153.6510-30-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x336.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Warner Losh freebsd11_stat freebsd11_lstat freebsd11_fstat freebsd11_fstatat freebsd11_nstat, freebsd11_nfstat, freebsd11_nlstat fstatat fstat Signed-off-by: Warner Losh Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-syscall.c | 42 +++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c index 2224a280ea..ade47a0d2f 100644 --- a/bsd-user/freebsd/os-syscall.c +++ b/bsd-user/freebsd/os-syscall.c @@ -36,6 +36,9 @@ #include "bsd-file.h" #include "bsd-proc.h" +/* *BSD dependent syscall shims */ +#include "os-stat.h" + /* I/O */ safe_syscall3(int, open, const char *, path, int, flags, mode_t, mode); safe_syscall4(int, openat, int, fd, const char *, path, int, flags, mode_t, @@ -482,6 +485,45 @@ static abi_long freebsd_syscall(void *cpu_env, int num, abi_long arg1, ret = do_bsd_undelete(arg1); break; + /* + * stat system calls + */ + case TARGET_FREEBSD_NR_freebsd11_stat: /* stat(2) */ + ret = do_freebsd11_stat(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_freebsd11_lstat: /* lstat(2) */ + ret = do_freebsd11_lstat(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_freebsd11_fstat: /* fstat(2) */ + ret = do_freebsd11_fstat(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_fstat: /* fstat(2) */ + ret = do_freebsd_fstat(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_freebsd11_fstatat: /* fstatat(2) */ + ret = do_freebsd11_fstatat(arg1, arg2, arg3, arg4); + break; + + case TARGET_FREEBSD_NR_fstatat: /* fstatat(2) */ + ret = do_freebsd_fstatat(arg1, arg2, arg3, arg4); + break; + + case TARGET_FREEBSD_NR_freebsd11_nstat: /* undocumented */ + ret = do_freebsd11_nstat(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_freebsd11_nfstat: /* undocumented */ + ret = do_freebsd11_nfstat(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_freebsd11_nlstat: /* undocumented */ + ret = do_freebsd11_nlstat(arg1, arg2); + break; + /* * sys{ctl, arch, call} */ From patchwork Sun Aug 13 08:41:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820778 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=JCd8W9Ng; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7Qp50rXz1yf2 for ; Mon, 14 Aug 2023 05:49:38 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVH00-0007y0-2t; Sun, 13 Aug 2023 15:43:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzz-0007xP-0V for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:39 -0400 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzx-0002U2-KW for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:38 -0400 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-3fe4cdb724cso34232115e9.1 for ; Sun, 13 Aug 2023 12:43:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955815; x=1692560615; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=q4TDGnSVrOnvNGdNPNB2y8HJgZ+Gw6JDP/CgVEdN2Ss=; b=JCd8W9NgQQGMyIOy5fORR+Ix62tcOxDNLy/4+C14nPeKWkna6TdWDwIf45CZV3YH79 vXBbZG8xrqqBciebZrQcwdULpapjLkW7KFhA95/aJfZsdMNbCvIJq7hnbH1y2820OrSf vCaBVltzkNBP8I0jdQlLwe4LUHxcqJ7GRpXdczAYar8rFmJ85+DpS53vut2DReRlpAvV /7RhFjwZAPtUdJM5vpu8TkNuj/loKmx2fwhw3Q3InsWQkKZR8vpbMHOqTrMFC0Ak//4U xpAcCPSLn0d+FPDmyDzPuQvmlQZzc2ya7l60IvCeHV05GJsWYgN8Un/djTsCqcKiaYku 9/hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955815; x=1692560615; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=q4TDGnSVrOnvNGdNPNB2y8HJgZ+Gw6JDP/CgVEdN2Ss=; b=JsxCHnZXy96qAyx0/+upzn/vFPVJPCkhfCnO1CzQqJr23XfooMX/fw8WA7gFde/XTh xnv3LC5OkBI2+m2z1DsfWvtZiNOeMTjcgLJ/hCbsGd53k/qWjKGsT2eHwbNPRLd/gR4M VcH0Hp/cosDjEGbJgk1EiSszdYcJV0aCFu/bnTN/R4+A+X4rqDYxv2+uxgvnRlLfYpeo zDZAjB26otOLl5WWk6tG7/aVp7PPDv0w/kuErb01zMeM1cXCPB7K8SfyIN8BH455CWW0 yc9jXx4feT4tN619PagJsFrdSWcwFhHkNZWH/cyBatodpWTLBuXtmTuxwUZDfcs77icX p3Vw== X-Gm-Message-State: AOJu0YwpBeDLnbrIN9dCYgu/RAjiBaTPfV7vtvIOO2QYTCfJfejSyE6Q uqeaTMDD9vEE6nS9i/sHPYJoW7S7lj8= X-Google-Smtp-Source: AGHT+IEPenw1mzgdnwuhd/127SMQNZ6IG1XrWA4YoZGeZK2l9xQFaE0buvdpQt9B1ZVkGm0xpchG4g== X-Received: by 2002:a05:600c:2301:b0:3fe:1f98:deb7 with SMTP id 1-20020a05600c230100b003fe1f98deb7mr6274383wmo.35.1691955815610; Sun, 13 Aug 2023 12:43:35 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:35 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v3 30/32] Add glue to call the following syscalls to the freebsd_syscall function: Date: Sun, 13 Aug 2023 10:41:51 +0200 Message-Id: <20230813084153.6510-31-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32a.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Warner Losh getfh lgetfh fhopen freebsd11_fhstat freebsd11_fhstatfs fhstat fhstatfs Signed-off-by: Warner Losh Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-syscall.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c index ade47a0d2f..73616a5be0 100644 --- a/bsd-user/freebsd/os-syscall.c +++ b/bsd-user/freebsd/os-syscall.c @@ -524,6 +524,34 @@ static abi_long freebsd_syscall(void *cpu_env, int num, abi_long arg1, ret = do_freebsd11_nlstat(arg1, arg2); break; + case TARGET_FREEBSD_NR_getfh: /* getfh(2) */ + ret = do_freebsd_getfh(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_lgetfh: /* lgetfh(2) */ + ret = do_freebsd_lgetfh(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_fhopen: /* fhopen(2) */ + ret = do_freebsd_fhopen(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_freebsd11_fhstat: /* fhstat(2) */ + ret = do_freebsd11_fhstat(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_fhstat: /* fhstat(2) */ + ret = do_freebsd_fhstat(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_freebsd11_fhstatfs: /* fhstatfs(2) */ + ret = do_freebsd11_fhstatfs(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_fhstatfs: /* fhstatfs(2) */ + ret = do_freebsd_fhstatfs(arg1, arg2); + break; + /* * sys{ctl, arch, call} */ From patchwork Sun Aug 13 08:41:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820754 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=h2kto4Ss; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7KF2s0Sz1yfS for ; Mon, 14 Aug 2023 05:44:49 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVH01-0007ya-V7; Sun, 13 Aug 2023 15:43:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVGzz-0007xp-Rf for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:39 -0400 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzy-0002UD-CA for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:39 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-3fe167d4a18so34311685e9.0 for ; Sun, 13 Aug 2023 12:43:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955817; x=1692560617; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AudXPKhwqDesJedmS1mxJoP3DgO9Vt4WYBDjn+bY3BU=; b=h2kto4SsMo/Rpm4NUyqQOWPkAWSYU4lqoILIlRCxP+7Cs06gHwwIGKjne0wFsO5y6M 8RFpJREFVnzeRShHyy+Fr3QyvIKVgt38f5BVBOVgFWnl2R1UNkE+hh8ULoOHA6JowEAE plNDUhhrHeB9tdKljoI8uU4/tFyMRyiMlcZ+bww3J3mycnQAK7YHLDhOVe1X1pGztuM1 W5DkLBGwU5sriwOHSFXL8zewa9KgUQFpMv8xFyzyi3DUs/eOINTJepPYCqz3hKaQq5mi 7hc2GxwWqVUKPEszpL60TXIgSuKwlAy7issNOUOEDuZcZq7SqZhEzNVle84JANC8VbU0 kArg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955817; x=1692560617; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AudXPKhwqDesJedmS1mxJoP3DgO9Vt4WYBDjn+bY3BU=; b=lUtX+0GTBA/SWtnv7bjyZ9gPQQC9SRyPahsbErlGKEV9XcH+zpoR6XTbonZCSLQiz9 NtzhRTlmXhufiBjjdzs2yKFAFqWagiA7GE41H77e8YJT1kztd7qSWrBUstrHKTOfM/yR 6dFsTBUE1L7DgUM76Hym0sjrnICJ7fvzBUHQBK56Z1nE2xDsC0IWxE6UaQCF7v48f/pe so4lw4AUqdGNC/DnGANwyGcODHL/V9bGxyLMvKmx8LUGhbKZM9yPDm7DDH3GY+YCLu6r Xt7geNFlRCPQILLfr09hq54VSSmRPvv2qzM5+7w0yswrXdM41dZ9z0CFFzFKw27FWjvK 5MuA== X-Gm-Message-State: AOJu0Yz87zz+RjE/DLxAL8jpgB5B4Yy54/2JKLPd1E1ZYSnCtfAU1vYn z3GmgaNcTMEVbn4zzFOYQpdzRoqSMLc= X-Google-Smtp-Source: AGHT+IGtJjAj16o0/rhBwLtPAlYJFm7KclzjrbulCetJdiqiUn4osfL+pGaZSvFrS57+I3agnH23Mw== X-Received: by 2002:a05:600c:255:b0:3f7:3991:e12e with SMTP id 21-20020a05600c025500b003f73991e12emr6008493wmj.1.1691955816800; Sun, 13 Aug 2023 12:43:36 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:36 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v3 31/32] Add glue to call the following syscalls to the freebsd_syscall function: Date: Sun, 13 Aug 2023 10:41:52 +0200 Message-Id: <20230813084153.6510-32-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x336.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Warner Losh freebsd11_statfs statfs freebsd11_fstatfs fstatfs freebsd11_getfsstat getfsstat Signed-off-by: Warner Losh Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-syscall.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c index 73616a5be0..916a754bf8 100644 --- a/bsd-user/freebsd/os-syscall.c +++ b/bsd-user/freebsd/os-syscall.c @@ -552,6 +552,30 @@ static abi_long freebsd_syscall(void *cpu_env, int num, abi_long arg1, ret = do_freebsd_fhstatfs(arg1, arg2); break; + case TARGET_FREEBSD_NR_freebsd11_statfs: /* statfs(2) */ + ret = do_freebsd11_statfs(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_statfs: /* statfs(2) */ + ret = do_freebsd_statfs(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_freebsd11_fstatfs: /* fstatfs(2) */ + ret = do_freebsd11_fstatfs(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_fstatfs: /* fstatfs(2) */ + ret = do_freebsd_fstatfs(arg1, arg2); + break; + + case TARGET_FREEBSD_NR_freebsd11_getfsstat: /* getfsstat(2) */ + ret = do_freebsd11_getfsstat(arg1, arg2, arg3); + break; + + case TARGET_FREEBSD_NR_getfsstat: /* getfsstat(2) */ + ret = do_freebsd_getfsstat(arg1, arg2, arg3); + break; + /* * sys{ctl, arch, call} */ From patchwork Sun Aug 13 08:41:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820755 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20221208 header.b=ruonNH7Z; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RP7KH2xp3z1yfS for ; Mon, 14 Aug 2023 05:44:51 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVH03-0007yn-0a; Sun, 13 Aug 2023 15:43:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVH01-0007yO-0a for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:41 -0400 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVGzz-0002UQ-Hg for qemu-devel@nongnu.org; Sun, 13 Aug 2023 15:43:40 -0400 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-3fe2048c910so33672145e9.1 for ; Sun, 13 Aug 2023 12:43:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691955818; x=1692560618; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Rl/vvZTq7At57smayFXGDxxVD4P17UWOFIucJHnT9y8=; b=ruonNH7Zc2ExNsbr3jQzEwmcJs+XfRUDZkTGnnPy5wRzmYTrRB/BLRMPAd5GUpAOx6 jYoioF+2Wk6Y6lWp9jqejV+1vZtsz15/Md8Kf1xo0SuwxEnv6Kj7lAUzl1LXJ2FZfNa/ +58yMObe/qE/4OrXTVB69fBOhLbnaA4wd880YwPnageOdq5goZYcIFiGLZirIJLXxqpe vPhDAagWgnBvoUhTemm/uyfmTmTczxfbGcsWnt2wVAfwuq65uGAWv3ZkJKZ0N0zUctaE nYEsXmtTzrBwDg0S5Rr7VHtdLVQI7kbtOLhLLan/akLxp8ts3ozoWr0WdugfdUmciPDV 7bCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691955818; x=1692560618; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Rl/vvZTq7At57smayFXGDxxVD4P17UWOFIucJHnT9y8=; b=Yf//syZ9qaAxzKitM16KZLtI4xo9DZpaNAU8uU4VDwCWiCA+lKo4YtPYjxn+KHjTRo AkqwjFE32CwVqlOepRKMmqF2j/sTKFOm2eUNsc/l4NpMXN9kES0YGpKKs47/Ubn6e/PT QpLAm1AF7VAN+x2kWnhCgJxAjxsBUBi+szOFEbrRjSFlIp0J8arBX8PGw97wElWkNKMD PLUvW5746fFO5bbYGg312WzEWcYfvHPd/JXFFKJIC8/OyiJqzmU9+KAEm3D+IuCbI/as 0CfhtUA9ot1GHrPb3wATxzGtt+LQqQyuigNIqAb8yshX1bFkFTZ83srM4Qv505iI7VBL l9UA== X-Gm-Message-State: AOJu0YwTQm4rbYziYM6nG37aq1Cgw+OJDqSruKcuiu1dbejYMDsU9BoR Oq93/Q2rBgL9+6DjGj5YHN2nVY4YNIU= X-Google-Smtp-Source: AGHT+IGTk64h38p4maj8+r4d/KoeukKguxDdKR3fPm6yOCgvstvb/eUh520T3IURJ5EZtt0807Yfxg== X-Received: by 2002:a7b:ce0b:0:b0:3f8:2777:15e with SMTP id m11-20020a7bce0b000000b003f82777015emr6174138wmc.31.1691955817911; Sun, 13 Aug 2023 12:43:37 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id t20-20020a7bc3d4000000b003fe263dab33sm12234536wmj.9.2023.08.13.12.43.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 12:43:37 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v3 32/32] Add glue to call the following syscalls to the freebsd_syscall function: Date: Sun, 13 Aug 2023 10:41:53 +0200 Message-Id: <20230813084153.6510-33-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813084153.6510-1-kariem.taha2.7@gmail.com> References: <20230813084153.6510-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x334.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Warner Losh freebsd11_getdents getdirentries freebsd11_getdirentries fcntl Signed-off-by: Warner Losh Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/freebsd/os-syscall.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c index 916a754bf8..e9b1b663af 100644 --- a/bsd-user/freebsd/os-syscall.c +++ b/bsd-user/freebsd/os-syscall.c @@ -576,6 +576,22 @@ static abi_long freebsd_syscall(void *cpu_env, int num, abi_long arg1, ret = do_freebsd_getfsstat(arg1, arg2, arg3); break; + case TARGET_FREEBSD_NR_freebsd11_getdents: /* getdents(2) */ + ret = do_freebsd11_getdents(arg1, arg2, arg3); + break; + + case TARGET_FREEBSD_NR_getdirentries: /* getdirentries(2) */ + ret = do_freebsd_getdirentries(arg1, arg2, arg3, arg4); + break; + + case TARGET_FREEBSD_NR_freebsd11_getdirentries: /* getdirentries(2) */ + ret = do_freebsd11_getdirentries(arg1, arg2, arg3, arg4); + break; + case TARGET_FREEBSD_NR_fcntl: /* fcntl(2) */ + ret = do_freebsd_fcntl(arg1, arg2, arg3); + break; + + /* * sys{ctl, arch, call} */