From patchwork Tue Aug 8 06:07: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: 1818753 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=JFfBCZ2N; 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 4RL0861STJz1yfM for ; Wed, 9 Aug 2023 03:11:02 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDT-0001pj-Se; Tue, 08 Aug 2023 13:09: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 1qTQDI-0001Hz-Oq for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:45 -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 1qTQDG-0003Cz-62 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:43 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-3fe5eb84d43so17442065e9.3 for ; Tue, 08 Aug 2023 10:09:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514580; x=1692119380; 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=DNZTycRhT1z+dhPCDuZivfVDPfYQWNMB+t8hhmuprEQ=; b=JFfBCZ2N+9pEOm2YShc9wq70os/owS1Sz2ZYuDwcno49NYtdhVueSbxNX5V7ezPPX9 D5IgEBUXmy/ek1244ZyXxGPW4nYGmMfe3uEA0PwlkDma7Sso2pDGUX/R5OmzVPPo0n0Q byXEybK+noQCCmN6XoLETELMlyDiqrIzWepNgHpjuLaO44q0mNxkkAW3SwGrJ5VnVGGk ImKsoUy3EKiMFE/fiuG7yigOh/j17h/bwIb5DTOC3857+WAT09H0RSesfXOVh6O4MxvP xAXyp5MOjWrh37K9sErcI708sYVe9/bvAYpuMiJYmn8qFpQMgtu2pXSyXJzjD/SCrUmb KYgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514580; x=1692119380; 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=DNZTycRhT1z+dhPCDuZivfVDPfYQWNMB+t8hhmuprEQ=; b=TKcWZsNS479YIHEJBudYWtPvaIbSe6XZZp4P2+4hQmnkqPPuVSf4upMGL1YZ6GLxz+ 1OvyDr/irIq3FvQ6T/D5WCReNwIyp5wpRSPwpu4AKb9mzaWsPSEdgFZSv+Gv4kPDSyyr LKmpP+CfKrZ6+HniLgcH7i4VS00A9fR2K0GkEjbSUBHabEYZWqScrrlbVmZAxmnS7UDh BmTxdOkl2WaMXP+ZMkstY1zy4zKdlUYkeCrYaZIWRUHRiBr9vy1S2Fwlf35T+TPFqgCd 5HoI2ztuVFDEar7G6kJuLX92gjmChW1bj2hJTqyNUsuFBHnB1VN+DNUYOMfeLSP7SRp+ tPsg== X-Gm-Message-State: AOJu0YzACJ41ko9tyzQKRTBt+Z6MYgof2izir4tHDpAZzfqMNSVqOhbn xHNFQKGnACrNeEjInKmdtUpOjLsBCeu4+Q== X-Google-Smtp-Source: AGHT+IFM7AjUdHGKAl6INKYfPWV1qaPijwOLdEADoDQk3CMqq6/E/yyvu9qOfw/mbWvxva7EkFc7yg== X-Received: by 2002:a5d:45d1:0:b0:317:f4c2:a99c with SMTP id b17-20020a5d45d1000000b00317f4c2a99cmr60803wrs.32.1691514579716; Tue, 08 Aug 2023 10:09:39 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:39 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha Subject: [PATCH 01/33] Move _WANT_FREEBSD macros to include/qemu/osdep.h Date: Tue, 8 Aug 2023 08:07:43 +0200 Message-Id: <20230808060815.9001-2-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 Tue Aug 8 06:07: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: 1818765 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=T/fYG6Y4; 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 4RL0BM43Cyz1yfM for ; Wed, 9 Aug 2023 03:12:59 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDU-0001uK-Mq; Tue, 08 Aug 2023 13:09: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 1qTQDI-0001IA-Uz for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:48 -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 1qTQDH-0003DB-3J for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:44 -0400 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-317715ec496so5099855f8f.3 for ; Tue, 08 Aug 2023 10:09:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514581; x=1692119381; 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=UoDVrI+V/WeST7HHYmpphoZh47MLRk/ECXknUSo6bhk=; b=T/fYG6Y4W2Ft9oPC/PpjIiFRK3kZL89ISpu8NPdgjbK441poq9kzBZzwe1kkMoEARc V98hA+bup8UFoW+XbVmcGHCnjjZkVU2p/A78LEl2IIfWZnIuypgIt77qy3QkPzVxzBZE 3KkuCHuqNRiuefQcfuwvUOMsFQFBFtAzsmiP/siSCXSdWNxq72u8f96bAX4oEarg56/+ eWSTEh7B0kt/nGWSvgTSS2lhKbpKhuj4CcJmFqIOMbpJosoA8Lknpk2gsoi2GU3SQird FR8BujokQojut8ambPnnYeEFcQzZeJZEaKExByTxeVZR6Kvf9UkKVOPtIW2aQOsIJ3/6 7K5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514581; x=1692119381; 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=UoDVrI+V/WeST7HHYmpphoZh47MLRk/ECXknUSo6bhk=; b=XCuAnoMXirtuhHHL2nUweVigKpiJXlo39oU2TB1blKSIyanE0XTAV3td3JJXIK2L1G Vegi38n7uyGWCKBiSR7goqwjeaLHxJb15s0KAfGrwNOQaArjIXwcM1CCuw+4oa4b5+dZ BgOvMNBI8nVuXMfCNqnsnmrqDcRbZV1osOTylGTDIUozOBUXDqc08Gk1oRf1y3l8US6l y7lsu5JYu+KMBT77w4esWAjwL0RZ+gyjtZdi+RYMFSW3sKJM7sDz2aSiB2yziCguouvV zHFa36Iu4vTdGpDRcdfragFcIShACiXe2A/Fbb+tszAUTqbWsi/UusAEDxxTVDuW896C p66Q== X-Gm-Message-State: AOJu0Yxfsl4yRLY9LjwBzXmgpiB9kc56hrgcxWFkkY8kN5+S7FYWNzRv spzKaeGUD0JqyO4DUe3R402czi1rTLRmww== X-Google-Smtp-Source: AGHT+IFvn+ODGoDdIjyMoyTZjS26F/yaH4Ia2Bdkfw8IlWbRh3jszZxFCyd16SBlSkSPVvEOui/IbA== X-Received: by 2002:adf:fe04:0:b0:314:3bd7:6a0c with SMTP id n4-20020adffe04000000b003143bd76a0cmr53804wrr.33.1691514580889; Tue, 08 Aug 2023 10:09:40 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:40 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Kyle Evans , Karim Taha Subject: [PATCH 02/33] Disable clang warnings arising from bsd-user/qemu.h Date: Tue, 8 Aug 2023 08:07:44 +0200 Message-Id: <20230808060815.9001-3-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: Kyle Evans Implement PRAGMA_DISABLE_PACKED_WARNING and PRAGMA_REENABLE_PACKED_WARNING macros in bsd-user/qemu.h. Signed-off-by: Kyle Evans Signed-off-by: Karim Taha Reviewed-by: Richard Henderson --- bsd-user/qemu.h | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h index edf9602f9b..dfdfa8dd67 100644 --- a/bsd-user/qemu.h +++ b/bsd-user/qemu.h @@ -276,6 +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(). */ + +/* + * 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 + #define __put_user(x, hptr)\ ({\ int size = sizeof(*hptr);\ From patchwork Tue Aug 8 06:07: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: 1818747 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=OtSBoKL2; 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 4RL07j5Vc7z1yfM for ; Wed, 9 Aug 2023 03:10:41 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDT-0001pQ-R3; Tue, 08 Aug 2023 13:09: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 1qTQDK-0001Ip-Cz for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:50 -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 1qTQDI-0003DK-8v for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:46 -0400 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-317c1845a07so4438533f8f.2 for ; Tue, 08 Aug 2023 10:09:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514582; x=1692119382; 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=bOxU30OQoR5gvyMpClWPWHQIY25jis+H9qFBw5VwbPg=; b=OtSBoKL2dtPmLP5aei3/hLL9PflnHRdFxpG04rm1v8162CLheaEyN44zh9pe25iMKr WWhuh2mTLmdux92ilZ0sXsDgs0Z2daJnO5Fru4JGQlUImB8nDj/N85ElIxgvxfZ6tpz1 bJVpsqIaowyxMd8tfLbJgZ9hshESZ/WVj7s3EVBKhEdVCqa9+5K/qvfnVfjq5NF/N2n7 yaFSvhfJpk4IlR+4cGfzBa1Srpy5sYz8iSbLhD9wZNr3PXRIBU139ONO/caZLUfFWDz0 r42tELxQxcHH7Pve2fpjIEpmZ8FZoghBiEuDaXEDw2s5QAXD+O+oy6OXQR0ZEbOOO5SQ 6s6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514582; x=1692119382; 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=bOxU30OQoR5gvyMpClWPWHQIY25jis+H9qFBw5VwbPg=; b=KSuROwEs4hfopAieL5TtxeVx+38QRr1ad6yGuvOXiGD0o9h97Figox3wo2MFVJHdiM t80E6/OSrbFpO4YmazzY+XAo9Ui1JRszEdaMcFc6e0+tpzDnGBSJQPNwZUeIQYVuQxq1 Scid4oH1wKrdWNibTBq0ReZOCTSRd/5VKSnXYJz2FomChdgxp6ZJ49/jgoL0GOe/btq+ DE4AXefOgVp3AzZ6ykCWV+tPeSeyDqD1NSwIOjIZH3tiJN32iPf3enz4ILuHKzt5+ox3 tyLzY+yAiljlO8S2n+BswjwCUeccE9KNSfLKHURYuPIPJq9Tckuk3jf2f5lNFomZvuVq pi4A== X-Gm-Message-State: AOJu0YxcU0+Gb/Qp6Fh5w9s/qSPr4TSwqLWTIJGLo/gIDDRtDPp+A4zC G5UiYnwY8tsF0jvGIBtj1hT3I4Dc3CTs5g== X-Google-Smtp-Source: AGHT+IFyEtlnenLyPVQbPZjtEdHyXJOgflI2kXSj4LAp+h+gglAaQ4gXk60idnF9j2xQqgb2jvRntQ== X-Received: by 2002:a5d:4ec4:0:b0:316:f24b:597a with SMTP id s4-20020a5d4ec4000000b00316f24b597amr40942wrv.46.1691514581908; Tue, 08 Aug 2023 10:09:41 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:41 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha Subject: [PATCH 03/33] Update the definitions of __put_user and __get_user macros Date: Tue, 8 Aug 2023 08:07:45 +0200 Message-Id: <20230808060815.9001-4-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 dfdfa8dd67..c41ebfe937 100644 --- a/bsd-user/qemu.h +++ b/bsd-user/qemu.h @@ -307,50 +307,37 @@ static inline bool access_ok(int type, abi_ulong addr, abi_ulong size) #define PRAGMA_REENABLE_PACKED_WARNING #endif -#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 @@ -363,10 +350,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; \ @@ -377,10 +364,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 Tue Aug 8 06:07: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: 1818743 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=R77DS3bP; 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 4RL0795cmjz1yfM for ; Wed, 9 Aug 2023 03:10:13 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDT-0001my-BK; Tue, 08 Aug 2023 13:09: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 1qTQDM-0001J6-6P for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:52 -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 1qTQDJ-0003Dl-TD for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:47 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-31771a876b5so4448354f8f.3 for ; Tue, 08 Aug 2023 10:09:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514583; x=1692119383; 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=7kZtTdznoH+U4bgfI/CMYaMU7x//qT+7OQ+XS9L//to=; b=R77DS3bPvX5rFmWX2soeJqz4Ie84EovIYroe5qz/hLkKdr7pOcrfe1sWRZoSbue3Gl Fpz+G+awji88FKD70eLOJ864IpjmBJaQTmWa2Dt759tqE0qHJvrvWc8vYABLDkqvvoTp QCVOK3pTYbV0qClxoAYpMUe3Mqg/UVW1giXVHRKx3/wz0O9VIBlJqx9sCcnq4PGbDkxV +hE3Vev7fb0MytKijqv9EegCULKZbY31mv5LbR208a6BvHcdO+w3eZeg5MbanrwN3Egi gp4v9P1x7f1hA98tZLXyyGC5SB7NNvVOm/avZBsMOWiLNHKOh/ayMBDopLNEuUdXxLz9 HL/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514583; x=1692119383; 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=7kZtTdznoH+U4bgfI/CMYaMU7x//qT+7OQ+XS9L//to=; b=VXS3M8p04oPlQ7v4I3Ai+NPaTwHzE7qoglXgubLnGACXinao+mxIrr7RnSEqlJMkEG qS08kfAVogmvEV9MuDsNKfyovqcGKHKjewngvON7IaUnlW82he34GmzCqnbXIr8guo6d e851AFRLSonfLzpFs+AFbAEGHk9Xc0N2bQmPUuzNGEqBm6RSO/JxI0duwQFAq+cSNUrC IRlKuhB8a8RM30C597iqtDOw4VuSjcWAEL1h8EZAVxCRhg5GGwd0rlOwlERSjLL8vqE0 NCWYrdLVqNaBh3q9gkUnqRdfpcR9liTfwEjeDQg1xnhFQR1n8mPKNwHnxiicdAkRJmzK OC7w== X-Gm-Message-State: AOJu0YzM7C13GHuEQvh7IdP6p0d380+4Muyeg7yCvsUMlAkqtNvsx0z4 2PvPbQWtClhm9jmVMPRk5ZcKR5YPhYmxIA== X-Google-Smtp-Source: AGHT+IH4It7B/Iv0RiSZhuk+2t/EwvWixwpMbzPseaAbBa8E8+YaomdPv0CAwCyGyV6uAaQCBGXWaw== X-Received: by 2002:adf:df06:0:b0:317:5ed4:d821 with SMTP id y6-20020adfdf06000000b003175ed4d821mr38317wrl.55.1691514583058; Tue, 08 Aug 2023 10:09:43 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:42 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 04/33] Declarations of h2t and t2h conversion functions. Date: Tue, 8 Aug 2023 08:07:46 +0200 Message-Id: <20230808060815.9001-5-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: Stacey Son Declarations of functions that convert between host and target structs. Signed-off-by: Stacey Son Signed-off-by: Karim Taha --- bsd-user/freebsd/qemu-os.h | 35 +++++++++++++++++++++++++++++++++++ bsd-user/qemu.h | 1 + 2 files changed, 36 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..7ef4c55350 --- /dev/null +++ b/bsd-user/freebsd/qemu-os.h @@ -0,0 +1,35 @@ +/* + * 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; + +#endif /* QEMU_OS_H */ diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h index c41ebfe937..1344c3fce6 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 Tue Aug 8 06:07: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: 1818741 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=UWNgC0qb; 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 4RL076512mz1yfM for ; Wed, 9 Aug 2023 03:10:10 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDS-0001g4-Ie; Tue, 08 Aug 2023 13:09: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 1qTQDN-0001JP-4b for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:52 -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 1qTQDK-0003EA-Q2 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:48 -0400 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-3110ab7110aso5151331f8f.3 for ; Tue, 08 Aug 2023 10:09:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514584; x=1692119384; 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=dUXdjqhzsI3nw2PqVOgdvYv9H8Cx5wm1FMu37In2c7U=; b=UWNgC0qbGK6gLrmprRL+bndkm/Pd129MAmO70Mw3gpg/MXHstZDoS/5qAPaFltr//Z /TKLmcuekInpk5c0+ZKQ5CVirfPW042vU8mAI0XVfiUGkPnMQ8jBmqM/iXfSnA37yfVT 9F+IftmAt2MCjl0rxJ+RRa+yeZkdjrXOc1iTO2KwDfLrHG71vkf9jiBYdIjurNaHqbwI ZN+uEIs+49pINKOzQUSPa43idPGJcIsRq1ul7IIx4AF5X3j/Mc5Q1brapEK7dlAUEHjy MZCNWCurg9DYn+tnFocQiaw4dDt/wMXEbt6cTioJQjqiWzjGO6xgBeAVcF/DgzDfG7pR lZzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514584; x=1692119384; 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=dUXdjqhzsI3nw2PqVOgdvYv9H8Cx5wm1FMu37In2c7U=; b=QBbCmmwEP5su/XGre3qxXFW9pDgMtMLUftM/rPUWK9t9ANRzZwdXKrquX+SEfF/FjQ 0+WgiYcbLrp6PerbWyA+6YAelN4+rps/Fk/YsbP/je2J8OqnxuPOFI0SO3fQCCQQtsDp 12EBrtxFaRe0rda3oo0V+2tq/MaHX5Zrpk88OkJ6d7I6N7QbLUpQygQbTgr9cAmBvsRD FHoCvi2PlKXtcxV+hxm1pWxv+gcP+Z2EQGRbPXnPt1BldaRbUA6/7PpDqgMPdX0UocOm EkYBL+B43QwHB96r/zbwJkzozaINi7eNehT/rPVkYg68zr0SHz7FW4OFaNBuWsXhyw96 tcfQ== X-Gm-Message-State: AOJu0YyW1wMW0UiAxyjeTrmappa+RGQfEboN+nCfg6tfCi+Cv0Z4EXou Y01EX4Ud8D4Wpl3215C/yWq0YYjCSv0lMQ== X-Google-Smtp-Source: AGHT+IFqGpLGMHRia1wdTUcu0cf9oxtpbOv2hA9mKRXppptpPQKOjsctNfp1FhQ7nxpIDXKA7v3EIA== X-Received: by 2002:a5d:668d:0:b0:314:1aed:8f5f with SMTP id l13-20020a5d668d000000b003141aed8f5fmr51491wru.34.1691514584150; Tue, 08 Aug 2023 10:09:44 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:43 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Karim Taha Subject: [PATCH 05/33] Forward declare functions defined in os-stat.c Date: Tue, 8 Aug 2023 08:07:47 +0200 Message-Id: <20230808060815.9001-6-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: Michal Meloun Add to bsd-user/freebsd/qemu-os.h the forward declarations of conversion functions related to stat syscalls. Signed-off-by: Michal Meloun Signed-off-by: Karim Taha --- bsd-user/freebsd/qemu-os.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/bsd-user/freebsd/qemu-os.h b/bsd-user/freebsd/qemu-os.h index 7ef4c55350..12adc50928 100644 --- a/bsd-user/freebsd/qemu-os.h +++ b/bsd-user/freebsd/qemu-os.h @@ -32,4 +32,19 @@ 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 */ From patchwork Tue Aug 8 06:07: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: 1818739 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=OkvclSy3; 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 4RL0733HYBz1yfM for ; Wed, 9 Aug 2023 03:10:07 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDU-0001v0-RL; Tue, 08 Aug 2023 13:09: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 1qTQDO-0001Jc-1z for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:52 -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 1qTQDL-0003EI-65 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:49 -0400 Received: by mail-wr1-x42e.google.com with SMTP id ffacd0b85a97d-317716a4622so4653382f8f.1 for ; Tue, 08 Aug 2023 10:09:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514585; x=1692119385; 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=2nKvcztbP/6xm29u8gk6LRQW/5mPeFJ/olFfoKE/TSg=; b=OkvclSy3esekZGOUvUovaRzmXkiWjrn30J+RrDVEasuzbfUSuX7BJW2fkI3eWfKmqk HOU4hIzyOtBMu6ImirK4mnGIpZPxoqvKpz8ZJz2eLEuKEBxNhJz//7MesbS0mIyNwsfI LXYPaTXX4UtsBt02VC3b8sOYAxJ3nHQ9awpxxE1edhTF0AG0fTn2xTnDjjynIkDXvA6v xjKJRoittINgDSMOlT+Rj1fS0TGpROsj7b3AFFQyujQ/H3t5BW0pXSs0mYbRMTwqkj3P +ap4CGssrMSs07KlDxA1Ng5Yp/xOQvu4JjCQL/c7VlHrYjuiEFpxIybQj4NzPDugP8Sr y8Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514585; x=1692119385; 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=2nKvcztbP/6xm29u8gk6LRQW/5mPeFJ/olFfoKE/TSg=; b=Sjr+am9dKdsN+6e5kBee5mqi2H2qBnh7lnpM6UqToroYyo3RRJan9lfE/5LOO0X9eL kt35vp1p6pFsBoWFCnG3bQXmKpCkFFCGgQdLwVpRgj4fDYeXu3ADpwMy862dSPcBeeHp Xi/AIX5IkadPBNNePmoeqcgRyGncn47CQITPRfBgKsXUdZh5ot9sIcvhz6V10AKUqoYu 9C8docuSgcqRqeykwEnUUkLkmHgNElZs36FfsFFrL7UhSGD7pAlmj2AFFjWS/hc5+o0m sdna3tjtv5Uets/d6MbvOWJTOlvSZ7QsP/Gbbc6BnG4mWoFdBJi3Yva9TwTLEFzY9HKm NhIg== X-Gm-Message-State: AOJu0Yw5mXNq60xBT/KuiyplEp/MJh5jA6FHYpok5omiiZu2USu8Sz7Q MV0nPZzDr2WjqH4Pce42XRdTCQl/A0okzg== X-Google-Smtp-Source: AGHT+IFSbM9fCFmHFeodvUNdV7HeWq+0R93/APawpiIgFPe9zvxoB8LY1dZxxAFrhCYy3Tua4Qc9Sg== X-Received: by 2002:adf:f6cf:0:b0:317:650e:9030 with SMTP id y15-20020adff6cf000000b00317650e9030mr48042wrp.57.1691514585261; Tue, 08 Aug 2023 10:09:45 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:44 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 06/33] Add struct target_freebsd11_stat to bsd-user/syscall_defs Date: Tue, 8 Aug 2023 08:07:48 +0200 Message-Id: <20230808060815.9001-7-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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..5ef76ffa52 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 Tue Aug 8 06:07: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: 1818760 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=WnU41zyH; 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 4RL09D5WWsz1yfM for ; Wed, 9 Aug 2023 03:12:00 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDU-0001qZ-30; Tue, 08 Aug 2023 13:09: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 1qTQDO-0001Jb-1t for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:52 -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 1qTQDM-0003EZ-58 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:49 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-3fe426b86a8so49231255e9.3 for ; Tue, 08 Aug 2023 10:09:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514586; x=1692119386; 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=8c0UiTP0CXlpBRG3LiEhnTkrlyEnfFw6XtkO2ZFdDvw=; b=WnU41zyHu3b/gHPxXlRfkN3LlOxxtJ+lVPGCfk42Ud+4GWuIW7emWqdlzy6Lzc0tF6 ovun13ZGYpMyDmAP9L5M0JGFusu04qmFxjLnkaR+7NqZHIIeUINJ27dgKGyVfKeM/AG6 a/1m8o0Z1CMNYppaLr+sPtN3u4+qY6GmY8W0DvtUBGDZUtptXJOEJcoH8rQUsQtYMZOr 5uW3IV1KCM//cWzxb99UWFhk+sLELsVM58rpJvjPAsW/37MhItKSyYzduXs9CedFE3OD l/ssDdEtfJVZ7das8N+JvTTZBfCuH/VwefKluIzKZZ6RQxjiiPqYmyOhJwe3cleYcVr4 LeMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514586; x=1692119386; 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=8c0UiTP0CXlpBRG3LiEhnTkrlyEnfFw6XtkO2ZFdDvw=; b=HCf2bRZivjXqpYnze5XjKSjDwArIm1pr2Y2VfCzgL46hO5YhQPVJRx3OMzUPAteXG2 XAkSL3VCrAoRj/R2idvTdLBGZ/UGnrtKhoSt5Q6XmkgV0Q/sD1KbR74/x/2dZIATYgt9 D8FrXn/U0OG3hANe6zSb2HUscrlGRsDELovK+eaaJhZmTXoNkttcM+FR9w2pWtVs/Tg8 nyIPK7a0cgPkenUZ8XQK+fc2xeGL73C0wHv9E7JBKS098olq1TonZ4b9NdHSAnEUHhQT MaGKyCSzpT52HMH/bldOu7G5K4NQEDE1GBEObV+ueMeCVIEI4wm0lmCHzP0SAqdOOHlb y9CA== X-Gm-Message-State: AOJu0Yx9xi8Q+6JNWuSgh2+E7jhG4ijjFHx5pivp4KA90JulaSAtQtgG 8GXI+ZHLspJd7msBFMURqDF1s3+u3YtP8Q== X-Google-Smtp-Source: AGHT+IGjpbTHwu+pFQTgTHViAd8wtQTmA+9t5NjhTIpuLa+ZSJelMOSga41h+TaPT0zh3TgVzVqOCA== X-Received: by 2002:a5d:684a:0:b0:317:6530:a4d3 with SMTP id o10-20020a5d684a000000b003176530a4d3mr57993wrw.26.1691514586399; Tue, 08 Aug 2023 10:09:46 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:46 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Karim Taha Subject: [PATCH 07/33] Add struct target_stat to bsd-user/syscall_defs.h Date: Tue, 8 Aug 2023 08:07:49 +0200 Message-Id: <20230808060815.9001-8-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 5ef76ffa52..e796e7e13d 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 Tue Aug 8 06:07: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: 1818744 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=CApZy3HP; 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 4RL07H1Lhbz1yfM for ; Wed, 9 Aug 2023 03:10:19 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDV-0001x8-Ic; Tue, 08 Aug 2023 13:09: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 1qTQDP-0001Mc-Cm for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:52 -0400 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qTQDN-0003Er-82 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:51 -0400 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-3fe12820bffso50231215e9.3 for ; Tue, 08 Aug 2023 10:09:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514587; x=1692119387; 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=Jg3raXr25SZU0NJZhlFSeKjZ1CpRADnItniEeYv9fD8=; b=CApZy3HPlivyRfmg2hg/xXVW284d2GAviToveXQ+iTIAzZbrdFV8ZTEDWY8DAerQUu l6KFdQEq5ZWsnP8fGVFc4eaf2+6mMvpzegMrYtI2On/rbuNHgHH22VzjPj9lkIMBAz1x bPCBZ8dauuwhQCcJKqalANxi66OBtg5z5SVHQjAD0GuCGmCcrGXqnTfE2iuvwU5PWJqT hoxC0MrRh7L5h3Yv0TOztfBcoQjUJyJfC7T3VuW3e8zw3/8kLJpWL3wlT1/IZ6X+j2vv 46UXvIyWLT4OaIjHsUTi6m0zsB5Gl43IKIV31tZQpSrDgTkn7M+rfBvn3xsXQWUENtAg cfog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514587; x=1692119387; 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=Jg3raXr25SZU0NJZhlFSeKjZ1CpRADnItniEeYv9fD8=; b=hiAJWsHhzYft4Qy/eef5L+nRl2fM2QfT4hB+RTJKiyP949S4xgZQ11QnCqP+vWp1FC P7dyDT0RF/kCCbhRnUcPp+zrlMFEjw7oQR1VBWcF0aIFmLiB9mzJLkpnyEYOMdm0B6Ld Nrguq2HQk/2HNltvg1E9bHoSJK4oj4skYrtjSxA8YBSYqbSK7cp/geE7QEHDNjYsrb7s GZ4fnmxhe370mFjd+G+vuZO+Ed8Z/Kua/aWizteE2njtFavSaEatUtVM4ttT6hDIuF9t W4jeNuJGMRmdILjygD1VKym+btZUlPG3BX54uELdBQ8xlAHzMdgWXfJYff57XxwPPxo2 kk7A== X-Gm-Message-State: AOJu0YwO6vL0/oxTIuwpnMqFi1/hc1cQ7CN775rY3F2jWwe7Ut3TMkX3 a9664pcdt53pajoEOtdneTFsQYZtgwWgbA== X-Google-Smtp-Source: AGHT+IH8GqqHhv3QB6aSJmzNBp10pXpv/ypWrb+qVvkrbhf1gXF97W9MF3ZMQXaBQPoc+VRJQfp38A== X-Received: by 2002:a5d:448a:0:b0:30e:5bd0:21a2 with SMTP id j10-20020a5d448a000000b0030e5bd021a2mr35809wrq.52.1691514587537; Tue, 08 Aug 2023 10:09:47 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:47 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 08/33] Add structs target_freebsd11_nstat and target_freebsd11_statfs to bsd-user/syscall_defs.h Date: Tue, 8 Aug 2023 08:07:50 +0200 Message-Id: <20230808060815.9001-9-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x334.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Signed-off-by: Stacey Son Signed-off-by: Karim Taha --- bsd-user/syscall_defs.h | 65 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h index e796e7e13d..06be8244de 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -250,6 +250,71 @@ 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 */ + /* __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; + +/* + * 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 Tue Aug 8 06:07: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: 1818762 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=IcoMAE+T; 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 4RL0BB0JVcz1yfh for ; Wed, 9 Aug 2023 03:12:50 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDW-0001yt-83; Tue, 08 Aug 2023 13:09:58 -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 1qTQDQ-0001O9-Ey for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:52 -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 1qTQDO-0003F7-9k for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:52 -0400 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-3fe2ba3e260so56671365e9.2 for ; Tue, 08 Aug 2023 10:09:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514588; x=1692119388; 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=tOzOH1LlLca377vY/qlVnv9NB+0PQt8L152jXs/ETl8=; b=IcoMAE+TUW1n2glAvNsp+xgNriDyKHygCA+pb7QozZ0nEDhbyLD2R+7FOWdlMCGMqM hWU5IzTJLfSJd8BC2JN8+7DZZM2mhCNz4l+gJ+fATB42g5zlTn4ZLHfio7LrLB9v9zlg WMH+sTf05ly0NUdUsctuyHCZcEE3tRX+uUcBvRoT974waRgCtt06hEBVrrGvx8lo9cxO lKgArOWEV16+gEUhw8jkLWrR4kZ3yZWE842/m4ZYl1TvGzncO1DVikVYsASqAYQNioeg 4B+5o3IXIHAb+VehxPw2w3u9TEDXJC2XtzBUtTg6NV8sxHT0xnKJee6csfQm3esvp/ju GFzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514588; x=1692119388; 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=tOzOH1LlLca377vY/qlVnv9NB+0PQt8L152jXs/ETl8=; b=A6XsgtA0rP8S9ywwJcLpO/8jrxq4pccpz1ihDhx3eS5Sw6O9WQQF+AXsKTUySsmYzd xuDg3nMF9885997z8z30gFaV21hI41GQUCqHZnxeCQYm0sQN0+MeZZxRGpave8EuaO3m 5u8vAXMEZ8keJN1WQ/39T2aUOUdN1Of20opdBH1oL/XwscQT5RRjze0r2Mk5uLeIcw8a 8JicSUM1taw2GsL8RygtJ8KW1PJIVQTTntJoocUgPyfyEl2cgHNY1NvksQv3oK2xO/oW 8EcieVDIsXwYs9hytXyS0PDdVmkmVrdpOJcV76b6tJOa2+CqNg73Ef3BLn8bgjCAhbS0 5mUQ== X-Gm-Message-State: AOJu0YzJ42OOCZ/UKSnX40RIY0UibrloeBB3ilQRdZm5p5kIvLIYf92x 7HBG6wryIasa/yA2sdsaQWmJxt1/wkEkAA== X-Google-Smtp-Source: AGHT+IF2WwwEpyoyb9/W8ty19pDaIbmxRMnVUO6PgOxQ0KD5k/FP77qiBTDCwK+xwkJJeh2impUiSg== X-Received: by 2002:a5d:4e07:0:b0:317:62c3:13a7 with SMTP id p7-20020a5d4e07000000b0031762c313a7mr69356wrt.19.1691514588656; Tue, 08 Aug 2023 10:09:48 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:48 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Karim Taha Subject: [PATCH 09/33] Add struct target_statfs to bsd-user/syscall_defs.h Date: Tue, 8 Aug 2023 08:07:51 +0200 Message-Id: <20230808060815.9001-10-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 06be8244de..ab59d00a47 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -315,6 +315,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 Tue Aug 8 06:07: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: 1818768 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=pmaTVW7R; 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 4RL0By6z1Cz1yfM for ; Wed, 9 Aug 2023 03:13:30 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDV-0001xM-Jf; Tue, 08 Aug 2023 13:09: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 1qTQDR-0001R9-9N for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:53 -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 1qTQDP-0003FR-GB for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:52 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-3178dd81ac4so4893849f8f.3 for ; Tue, 08 Aug 2023 10:09:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514590; x=1692119390; 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=JgfqNpuxkggtyaOumlpuSDtILW5+5vEXskfFi5ncc6E=; b=pmaTVW7RTNPuI+5CcjlMX3+E9mBXvp0r/NsC1dwlozGKTODwnLtvXjFAThUMFKNhjK vCNHO9UJdhrTimHb7xa0397hcJ8hI3xR0H1vlHLS8wz/qa9ybWeknbBMIS72acIWl6f5 v+kqCFSvVd+77er/Hgbfl2Be5Ju/a020lAWLaSQto+VvxNjJtX7G5OWuE7aSXEolH+pB QjLHPd+dDm2n8kHJ1rfyDmCQW+NlTci4j22FRBGgF2quSRM/EYP0Iygd2hH3oeJNrUr1 KoaO2wdTLEOodTv+urp3OnL8sn+w38tVPzOl+f5cz8vgElwRX+E9rWRZ1ii2tTACU6ez AzFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514590; x=1692119390; 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=JgfqNpuxkggtyaOumlpuSDtILW5+5vEXskfFi5ncc6E=; b=SPxzMn1utBxU9ijoFlfDPID53J4Vv+9gztRTp8ArXbjEnO+w7ivqUjfpnLiiFfextA IoNKSXKL6fU/9EaYUafbEvlIwZWia5Mj0aSYSBS+/x0USBh1s28Fpa6GFyDCeO8zpoeY pE51W9n8qg6y+nDsETF4cBxtyl4eOUnVGJKfAKaMwijBtqO4/QqkFIZGAJIAy+K9qYPh uEhItS2UbxzDwH68dkZlOKLH2Txt+rew5dMjM9HCesyEVgGTIlBRh7ualLamDFT8cYWu vRPjKxJ6bkE4OeDwWW8QrCFyicYfMcWHMVF7lcAcmwvwy6x1Wd1cdZ84c5zx2lPpgosJ eB3Q== X-Gm-Message-State: AOJu0YxLg6EMvGXKeZYp6QI7M18tQr3ztFDtmjIZ/eDjXD8UQ0KxXgIy JvI/JSynMalpPN+v4RTJgov7VGdJwBPapw== X-Google-Smtp-Source: AGHT+IEl0YZa9tdPLWXRBi5h2x2XNhUKpWjFPl0QA88yD+w0PQBmV9jCqcfRj7O7g3TjO43P5wBoqg== X-Received: by 2002:a5d:4a0c:0:b0:314:2f5b:2ce with SMTP id m12-20020a5d4a0c000000b003142f5b02cemr102668wrq.12.1691514589773; Tue, 08 Aug 2023 10:09:49 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:49 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 10/33] Add struct target_freebsd_fhandle and fcntl flags to bsd-user/syscall_defs.h Date: Tue, 8 Aug 2023 08:07:52 +0200 Message-Id: <20230808060815.9001-11-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 ab59d00a47..608731f0ac 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -340,6 +340,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 { + u_short fid_len; /* len of data in bytes */ + u_short 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 Tue Aug 8 06:07: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: 1818745 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=DCmEYEO5; 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 4RL07H4d4Sz1yfh for ; Wed, 9 Aug 2023 03:10:19 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDU-0001us-QS; Tue, 08 Aug 2023 13:09: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 1qTQDS-0001aA-01 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:54 -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 1qTQDQ-0003Fv-DW for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:53 -0400 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-3175f17a7baso4457814f8f.0 for ; Tue, 08 Aug 2023 10:09:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514591; x=1692119391; 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=FAohi5/MwQLdUMXVp1G5/nl/7o/hanadDOctFfkZRfw=; b=DCmEYEO5jGPqkM6d13KJO227lSiQokys/lr04CeUSyBab+B2ShaNQ+tiH1h5xG1aeb 3EQK+kF9qJkJc3aQ6KxyJFPQr0MKU511PRO+g4AypKaSx7ayjpmxZ3qpUvCQOQSPQlEw 60nfF4w+T1L86SEImDUPEoeeyQRtYgGv7+FIApq3Weg5mwixSVUFgd7b4NDBsgNRFKlP EJzCKoUdmGOYx2hPeVcHl3TfWb7pzSNQotL3DVobCEvPo3pZPYDAw6ApgKpJOzqU+Uw0 0pw06fL3ZUVSENXBfsMuTFmtdYz0T8ejei6CkxoFZY8uPWREz+VeRJBVuO2M9d3DAvcU RERw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514591; x=1692119391; 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=FAohi5/MwQLdUMXVp1G5/nl/7o/hanadDOctFfkZRfw=; b=T5K5hUdnhaQhCEqYV6PuGqLb2E1ijLxGGLVOCoSM2jhRSKmEboLxQc5WLuF45WfURI kUq8TZxAOLJLxzBSXWxK4Wjn9HZSRI/yi36tk68E11pCSz3/TDZhT+EBL29xib/lhzvR bGJVBs6S/JAOD4jGp8A9qWyU5No3uPd6dlpcaWC39NSEbcdyE5+ruFty6Fvc9XwbZxXm /KzSIxQkggBURhC8VK87gbAUHojp7WTlAZLuKEkVFk7picNzx76lne5hypSe1ImWpZMZ bOM1DR5U6r5AR/2IG0daaK253sJq2Ni42uj8IdWH900VLoA1cmXn0cDgmnWrAR1YERwo OkZg== X-Gm-Message-State: AOJu0YzYFm8Y2Q5HzHZdsjaQ+3CBdjPYoambL+Xwnw5IC32q0FBlshwP SbJX21nIULtZz1VlEuBCgNywOze33eO3Gw== X-Google-Smtp-Source: AGHT+IHXpzVaQ6xs1wr9AF6VS3JY3yx7HoeKCS3kavyTSwEgW0WJQzgX6aQtHpKQChknCIY51VqXyQ== X-Received: by 2002:adf:f88e:0:b0:317:df4f:4b97 with SMTP id u14-20020adff88e000000b00317df4f4b97mr52920wrp.7.1691514590836; Tue, 08 Aug 2023 10:09:50 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:50 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Kyle Evans , Karim Taha Subject: [PATCH 11/33] Define safe_fcntl macro in bsd-user/syscall_defs.h Date: Tue, 8 Aug 2023 08:07:53 +0200 Message-Id: <20230808060815.9001-12-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 608731f0ac..52ebadbe2c 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -438,6 +438,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 Tue Aug 8 06:07: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: 1818763 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=V6OZgUvX; 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 4RL0BB0JVHz1yfM for ; Wed, 9 Aug 2023 03:12:50 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDW-0001z9-Av; Tue, 08 Aug 2023 13:09:58 -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 1qTQDT-0001oJ-Hm for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:55 -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 1qTQDS-0003GS-34 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:55 -0400 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-313e742a787so34679f8f.1 for ; Tue, 08 Aug 2023 10:09:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514592; x=1692119392; 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=5bYRjSj2J130dLImDFJiF4YPlkBi+KBGFOgVgJZX32M=; b=V6OZgUvXfAPCNORzMUXxIGYZNDUGGL4SWJIXbZO9nOZBjSjiU2z2dy2hS6RJZC4Of3 JqMpfEEVa1y+aQVmWrYBtFGvnHF0cFwLmb7YvqyzRW+ubjCm+S2B5lVERRyQXlvu1Yur N1R5oIEn1XTP49HfQo5TjHMY/fWO6jCFtUK3N4o5zPZQamRmQqBuMkyiDldz1eckYLsR cqI3JSOQodBbjfg+vREhCxWIuvMiU6zjooOrAwOz2KTMC3J6ZJJDwSSwewJucvPJd1vA XPtgrtqquipPPsaSbzkItGMBsyNm43FbeqLwkV03Pai/mpWpb6MoGp7RYXKDkstf5iah rEoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514592; x=1692119392; 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=5bYRjSj2J130dLImDFJiF4YPlkBi+KBGFOgVgJZX32M=; b=LNumLFn01NUilSeMaf5X4/jX4HiTFjgZ5coMD+8pgSpGawDt/NqExCT18PqLo8NAH8 uD1A2PdakeBSK1qDuTyr4b9hw1KZUPQHeWEFSejuK5HAW+iBV6IN5fdYEKl54ukLDUME cLfDPy7F1sIjdiVDPXw4defG3RrJJhSQPxu7SCT2hVWd2IJIclXShttnsYZo9eORTrk2 U3D1ZRmWNiQza9hqBTHAhtnnOI0rhfakUN8z21nRRduuNDpN00Ws9czJ3vEN/aLa6nBU 9HPysFHqWhsoWXjketfQz5ZC/Kcvo/lf6twXnu9iIlx6raEdY0SXbtf4GybVWGpUCdtG fRcw== X-Gm-Message-State: AOJu0Yyn5kuyUetIuDKz85od6j/Bd63X0a+Oe9JGa1IfFp+qE6CNUWd1 U4TlsOKKQQNOxXpE7dySYBwjGz5/BQ5w0g== X-Google-Smtp-Source: AGHT+IEK5lAOXCewFXBXrn6hYWnb0p78ocia/6yCa85NmKxxTpxqBrsV6e4MTa66H5Ex5nEFVBKq/A== X-Received: by 2002:a5d:63c2:0:b0:317:e9d7:9387 with SMTP id c2-20020a5d63c2000000b00317e9d79387mr339108wrw.25.1691514591932; Tue, 08 Aug 2023 10:09:51 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:51 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha Subject: [PATCH 12/33] Rename target_freebsd_time_t to target_time_t Date: Tue, 8 Aug 2023 08:07:54 +0200 Message-Id: <20230808060815.9001-13-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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 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 52ebadbe2c..b1d753e9d8 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 Tue Aug 8 06:07: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: 1818751 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=MrFV9kwd; 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 4RL07v2T1pz1yfh for ; Wed, 9 Aug 2023 03:10:51 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDX-00023Y-SC; Tue, 08 Aug 2023 13:09:59 -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 1qTQDV-0001wA-61 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:57 -0400 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qTQDT-0003HD-8k for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:56 -0400 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-3fe4b45a336so34063425e9.1 for ; Tue, 08 Aug 2023 10:09:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514593; x=1692119393; 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=zWdOTFt4f+afS8Gf1cP+Ss1h3B7hDQKDrDxkrbbQ9wY=; b=MrFV9kwdvTKcDVX8X9Vn9ETGfK8H5k8saMciuDWKEcdNwokAzw6zp5cF1Mv/rflU/N ej1E0W3+C3Nfey7IDsgqzIstw4pohIWJ9YMrhy+zpbxcYdqYz6T62zkxnkPxj1zKNYn5 eJFxCH6jOaAD2UD7CpcMVEFM+dv2JnZnyyx0qGVgDwqw2GfX3kVMXBwsqryXArkFHGiE lpOjqkce7jMXR2JvJgIsI4M3342DbnUnMdhwaBoAJ+JZnBVsdLVLgLEbENdrOWt7JM7A D3+qKx5aRQTmZzMbQ8ftxGXST9UksretY65DuiXAygi6w6gqXzXxTbyqpRjn9SKnlr23 blew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514593; x=1692119393; 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=zWdOTFt4f+afS8Gf1cP+Ss1h3B7hDQKDrDxkrbbQ9wY=; b=CainPdMDkGHWZWwd5DgA5FrScbJeCAhZErwV9PWMeRz71wrnEBws10o3ZAbV/Qbe7q N/ZyYEkSoQtNBgJVncfSfWjDxsuq4Mh9I3OOpSeXEBkiXaDRERxMcgaN1/MaDYeA95wK yyeqhevOg6cYzM8q68V4lx3vI50s+MOE+9gxBogX9zf+liE85hsaY0VXwauMAK0BkmUH /S0kaUpjWdzhPOCl9If957knltQuPl5SsjICkQLiGLxAry6cYXCXAuLWJTZfYJoL0yhP W2bbWgYMN+Lu8/e8HVFL3lI7ZHQV73eSYGXsfPDSq3zWV5VTAbrsLkJhy/Nc7jQHHTcu LSCA== X-Gm-Message-State: AOJu0YzNBjYSqfwcM2A/dP+4005uo6K5do5YvARmXtKU0pSapdQE9VwE DU1H14mky111B9Q0MueZYOWqMkApfgrBWA== X-Google-Smtp-Source: AGHT+IFQ6WhttzaDWXRjOKrrNbS2CRthF/WLMEIpiZfCAVbHmRetY5V84aGlcgIgmtKho8/Oj5+pRg== X-Received: by 2002:a5d:6050:0:b0:317:9537:d746 with SMTP id j16-20020a5d6050000000b003179537d746mr62780wrt.2.1691514593144; Tue, 08 Aug 2023 10:09:53 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:52 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 13/33] Implement host-target convertion functions Date: Tue, 8 Aug 2023 08:07:55 +0200 Message-Id: <20230808060815.9001-14-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::329; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x329.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the stat converstion 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 Tue Aug 8 06:07: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: 1818752 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=MMjHlLYS; 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 4RL0800Q03z1yfh for ; Wed, 9 Aug 2023 03:10:56 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDX-00020C-1g; Tue, 08 Aug 2023 13:09:59 -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 1qTQDV-0001xH-I5 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:57 -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 1qTQDT-0003IF-UU for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:57 -0400 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-3177f520802so30700f8f.1 for ; Tue, 08 Aug 2023 10:09:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514594; x=1692119394; 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=Li5njnj5rgHVOwbkk/WAU1RkU+KgYUBfADRPNNiXvFM=; b=MMjHlLYSdKpVZDvh/4uVIYT3a6ty5r+0kCULETjZWtdZVFZyyLvuza6IkvJ8ro83/m cUX9tLGEoLjOhhW7MKlzWGogkmbYgX/qD/89M2E4LkBqLGL7a1HGcJF2kO0zfTFPNcRl jSBr/Sh5tPVgRZnWZC0oPygNrUP4EsPDOT9Dg65AmGgxZqe9Q7PA8KViNkRInik+L+5Z 5L91Romobs9JTrpkfA8sicWnE3/36Wgs0U35OXzFr/pm0nbvramvR4PKgJuxl/RICWPf BTJeFlQ43h2dHo/PbnDLxLTXXs5HACH7ctpCn5ulx5QxCdWK7c3AUR4Mdhssj0/tWDMV lZUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514594; x=1692119394; 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=Li5njnj5rgHVOwbkk/WAU1RkU+KgYUBfADRPNNiXvFM=; b=PPCEwkwUNH5lwaD5UgW2mwIKgJcw84VC6RjNWQQyTuKU0Upajq1s9g+Hlpk+7Wq13y n01mAzLJJHf0+UKUnqJXSYmbUOSgRGfILlwiDRapKSCKPQIpPwUgrAkUVo1p7TTOrI8b ndAzQQOi6Uq0wjJJj8XZOLi6HY1X8e1pqJB+yJwfRwceIBuKoBXO8R0ZkzWRpCtLuVRL ajTFnJM4c86fAZHEAZw5ddf5gpCqpFQGVkX+aFoGwZ9zwtmrV+NWBLH9B0lLiMTbB/y+ l5TFZDH8KgOW5NQueRtEWx9eC+7pk7k23a6TcdZndoAla23TRArtU6YFePWDF4B5ggr7 t9MA== X-Gm-Message-State: AOJu0Yxr2wL744Fg/J4Z50QiWFV5XNBXEh2gWsCYp6Zs7u9+Zdp3WA15 c65lprls5oFuh+EUMF9a+qW1efT7h0l/pQ== X-Google-Smtp-Source: AGHT+IFqEV3KNtCpj/J7gHgMCWsVtPx3gfMzIVoPiGF/y9NOrJZpGWrzn+o790blZ41o0R0LWahqYg== X-Received: by 2002:a5d:518e:0:b0:317:6579:2b9f with SMTP id k14-20020a5d518e000000b0031765792b9fmr297067wrv.30.1691514594302; Tue, 08 Aug 2023 10:09:54 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:53 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 14/33] Implement host-target convertion functions Date: Tue, 8 Aug 2023 08:07:56 +0200 Message-Id: <20230808060815.9001-15-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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 converstion 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 Tue Aug 8 06:07: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: 1818749 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=GbK0Nriw; 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 4RL07p56Bcz1yfM for ; Wed, 9 Aug 2023 03:10:46 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDY-00024h-JS; Tue, 08 Aug 2023 13:10:00 -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 1qTQDW-000208-UL for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:58 -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 1qTQDV-0003JN-Co for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:58 -0400 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-31759e6a4a1so4429053f8f.3 for ; Tue, 08 Aug 2023 10:09:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514595; x=1692119395; 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=S6FMQxw39lF+gWqvJhrkgTTftm0yHSo/M+RjL0FvL48=; b=GbK0NriwK3ktC1k5P24IWif9dYt0SFk52wrNSYj21DHOQpCm+vHsi4f7LBFDLT8Bxd UtvHJZOBvxXZk+vS7HC5sgkDmNJSiHbLNfp3X5vzfldBIDLE1iTiZ1TSdG0DO3mYcojD y4Ivphdw4jgz95j7DdPLiIjYNjtSsaxUTgvIa3NgxdoFz8HNTH0Ij8golYOR7FzOWpAo DB9nPRHux/0cJokLL+z+AYx19RJSWQq/buncmLA5MFDg5l5acLDlN+wmInE3GraweoL6 72tZRgeeYtxNHt383NLByS9QVksBIdx+wbL2cr5luX30Ql1zO1gVoQTQ01Ru0md1yxIU cvlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514595; x=1692119395; 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=S6FMQxw39lF+gWqvJhrkgTTftm0yHSo/M+RjL0FvL48=; b=BZKa5L8aSNDBdg0pP8f+wv5CYhfXIp9LLB+slaK3EwaUe+aL+vW6jC72VphvMe0BL/ 6urR5Bpm5xoDMHbfivIS5fhJruah2g6CPpOyhadhiDG+d+NeulSTl2vX55DT0sfSkdsd 9eQJJAEsvwNP6fh8spUFy8Gnp+QlLKKxn5gqc87Eat1U63+UNVDjLb/gwpDPlATh5jsJ AHdVSX/Z0yllTTZzMGNTRQ5HX2Zw+SlHgoDo7lbjuKYNhcrPDLR2DAx7DLQtMfUPjEv5 1qyeEa1VCvP6hMyx2LW7P1koz8Jngfhq0v87PFlSsOQXFXuqCTjLcT0IEnC+HfmZyH66 CoSw== X-Gm-Message-State: AOJu0Yyazolpu0qn1W7wecFVEs8BBzT/TjX+4XTXcKgh0SPBW6fXT88t Kc/MRQmMB6222ZCI0KZgA+WMqQkoE54PJA== X-Google-Smtp-Source: AGHT+IHHq8MR7f3fnibOqiZr5j5Wg07THLNEeTH5CPNqoOXmpf1nemvE3KBNWjBrMxD/9UjSlppz+Q== X-Received: by 2002:adf:eccc:0:b0:314:11fe:c72e with SMTP id s12-20020adfeccc000000b0031411fec72emr62925wro.46.1691514595472; Tue, 08 Aug 2023 10:09:55 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:55 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 15/33] Implement host-target convertion functions Date: Tue, 8 Aug 2023 08:07:57 +0200 Message-Id: <20230808060815.9001-16-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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 converstion 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 Tue Aug 8 06:07: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: 1818764 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=RGQ0QYqG; 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 4RL0BJ3rlkz1yfM for ; Wed, 9 Aug 2023 03:12:56 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDZ-00027a-LN; Tue, 08 Aug 2023 13:10:01 -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 1qTQDY-000247-61 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:00 -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 1qTQDW-0003LD-Ef for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:09:59 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-317716a4622so4653497f8f.1 for ; Tue, 08 Aug 2023 10:09:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514597; x=1692119397; 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=Y7aUKmSfj9WhcL+W2nPwX0/ITlfa9OEYC/UkmBUVyTQ=; b=RGQ0QYqGWzLlz+LNsMVQnenQ9AYF6AVLoFdLu0S8G8L5jKM+arQaC4rGZdlj6DoOat dJhcmbxSIkVODFUZ83sG5zbcAB714DNGLWIH3SdWm8RAEm/nPU8LSAk5fp8Od+DYxuwY z+MvmJbxLjXXLP3Siq9Nai9mov10z2Da8EO1FrDaaHNCquQL/1U7/pmbEBevy9cGoQbi fZYrkE/BHqIciiY4kiavWI9xCDKzfUJqDVVskjWPfAv4j+DjtT1vStRN/4NMCnOa/QxV JF76BYiqt+80gGB7rSg1xw+EnrBJEqv2iTOwmyblAWhoT85vylwVX9R5a24pKrv8cu6D Na+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514597; x=1692119397; 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=Y7aUKmSfj9WhcL+W2nPwX0/ITlfa9OEYC/UkmBUVyTQ=; b=Ykmbd38PYeb6QMltSuNArNoGNqe5R7pYmninpwhd0o5iXJ7jUzpTgQdPAOtgFvmgN4 PnCasipoVlJyYY38KMgvGqUQd+IJGyzvZ+r6EmWPQgx43HlHNJDTDPwaH2RA40dmJvX6 3ECAUoUJP9XYnJb26ttw2qEpMvB0m403z01kzPspoSN0cG8WGnP3/AmklQLSW8vCnEW/ Gh0AmVFXLl/nDVXiSEQxHiezr1OHgwfW8eMkuYIvkBO/ZJ1N+9H1e9qusBbuRpZidupK tsfmdcZKLpeldjrjRbPv4Mb9/QhzMk9dVR/ocYRGwjT5OJ5cWVJiLrJNe5CUEy5fKgQB HhEA== X-Gm-Message-State: AOJu0YwX+lbGE7gTsiqdYDi0irsfA820ad4CoS96h2lY6+w98wsIv4X5 xJZZea9cIwWVrg0T11Oh+XbEfUoxfahGzg== X-Google-Smtp-Source: AGHT+IFVxSdUFMRMgYo/siGY868MYmAUIxdHU6FcnuLm5PFGtdEdn5wWMRo2qkEIULYPseSJfCep9A== X-Received: by 2002:a5d:58d9:0:b0:317:6681:e426 with SMTP id o25-20020a5d58d9000000b003176681e426mr68532wrf.25.1691514596581; Tue, 08 Aug 2023 10:09:56 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:56 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 16/33] Implement host-target convertion functions Date: Tue, 8 Aug 2023 08:07:58 +0200 Message-Id: <20230808060815.9001-17-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: Stacey Son Implement the stat converstion functions: target_to_host_fcntl_cmd Signed-off-by: Stacey Son Signed-off-by: Karim Taha --- bsd-user/freebsd/os-stat.c | 71 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/bsd-user/freebsd/os-stat.c b/bsd-user/freebsd/os-stat.c index 9eb01bf664..f5b4ded8bb 100644 --- a/bsd-user/freebsd/os-stat.c +++ b/bsd-user/freebsd/os-stat.c @@ -170,3 +170,74 @@ abi_long h2t_freebsd11_statfs(abi_ulong target_addr, return 0; } +/* + * fcntl cmd conversion + */ +abi_long target_to_host_fcntl_cmd(int cmd) +{ + + switch (cmd) { + case TARGET_F_DUPFD: + return F_DUPFD; + + case TARGET_F_DUP2FD: + return F_DUP2FD; + + case TARGET_F_GETFD: + return F_GETFD; + + case TARGET_F_SETFD: + return F_SETFD; + + case TARGET_F_GETFL: + return F_GETFL; + + case TARGET_F_SETFL: + return F_SETFL; + + case TARGET_F_GETOWN: + return F_GETOWN; + + case TARGET_F_SETOWN: + return F_SETOWN; + + case TARGET_F_GETLK: + return F_GETLK; + + case TARGET_F_SETLK: + return F_SETLK; + + case TARGET_F_SETLKW: + return F_SETLKW; + + case TARGET_F_READAHEAD: + return F_READAHEAD; + + case TARGET_F_RDAHEAD: + return F_RDAHEAD; + +#ifdef F_DUPFD_CLOEXEC + case TARGET_F_DUPFD_CLOEXEC: + return F_DUPFD_CLOEXEC; +#endif + +#ifdef F_DUP2FD_CLOEXEC + case TARGET_F_DUP2FD_CLOEXEC: + return F_DUP2FD_CLOEXEC; +#endif + +#ifdef F_ADD_SEALS + case TARGET_F_ADD_SEALS: + return F_ADD_SEALS; +#endif + +#ifdef F_GET_SEALS + case TARGET_F_GET_SEALS: + return F_GET_SEALS; +#endif + + default: + return -TARGET_EINVAL; + } +} + From patchwork Tue Aug 8 06:07: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: 1818755 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=bzqUBGT7; 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 4RL08W5Yvmz1yfM for ; Wed, 9 Aug 2023 03:11:23 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDb-00029E-3R; Tue, 08 Aug 2023 13:10:03 -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 1qTQDZ-00027j-Pz for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:02 -0400 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qTQDY-0003Ls-0x for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:01 -0400 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-317744867a6so4537449f8f.1 for ; Tue, 08 Aug 2023 10:09:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514598; x=1692119398; 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=vwwzHh4jtcDKMijbf0Y31zTGoQm568cf8UPg0Fct6p8=; b=bzqUBGT7RmOdMERTHjCjQWfxoJB/kINeGBUEb//KyLSTmFNzse3KwBk4GH+Hj+vvOh oOYEcy6tu2IB6/Id4lhmrusYAutCi4Rpq/R1ebSeY98tomY+ynFTpYKqQFn6k2C2Hr7w DAKIYMFlbUWEXYZKEGoj9scaYOphpy8AHxZ47GnW/2W4t7Ttr03FOY4C5ytGeWra8bm2 HxVLBfFIe+MAPeZ3BsrBI/uTaDuHQywGJBf7T7amqGSQhWqWjsqEZTCjpq9RBy3fm8QW LjF1j88T+mp+k/xO1r1paCcfMx6iVxaUmC7yOoMmrXMUltwm9vbbgOeJu03SNpad58wt DMxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514598; x=1692119398; 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=vwwzHh4jtcDKMijbf0Y31zTGoQm568cf8UPg0Fct6p8=; b=dgIFaP1jAlQ+Y+eNj9kscoVKjhAOtng9PzqnCoe/E6bd4UgfX+I588aLxrpkSNYxV7 210kYedBqBJdFvoGy8GQLXfCHCvKnXsGGXnPXPVj7VFpvoRJpyMhKShKVhxhYdq92wSp H2psgqwl3hMxnUjwrL/QaYZy2BdS+NqSfPCAD17dYlgPLsLfygW5Uy/WuoHOOdCaMkMf nuBjnKVRmJrZcLUAHGSUot7cg9WdifOMe1POD8/3ffMzRgYbMAF7ziXvR9SARlgn1FbP WZHkp3LOm1xwx0dbqTeOCyni6lF+3T2/RcxXIANB114e6pkFJe9aLZj+tVBWJtq5bQeY NO6w== X-Gm-Message-State: AOJu0Yx4QNzbzHS8y4imSmy78OpBtuj26ty51xp/wpX4FiTUNFch6Zp5 mWRKCgMOJcFSwRINzvzEbOrFZAJ7wwCPNg== X-Google-Smtp-Source: AGHT+IF4+SFYdAP9ZH4F7ixM0UqwolXuJjZ3yrEUh1+52OkyMjDvZGbJyr6lxEmt+0lO94V00kTwjA== X-Received: by 2002:a5d:4e4b:0:b0:313:f33c:24c4 with SMTP id r11-20020a5d4e4b000000b00313f33c24c4mr40880wrt.39.1691514598132; Tue, 08 Aug 2023 10:09:58 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:57 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Karim Taha Subject: [PATCH 17/33] Implement h2t_freebsd_stat and h2t_freebsd_statfs functions Date: Tue, 8 Aug 2023 08:07:59 +0200 Message-Id: <20230808060815.9001-18-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wr1-x429.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 f5b4ded8bb..57b5368331 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 Tue Aug 8 06:08: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: 1818742 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=mu6Key9D; 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 4RL0770httz1yfh for ; Wed, 9 Aug 2023 03:10:11 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDd-0002EQ-Nn; Tue, 08 Aug 2023 13:10:05 -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 1qTQDa-000298-Ti for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:02 -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 1qTQDZ-0003Mp-2C for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:02 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-3fe5c0e58c0so22162855e9.3 for ; Tue, 08 Aug 2023 10:10:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514599; x=1692119399; 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=f1DVEj9gV4h69+era7txyW8Wg/o1egzcjAPEzcjHmS0=; b=mu6Key9DW0wwgXA0thdN65fgqxEDuAoPVIV6CAe+xB3C03TNizsDbYCCBHmzzuNvm8 kXBlPhuu7s2ylEMhQr0dVnRAWM9MCnel+UzDUqVKAqBxcE2AGg3OTbWTAvQ+HdRuhlmY pp6TfkXuhDEmXs+UmHE12iL0E0/BmXsRc0GAGMdPUxRdjIyp9C7FnLorBIcqJvBOiNvL k7JLm3Vu8oTHvzEjxebpRPlnTfTTut1nuPiLFp8nC9BhvqCRZ86+xGa0LlcPw6U5IZVB Xj0eyNP5kgFg1zlbWutFChm8lXxduGBFcQCHF5VUM1zem3knSs7JoQ1nKVIKVotP33r8 OI0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514599; x=1692119399; 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=f1DVEj9gV4h69+era7txyW8Wg/o1egzcjAPEzcjHmS0=; b=Jvp6t8fVq0uNtdg4ssY+w/5J+FJ/BYk32pxwLnB1keMIK8IGv/AKze0M9SQPatZP3q dtoQHAudyysgxGGJ9fwkQwzUiSU1BmgTQL1ta4lSk0kKlZL0McnNGGwjV4daI3VF7AMQ UCaXBwKwySZHIRWwjfnL+iVFwtYlpHW7Cd/B9fWNHD+t1I+LMxfeuluwSqwkceU5fXTt AmyVVUMWBA4EtsGmZGD/dlESoHi3/sHR0vJP6oS1m8juNPZCJgK1dSq9vYQkimUYQqJ+ idDibut3A2DabKQC4A4P0Cgb7Xt8YPxW1kJCNX7ScX5qOSaJi20YO8QMvGvBtEuwpAt9 cSTA== X-Gm-Message-State: AOJu0YzDv31GgzuZb+KeYaAZo9hft+VZ/hja2bQegZAbu9Tr6eugJYfN EYge0TZVbS+jNB7HmuJZwNPsTbOMbKTYMg== X-Google-Smtp-Source: AGHT+IECxS3ApsB9E47j8qGC3KynHrBcz1f+LuWnlz4J1TlFNbvtvo+d1dctbLkBhmsv/mm2FCHYOA== X-Received: by 2002:a7b:c7c6:0:b0:3fe:2b76:3d7 with SMTP id z6-20020a7bc7c6000000b003fe2b7603d7mr358224wmk.10.1691514599514; Tue, 08 Aug 2023 10:09:59 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.09.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:09:59 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 18/33] Implement stat related syscalls Date: Tue, 8 Aug 2023 08:08:00 +0200 Message-Id: <20230808060815.9001-19-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 Tue Aug 8 06:08: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: 1818766 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=g6X68Jpf; 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 4RL0BS6Nlpz1yfM for ; Wed, 9 Aug 2023 03: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 1qTQDg-0002Zy-3k; Tue, 08 Aug 2023 13:10:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qTQDd-0002JW-38 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:05 -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 1qTQDb-0003P3-BE for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:04 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-31771a876b5so4448609f8f.3 for ; Tue, 08 Aug 2023 10:10:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514602; x=1692119402; 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=eVcqaRcVj6JvKDy2BJiIRh7pr/hsDHDhyGBchxOUhao=; b=g6X68JpfiS/XEfLIV0wmuGqW28reBoijKxuRJ13j9aQQojuvArqxjIfJxxuaKSjvYB tx3Qcl0Te85Pv1EVVZ0RxrzfF5DqYgG/UlgW6qit+b51r86CgPXic7zYdcIs+uLnCMpy VQxXxo1b3yd7GdUdfbZ4mxiM8BSsEZWOgTFys0qItkhab4IpwT9Uc/tI3HTNsP20yIot R15juivMS2uSY4SuUMzWXpL5askx8u7JoJpATJgGV+cDbwFs2CJOA+xhWYcdOiGx43eR EwCIomUdjtA9je6tRKMuROM6HockT1mDNDxvUti6mrte9817WqalFYATfFF6SMC4O0LC NRtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514602; x=1692119402; 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=eVcqaRcVj6JvKDy2BJiIRh7pr/hsDHDhyGBchxOUhao=; b=XWIhWwrC/8lbh0M2zzLDjTsoI1TfP48NJ+dinDFev/RFLXtDXDu75FDNr8L4t33Ccm glUBFrYjmjYA4BWJxZig4g3ctrEHnzMHzsfUvMJNcu0lSOO8YblLPJVfWArP67fBZwNN EfpTusIX3snWWg0NlaeEfFPg/4Ul15Np/CdPoM0Xgl3A/2cDdfaadAK6y30dFB79U1LD Rs7uoQeL+E6kfO+1KPV6eXl5QvOtXqmOWbzbf7PKDpOmR2cO5L3mhGcNCrxc10aixlxv xFGGEMuzXGvYNzuJrJp+WwPgc+rcabYgsrgng6zeczUMaXBOYWUPBcDF+C3cqNeuIL2H w2cA== X-Gm-Message-State: AOJu0Yx2bgKxdqLblBq3/peyw2TxVM/C9mRyS8bGorGmV2X6V/6b/RBa uI8eGO2xo5c6fBGBcIR83gdB909miLsV0g== X-Google-Smtp-Source: AGHT+IG8yJVfUTcaxOukmrUO0O4G7IP9DsJbDwXEMdGV4S0J78/HRmmJatcLp/5jmw5Aen+7aA/4Rw== X-Received: by 2002:a05:6000:1185:b0:317:6c19:6445 with SMTP id g5-20020a056000118500b003176c196445mr50034wrx.39.1691514601713; Tue, 08 Aug 2023 10:10:01 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:01 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 19/33] Implement stat related syscalls Date: Tue, 8 Aug 2023 08:08:01 +0200 Message-Id: <20230808060815.9001-20-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 --- 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 Tue Aug 8 06:08: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: 1818748 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=IdCUv0PR; 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 4RL07l3zFYz1yfh for ; Wed, 9 Aug 2023 03:10:43 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDh-0002j9-5A; Tue, 08 Aug 2023 13:10:09 -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 1qTQDf-0002W3-8c for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:07 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qTQDd-0003af-Hc for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:06 -0400 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-3fe4cdb724cso37655215e9.1 for ; Tue, 08 Aug 2023 10:10:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514603; x=1692119403; 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=V12SEFgO7V2wqeQzkvP82FVnLLqFe5FtytN409qLtJs=; b=IdCUv0PRRDTdLG5rl1utGgc7wL7tGk4jZfVCKp2lOh09mktLkkmwsmI30grtJqZccw o2eUIGGqPzDFXILQ5IuQ0w0U4/mSMBC0I55DmrMPmklyspYl+3TtyfEzw4i2YHnJRqjp acx/nMZdgvqIxKrcd84poL4MG4itmRyO0dqUgHjgIv+02gRY7EkxEbw8dXtvASYfL3nA +kNjNHT9nxD28jsHaH4mVxt9gYervRnAUU2yLD5kS2jG7sYT5QKrxyMxbgVtRj3SMenu ToY7xPOVSlzvTmIjMBY1mFLRWjUvxJVHbobbIlNV+jk/cdGoHTWEzdMjPVKpXkcIdG32 30ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514603; x=1692119403; 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=V12SEFgO7V2wqeQzkvP82FVnLLqFe5FtytN409qLtJs=; b=YB/sYL+R24h5dt6p1i5Ft6Y5WxYxHZDDXRqnDUAVE851sAN/GWvs9/3hcbNg1NgEEI 0QwUk7amWRHVL5IpKbCYr6rq7Q9s3GEFP927ze1r5f2YChPwWvZJ3JwU52EotY7677Dp llnBrqRdGtbH3tgDuoGq4PBqEpEYU+KkDLNv4kwQ5pF9SNACpiumg7QbHU/h07ZfmGOl UP+2QPNjt+JHybsNRDqZrXOW3jLtuhY9MhpXnK8++8hJnuv9lc/uTckfvoXiw7tUzfHl j410Y0ktw/LSJv0LECy0Ih3WhanErYxW2fHj83itzF9iRZSMPYcYBs1hMoKbnGFsmQ65 L7uA== X-Gm-Message-State: AOJu0YzCCs5LRjR6NRSdX/KdTm0k4w+ao682c2S4I7QepHJ3IboetMBP EeeK9a8fg9CtOWerbHwP3WwEM4AyUyNFlQ== X-Google-Smtp-Source: AGHT+IGQyKpMFPorWnBIf7Ae6RenCyoYmDB3cCTIYCxQvCU+gAfoPORHjhGMZASTfGd4v2OUwklOLQ== X-Received: by 2002:adf:f043:0:b0:317:e515:d624 with SMTP id t3-20020adff043000000b00317e515d624mr28478wro.45.1691514603099; Tue, 08 Aug 2023 10:10:03 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:02 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 20/33] Implement stat related syscalls Date: Tue, 8 Aug 2023 08:08:02 +0200 Message-Id: <20230808060815.9001-21-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Stacey Son Implement the following syscalls: statfs(2) fstatfs(2) getfsstat(2) Signed-off-by: Stacey Son Signed-off-by: Karim Taha --- 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 Tue Aug 8 06:08: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: 1818758 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=nUYfW7J5; 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 4RL08v2m2Rz1yfM for ; Wed, 9 Aug 2023 03:11:43 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDi-0002qC-Dm; Tue, 08 Aug 2023 13:10:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qTQDg-0002fR-Kn for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:08 -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 1qTQDe-0003cZ-NT for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:08 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-31792ac0fefso4447006f8f.2 for ; Tue, 08 Aug 2023 10:10:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514605; x=1692119405; 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=rbWdB/ZK+UVkxi7fyaDkVKQfgjGC/Wz/Ej9MOzEDLnQ=; b=nUYfW7J5m1bYv30R9cYuf5c6x17CUVQfkE4JwBfsqZ91dNs6oy15zluCigUlwemmAi 9+2Kl5ejXQQdrJejd9nBpXEdvKe0+f6RUirJc2q4mMg65yTgY5DVMdsRk6709zCSb57Y 44L6fhQ4PSwpq6UnDqNIVOOheoro5cyQYY05JNXMZq1P2pjMUw2lw3JimkAn0c3k3wMr YF0HCWRNvEu7aD5XYFbfeHi68GdjDuRqRQwDEgldLcwIQCPDiBPK36RwxXUBxc2MdEk5 4DiAdqfDHvkutgwc6xr+1s9i03+LzpWl7XvsoyuRXHRxGJWezQ6VEg1RrDt+BHAcDt4D zfYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514605; x=1692119405; 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=rbWdB/ZK+UVkxi7fyaDkVKQfgjGC/Wz/Ej9MOzEDLnQ=; b=YW/1ux4w3enmWpg+Gmn37gbUgzt7KrUw2WJyut3AGAHN58BufMrscLkk6iU+ZEFASY pDJQUb/+eTgKWIPxeQwBnFebmOulAd8dSaBaHOpOt3aUKawCZDgtxUh0TDl/FR3Z0I/Y Fn7bEe4RPCHjf6rUEyJAnCVHmbYgSlD7vEe+ony8095e3Vm/J30W6g8OVBUFerto2KmS uiw/2OvMhg0QSFuYIZGLvTKJ04DokF/HXeN+TRdOZFblkxlQXp2n/3UFwXcBdIoj7vK0 bClgGHDHIDSRcE2FhpQGnOqDOmD5hCu8lec7m25xQgR7decxqeZb8RdO3nfelVCwr9x+ 1R7Q== X-Gm-Message-State: AOJu0Yz5/3uJpQo49zyP7VBRBosmkOY0ACDXiQx6EKvDLPCSJOfn/pL/ 2wZ9JPSouMGqypZVjIUDUKDvXkt0Q0H3eg== X-Google-Smtp-Source: AGHT+IFO7iVGF3XZkNOQ4y/dqtWIXE2uH9YG7dUH8Iw5UA0uo8DomSKuY2R88lVtdPPiUpQV78yowA== X-Received: by 2002:adf:f58c:0:b0:314:2fdd:28ef with SMTP id f12-20020adff58c000000b003142fdd28efmr68665wro.18.1691514604808; Tue, 08 Aug 2023 10:10:04 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:04 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 21/33] Implement stat related syscalls Date: Tue, 8 Aug 2023 08:08:03 +0200 Message-Id: <20230808060815.9001-22-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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 Implement the following syscalls: getdents(2) getdirecentries(2) Signed-off-by: Stacey Son Signed-off-by: Karim Taha --- 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 Tue Aug 8 06:08: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: 1818754 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=DrwaRMDJ; 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 4RL08J6Yghz1yfM for ; Wed, 9 Aug 2023 03:11:12 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDk-00037h-5e; Tue, 08 Aug 2023 13:10:12 -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 1qTQDi-0002pI-4z for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:10 -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 1qTQDg-0003gB-5b for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:09 -0400 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-317715ec496so5100150f8f.3 for ; Tue, 08 Aug 2023 10:10:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514606; x=1692119406; 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=nvFPlgrYHpsc/4GkTgJK28/M4h5pOfI3dgSj1J3z6O8=; b=DrwaRMDJiX7Zd4zf5+NzJkr+vkyqrMMtXVwu0bQlmNi2DV6qXe8fWlKi88Svkp0ync OvdAqpQUjbr0KqIiZr0yfydi+s5uZkDkFDG2IDFIK8fBmdvqUYLut7nHeNrPtmdmVhI5 HqYn43MavoLPbRMUoAHjENFxW5qz6l6GYqoWXKcDmvW5c17YSWBWdncW6mCf/8uMJKY5 fpaXUENOIL7xYUiuKrJ07+v42PVjbwp60hjeJF19prR2w7+7GWxR7NUZwtfD6lQ5keNT ES+d30zedsohhVy4bx39OQAYX+w6k3dMgLrIBMmWK/X4k6m09TJ3HNlDTM1rf2Q2ARW2 L0bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514606; x=1692119406; 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=nvFPlgrYHpsc/4GkTgJK28/M4h5pOfI3dgSj1J3z6O8=; b=MFsYISoV3A43k3y5672SmQREszxD7UoTcEPSrgHZ+/X8q6ywo9gCaGdOgN5GWhSRpZ Jc+psEdexsx9GJXVhUYM4N+WTXqsh4omm2JbyAJaMycCnW8AadqFXoQc+k/i8Mt6Qbdk hKHVw72Ki46LJMc+HxE5xvzypt9QX5KwlptbpUeC1SfC/fdPvYJH2r6YGnIylbRPqoPe 0nuII2+X4dnqVwUz29nET2T2K5Ho6DHnMKz5/KBUQgnXCIq0ClsVZAZ1DHv/Vk2rrwF/ 6q87xa1I/ySYRoXEdhsdB67sBqyecJlBHE2n1SYbkwts37odwDSDQ7GnQqEJcUTFHGyu 4A2Q== X-Gm-Message-State: AOJu0YxQ9wr7SR0gxenV0YE3/2695zjyhHyguvIMmQgG8VKUqr4HH2pi YoDfipdkB03bbWzJ/r7xBhrfKCkZ5EzvhQ== X-Google-Smtp-Source: AGHT+IG2usyka+Ri9oAPZkAAmn9GMKQ5uOpZmpW5EWBIU6VFT0yc3zLLHx59oOErwOMpbP9PcYJRFw== X-Received: by 2002:adf:f4ca:0:b0:317:6fb5:bafc with SMTP id h10-20020adff4ca000000b003176fb5bafcmr38183wrp.65.1691514606454; Tue, 08 Aug 2023 10:10:06 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:06 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Stacey Son , Karim Taha Subject: [PATCH 22/33] Implement stat related syscalls Date: Tue, 8 Aug 2023 08:08:04 +0200 Message-Id: <20230808060815.9001-23-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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 following syscalls: fcntl(2) Signed-off-by: Stacey Son Signed-off-by: Karim Taha --- 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 Tue Aug 8 06:08: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: 1818750 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=AELfYUCb; 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 4RL07v2Sp3z1yfM for ; Wed, 9 Aug 2023 03:10:51 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDl-0003K9-MS; Tue, 08 Aug 2023 13:10:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qTQDj-00033k-Mx for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:11 -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 1qTQDi-0003hA-17 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:11 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-317c1845a07so4438906f8f.2 for ; Tue, 08 Aug 2023 10:10:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514608; x=1692119408; 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=P1BgqP/3efusJ7vB+9IYEzefqxebmmteR1Mu1BRPGKI=; b=AELfYUCbhyGU5Zj6CLv1Q1N4TYNydvy0+wly+iRmBYP8GUVupwhMPe341gitQzBqoI Dj5Yywr2w9WzVRckDCEVVX/HJtNJsNM8Xs5rukZz5zVCs1pVYPdlqCJ/Qa/bS1blaSMH WmjFEl7tHs9KM0/tCM+dSi6VGDEcYO3UtIsSh55bI2uD9HvkpSnX5TwdRctinV7OSjJL rBxdn/jgHqc82KsV6yKbbzKzXvsqqPucSe3RBJNf8FICQxfqNI9FiZlHyXS3X0lF2sC1 kckeTO9KmiX6BtjAQZpn/gDibuNhqiSFmjHHSohHJh4CWs1jeeypHPs7UEAIjWAVux5i YBZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514608; x=1692119408; 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=P1BgqP/3efusJ7vB+9IYEzefqxebmmteR1Mu1BRPGKI=; b=LXMS56y/RVv/Gls40/z5BXjtszdxaAVsdxEej8xsUrUn2Mm/OjuaWlCNH4U0sEu1MD ENGIzKKyBCIvk64iSZ8LLDgEyXGOzxiLWWzxfzoMo10lYHcsItLq/r2hJRxyP/TFFsJ/ K72YrNaaoOHf8H4QiB10MZBV2IjE5lEknqrC2KhvkPMZ7H3JswzwMeF+JsZ0e6sKN9lF 3pSqG/wQJ/NnTXcmutANIkMg5r8JVG3IrOUPMsofUHZV/SjkZaX7SRJnVeQvlElb6uEx 5q5plE6m1OJId+/YeHqtzxBP8ZpAg2BYqTgDNrJw+WzVNe2Gb7nTnbTRyP9688rxu00u M1/w== X-Gm-Message-State: AOJu0YxqvWX4QXtmQm9gnjAHPCnHxZqKKD58mc1I4muh8/pWgXVAlFD3 h0clpYy4JduhwvH++uvd2fqz3ysB6wylTA== X-Google-Smtp-Source: AGHT+IG4N9sCm+IdsjNiI6ugdWbTY+Y+MZphhMVa0y2PVEZubb5PCLsDonELpoXwMxQX4BVVUhzxxA== X-Received: by 2002:adf:fa01:0:b0:30f:c5b1:23ef with SMTP id m1-20020adffa01000000b0030fc5b123efmr58416wrr.41.1691514608212; Tue, 08 Aug 2023 10:10:08 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:07 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha Subject: [PATCH 23/33] Implement freebsd11 stat related syscalls Date: Tue, 8 Aug 2023 08:08:05 +0200 Message-Id: <20230808060815.9001-24-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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 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 --- 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 Tue Aug 8 06:08: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: 1818757 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=U6sBYPch; 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 4RL08Z4kLGz1yfM for ; Wed, 9 Aug 2023 03:11:26 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDo-0003dK-Nx; Tue, 08 Aug 2023 13:10: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 1qTQDl-0003Ht-Ab for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:13 -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 1qTQDj-0003i3-58 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:12 -0400 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-31765aee31bso4445596f8f.1 for ; Tue, 08 Aug 2023 10:10:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514609; x=1692119409; 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=eCdA62/Dvn+WHdtoc4x1NnC5NRctPWftqEx5wGKru2s=; b=U6sBYPchYecEa1MJxJJJMAYkWcIMVkbrVr3RwSW7c/2u0Lmnt0oxRPgp5cULphiYvr 5nPmJevsrs4OMhpFSAMJc3WnIhyqy9YIl+WS3UJpssG1RXb3jv918HIl2e7I+XEqDl1v kBa81gKx/LzQPqXOUAtDYmjk3erLShbb4b50+THLrSWZBdf8+yV2F98Bl3xdrEx3dJcm P8HgaTu+mIbFmXQkr7r79BbjeLqRxECoOuJSD5jpjPzXqGBklkXaBPjcLFgk3F52xzI9 1faYF1YIJ9XgkOJKYULkobWohz3wyU005hIwnEJEWMN47tz7xbHG/L0ytRza6P1MUxYP 729Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514609; x=1692119409; 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=eCdA62/Dvn+WHdtoc4x1NnC5NRctPWftqEx5wGKru2s=; b=XqYmf/OWtEWhLblnsJboklsKZgBpAPaNluHfG0PPfT+BiVbNLAtJicRuu31LCH0Wiz +ycCsNp0bJkq1UzMEuH6ZEF84Ygmjoud7jpO6poneVeRCoOoPD1aetonOlsNkaOvnHcT SiTfQCI88orsKr5cjBca5fh7wzskIETzIqTDP7DNldLVMRj5SUSRDw1DNx5xSCw+FeMX FKOFeZ++uiIdot3GYTXsl+nYyPWoOCcoMPGmk2gdRe3QF25O7xECVI4D3nWimSAYYm9D 4n8gxg6kVgyNSMgouXaO+wcway3mIs5Iz6yXvkWcdcG8Bu1AlrbJBzmF8ORfNXxlTUCq +fmQ== X-Gm-Message-State: AOJu0Yxfx5N9qPLwND8pHuOFAznQ5eVvuCUTAwDmWBPFUuseqOObCWGv JIyvLI5EHouoaiBRKNyZBiCIN55tIMqODg== X-Google-Smtp-Source: AGHT+IHJJ2nYY8ZQbo1F+HZmk7Q2Fcpo3rp4J0S6y/jTOAhLcylGuiAzN/R3y00oV42QZ0ScFRTwbg== X-Received: by 2002:a5d:428a:0:b0:317:3f0c:b40e with SMTP id k10-20020a5d428a000000b003173f0cb40emr46920wrq.58.1691514609396; Tue, 08 Aug 2023 10:10:09 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:09 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha Subject: [PATCH 24/33] Implement freebsd11 stat related syscalls Date: Tue, 8 Aug 2023 08:08:06 +0200 Message-Id: <20230808060815.9001-25-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 --- 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 Tue Aug 8 06:08: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: 1818774 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=qcNzImgv; 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 4RL0FC3xSBz1yYl for ; Wed, 9 Aug 2023 03:15:27 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDr-00040t-Lu; Tue, 08 Aug 2023 13:10: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 1qTQDo-0003XY-0O for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:16 -0400 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qTQDk-0003ip-GE for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:14 -0400 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-3fe1a17f983so50287455e9.3 for ; Tue, 08 Aug 2023 10:10:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514610; x=1692119410; 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=tixgSZaHS/ZX2Ev+4ktdHOXajBb1vL7WwQRW2iV2F2s=; b=qcNzImgvPCDC//LZRkZ4cKEPvxq5Pmc9lL27Bo1/8gYXlVS7F7uOfG2pFKxFnJLnQP kgzdWwvAvLFHW8x2kf9T0Eu2r5aBlQSnvTNgkGVqAGlLAcWD+53n9JNG6dspYrw+QIPU oXxdfU5iJhbPxAJV2O/nHhyave1iio5CZapBqQ95NWnJECeMTgE8ojr/j3K6MEjGQhmR 6bKyUkYJhoHYZGGWi1O+qm2HF8Vp7FaVfJwwDPo1Oe40JRKdYSdmXXBhy1jX+yTyyc4+ a/2v3DmswC8o7o4RPJFdUYtoNqWba1e37J3EjD27arrDCnO7i39342T0eqr5Mq8BkqUB jFwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514610; x=1692119410; 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=tixgSZaHS/ZX2Ev+4ktdHOXajBb1vL7WwQRW2iV2F2s=; b=XheqtsEsAOtOnwe3VqeQp8Jj7Ust+p73kEwU+n4LXE6kiOwQRsDQJvKggG5ZIWU/Fg xj2OWIYVBwtd424UpLV2zDObdOhRf7PrNxSqP8dLal5S83GHWQi62eMnjIS4dI+j4YuS pDd9epDbMRZ/TNBrQeRhXCh+7kotRr8QshPlmYjdhGyc/+wiUUk5OAFGqc2rt/4EOfQV v2uF27WnvluP3HQ/tYu7STyTBSw53blT+eVJYEhyV79+99jmQSPR0dkhfq5OoTNWhSac MFNqAaS07nFdM5djzlwJ3wyj3PcG3I7ERBjAntdOZTjYt4JK7PKP33qWALXb67pKK/QR bRxQ== X-Gm-Message-State: AOJu0YxbnrHVT46Uc3Z//91fWynVcfHTl3jtnCjeg+Bsc/VJ4CkmSl3U XRtzEaczp2oc6l3wqg05O9dQvX0MJpB+uQ== X-Google-Smtp-Source: AGHT+IGBB1r85AWYkP2iaRIDiPavglhbdwRIqr0AY5NPgGwigTiZ97GSLMd5fJAbaUzTE9uqXqb7Ig== X-Received: by 2002:a7b:c34e:0:b0:3fb:ffca:b6b8 with SMTP id l14-20020a7bc34e000000b003fbffcab6b8mr348207wmj.41.1691514610535; Tue, 08 Aug 2023 10:10:10 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:10 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha Subject: [PATCH 25/33] Implement freebsd11 stat related syscalls Date: Tue, 8 Aug 2023 08:08:07 +0200 Message-Id: <20230808060815.9001-26-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 --- 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 Tue Aug 8 06:08:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1818775 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=UtHqeFUY; 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 4RL0FH04mXz1yYl for ; Wed, 9 Aug 2023 03:15:31 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDr-0003zi-H2; Tue, 08 Aug 2023 13:10: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 1qTQDo-0003Y4-3N for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:16 -0400 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qTQDl-0003kQ-OK for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:15 -0400 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-3fbea147034so50418995e9.0 for ; Tue, 08 Aug 2023 10:10:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514612; x=1692119412; 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=N72zN3LJii0x8MjnAtEVjcjpdVlbQi/8GCr75AB+WVg=; b=UtHqeFUYBBoO4yQ6S+bIibGF/z8u29k0LFkqpOb3ImI/vPjR/vo6jvnDPG0p2bAUOR uecYfKgvIAZIhk8yNmgAtx9LQRp71KoSMTFUKKhgoDMqy/yxdKxedHuXcpFQ4LXSRuFG 7MVrj7XZsfPMeZPe314IC6ofiQVqSfYtHcNSeb5aHT7XB0l8O78de21ksWGfw/j2L0+y 6oZvpbK5T4zJIqtu5gTZaba+FE/vxtKry3DUP5Jp0Rhqc15mlKF/jhfoz3VNhW94SEkG bB75WKtsmxF+Jxxs06l6Sw9MSc32mjj03gt01GKHFovqlB5Z6Fjr86nujHQKrCkL/Cvt GuQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514612; x=1692119412; 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=N72zN3LJii0x8MjnAtEVjcjpdVlbQi/8GCr75AB+WVg=; b=f8+yptIQBO8vpTrPl9971LKM1utNwAi4e1Fj7YPKDQfj4KACG7EINjvf/FR5z83cFs gFxJ2CRjFnO76swgjFSQUipXdd4Ncp0gCdyOrT4BEjhAIAaS2JrKNZf9J22hsrShZFb6 wOA2LzuXgtbc70LvYkz1ClLse3dgmtHL946l3PcqnS/zmnhmz2aX81Ng/KpVJi+nTd62 NOQ7IJFMdZQ15cIQTWI9Ws8xMJ9tQwNkmZ5UWFQVEViae16DzaRAJ30j2s/KpRZFrNBi gdGjegsXlAbLUN0fHiKmYqVdxvabBNFBu45I8uruDkT93+zcCh0k6H9jRdoF/ozPB3lI o5ew== X-Gm-Message-State: AOJu0YwofVGHsgoVNS87fEVrVfYuPiNTylgfE2TziW7lrxUY7uGHtpkP 1UgK2oN46/S27NrF5+3AmM3LfSrrvFCj+g== X-Google-Smtp-Source: AGHT+IEyyY2CREggX/1C9QxSIoSXhy7UZfyLQZaIXvMK33+ppa6HlrJaA/NocB9RpjtTHxvEblOWpA== X-Received: by 2002:a05:600c:108b:b0:3fd:3049:9496 with SMTP id e11-20020a05600c108b00b003fd30499496mr351798wmd.33.1691514611768; Tue, 08 Aug 2023 10:10:11 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:11 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha Subject: [PATCH 26/33] Implement freebsd11 stat related syscalls Date: Tue, 8 Aug 2023 08:08:08 +0200 Message-Id: <20230808060815.9001-27-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x330.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Michal Meloun Implement the freebsd11 variant of the following syscalls: getdirecentries(2) Co-authored-by: Stacey Son Signed-off-by: Stacey Son Signed-off-by: Michal Meloun Signed-off-by: Karim Taha --- 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 Tue Aug 8 06:08: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: 1818773 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=r66y1VUA; 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 4RL0Dz3N7kz1yfh for ; Wed, 9 Aug 2023 03:15:14 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDu-0004OL-93; Tue, 08 Aug 2023 13:10: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 1qTQDr-00044t-V8 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:19 -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 1qTQDo-0003mv-9N for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:18 -0400 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-3fe4cdb72b9so31735105e9.0 for ; Tue, 08 Aug 2023 10:10:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514615; x=1692119415; 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=qv1al80z8Au5vOkyDpqa1Ck5HEJrKmriHoTb34daV8E=; b=r66y1VUAeo9MHyPGWrIVF8P1aiQ/IlkTY7vMtMKtXXzObhqfPoiHbtAhdPJqCc05wP OR8XIhh0m0y40b0fNPbDLSGIcKz7TPgvsQCKyDRLZG7dUyAx972TD6UZCsyQgkwegaLy Bm1i3XkHBELrhAOYDv+aRArai1Yc371uAm9eZI1HOMIIQvakWyJ7tEEoE7wijtxUymAN IuUE0mUuA2dkVXluAOuSg6lApy9knCzgYSgaPhjGThNkvfGcsAmEEzrQue+iDwc8dhJc f+gnuOMIrTUx3sqoWgg1XVlWu5nE2OZP1UcZWT7/2OBA4dUtcNz7m9obfbPbsI5eqzjU 5VCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514615; x=1692119415; 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=qv1al80z8Au5vOkyDpqa1Ck5HEJrKmriHoTb34daV8E=; b=YJt6aiyzcVsSl1Mh71HU7dNmwKc5DeNZSwIDEFgpfM/sG4au0hMZBs8y71tjS0reYB iY4GMR6WUOtp1hhojNDTqLjRmdvGjmsIWs0Dl3t1sxVCQsfNeuRJokSoMljHg7CFFuQE 7sYu6ZHyKjbkfaCjxBQU/oNoa9hwnjHzkwKE/M+uy1JPoFDLh2bP1UlrNqF8aDDxe6uB oLmw8LsaqBDPu8i2wbswbmbbgwtWl4jnsN2zLjiyCr2XjV4FUf7Qjohgm/iVWtCi9VG/ zPWTRLpBLPEogmpECjosLbK/zyLpUde6vEyazguP62Q1KbOfvA+5chQCWtqvEy6jnQnx Ct4Q== X-Gm-Message-State: AOJu0Yy3vXKfYTAG7de9MSQsEt6lIQy2tRbSKIy2nZXzBu4O4qryOV5R KrbvzUpFIuPZNxiHkMeAjId4t448SyHczA== X-Google-Smtp-Source: AGHT+IHhIRLNYJjPsyUnun3o4c8mZX9McrePsLocOUp9OtblrIZp+17n7hPkOFalas+rvd071tfTFQ== X-Received: by 2002:a7b:ca51:0:b0:3fb:e356:b60d with SMTP id m17-20020a7bca51000000b003fbe356b60dmr356238wml.38.1691514614699; Tue, 08 Aug 2023 10:10:14 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:14 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Michal Meloun , Stacey Son , Karim Taha Subject: [PATCH 27/33] Implement freebsd11 stat related syscalls Date: Tue, 8 Aug 2023 08:08:09 +0200 Message-Id: <20230808060815.9001-28-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 --- 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 Tue Aug 8 06:08:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1818767 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=T0pBoiGQ; 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 4RL0BT2Knwz1yfh for ; Wed, 9 Aug 2023 03:13:05 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDu-0004UO-R4; Tue, 08 Aug 2023 13:10: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 1qTQDs-00047e-7S for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:20 -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 1qTQDq-0003oQ-8q for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:19 -0400 Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-317e14b0935so42459f8f.0 for ; Tue, 08 Aug 2023 10:10:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514616; x=1692119416; 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=NdOxVXghhdO4DgKur4m3AtRQMe0xFu/87Bd79EJQ6xk=; b=T0pBoiGQZV6yUYFcjcfxBCj0v9h5Q+KeImVmbogLdr03RkUWi/4YtdWvrMXMSyb+rC ojCn8h5uPq4UkA4hbFtiOzt87nnW8KT6myOiOWKDncryrF3jLdIMLcZUVIDmZtKqg0kD mHrUufTgEjcsD8SHDlaY+bHKN20h96XEvH+tKO0DYOAWf7uHaX4SSALcSXsloF2/nnrc 7M7iLnGVz9RYJDr/NJz43SQvvRbKnLAbMTt2FFYCVu66XxQ5r7vMpljV6lKeAsV14hfR EuOen8BjFRdtf/OKfy3zZ9z/RQPcILHr2E57O1Q+/KSvzJK29qe/Khc7BaIzBOr61T4O vgDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514616; x=1692119416; 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=NdOxVXghhdO4DgKur4m3AtRQMe0xFu/87Bd79EJQ6xk=; b=PKUtfS1Us4MJrrxGX9EM7egrNf/FNxWswCiM4PmGZQUAK5hPMOu9Pt47DzhbSK719+ NzYT9KXC8sk3SJGb+u64v+ztaN+vGXGq6d4mL0aUi43mNvDNoN9hupjk7u8C7wphFjPR vVtBgFRAHK1/1uw2noW2Abda8B5t1jUQO5Sw+Z4IFgIxQkoqxx+frNiulUIW29zwhX5n jZ10q1SkErVhJafKa7EECrCWm2PmmJ2QYL9fliOQ+BctQOrFgk/Qt3Ft7FrQtWl25CTc wqF9s6LDQSlXOt7iKXXiAHhSFd0318k9uKkTH8I7VB7M3gDXLyp6hZM3/0FGVjABP89v DkCw== X-Gm-Message-State: AOJu0Yz1JZSzmvDcXf21Z08JymbRqypwxvTvUqxEgLr60ArHQjXRNuxf Sdx0n2T/bswD4C3EatS5xrOuouXCYoloAw== X-Google-Smtp-Source: AGHT+IG1Jl+df69Y/ma761rJig+vDNxS1qO0dxFUIV8gFyGCqhxQPR7L3LrXURPmbg6+kX16dRTxog== X-Received: by 2002:a5d:4249:0:b0:314:3f1:cebf with SMTP id s9-20020a5d4249000000b0031403f1cebfmr8638062wrr.28.1691514615843; Tue, 08 Aug 2023 10:10:15 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:15 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, =?utf-8?q?Mika=C3=ABl_Urankar?= , Karim Taha Subject: [PATCH 28/33] Implement do_freebsd_realpathat syscall Date: Tue, 8 Aug 2023 08:08:10 +0200 Message-Id: <20230808060815.9001-29-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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 --- 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 Tue Aug 8 06:08: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: 1818759 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=VQMDVujv; 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 4RL0942pdWz1yfM for ; Wed, 9 Aug 2023 03:11:52 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDv-0004Yy-8P; Tue, 08 Aug 2023 13:10:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qTQDt-0004GJ-9s for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:21 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qTQDr-0003p3-8W for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:20 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-3fe1fc8768aso57368045e9.1 for ; Tue, 08 Aug 2023 10:10:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514617; x=1692119417; 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=m7L4DblnyZ6mZ6SUX5IHPSXJ1ZwP6k4CfYzPJU5sNjU=; b=VQMDVujvZlstMpOLDknVeRQOOOJzhQ6OXQW+a3f8TNhB9hurJqC1lQyLnYf4kywNRe +FLfHSo36REWJzDIS2KFU7IEsU1Hijpl3Qx54nLmnEX/dUgY/I8SvScB/wzeK9nws4DY D7N/9BYoaZ4kMyK79y02Dkk5MxhGDVuU6o6qFF5bz+ZI4ESfQRfaLlGzjI/5FN7lUwJT MmXC0QkjICRXvGQftyKSKx5ywuppR8i9PIW8+ojV9wuC+qZ3qBi8NzTRaagtVxrIkU2E uOlsAyx0FIVwECl3rLjACYjrHddA3P8ttNwe5xqmoQlu5rVt/wrXmCJDDA44hMCv/AMO Nm1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514617; x=1692119417; 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=m7L4DblnyZ6mZ6SUX5IHPSXJ1ZwP6k4CfYzPJU5sNjU=; b=l8Ga6u8zSCmeHbFueihkSPkODrVZIZkehAzM1CJOzxlSB7iudUgKWbdLnOBQKpEzz0 MJdisBm62+33fg6zlnrMNpCVtfVfz257AwVfM78L5BvD/rPalVsaEW6OD0VmO5CT+nOJ wTg7N6pvEZ+7DuMM2tw1mDF4s7Ht2231cii3k6CZuOhM8wCLqfgUWaKuX2q6JMk8UOuS R3Ua/4aHdAmvuvPsXJp9s+VSwGHs981YY8u9we2C8ygJ23u0acjnbuCkNniUY4Bm3jMu 514CB/0lGeHOjJuEYZyeBVNfK7J9ONNwuMCLW5nDWo3o6pAlHV7U1KcrMgekkuALCk5N GVmg== X-Gm-Message-State: AOJu0YznwCgSDRyCrOD807pXq8gW6hxezSWThRZTHWbmmxO0D07ccNQO A/a5+dvesbb8akbtN62J9/9zF1144gMRcQ== X-Google-Smtp-Source: AGHT+IEjGzK8rZfKQNNynipwgdYccJ56LobS4dIdiVqATKitXS8spCBAUgPk2oyihukwDlRLAx3vIA== X-Received: by 2002:a7b:c399:0:b0:3fc:3e1:7105 with SMTP id s25-20020a7bc399000000b003fc03e17105mr345871wmj.24.1691514616921; Tue, 08 Aug 2023 10:10:16 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:16 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha Subject: [PATCH 29/33] Add os-stat.c to the build Date: Tue, 8 Aug 2023 08:08:11 +0200 Message-Id: <20230808060815.9001-30-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-1-kariem.taha2.7@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=kariem.taha2.7@gmail.com; helo=mail-wm1-x332.google.com X-Spam_score_int: -2 X-Spam_score: -0.3 X-Spam_bar: / X-Spam_report: (-0.3 / 5.0 requ) BAYES_00=-1.9, DATE_IN_PAST_06_12=1.543, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Karim Taha --- 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 Tue Aug 8 06:08: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: 1818769 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=Lrh7KmWI; 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 4RL0CS69nDz1yfM for ; Wed, 9 Aug 2023 03:13:56 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDv-0004cG-Ud; Tue, 08 Aug 2023 13:10: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 1qTQDt-0004JY-Kj for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:21 -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 1qTQDr-0003qg-U2 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:21 -0400 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-317dcdae365so2683812f8f.1 for ; Tue, 08 Aug 2023 10:10:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514618; x=1692119418; 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=htR7DySjkwXmkr4i/feK2Wpjipk8wcHMAZjZzgfbE8g=; b=Lrh7KmWI2jnULG2VBoq+s4sCaHoO9MVsUpjuyFKbTzq9o2l4wW8iXEA8sR6Faz3qsQ 0QzmSD2tr71/MZAxwgK9hgUhcTixH0vsV5P00mkvPlF15CCcZy8YIWmKvCumkAzw9QaC 4TQdpymy4BFxjnDIqL+DiLcFJnUuDQfvVSHKns3OPlJelLwc7dhpf8FV2MErv3WJKV+R cP/DxZad+y/nV5BmQZM6gyu94h/kUq9JUXQGRC2Mt8D4gfddzyAaMF1RCM5IIk+4vi5t Wm9RrwYY65+0mrTOFnl5Qb8JYTW1yhsPDKvdBYpj6KB1iKNOdFQaBRSlY+NAU0gU7zaC JmZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514618; x=1692119418; 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=htR7DySjkwXmkr4i/feK2Wpjipk8wcHMAZjZzgfbE8g=; b=JJhlotylGqiv1RVZLwXttRTqByIM3pGOVSIssvGkJi1zsVuh96zezayCJ3s0C2Zf2j aHd/L/OZfCN6djBrFgS10G9a+mUgXDdovZ1ewQu1bEwCZ++tVK0MzJEbd46nynCrHjW4 r7c2eFVdmSRUbLy2HFAHleTVLTKQBO9Cggqt4rJRI/ZyQsy5RXswnFd2bUJcRGMdS+Zq aw1MRRhICGB/PqZ6YuMSlT7c8HLqqj2tmy9oJe06oEWKWT5F81KJdqILVDTJ+rge5Mzm fJEzUximqsb38DftC9XLd7bEyhqancVczY1iQIUVFQwIzjUzHUhVbUt+m4MP0etPm8mo UIZg== X-Gm-Message-State: AOJu0Ywo0zNo+0mLFQPOL1K6oFP8qNwqiC0JV0S0JNJsSyxJTC2ek5gN qFGJwNa/Z7gmfqCBuNnIZY0TAWj+N/SRww== X-Google-Smtp-Source: AGHT+IFdzUJqi4aUettm847OW8rOsnMSJmroLDHUcJBfaGd1tkJ/Qc+YMfnG9GhM8+vnUvVjk3Dfgg== X-Received: by 2002:a5d:4ecf:0:b0:317:562d:3f21 with SMTP id s15-20020a5d4ecf000000b00317562d3f21mr67524wrv.10.1691514617946; Tue, 08 Aug 2023 10:10:17 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:17 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha Subject: [PATCH 30/33] Add glue to call the following syscalls to the freebsd_syscall function: Date: Tue, 8 Aug 2023 08:08:12 +0200 Message-Id: <20230808060815.9001-31-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: 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 --- 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 Tue Aug 8 06:08: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: 1818746 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=JYSpgUYu; 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 4RL07Y6WDTz1yfM for ; Wed, 9 Aug 2023 03:10:33 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDw-0004jp-Ty; Tue, 08 Aug 2023 13:10:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qTQDu-0004TB-JB for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:22 -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 1qTQDs-0003sM-LG for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:22 -0400 Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-31768ce2e81so5105686f8f.1 for ; Tue, 08 Aug 2023 10:10:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514619; x=1692119419; 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=KspvY8FV5F74efJIOVU4WuAXYNKJQkrN6FRFbUmd84c=; b=JYSpgUYuZJSDAK+kT5AKzwsDcOWLGOv6axRDwyi9CJLrHyZe1sfQr5xxqxwYBuYrPS qMVI5O5V/IiLDMOX6HLQPm3KjzvTiIMgGKShZW1V8ZOivK6ir3YkApRBaU4V+UYDVJz4 xi9Z/OXQAyqhF+L/D/+Yj9LTgCS8ZdTthZwAl/N7wP7/Tz5gDDHqzM301h2U2IE3Ri7V 8Lrk3Lf9Fuc2aq56MW6+c8oM8M/XaT/zpoq1K1ms6Y6RZFDEmBJz0wz24WEjd12RAX2k klVw8hriqJno4ZlMwg41LWUtSbjHLuu4tfZBvxN+zNJXKa5fztIkISHna36S+riW3SbO Z8IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514619; x=1692119419; 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=KspvY8FV5F74efJIOVU4WuAXYNKJQkrN6FRFbUmd84c=; b=dzTydaeLF0pAzlj/tCkqrLggYJTixKYT/5nid1wSp8imKoeqp2gYHldLE5jRFVLbb5 2ZKFctA26fdIYeoEfTwd0sJRndCXKBKnrK9FTUaToBCgLdJszymXXafpslfjpywyROxK fx4ZV1OHnwhVG5F1U1ehL22GzQXoSkcBTwvPSjJSiRMKHjRpH1UOHVLSp+4Rb5AR9xGb 7Xqi0Z5cvxRujOsi6DnANMQekLPFqk0gxxMCNj3R5VnzFyKaYGHiJLmZbsR6QWJ3Slf3 QmElEaw95UIrU1mPkQaO8iOvRXgxq9j9pi8uRNr5KoDTv4HBOb55uBke/2Pnlx8+tama IAyg== X-Gm-Message-State: AOJu0YwSminKuBfFvXCBAG1uhb+fGZS7JHPY3FwXKeTkPdihytgk+urW aVNrM3S0jrAqYg5O/BETI2GqVocFDhbDTQ== X-Google-Smtp-Source: AGHT+IExIg7Rjnf69/S9vB/yixph0s3j3PFjfBLdcS0f/Xb9lZqB7DAQ62wanb1k9Z0BP0V+8I1pdA== X-Received: by 2002:a5d:4e07:0:b0:317:62c3:13a7 with SMTP id p7-20020a5d4e07000000b0031762c313a7mr70499wrt.19.1691514618896; Tue, 08 Aug 2023 10:10:18 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:18 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha Subject: [PATCH 31/33] Add glue to call the following syscalls to the freebsd_syscall function: Date: Tue, 8 Aug 2023 08:08:13 +0200 Message-Id: <20230808060815.9001-32-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: Warner Losh getfh lgetfh fhopen freebsd11_fhstat freebsd11_fhstatfs fhstat fhstatfs Signed-off-by: Warner Losh Signed-off-by: Karim Taha --- 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 Tue Aug 8 06:08:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1818770 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=CSWihtO6; 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 4RL0CS735gz1yfh for ; Wed, 9 Aug 2023 03:13:56 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDx-0004mD-Oj; Tue, 08 Aug 2023 13:10:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qTQDv-0004ZW-4x for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:23 -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 1qTQDt-0003tY-FR for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:22 -0400 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-3fbea14706eso50275055e9.2 for ; Tue, 08 Aug 2023 10:10:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514620; x=1692119420; 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=s+AZdeVO8wAJh8eKQIpeCWqrlRi5ecKqsWauTeqUKBE=; b=CSWihtO6yRaxQbLSqQCTA8t+j4/vJ7/4BfIQ7ZmfiiYWBYSUUXke5NxBlzSZWREh36 363Xrc1XIkp88hjsHrE1OyxVt/rsXVSHzuhD8lxglfWbITiZUBb+S651hRNW/v7f5cNZ stca4ShSNBwxT3D/55RbWptxvfZ59t40A3lFKdkG+Uv/kPl5MAANW7zB3G2UbLh4ZJer ZzxMNkgjpGfCZawDrQli7VeerTKzCozY0n0e9omu+PKx6NPHvnbQNy47vDnVujshpc9j 2thELsXShhBnXM1w+r/USbEcWWFIkV+jG0uLyASWQn/GB4qWNmLhA36FXKAFLw5DwVYl SPmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514620; x=1692119420; 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=s+AZdeVO8wAJh8eKQIpeCWqrlRi5ecKqsWauTeqUKBE=; b=WV8w7ve+uNatb5GXU7F5wbmJtzGCSoLzD0Qu2hodW4XvFtkkypbOS4j5pBWeMwTp2O GUPHa8wcgZFvhF1C9Aa9ZlThAmVy0nQsK1jgdJPeNeUhFuHvmn/FpDqBuJ8BxZSMooc3 OniAwAZQDtl+o2Fl1KYQ9p6mupuj1aD61sIwo6G6nKQGofs9W0BemWgXupnFb77IjOBO 6CnInLHVWdpIkx4SpZR4fmD49uWUhAY83bmd+VT4ivMX4ZObnpODB+p3mrmIY+oGIvY0 QvgXKwrf4jNrK9UEprsUF0rksgl5ZAYqV/NPsN6MDQhfT1Jamx5E6GfZS+nWjFNYP3UA Kwag== X-Gm-Message-State: AOJu0Yx1hKnAjZpq8PGFir+sbZcBzIhxWaVzNqyhtwDFkFYQ/0Z7AWBr N16tywT46eyDFyijwNie3rl4x1QWN6J57A== X-Google-Smtp-Source: AGHT+IGedRQEncCm+RQQrg7lpFW5PkGQj7xUhq4mQQxFD/kmNqFqTZX/Yex6EvoMnD6kP9yq+7+SWw== X-Received: by 2002:adf:db05:0:b0:311:142d:5d97 with SMTP id s5-20020adfdb05000000b00311142d5d97mr47309wri.31.1691514619884; Tue, 08 Aug 2023 10:10:19 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:19 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha Subject: [PATCH 32/33] Add glue to call the following syscalls to the freebsd_syscall function: Date: Tue, 8 Aug 2023 08:08:14 +0200 Message-Id: <20230808060815.9001-33-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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 freebsd11_statfs statfs freebsd11_fstatfs fstatfs freebsd11_getfsstat getfsstat Signed-off-by: Warner Losh Signed-off-by: Karim Taha --- 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 Tue Aug 8 06:08:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Karim Taha X-Patchwork-Id: 1818772 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=IiANvJZa; 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 4RL0Dz2Nv4z1yYl for ; Wed, 9 Aug 2023 03:15:14 +1000 (AEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qTQDy-0004wp-1u; Tue, 08 Aug 2023 13:10: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 1qTQDw-0004iz-HE for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:24 -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 1qTQDu-0003vE-S1 for qemu-devel@nongnu.org; Tue, 08 Aug 2023 13:10:24 -0400 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-317b31203c7so5160287f8f.2 for ; Tue, 08 Aug 2023 10:10:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691514621; x=1692119421; 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=TGnLUfuVUxE+bq89HsCJFUijzBCNRn3xwow33r6cc7w=; b=IiANvJZau/43IAqULXeEorJSSGAD0OETvTFNDvsz/15cq7D1WytldmNI0vjoPgm33W N55X2RB9ZBspJoYk2+6PqIiOPQtwK4lkLx3iOsL4liDdTwvPGP4Plu56grYMYLTRs6j4 8TNl5d482IrVuIS4RBE5SNiLrugVWJvB9nmIaP+GLqcyc4qo4oDvHsePQ2x4hHGmibTo AJAWs5zmsWExYWV9ctd1Rsxt5DjPyNJ2CXxpOuaBjMnMnEWId9ciJVSE8Qha8lqcEZxu yhQLFEM4Ts2CstTknSfJ1TUskeSp3sLOcTWe7jyM4VAKUrDsw2ptsO5vjVGiIvs9lQme T2Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691514621; x=1692119421; 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=TGnLUfuVUxE+bq89HsCJFUijzBCNRn3xwow33r6cc7w=; b=lgPyVE1/6JeNAXWgq/jsECVapaPS4yVSgLky6qAePKcs5XPJMxcWNkp2mDE+Sp/NdO f+qnW8uFni1tPQy3FfJE2IhloXaOUN7IkvEjZEVSdcMxcDO7zRfwGJUcSYlL1Ls2ceq1 6xqC21eMefEhI7iCZv+pGLo3sj6D4f9IY85mYPffi8w/KhJRGVf2lJ7kdQpdoSkpAypF 8WW6D/nofmgFgkJRiQgsIc47JtWuuoXpkuIqm1CRJG6+bE3uVWymz9owC9iXO5LF4euE s4zSPbc/MjVSQZ5tGnCNfG86XwX/NwHUNM1gUHBYCp4LXBKTEhUbwrHc9SkP80TEb27u Xd2Q== X-Gm-Message-State: AOJu0YxS0Fr2AC+gLFw5/WmNrmefsqkWEjoKl9yrOjDmCVbZf+vqJ5oF a0nf2hNMWcmNj+bUJptQCH3MU/oXrW4Tcw== X-Google-Smtp-Source: AGHT+IGusMO4FPJ/HQ46AjkV/rOQh333tDp6QhwSQ1GCViGZH029Vv9dHqiZPfcTQ/OAjqrZdEjzSQ== X-Received: by 2002:a5d:618a:0:b0:317:73d3:441a with SMTP id j10-20020a5d618a000000b0031773d3441amr31367wru.46.1691514620816; Tue, 08 Aug 2023 10:10:20 -0700 (PDT) Received: from karim.my.domain ([197.39.230.212]) by smtp.gmail.com with ESMTPSA id j6-20020a5d6186000000b0031455482d1fsm14191663wru.47.2023.08.08.10.10.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Aug 2023 10:10:20 -0700 (PDT) From: Karim Taha To: qemu-devel@nongnu.org Cc: imp@bsdimp.com, Karim Taha Subject: [PATCH 33/33] Add glue to call the following syscalls to the freebsd_syscall function: Date: Tue, 8 Aug 2023 08:08:15 +0200 Message-Id: <20230808060815.9001-34-kariem.taha2.7@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230808060815.9001-1-kariem.taha2.7@gmail.com> References: <20230808060815.9001-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: Warner Losh freebsd11_getdents getdirentries freebsd11_getdirentries fcntl Signed-off-by: Warner Losh Signed-off-by: Karim Taha --- 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} */