From patchwork Sun Aug 13 03:09: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: 1820682 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=OGMIl44F; 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 4RNzyg1gbsz1yf6 for ; Mon, 14 Aug 2023 00:13:15 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpG-00080Y-SC; Sun, 13 Aug 2023 10:12: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 1qVBpF-0007zu-BL for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:13 -0400 Received: from mail-wr1-x42e.google.com ([2a00:1450:4864:20::42e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpD-0000mh-Bk for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:13 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-318015ade49so3234390f8f.0 for ; Sun, 13 Aug 2023 07:12:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935929; x=1692540729; 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=OGMIl44FYsUlcHjbeu7cfznZbvmKT5d6jXpQEltrhvfGt+Pw8DWvmejNq1WFiS5tcO JdJvPa31uBHDqRFN09In+RF5eUF0CbHCKplurKmw6t4kSBGZYEPafoaVn1gqLoKw1kLf oFm0l39WCytBNPmTDbHl7l9uty1SuUPad49FDceNwOOVJUYLgxXQE2J4XE2nla/d/ixG 3qnBNi24pBnPwS0EamterCEQvHrKvSgUS4c9ZD/m5Z8+KclE5kDB6cqfF6veihEYiLZ9 XVWii9xwJoofHzbaADG9Y7/R2+HtmdX1/5yFblWxZixKKHXcZeXd2tphFI3dxjWn5LLp gNPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935929; x=1692540729; 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=iGuYFC8cof5IMbKDeY5OpsgI5voS6XeLdkNYR950Ab3VvxjeojByKUpDEcCQmq4MZf MSjnD1pN0dcnts9AWMYaKXnsY7ImLW+FCpVu0Wwf1yMJik95Z2mZ2QBkiKnMcqDRzRSv KdFL6C/6Rn9aunne0K0TgpQ0PwG/8PXj6U9G/woJ02v/1XI7snecayB+009uexYhEIU9 ikaIyUllilfXeRyvZ7Gy8eyf0Yq8BWYbFXUW12yWsmWIRi1iLBkB+qGZLu9oGONdMXWZ Pg13FNtmlyE7FfdUrVHXx5b4ngssRgdMboW2MCiAv5XgVwJscgcrWVBMUnvypg7jPuRd 8w5g== X-Gm-Message-State: AOJu0YzHAFN/NqaGFjxjugBnHp/3RibomxLtzLrfRge0/cYMbdx+98sp Am2bic+be3+Sp21m0EPjSWBbkujwj8U= X-Google-Smtp-Source: AGHT+IFLzafRNGkwyVjblyp6UlDWeWNjOj1sxzamPt0DHR6yIeQo/7ms37aP8fdq+v2GG+GW9UeuyA== X-Received: by 2002:a5d:40ce:0:b0:30e:19a8:4b0a with SMTP id b14-20020a5d40ce000000b0030e19a84b0amr5327511wrq.2.1691935929470; Sun, 13 Aug 2023 07:12:09 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:09 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v2 01/32] Move _WANT_FREEBSD macros to include/qemu/osdep.h Date: Sun, 13 Aug 2023 05:09:42 +0200 Message-Id: <20230813031013.1743-2-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42e; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x42e.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 03:09: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: 1820696 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=r1JhGTBw; 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 4RP00W3FMZz1yf6 for ; Mon, 14 Aug 2023 00:14:51 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpI-00080w-2T; Sun, 13 Aug 2023 10:12: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 1qVBpG-00080K-IJ for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:14 -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 1qVBpE-0000mo-RZ for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:14 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-3fe1d9a8ec6so25736335e9.1 for ; Sun, 13 Aug 2023 07:12:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935931; x=1692540731; 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=r1JhGTBwQdla0PGsWZJRNFe7VzkaFNjikGDVNaukocXg2QiSv1cK9QC3yZFnfzs8Qx +kO5AjkeLGiedmdyhZV0v4PqxxxGf4026nZFckY4y/7/5MgX02JSJvO1oFSbB8OuBlV9 2jjN9ip6A+/KyCOULEtRlDaxlHAyrj6fD+mlR2hxwFiuAw9MIxJn18ucKmM/Z3DWaV31 ZZqyOCT84PNFHSM+y8SxAIxqbAT7fpctrcUzPFffCOYfxNPnQo0u+ULxkms5IU78zzBa KavmoATalBe6S5ArvGHASkY9xZgezdBplD9ntv2p5mHFxcaxxV04iM27zdYy7vKMFstU y8BQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935931; x=1692540731; 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=jpHR1zD82PJjyHv4LyaJ5l3+//tNO5jGJWwA4bsKTPJGRTBsk1NyW9OzqOmgPlsmL0 Lp949HCW6ceOpXH8dxY45TF6l2n+hhDy4/ZDIaWgDnznH7JtWzhteXdrO4Hijl9UlFGh JxclVXimdLh2snqLMbe/eHSLzr5K4nmdAE9EvEeJ3uJGBOgZUziCQURxl5U4cfWSHTJ7 u54pP0QhHzXpFwB3vVXAuZz/JRVhWtdxhTi3ZpIgSf2x7dEzS10MppGB0feJ3J25egQt 04rXSrHBW+kMNmDl/uVEt1BuhPWSqjm8M5ewO6gHjRc6IC88gVf+xJwm5VfavEwqSGy4 etpw== X-Gm-Message-State: AOJu0YwEa9UZZieJbFTOStn/e5obzb4WuRVlvcC2Yfj+uh7rsZQF8Emx RrIvwQIVeT2JRIfpW1lsbl7xSXBga2Y= X-Google-Smtp-Source: AGHT+IEoW0F4FQwwBySB/g0lD5i6MptHVDMB+qqu7NFPadOLnsx541F+yUSfKn/xCHELE3MfJpzkiA== X-Received: by 2002:a5d:5608:0:b0:317:6855:dc24 with SMTP id l8-20020a5d5608000000b003176855dc24mr7985797wrv.21.1691935930871; Sun, 13 Aug 2023 07:12:10 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:10 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Kyle Evans , Karim Taha , Richard Henderson Subject: [PATCH v2 02/32] Disable clang warnings Date: Sun, 13 Aug 2023 05:09:43 +0200 Message-Id: <20230813031013.1743-3-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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 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 03:09: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: 1820681 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=JGldMO7O; 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 4RNzyT4nMRz1yfS for ; Mon, 14 Aug 2023 00:13:04 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpJ-00081s-JS; Sun, 13 Aug 2023 10:12: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 1qVBpH-00080v-Ue for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:15 -0400 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpG-0000n6-7u for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:15 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-31768ce2e81so3219596f8f.1 for ; Sun, 13 Aug 2023 07:12:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935932; x=1692540732; 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=JGldMO7OeovqvjN698hk25sq+SFEfXCVteVGtvO1THlZBxD4dUWMcNRwkKg5Q3esgB VuR2+eiy8bfIxNUBLumx2TWJf4Ih+jBT+fBwzJH0sajMwe3PGp+0xjWs69rvDxCcYwt2 j4miOoU48u3jOmXbWzs+vUP2WfFBBTSSEL4uqYp5tYJ2NJjvp+rRY6eUKpzYqzt+/2hp /AVsKvaIQgL3LrdsA+fjlNOKEErxEOmkToOKvIa6630zISEa6JCFRdWHo4BFjehSSXzI zwSMI4bcV+nKwwnFa8gv86WXR5UOiRGso3tm2GGGNXVZKIRA8pTYSLZLE2UZ7oikVHNR H1cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935932; x=1692540732; 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=FDFIj3wLEmtDmFy1p7uLmqB7t3tDEOBckn2ymn9K9u1Gfx13q4g9gL+soWf3fJs7OA CvjLiQidf+auMVZKrBudjy5GURKIauHW64N0qVu8P70B7Hzil140erUIdneBPxDWAGK6 Q2s+eODwMJWvZ02bY5SWs0atYNg6nhpCz4bK7x0P8M6IdagskpcKTZqEY45PWyn3EW4M wzrb/SfnatSusgobXNAiNTWNLbV3q4ET/7WDp9nFCXastX6nLp7ExTEk0jSMxLD3i0XV M2H6vl418pub5+HWcTbZbPtgi0DlklNrqmNFB7PFNlCxOHeCNfkO4fyxQbP7kAGze0x7 ZClg== X-Gm-Message-State: AOJu0YyaNE79SWy218Sd66c/l1Sjwk/DKhu4c22/05Me4sA34nOHJZjQ CJBrTYYpWeJEAqvepcZVt6aiZOcLrUQ= X-Google-Smtp-Source: AGHT+IE+HRvG9AEj4Bhf0rPgfAgT9umkAP364R2C/++Yg+9ERmQTjLSTKGKyKoMPiH9xmFUBkMmLlg== X-Received: by 2002:a5d:4e91:0:b0:317:6ea5:ab71 with SMTP id e17-20020a5d4e91000000b003176ea5ab71mr5733743wru.30.1691935932485; Sun, 13 Aug 2023 07:12:12 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:12 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v2 03/32] Update the definitions of __put_user and __get_user macros Date: Sun, 13 Aug 2023 05:09:44 +0200 Message-Id: <20230813031013.1743-4-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42d; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x42d.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 03:09: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: 1820705 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=VkF+1GVj; 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 4RP05T4SR5z1yf2 for ; Mon, 14 Aug 2023 00:19:09 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpL-00084p-J4; Sun, 13 Aug 2023 10:12:19 -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 1qVBpJ-00082G-Qb for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:17 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpH-0000nN-V0 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:17 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-31965c94001so1339301f8f.3 for ; Sun, 13 Aug 2023 07:12:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935934; x=1692540734; 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=rkgWqRz4geLx9aemdUjq4n01eDTu0bv8Yaoroe/JYUY=; b=VkF+1GVjdWixf2fMZw1MZ/wNnBVF5lQf23ISJ+HmwDS5dLtDwDWlpq9sd5JQkUydiS kSWf61nTM3eei+yEqIaffWwgSyQeD1DjKEq+7ran2mCbYe9gyy1zAxWKFt1BH0iH00y+ 6LNLvYYG7Aw9c5p/6Xzyi8CUsLO8xonLUZAx+Xmcy4EuqUz5tdQJ866xs4ZU5FF9HTq9 pq70uXjW+9zxoIfRdLiNZTMCErGKLrbZR9T/9bN1jkXrlL0BKsErHsux+ICVdIKJes47 Jwy0Jj35Hi8DGCGsS4cyKYoR0fJ2deWkG6oTKe82jT/MUPJUqwMILq98Bi/2y6lfKKvN Kxtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935934; x=1692540734; 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=rkgWqRz4geLx9aemdUjq4n01eDTu0bv8Yaoroe/JYUY=; b=FKejyskWCEAFaTFVkssUQk6UEmdC/G8X9IP3PMlr1Zo4kSik5RtNTBK4ckSJ49uOgB eGCcogjZIq0Sm6GyWS4LRSswSHgTo3cYqMBt8lS7GMcjnGGX1WXHBKnON66Cx7oSIpYB 6Q1YekFFEEfDU667LSwqnA2p/lt8CiYdqUd7I+ntNr9BaFKvs/eswrQyRvb0PWlBIo0w /zIFAfVZvAQOo3vBR2W3pcxT5x7sP2rggRLcRzYN0+b62iMQj40T0e1NKObEdLxCVG0O N6aM9dVoMqz7WJwIt4ZrR8UqgF8pqR0DFL33F7oIT2AikvLeayDBF6SAGdWAvK0NEIll uHQw== X-Gm-Message-State: AOJu0YwNBRY6FXMdypYtr0lvccXWLEddE1WjOyzUFgZOFhxNTU96qXLf rUEbbSP3D1o0RVuTgV28HA4QfTnl6IM= X-Google-Smtp-Source: AGHT+IHBSzDD4LaGZ3Lao4GnkO1FyYFXq/8t+fZbmB6o6M6IkEptKpKGfeCyoWhb2nPoXnxOe+PXoA== X-Received: by 2002:a05:6000:136d:b0:317:7eec:5e9d with SMTP id q13-20020a056000136d00b003177eec5e9dmr5719951wrz.16.1691935933868; Sun, 13 Aug 2023 07:12:13 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:13 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Michal Meloun , Karim Taha Subject: [PATCH v2 04/32] Declarations of h2t and t2h conversion functions. Date: Sun, 13 Aug 2023 05:09:45 +0200 Message-Id: <20230813031013.1743-5-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x42c.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 03:09: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: 1820704 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=LyDherwS; 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 4RP0575Shcz1yf2 for ; Mon, 14 Aug 2023 00:18:51 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpL-00084u-Oo; Sun, 13 Aug 2023 10:12:19 -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 1qVBpK-00083h-7s for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:18 -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 1qVBpI-0000nU-M1 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:18 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-3fe5c0e57d2so31518595e9.0 for ; Sun, 13 Aug 2023 07:12:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935935; x=1692540735; 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=LyDherwSYt20ukkPbMPuUUOttEUBRulgqtawiT9SSU2Z4vgDaM0+MhWitFoFcPV5fY YfFAdbV4hqixC9f1vwqor26Jtx0s0/uP+M8JP7BQAv0t89wHsjfr4Rx2TPGGLeaoZzJw UoY3y7Ko9SnQEjHXYldybdVI3mfxsH0IH5dlkB5Keg9g7CWuHDufnNi5QooyqGjYnHVz esDHSc/kocE9epMOD3Rbu0SffHcgkem9XFXjZp+LBolalDHPvsVOeiB/MmIJiXSrUr7v cBMwcF4LlqDitUUmSQMMw9zai41KBTDpXmxqmFXFQgx+i2TrrtY5NgDqnrFFhpTZ+xK8 293w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935935; x=1692540735; 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=Uayd+kfJQhO8/kjUWX5w81XGguisKJbQeeJ7UoDgfcx4JT92Q7jjcvzlgMBF90HXdM u8H2m6Z2M/Xu/6zMeqSdBBvrPDCHGj6js2m9Poply1u2fVduiyxM/X0uc3vOnN5xMul3 xHxPJLIONYe8r52MQlBn/JMPtF9IRKxYD4nfyQzfjdixlAHwwT/m//Shnw1b1nYtYBgf f65D6IG2j6YKPdp1+fbw+peJx64Pq/IZCTvH6oX5rh1QwdfW+JrEuqvh/a54mCo54v4E AM1fEUPTt/8gGdv7t3wwYvHzRIuuK1C+P/tF6+LFX6xOtDGq7HMKN3IZIjxN3yGR9as0 6iTg== X-Gm-Message-State: AOJu0Yy4vKeF6weVcMbTBAmnbn5aKZm4l2/NEcD73trXWtWq5PFwMLiy sWpojzxVpduqcpvGfTn/GjAmFpCjA3I= X-Google-Smtp-Source: AGHT+IH/h+FJfnkGz8pyp7LJkgq/DfyvEJR/ySZ6PRMCCV+dXkKOlY0k9sr7g2XbEA0MkKcj7WudYA== X-Received: by 2002:a5d:4911:0:b0:314:21b:1ea2 with SMTP id x17-20020a5d4911000000b00314021b1ea2mr4816626wrq.39.1691935935036; Sun, 13 Aug 2023 07:12:15 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:14 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 05/32] Add struct target_freebsd11_stat to bsd-user/syscall_defs Date: Sun, 13 Aug 2023 05:09:46 +0200 Message-Id: <20230813031013.1743-6-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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: 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 03:09: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: 1820692 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=JG2Ab5fT; 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 4RP0016tHsz1yf6 for ; Mon, 14 Aug 2023 00:14:25 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpN-00085b-8t; Sun, 13 Aug 2023 10:12: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 1qVBpL-00084F-3i for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:19 -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 1qVBpJ-0000nk-Kl for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:18 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-31781e15a0cso3127102f8f.3 for ; Sun, 13 Aug 2023 07:12:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935936; x=1692540736; 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=JG2Ab5fTYD1v7J3hmEfv+XcQOdsEAP8lHAvX5QRLhs8WpVWuVL86ekayxW3S72AIA8 0hbXMk1p6S09waLaxqBm3wm69GTLfpgKr52+3/ThzfRkAzOlce5TgyBjgX0RFbP4L6KD SO1UdVCVaOpSsn7A2Qzk4To6zDiAMLknBufEHq798NLN8jqg/C7KfvYyt6FrAhmrik4n Uq64zd4s8epAmzcVAV7gWY90qbrnsb9blk/bBREBUMEuNOYT1MqcxUCyc9YHs0tRCF81 JSrb69kZ6EXcjQdmwPenxbPC/pTM3BJ6Bk7bahlMJyAy95XxPetUy1V5IjH8JsWFHXZm cfyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935936; x=1692540736; 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=bKYJo1cUtUCEsb3cxaYSZBohil3iMQqSr350aut7zknrnEnUJpmASTX+tY+TitJWeF JN25tRByGLSBLZKcVly104RgHqx6LFSplojUJrYQKGWWMDt9h2++95BOMJx35l5CFDsT TQb+BvFZtg04j9hmkPAxfqaKptThY07LbWgt19FmOT/vKIGDYc3mS+XLA3aYS5ciB7sE BKzZe15m2T4JKrZTT5xxPtGzuqut5EqMs33EyZjC/JUShOZH1tefGMSI1ioGP4gRqTqa C1Izeh26fijvQIwWV9lEoDc3HCyupDkUpt7bmY4SEddP/XYhp7etB/tucHEEqh0bsAcB ttPw== X-Gm-Message-State: AOJu0YwIIJ0XeLjGzOz5GwhnEbtZhrJLPIZ6qzs2X7Re+rrpBrdL9Co5 OLy5PPHNgAscXNKfytjfonqKbUAyeO4= X-Google-Smtp-Source: AGHT+IGrNscV4FGAiHimDEmo4GwNz1BojGsvRcik6wAH0/tKpsmZ5mlJHW4P9JkAcAPUM1A9iKbnpA== X-Received: by 2002:adf:e74a:0:b0:313:efed:9162 with SMTP id c10-20020adfe74a000000b00313efed9162mr5028806wrn.59.1691935936073; Sun, 13 Aug 2023 07:12:16 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:15 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Karim Taha , Richard Henderson Subject: [PATCH v2 06/32] Add struct target_stat to bsd-user/syscall_defs.h Date: Sun, 13 Aug 2023 05:09:47 +0200 Message-Id: <20230813031013.1743-7-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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 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 03:09:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820701 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=NMnDJJ7c; 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 4RP0376Dbrz1yfS for ; Mon, 14 Aug 2023 00:17:07 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpO-00085r-Fh; Sun, 13 Aug 2023 10:12: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 1qVBpN-00085a-5Z for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:21 -0400 Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpL-0000oL-Gv for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:20 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-313e742a787so1992788f8f.1 for ; Sun, 13 Aug 2023 07:12:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935937; x=1692540737; 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=ATdcHjSASLEXTB5W8LArsyCsn/nHUJnz/58BCHF9z/I=; b=NMnDJJ7c5fFMIP57tOrzC1jlXg/sVe8SarSG9yG5dN5XmiOhKRLKzlm5Ej/KnsQWNI aCW8qXwtKFH+poTJ8IpwI9d7BxO34w8RyUBNpP/DXyM2Nw0X+UdOCGekzRo9OcCZh/AU 7v37KZhF55opd6Y5lggcPIn7cTVSBoOjMYCB9mY4EziYO2Cv9j1znqEpw+sa5IJQp6I6 wTaWdTocEvXR9mDHPIfItLlPmx2BhCHm568pZ7y6azZfcc/rIOiabbeR2gEXKVTsL0Wf 53vmZy3Sp7oI0ZxQpm28VASA7c6HIu3SirHpZMBeZKsLmFnmshE4Kn2husSGef7YgVAJ H+ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935937; x=1692540737; 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=ATdcHjSASLEXTB5W8LArsyCsn/nHUJnz/58BCHF9z/I=; b=XVW4z+Jbzz4faozlqVkfq9noniuY4GLQKS6LN+W1l16KtkjZCiMLlNpRMqpcij/qcr Rya0WyJrB2a+QwnMGvYQwxKFzv9pOY1gkqnqzNybPhk+Zy/XRm0UiRDzJBqM2W6TEGCY vFwFbrshgwFj1vJ++GJbSNCyQT9a8UMSTlRMQZ+Vi+au7PASiwYT/X1GTFF9bLu4DqUz /71Ug8NwkBZkZO4RrAfWP4E5f1srglTFWPiUrU+PliXVym+qVHG1g3LzNnV/5x1dXuy7 6DkcJ3OJImFNU8+IBID3o24TT4SAf2gd4l4JEsLLk+lmWHyRcn5fneye9AsjUxyc0wq/ pvBQ== X-Gm-Message-State: AOJu0YzeGMuNYA1GpGXsCD4YWJojufnZdeeHY9Vfb0Z46pkHSSMqsUsk D/dKb0zPDTsLOCqVySefvl0STeHH5dg= X-Google-Smtp-Source: AGHT+IGRaZKWKpOr1atIG/S70Lp7gU6Aj4aJVCrxjjkhRTtgYBoW2UT3whd8QvhSvcEO4668rStoKA== X-Received: by 2002:a5d:404c:0:b0:314:2f3e:dca5 with SMTP id w12-20020a5d404c000000b003142f3edca5mr5137285wrp.28.1691935937122; Sun, 13 Aug 2023 07:12:17 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:16 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH v2 07/32] Add structs target_freebsd11_nstat and target_freebsd11_statfs to bsd-user/syscall_defs.h Date: Sun, 13 Aug 2023 05:09:48 +0200 Message-Id: <20230813031013.1743-8-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x431.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 03:09: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: 1820689 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=HZOQAd6G; 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 4RNzzK5K4Jz1yf6 for ; Mon, 14 Aug 2023 00:13:49 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpQ-00086Y-Cz; Sun, 13 Aug 2023 10:12:24 -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 1qVBpP-000867-Bj for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:23 -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 1qVBpN-0000pm-Sg for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:23 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-3fe2fb9b4d7so31609445e9.1 for ; Sun, 13 Aug 2023 07:12:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935940; x=1692540740; 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=HZOQAd6GNph15RAacsQ74vQbCi2qPO8spTOQsnSCd+9wRx+AiGssClvPJJD8/E7Hca QpQST8YSo4rne8Bv48ICaGXnm/E8nuL8N5baMh6QvnntKzJK9nrM25GGMjWwfYnFrN3x 9Drr+tjX3y5epmo71MxhaZzvjqJVYGPSPbWuabjM5jXibrO1Gs5YwwbXYrlqUSO0lT+u ofG5q1sXVgpLy1BBEmjYcdh2GBQn3QJlYwthqhzvguWQD2Ewx2B6FCK6trDkCoy6S94C 7LHoJsBQgOxLutES0v+9dppfe0RdsdSUiasyWP57v6JDM8BQafglo9xHNu2InzIYeR0l MXpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935940; x=1692540740; 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=MrlB75EbxN6szpflBEhcuCXLk5/sLxAqiX0muS3lG/MrRjlsjBpmmb4ZdA7a2J7elK nCI6/0B3J0ZMkykaQYWpZz38fdInWtWMydx2yqXHCH3p6p1lteKT+RBffCbqUEmi/V+5 SvgAyVpYGuseee40uOilSs/97oZM7EwQdE4opgLdlNpRBHmq77prRcpka5Frvfrx1Ie7 /QbMEJINREoefny+WItcq+lypu1wpeXdxPxX/MmXX2xyDXlMPvSbK50/9zfAk9XEKXA+ 2g9e1Q8/nWfJUWbjBaxkgjdnFX2jrh7JiVWUEtAc4GGwjoYhynW3pBML1LX+dH+AR+zj PgQw== X-Gm-Message-State: AOJu0Yydhs6m+QLzF7QWl/jq98vzS3w5p7pXY6rVtHW1MsHdvgfryMcM 9oJgYPnXW2tkN8IvfKfI3Ha3tHziY8A= X-Google-Smtp-Source: AGHT+IHW5fHkSKUtsObpciTlb8+lasYSuROMEbLFikWrEcHMsDx8Nk5sZTspaRZURQdDxC6ElVY93Q== X-Received: by 2002:a5d:5962:0:b0:319:6afc:7a3c with SMTP id e34-20020a5d5962000000b003196afc7a3cmr2679898wri.10.1691935938211; Sun, 13 Aug 2023 07:12:18 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:17 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Karim Taha , Richard Henderson Subject: [PATCH v2 08/32] Add struct target_statfs to bsd-user/syscall_defs.h Date: Sun, 13 Aug 2023 05:09:49 +0200 Message-Id: <20230813031013.1743-9-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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: 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 03:09: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: 1820694 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=LenXUHvn; 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 4RP00605tTz1yf6 for ; Mon, 14 Aug 2023 00:14:30 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpY-00088d-05; Sun, 13 Aug 2023 10:12: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 1qVBpQ-00086c-J5 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:24 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpO-0000q5-Mb for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:24 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-3196fdb3238so720204f8f.2 for ; Sun, 13 Aug 2023 07:12:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935941; x=1692540741; 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=LenXUHvnvvigkVRnADNG1wnvFkxd7fMfksKiY3303VHwoScpnlTYz4OBLovAN1P+/P ROHLZW4EfyQMtDaPxdjowzfgLaA5tSH1ew8v2PP2RWAy0/Cpy+7rzCShzEoHRigo5qM1 Vj4/VTr7EvNU9VobXI1RDaQyVKbW5dfB0fmH+FQyOFczO2XxxfTPTjZNWYcFeIMY7uW1 YvUt6T8JJInSal6IYw6yX8IFt0b3jMSZgCkgne/gqQh5AFRYK7JqhmCRfmUaMg3tEVpx 7VPTVr2Dh4ErQeN4cTtt7oL2r+RCDHjO8sAk01uiPdXyrOwyw2PFzw6VFT9Kumb9N9uA oaag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935941; x=1692540741; 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=j6/KJfjcbuF8zX1WzksvP6jsoYtLm02mOF/DXpV4AOgDO1lEF+H/57D7N/1R4WHBx3 jjRrgCxadByNdy2LRDEVZWAMW500vLlhQvPyUiyNlWa406m66XN+2tMVEIzMa7YzBLpA SD1D8DP9y9AzZ9qyQFIenWR8HdHUGEqkRW7aPaT9PueBKKi7IUOo9Jln9PMNAZhT0vVx 3gjl5Cr4trS6TYkRSdUjnRDcKmdIAP5xiSyeOIuK/LGGqwvs/DCZFw/dFz11Xmb8qDjf PAzo1aRJQ8UygoL33dXYDqyRSODPwah06sGxwC2KZwrGTzn3J13t4cjfmHejmd4d85by WWjQ== X-Gm-Message-State: AOJu0YyYFjL+Am1X9vMEtYx/6oMnjCSJJuIRbnc7UbVAFD3MplgJZwIU ByPySs6ZoBF4G+7o+x3VdltEiVLH+Hc= X-Google-Smtp-Source: AGHT+IEpJkE4oafqsTH1ed8bmaA4Ved2i4Bi6IP2E+5Ov4GOPZa+rSiCu42TlEfWlW0vcOBpbuxxLg== X-Received: by 2002:a5d:590e:0:b0:319:6d91:28bf with SMTP id v14-20020a5d590e000000b003196d9128bfmr2706692wrd.60.1691935939525; Sun, 13 Aug 2023 07:12:19 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:19 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 09/32] Add struct target_freebsd_fhandle and fcntl flags to bsd-user/syscall_defs.h Date: Sun, 13 Aug 2023 05:09:50 +0200 Message-Id: <20230813031013.1743-10-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x430.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 03:09: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: 1820690 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=pPjW/VJx; 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 4RNzzN3dsyz1yf6 for ; Mon, 14 Aug 2023 00:13:52 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpT-000884-A4; Sun, 13 Aug 2023 10:12: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 1qVBpQ-00086d-LT for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:24 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpP-0000q2-4g for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:24 -0400 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-31963263938so1538015f8f.2 for ; Sun, 13 Aug 2023 07:12:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935940; x=1692540740; 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=pPjW/VJxrK7XFzoiswlUikeShu8pDScHUCeNSF+zp7ab3zr8gvehS1mP2O6oGwQhBq EUD1LsbokrOeG6/gWk6gZ2po2AhdQESnjmclZzCUyPwGi2CuT8mBOUGn4pSreeV6jaak 20Tevb5R+TdH9Ay14giAOwtYfZLjblD7C2wYbMBBmY05VDH4WCJSLRLamnnY/QMz7hYD e8TkvflzN5JvKqH2aUzoVgsRitneHKO7HCp39AW/+iYcSy4goFb/RbIm7kKG1Dgiqy2+ 3F/5Yukv0kuWxAGSPDJ9DleSRl3Kg1t7dyg+t8XxFfDYBuwt/+KAf9nyX0e3ED4XdoLk QEnw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935940; x=1692540740; 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=TZwzOoz+OnYJHN7V5cRSbcIqifCN5XaiofPdHRpWFT7/PVAC8B468spIvw1FNpRYUD Fm+DDEIOCKKjHTJhJfEJ9SSfkOQvyiAwSvucQPye9nl+KQdTNN4XNIT92FK3BuHus2N0 0ExxY95W54df0LE5EBFGaUfcrIChxhGzyNvhKGGAsWTg6qu1AXv1ZJxt2DcXXV7IcWWz dbmPsYlWWS+XNCejkVViCzKEDgBAuyM/xt4LdKi0rHv2K/E2SEyAsXUgr9CrDMhmyMw/ IYGdmQJzcgSUrYtuxxHRnJUR55votDCuri94OJoGWKR69ejIlB+EwHpQzh+mbPFb/Uf0 wHoA== X-Gm-Message-State: AOJu0YzA9bjHT92bmphl46YDzI0mjYQekPGM/u+GuUdTSMBCwYdxhW/b CG04WoU6IwdalJd8WMnHtIWvdOFWHQU= X-Google-Smtp-Source: AGHT+IEjnUDlrou2daoz54W3bvmWM+AqKva2sm3PevogWH57s28ii8baFFLdH44FSeADFQJeQK7R6A== X-Received: by 2002:adf:ed05:0:b0:317:6f5b:2fb7 with SMTP id a5-20020adfed05000000b003176f5b2fb7mr4910052wro.57.1691935940636; Sun, 13 Aug 2023 07:12:20 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:20 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Kyle Evans , Karim Taha , Richard Henderson Subject: [PATCH v2 10/32] Define safe_fcntl macro in bsd-user/syscall_defs.h Date: Sun, 13 Aug 2023 05:09:51 +0200 Message-Id: <20230813031013.1743-11-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x434.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 03:09: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: 1820687 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=XSadXyT1; 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 4RNzz15mpzz1yf6 for ; Mon, 14 Aug 2023 00:13:33 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpS-00087T-MB; Sun, 13 Aug 2023 10:12: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 1qVBpQ-00086l-Sm for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:24 -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 1qVBpP-0000qC-Cw for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:24 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-317dcdae365so3036331f8f.1 for ; Sun, 13 Aug 2023 07:12:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935942; x=1692540742; 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=XSadXyT1qeIKGChvZWDaz+dUo0xgV5ZFRcVMyJomIkdNI0cnlcXLISBOBAidI6Pxme 0i7OlPhzA7n6TjvOBMf1Unuv2MCLoF+Qm8seosj0KiSJE8K5RCZza2BUDaqW/HUVpGlS zUOruufbCgqYYnaQfMBT5UPSKwz9uRSPZypYLAfxSTS1jInsimK4J8twIkgOVEQLN3jk tDcfPtDdCKNXJYJHICPyYxbn+3RJKSeyn42QIp/Q7o0AwleOyf8rwIuwTKnthPW1rqoS 6+UCqBXT0Z/BgKqV8BEGMSoVdohULRM9zLBjI6z78m+ptRI+++/nYzMyOp61HtwZ9B3x Xj+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935942; x=1692540742; 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=Wl2ejInw5V1fHqO3fbucqCTpzo8cwYMrx1z6RjLGXdv1wbuGhZpX5pa77/RWyvQyPf 6FKHRXB4fdMuIYG0jrx/5pRyQ+AYH8Gjy/yU9C6+vq0EN/8ZdEdL0P0VLb0GpPLdxeC5 PgphfiD0Y2QFPL1c6TVI+Wrjj9p5Su3/C75KgKIQuynb0N2cjLqgBIdZz8J7O6jd6Q1i Gv8y781VUqCVphVv59LeWReoH33olI2M8I1/ShPNCT/VUeN3zcRBsHr1NOjCJTRLC+T8 Bx0VnipVVtBeUsk3kyGbu8+tzWp2ZgsOf7lUEnd4xn4qlTPXSNS9ZVSxBjUNoqmEPqPg qOVw== X-Gm-Message-State: AOJu0YxurO3IE1tPkkNqgIo8fe7hJUuoX/Qw5HWgaoIwWql6PbjcJQ/9 S27VlnoU5JjeHFhtpRQ2gerQPCU0KYk= X-Google-Smtp-Source: AGHT+IG7w2X966HmhhvGGB80KHaR6r/44//mtnNwW3Cd5+vkxo/TPAlD+bCg9W3c+goIiYRaXqiJBg== X-Received: by 2002:adf:e685:0:b0:318:7d5:67bf with SMTP id r5-20020adfe685000000b0031807d567bfmr5788612wrm.49.1691935941805; Sun, 13 Aug 2023 07:12:21 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:21 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v2 11/32] Rename target_freebsd_time_t to target_time_t Date: Sun, 13 Aug 2023 05:09:52 +0200 Message-Id: <20230813031013.1743-12-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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: 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 03:09: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: 1820691 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=EBS9jbHP; 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 4RNzzZ3PBfz1yf6 for ; Mon, 14 Aug 2023 00:14:02 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpl-0008CM-Sw; Sun, 13 Aug 2023 10:12:46 -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 1qVBpV-00088g-El for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:31 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpS-0000qn-4N for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:28 -0400 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-3177f520802so2659374f8f.1 for ; Sun, 13 Aug 2023 07:12:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935944; x=1692540744; 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=EBS9jbHPMqVt4WdG8anZspNFrDjbXGAojWFd65omPkbUNi4nj45QLCYKC5ddFRTnuy IJS1gJ5QgkNGRJLrhq4G5eML/mvdiKvqhBeYJGBtIP44+7DvfLfcr3owGbLptuFN1hG6 Rr0/QrNcvq0dJnXZtEnIe/xmH8J7NiOUYuvTMOH9z5EsAjrx1vtfqoVeTeavjrfRnr0T a3FONE1tR2RDJFHUPZOXz/7srG7+YVZcQ8uakBn/s7gPsMNxdVw5Gi2Dx8d5qaIPrRX1 NECHjYdyasSU67JpZvcH6EmPT20bvyOLe13aIi1ZDG2X+Q3/4nJEp2/die0tg4ZZZ2ry x08w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935944; x=1692540744; 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=FAyHtCyoeYUmj7w1e0uk30GYl7pnLlcMdVYri0TyLBU70ylcmV/gCcM+p8jofpJvxA hh9QibMpNxlQR8P0+TypMUqhoCHHa3wtEPvHhTojO9pHyoAs3NrCDmSXxxwFncp/vUDI n3MLIR5cRZBudO5LBfjKhbE+P7ES7U+ZPMC62ptMpWpUUpwRl9TjHRZ45QmChcxjtLV5 PjseJKvuFjq8ogsPXY2EKoRicoZigHnItOd4BdFnaS/TCrR87zXIqgK+QPum7djL3zbm Zxd/kBzsAH1Cfu8F6oKYBmzft8026FJgxrTTOFjoAHb2AVNvFs+DPJ+B9vt7VJIVKaUy laRA== X-Gm-Message-State: AOJu0Yz3Hg84wFips5oOQUeiiXhdkBMLCuxWNkrZGpQmi8vHIdqYpwYC AWi7UQobTV5JlCz+VIlKgwcsZQtXEZE= X-Google-Smtp-Source: AGHT+IGHiYoJwY3lYOAaGg4clz8+bK7bglTzLC2qhR+/aHdR1RCzbT61VibvS+2apLFTdBX7D9CmlA== X-Received: by 2002:adf:f384:0:b0:317:de66:259b with SMTP id m4-20020adff384000000b00317de66259bmr8466445wro.15.1691935943022; Sun, 13 Aug 2023 07:12:23 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:22 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 12/32] Implement h2t_freebsd11_stat h2t_freebsd_nstat Date: Sun, 13 Aug 2023 05:09:53 +0200 Message-Id: <20230813031013.1743-13-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::435; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x435.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 03:09:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820684 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=U0naJt4S; 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 4RNzym407sz1yf6 for ; Mon, 14 Aug 2023 00:13:20 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpg-0008BC-Hg; Sun, 13 Aug 2023 10:12:42 -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 1qVBpT-00088M-IN for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12: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 1qVBpS-0000qm-22 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:27 -0400 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-31963263938so1538054f8f.2 for ; Sun, 13 Aug 2023 07:12:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935944; x=1692540744; 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=U0naJt4S8fbKvFWJ7boUvFQ6ybSUTzVPr/oQqDBz7nGlAwd1TFV1kgOhXnrqxp5B5X LtTz3lTYcc+yIRh8xqueD0CFecP/Z1r1WmAe3wEoORse4WJiT4d23xyouSWy94G3LecW +VVOidOWxQXIoFG+VAJeoguV2+bloJQrPBDR5tOWvrVhRdnpfp604eJwqe1tIt6YDmcJ ey3wErRsu5eoC73rlzn9snSQDzvnK4rFCJJAaCfc80SzLEehoE/mJXdNrhIawymTfRTP 6rf/AiGWEij4Sagl3VoyJcLbYtBbixvIQuHOrQHJ/wtZFWrAxxNh2+c2qXHIsIgKaKYh wUnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935944; x=1692540744; 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=WAUVgqMxD61dpXrzCy1Nglx9wMSa4I05g2xCZiPc4Z2HgHsGI4Xfn4Vs3R9auFGzor Df5gfVS+ygJ3zXj8nqw7LLVm4yiqeJpqIlnGRJlmN4eCU3RRCJ6gDVuWhbB6WaDU3jrO cT5rJ+naPWoaGmw4w9jFDLraJ7db5O/poh4jsAr/2vslVv1FYWCyUD/V6IaTpmlnrLQ8 /8vi+jT894fWDQlXNBAtleokPaIhE4uwpu59n7uMYT6QM+XSp/axAqkAacKt/AFkiJaf QI8/V94uXrWnfnFrfxTBM1tN8qyI0JZouK4AvTzUsYXdnCCliZjyYiLZdGLHUam/KFOQ gCmg== X-Gm-Message-State: AOJu0YwK9AdPYSmR+ktR/C6KUgX+tCm4s2qAx+Gp0BItLd5a7UDOKWOR 2vYbF3lgbZxMZnN1tJn5OkolF+Vz1Rg= X-Google-Smtp-Source: AGHT+IHtCVnXJWDNQ2oUoqEKfkFrjJ83xX+2W5Q1mJBtFN1MTamggyP03XT6/ZsELHqBFr8KJ21oXw== X-Received: by 2002:adf:e348:0:b0:316:ff0e:8213 with SMTP id n8-20020adfe348000000b00316ff0e8213mr5161813wrj.15.1691935944268; Sun, 13 Aug 2023 07:12:24 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:23 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 13/32] Implement h2t_freebsd_fhandle t2h_freebsd_fhandle functions Date: Sun, 13 Aug 2023 05:09:54 +0200 Message-Id: <20230813031013.1743-14-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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 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 03:09:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820688 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=DElqQqCf; 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 4RNzzH3vhbz1yf6 for ; Mon, 14 Aug 2023 00:13:47 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBps-0008Ey-II; Sun, 13 Aug 2023 10:12:52 -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 1qVBpV-00088h-Et for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:31 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpT-0000qx-4p for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:28 -0400 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-31965c94001so1339398f8f.3 for ; Sun, 13 Aug 2023 07:12:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935945; x=1692540745; 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=DElqQqCft77jqeaKsLmRgHxTy4UzaGCHG/16q7zXqNIXwyZL6+8N9I56JjpWfAto50 K0tZgif7ZZGmol14nSWt4BdsXxUy4zpw6ST7QVJ+XXpobiE3JWNU2JdjcvbN8EVGXgrW RCE34vZ/kH7ljcWnsEUYgpXRtI5OceS9ZuLFbHSL5Ss60BwPbSC+B+G/l537yYXA4yPu CeqvHX5gDSxFoNgW3F0AjhXaXPCgMTlf9aP8CohRwZbMI1u+haxbbmGDLu5l5UNfqoRZ eJUI2+L6Q97GfcYVlDwiT6466KftSUBD4aDDe9WlR0Jz1cKFFOHAsAOpACg13W01Nn0h GOCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935945; x=1692540745; 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=A5+qucwk+FP27pUey5+cQ4or7TN3mTNj6JXTs/xAmx1uyzN/9WRiVlk6yED8oNEFX6 vJHeSu595+6Sk7XdL4jrOKigEo7LEqkgeQPfMFA6plsxl8QIeBCxsB+Y3uhKqEkCctHB LSRgRgCAApLGdvPRTcUe+0knWgWEhBxJaP8+YcpUs0fQIuAcOS250+pd3t5Rb/906Hrh GCKnOWnR7u7QMLy6mDLUitoERGY65B+YcVm5m9f/i/g26HlwPopiTo+kRMhl7sHfqQBx xgtT13UGl6UppCJsKuOwXp5Av5zDrFDAlFBw0TanMs+IFrUJD+0jdoZL9jaaUo8uRwC8 U/cQ== X-Gm-Message-State: AOJu0Yyf9mtMQLEJ2l7D+tQyqXAiNtZXwdnagQTf+jP+kVJnSgZ5A1U+ 0Fcpxpn1549OJuPsGpDi6RjqBnEQJmA= X-Google-Smtp-Source: AGHT+IG15sw1WVjqhpVl+gxffdp00ycavhpo73wa15Dkv4RMxlpwFA1OtWH3G5pD6G2XaSubDj7/mg== X-Received: by 2002:a5d:4082:0:b0:317:6ebe:d7c5 with SMTP id o2-20020a5d4082000000b003176ebed7c5mr4819508wrp.51.1691935945462; Sun, 13 Aug 2023 07:12:25 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:25 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 14/32] Implement h2t_freebds11_statfs Date: Sun, 13 Aug 2023 05:09:55 +0200 Message-Id: <20230813031013.1743-15-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x42f.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 03:09:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820685 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=Z5uTExoe; 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 4RNzyn5SwVz1yf6 for ; Mon, 14 Aug 2023 00:13:21 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpq-0008Dt-6L; Sun, 13 Aug 2023 10:12:51 -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 1qVBpW-00088p-LO for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:31 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpU-0000r5-8d for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:30 -0400 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-318015ade49so3234520f8f.0 for ; Sun, 13 Aug 2023 07:12:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935946; x=1692540746; 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=Z5uTExoe6jGvA5NjW4dKDixDGCJX7rl1r/J2ScVvGDEn/Fsyw+1+iZS/FIWnrSnP0z 6ek/tR2WrcHIPKph+6lGrG6qxXd5Df9QiXsgbUate1mGbBfJgfOEDg9Qf97L1Y+M07Gq ogPP4pCIvlYH8wB167Qw5w6ze/BM22XUmlpDDqMIlkTuWchqdBcmTgCPfgsZObtnXTiz qRv9SEGQv9qJvbNv26DI08Y9dPXYivJ+416/Y6vY7gXZDdMMAyG+Jx+0gVd/igLhAQwC h4cNLQpGbmt00Bpeeu65eeApNIVUA5eupnCUvdtZlEh54KSE8QrbJL0J99jKiuveMKag oY2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935946; x=1692540746; 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=RbSC7GPa75KJW3CPBnUXxsQzlz0NBDL3Tn8gT/LOeREg7RZDPJVhZoWI+gqZGGLfGo O6WCjMwLDRY/2u9xBgL5pPGCNhVEauU4eZlp/uBXl+lCbgsfr1iFgHzLZhdcT0wgOT7i 9CaocSupbFl54fnUJfxu8WLdyDgvsYo2N3IOGjPBYpzRYOA8UPPRNQTBGIM+Yn6FLe6V i6aPGDdu5Q0GVcsmyR45T1PaWSyQemecbx7IcubRDdeGaPkkEe6ou1/0i4+9XOp8JSnL 3sw3M4YYgF35uOeVGJDhSkKrp40FSUtdz7Bk4saIwaftyeaI49nZcmXw27Z/1iARAjmd hwJA== X-Gm-Message-State: AOJu0Yx2Oe/Zuu/OSbsk2qmbT9Pun8gs6q2qZGd8X9tUG5esHQtVdAF4 CfmWQ8otPN0KsQAarJrqucYAsrjPkDg= X-Google-Smtp-Source: AGHT+IGafK9foU6ti1PCjWFV8hOByXJhZ2fqcPGtDxvGOGLbdIer/HIlluDUKyCvVCDJ3y5UXE3lyg== X-Received: by 2002:a5d:4573:0:b0:317:5de3:86fb with SMTP id a19-20020a5d4573000000b003175de386fbmr5081881wrc.10.1691935946609; Sun, 13 Aug 2023 07:12:26 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:26 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 15/32] Implement target_to_host_fcntl_cmd Date: Sun, 13 Aug 2023 05:09:56 +0200 Message-Id: <20230813031013.1743-16-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x434.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 03:09:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820683 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=eebXHd7s; 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 4RNzyk5KNSz1yf6 for ; Mon, 14 Aug 2023 00:13:18 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpg-0008BD-Hj; Sun, 13 Aug 2023 10:12: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 1qVBpX-00088r-Hx for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:31 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpV-0000rH-Kp for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:31 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-317744867a6so3171670f8f.1 for ; Sun, 13 Aug 2023 07:12:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935948; x=1692540748; 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=eebXHd7sPFFCiLYvg+VItLk/RK5FAhQTp+hKCwM5QNz/sf/t64FO53tA+3ZpoX3vxq KcBoZKHpjb76yhlvgnp3Z5sarkshX0yBlqpnKO5KIcrCrJ6iVJ8dd8/jHUXAwVZJrBud dWEftxlW7uz6TmhTMJOU0+PKPexYldirLYhat9r7m2jiWNbPnibR3xn9HNBYSUSzjtoq 6JIfMQqkNZ8uKbtroVihQF/U+bwQ7anVPkfFuC7JJPS2ijCChBzU9iO87uFy1+vv4HgE KlO+khyRlrOGCytVy7Bx39wqv2IRCSvZL2J/DXqiRvlBOod92Vd24q9HH6vm5Vmsxt1v hqbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935948; x=1692540748; 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=IFNiijIbHQWHv4E4X9tT8KRZz2XyEcQQtQlU4lQbhjU/HZ6+JKrDFttilmsf+yvLOZ 2sXk5CkbbjYz7ikGzs975ebrzPNAf/osLZY3V2GZ0/pk3Cfokd2XAeFjt797WWPbQHNN ep9mN6gzBj4GwBpgnaS7f+UDCCOLDz8AtWbR9JPAzQ9/9jGGo95GIAyl2JfXChfGvEDx FfO4kytjdNeYP0Vrl+yEin74kDQndoi7727KcUJGUdAp7wZ9RoYoq4Dy+k5TGwDBQRvE GT+X4+ep2VrM13EPU1Ie1Zg4lzTlSZVwN2hzkH7GrwbBws7aCGmkzCzOivGXjonpJWyn AGUQ== X-Gm-Message-State: AOJu0YyupI03tyuFZhYamchbrA9EF3d79UDUi4Evio0aL7ejNQfo/UqC niEB90/B70nKkJw7Ln/zxmsXg/4J78A= X-Google-Smtp-Source: AGHT+IFliQ3m1NDs5SrYUS5ZjXKgbbAGxjtHNu/OM/JYE/v8naHcYjgsfuaQgiVZRvdHdJUR9TR0Sw== X-Received: by 2002:adf:fcd1:0:b0:319:5bde:df70 with SMTP id f17-20020adffcd1000000b003195bdedf70mr4739138wrs.42.1691935947924; Sun, 13 Aug 2023 07:12:27 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:27 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Karim Taha , Richard Henderson Subject: [PATCH v2 16/32] Implement h2t_freebsd_stat and h2t_freebsd_statfs functions Date: Sun, 13 Aug 2023 05:09:57 +0200 Message-Id: <20230813031013.1743-17-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::436; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x436.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 03:09:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820697 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=enN/G05w; 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 4RP01d1tBSz1yf2 for ; Mon, 14 Aug 2023 00:15:49 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpt-0008Fy-Ck; Sun, 13 Aug 2023 10:12:53 -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 1qVBpY-00089b-GZ for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:32 -0400 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpW-0000rW-Nr for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:32 -0400 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-3178dd771ceso3218136f8f.2 for ; Sun, 13 Aug 2023 07:12:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935949; x=1692540749; 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=enN/G05wREslJztWvBXCepuj0hx6TKfD19DaatnHXUznvZeXgqZq1Fa6YT6kYnmmTD 2xEwIB8ac6GC4rAaEx3mvRs488vyuXz1hIXR5tMhkoTZfH5bzoATciKieTtQpvjm2Lad dEWnUWRBdROmAVYzPWZ4Jo6lRnd/ifqj1ZcW8GPGqcNNBAzfZfTBkTpW9duL9PwFqKGF zwG+oeNH/iQLoYMn7fpwgWMa0agpOnUI8/syaxhM4fkY97ADUCr7FSzvvUFVUhUehIFA VW2Mx3gTWErjUMSY1+3H8CUPxO0kUsQtIK58QfMc8KHppEl5V+FJAiYSvgLNE4mwxkaQ uVKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935949; x=1692540749; 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=VDX5thX3jI49tT52dWLIB2D8x1HX3hvxETx0ZhueKBK6p96SyRbzz7My1QYw/epyUM zHVXDHQoPUmifqD3CRHgcL/kbBFx6BTbos3/vnjjtFHfztB119+m9aGs/9tTPhqI+4tD vd8h1zZ+eNBfpLxCbOztgBc2DcMiljFOP8uxmYtbCoZvFyALe6yH9su/L8vps5gRifOg BRf/D/NhN4vggUexuzGeIuzz/FCfbJNtjrAwJ76pN5xFfpxdVEW1fF/DFYtcoKWKTQfC pbY+Py+bClN7Ej9PszwvhIDwj+JDKjEAEQOPXHfru2Yi1mrPSvTX7m/XaRtpbdzyTWrl di9g== X-Gm-Message-State: AOJu0YyR5EFu71DrP02NpbURCZ9e/XwYJtwLZ1h3j987RHz2+GBQX3PT bNHuQly0OXZ4LQlIV7WRhGwnNQ/hrAU= X-Google-Smtp-Source: AGHT+IFjY0DTqC+I6G7w5oCRz1+PHgJUZrpdXeim2Fgyf5PUqf2aegdUtbrEpxOxVtj43mdvj8Ejnw== X-Received: by 2002:adf:f04f:0:b0:314:3bd7:6a0c with SMTP id t15-20020adff04f000000b003143bd76a0cmr5155058wro.33.1691935949120; Sun, 13 Aug 2023 07:12:29 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:28 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 17/32] Implement stat related syscalls Date: Sun, 13 Aug 2023 05:09:58 +0200 Message-Id: <20230813031013.1743-18-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::433; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x433.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 03:09:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820707 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=dxWRV9A+; 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 4RP05g25byz1yf2 for ; Mon, 14 Aug 2023 00:19:19 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBps-0008EI-0t; Sun, 13 Aug 2023 10:12:52 -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 1qVBpa-00089n-A4 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:34 -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 1qVBpY-0000rt-1c for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:33 -0400 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-3fbd33a57b6so35096835e9.2 for ; Sun, 13 Aug 2023 07:12:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935950; x=1692540750; 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=dxWRV9A+v8RNnr9hcVksZI0xxcuEkb/8eCbJPNHdQuLo+Ixk2jIFVw0S/7M1eHh5DM tbStZ1Z+CGLiyqqHHwiIRDPzFoJC/x5vHQdtkMULitWaCt8gUrZemgW2HjYBC9N9KyEj mITFZMD5NlJitpyPzP5nvazqMX2YCze5bmjlQgKZtQt2AsOmvki2tm2zQcudM5RxLufV h+4wFUnydEKygsSbfGreUlCryJKq9Al+PASvsEoVCZb7eHGeGXbZpSOzlHv6ebzx8FQG 7/RRbiKdSHqWzWjDgHDU6ob/2ng9Vzmx5XZB6Elkrs+RXgyX6+5HIxscV8jD7LDyBFfu vwUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935950; x=1692540750; 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=QnrHKj1TgX5EdJKNymwPDrgQoQolaB4M0CZQA8x9LeOVmt2C3/bA5oGZqjErFLwGiH lgJgYapRt9mJAAK8clLYdxiSTQ2l8TlDW7lMAt+RsG5k9E2lmMmmk3Xdj5GatLHkmOH0 8aNgpuwkM/4y3JHcS0HAfPivdvTTgBM+YDBMAjNPtv79L3MfY4jArlhipRryAXUPQQ4h Ai/fCYMDafBTaGfjrSssMuBhSw73nV0yYinlKuD31vhJLyQkOAciFHbLiYtPriyjstSa KDAfw9cGLSu3J7GV6CEvgGsxRSk6KiyN0BTXFLFt0FX4udXB5gfb4rvtnGQMxZNkE/gD vH3w== X-Gm-Message-State: AOJu0Yw9W/FNkQCgTKvso+Zi8Aj5tOKUwX5J5rqfWhoHWPVqE/UiS8YP qXf0Zdytl9YrLri/OfCM60Ugz7W/qPA= X-Google-Smtp-Source: AGHT+IFCRX0+iFGuIpxRv4AXdC7/+t1qds14WmAKBSuUE3DyRW4AvAFznkAgb1nMDK6Xz7HQGCDzBA== X-Received: by 2002:a05:600c:5121:b0:3fe:1b4e:c484 with SMTP id o33-20020a05600c512100b003fe1b4ec484mr6321884wms.5.1691935950403; Sun, 13 Aug 2023 07:12:30 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:29 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 18/32] Implement stat related syscalls Date: Sun, 13 Aug 2023 05:09:59 +0200 Message-Id: <20230813031013.1743-19-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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 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 03:10:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820708 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=qrHULHUj; 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 4RP05v2BdSz1yf2 for ; Mon, 14 Aug 2023 00:19:31 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpv-0008GF-PW; Sun, 13 Aug 2023 10:12:55 -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 1qVBpc-0008Av-7b for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12: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 1qVBpa-0000sF-3R for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:35 -0400 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-3fbea14706eso31527405e9.2 for ; Sun, 13 Aug 2023 07:12:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935952; x=1692540752; 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=qrHULHUjop1hD9soqGB53Y64bUXC7X0Nl5WhA3CdFAhsUDHnlnwKxu4G8vUEQXnFn+ a9MK0W+pd4jW5yMhv8mDr/WlaPlkO/OQ7r23Miccf0+tEYB+kUFILH+6gISnctYBTPKi 6rlY6r0X4a0JoMDq3vONezFbnkv6eckJknqBA9iQfqojXU/yXN6ktejluwxORXDtYsP+ cx2UhNJs1ygNuZNTWoi+Ya7Qq+TFJX8UFntdE5lxTLm680tjZ2K8kK2kEhCvavIpK/3x gGmxJJDn4Yl2JM5sqlqiQZ8oKG56ZNWwANRUgIUkQrla+bs+7pHGCKjk5GEsQ7/+l8oK EC0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935952; x=1692540752; 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=Cwm4KB3V2QQbA6E+eGzEWbQnXbnwPIdiOKWKbML6pm+1Ir1TQjwMr89MvP7gDvc+GS nnorJxB26rm5fRkc0FxTFcyYrIp3YWYaHNSjF0+ywJfvaEacnp4dhnLYfGWLQNSXr/U+ IY1bAkj1wAFXGLrm0cl+k6eAI6DAcncUyUKB0dC6LUS3megsrN5n5dLjedy4g1GJZhLU 3VeJXdF0x0GsFG1aUUFzhl+sU1NDupN74RmZv7SKDi0ywd/yb1SLHedFtG1Nd6Glk2Qe /P2SvitxtlOnYAfM1cqVGTx1C8STy4ACqwoCWIXsgm+H1MIJdmVR5kUxNDJhm46xpHyR qXtw== X-Gm-Message-State: AOJu0YzHd0rtQWqOcEaN5ciDsd8idvIfbnEmSiwNji3PFz7RB8vJv7ag YX3G841+ReLFaBnqspjAJM6/X+VpR+w= X-Google-Smtp-Source: AGHT+IEBpybv657wgdmmLaFcBYukxRTqJOnXjlqX8/9kDVLkFG7xYAHZ74xKD7l3O3MP0FJLCP1Cng== X-Received: by 2002:a5d:4a47:0:b0:317:3f64:4901 with SMTP id v7-20020a5d4a47000000b003173f644901mr4719807wrs.41.1691935951682; Sun, 13 Aug 2023 07:12:31 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:31 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 19/32] Implement stat related syscalls Date: Sun, 13 Aug 2023 05:10:00 +0200 Message-Id: <20230813031013.1743-20-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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 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 03:10:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820699 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=pULEL/pC; 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 4RP02w6Z6Vz1yf2 for ; Mon, 14 Aug 2023 00:16:56 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpu-0008G3-IJ; Sun, 13 Aug 2023 10:12:54 -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 1qVBpd-0008B1-30 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:38 -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 1qVBpb-0000sM-Fe for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:36 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-3fe2fb9b4d7so31611035e9.1 for ; Sun, 13 Aug 2023 07:12:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935953; x=1692540753; 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=pULEL/pC1+wjHpuiWuNcWe9tY+EUzb1JkYGjIZV455KJb2Pj0RgbvKxBSyR+ji5zC9 GGSE6Dpf+s8xfLO719Nly6DhQQBkWeO+eDKaHzCOQ9a59qPxmo4jgWStmq8AARHS4l4w GTjs5+fwB31msSsaKaxF57Ccj2JCwZu1IxyqXcoSXgBEh0QPihZ8wxI2q1oPFCoqAfDl Z3NPElt1yvIe0UtVc0KcOKubga7pPcfVNffmjMBEmHfc/bC627MvvzMy9NfT92p4mkeS RW+kfgGjLi+Un5YfrTFrGrRunjBcoAmylBKCn9yoKT4fMZnhIrtOg0SrZjgpyKmR5U84 rDPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935953; x=1692540753; 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=WTzfVESDaN6Mcov87Cnec6+aUfe0jfLLGNnDX/lhSKPVCbQpG391QJXCeuBWmAEbBM lYw4qXLcgJLu01uCTB0k5flqEvuRz5lrERJUGyO5jOTMdY5mUxJk7yoDBu0f/g1Xyi5x 6dha/25KJeyNWEGtiYv/mg4kPVYcjPB0MZ3khc6KwuN6NJ8kMj3GlXSAXPPRiiwLXud7 7jJTx6TSDHwpid630oU9PZLDtlP2bEVun55CqeSyCIhhKKSExzfTEK5hTAtf+UujwgB6 ak36UxpOlcp9gez1CS6WxZyhTuY5qcjdqjF5Vw49xH2a2rIZrEyhA3o/h+WD7Ypm6Dzw clSA== X-Gm-Message-State: AOJu0YwXHpZcR9Ombo6K4Dm67LEVar2f63cTX1ZOgOJHKxzBvfANOnGQ vAerzdyBV3Vt1FqEMCOPJ7YpfIXeCZ8= X-Google-Smtp-Source: AGHT+IFPuo1T/f2pY3GL+sv2H5UxRIgA9wGnBPbHuvNpY2mVY1nXS9Lwo7yzhGTIdSwfcS9uai7c1Q== X-Received: by 2002:a05:6000:90a:b0:30f:b7b4:3e55 with SMTP id cw10-20020a056000090a00b0030fb7b43e55mr5112365wrb.19.1691935952934; Sun, 13 Aug 2023 07:12:32 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:32 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 20/32] Implement stat related syscalls Date: Sun, 13 Aug 2023 05:10:01 +0200 Message-Id: <20230813031013.1743-21-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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: 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 03:10:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820679 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=gC8WF4gN; 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 4RNzyT5TQzz1yg2 for ; Mon, 14 Aug 2023 00:13:04 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpq-0008E0-6M; Sun, 13 Aug 2023 10:12:51 -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 1qVBpd-0008B4-J1 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:38 -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 1qVBpc-0000sj-0H for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:37 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-3fe5c0e5747so20155795e9.0 for ; Sun, 13 Aug 2023 07:12:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935954; x=1692540754; 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=gC8WF4gNfaaQzBqiBaSffTA0xLX+ceG7GpfF3PKwgi0rEYADZfHRoUSUU6HER4PKBq tI3tdUw/JwneLdduSYn0p/k+W0zc36dr5KAhL09H/RW+htPMhHW2PrpBFbeeZu2hb0Xx VymKoKXf6Ud5AsYy3uVMG3YVhlrlj5sUdWPEsFQrMZhRj6scetctZDv/aL13bDYYaNCD zg4A+BFu253nkh/BVAsMZi8QkCUAwZfBUITzOhzzEf9Md+cJcXpzegmFOjLdck02BWHJ qUN4o+gkoaxnVTYCQ5sa5P1/aBlbBe3EvdoW1s7/V+nH2yyWIbfxTk5JpzW+2wLcik1P kboA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935954; x=1692540754; 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=S/GYb9th4x84j1e+qdbo6OJqbI9cyIq/guz/YsZ0N38fF42umj6BfUFI0HxS3FYfTa xE01GBnjdSaGbsyqJYNHv+MgmCLs4MONM5UNyr+HKFEUUGZ+mnEjhQqkYQrShuHQadJ+ SLiXcI8tTpjvzPxVlFV9lZhuVGyTI6V+SDUFl1nuQpB1QAhopURe7ost2fhf63EnDqqj q9LMi+5jZT5PejfrTlASK88RIBLyMJyClNovs+gIStim664ze/LCF6wFkvSQD1xs+ay9 dxKI9l4NASN+iVJVrpHj3fI/WsfeVnDKfV7hp24HvaCFjy8De6JalXwy6WdPDSSKYH8S RU7Q== X-Gm-Message-State: AOJu0Yyc1GTNmgc2kvGh6slsmammUAIhhpfMmmKPjRLuF13i8MEbOY5z tt4EKC846yrdjRN6t6kjiZ+VDHUuIdc= X-Google-Smtp-Source: AGHT+IFC4ndF9W7mXu7sjNvhEXyxj9nu9ViSFWDQVQ+4/jBB6YqBr/seZoVYgv5olh4dtc8mzEg5HQ== X-Received: by 2002:a05:600c:252:b0:3fc:6e8:d675 with SMTP id 18-20020a05600c025200b003fc06e8d675mr5360771wmj.13.1691935954169; Sun, 13 Aug 2023 07:12:34 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:33 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 21/32] Implement stat related syscalls Date: Sun, 13 Aug 2023 05:10:02 +0200 Message-Id: <20230813031013.1743-22-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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: 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 03:10:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820698 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=cziAxLQo; 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 4RP02T6gMHz1yf2 for ; Mon, 14 Aug 2023 00:16:33 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpu-0008G5-Lj; Sun, 13 Aug 2023 10:12:54 -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 1qVBpe-0008B6-K5 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:40 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpc-0000tM-Sr for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:38 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-31757edd9edso2930005f8f.2 for ; Sun, 13 Aug 2023 07:12:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935955; x=1692540755; 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=cziAxLQoALy3lgfXOSKWsu3moY6SdmEskzC4a0otJIxyga+3ik9A4JN6V+MBIu1spH 3RgvnRxyfVChRzyta/Es7oPdV3QZfpAiyaJlVVbND0ezWvkA0lESXzluD/HGNJKuL9uU Lwnf+Tp4imVhM7HjaL/pmKNId02T+n6WPjzu0CoJ3ZuyKjrvfTg57mqoMaAJ1Ee7pmNJ 5aSsm2NhZo27DFbrbGy7nxzOe7zcOW4yl+JeK8ajtuthXtWnBFhJR+wxXnoVXqitHehD Mnm+ArGJCzQTMfrsjzHtibuEkIW/lPkvAY/gB4DQi4Gjo7XVuC4z/kvRGVnr1foDmMm1 ERfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935955; x=1692540755; 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=d3PEeqHbPt3h4gcNfG74lILdag598nlJEWJzOn4gvEAymUHZ+Qz6z/I7va9Xxd5mAR B2OqTCQ808ZKJKXi/m7XggFmJJTt6hOeQMPVC3/8311SJMAzb2oYCAHN1Jy9x1hfmxii eYUhVlHA7LZLTUCEj7ObFu8RPOxFDVn8Vmtsskn8BiIrzuXBjm7A6CeTCNzOdSmpo7PD qw3/MSBJdV1dccT70Xm7Wmyzqw8/pfo64Kx9GHZgfuMGzz5ZGk4NzDyqRqIr+oo6/PAo 2Mmax4Sx/6yZLoGdGLPMw9TpU/2zZoqmWphWUPhdLDAonpgNfbRt83fOmWbHeqMzlvUd gR0g== X-Gm-Message-State: AOJu0YwcrFlMFeg5wnFNwPY255vxukOsq0/f+465QrbFfPnACrqrhuVf hQNwrj2+WtmpsRRrGMnNHuBKLpYyCH4= X-Google-Smtp-Source: AGHT+IFMgnq9543pNAovDCPt695NXnK45jx0+dfYhZY8jM3n2XyH/UarTdE5D7RA6voXQx8RfJMIUQ== X-Received: by 2002:a5d:456a:0:b0:319:6c90:5274 with SMTP id a10-20020a5d456a000000b003196c905274mr2940189wrc.30.1691935955375; Sun, 13 Aug 2023 07:12:35 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:35 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 22/32] Implement freebsd11 stat related syscalls Date: Sun, 13 Aug 2023 05:10:03 +0200 Message-Id: <20230813031013.1743-23-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x430.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 03:10:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820710 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=RBzJymzZ; 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 4RP06C5S3hz1yfS for ; Mon, 14 Aug 2023 00:19:47 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpv-0008GE-CB; Sun, 13 Aug 2023 10:12:55 -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 1qVBpg-0008BK-8w for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:40 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpe-0000to-DH for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:40 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-3197808bb08so35171f8f.2 for ; Sun, 13 Aug 2023 07:12:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935956; x=1692540756; 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=RBzJymzZ0lNvzdcPaapVEgNzZiDCxqNtq0SsxqNvL5HqC0lDxOM+CkGZmDNmjuXhUe L5WGwLH05J0AF7dN1iSzRN86aqN4xHxS3kFNYnYYt8GMUL+JAW4NWY3m5ouB8+bPjnye QKYvmbNOV+7g/qZhOQIkJNzj5Qjmhmd9ZsghtAoekuIqIj2iD2CkaZ8tAH8Wfglv5CXl ikgP8N7yfKe2bAfTpC6LGwjoSDKof6IjotY30xb2WFs4DpI3X4nZjbX2NvZOpRu2kYW/ dJkkbNCsV7JU/U6JjPq58qeKRc6/+xIoaDrKTGfP4BzqDiUMTZjtKdqPwAOY6JzAVF0k ncMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935956; x=1692540756; 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=aB9mMuhKVaY62OwOSjDJ/JEBXWiDqqpmKtvwCJ9Z/PaOj7CKtxYvhd8altflmjGUsz LiNbWt/y4gbsU/rJWI51bM89cQ7oI8+ePaFeN3qCzL4G3DhnC2ssVnxQu/IRD1Vzo/tm JeGTyt9TfNj1J+oGTWwgDDdeEh88fiPMEYbV+xHARZ1W7mYVK5e4yaCke9DBaLjYfrBz b/niu6cnbaCraKt78qcJCdjUgQDkZxia1MZTHDgtzVtQ0QFNxdznQK33KRC8ib5KKbj4 Y5WdlM961ZHARmz4occaJvCqKB5LhOOWtNtjkqnGicWFz75wW2rY9dLOQ1Tczq04akVG hcqA== X-Gm-Message-State: AOJu0YxPExGoNdsRhCqlnbuov/Ist+pCMMqxdARZ7quuVKdJsO42tUuy HTeajSKvv9Fif2aVQW+WxevO2c5xA9M= X-Google-Smtp-Source: AGHT+IF20wSvtgPPh97hajSU1QtfWbrWoZlV4G0K8QLXBjheHl2OlhOqaCgzjJlp/Un19zEmZam/Eg== X-Received: by 2002:adf:f1cb:0:b0:317:66e5:be62 with SMTP id z11-20020adff1cb000000b0031766e5be62mr5184891wro.6.1691935956582; Sun, 13 Aug 2023 07:12:36 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:36 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 23/32] Implement freebsd11 stat related syscalls Date: Sun, 13 Aug 2023 05:10:04 +0200 Message-Id: <20230813031013.1743-24-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x42c.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 03:10:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820706 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=HAZ4wCuo; 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 4RP05c1q3Vz1yf2 for ; Mon, 14 Aug 2023 00:19:16 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpv-0008GD-Au; Sun, 13 Aug 2023 10:12:55 -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 1qVBph-0008C7-H9 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:42 -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 1qVBpf-0000u5-Ig for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:40 -0400 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-3fe1a17f983so31497465e9.3 for ; Sun, 13 Aug 2023 07:12:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935958; x=1692540758; 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=HAZ4wCuodd/LUniGxU76phqFz1/GDn2C+3ZT4bC06fsTVaPUx3tdFX7alQqgN2rhLY HB7gIOTZBucBcgJWmwMvLSdm66vu+AeHmSyaYlMGBnlLcKn2SMZg6KafUYwOVXyHWjbo Jn80yv7AalgFQuH0Tn46pI8Shq68X285QDGmE+TteIRu7Uq/DfjB9SpAq0K2Rp28pKJN VCxC0Q6z468rG2yXe0mbJGN1RyF0E+f0N47fBm5r/ao5o2XGJnewejHXCUQxonnFSN3T RqUl73NlHziTUXrF0/7h3568G64+yo6jhbObl7kLq3d2Q2ycOHu30+x3Kp9TNsr6mn+S uhPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935958; x=1692540758; 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=fDsR+XRR3Ikb8alPDvDfia5DW38dqziQ1rvyHr+vj3eo9d5FS65YpYhxaO0AF48u+T DkU6Vez1tbqOK5Bpm7By2xoj8c8n5WnIs1TaiNvnaVTlKDo4CJFacaoxhh+Ph34uixck pk2eeFf9buWpJmmLfpEyqfG/kJbGk3oXgiJuPI4llr5uHV3RejwaNxsAY4vpIJtHCh1I 8xN0hKaxDypUguAKmpvE5IKRgwV1T03kwYC6y3efEnX1Jf1pG1jna7Fs+9BB/tM1iiH9 u1WiJohAE4QhDhGDJP2elPq6QMBAlNibGdejsGRz7L0YtZb9CDtki/EaChfnLFBbEntt nM6g== X-Gm-Message-State: AOJu0Yxot+2Dlrl3db41D0fB6t+IK6rOWbIqQjwWDixUKF5kHFML7mEV a0L8deRFXbDIP9ZHL6u8+zkMSp4po0A= X-Google-Smtp-Source: AGHT+IExw3Cw4vUs6nM2Ws9z0kOonYRhwDgiwWtXWyKasEh1bC6+VO1E7ZSsIZEcrf/1wIvLPY2WpQ== X-Received: by 2002:adf:f086:0:b0:318:fa5:d84e with SMTP id n6-20020adff086000000b003180fa5d84emr4361985wro.70.1691935957801; Sun, 13 Aug 2023 07:12:37 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:37 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 24/32] Implement freebsd11 stat related syscalls Date: Sun, 13 Aug 2023 05:10:05 +0200 Message-Id: <20230813031013.1743-25-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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: 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 03:10:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820709 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=ZzWVkwKA; 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 4RP06C43Flz1yf2 for ; Mon, 14 Aug 2023 00:19:47 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpv-0008GJ-SI; Sun, 13 Aug 2023 10:12:55 -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 1qVBpj-0008CN-6Q for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:44 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpg-0000uB-Le for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:42 -0400 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-3179ed1dfbbso3171036f8f.1 for ; Sun, 13 Aug 2023 07:12:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935959; x=1692540759; 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=ZzWVkwKAJkIldJg5AKYV9zk7bfMnXqhCW5JPCX6WlJLqlv6m3mWqd1hRb1PaEDilyf ePAHVi3br56h0jT5G94ou6WpCsKZRjZx4xE2+hbigS3cGOb9wDiKrgxaGnKFMP3vQQqj CTbWYhwRQa4HW88X4Sxy8vkWPc5zZLN3dAdjXt5eOsytPEGXwtHLuCTWmVycmfulcg8L N5dpzsJhEg8E0m1E3SUEZ4kMciB1JaRX+E2MVsTmtCbY1qIe2JP9j91WP1LW6v4UsaOd 233r7Tzb3gVVkJZDeEWrp+X6CMuCwhBt9J6PcC6RtfJFslWzgVz74JN0qx4mJwCuj9eV VUZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935959; x=1692540759; 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=isB8VD4/P7BVLya6qVin8CPC84V8ENY0tq6mbKV92QdftQElf0xFmJP8nOuxxauK6S OXjW21LOvMu4knpbUeGhBSRWkrVMrZ/w9+IBcIfs5oG4+WBRmrPpPPAJYYIn6TbilSsL wQGocR4ZuSXfjAGuaXRr1Yg0hYw3lhlQmIoBSFBOV7DZjrQ6K+BS5vYB3yh3w7j8ACxn v9eczZSKj5taMZWbE/OkE6kQSFkOpyoWVbKx2DZ8yuLwyyvDk2yXryodne568ghna9Gk nEsyMjrocsv3mRl7Fd0AupAwCZfKx2Nq+WT+KnkDxgUA9uhbzpVGUxkr5I8fig/PamPi 4kAw== X-Gm-Message-State: AOJu0YwPD8ELuy4Ca0BGJ+/6+8JaCayS1X1qB64k4WOAMpU9OpuhyjCn U/k4qdYOyqb4h/tT2NAXl81ftM07ev0= X-Google-Smtp-Source: AGHT+IFGkWAkHq1eQk7C73kyitEct2L+QMG+/ufGzJlwD/y6C4ZoVXlttnERKrnEnwWjRN4xwnRkiA== X-Received: by 2002:a05:6000:1051:b0:319:6e91:eb43 with SMTP id c17-20020a056000105100b003196e91eb43mr3140106wrx.31.1691935959078; Sun, 13 Aug 2023 07:12:39 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:38 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 25/32] Implement freebsd11 stat related syscalls Date: Sun, 13 Aug 2023 05:10:06 +0200 Message-Id: <20230813031013.1743-26-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x434.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 03:10:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820686 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=hLG/SCJB; 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 4RNzys3ZtRz1yf6 for ; Mon, 14 Aug 2023 00:13:25 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpu-0008G2-1A; Sun, 13 Aug 2023 10:12:54 -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 1qVBpj-0008CO-9E for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:44 -0400 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBph-0000uQ-SD for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:43 -0400 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-313e742a787so1992881f8f.1 for ; Sun, 13 Aug 2023 07:12:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935960; x=1692540760; 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=hLG/SCJBDz7mylxBJE5vP/NSFoTzVl9XPH4mbZi2IKeKhoQhwLz+bYvvLXyiezZExT DrC5lBE6FVxuReDa4XgyoQ7Q13OOrFtU8f2BYdFX8ZSm2v3vA9t4JtJIfmHN/8xW9dBv lZeATdkMvsZdstpAEq13mXMJfjZLz5O1D6oz76xCZ+OnMsXcl0srYyNi8qtQGP46AeQF tJpsK+n1mwy29NHoN35pYnoLTxcnyalAFcQOUZ+B0PuvW+5jobVvdK96nrIQadkdK3R3 IEdkSUbDq0FY/CaApNWwLo8yOiZWGMhXjmWWIj/2mTjsr8Xe4pToSH4LjYO5FtC+JUY4 Yg2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935960; x=1692540760; 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=BgVG16phqUGqZdRTM177lMo8Xej0AV6qMnjAzOFuIlqgMWT4Pzhln5yMLXmxd2rQOH zm75RqPUbZZareVh4mI7x9FM04twNzZtHDrrf7J1uRZ9W2vRbHBXRSsk6P6LzGYx5/e7 pC6CpqjPospS59YF85DCEOAU3wGAlYOPOJI6JO3qL1itDL7jbg+UkUElBc5ha9zqC93H XrKSd1ULyMaNG9nCzyEotH8JM5w8TKpYOKjfUmXtv/3I+/PjHhD5bBJyshuR/X8+vo4X iQ+Uxkz7qySviEXimTsBqOJ9tOtCROg+4HF52/EFPGWs/TLqpiH3EA02mVGd+P3CvQDp BQPA== X-Gm-Message-State: AOJu0YyrBfnO5kvcp0eJP8LuDzwgEO1REPUuCId7h6nNls8rykAK+sVV VbEtPLQRbwWQbl/Qpx1htZUQqMYCbJc= X-Google-Smtp-Source: AGHT+IGtljsiZn6Rwerp1cVwxNVBM0zuq2asQ9UOyeCGzicL4AoMKhLIlGxzji3lidIHjHenaFNLxQ== X-Received: by 2002:a5d:5188:0:b0:313:f38d:555f with SMTP id k8-20020a5d5188000000b00313f38d555fmr5614342wrv.24.1691935960296; Sun, 13 Aug 2023 07:12:40 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:40 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha , Richard Henderson Subject: [PATCH v2 26/32] Implement freebsd11 stat related syscalls Date: Sun, 13 Aug 2023 05:10:07 +0200 Message-Id: <20230813031013.1743-27-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x434.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 03:10:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820703 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=V42FUXdL; 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 4RP03y5h87z1yf2 for ; Mon, 14 Aug 2023 00:17:50 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpw-0008HI-K2; Sun, 13 Aug 2023 10:12:56 -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 1qVBpk-0008Cc-JF for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:45 -0400 Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpj-0000uZ-0q for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:44 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-31781e15a0cso3127286f8f.3 for ; Sun, 13 Aug 2023 07:12:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935961; x=1692540761; 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=y6d4ida95YXswhkmIxPn0YCekqtd6+n6y0mTtEISBT8=; b=V42FUXdLakZIWEE5NTj9/CLeCiYMgUr2Kb4aUqKj4kjdGLkNa4UR0+QAL2SL2P1Dm2 e8fEgw3X2tlbGUxLyxRSg2Cf1Lsqn4jZRBbla1g8tUGipk4HWmzjDJ8aGRwYTW6ivzLM qXMdgyASExcqIra0yKdvkmhYVZE7qsutIl0KgaEWYyAEzbbgQ4ynWxOpXjR7dXhYzUfw 0LOggeBWhXXox00wykt9EWVnJuU/nTabTT3IuWXwbiwVte48BRTcKIn3nksrFjYSQ6Ym t4MQZLuaqSDV8oZAigyQ0BIxBab3baIfPChS4+8y4Ylv59BafUtd40a7M7i9wcugefYj VUdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935961; x=1692540761; 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=y6d4ida95YXswhkmIxPn0YCekqtd6+n6y0mTtEISBT8=; b=K9t/5m5G5Q1j1iJIAyBWYojda2b8B0jmWd/RHjQdGyCHETJxZe9MO2jiSLFg2qkZNL zPdkIMZgqoZa0epJAzrVONf7LX9+RQKiaSOK0aeu95k7B3zy7rAcbFvtlTlI6UqSPmyd TFyyqWbJLdWU8B5/IjxQgdbG993K5igC6KWK5JecAwr09xLQasR9r7uAVOrl+68g1Mze PbC/+qxGXV8DYhnRhtPbRmGMTFcovHlboqXc0Bn7knRrvk/T79vw99Q3gEeU8CGS/L5+ yJmyNX/+WdZXRatImWrVEuvd5O2TXHJvzxmo8ny94pi/ucl8y/3nQhht/f/NZLevFPLU MpCw== X-Gm-Message-State: AOJu0YzCKhfSif6aDobbjaQz/B3WrcH2QnChI0wwtNC00RCEQxUKO84U aQAQO16JYYm2GcTkiodEslSDbnteT0E= X-Google-Smtp-Source: AGHT+IEz1+Cip2zztXWfqk4xO2t4fVH8tnpQBZ/12aBlxq3IA5CPnTxYJ3GYdaCQhIIB6hrjEwPlWQ== X-Received: by 2002:a5d:5347:0:b0:317:67bf:337f with SMTP id t7-20020a5d5347000000b0031767bf337fmr4633678wrv.2.1691935961409; Sun, 13 Aug 2023 07:12:41 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:41 -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 v2 27/32] Implement do_freebsd_realpathat syscall Date: Sun, 13 Aug 2023 05:10:08 +0200 Message-Id: <20230813031013.1743-28-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x430.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..cf56c778ae 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 03:10:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820695 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=DUZ71Vre; 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 4RP00L0CY9z1yf6 for ; Mon, 14 Aug 2023 00:14:42 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpx-0008HZ-JR; Sun, 13 Aug 2023 10:12:57 -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 1qVBpm-0008DA-WA for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:48 -0400 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpl-0000v2-C8 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:46 -0400 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-317f1c480eeso3127856f8f.2 for ; Sun, 13 Aug 2023 07:12:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935964; x=1692540764; 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=DUZ71VreAVvpRiotLDLvlSh9QqDkPUJ5Zhui1vg8P2oK/2Y8PMJQK2ppooQA0vHAwA uaEkzLgH4HGpfDX9dD8LDFravh1bE6A/+9uNjs1WpabuMyyzEyAVAg7sG3CWSjJUFFK2 CqCChQKyXZJKSE4Wm9t9UObcMx0IPgTAZr7y0ZxO/rF+FocUdvzupC4ojjsUByH5dH3y +NKu8uaP1WYQkwLkH8yoFrz5KvY6ibr9RyHw6QvuUXjuql+/ZVs2whL8zbPeGdu1OeSv YItFmQZTZ7sOGyaXvKZh48svRNsvKyc0jcq2mdrTigybvuxd9etpzoQk6J32VQHV9PbI 7NWA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935964; x=1692540764; 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=RiooqLTarv3kd/YlvNT9kjVNxMynhZHLyti8Rz2eaRpWZYC4075ZZdJ6tkAYZLp0J1 Tap8ZYtcM4MZQyQ7ne0Td8usujCQWMM33LzTOxtnMchlPFj6FNZTnZyUuUajcz0W7+AL AWG5ZGnKRc2aoJhqDiutt2qKgJj2EEhnMQUyGAvU2rbtWngLDBM/df3rvcwUvd6a6h6h IHqZvtlARYl+Soqpo+eqxethQ9EZs3ZE4jcoX4tO2WXsHEnoyTvLZpzT+lcC/jEk7Ptj 0idS3VvAywTkjzPl4XybVo6ZSnt+7cV0TsvyGFm/zwCFDMMkJB5KJAaoe5jSFRQwNF8R FZcQ== X-Gm-Message-State: AOJu0YxxHQfShCkoHuRFt4LCrz4Ma82DKUmwHSkPlprS08M6UdiJuJu6 pY6s0+l+J6IsmMHjRN2sYdPZCPE+v4c= X-Google-Smtp-Source: AGHT+IEnBDh1ebTz0kNS3/Y1dpTBDauyCs5K8A+afGjH3CubMwGrAzF6yIoANJfaAgXsWB4y2H1saQ== X-Received: by 2002:a5d:6341:0:b0:319:6e58:7096 with SMTP id b1-20020a5d6341000000b003196e587096mr2234223wrw.66.1691935962427; Sun, 13 Aug 2023 07:12:42 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:42 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v2 28/32] Add os-stat.c to the build Date: Sun, 13 Aug 2023 05:10:09 +0200 Message-Id: <20230813031013.1743-29-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::433; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x433.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 03:10:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820702 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=RCfgJC2/; 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 4RP03W3bXcz1yf2 for ; Mon, 14 Aug 2023 00:17:27 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpw-0008GT-1A; Sun, 13 Aug 2023 10:12:56 -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 1qVBpm-0008D9-W5 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:48 -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 1qVBpl-0000uv-2x for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:46 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-3180fd48489so2832630f8f.3 for ; Sun, 13 Aug 2023 07:12:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935963; x=1692540763; 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=RCfgJC2/fKLYOvK4cly6OQ1xtzLROl0jgz1p/tpQs6eZUgJtQ9yrcRIxPaFuu4bk1a 2Z52XFXgOFUOWwJVz4pQo+cBWDoiZCZci04Dn6OqFo8uglx6CAMxDYE8GBA4/mnpkJer b+x9uN9/5aeahz4wHt5zlMRLqyQQrr23Xx5pnKg8ln8oLdXzEyLBxMjbvlv5DRxw7vU2 L+6fM+2lEV12/O092lDJG1v4GDWIQjFyNh/eM3acV0glGk0/+ZTtxudim0EshsQOpH7r zv/PvlWnpbZR60+tPVxTbO7m4yVn5ojzV0hp6zhnNZ+foROyF6/hNSvLxCttz/4vzO+h /kyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935963; x=1692540763; 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=jNRhj6TtY2H/cEGdlVFPi2Won8z3+c656kBkrXDdPBeeQMW0cmtOeoCWrQcctsKDMS tp1qptEvBgmFdCjEF8CjC63HWA1vW78HKO6nc6E8PPZumnpnTLYNOXzOfNrBBjiWag14 xf6GFwSQzW51gg0EhKOEcJ7yyCSz2/U2SEQtrt/eUYIrcTstX2V7LlRRlWGbW41cFCZl kHTBE31dzssVcJiJvHlYwZl9Ggoi237/xQOMGe0UqLtUFiLuCXPuNS1ZHxCw90Vo09S9 Z0cEfhX429mMvU72m+Tb0Lk296CXfeq61t4FKONdK+gpRZzHOZ+M2V/ayKrjZhCrr7f3 77yA== X-Gm-Message-State: AOJu0YyTZc0Z9SNapUlZcAc7+DF7pD2nanP8+OpujesMB8rWW+U3tf3Z 288sg/9I2TZyT0FZUUSQiHJ6hL+gqNE= X-Google-Smtp-Source: AGHT+IGTFfd3BESnRPUo6anvB6vhT3bdhVM6bzCH0NTfImauFYjWrWa1Q4tVyb9apziI61DkOdfj2Q== X-Received: by 2002:a5d:500f:0:b0:317:759a:8ca8 with SMTP id e15-20020a5d500f000000b00317759a8ca8mr4453849wrt.67.1691935963528; Sun, 13 Aug 2023 07:12:43 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:43 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v2 29/32] Add glue to call the following syscalls to the freebsd_syscall function: Date: Sun, 13 Aug 2023 05:10:10 +0200 Message-Id: <20230813031013.1743-30-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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: 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 03:10:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820711 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=I5hdk8uw; 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 4RP06v0Dxsz1yYC for ; Mon, 14 Aug 2023 00:20:23 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpv-0008GC-4e; Sun, 13 Aug 2023 10:12:55 -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 1qVBpo-0008DI-6Z for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:49 -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 1qVBpm-0000vB-P0 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:47 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-3fe2048c910so32148685e9.1 for ; Sun, 13 Aug 2023 07:12:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935965; x=1692540765; 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=I5hdk8uwSPICA5+06rpx+zyJBow9uCViKPEeTbphC9Hc2Z5/e6GiBlxCDl2Y3Pin3q rz0mhjPndMZ45pj4cXMI0DcOITRno+Mqx5DHbQ/bUInRg356sPVfyboOwLLeNpm4dvKe 5sEwInXuSVboAgGN9ONI0rGj32WnZequUahKqTyKJDR/WOb6TtHFvoY0tBlOS62FGsrr l0UG+ncrPmTP7PQnWKiQJTrYGf23LfyMbrvmT5aGcO+NC1DfOtBbL5aOPFBCgv4zskLA W2kwmW1ZAZLfH1cAUDygL4iSdrwAN3nPS0fAOjzI4zAgRHB+ULLt12xR7KtF5mAZs54K bqMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935965; x=1692540765; 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=LwqVTP2QwOiIY22VKvCyeWi7h9FPywHDAxHBNarhlVOf65m94ghn+K5prb3MSHRtVI UIE83L+9Li3z/s7QAFChCWwG6ZSXCSzbvClXgXjNEcF3OdA1374mRwsXQA6BTvv834Or m/tAZ8d9RZDaQ77A3qZVi6/kUJPTbj7elLWQcfs5dwOqwLvd9HErW/T+Ju2ShnKKSmnr At5QkJw+M77SVLzdO7zti1Zaop8C6eAPfRZ9AG+hK2RDFUp0BmxacxO19cx3MuxAIw/x fhBvYqVKpbcj3hoWUUEtYjc3b8GeiDCZxN6zu0tdxDg4lWk+j/c3PBb8JHlfSEof6zvf zL0A== X-Gm-Message-State: AOJu0Yyb7zaL/Cd5hI6nqpQ5ndp7DqeCZfeSGohwIw2mXzQQV6PdFste MQIo8pCoJZEWR8QBLhtejjUnOWCgNxQ= X-Google-Smtp-Source: AGHT+IF6tj1Tz5g7z42pTdBafhs8uApcHWWpSOKb8nXRRXCj60tUZeoCmkH0OBf7sqFYxOQImae6/A== X-Received: by 2002:a05:600c:b44:b0:3fc:5a3:367c with SMTP id k4-20020a05600c0b4400b003fc05a3367cmr5730102wmr.32.1691935964687; Sun, 13 Aug 2023 07:12:44 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:44 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v2 30/32] Add glue to call the following syscalls to the freebsd_syscall function: Date: Sun, 13 Aug 2023 05:10:11 +0200 Message-Id: <20230813031013.1743-31-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-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: 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 03:10:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820700 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=Znbbk236; 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 4RP037274dz1yf2 for ; Mon, 14 Aug 2023 00:17:07 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpu-0008G6-Lp; Sun, 13 Aug 2023 10:12:54 -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 1qVBpp-0008DR-UI for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:49 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpn-0000vK-GW for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:48 -0400 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-317dcdae365so3036562f8f.1 for ; Sun, 13 Aug 2023 07:12:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935966; x=1692540766; 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=Znbbk236c+rg0hN+iUpSz1B/EgASskGnHIWHnNiO+PeLihMjihLYEiVQbhHlEb2OIE xwsakqoKh7TMgmab7WOJrJ6z/NMFtP3kDXyVhnhH7SJ7H5w90qkcuj4Li8vI6KF8oFph xhHVLdUwAezLxA8K091qL4MMiQ6XqQdcE6cNdsDAo0W0tBXUD5GcT8QMI/u2TmJGpYwA l6FTGAcf95SjRgSvBjBjUSEr8EZyfEew9jXR3JIK9qfm+dPbIhwlP9WY7D0LzQdjOXuW SD2rf+Mp5bW3EaUViW40ejEmImw+Yd511NUJNpYfAwPYgd/V4BrVrnWZhu3tyainWxhB WHtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935966; x=1692540766; 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=bgFkbdDyEt/WteObAxVpUXUMjAh2H7bXd+IL/kIXJjzqtKRShOJl6fQGI28floNpvn ZftEYOyI6hFnglLMRy9DCKuIU63Wb8g2Y7QOkGh/AcgOeyAKj2psx3ab/vgIGQdRrbXh COkR/VwltgfjSxlADuGUxyZdqjCEhpjI/SnmCFh9miN3q5RS97sbSoHMSR0UamFjvYvN aZjRq32WOZaOJsfhUmJUiQfz0Y+wgHKinjRlm3as9ARlDb/d5vEe2GKdNtnarlDYtlWG p0ze4RDQuhQl6eXtV67TvG3AVqLsJLe9kNoPiucKmxlzZce4DjHV5BAbTgMEJymBhNqm Ibmw== X-Gm-Message-State: AOJu0YzYolzWm4XMv15zGIHiKM/QAeRnZq96IwElYgxQ8nOM5wUEsKMt NqbqYpcFt3VkpAy/+2h769YexyN2e6o= X-Google-Smtp-Source: AGHT+IEAkaLurJSecLo9ogIJi2Wpas0vJfJ4oMB8m6PM0usqbWoYysAjap0aHPHEdQxIzLdmacnZHw== X-Received: by 2002:adf:f349:0:b0:317:3d6c:5b27 with SMTP id e9-20020adff349000000b003173d6c5b27mr5301619wrp.46.1691935965753; Sun, 13 Aug 2023 07:12:45 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:45 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v2 31/32] Add glue to call the following syscalls to the freebsd_syscall function: Date: Sun, 13 Aug 2023 05:10:12 +0200 Message-Id: <20230813031013.1743-32-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x42f.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 03:10:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1820693 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=MrXhyPuN; 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 4RP00208FSz1yfS for ; Mon, 14 Aug 2023 00:14:26 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVBpw-0008H4-GA; Sun, 13 Aug 2023 10:12:56 -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 1qVBpp-0008DQ-U5 for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:49 -0400 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVBpo-0000vb-HB for qemu-devel@nongnu.org; Sun, 13 Aug 2023 10:12:49 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-3fe5c0e57d2so31521445e9.0 for ; Sun, 13 Aug 2023 07:12:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691935967; x=1692540767; 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=MrXhyPuNgQ81frC9uVXqUkrdl9nFjgAyn9nbb8wKsQP17+TZg6MnmzTeyVPdHaPIme u2ZNrpyVN0IKvENWJ01pRLbiiADThCsIkTBBsp9A02okmXdAQjkT3wf+hrpfKOWOwcYZ sxrtN1sTMwIkCByAxEd3AVuYdUA7FZrsCYhO9/Osh8nzocY/UEhxRCFn8cWNIS18SOpP NDJqGZo3obIXi38ijN+c3CjT9Kt3r5E+c0ShgT5QQe3ncDoSNoXspoOK6r7/I3ob0lHc BrDFMBKcxTyTUQCSbdUYfLdnIq/SGuBycSeFLW7nUgb2QOrPmAdX+tUkWT6H9Hgd68z0 Y7Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691935967; x=1692540767; 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=CvAxZs1nYghNIUKNBjMFASYbiHRlGm/xleRQZgYE1eUAuM1U6DmeDr/6hIH3uEDdfO ssy3xWMxA0XcR1YGO/XmiCrKW8xTDldqC7+cMLmUCRrg3+s6GW1+2aDjwYt+wCyWSPKg bFMqWIgb1MV5MTDU4iGJUHGF7y2i/JfvgKwgTGxqIEWoWzKqD8h3JPbdjLJ3zgVt3Sqp D6ebLOsuxZd2hjKqzNT6pU/K624l15G7Gm6douNwDJ2FwJ+aSnbOzcpKJgoL31Mwoz4c esNPlhJXAdt4SY0FcoUvy0rZZBILVk+xK5kqlJs05ZCSiK8ZHgjrPD/EDvyF8MRpDpew zDtg== X-Gm-Message-State: AOJu0YxhMVj9mW4OUhoQUkXRrzqsr3rp8gEAxy4krjflyiwEQrxCvaG8 HenVeN5mzN/DNyGjO5eXj70Q7EZ7rGU= X-Google-Smtp-Source: AGHT+IG4LWiNhGXvng5kHGY3UyKDam7XT+10FjETuINtgOGt21/Ms5xtP20U+co2SfuUi5Lavg0IpQ== X-Received: by 2002:a1c:7208:0:b0:3fe:1548:264f with SMTP id n8-20020a1c7208000000b003fe1548264fmr5306372wmc.22.1691935966788; Sun, 13 Aug 2023 07:12:46 -0700 (PDT) Received: from karim.my.domain ([197.39.204.50]) by smtp.gmail.com with ESMTPSA id l18-20020a5d4112000000b003144b95e1ecsm11409101wrp.93.2023.08.13.07.12.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Aug 2023 07:12:46 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha , Richard Henderson Subject: [PATCH v2 32/32] Add glue to call the following syscalls to the freebsd_syscall function: Date: Sun, 13 Aug 2023 05:10:13 +0200 Message-Id: <20230813031013.1743-33-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230813031013.1743-1-kariem.taha2.7@gmail.com> References: <20230813031013.1743-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x32e.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} */