From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741924; cv=none; d=zohomail.com; s=zohoarc; b=gudYCjbt9Us9yGhhAENSTDeOSFchh0KAjlY3TfWbN5d/Jg2v18YK6bgdnm1Ri8YOAPyCA6QT36ZxeQZsIar/CGaZY440kiCgh4DgmNFOHRS3UNuD1qwn/SH6escdGRKYnZTJU3C4t++rEP2ieoGBZXj4wyaFcBzSwbah9dVCEe8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741924; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=8rpruV1+UHQV55pY2gJJC4yEtZAqwr57MV7/5Hwoml4=; b=J1TzScWGDH1xBW+h8XIhMKYgW2U7YKKXeWDyoEhI7eRO/SLQVhbDhv04c+llo7PDzTpVke3a9p9+EWo1DoQJzYgNhvrLcDaJKPIe5dzWkh+Xn0InU9Hj3aTnLOaDO18enoijBzB5cREtrGvr4feaqWJjxcscfrt23jwA8ZXIrCc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 177774192421462.344602670785434; Sat, 2 May 2026 10:12:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsB-0007nG-2z; Sat, 02 May 2026 13:11:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDs9-0007mw-Hi for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:21 -0400 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wJDs6-0006zv-El for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:20 -0400 Received: by mail-ot1-x32a.google.com with SMTP id 46e09a7af769-7dbcb467f2bso2595352a34.3 for ; Sat, 02 May 2026 10:11:18 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741877; x=1778346677; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=8rpruV1+UHQV55pY2gJJC4yEtZAqwr57MV7/5Hwoml4=; b=DZ0escL15QC5NllOP2MIxvYA1EBJvhWPjNAkuDDtjp7UyIc0K1MKX8zkSzrQ8xVG4J ef3ekVbrsSXAKF0EV6za2kgM32Xq8WZnGQHVLMH9z8yZD4ERNH6GjrniGxbTKbJnY6ya v5zolqkzumagnMTfhQHe8iAeCwWM0NObAQ4wJpekrII4+IoMVKUH5nwCYQUVXZisag+v WdEd8vDkvBxwAXVo95CyHAuK2HA31W74qvs7rz8po/uw5tbS23bRXLlx9qsdTjWCpfPo 07IPbgGxDQSdvNC1yCLvTzDA4rRpsT/tBfEprw6T8nBTGW1nETy23zdYEsqgaEcc0VXX 5P4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741877; x=1778346677; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=8rpruV1+UHQV55pY2gJJC4yEtZAqwr57MV7/5Hwoml4=; b=le014o6KpsPS89D5I/wLyQNT0cc3JYAH7PCyf0bwFmzgx/qZMbqIpIlnE8j0afYSUn GMd4k95LWHl7C+EW4zVhyZTuyv3RWQYMRY/vMmXN1OKa+7TMBUs3Bt3ZVsQ+Y4k7S7hT IOZi/+/gxCSp/xc3IRrd7o31HVVXA8bodr+tdi9RiHJQuEuhZ9ixtLKoCljv0Cpl2Bj+ 5aNa0mkwRy8LiXApz414bkqU8IIfMsehwqouxG8vMlV7DwZU7n77oEySKTZfnV7UUQTt 33C0PtPkdBzKqS64tPuOhtAVck2QYiBRX4bKp2aWMmA9HIFqzWcA5um8XoL9MsEF3JPE +ZaQ== X-Gm-Message-State: AOJu0Yz2CFBCjp8b1tTqDr915JUR6Mbo/3XVvGrkmXWjyzugHIfusEae imOVDqGVYdkDZn8p666NdDhcg/RghcEwXgiAIVBZ50l4ifAC5dc38wh18lJ9qwBDdP9D4cDxiYP w2po4E98= X-Gm-Gg: AeBDieu5s6ClUCawESoYY7Dxn0KtHsFI7b0ouHOfidpMWYb+5Xycc1f2eRufC/+4ZLr mgkurptGXtMzWZQqN7ydyOJNMc5OyUc3J+097wx+0Gg0SxwP00KZAGNPFq4MANVOj361yA1M9UL Rf40d3uSsf4nkzWhrjfbrhqPT5dWUMyWeBD9gir4MAVKxtPJIRvJ4fBybX8XoSr7B+RqzKHOC52 HcPNtsIasCeMTervY32GlN+V4XNtVyCE8Rbm/AH4f/BlXmGbqpKzM6CBM62sYcJPENiVHS4zjVk XnPThruRnaZCH1Iz35cmZvKTrecNmmFiV+lqDh/nWZhpN1KFzF4Zko2drl6Ce+BYpdAWYoEzsPJ 2dVDk9BV9fYnuf5ntbCO8vUdhCk4NZyWvDqTQJ6kgDCNOZsZr4aNwUAP81HPemiXvcBiprEPQ7d 1TxM0oiXrUb8KevJzXzKjv X-Received: by 2002:a05:6830:6b04:b0:7d7:fbe5:e9b3 with SMTP id 46e09a7af769-7dee11e6b2dmr2164088a34.3.1777741876995; Sat, 02 May 2026 10:11:16 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:22 -0600 Subject: [PATCH v3 01/19] bsd-user: ioctl: add common definitions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-1-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , Stacey Son X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2413; i=imp@bsdimp.com; h=from:subject:message-id; bh=SSDuJGLAHSn2lULS+9Ubyrr5Kig3p4lTT3gRT8PcNKY=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/PjWWv8FG+518ze7jl5epvYBjwre9y82dS6 0pAFu9wno2JAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYvzwAKCRBsHNEofbAR APozEACVqW7Dr9i2BZsKxYKsCegmf9+UQtIimIUJvkOdV1PQovMmLtDNW8JGiaEMZz/6vW2Rgyw VPhfOr9GtcM6Xu/opFS7JuIYKvmrQyRdD/wD3Nc6kMGhKlMwReC49/URi1e7vuAnA8lTCigH/o2 7I78mOigfrX5NlQcNxkvwmXbacWzJzHzqGoYc0FvDCCi6blwO6M4PoaA31KadyGYWEnriyqZdKu JDAbr7smbzU6AJddCogBr/0+AGMow1/HTYa5o+ANRVHCCb3QiImg35z8EE3yAd8oeXDgloa/oUJ cGp63U4QJvyWv4MtVvLKnWhZjhNC7rtgVIX6HXWaXG8jh+HfTej14GJ+ivatoSLXHEduxKiyqoJ Fgl/uNRjJSPWdX9tyFX6nqp2mglwDi9j2rqvlijxXHQ9EQhNhzKMWIL9TUYbUP8QNwH0CUcHkWt CV9RsfiQbWxG3o0PlYDdBOy63/DtRtmZKo+TZu3gWQe+1IZd8DMloQTQ+JXMQiqLLEH4DdSly6G yg0xH12mK76hMfHVSW2KBr4JB5GoQZ462qqlvqnHtpanuLsiQHdK2kWTANXC69ymoP2tvvl37OP i46el6EC1fLwUpE0k0MOcvgxW3gcNk4SGtuIM898EiOvBSdnCWTWQN/yjsu1QJIrCsPJYwWhWm3 2MO7eQNuIHwKaeg== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32a; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32a.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741927464154100 From: Stacey Son Modeled on sys/ioccom.h. Signed-off-by: Stacey Son Signed-off-by: Warner Losh Reviewed-by: Pierrick Bouvier --- bsd-user/freebsd/os-ioctl-ioccom.h | 43 ++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 43 insertions(+) diff --git a/bsd-user/freebsd/os-ioctl-ioccom.h b/bsd-user/freebsd/os-ioctl= -ioccom.h new file mode 100644 index 0000000000..3bb9ef2710 --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-ioccom.h @@ -0,0 +1,43 @@ +/* + * FreeBSD ioccom definitions for ioctl(2) emulation + * + * Copyright (c) 2013 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef BSD_USER_FREEBSD_OS_IOCTL_IOCCOM_H +#define BSD_USER_FREEBSD_OS_IOCTL_IOCCOM_H + +/* + * Ioctl's have the command encoded in the lower word, and the size of + * any in or out parameters in the upper word. The high 3 bits of the + * upper word are used to encode the in/out status of the parameter. + */ +/* number of bits for ioctl size */ +#define TARGET_IOCPARM_SHIFT 13 + +/* parameter length mask */ +#define TARGET_IOCPARM_MASK ((1 << TARGET_IOCPARM_SHIFT) - 1) + +#define TARGET_IOCPARM_LEN(x) (((x) >> 16) & TARGET_IOCPARM_MASK) +#define TARGET_IOCBASECMD(x) ((x) & ~(TARGET_IOCPARM_MASK << 16)) +#define TARGET_IOCGROUP(x) (((x) >> 8) & 0xff) + +#define TARGET_IOCPARM_MAX (1 << TARGET_IOCPARM_SHIFT) /* max size of ioc= tl */ +#define TARGET_IOC_VOID 0x20000000 /* no parameters */ +#define TARGET_IOC_OUT 0x40000000 /* copy out parameters */ +#define TARGET_IOC_IN 0x80000000 /* copy in parameters */ +#define TARGET_IOC_INOUT (TARGET_IOC_IN | TARGET_IOC_OUT) +#define TARGET_IOC_DIRMASK (TARGET_IOC_VOID | TARGET_IOC_OUT | TARGET_IOC= _IN) + +#define TARGET_IOC(inout, group, num, len) ((abi_ulong) \ + ((inout) | (((len) & TARGET_IOCPARM_MASK) << 16) | ((group) << 8) \ + | (num))) +#define TARGET_IO(g, n) TARGET_IOC(TARGET_IOC_VOID, (g), (n), 0) +#define TARGET_IOWINT(g, n) TARGET_IOC(TARGET_IOC_VOID, (g), (n), siz= eof(int)) +#define TARGET_IOR(g, n, t) TARGET_IOC(TARGET_IOC_OUT, (g), (n), sizeof(= t)) +#define TARGET_IOW(g, n, t) TARGET_IOC(TARGET_IOC_IN, (g), (n), sizeof(= t)) +/* this should be _IORW, but stdio got there first */ +#define TARGET_IOWR(g, n, t) TARGET_IOC(TARGET_IOC_INOUT, (g), (n), siz= eof(t)) + +#endif /* BSD_USER_FREEBSD_OS_IOCTL_IOCCOM_H */ --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741939; cv=none; d=zohomail.com; s=zohoarc; b=ISfAQhQx8aH6OpE42WZslOWiWYb9KqMM84OtPqeYdCbiG66V2buKiiHt+lEVSdMh+8rdAqmGuzDGI4r/jAEztJM9sQhGzBaAPrbSxEAiDjSlafSDsfvz+ra2GNErPEggDqGQ1qU0V9iXPQVEFZfkprEb7lEFXkEJ9Fa0SXZDvJ8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741939; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=GYYCWCPpIZwhI5J2gn16x+vPuAuWxPuVuHhWLDreRgA=; b=O/hzk02zc+HVVPM9X1pD0TAQp656UUJhVBkJSC1VP48wGX4OuAjxogS+AB9520oUA8ksInGSaFpe6qf9LH6LsF9DPn4tUucm6Jm5cWCDh2+5fPjKPMNy8eXiZE1VaeThr+g0x8/ncsHsGbWiaRb9tBZGnl1mfAwV3ITEMnCM/HQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741939315541.1338128930536; Sat, 2 May 2026 10:12:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsF-0007oc-Mc; Sat, 02 May 2026 13:11:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsB-0007no-Vp for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:23 -0400 Received: from mail-ot1-x331.google.com ([2607:f8b0: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 1wJDs9-00070G-Bu for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:23 -0400 Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-7de431da8fbso2612246a34.1 for ; Sat, 02 May 2026 10:11:20 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741879; x=1778346679; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=GYYCWCPpIZwhI5J2gn16x+vPuAuWxPuVuHhWLDreRgA=; b=Lf27EX7ejB0QxEucD+t5eTIWb0pPocE3U+OcJYfM++F0bZ90dTnhMteSpyaCLgZsTF ed5efWzvw6PaQikEi/OX+W/3eGnlLg7oEt52ASyu5b+bn3AIAsh4dnQxUDewqrDxavAi 3cbnT/v+2ZjVXzcTBv3CTv+jfgRxyybIAf4066vfqCfwgDeh3qodSFZo885liEfsYoWL dlh3nUz9znKMGlYksqm1jdJlDM6aP00uZb6nZlLIHH+j5lXsCbIiCREM8nivWhsW5Q9j s/EHaxd3sv6G4IcNObz2K6djYXq3eC/XoeMj+tbBCDwx6YimBZrfDTy/L6AXB6fMz5wS 6UYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741879; x=1778346679; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=GYYCWCPpIZwhI5J2gn16x+vPuAuWxPuVuHhWLDreRgA=; b=ctl9pgNg8hUIioQc7O3uLJHfWFEmG8mOQHTVMEaqQNRFk97wiW0gUVB6Md0PjdOSnD 5SmD3vcEHQ1Fdj5z9Ox6spvQPFF4QtZ8YnY3toyhHoQ55wjt8F4nh9jDrslgO6dJ8zac CZFN69zlNKA5DfFibyu65YCqrFPx6AIumP1Pe6qntZq6aq/UahCVe4kgyfXwOfkTbTVR c5gD6AbXoBiqE/fOhG9m+pwrYGHCxtfAC/VIi0wWx1JkOoARRdqJpgiyyYBaYG3/ELRM 6CuQHereYsIVvZJwbFXt9kzV5UgLwygH2KHVu+ko5GmXu8rlpKJkxiWXaYNu56stBIcR Ixcg== X-Gm-Message-State: AOJu0YwRW+pCy738+fw45rQHJZ4cT1h5fNyh/JzCSZgiYTXTEjCWzFkr SDJQXSEVAMCTYdlcgOez12cy9D2uq3+WAB+fw+Dugc3KoWGDehK58pxg17KzEMb8z/XTRn+aLTi 4Z/OIgv8= X-Gm-Gg: AeBDievYxpJA8bpjd0QF1CN0CgOLkbxmv+Uvzoet6Qb7cmBCDgZ7Jyjgra0RxIQHekH AgQM4IdaznR6/SouhIBSgAf9Le0K23Wox7s7U10lT1u0QMHzW5GUu5q3UH618a8qdk3z9ucpVpX LtNr2QgYMWgjV7k8O/mpgq+MT/aa7IgJcwP7b/y4JdiPG2iAdOQCBNlvNWq+JQwjIOVn/bYzNhi aXK3mGCZzdj8Ge9vivqZIDv7RSwj9lKC9P9dIaNqb/MPMj9jir9vENG2s+W3n9uPfD6IN/fxGW2 yhL0VJGi0YKclTzut95ZDRVaNrhiPr7vw20SHQ0kUJDu52CiNeo/t8BeNuXZRVy7J8bDDYWF6Za J9m8XSHGa9LANi2pWwm7+mBBSYAaYfOWYpyCkbjV54NjxD0ty5Mkge6gknTQ5uTXiIzHDC4j91T 2lR+6aBVYoQEp8JUkw8V2Cnyrckjnr0FE= X-Received: by 2002:a05:6830:2a16:b0:7dc:da80:42c3 with SMTP id 46e09a7af769-7dee12af3fcmr2211921a34.1.1777741878775; Sat, 02 May 2026 10:11:18 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:23 -0600 Subject: [PATCH v3 02/19] bsd-user: Add FreeBSD tty ioctl definitions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-2-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=12978; i=imp@bsdimp.com; h=from:subject:message-id; bh=jeG0JiwBZQqTawEgfLsX1Vjt6hCsEjtcsrPHqCS+E68=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/PJiyaWlKKIjR4+MWaCQsKu88K3OhU9peE6 QAIyZzMokuJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYvzwAKCRBsHNEofbAR ABpAD/9pge4F/4iU/KlPp3cyCX3hSmvYggOEzbx1YpRwZ8s2ZOgNh6izaX2KfqioKuD7GAXpbr2 ZwdiFEwjfFAHYtb64y/iH01/qykHvPOjed6aDSpyzpLcsg+e+8IIYtH1SyHccNFmLN14cCFRRSf hIusQXU4IpgmtF1nqjoViMFbpJQL3owVWZm6toB+vSRM2Jyf08DuDUg9cbuEJKlmA9ppkMHNsgj f20YBsdyHkoy83g75k8MRR0S90JQk0V7Em/wgVERI6uaF0jin5Q+2IsZITwxrMmbXxYYr7aG6Fu uSuVEnMRok7ziehMhy8F/l6RVKtJF29pkPACvYkyudEakvG/qLtxtJfzzBD1JCAAiGSH4o5Q0Xi j7Q/PZR6MVGEsfFRjgZM0dBOaxCfR1U3QTf5ICltwtBNf112/C2WYvPgGBgJ2S7sGffvs4P13RE rrn1YrOp0LypgyVZlvAoO87btMz26YIyEJOwUXNvc7Ty7nieS4pfh6DlpwmUsozMBtVs9OpBvVn rkxqcQE65/jhUJtzBs9ltuajXRzu3BRg8N/s5WBC26Z93RBG6vF7WZQdYxxPzz2djXzJmPRxnkD vklXaqr/OCQ8tdSP1iKRHcGr0c1Km8vHgQtFC2uFDIXkGKh8m/dFbLR+9Rjy9MHHw0se8gaRMhW N6+b4UstrPeidKA== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::331; envelope-from=imp@bsdimp.com; helo=mail-ot1-x331.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741941424154100 From: "Stacey D. Son" Add os-ioctl-ttycom.h with terminal control ioctl definitions including TARGET_TIOCGETA, TARGET_TIOCSETA, window size ioctls, and the target_termios structure for terminal I/O control. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-ttycom.h | 239 +++++++++++++++++++++++++++++++++= ++++ 1 file changed, 239 insertions(+) diff --git a/bsd-user/freebsd/os-ioctl-ttycom.h b/bsd-user/freebsd/os-ioctl= -ttycom.h new file mode 100644 index 0000000000..d4af9f2e4d --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-ttycom.h @@ -0,0 +1,239 @@ +/* + * FreeBSD ttycom definitions for ioctl(2) emulation + * + * Copyright (c) 2013 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef BSD_USER_FREEBSD_OS_IOCTL_TTYCOM_H +#define BSD_USER_FREEBSD_OS_IOCTL_TTYCOM_H + +#include "os-ioctl-ioccom.h" + +/* From sys/ttycom.h and sys/_termios.h */ + +#define TARGET_VEOF 0 /* ICANON */ +#define TARGET_VEOL 1 /* ICANON */ +#define TARGET_VEOL2 2 /* ICANON together with IEXTEN */ +#define TARGET_VERASE 3 /* ICANON */ +#define TARGET_VWERASE 4 /* ICANON together with IEXTEN */ +#define TARGET_VKILL 5 /* ICANON */ +#define TARGET_VREPRINT 6 /* ICANON together with IEXTEN */ +#define TARGET_VERASE2 7 /* ICANON */ +#define TARGET_VINTR 8 /* ISIG */ +#define TARGET_VQUIT 9 /* ISIG */ +#define TARGET_VSUSP 10 /* ISIG */ +#define TARGET_VDSUSP 11 /* ISIG together with IEXTEN */ +#define TARGET_VSTART 12 /* IXON, IXOFF */ +#define TARGET_VSTOP 13 /* IXON, IXOFF */ +#define TARGET_VLNEXT 14 /* IEXTEN */ +#define TARGET_VDISCARD 15 /* IEXTEN */ +#define TARGET_VMIN 16 /* !ICANON */ +#define TARGET_VTIME 17 /* !ICANON */ +#define TARGET_VSTATUS 18 /* ICANON together with IEXTEN */ +/* 19 spare 2 */ +#define TARGET_NCCS 20 + +/* + * Input flags - software input processing + */ +#define TARGET_IGNBRK 0x00000001 /* ignore BREAK condition */ +#define TARGET_BRKINT 0x00000002 /* map BREAK to SIGINTR */ +#define TARGET_IGNPAR 0x00000004 /* ignore (discard) parity errors */ +#define TARGET_PARMRK 0x00000008 /* mark parity and framing errors */ +#define TARGET_INPCK 0x00000010 /* enable checking of parity errors */ +#define TARGET_ISTRIP 0x00000020 /* strip 8th bit off chars */ +#define TARGET_INLCR 0x00000040 /* map NL into CR */ +#define TARGET_IGNCR 0x00000080 /* ignore CR */ +#define TARGET_ICRNL 0x00000100 /* map CR to NL (ala CRMOD) */ +#define TARGET_IXON 0x00000200 /* enable output flow control */ +#define TARGET_IXOFF 0x00000400 /* enable input flow control */ +#define TARGET_IXANY 0x00000800 /* any char will restart after stop */ +#define TARGET_IMAXBEL 0x00002000 /* ring bell on input queue full */ +#define TARGET_IUTF8 0x00004000 /* assume input is utf-8 encoded */ + +/* + * Output flags - software output processing + */ +#define TARGET_OPOST 0x00000001 /* enable following output processing = */ +#define TARGET_ONLCR 0x00000002 /* map NL to CR-NL (ala CRMOD) */ +#define TARGET_TABDLY 0x00000004 /* tab delay mask */ +#define TARGET_TAB0 0x00000000 /* no tab delay and expansion */ +#define TARGET_TAB3 0x00000004 /* expand tabs to spaces */ +#define TARGET_ONOEOT 0x00000008 /* discard EOT's (^D) on output) */ +#define TARGET_OCRNL 0x00000010 /* map CR to NL on output */ +#define TARGET_ONOCR 0x00000020 /* no CR output at column 0 */ +#define TARGET_ONLRET 0x00000040 /* NL performs CR function */ + +/* + * Control flags - hardware control of terminal + */ +#define TARGET_CIGNORE 0x00000001 /* ignore control flags */ +#define TARGET_CSIZE 0x00000300 /* character size mask */ +#define TARGET_CS5 0x00000000 /* 5 bits (pseudo) */ +#define TARGET_CS6 0x00000100 /* 6 bits */ +#define TARGET_CS7 0x00000200 /* 7 bits */ +#define TARGET_CS8 0x00000300 /* 8 bits */ +#define TARGET_CSTOPB 0x00000400 /* send 2 stop bits */ +#define TARGET_CREAD 0x00000800 /* enable receiver */ +#define TARGET_PARENB 0x00001000 /* parity enable */ +#define TARGET_PARODD 0x00002000 /* odd parity, else even */ +#define TARGET_HUPCL 0x00004000 /* hang up on last close */ +#define TARGET_CLOCAL 0x00008000 /* ignore modem status lines */ +#define TARGET_CCTS_OFLOW 0x00010000 /* CTS flow control of output */ +#define TARGET_CRTSCTS (TARGET_CCTS_OFLOW | TARGET_CRTS_IFLOW) +#define TARGET_CRTS_IFLOW 0x00020000 /* RTS flow control of input */ +#define TARGET_CDTR_IFLOW 0x00040000 /* DTR flow control of input */ +#define TARGET_CDSR_OFLOW 0x00080000 /* DSR flow control of output */ +#define TARGET_CCAR_OFLOW 0x00100000 /* DCD flow control of output */ +#define TARGET_CNO_RTSDTR 0x00200000 /* Do not assert RTS or DTR automa= tically */ + +/* + * "Local" flags - dumping ground for other state + */ +#define TARGET_ECHOKE 0x00000001 /* visual erase for line kill */ +#define TARGET_ECHOE 0x00000002 /* visually erase chars */ +#define TARGET_ECHOK 0x00000004 /* echo NL after line kill */ +#define TARGET_ECHO 0x00000008 /* enable echoing */ +#define TARGET_ECHONL 0x00000010 /* echo NL even if ECHO is off */ +#define TARGET_ECHOPRT 0x00000020 /* visual erase mode for hardcopy */ +#define TARGET_ECHOCTL 0x00000040 /* echo control chars as ^(Char) */ +#define TARGET_ISIG 0x00000080 /* enable signals INTR, QUIT, [D]SUSP */ +#define TARGET_ICANON 0x00000100 /* canonicalize input lines */ +#define TARGET_ALTWERASE 0x00000200 /* use alternate WERASE algorithm */ +#define TARGET_IEXTEN 0x00000400 /* enable DISCARD and LNEXT */ +#define TARGET_EXTPROC 0x00000800 /* external processing */ +#define TARGET_TOSTOP 0x00400000 /* stop background jobs from output */ +#define TARGET_FLUSHO 0x00800000 /* output being flushed (state) */ +#define TARGET_NOKERNINFO 0x02000000 /* no kernel output from VSTATUS */ +#define TARGET_PENDIN 0x20000000 /* XXX retype pending input (state) */ +#define TARGET_NOFLSH 0x80000000 /* don't flush after interrupt */ + +struct target_termios { + uint32_t c_iflag; /* input flags */ + uint32_t c_oflag; /* output flags */ + uint32_t c_cflag; /* control flags */ + uint32_t c_lflag; /* local flags */ + uint8_t c_cc[TARGET_NCCS]; /* control chars */ + uint32_t c_ispeed; /* input speed */ + uint32_t c_ospeed; /* output speed */ +}; + + +struct target_winsize { + uint16_t ws_row; /* rows, in characters */ + uint16_t ws_col; /* columns, in characters */ + uint16_t ws_xpixel; /* horizontal size, pixels */ + uint16_t ws_ypixel; /* vertical size, pixels */ +}; + + /* 0-2 compat */ + /* 3-7 unused */ + /* 8-10 compat */ + /* 11-12 unused */ +#define TARGET_TIOCEXCL TARGET_IO('t', 13) /* set exclusive use of tty */ +#define TARGET_TIOCNXCL TARGET_IO('t', 14) /* reset exclusive use of tty = */ +#define TARGET_TIOCGPTN TARGET_IOR('t', 15, int) /* Get pts number. */ +#define TARGET_TIOCFLUSH TARGET_IOW('t', 16, int) /* flush buffers */ + /* 17-18 compat */ +/* get termios struct */ +#define TARGET_TIOCGETA TARGET_IOR('t', 19, struct target_termios) +/* set termios struct */ +#define TARGET_TIOCSETA TARGET_IOW('t', 20, struct target_termios) +/* drain output, set */ +#define TARGET_TIOCSETAW TARGET_IOW('t', 21, struct target_termios) +/* drn out, fls in, set */ +#define TARGET_TIOCSETAF TARGET_IOW('t', 22, struct target_termios) + /* 23-25 unused */ +#define TARGET_TIOCGETD TARGET_IOR('t', 26, int) /* get line discipline */ +#define TARGET_TIOCSETD TARGET_IOW('t', 27, int) /* set line discipline */ +#define TARGET_TIOCPTMASTER TARGET_IO('t', 28) /* pts master validation */ + /* 29-85 unused */ +/* get ttywait timeout */ +#define TARGET_TIOCGDRAINWAIT TARGET_IOR('t', 86, int) +/* set ttywait timeout */ +#define TARGET_TIOCSDRAINWAIT TARGET_IOW('t', 87, int) + /* 88 unused */ + /* 89-91 conflicts: tun and tap */ +/* enable/get timestamp of last input event */ +#define TARGET_TIOCTIMESTAMP TARGET_IOR('t', 89, struct target_timeval) +/* modem: get wait on close */ +#define TARGET_TIOCMGDTRWAIT TARGET_IOR('t', 90, int) +/* modem: set wait on close */ +#define TARGET_TIOCMSDTRWAIT TARGET_IOW('t', 91, int) + /* 92-93 tun and tap */ + /* 94-97 conflicts: tun and tap */ +/* wait till output drained */ +#define TARGET_TIOCDRAIN TARGET_IO('t', 94) + /* pty: generate signal */ +#define TARGET_TIOCSIG TARGET_IOWINT('t', 95) +/* pty: external processing */ +#define TARGET_TIOCEXT TARGET_IOW('t', 96, int) +/* become controlling tty */ +#define TARGET_TIOCSCTTY TARGET_IO('t', 97) +/* become virtual console */ +#define TARGET_TIOCCONS TARGET_IOW('t', 98, int) +/* get session id */ +#define TARGET_TIOCGSID TARGET_IOR('t', 99, int) + /* 100 unused */ +/* simulate ^T status message */ +#define TARGET_TIOCSTAT TARGET_IO('t', 101) + /* pty: set/clr usr cntl mode */ +#define TARGET_TIOCUCNTL TARGET_IOW('t', 102, int) +/* usr cntl op "n" */ +#define TARGET_TIOCCMD(n) TARGET_IO('u', n) +/* set window size */ +#define TARGET_TIOCSWINSZ TARGET_IOW('t', 103, struct target_winsize) +/* get window size */ +#define TARGET_TIOCGWINSZ TARGET_IOR('t', 104, struct target_winsize) + /* 105 unused */ +/* get all modem bits */ +#define TARGET_TIOCMGET TARGET_IOR('t', 106, int) +#define TARGET_TIOCM_LE 0001 /* line enable */ +#define TARGET_TIOCM_DTR 0002 /* data terminal ready */ +#define TARGET_TIOCM_RTS 0004 /* request to send */ +#define TARGET_TIOCM_ST 0010 /* secondary transmit */ +#define TARGET_TIOCM_SR 0020 /* secondary receive */ +#define TARGET_TIOCM_CTS 0040 /* clear to send */ +#define TARGET_TIOCM_DCD 0100 /* data carrier detect */ +#define TARGET_TIOCM_RI 0200 /* ring indicate */ +#define TARGET_TIOCM_DSR 0400 /* data set ready */ +#define TARGET_TIOCM_CD TARGET_TIOCM_DCD +#define TARGET_TIOCM_CAR TARGET_TIOCM_DCD +#define TARGET_TIOCM_RNG TARGET_TIOCM_RI +#define TARGET_TIOCMBIC TARGET_IOW('t', 107, int) /* bic modem bits */ +#define TARGET_TIOCMBIS TARGET_IOW('t', 108, int) /* bis modem bits */ +#define TARGET_TIOCMSET TARGET_IOW('t', 109, int) /* set all modem bits */ +/* start output, like ^Q */ +#define TARGET_TIOCSTART TARGET_IO('t', 110) +/* stop output, like ^S */ +#define TARGET_TIOCSTOP TARGET_IO('t', 111) +/* pty: set/clear packet mode */ +#define TARGET_TIOCPKT TARGET_IOW('t', 112, int) +#define TARGET_TIOCPKT_DATA 0x00 /* data packet */ +#define TARGET_TIOCPKT_FLUSHREAD 0x01 /* flush packet */ +#define TARGET_TIOCPKT_FLUSHWRITE 0x02 /* flush packet */ +#define TARGET_TIOCPKT_STOP 0x04 /* stop output */ +#define TARGET_TIOCPKT_START 0x08 /* start output */ +#define TARGET_TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q */ +#define TARGET_TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */ +#define TARGET_TIOCPKT_IOCTL 0x40 /* state change of pty dri= ver */ +#define TARGET_TIOCNOTTY TARGET_IO('t', 113) /* void tty association */ +#define TARGET_TIOCSTI TARGET_IOW('t', 114, char) /* simulate terminal in= put */ +#define TARGET_TIOCOUTQ TARGET_IOR('t', 115, int) /* output queue size */ + /* 116-117 compat */ +#define TARGET_TIOCSPGRP TARGET_IOW('t', 118, int) /* set pgrp of tty */ +#define TARGET_TIOCGPGRP TARGET_IOR('t', 119, int) /* get pgrp of tty */ +#define TARGET_TIOCCDTR TARGET_IO('t', 120) /* clear data terminal ready = */ +#define TARGET_TIOCSDTR TARGET_IO('t', 121) /* set data terminal ready */ +#define TARGET_TIOCCBRK TARGET_IO('t', 122) /* clear break bit */ +#define TARGET_TIOCSBRK TARGET_IO('t', 123) /* set break bit */ + /* 124-127 compat */ + +#define TARGET_TTYDISC 0 /* termios tty line discipline */ +#define TARGET_SLIPDISC 4 /* serial IP discipline */ +#define TARGET_PPPDISC 5 /* PPP discipline */ +#define TARGET_NETGRAPHDISC 6 /* Netgraph tty node discipline */ +#define TARGET_H4DISC 7 /* Netgraph Bluetooth H4 discipline */ + +#endif /* BSD_USER_FREEBSD_OS_IOCTL_TTYCOM_H */ --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741928; cv=none; d=zohomail.com; s=zohoarc; b=C/MRPnaPLChj5279/Zl8kSoHJLLkiHsCxHNDCshRBEigT4MP50WXVyoNrUto+1WS+9y4J/smg7eEEDrwa3tqKyL89eoF31WIOsdJA1syFqiGEk/negG267QzA/L8VtzNHFf4xLSdqY/1eLe4RgFetjB97OaMf1z1Q1Y1fOZwaUc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741928; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=BOc9uTMmCA92G3fIL292SccORYO+WLIzqUH2YtTfrJg=; b=BwxLZwfJSgd2u3aFaZ5EwCEvXGLa/wSZlK1KWrfV5y0/eoSWvyaoOmMsFiyckndr7MvAWAzkaFQBF1Cix+1zvqZJhb8A5hmcIMxjdgQV1ZZNiAch48QuWJh4K+XqyUy1zRBNhWGsEb5kJmyYBwTBfw5oJEpbrY2+xOgj5G2go2E= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741928298954.1274336420664; Sat, 2 May 2026 10:12:08 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsD-0007oK-H7; Sat, 02 May 2026 13:11:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsB-0007nM-6J for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:23 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wJDs9-00070O-C0 for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:22 -0400 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-7dcd89701acso2561424a34.1 for ; Sat, 02 May 2026 10:11:20 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741880; x=1778346680; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=BOc9uTMmCA92G3fIL292SccORYO+WLIzqUH2YtTfrJg=; b=T+nKn8L2tIU8n2549L9Oi3RJiTbS256+PCHyLtPX2t6nZRsXtzL8YLX9HfRUgNl7W9 dQ35GGJHc/uliCnuGLaGN/ZLc03v0uBCkciYQ5fWBcvfS8RIbQ/A9jpMgGQISkZleYJ4 5stxHPT3TszI71frZL10ofI7bk1hzneNyFMn6hY9wkSZZXG51loIHABDr8lk/dO5rTMo dEI3oAM6IDn2XsdU6o3NMk8rEeWYJXM0LvdoCu2rpe46LK7iVo9Vjbx+fzUgrxaBK8Ro 7ihwABdaYr8MpmwXBp4bBfk2R/VoFYg3eaBnURXZpN+vI9XDd1jLyMEyGdlb1KOBghoB oF6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741880; x=1778346680; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=BOc9uTMmCA92G3fIL292SccORYO+WLIzqUH2YtTfrJg=; b=l6vfWHvOd2ghePb3dKi/Qev6S1+Xlh213fRKcclYFzoQ68BIV9xHDZ36lwVNsO8CI7 ke6P4dUEm+v5ko8BwqX+JGwqpME3mjoCQ0FTsk9i3/5AQOMkOAdEAKTCBT6WWn81lsOy SZgOAoG22U1pta5m6G4BOyT/kduAvh0H0qJ0ruvDIQIS7Wzg/mHnitamPq1t410znifz qPVm+vlcizTttdeJhTolTCcBp5wsp2mD0y2IyLYze6jVupUKffRNzUIMHUztYVfyOx44 AAZYV2QSMcCexXwFugL+IkCGv8gJbM6lXjy1KP3yBnYErZ+obPAxSb2/w4CPQdhVcYB1 btJA== X-Gm-Message-State: AOJu0Yy425Zp4g1kt2BFCqQm0dsMKv80HjG42hKhSFF03z4XXeZF2aEb HK5SKRbVwGj/7dUrs7WJw75KN3AIWIn8Ayuq23wvY2h100RsVtwLNcz1PpEOYXGYUY0fisrrVAU sqJyVA8g= X-Gm-Gg: AeBDies+yyx39/eVGEyV79jSiPfJNcfMztBe5t6iRiMGtj7S6rfYgG43PiiJf7EgFeR a6444gUN+rxgy0w3f8+TpEALcNT+i366CaQrPDa+GNzR9riNSp5atD2QXQYAxfHjk3RHJc06tEa 0Ldz093E314zJnBNtsY01FTtqu9HR6dBLMDXJp8AieCgcYusfF4/IAtgZZIhcLvr1ppZKcLsGn+ j7MzWrIWuelF5IPvmazClQEWVN8vceZOUTM6vN3BuRLNf6cKrEeO71PZwHYY7dEYZLad7PB4BAd ItSSlUEhauviDSsSH9PbwPw+DeCk8L5Z82DTmIy/yScSRRZQvvXeSuMF6+UCoAS2jdFO3UvuMdI hG/lF/94lu+J+1RueKjWnjuvoMyk/C4GQnaYCP3JMebqiLzDPY8FwH4+FYOx+PukQDy5jxuDIcK /NvejvhO1osH/zdLKCvwg1 X-Received: by 2002:a05:6830:490e:b0:7dc:e45a:ade2 with SMTP id 46e09a7af769-7dee125070bmr2170912a34.5.1777741879902; Sat, 02 May 2026 10:11:19 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:24 -0600 Subject: [PATCH v3 03/19] bsd-user: Add FreeBSD file I/O ioctl definitions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-3-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1886; i=imp@bsdimp.com; h=from:subject:message-id; bh=F0g3+kO4gd2eueBCVnHy7OGOkP9ymMkEKTdI6DhkBcQ=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/PX/tnw0GGqKv0wZvSoVACMGnUvS7/4BUUM NtT5QUc/iWJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYvzwAKCRBsHNEofbAR AKahD/4x8CisNw9mFlW+6A5qT1/NwXeh0J8sTsNkyOCJCuESTHnm9ZXp8cXi6ymxyRkJ5f9ujPy HnaZl59WjS+Y/AOZEPPE3hwqt0eBFeYjpMTesEB00yqo7LVpO7Qz4UghWC7OfjB/FiTBDI4X1Bh SBZSVYo1dJtr9urbt+dY+mHvvmKjSxh6TW/5SJAuM486MKbzYoyqhr7BMB7+YGLIMUV5ZfMhokf zBMCLyfxqzfs2sWTBi14iYormwEufp4K4uQ3GFmOjbP2hmtKaCD6EgzN2+aJ+z/k7edgxsprENU ysfaOj29WviKSETg+S9ZmS3+r1yrH6qnBVymg3X1XekYjGLJVTDAork2RP8WtImwR3pXVUrmU5r ttWTRhVykwWueHRwzsrVrX15DwsYy+umEYtbVaZvRtzeD4Mnkcca6fX0GrMoQ+biMVEkjbc0Z7P gGl2nUAPgz/Cg2wDhZswISpI/YBzHOk/GR/X8lxJu+tKS9JDfT3jWkPIHuuzz/WoNKnXCpipggK XOtEPvI5XMd6Lw4q1oZft3zkLP9p3zTH9MDr9wNwTNMln6UHahmOgegIDCQpZdbCypEUEDE6LSt S2bctAD6lG1YBUB5E6fc+kgCUHrmwDaDaYcQlWaAxY8gVMqzz1BtycvyKkG5DcwI9+bDB1pRDeY bC/1S4Gu1DbK6FA== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::333; envelope-from=imp@bsdimp.com; helo=mail-ot1-x333.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741929032154100 From: "Stacey D. Son" Add os-ioctl-filio.h with file I/O control ioctl definitions including FIONREAD, FIONBIO, FIOASYNC, and FIOSETOWN for file descriptor control. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-filio.h | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/bsd-user/freebsd/os-ioctl-filio.h b/bsd-user/freebsd/os-ioctl-= filio.h new file mode 100644 index 0000000000..79e8f0b83d --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-filio.h @@ -0,0 +1,34 @@ +/* + * FreeBSD filio definitions for ioctl(2) emulation + * + * Copyright (c) 2013 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef BSD_USER_FREEBSD_OS_IOCTL_FILIO_H +#define BSD_USER_FREEBSD_OS_IOCTL_FILIO_H + +/* see sys/filio.h */ +#define TARGET_FIOCLEX TARGET_IO('f', 1) +#define TARGET_FIONCLEX TARGET_IO('f', 2) +#define TARGET_FIONREAD TARGET_IOR('f', 127, int) +#define TARGET_FIONBIO TARGET_IOW('f', 126, int) +#define TARGET_FIOASYNC TARGET_IOW('f', 125, int) +#define TARGET_FIOSETOWN TARGET_IOW('f', 124, int) +#define TARGET_FIOGETOWN TARGET_IOR('f', 123, int) +#define TARGET_FIODTYPE TARGET_IOR('f', 122, int) +#define TARGET_FIOGETLBA TARGET_IOR('f', 121, int) + +struct target_fiodgname_arg { + int32_t len; + abi_ulong buf; +}; + +#define TARGET_FIODGNAME TARGET_IOW('f', 120, \ + struct target_fiodgname_arg) +#define TARGET_FIONWRITE TARGET_IOR('f', 119, int) +#define TARGET_FIONSPACE TARGET_IOR('f', 118, int) +#define TARGET_FIOSEEKDATA TARGET_IOWR('f', 97, off_t) +#define TARGET_FIOSEEKHOLE TARGET_IOWR('f', 98, off_t) + +#endif /* BSD_USER_FREEBSD_OS_IOCTL_FILIO_H */ --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741966; cv=none; d=zohomail.com; s=zohoarc; b=SwzX1GvShavcJ5nrtnG7syZN8px8IHK3KzkqX+gRcoMDkeGBOsnwoXGgnl420ywfa6IkzxmcTmLbe4/7R4tzhAVkK4k8r2pSyG66A6BP7vOFXq91aaHw3Igo6le76oVe8yqSI46vTt8sdRWi3wYgbLfPHYCt9XlhswFuBb8Ttpo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741966; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=pzQlBpwbjHKfNIX1F8NUcqNQc7eo7uRyI8xNbg1H5G0=; b=RbuVG9qMyOyD2ykJbEGt1cwltbu2bYFTafWSVGCM3+EJHn/qxtARN9Hf+8HRDbu9l9VRVNBK7PlR7qu0B7rNlaiKWos8TuOEaHPamhjH5fgk1dDHEfij1GmQykrvXZZSVYBzHrdC+gntseUgsbKsrQqoOpwlhxQv9VyASOLQ500= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741966614832.8143060098089; Sat, 2 May 2026 10:12:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsH-0007pF-8u; Sat, 02 May 2026 13:11:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsC-0007o8-Ur for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:25 -0400 Received: from mail-ot1-x32d.google.com ([2607:f8b0:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wJDsA-00071K-Ld for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:24 -0400 Received: by mail-ot1-x32d.google.com with SMTP id 46e09a7af769-7de46b8e432so2764831a34.1 for ; Sat, 02 May 2026 10:11:22 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741881; x=1778346681; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=pzQlBpwbjHKfNIX1F8NUcqNQc7eo7uRyI8xNbg1H5G0=; b=KfrJwtSH1FOyvRfcjPxqlzgPmprP/5QHNJ4Dkr+A51SWKAHh3jFVnT988KqVhdXXwv uQQGylYrVDsRZA20ef3PbnjZK8o6rkKs/tkcdzg01tXEsph1nCIzI7McFJJoJO+CbdcG kPUkAuizf9VwBGAT+u3tUq1y7wmDlofYWKRihPGqaTF3lYPoRkLchayW5+glit3HLCIJ PH/yYys3pb5ng4nEqceUkIJPY3DKvzMMPR/Zdog6PSIbJO/lqhkSofynO8VAcZWmwO7C NuuD//1InnDKDLC1YzRwAnu8g/cMsGYrF+nn38voVpEqKarT2AVboEJ82ICfSeu4qrjv 9uCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741881; x=1778346681; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=pzQlBpwbjHKfNIX1F8NUcqNQc7eo7uRyI8xNbg1H5G0=; b=GvqUfpWQBjuIFJJKdVKBN7COyWc9aNbi/rRrfx2RO9xhv5n3V3qv4R4UuY04cTHoK5 4yLJosJNFF6TzLkssAvWjiLh97st1+PmrrnbqzTbe7a9355XN4zvywlyFM1UOYzlau5L Mje7G9QBuutNap15xGaXdDEvM8THGglmN2ecDnJvK85VRZ8TWM+SoC6Ckzdgt1Oyi3Qk lnirSDCvwgrQcamKLXBcJFUGLmNe9ehxL79lGxBbwSVobemqgIpmt1SHy9/dAQnk3X5m MO5jauGNrzEzA548P8y/V5Ngy+s7oWDC5OHohyPxy2lHHYHheAjihLf0Nj+znx1toj81 5Vyg== X-Gm-Message-State: AOJu0YxqVuINlc+jmzGYTUBehtVsvYy5JE+4eo8oKWAZB/qXz3KePqn7 WEjBpkcs+k32okwQCR86BvfMTG5oqqEUaRPL3axNASPub11FWgEpTZwP1SDiX5RbiMrMZl/lIYB c1J5VMGg= X-Gm-Gg: AeBDieumO7A6cHuaWyGlffXhzUlzIHyJDwI85YY+av2rxSF9JLqUBl9KWmOK/hgIn6k eL71+wZefQIjXthpB8+sCQ12paeipSmodHQ7pa/ihob7einKBn5imQmUEyzf80SnW3OSzwIQTyX /K28KXD3zevMFuC3R1WUMgpfV5eUBPbQhnqOsC7VfRDwq5LQfrZS6+KdUdDOCSUOEI038WIyDJP VCAdqMW5FK+hAmh8WkgO6rwTFv5aW7n+EpU1qwx9O7jMCitmwoIjIGAL4pKTK3OiIrHn4srWs0C bHim7kFGZeYi9LEbCvfFO28+4XBDPHZzUDX2mM3YGCRXOtxnnhLkEpZoe4lvFJ8LN0cN4H0n0Nm SfeCW8XvBj/DQ7TUYydJ4J2p3M4I4ZRMXWSibdIRcnPyUZfBz+ehIzRvm/aSoLm30hPtUoFljcV 1bSx0hGCuqIuG9Bjh7rxew X-Received: by 2002:a05:6830:2690:b0:7d9:b338:a695 with SMTP id 46e09a7af769-7dee11f9cacmr2324682a34.5.1777741880987; Sat, 02 May 2026 10:11:20 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:25 -0600 Subject: [PATCH v3 04/19] bsd-user: Add FreeBSD socket ioctl definitions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-4-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=10291; i=imp@bsdimp.com; h=from:subject:message-id; bh=Ou0K8wtzOZ5vOnY95dtBNYMlFjgDPOiJ0Dxme7+Y3Zs=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/PwlyNMocNMwkYFZ4EvrpSrj/FPJDUDpQVa qz5O5lEbdmJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYvzwAKCRBsHNEofbAR AL0nEACWnY2hGUnTQwJvlTkZoZPI//2kASg+BpQ1ZgHWRC1PpHyzOWDFtQS+/feL77e+WHngVm9 T6P6wDRknU462PoAiES7vJAOmSYv4gsZ7JC/+9xgHC3MnZa+cMS6qRMcDVo6tOiIJaH/5VgmPAA 2baJoe0GkRk1Y8N3tRtVZB+oN1CEP5vkhfcUbSc0c4GGCNnGKqSoIa/5U72TDvCrIDgvZ0sK4Gx Cpd94po2Z3bPQd6JWZ31sjJfl4FkAp/lBijNvuM/TJ0zkusv28EippJcrtgAfoBUgzCxUtx5thp orm1tp4ycGPD2dDlDb0Ohhqx0UTGvpMEtGOzZJ4QRmfO892Qg7wf8CvzNEQW6vBQFW3STEYR7wz nK8bQpd0kSgzdJS6n5J1XMEKSY/b4eqrkZ0P80Clo7Up28RZGmDYuFmtER/VMhrAuVgGeZH6q3m L/OrGgCjHm1MIW9G1xXSuSMfi6jku9nlU7jQPaMMakbUEtWdRqbaXZE43gb39bBROyvK2LAkdmv unhhfL3+MGlBFlkE/TwnpyBschdOUhbgMBBg4DoqkZ2eik41NRPn9oTP3IC/5326WTQJvebRNFT oZD0dgV/JnNZJtjabFsYNKdim2S0Z0JmbK4Jh5JY8b465XBla79XfQPdqX+BK+x05tLt5c3cYN4 HIyDkZy0l4OR2DA== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32d; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32d.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741967621154100 From: "Stacey D. Son" Add os-ioctl-sockio.h with network socket and interface control ioctl definitions including SIOCGIFADDR, SIOCSIFADDR, SIOCGIFCONF, and related network interface ioctls with target_ structure definitions. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-sockio.h | 246 +++++++++++++++++++++++++++++++++= ++++ 1 file changed, 246 insertions(+) diff --git a/bsd-user/freebsd/os-ioctl-sockio.h b/bsd-user/freebsd/os-ioctl= -sockio.h new file mode 100644 index 0000000000..5c1a619400 --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-sockio.h @@ -0,0 +1,246 @@ +/* + * FreeBSD sockio.h definitions for ioctl(2) emulation + * + * Copyright (c) 2015 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef OS_IOCTL_SOCKIO_H +#define OS_IOCTL_SOCKIO_H + +/* See sys/sockio.h */ +#define TARGET_SIOCSHIWAT TARGET_IOW('s', 0, int32_t) +#define TARGET_SIOCGHIWAT TARGET_IOR('s', 1, int32_t) +#define TARGET_SIOCSLOWAT TARGET_IOW('s', 2, int32_t) +#define TARGET_SIOCGLOWAT TARGET_IOR('s', 3, int32_t) +#define TARGET_SIOCATMARK TARGET_IOR('s', 7, int32_t) +#define TARGET_SIOCSPGRP TARGET_IOW('s', 8, int32_t) +#define TARGET_SIOCGPGRP TARGET_IOR('s', 9, int32_t) + +/* See net/if.h */ +struct target_ifreq_buffer { + abi_ulong length; + abi_ulong buffer; +}; + +struct target_ifreq_nv_req { + abi_uint buf_length; /* Total size of buffer */ + abi_uint length; /* Length of the filled part */ + abi_ulong buffer; /* Buffer itself, containing packed nv */ +}; + +#define TARGET_IFNAMSIZ 16 + +struct target_ifreq { + char ifr_name[TARGET_IFNAMSIZ]; + union { + struct target_sockaddr ifru_addr; + struct target_sockaddr ifru_dstaddr; + struct target_sockaddr ifru_broadaddr; + struct target_ifreq_buffer ifru_buffer; + abi_short ifru_flags[2]; + abi_short ifru_index; + abi_int ifru_jid; + abi_int ifru_metric; + abi_int ifru_mtu; + abi_int ifru_phys; + abi_int ifru_media; + abi_ulong ifru_data; + abi_int ifru_cap[2]; + uint32_t ifru_fib; + uint8_t ifru_vlan_pcp; + struct target_ifreq_nv_req ifru_nv; + } ifr_ifru; +}; + + +#define TARGET_SIOCSIFADDR TARGET_IOW('i', 12, struct target_ifreq) +#define TARGET_SIOCGIFADDR TARGET_IOWR('i', 33, struct target_ifreq) +#define TARGET_SIOCSIFDSTADDR TARGET_IOW('i', 14, struct target_ifreq) +#define TARGET_SIOCGIFDSTADDR TARGET_IOWR('i', 34, struct target_ifreq) +#define TARGET_SIOCSIFFLAGS TARGET_IOW('i', 16, struct target_ifreq) +#define TARGET_SIOCGIFFLAGS TARGET_IOWR('i', 17, struct target_ifreq) +#define TARGET_SIOCGIFBRDADDR TARGET_IOWR('i', 35, struct target_ifreq) +#define TARGET_SIOCSIFBRDADDR TARGET_IOW('i', 19, struct target_ifreq) +#define TARGET_SIOCGIFNETMASK TARGET_IOWR('i', 37, struct target_ifreq) +#define TARGET_SIOCSIFNETMASK TARGET_IOW('i', 22, struct target_ifreq) +#define TARGET_SIOCGIFMETRIC TARGET_IOWR('i', 23, struct target_ifreq) +#define TARGET_SIOCSIFMETRIC TARGET_IOW('i', 24, struct target_ifreq) +#define TARGET_SIOCDIFADDR TARGET_IOW('i', 25, struct target_ifreq) +#define TARGET_SIOCSIFCAP TARGET_IOW('i', 30, struct target_ifreq) +#define TARGET_SIOCGIFCAP TARGET_IOWR('i', 31, struct target_ifreq) +#define TARGET_SIOCGIFINDEX TARGET_IOWR('i', 32, struct target_ifreq) +#define TARGET_SIOCGIFMAC TARGET_IOWR('i', 38, struct target_ifreq) +#define TARGET_SIOCSIFMAC TARGET_IOW('i', 39, struct target_ifreq) +#define TARGET_SIOCSIFNAME TARGET_IOW('i', 40, struct target_ifreq) +#define TARGET_SIOCSIFDESCR TARGET_IOW('i', 41, struct target_ifreq) +#define TARGET_SIOCGIFDESCR TARGET_IOWR('i', 42, struct target_ifreq) +#define TARGET_SIOCADDMULTI TARGET_IOW('i', 49, struct target_ifreq) +#define TARGET_SIOCDELMULTI TARGET_IOW('i', 50, struct target_ifreq) +#define TARGET_SIOCGIFMTU TARGET_IOWR('i', 51, struct target_ifreq) +#define TARGET_SIOCSIFMTU TARGET_IOW('i', 52, struct target_ifreq) +#define TARGET_SIOCGIFPHYS TARGET_IOWR('i', 53, struct target_ifreq) +#define TARGET_SIOCSIFPHYS TARGET_IOW('i', 54, struct target_ifreq) +#define TARGET_SIOCSIFMEDIA TARGET_IOWR('i', 55, struct target_ifreq) +#define TARGET_SIOCSIFGENERIC TARGET_IOW('i', 57, struct target_ifreq) +#define TARGET_SIOCGIFGENERIC TARGET_IOWR('i', 58, struct target_ifreq) +#define TARGET_SIOCSIFLLADDR TARGET_IOW('i', 60, struct target_ifreq) +#define TARGET_SIOCGIFPSRCADDR TARGET_IOWR('i', 71, struct target_ifreq) +#define TARGET_SIOCGIFPDSTADDR TARGET_IOWR('i', 72, struct target_ifreq) +#define TARGET_SIOCDIFPHYADDR TARGET_IOW('i', 73, struct target_ifreq) +#define TARGET_SIOCGPRIVATE_0 TARGET_IOWR('i', 80, struct target_ifreq) +#define TARGET_SIOCGPRIVATE_1 TARGET_IOWR('i', 81, struct target_ifreq) +#define TARGET_SIOCSIFVNET TARGET_IOWR('i', 90, struct target_ifreq) +#define TARGET_SIOCSIFRVNET TARGET_IOWR('i', 91, struct target_ifreq) +#define TARGET_SIOCGIFFIB TARGET_IOWR('i', 92, struct target_ifreq) +#define TARGET_SIOCSIFFIB TARGET_IOW('i', 93, struct target_ifreq) +#define TARGET_SIOCGTUNFIB TARGET_IOWR('i', 94, struct target_ifreq) +#define TARGET_SIOCIFCREATE TARGET_IOWR('i', 122, struct target_ifreq) +#define TARGET_SIOCIFCREATE2 TARGET_IOWR('i', 124, struct target_ifreq) +#define TARGET_SIOCIFDESTROY TARGET_IOW('i', 121, struct target_ifreq) + +/* net/if_gre.h */ +#define TARGET_GREGKEY TARGET_IOWR('i', 107, struct target_ifreq) +#define TARGET_GREGOPTS TARGET_IOWR('i', 109, struct target_ifreq) + +/* net/if_gif.h */ +#define TARGET_GIFGOPTS TARGET_IOWR('i', 150, struct target_ifreq) + +/* netinet/ip_carp.h */ +#define TARGET_SIOCGVH TARGET_IOWR('i', 246, struct target_ifreq) + +/* net/if_pfsync.h */ +#define TARGET_SIOCGETPFSYNC TARGET_IOWR('i', 248, struct target_ifreq) + + +/* See net/if.h */ +struct target_ifconf { + int32_t ifc_len; + union { + abi_ulong ifcu_buf; + abi_ulong ifcu_req; + } ifc_ifcu; +}; + +#define TARGET_SIOCGIFCONF TARGET_IOWR('i', 36, struct target_ifconf) + +/* See net/if.h */ +struct target_ifdrv { + char ifd_name[TARGET_IFNAMSIZ]; + abi_ulong ifd_cmd; + abi_ulong ifd_len; + abi_ulong ifd_data; +}; + +#define TARGET_SIOCSDRVSPEC TARGET_IOW('i', 123, struct target_ifdrv) +#define TARGET_SIOCGDRVSPEC TARGET_IOWR('i', 123, struct target_ifdrv) + +/* See net/if.h */ +struct target_ifg_req { + union { + char ifgrqu_group[TARGET_IFNAMSIZ]; + char ifgrqu_member[TARGET_IFNAMSIZ]; + } ifgrq_ifgrqu; +}; + +struct target_ifgroupreq { + char ifgr_name[TARGET_IFNAMSIZ]; + uint32_t ifgr_len; + union { + char ifgru_group[TARGET_IFNAMSIZ]; + abi_ulong ifgru_groups; + } ifgr_ifgru; +}; + +#define TARGET_SIOCGIFGROUP TARGET_IOWR('i', 136, struct target_ifgroup= req) + +struct target_ifmediareq { + char ifm_name[TARGET_IFNAMSIZ]; + int32_t ifm_current; + int32_t ifm_mask; + int32_t ifm_status; + int32_t ifm_active; + int32_t ifm_count; + abi_ulong ifm_ulist; +}; + +#define TARGET_SIOCGIFMEDIA TARGET_IOWR('i', 56, struct target_ifmediareq) +#define TARGET_SIOCGIFXMEDIA TARGET_IOWR('i', 139, struct target_ifmediar= eq) + +#define TARGET_IFSTATMAX 800 +struct target_ifstat { + char ifs_name[TARGET_IFNAMSIZ]; + char ascii[TARGET_IFSTATMAX + 1]; +}; + +#define TARGET_SIOCGIFSTATUS TARGET_IOWR('i', 59, struct target_ifstat) + +/* net80211/ieee80211_ioctl.h */ +struct target_ieee80211req { + char i_name[TARGET_IFNAMSIZ]; + uint16_t i_type; + int16_t i_val; + uint16_t i_len; + abi_ulong i_data; +}; + +#define TARGET_SIOCG80211 TARGET_IOWR('i', 235, struct target_ieee80211req) + +/* net/if_lagg.h */ +struct target_lacp_opreq { + uint16_t actor_prio; + uint8_t actor_mac[ETHER_ADDR_LEN]; + uint16_t actor_key; + uint16_t actor_portprio; + uint16_t actor_portno; + uint8_t actor_state; + uint16_t partner_prio; + uint8_t partner_mac[ETHER_ADDR_LEN]; + uint16_t partner_key; + uint16_t partner_portprio; + uint16_t partner_portno; + uint8_t partner_state; +}; + +struct target_lagg_reqport { + char rp_ifname[TARGET_IFNAMSIZ]; + char rp_portname[TARGET_IFNAMSIZ]; + u_int32_t rp_prio; + u_int32_t rp_flags; + union { + struct target_lacp_opreq rpsc_lacp; + } rp_psc; +}; +#define TARGET_SIOCGLAGGPORT TARGET_IOWR('i', 140, struct target_lagg_reqp= ort) + +struct target_lagg_reqall { + char ra_ifname[TARGET_IFNAMSIZ]; + abi_uint ra_proto; + + abi_ulong ra_size; + abi_ulong ra_port; + abi_int ra_ports; + union { + struct target_lacp_opreq rpsc_lacp; + } ra_psc; +}; +#define TARGET_SIOCGLAGG TARGET_IOWR('i', 143, struct target_lagg_reqall) + +struct target_lagg_reqflags { + char rf_ifname[TARGET_IFNAMSIZ]; + uint32_t rf_flags; +}; +#define TARGET_SIOCGLAGGFLAGS TARGET_IOWR('i', 145, struct target_lagg_req= flags) + +struct target_lagg_reqopts { + char ro_ifname[TARGET_IFNAMSIZ]; + abi_int ro_opts; + abi_uint ro_count; + abi_uint ro_active; + abi_uint ro_flapping; + abi_int ro_flowid_shift; + uint32_t ro_bkt; +}; +#define TARGET_SIOCGLAGGOPTS TARGET_IOWR('i', 152, struct target_lagg_reqo= pts) + +#endif /* OS_IOCTL_SOCKIO_H */ --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741986; cv=none; d=zohomail.com; s=zohoarc; b=aOsUbSpP3Foyex2GeNx752MH/B2DWAmKHBhfF+WNKvnkt5aJenDuYA6sbfGs1OfkuXalQvTSF5gzdlKK52qoiqy77vyUUbwhPs7OPGScq0GhXnF4HAnud7bEb74Akz3aaS/FdMy8QT9NDA8Bka52HShEzl3aK8gRUJm1fNgtpCM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741986; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=mkPA8V+7C3m5QleVajXQsNNex2rC66SfXPEGWND4dF4=; b=mxi2ZND+1Es3BAIAYyuX0FGb+KtwS5aKpH44K5N6FoMbR2s5h5jqjR513Nlbbs2TOFt7EwakCASlnmgBYzuXh9FqEEgXCF9MaL0e9S4SyPTLxmK91nyKPZwW7KeN53wuBVaYDRXzRtrmz5CIFGuPG8CNaQxyLr68W+FmGpXhfYs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741986234774.326376729076; Sat, 2 May 2026 10:13:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsH-0007px-LQ; Sat, 02 May 2026 13:11:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsD-0007oG-CZ for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:25 -0400 Received: from mail-ot1-x336.google.com ([2607:f8b0:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wJDsB-000733-Jj for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:25 -0400 Received: by mail-ot1-x336.google.com with SMTP id 46e09a7af769-7de4e6c5a30so2513892a34.0 for ; Sat, 02 May 2026 10:11:23 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741882; x=1778346682; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=mkPA8V+7C3m5QleVajXQsNNex2rC66SfXPEGWND4dF4=; b=ByqQZbR57Uf2ch5bn8oW0IgryKpxWtxxAeCZQGke5zzbLjbEUrqlAY69k56stAR1G1 0ORE6gt5vRFMo495kg4RusynDIyVtiCbqL0zyRpPY2US3gHNVKIc9RIwPp892rcX0nVu AqYZstsc6GaheSnEPlusFocSXszRTsDtPdX7saHbeOwvy9CXIqmo1yWfGusHZ554X/GV +7Ib3Hn+PzowIjzGOirw4q5KBhjJqLTwFBGJYpVb2ghl9Pd80zLJbZNWZo14mRkDLjVG lBPt/qF5Lldd6aIEY+huap1GKtXRxXvtEg9AKuA8HB/8KSqhmzYyVQ1Lyf9A77QZrBm0 4Btg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741882; x=1778346682; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=mkPA8V+7C3m5QleVajXQsNNex2rC66SfXPEGWND4dF4=; b=JxIvYF/xMjX3hakE0FlktFTr2hlY9zDMuzNWwuyTfIKFTf0vkA/U3GjM2MAoIWVoNu ocuDfOt1bNUoPVttueIfj/Z081wIT8Z97MKUEfVmW1VNOaDWyiti6/9XXtCqB5igjmiu z1tQmkTa0sSIBrJLuR/uvZkbyg8xxPPVzCoC0nur1w1YKtxiuFMbw6li1ne8uVHa3MlM 1O+HlnGj9mQETl+WWUvRm29+MjM+A5detAQgq3pMXznrjHTT6SF5rV7GO7TpCJBv0N6n dK//TS0hMTyHLtew7JcdoEorcnTwCrrPDtEWMQBoW/HfYkusiMTyc6YbCVsmHQbRg+f2 yFow== X-Gm-Message-State: AOJu0Yy1PtSlxAWFAFNVd0vYO3bkxp3dswS93dDMoLEN03qooRfBYMP8 ZXZrUYiR0H95L1N4DHJVZ/NZJSl0qT8F+ypuXdxpj+s7UW5n+vE0i7W3QhMEvX0wfKoWmEzCUix L1sson6E= X-Gm-Gg: AeBDievrtMU3Y8WT16QTdFbs6xpcYuFByEYHJUwVINV/3FmdApgOSl0NeiGZqpzBfAe KRRodOAmNE14h+2c8MgSrkfbLtKWTP4AIeRY7Si9XZAr9zOAvv9r7gBqKAsf+cqDd2GQMfwgUwP MPgCQ0zmMIuzSqhZN5zF+nna+euZypbfVMr8Prr1IxpnYXdA6WoL87C5hKL/zL2FgcIBod6GWzN Eqb1JGU4aftU2Sa/o5XpTr5PWYJ9pYnhi1lJ12C2vKblGdW4oE63O3HNYk70OXi2qDVMAwhYPAW RHlEk8SA9mH/YTIMehz9q383c3Vx2HJvFFFGHXgRPcp2PrH8STpAr5D40v6VXAdQFuSuQyyBqS2 PFJOS72u1Lc8gP7EpoZSX0BDmSwoX01VGjuquvxJjeGsL4o4sHEp62bukpU88gIpkIl0Yzvyvp3 EPlJgumEDXnhftBPMDDTwqRED+sSVva0o= X-Received: by 2002:a05:6830:f91:b0:7dc:d0cc:922 with SMTP id 46e09a7af769-7dee14ca794mr2237472a34.27.1777741882096; Sat, 02 May 2026 10:11:22 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:26 -0600 Subject: [PATCH v3 05/19] bsd-user: Add FreeBSD cryptodev ioctl definitions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-5-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3374; i=imp@bsdimp.com; h=from:subject:message-id; bh=X71S9SaJ1gGgE04Y4eHmNcZhYuOt8YwUIt9DjA6obmk=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/Pqdf7A1dnn98fML3D78yMJaH81y9VpLTVR TVFb1lbDviJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYvzwAKCRBsHNEofbAR ADUzEACqn7Ob1F/PqnNFzqWPGe9wa+3nrYmTwW1Wh+aytJSM6RbJdNuIZ0IodlgztLEfUcWLeIW P5EPpsl7pIIw9Sd0taNZsYqX8Mblwy9LR6J+Mg2PnI2SubOQu7cvDUZz/2+ia4ZTuf2WTUE4/Kv BoAr/2MJr9FnCol7tITqbegxo+BdR84mhbz5kBxsww45QUwkXNM6WaR03iQMtiEctU2EnGHXlrM DBA2SgJa2bcvuhQkDHxniOMw7q/awKu9RrPRjXBkmJF4y0OCe/nS2CKttnEFOdQQgPnIfEDI8Xd EcOWUrKDnqk845YeZaMn5wzpnNkuTom07sVDQDrv8FB8hsRpXcG4PHJvBRTpQUfZ8SRS/a88rUV BHrip/y5oVz0a2odeMjCgt4KdlWwRjeQG6f0uzYA4QoVlrm3uppJsWb8TNAfagA2Sr+wBouFIWB e0oooedVQuKUgeHzbtnPSuhww6zX4fXCqoH8FEwgM0LbI3KCNXq4DkSs9lYTPOsW8OOO+LBRmTn EukCuW53vOQL7YMb1m2oNLZo1dr9ORVkULuELUy4dhADF8HP2qIX+BYHFYz37hvhrm9+LwGtCIK 808FRebfBcgjsDFR2+yxFC0KtkfBOYoF7m8B/5/3goVXYK3ZlvxkBgJcI+szbGI54mnOG+pRp6Y zVx6scBJqv/MpOQ== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::336; envelope-from=imp@bsdimp.com; helo=mail-ot1-x336.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741986672158500 From: "Stacey D. Son" Add os-ioctl-cryptodev.h with /dev/crypto ioctl definitions including CIOCGSESSION, CIOCCRYPT, and related cryptographic device control ioctls. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-cryptodev.h | 84 +++++++++++++++++++++++++++++++= ++++ 1 file changed, 84 insertions(+) diff --git a/bsd-user/freebsd/os-ioctl-cryptodev.h b/bsd-user/freebsd/os-io= ctl-cryptodev.h new file mode 100644 index 0000000000..b81112150f --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-cryptodev.h @@ -0,0 +1,84 @@ +/* + * FreeBSD cryptodev definitions for ioctl(2) emulation + * + * Copyright (c) 2014 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef BSD_USER_FREEBSD_OS_IOCTL_CRYPTODEV_H +#define BSD_USER_FREEBSD_OS_IOCTL_CRYPTODEV_H + +/* see opencrypto/cryptodev.h */ + +struct target_session_op { + u_int32_t cipher; + u_int32_t mac; + + u_int32_t keylen; + abi_ulong key; + int32_t mackeylen; + abi_ulong mackey; + + u_int32_t ses; +}; + + +struct target_session2_op { + u_int32_t cipher; + u_int32_t mac; + + u_int32_t keylen; + abi_ulong key; + int32_t mackeylen; + abi_ulong mackey; + + u_int32_t ses; + int32_t crid; + abi_int ivlen; + abi_int maclen; + abi_int pad[2]; +}; + +struct target_crypt_op { + uint32_t ses; + uint16_t op; /* i.e. COP_ENCRYPT */ +#define TARGET_COP_ENCRYPT 1 +#define TARGET_COP_DECRYPT 2 + uint16_t flags; +#define TARGET_COP_F_CIPHER_FIRST 0x0001 /* Cipher before MAC. */ +#define TARGET_COP_F_BATCH 0x0008 /* Batch op if possible */ + abi_uint len; + abi_ulong src; /* become iov[] inside kernel */ + abi_ulong dst; + abi_ulong mac; /* must be big enough for chosen MAC */ + abi_ulong iv; +}; + +/* op and flags the same as crypt_op */ +struct target_crypt_aead { + uint32_t ses; + uint16_t op; /* i.e. COP_ENCRYPT */ + uint16_t flags; + abi_uint len; + abi_uint aadlen; + abi_uint ivlen; + abi_ulong src; /* become iov[] inside kernel */ + abi_ulong dst; + abi_ulong aad; /* additional authenticated data */ + abi_ulong tag; /* must fit for chosen TAG length */ + abi_ulong iv; +}; + +struct target_crypt_find_op { + abi_int crid; + char name[32]; +}; + +#define TARGET_CIOCGSESSION TARGET_IOWR('c', 101, struct target_sessio= n_op) +#define TARGET_CIOCFSESSION TARGET_IOW('c', 102, u_int32_t) +#define TARGET_CIOCCRYPT TARGET_IOWR('c', 103, struct target_crypt_= op) +#define TARGET_CIOCGSESSION2 TARGET_IOWR('c', 106, struct target_sessio= n2_op) +#define TARGET_CIOCFINDDEV TARGET_IOWR('c', 108, struct target_crypt_= find_op) +#define TARGET_CIOCCRYPTAEAD TARGET_IOWR('c', 109, struct target_crypt_= aead) + +#endif /* BSD_USER_FREEBSD_OS_IOCTL_CRYPTODEV_H */ --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741963; cv=none; d=zohomail.com; s=zohoarc; b=knWAeI7ZzIqOb8SYi4GIlt4y+8UTupTmyqSHtUByE+mOZqYJ4VKlI56m6nwG2190Xo0m0ddXUh+iZoRwjcuADYso26be33gS55UqnuGxG9M0u3McnxgcNUytDvdvpeNpil27iwRjxLV9SZwF8xKAPCzmI3BA6RdmYAvdwKXLMv8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741963; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=A+mCXscX/ZXQdeivAZC6BeYLBLYIClDlWCGA7GSoYYI=; b=c39CXYmf9IcE8HL0l1sxuwHal9FInDaAw+zXnXHLlbJ7RPauLiFlTnfZJMeCk7gvuPOyN5KkSqgyHjcRDsAKco1oDx9gSFw6RtCWwziCDETPvCRAgAAUFkeaTi9wYWlBL9A3Y6Iixi5aBkLbtLM+HkvXLThOs0oJh7qfA5Slbg4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741963252227.03803085807215; Sat, 2 May 2026 10:12:43 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsJ-0007qO-En; Sat, 02 May 2026 13:11:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsE-0007oT-66 for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:27 -0400 Received: from mail-ot1-x335.google.com ([2607:f8b0: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 1wJDsC-00073M-HS for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:25 -0400 Received: by mail-ot1-x335.google.com with SMTP id 46e09a7af769-7dcdaf06498so2066150a34.2 for ; Sat, 02 May 2026 10:11:24 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741883; x=1778346683; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=A+mCXscX/ZXQdeivAZC6BeYLBLYIClDlWCGA7GSoYYI=; b=kB3oH8O8aaZWn+FzF28G1QN6odtCUJfbMfoI0xffJKFtj88JdHdfx/BYsknhR4BGqj FPxdHubc5o4Z5B4P1zpxJqqIMHRss5/TDfFN1DUtOTV//wZB5hnuJP/nO0rBcwTAGypR 1mt1GXaJDxWE4y5dXHGkd3dRfY5jnKTjghMPoUpwNwFUmulJUMBweJAItWrNSQu3Es5p jbcZj5G/2jk01qhU8OOzzmZiXUjARD8pxc6ElTMCd/xZTZ3n/36DecrWHqnF8OyODbKb NLB4Ahim8uFFzzZW9FPedz0t4JRaqEOgaF5xssdayyWu8alC4zlkraQc97StVvp4bIsk Ndlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741883; x=1778346683; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=A+mCXscX/ZXQdeivAZC6BeYLBLYIClDlWCGA7GSoYYI=; b=ZZoQmMG6lHZcETIsPrzJ1rFXsn4lbqQcKu8AUWEE0yTfYlKyIjih+SFNzR11p2fVh3 ktIIxYqU0bGI9TY0TJgjXewwxWRJfWEmpdgfpOPMrR6b+kSqIkTYGzSa0QNL9j//yv6b FoZPEXkpHDtJOcS3FmMm+RwvwiewxSmmC7eBaALC0y4OrIrvPI8ZKaWpXeyx57191i5C OkOz+joaLk29faiEAmRoqPfJCrp2BTkfjp9eJisk5Ui28floJHySWjm9+05egHQh/m8D hXR6h9m/0DlYryV4PP1POanS8fdC6FapIAWrIQJbtb/xTbyH9KN4Z4gsif7RSdt+ere3 RxGg== X-Gm-Message-State: AOJu0YwZFpsDeKfJ/lMGq5c28rHl0X6uDmWLvccI6+k0sK/UeJpuV2j6 /Hn9Gl7ISqzNn1rgfrr3dTGIdwATgasnEk/AsMkvllV88QXkv8xSxH+iayYWvAWsVVN110zMnc6 50l4Po68= X-Gm-Gg: AeBDieua9TzpqZuW95D5m4PocykjcoMqvykVTlbHknc3vOqv7Ojvqufj7FHRXnIL0qq V1T8WPGyod901AjLdlM9VKlNv8apz/UEi0IhBuM29vaWM8bfvxCUpWL/vANmBkxfWphEd3vawu2 9UW3oT4xvfag/Q/ec2F3hAGGklaYHDy1G8QemePO1n0aXv58C1moBWssnHvntGJy4U2Iesfhrbc l0zq7+WRv3G3HmDSqiOM1BcPV6FVmzO2DUadx7kSRGaGOc+/2ww+qqHmnl2PJgGpiZP/x8B/+7d X3wOr9pXUWwXoK3KTlOqbFoglHQr7xGgyYqo3zfYOtx1Jrrst+R3IWnHF9CIYgPpIwkhnQNr27V joWGQTipYfbM5CfMKIp0j3O1kPgVFDNH+2nNJODvJVEv5OuVLkQYRBlYYPhbCrpOQcXL2LWuemQ P6ri4r/CkGYg6tG+H/z/45 X-Received: by 2002:a05:6830:4901:b0:7de:c6b8:2349 with SMTP id 46e09a7af769-7dee13e34a7mr2176028a34.14.1777741883094; Sat, 02 May 2026 10:11:23 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:27 -0600 Subject: [PATCH v3 06/19] bsd-user: Add FreeBSD disk ioctl definitions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-6-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2699; i=imp@bsdimp.com; h=from:subject:message-id; bh=JIVYg58ib9lLk94KqYpsU7AJq+fP+Cd19JDWd7O58CU=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/PM/qxyMLLaHGlzWavXX8Mh9fipA0pPsoex 6v3CMYGiqaJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYvzwAKCRBsHNEofbAR AHXcEADBnYa+IYSrpOELRWZgxzhcrW7yCiJWVLT2ladMvlkaGfytYuu0wBpGzm4w1nQvroED+HG MwkUDnZvwZvZt8nVjAn9dP29htBAnDoKLBY+sc6sYv3G0uaLcTBG0PzroFJN/Fle3ULN+0U8V0x RNc+Zn5BdIltdAfJSZuf5AuSBWa3sGrEER9/nqNTrTta0/rp35r6T/3M0jKI7Y8HvUaL0yCPl9R qEziG6J0S/gnk0/vM3O/R4Mf+RBJj9SipwSixyK2+1hIg1W/PTxqV1wJcO19WvcfBb3QlE4Gs3P pfRZPGzFHoEWCGteCHXaucOd205WcHcB48qpoQNYWQXV+42ePyEGxnajw12GgJiEZQJVm72uZfP LAipsxn+z26nl0R45OX2nt8odPJkrbZ7LF9qri3MiSYyBlJeq6h4Oe6NLfYqF7Jp3uqXB5scQXa S0xqtEpnvHYGp7nYYdjGpiK4mDBFMAJq2Pu3C5QulbwC4794sCvVjuu/HZ7PsO08xaiSsx7xSLn fUHOvbdqXVq/MxZMzAWI4dXNshLHP4bChrbV+p9tngf8dHcF7pPTeh0eQsimlZ9o/oi1UFcgg9U VPv9zjk7SbDZ8wwKzRZyZ0rYeYyPb8WhOXrNbrGevnrbI7UXjkIaaMYp3ukj8uWwdS2fOQGwQ+5 /a6GRn0eIkBYzgw== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::335; envelope-from=imp@bsdimp.com; helo=mail-ot1-x335.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741965421154101 From: "Stacey D. Son" Add os-ioctl-disk.h with disk and storage device ioctl definitions including DIOCGMEDIASIZE, DIOCGSECTORSIZE, and related disk management ioctls. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-disk.h | 52 ++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 52 insertions(+) diff --git a/bsd-user/freebsd/os-ioctl-disk.h b/bsd-user/freebsd/os-ioctl-d= isk.h new file mode 100644 index 0000000000..8f4dddc7eb --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-disk.h @@ -0,0 +1,52 @@ +/* + * FreeBSD disk.h definitions for ioctl(2) emulation + * + * Copyright (c) 2015 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef OS_IOCTL_DISK_H +#define OS_IOCTL_DISK_H + +/* See sys/disk.h */ + +#define TARGET_MAXPATHLEN 1024 + +#define TARGET_DIOCGSECTORSIZE TARGET_IOR('d', 128, uint32_t) +#define TARGET_DIOCGMEDIASIZE TARGET_IOR('d', 129, int64_t) +#define TARGET_DIOCGFWSECTORS TARGET_IOR('d', 130, uint32_t) +#define TARGET_DIOCGFWHEADS TARGET_IOR('d', 131, uint32_t) +#define TARGET_DIOCGFLUSH TARGET_IO('d', 135) +#define TARGET_DIOCGDELETE TARGET_IOW('d', 136, int64_t[2]) +#define TARGET_DISK_IDENT_SIZE 256 +#define TARGET_DIOCGIDENT TARGET_IOR('d', 137, \ + char[TARGET_DISK_IDENT_SIZE]) +#define TARGET_DIOCGPROVIDERNAME TARGET_IOR('d', 138, \ + char[TARGET_MAXPATHLEN]) +#define TARGET_DIOCGSTRIPESIZE TARGET_IOR('d', 139, int64_t) +#define TARGET_DIOCGSTRIPEOFFSET TARGET_IOR('d', 140, int64_t) +#define TARGET_DIOCGPHYSPATH TARGET_IOR('d', 141, \ + char[TARGET_MAXPATHLEN]) + +struct target_diocgattr_arg { + char name[64]; + abi_int len; + union { + char str[TARGET_DISK_IDENT_SIZE]; + int64_t off; /* Want abioff, but this will do */ + abi_int i; + abi_short u16; + } value; +}; + +#define TARGET_DIOCGATTR TARGET_IOWR('d', 142, struct target_diocgattr_= arg) + +/* Unsupported, target_disk_zone_args is complicated */ +/* #define DIOCZONECMD _IOWR('d', 143, struct target_disk_zone_args) */ + +/* Enable/Disable the device for kernel core dumps. */ +/* #define DIOCSKERNELDUMP _IOW('d', 145, struct diocskerneldump_arg) */ +/* Get current kernel netdump configuration details for a given index. */ +/* #define DIOCGKERNELDUMP _IOWR('d', 146, struct diocskerneldump_arg) */ + +#endif /* OS_IOCTL_DISK_H */ --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777742002; cv=none; d=zohomail.com; s=zohoarc; b=n5M+n+jwMrSSoXaWP6VMLCRM21yV2Pk3gGiUSEJto5D7jdDgqnI8448LFGqwEH8uwk/Ac0Y34cy2Dd07a307tXah1fgDLT/GICfUwYlGyIMeeOB2QdZeSK2x0Yh8CqdR7nbzoz929DLUGNe87KHnmESMpzP/yOokeKkMsMP/WAU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777742002; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=z6ybzUtaYWgMT9AvbGFtNBzZwiHN7QLjVm2tF+0PmRU=; b=Sdd7kcbMf/2ORDFvZwkfxh4X6pQj8JyT92jbwgSojsse1XuAYY1setrucCwuomSP8YIBCcXwCq6qnm6Pn6eMqJhPtAG04I1qHetWIuHbrc7GFiHNEDeLPKJRJ2sR8K3bIJSIDgYJoyllC33C0OBwdPqpk39BvZ8/O4WioiETShI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777742002540806.6061331466161; Sat, 2 May 2026 10:13:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsI-0007q2-JO; Sat, 02 May 2026 13:11:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsF-0007od-PD for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:27 -0400 Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wJDsD-00073b-TC for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:27 -0400 Received: by mail-ot1-x32b.google.com with SMTP id 46e09a7af769-7d55b97f358so2109097a34.3 for ; Sat, 02 May 2026 10:11:25 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741884; x=1778346684; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=z6ybzUtaYWgMT9AvbGFtNBzZwiHN7QLjVm2tF+0PmRU=; b=yfyNOCgRIcvBVcIVDhxFafurb6IGWl4EXivYRT+mJe65Coc3CRQGmlFDe4wLVWy+cq noK6K5AiI76jDNOPfOtCiqmBX9zPuWzRm2h+p9hd+ZIKS9wf7fu3ipGSrqkjX4BwAmkG pvjUx2xMraS0y3HGq2nyXCCRu4mLRAq56fshGycjsAtBIARrKdhA0Q51fdY4xdO0AnLJ siZ/xH25qfLzY9F2g7tuRZRhJdW1vbqxw5Dv5KuVPHH+Q6kraibKEF+p4hymOiu+RMqe nlXdKHPiknCnm3NoOZ3HcTW7PCOjJE0OG+dqK01NOkTOrS78/cy449n0tg2ucC+5nchA 9PXQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741884; x=1778346684; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=z6ybzUtaYWgMT9AvbGFtNBzZwiHN7QLjVm2tF+0PmRU=; b=ZBzSr5Ktj2DCKMqZw7gEKqThTelPKde0j0W+6gRZM+KKKtwPN0M6YIsbxPg/gRtVMU Y+fTxP18cgKT5LqlIeJ2W9YDAg18oXGlafKhJkBpIp1LePbctGnKC9fatmkVkkGIlJ+y iDvpJxjhLiBTMq49ptwbDuzEWPSJjYiZCRAsFHFVIz4kJQqvORC7VVI2K5eolzQdDD0d tOlChJIQQDTowD0HAEdH08kqajICNGqKKL5Ed9wuuO4CURZDeK36GGlNGTQ5DmWXkFu+ 3Ns/hje38Q7XaiFWggFomRFDtTpX359HKnZvRTzz4wZeXWhPVarShkm9QZtyc8Qd2bzf v4Dg== X-Gm-Message-State: AOJu0Yyi2ysRRsKw06Hwb8a60uev5BZiP+FkhNLzauV7RsRd8D9ybNnx QH3cDUlr7awQf+7t38El+S7CXZNJlJIpdj7rf2HJe11ToIGVx/uM6Iq+xDedkLwG4KcOso6G/r/ 4Bv6txO4= X-Gm-Gg: AeBDietn3JrAmIzAEhcVznChY2HzKnaHYxIPFdBER5XwOmf8Qbzuk8AJnzXerWFaQu3 BofnFPzeHbAWuFLiAyaJpzRhEYzCFlQd3oeRryb4mpkGvNRNe9AOOzQJYyK3HJcxliKp8D8n4PS ndUbBSu2senkF95IZO0Nozis1u8iAykuYR39YZnmO21Y7ooWGMZN73Z90YYVa6m+Ho9qYhJuaEc 7Dd9t9HUHbFdCoYUdixICYebLdDYtRILDUtVbt05Sm8e3dnj5pWlpk07aWsvYYWX4C9FuDTm31B rlPw3f3SawT2SIMakiJ2Vj88MQGTXl5dldqVj1W3vni/E83+I1/ydgwoXutXry9PWB78ICQdsCI kNB6XvRi4FPolp09gsozvaNms5rAx18tFhAn8XnxUJW+nfLePNIp8XKfKxNZ2w0eQ7jar6uY81d 3GNMTev1O/C+KT2rbx+7dm2fqSCQVMunM= X-Received: by 2002:a05:6830:67c7:b0:7dc:c338:d23d with SMTP id 46e09a7af769-7dee137ffcbmr2502053a34.14.1777741884295; Sat, 02 May 2026 10:11:24 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:28 -0600 Subject: [PATCH v3 07/19] bsd-user: Add FreeBSD IPv6 ioctl definitions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-7-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=8944; i=imp@bsdimp.com; h=from:subject:message-id; bh=d/ijr+9hjS5rLAbqQ7xaWCdG7PSslSj/yLRuf+D9UJI=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/PfEg5KXbtBUN5o3cTuI30iqi4PuodHo5K5 WGqBJQB3H+JAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYvzwAKCRBsHNEofbAR AI5XD/9Y2jUW9ALdIs8K90wD22MQU6IjbJb2wVlC8Mm8frqgwQFceBQqmqHUl7lQq6w56MyA2dK FQrj610gZ/oGexDkU5nYnVZFbq3dxuIu0/7NX4tFSXr7TsjHhvE4VW1KJ1olkRQo/N24M18DJ6n sAhuneoo2muVIeaYhoNedVkH2S3ATxFg5PQnl8i4l3Iitai8ecURpZuYjxwcIiFaDNfY3zHf0a+ +DJndJKvF/KucaPqf09d48phYr12S6CSDfiuiJH/Q9KZ9B9Fy3SCfbrbq4NJBS9t7B7pmqsrs2V DCLAQbz4OP0hT3ZTMLcYtC/8c6o6B3DSTJ5sA8PdxiLWHOhsLj4ZskCnmgOJN4VAWkssiM26eBU WWgEObsP2v0TClBKzuv7ZAQSl4IirWfSrv6A3uOGaZz0mi8deWAQdT4+i2UP+/qmJWhXaoVJd5x wL3Fk1u0iOwvzU4B0+D/c9VXYy4Xvc2kn80Va4gZq5KEMivqzvrgNA/TdN+sgaIu+M+vQw3CaG9 /a6BgWi+AyOZJ/+oiey7EisOsR9prm3s7ldENOaHeCc5MeXfiI/CnDSRB5k8CtP9iUzFUp07WoZ LgRppSlIRAbpcOVihoPKZyravUx1C9ahpwJ24Et3cmRufkmmbjGsOYYNuhRYKMDiBd8HmOh2CCm MN9mI0KaPIe/wag== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32b; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32b.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777742002819158500 From: "Stacey D. Son" Add os-ioctl-in6_var.h with IPv6 network interface ioctl definitions including SIOCAIFADDR_IN6, SIOCDIFADDR_IN6, and related IPv6 configuration ioctls with target_in6_* structure definitions. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-in6_var.h | 226 ++++++++++++++++++++++++++++++++= ++++ 1 file changed, 226 insertions(+) diff --git a/bsd-user/freebsd/os-ioctl-in6_var.h b/bsd-user/freebsd/os-ioct= l-in6_var.h new file mode 100644 index 0000000000..82f0514c7b --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-in6_var.h @@ -0,0 +1,226 @@ +/* + * FreeBSD in6 definitions for ioctl(2) emulation + * + * Copyright (c) 2014-2015 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef BSD_USER_FREEBSD_OS_IOCTL_IN6_VAR_H +#define BSD_USER_FREEBSD_OS_IOCTL_IN6_VAR_H + +#include "os-ioctl-sockio.h" + +/* + * see netinet6/in6_var.h + * and see netinet/in6.h + * XXX target_in6_addr and target_sockaddr_in6 should maybe go + * somewhere else. + */ +struct target_in6_addr { + union { + uint8_t __u6_addr8[16]; + uint16_t __u6_addr16[8]; + uint32_t __u6_addr32[4]; + } __u6_addr; +}; + +struct target_sockaddr_in6 { + uint8_t sin6_len; + uint8_t sin6_family; + uint16_t sin6_port; + uint32_t sin6_flowinfo; + struct target_in6_addr sin6_addr; + uint32_t sin6_scope_id; +}; + +struct target_in6_addrlifetime { + target_time_t ia6t_expire; + target_time_t ia6t_preferred; + u_int32_t ia6t_vltime; + u_int32_t ia6t_pltime; +}; + +struct target_in6_ifstat { + uint64_t ifs6_in_receive; + uint64_t ifs6_in_hdrerr; + uint64_t ifs6_in_toobig; + uint64_t ifs6_in_noroute; + uint64_t ifs6_in_addrerr; + uint64_t ifs6_in_protounknown; + + uint64_t ifs6_in_truncated; + uint64_t ifs6_in_discard; + + uint64_t ifs6_in_deliver; + + uint64_t ifs6_out_forward; + + uint64_t ifs6_out_request; + + uint64_t ifs6_out_discard; + uint64_t ifs6_out_fragok; + uint64_t ifs6_out_fragfail; + uint64_t ifs6_out_fragcreat; + + uint64_t ifs6_reass_reqd; + + uint64_t ifs6_reass_ok; + + uint64_t ifs6_reass_fail; + + uint64_t ifs6_in_mcast; + uint64_t ifs6_out_mcast; +}; + +struct target_icmp6_ifstat { + uint64_t ifs6_in_msg; + uint64_t ifs6_in_error; + uint64_t ifs6_in_dstunreach; + uint64_t ifs6_in_adminprohib; + uint64_t ifs6_in_timeexceed; + uint64_t ifs6_in_paramprob; + uint64_t ifs6_in_pkttoobig; + uint64_t ifs6_in_echo; + uint64_t ifs6_in_echoreply; + uint64_t ifs6_in_routersolicit; + uint64_t ifs6_in_routeradvert; + uint64_t ifs6_in_neighborsolicit; + uint64_t ifs6_in_neighboradvert; + uint64_t ifs6_in_redirect; + uint64_t ifs6_in_mldquery; + uint64_t ifs6_in_mldreport; + uint64_t ifs6_in_mlddone; + + uint64_t ifs6_out_msg; + uint64_t ifs6_out_error; + uint64_t ifs6_out_dstunreach; + uint64_t ifs6_out_adminprohib; + uint64_t ifs6_out_timeexceed; + uint64_t ifs6_out_paramprob; + uint64_t ifs6_out_pkttoobig; + uint64_t ifs6_out_echo; + uint64_t ifs6_out_echoreply; + uint64_t ifs6_out_routersolicit; + uint64_t ifs6_out_routeradvert; + uint64_t ifs6_out_neighborsolicit; + uint64_t ifs6_out_neighboradvert; + uint64_t ifs6_out_redirect; + uint64_t ifs6_out_mldquery; + uint64_t ifs6_out_mldreport; + uint64_t ifs6_out_mlddone; +}; + +struct target_in6_ifreq { + char ifr_name[TARGET_IFNAMSIZ]; + union { + struct target_sockaddr_in6 ifru_addr; + struct target_sockaddr_in6 ifru_dstaddr; + abi_int ifru_flags; + abi_int ifru_flags6; + abi_int ifru_metric; + abi_ulong ifru_data; + struct target_in6_addrlifetime ifru_lifetime; + struct target_in6_ifstat ifru_stat; + struct target_icmp6_ifstat ifru_icmp6stat; + u_int32_t ifru_scope_id[16]; + } ifr_ifru; +}; + +/* netinet6/nd6.h */ +struct target_nd_ifinfo { + uint32_t linkmtu; + uint32_t maxmtu; + uint32_t basereachable; + uint32_t reachable; + uint32_t retrans; + uint32_t flags; + int32_t recalctm; + uint8_t chlim; + uint8_t initialized; + uint8_t randomseed0[8]; + uint8_t randomseed1[8]; + uint8_t randomid[8]; +}; + +/* netinet6/nd6.h */ +struct target_in6_ndireq { + char ifname[TARGET_IFNAMSIZ]; + struct target_nd_ifinfo ndi; +}; + +struct target_in6_ndifreq { + char ifname[TARGET_IFNAMSIZ]; + abi_ulong ifindex; +}; + + +#define TARGET_SIOCGIFDSTADDR_IN6 TARGET_IOWR('i', 34, struct target_in6_i= freq) +#define TARGET_SIOCGIFNETMASK_IN6 TARGET_IOWR('i', 37, struct target_in6_i= freq) + +#define TARGET_SIOCDIFADDR_IN6 TARGET_IOW('i', 25, struct target_in6_ifreq) +#ifdef notyet +#define TARGET_OSIOCAIFADDR_IN6 TARGET_IOW('i', 26, struct target_oin6_ali= asreq) +#define TARGET_SIOCAIFADDR_IN6 TARGET_IOW('i', 27, struct target_in6_alias= req) + +#define TARGET_SIOCSIFPHYADDR_IN6 TARGET_IOW('i', 70, \ + struct target_in6_aliasreq) +#endif +#define TARGET_SIOCGIFPSRCADDR_IN6 TARGET_IOWR('i', 71, struct target_in6_= ifreq) +#define TARGET_SIOCGIFPDSTADDR_IN6 TARGET_IOWR('i', 72, struct target_in6_= ifreq) + +#define TARGET_SIOCGIFAFLAG_IN6 TARGET_IOWR('i', 73, struct target_in6_ifr= eq) + +#ifdef notyet +#define TARGET_SIOCGDRLST_IN6 TARGET_IOWR('i', 74, struct target_in6_drlis= t) +#endif + +#define TARGET_SIOCGIFINFO_IN6 TARGET_IOWR('i', 108, struct target_in6_ndi= req) +#define TARGET_SIOCSIFINFO_IN6 TARGET_IOWR('i', 109, struct target_in6_ndi= req) + +#define TARGET_SIOCSNDFLUSH_IN6 TARGET_IOWR('i', 77, struct target_in6_ifr= eq) +#ifdef notyet +#define TARGET_SIOCGNBRINFO_IN6 TARGET_IOWR('i', 78, struct target_in6_nbr= info) +#endif +#define TARGET_SIOCSPFXFLUSH_IN6 TARGET_IOWR('i', 79, struct target_in6_if= req) +#define TARGET_SIOCSRTRFLUSH_IN6 TARGET_IOWR('i', 80, struct target_in6_if= req) + +#define TARGET_SIOCGIFALIFETIME_IN6 TARGET_IOWR('i', 81, \ + struct target_in6_ifreq) +#define TARGET_SIOCGIFSTAT_IN6 TARGET_IOWR('i', 83, struct target_in6_ifre= q) +#define TARGET_SIOCGIFSTAT_ICMP6 TARGET_IOWR('i', 84, struct target_in6_if= req) + +#define TARGET_SIOCSDEFIFACE_IN6 TARGET_IOWR('i', 85, struct target_in6_nd= ifreq) +#define TARGET_SIOCGDEFIFACE_IN6 TARGET_IOWR('i', 86, struct target_in6_nd= ifreq) + +#define TARGET_SIOCSIFINFO_FLAGS TARGET_IOWR('i', 87, struct target_in6_nd= ireq) + +#define TARGET_SIOCSSCOPE6 TARGET_IOW('i', 88, struct target_in6_ifreq) +#define TARGET_SIOCGSCOPE6 TARGET_IOWR('i', 89, struct target_in6_ifreq) +#define TARGET_SIOCGSCOPE6DEF TARGET_IOWR('i', 90, struct target_in6_ifreq) + +#ifdef notyet +#define TARGET_SIOCSIFPREFIX_IN6 TARGET_IOW('i', 100, \ + struct target_in6_prefixreq) +#define TARGET_SIOCGIFPREFIX_IN6 TARGET_IOWR('i', 101, \ + struct target_in6_prefixreq) +#define TARGET_SIOCDIFPREFIX_IN6 TARGET_IOW('i', 102, \ + struct target_in6_prefixreq) +#define TARGET_SIOCAIFPREFIX_IN6 TARGET_IOW('i', 103, \ + struct target_in6_rrenumreq) +#define TARGET_SIOCCIFPREFIX_IN6 TARGET_IOW('i', 104, \ + struct target_in6_rrenumreq) +#define TARGET_SIOCSGIFPREFIX_IN6 TARGET_IOW('i', 105, \ + struct target_in6_rrenumreq) + +#define TARGET_SIOCGETSGCNT_IN6 TARGET_IOWR('u', 106, \ + struct target_sioc_sg_req6) +#define TARGET_SIOCGETMIFCNT_IN6 TARGET_IOWR('u', 107, \ + struct target_sioc_mif_req6) + +#define TARGET_SIOCAADDRCTL_POLICY TARGET_IOW('u', 108, \ + struct target_in6_addrpolicy) +#define TARGET_SIOCDADDRCTL_POLICY TARGET_IOW('u', 109, \ + struct target_in6_addrpolicy) +#endif + +#endif /* BSD_USER_FREEBSD_OS_IOCTL_IN6_VAR_H */ --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741981; cv=none; d=zohomail.com; s=zohoarc; b=ekGvz1uQvQl4ohq200ihnw0vE7t73y5E5NPUz/IhwY7QVNc38MCLxqQXNKDpM4hiA1BtFomSI73Q6Y2HEi9dH/hL1c4phkJPlN2O67y33jc3eihTMJ7Op/E3SmgP84OeyaE2fR8jOLx8EBc3SZKl76tsB9oYJ3189/ricHbOi+M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741981; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qVHsZe4ngIvpRdqqCMu6dp3o/tPpN9CND5GXRK01V14=; b=nIk7ulC6b6PU9si/YvbbttOXF1Qke9cWLvm71+Iv93q4pgpnWxq0wVepBm3jbY8IcDEtF5GrnGZqFnqRTwHXThFNZP5pI/lnNjW/nEHtEcAdJ7nhpX4dP7j2k6ejeE9vLMCtDYvzkFegbvdP8Glbe5TB0rT2ip7mXfiS+A082kY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741981890593.1155175635115; Sat, 2 May 2026 10:13:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsL-0007ql-F5; Sat, 02 May 2026 13:11:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsG-0007pJ-Sv for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:29 -0400 Received: from mail-ot1-x329.google.com ([2607:f8b0: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 1wJDsF-00076F-25 for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:28 -0400 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-7dcd17e19b6so1641379a34.1 for ; Sat, 02 May 2026 10:11:26 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741885; x=1778346685; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=qVHsZe4ngIvpRdqqCMu6dp3o/tPpN9CND5GXRK01V14=; b=uA8BFy2Xx3npzkSMcnygYo7FHZaFxG1Ur/ZmhMAMR+Ll00PggK4d+qlSoXDIz29U8L sKhGYfy+3gSkMT+ZRmUV1XOJqLvsWY9kDC4dbMFzWK9nH6zYdMtu+kWlCopVOgJtcqIE OYEWIMAdRttVA4NHCTINt8Oc/UBePa3kpedBzEMmJcURzLM6QbMJefUKAIUZioDZWc8w y1kYR1yFvAuO9MItE0sxsJ7gdQxbRlOkfFTHDZw7j/vocrZuWmuo8MgQvKGejrf5io+a 1n/aDX1pJfy27+iPX7m+74o8LGuvheak1tgA3FWSPgR5SVQf/C+OKqeQGtnhaurgwcoD uHYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741885; x=1778346685; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=qVHsZe4ngIvpRdqqCMu6dp3o/tPpN9CND5GXRK01V14=; b=DHskXriBost35bZTM0Ktx+hOPQynvTGy7k+iDTosa3f990rSf5IOGPnnILoMoF14Vc DYaBz4eP0ZMwf1ubRr3kgwv8mZnZzS0IwWh6PRpF4qhlqFDqDecJom2rnmE3uqRC/T+X RXARfkKoVc/ni03vy493YlFZT1bw/B+0I5vuuoqraP4THdprDkr5V2TNTyTaYwqOrY0y Joh9HEuwccZGTO7ws2GJYge12MemGG7c5r72ZmTsFkSRvfiZ1JeSUP2WGVt+ZlguKbI3 9x6nOHqxHqrRcAhZCfcYKESUxIf9ig1lH9worzEffyA15o0oPFF20H3rs8ECUirUAXOK k5GQ== X-Gm-Message-State: AOJu0Yx2iwQmkMrW8i5mTUW5YPdYwhbMp9XDvzkGTPsoVyxaPJdPI26a Z8TEmcDuUbtji/1RP2GnPd4GukWIA0/6IW2JIRd9Jas8FbQWKUqtHmN5vIgLEqdUQlFA8YaYZOl Lkc6ImPQ= X-Gm-Gg: AeBDievjW/k8rPaqxKac1hX4W+4/JyZyVEdrGNSbNzFqOAWYBHbmvz+2lZ18qVu6rPC gnHFhhrBoRHUbrQj3+PiRgOQP8V6t7XqwMnfVbz2bE6xsf9+Xaa/S8WwuEmxlWeEooS2dzW74xg mfEYw3LphXh+/icnLR6ICbi/98gUvgp+6udBJR8DdZUz4g1dsNFaY0qtUmon778/VqVCauJEQhE lZf+1eXeHALxmvVN5DvJOx5o8mULZ5mTVI02g2gQX6wrmPdYPdrgc/5D0U1GYe4Dn5ocZ7og7lA Y/KALeosgxxjnIfLnmsUXSKTKvhcweW2DguEMldo8ELSLsbBGiv9jw5FYSYIy5XXOzdVkCJ94wu PnoJ3TuTNx1dhJnLCFHFy+jY9vnT+uHI5IIMb19G3wK1WR1slIZmWd53LCbVxBzNvfYve8WlcI3 iDsjDoM0Ue2gPLk52trI/3 X-Received: by 2002:a05:6830:4112:b0:7db:d229:d51e with SMTP id 46e09a7af769-7dee12923b3mr2722724a34.12.1777741885285; Sat, 02 May 2026 10:11:25 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:29 -0600 Subject: [PATCH v3 08/19] bsd-user: Add FreeBSD ioctl type definitions MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-8-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4137; i=imp@bsdimp.com; h=from:subject:message-id; bh=VQctPPUZ1MsmJDflBe2adcPZTQvBBMJqH9UJpN4JatI=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/QexDfjd7McfZ+dU4fl7Tx4Sa7kLm8E8n3U 6Ql1ndwQS2JAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0AAKCRBsHNEofbAR AMRxD/41bxcYpvXeEx/Y6oRC65wEhk3ebD9CaFakS6muHZDJ4w+hTFhozzVu9udS/NLJjdehDUZ rhooBIeTI3o0pgZO8vy3QADUO2HCjLCnN9D0fcTm/0dcqS2rkv4BvL9lDLuhDMgDiixPN11xt18 pM8jOZojfjZrDIyU2Ru95DsxDmM6PT6IpX4jgSfTYdNiIWwmCLSq1ewpr+uqqiN+wcxcnl5uSfR 3B7DWUIRsndtjWcuFvbJvRqhbWv1mXi0bk4RVD29VaaZKChT//wObE/MCp1mRISk3+jImXbp1Sn Cy2/eIuoOJjGkJYgAZt07LXMA/LZjfUNFYQjkGUowweqPGDfsh7UCyIbAGzNXDsPwU8dqOHE9RE /1jzE9HSlzeJKrrS3tZOHLn5Ntcn0ARHEZ8ULXPhNv+/yQs1ZLlGpg+qgoPxtXsBBr5jJ1MN9dT itgNaqEq5ghwrKQe/Qpkab6XHa7Rv6gf/+hi7WHC1PBJ34RAKsd5iSTV9qKTBEZXAD2RIeZjlty uXUkIKN8KZ5xoT4iwBSpwAGHn7PK7z0SpElo6bDoqv9X7/h0ApYhpYzc1i0kFloBQQqOLCBUY0i JxNcpEzZ8WW4JftySgBeoNISrt/zpMpB/Gb0yi+qJhL6UdJ3AurjOz1qEiW+iOrbm45NicesNRK vIe4OwIvQFjix4Q== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::329; envelope-from=imp@bsdimp.com; helo=mail-ot1-x329.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, UPPERCASE_50_75=0.008 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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741982727158501 From: "Stacey D. Son" Add os-ioctl-types.h with STRUCT macro definitions for ioctl type registration. This header uses multiple inclusion with different STRUCT macro definitions to generate both enums and type definitions. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-types.h | 109 ++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 109 insertions(+) diff --git a/bsd-user/freebsd/os-ioctl-types.h b/bsd-user/freebsd/os-ioctl-= types.h new file mode 100644 index 0000000000..496d1e991b --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-types.h @@ -0,0 +1,109 @@ +/* + * FreeBSD file related system call shims and definitions + * + * Copyright (c) 2013-2015 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +STRUCT_SPECIAL(termios) + +STRUCT(winsize, + TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_SHORT) + +STRUCT(fiodgname_arg, + TYPE_INT, TYPE_PTRVOID) + +STRUCT(ifconf, + TYPE_INT, TYPE_PTRVOID) + +STRUCT(sockaddr, + TYPE_SHORT, MK_ARRAY(TYPE_CHAR, 14)) + +STRUCT(_ifreq_buffer, + TYPE_PTRVOID, TYPE_PTRVOID) + +STRUCT(ifreq_char, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_CHAR) + +STRUCT(ifreq_short, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), MK_ARRAY(TYPE_SHORT, 2)) + +STRUCT(ifreq_int, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_INT) + +STRUCT(ifreq_ptr, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_PTRVOID) + +STRUCT(ifreq_cap, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), MK_ARRAY(TYPE_INT, 2)) + +STRUCT(ifreq_sockaddr, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), MK_STRUCT(STRUCT_sockaddr)) + +STRUCT(ifreq_buf, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), MK_STRUCT(STRUCT__ifreq_buffer)) + +STRUCT(ifdrv, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_PTRVOID, TYPE_PTRVOID, + TYPE_PTRVOID) + +STRUCT(ifgroupreq_ptr, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_INT, TYPE_PTRVOID) + +STRUCT(ifmediareq, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_INT, TYPE_INT, TYPE_INT, + TYPE_INT, TYPE_INT, TYPE_PTRVOID) + +STRUCT(ifstat, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), + MK_ARRAY(TYPE_CHAR, TARGET_IFSTATMAX + 1)) + +STRUCT(ieee80211req, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_SHORT, TYPE_SHORT, TYPE_SHO= RT, + TYPE_PTRVOID) + +STRUCT(lagg_reqport_lacp_opreq, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), MK_ARRAY(TYPE_CHAR, TARGET_IFNAM= SIZ), + TYPE_INT, TYPE_INT, + /* struct lacp_opreq */ + TYPE_SHORT, MK_ARRAY(TYPE_CHAR, ETHER_ADDR_LEN), TYPE_SHORT, TYPE_SHOR= T, + TYPE_SHORT, TYPE_CHAR, TYPE_SHORT, MK_ARRAY(TYPE_CHAR, ETHER_ADDR_LEN), + TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_CHAR) + +STRUCT(lagg_reqall_lacp_opreq, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_INT, TYPE_PTRVOID, TYPE_PTR= VOID, + TYPE_INT, + /* struct lacp_opreq */ + TYPE_SHORT, MK_ARRAY(TYPE_CHAR, ETHER_ADDR_LEN), TYPE_SHORT, TYPE_SHOR= T, + TYPE_SHORT, TYPE_CHAR, TYPE_SHORT, MK_ARRAY(TYPE_CHAR, ETHER_ADDR_LEN), + TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_CHAR) + +STRUCT(lagg_reqflags, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_INT) + +STRUCT(lagg_reqopts, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_INT, TYPE_INT, TYPE_INT, + TYPE_INT, TYPE_INT, TYPE_INT) + +STRUCT(in6_ifreq_int, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_INT) + +STRUCT(in6_ifreq_ptr, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_PTRVOID) + +STRUCT(in6_ifreq_sockaddr_in6, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), + /* struct sockaddr_in6 */ + TYPE_CHAR, TYPE_CHAR, TYPE_SHORT, TYPE_INT, MK_ARRAY(TYPE_CHAR, 16), + TYPE_INT) + +STRUCT(in6_ndireq, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), + /* struct nd_ifinfo */ + TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, + TYPE_CHAR, TYPE_CHAR, MK_ARRAY(TYPE_CHAR, 8), MK_ARRAY(TYPE_CHAR, 8), + MK_ARRAY(TYPE_CHAR, 8)) + +STRUCT(in6_ndifreq, + MK_ARRAY(TYPE_CHAR, TARGET_IFNAMSIZ), TYPE_PTRVOID) --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741967; cv=none; d=zohomail.com; s=zohoarc; b=i/78N0e9PM+yaglRxTpWBKZIIHlZGJjVKF/XPFco+gSnMZzOto0qaDrR9fsfGp1gdwsLDbrk/UoB9MEJHlaeRK0WcZ8icx6sur+MSpDvizHmsVtucv52S4oyVNKEG0R0yjGL6jsHZrCE/DkWZhfj9wXoLDrcjsWuNHFR8JTsZKk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741967; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=Ybp5p160OfZe+6pwqfSLXO+0E11b8tht0nGSt70z0AI=; b=WJVkfo/YX8J/Y1YSE+IP3KzKBe0Ywq04j/MZjhBDB2Q4Zv7+cQEu2yzfvPeHj2NUY9pWvpgIIK6f1xHnyp4lxAl6EjEQh950hDKvJSNWrw50lDvlmBMPHKQIO5k5+SkU24MtE898j0QbE8PL4VADIQTNbZKpwNN7mDc3tLu5li4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741967681589.353485150478; Sat, 2 May 2026 10:12:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsL-0007qk-F0; Sat, 02 May 2026 13:11:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsH-0007pz-Rr for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:30 -0400 Received: from mail-ot1-x32f.google.com ([2607:f8b0:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wJDsG-0007BZ-2a for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:29 -0400 Received: by mail-ot1-x32f.google.com with SMTP id 46e09a7af769-7de4ed0593fso1693508a34.1 for ; Sat, 02 May 2026 10:11:27 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741886; x=1778346686; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Ybp5p160OfZe+6pwqfSLXO+0E11b8tht0nGSt70z0AI=; b=bPhm8GOWRfCupymuooWvt5oZ+/1I8jh+lIKlVik9oLI8jhOvyzJEJszmMVVzOTviSa H4O8N2ThV//dkqzWKyhYsIF7A99+U3sVOxf2l16pY+gVhVl8wCWbTq6DSNpAwu4/aJjZ sZbIVLKFLAt5zdzZ5awRp8dxXCJF4DqiSK2UzTj9WM0fIUeI8ao8BwzVocb0Slh2A+za o1UxruF3kW+TfWOtHTLUfoRW/hWqxvQbE7CbxFm1BhdY9er3hSl5gCJU8CttnKGpoa+8 Fq3+0+YrAkPqn5odzEVQSw2X4E4r+LR/IPWUFkMtaEiQ9Es7WZmk420+/OltTrTLlx0f /T3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741886; x=1778346686; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Ybp5p160OfZe+6pwqfSLXO+0E11b8tht0nGSt70z0AI=; b=JY3MbB5Li0ki2jpOGWmnXWzJ/Br65spyYzg5yzgKsw/ZcI0Sr+I1jo9hl5U7rh+FEO pgl/IFPDbUzAGZQ7d1A8pfrCdjWo3gu4VGs+eFtZNoFUQmnzw2caHxcLEviv87dmlbaK E4z7yYAFUJ766B+POfiiR62HM3M8gJ+B+gVJT9H9ZO4R5DUR3OIpwDMFJdXJwC9GpVHM CY4yea3lBjWBSB+Ncy9T6+ejVYpKCdyE+FApAs18KuJhvFHkXZjJ3/63mi9HbOkmiNfS 0j3AUn1IEwp6EoaXknA0+R8wov97/ZyhiLiKXvHY2k3JLR9nSX+oTQf2543Wf2XLY0L0 w4CQ== X-Gm-Message-State: AOJu0YzGbBZTH35BaRAHQI3kU+nefWFFnJwuRNN9WDQf1DFUmtfD/PYp 2sTDl5eP0p+62LHjvKFou1IbHoe0PSQZtCDdg7kqHDYLIwlOcpMai4ydxtKbDYTBwAdkSWIAScB f4E6mrGo= X-Gm-Gg: AeBDiet6QlGhBqjiYV0lY1em9cjj96BpgtC1N1cLiwJ92zeX8omYZU6kxoZHIFKeKv3 ssaMKY96Q20ciAv+n/4aWBsDhyvIzh44ddijQFlkJPg+mdUy9b90v+ateUg1IdPMUFluJqyqO7n b88W4MIIy+q/4ZSsIGyeIcc+geoEhi4tHc2Za1x1ipsj0Yg0HLCXrVayHcKDeJIoDD7bi7/+8WI VlmRLrucK33BykZ0mzp2B1+jLEkV1Yx6B/dj0+7UWqzyKcveIOCJ7cR0P4jw5PkPEXbbcqk/ZzS r2rXp1Kyjf72vSzMkFVonHCysbnF0zy31tMcTS07/4ykSBtEoU9F/FYtEef9/coaeOLZTyd9WMA +LLIniOgzh6bn6fFBxlI5EkB3y/KuHInTVjWGEzsRtgQ3J/GurhUnupRo41j5/E3+1QFeqUYHzA gN6zq7t5WdAlPxE8EL6NfA X-Received: by 2002:a05:6830:83b2:b0:7d7:5b78:ef31 with SMTP id 46e09a7af769-7dee12bbcbbmr2279707a34.12.1777741886676; Sat, 02 May 2026 10:11:26 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:30 -0600 Subject: [PATCH v3 09/19] bsd-user: Add FreeBSD ioctl command table MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-9-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" , Alexander Kabaev X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=6982; i=imp@bsdimp.com; h=from:subject:message-id; bh=I1zUZcRoN0AavMrbb0busjGq8VSBnJ7JiP+9/NBBMOI=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/QQnWEQTEoYNMdLJN8d6o+chiQ0TfpnQLPH F7I2OsS+OKJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0AAKCRBsHNEofbAR AK5yD/0delKKIEkTVfzn3jVy2TsZFutyrq9dzwNj2nkpE2XvgHh8/Jh+DdNWJRxkjW5ngMzoQHt fHfTKZLF+QJQJyKb8nJ+jqzBbwYG5SlIrq71Zs0sdWg9O+4jOvwLjCvLDeAHxLpYx0AGRIAU5rp kQU8R/Mywj5CIAFNHsW/3IbhHKqW9IXmt8sPc7SFrxtQddltNT5T6oXs4E4+8Ndy4Ku2P2EurZm hqXdoyzPyzZin4grOEdN7nROsEkXVzxODd+cGPbTvG5wANdlhatitG7AUaV3oHYmaLV4XpPxoP4 4HlLpwMxhpUHvYSrcKXdWXL5J+D6/PhA1bFjZu4bFsbRw0Mx3Cbs+9e43iz/A1snerxmN/P4yr4 PgnxmRhXsCQL5F7jcT0x8EBST44+aMFBw8Lv+rb0n6zhhwNjeVq40ctHLT+Q0dV8Ikr+FNtfpJ1 DNr5VgLBmtdKo9Rj0lj3Z8GyLBMi55fMgLqcr7LngvHLIt81KwUPOqrduk4L7NjALiZ3//FybS0 mXQsSPO/esmui+GnEWVrmateBMZd37858yduXaUOiwO+dK6eqX86AdCKJ9nfuJKkjNR53oHu8iB VBjqpfkop5F3fL7l0WrqLbu4XtvNlxoGq42Tk6I2WfydkXFnHFTiqfSN76e3uxucYG/bMPe2QdU JRXjualOJMaKPBQ== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32f; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32f.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, UPPERCASE_50_75=0.008 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: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741968689158500 From: "Stacey D. Son" Add os-ioctl-cmds.h containing the complete ioctl command table mapping TARGET_* ioctl commands to their handlers. Uses IOCTL and IOCTL_SPECIAL macros for table generation. Signed-off-by: Stacey D. Son Signed-off-by: Alexander Kabaev Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-cmds.h | 149 +++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 149 insertions(+) diff --git a/bsd-user/freebsd/os-ioctl-cmds.h b/bsd-user/freebsd/os-ioctl-c= mds.h new file mode 100644 index 0000000000..5f138fb3b0 --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-cmds.h @@ -0,0 +1,149 @@ +/* + * FreeBSD file related system call shims and definitions + * + * Copyright (c) 2014 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +/* sys/ttycom.h tty(4) */ +IOCTL(TIOCSETD, IOC_W, MK_PTR(TYPE_INT)) +IOCTL(TIOCGETD, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(TIOCSBRK, IOC_, TYPE_NULL) +IOCTL(TIOCCBRK, IOC_, TYPE_NULL) +IOCTL(TIOCSDTR, IOC_, TYPE_NULL) +IOCTL(TIOCCDTR, IOC_, TYPE_NULL) +IOCTL(TIOCGPGRP, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(TIOCSPGRP, IOC_W, MK_PTR(TYPE_INT)) +IOCTL(TIOCGETA, IOC_R, MK_PTR(MK_STRUCT(STRUCT_termios))) +IOCTL(TIOCSETA, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios))) +IOCTL(TIOCSETAW, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios))) +IOCTL(TIOCSETAF, IOC_W, MK_PTR(MK_STRUCT(STRUCT_termios))) +IOCTL(TIOCPTMASTER, IOC_, TYPE_NULL) +IOCTL(TIOCOUTQ, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(TIOCSTI, IOC_W, MK_PTR(TYPE_CHAR)) +IOCTL(TIOCNOTTY, IOC_, TYPE_NULL) +IOCTL(TIOCSTOP, IOC_, TYPE_NULL) +IOCTL(TIOCSTART, IOC_, TYPE_NULL) +IOCTL(TIOCPKT, IOC_W, MK_PTR(TYPE_INT)) +IOCTL(TIOCSCTTY, IOC_, TYPE_NULL) +IOCTL(TIOCDRAIN, IOC_, TYPE_NULL) +IOCTL(TIOCEXCL, IOC_, TYPE_NULL) +IOCTL(TIOCNXCL, IOC_, TYPE_NULL) +IOCTL(TIOCFLUSH, IOC_W, MK_PTR(TYPE_INT)) +IOCTL(TIOCGWINSZ, IOC_R, MK_PTR(MK_STRUCT(STRUCT_winsize))) +IOCTL(TIOCSWINSZ, IOC_W, MK_PTR(MK_STRUCT(STRUCT_winsize))) +IOCTL(TIOCCONS, IOC_W, MK_PTR(TYPE_INT)) +IOCTL(TIOCMSET, IOC_W, MK_PTR(TYPE_INT)) +IOCTL(TIOCMGET, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(TIOCMBIS, IOC_W, MK_PTR(TYPE_INT)) +IOCTL(TIOCMBIC, IOC_W, MK_PTR(TYPE_INT)) + +/* sys/filio.h */ +IOCTL(FIOCLEX, IOC_, TYPE_NULL) +IOCTL(FIONCLEX, IOC_, TYPE_NULL) +IOCTL(FIONREAD, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(FIONBIO, IOC_W, MK_PTR(TYPE_INT)) +IOCTL(FIOASYNC, IOC_W, MK_PTR(TYPE_INT)) +IOCTL(FIOSETOWN, IOC_W, MK_PTR(TYPE_INT)) +IOCTL(FIOGETOWN, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(FIODTYPE, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(FIOGETLBA, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(FIODGNAME, IOC_W, MK_PTR(MK_STRUCT(STRUCT_fiodgname_arg))) +IOCTL(FIONWRITE, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(FIONSPACE, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(FIOSEEKDATA, IOC_RW, MK_PTR(TYPE_ULONG)) +IOCTL(FIOSEEKHOLE, IOC_RW, MK_PTR(TYPE_ULONG)) + +/* crypto/cryptodev.h */ +IOCTL_SPECIAL(CIOCGSESSION, IOC_RW, do_ioctl_unsupported, TYPE_INT) + +/* netinet6/in6_var.h */ +IOCTL_SPECIAL(SIOCGIFAFLAG_IN6, IOC_RW, do_ioctl_in6_ifreq_sockaddr_int, + MK_PTR(MK_STRUCT(STRUCT_in6_ifreq_int))) +IOCTL_SPECIAL(SIOCGIFALIFETIME_IN6, IOC_RW, do_ioctl_in6_ifreq_sockaddr_in= t, + MK_PTR(MK_STRUCT(STRUCT_in6_ifreq_int))) +IOCTL(SIOCGIFPSRCADDR_IN6, IOC_RW, + MK_PTR(MK_STRUCT(STRUCT_in6_ifreq_sockaddr_in6))) +IOCTL(SIOCGIFINFO_IN6, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_in6_ndireq))) +IOCTL(SIOCGDEFIFACE_IN6, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_in6_ndifre= q))) + +/* sys/disk.h */ +IOCTL(DIOCGSECTORSIZE, IOC_R, MK_PTR(TYPE_INT)) +IOCTL(DIOCGMEDIASIZE, IOC_R, MK_PTR(TYPE_LONGLONG)) + +/* sys/sockio.h */ +IOCTL_SPECIAL(SIOCGIFMAC, IOC_RW, do_ioctl_unsupported, + MK_PTR(MK_STRUCT(STRUCT_ifreq_int))) + +IOCTL(SIOCGIFCONF, IOC_RW, MK_PTR(MK_STRUCT(STRUCT_ifconf))) + +IOCTL(SIOCGIFFLAGS, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_short))) +IOCTL(SIOCSIFFLAGS, IOC_W, MK_PTR(MK_STRUCT(STRUCT_ifreq_short))) + +IOCTL(SIOCGIFMETRIC, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_int))) +IOCTL(SIOCSIFMETRIC, IOC_W, MK_PTR(MK_STRUCT(STRUCT_ifreq_int))) +IOCTL(SIOCGIFMTU, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_int))) +IOCTL(SIOCSIFMTU, IOC_W, MK_PTR(MK_STRUCT(STRUCT_ifreq_int))) +IOCTL(SIOCGIFINDEX, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_int))) +IOCTL(SIOCGIFFIB, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_int))) +#ifdef SIOCGTUNFIB +IOCTL(SIOCGTUNFIB, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_int))) +#endif + +IOCTL(SIOCGIFCAP, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_cap))) + +IOCTL(SIOCGIFADDR, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_sockaddr))) +IOCTL(SIOCSIFADDR, IOC_W, MK_PTR(MK_STRUCT(STRUCT_ifreq_sockaddr))) +IOCTL(SIOCGIFBRDADDR, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_sockadd= r))) +IOCTL(SIOCSIFBRDADDR, IOC_W, MK_PTR(MK_STRUCT(STRUCT_ifreq_sockaddr))) +IOCTL(SIOCGIFDSTADDR, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_sockadd= r))) +IOCTL(SIOCSIFDSTADDR, IOC_W, MK_PTR(MK_STRUCT(STRUCT_ifreq_sockaddr))) +IOCTL(SIOCGIFNETMASK, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_sockadd= r))) +IOCTL(SIOCSIFNETMASK, IOC_W, MK_PTR(MK_STRUCT(STRUCT_ifreq_sockaddr))) +IOCTL(SIOCADDMULTI, IOC_W, MK_PTR(MK_STRUCT(STRUCT_ifreq_sockaddr))) +IOCTL(SIOCDELMULTI, IOC_W, MK_PTR(MK_STRUCT(STRUCT_ifreq_sockaddr))) +IOCTL(SIOCGIFPSRCADDR, IOC_W | IOC_R, + MK_PTR(MK_STRUCT(STRUCT_ifreq_sockaddr))) + +IOCTL(SIOCGIFGENERIC, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_ptr))) + +IOCTL(SIOCGIFDESCR, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_buf))) + +IOCTL(SIOCGDRVSPEC, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifdrv))) + +IOCTL(SIOCGIFGROUP, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifgroupreq_ptr)= )) + +IOCTL(SIOCGIFMEDIA, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifmediareq))) +#ifdef SIOCGIFXMEDIA +IOCTL(SIOCGIFXMEDIA, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifmediareq))) +#endif + +IOCTL(SIOCGIFSTATUS, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifstat))) + +/* net/if_gre.h */ +IOCTL(GREGKEY, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_ptr))) +#ifdef GREGOPTS +IOCTL(GREGOPTS, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_ptr))) +#endif + +/* net/if_gif.h */ +IOCTL(GIFGOPTS, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_ptr))) + +/* net/if_pfsync.h */ +#ifdef SIOCGETPFSYNC +IOCTL(SIOCGETPFSYNC, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ifreq_ptr))) +#endif + +/* net80211/ieee80211_ioctl.h */ +IOCTL(SIOCG80211, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_ieee80211req))) + +/* net/if_lagg.h */ +IOCTL(SIOCGLAGGPORT, IOC_W | IOC_R, + MK_PTR(MK_STRUCT(STRUCT_lagg_reqport_lacp_opreq))) +IOCTL(SIOCGLAGG, IOC_W | IOC_R, + MK_PTR(MK_STRUCT(STRUCT_lagg_reqall_lacp_opreq))) +IOCTL(SIOCGLAGGFLAGS, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_lagg_reqflags= ))) +#ifdef SIOCGLAGGOPTS +IOCTL(SIOCGLAGGOPTS, IOC_W | IOC_R, MK_PTR(MK_STRUCT(STRUCT_lagg_reqopts))) +#endif --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741944; cv=none; d=zohomail.com; s=zohoarc; b=FzWJSMZL1aGPPLfkabrigtQR3p5py10MciiHNGfwFjYXWI458Mo0DUrC54iXTDvKUXzR7vKNfalZkW2toxrNvL99HLK48P4scdWhBGQkXxaoikL8Fp/jvyzThz1YeiniGX7RWK0f8S2wWRaKBfoczVTCy/n4fyfVrgC89xu4j8I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741944; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=XiRXymXrkWv23qcdXgj3K3CF07+lwiWxAViASFYNdaQ=; b=l6djkpItrCBhutxPkYdvf31QHVqBf/GGAyYUBdaUrAzJO2Pjf450w087lFR4IpM8QMjpvgnPyEMyQ8sOfgI0K9xtpmQrYynhg82edYyXe9DfT2Anqn/tWdQ5hqXJ5ov/qJ9KbdWK/Pbkth3oBVinbp5abvD5JWqGwm+LsyGe/1Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741944647965.2102290868283; Sat, 2 May 2026 10:12:24 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsN-0007s8-Ab; Sat, 02 May 2026 13:11:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsJ-0007qQ-KT for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:31 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wJDsH-0007Bm-8r for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:30 -0400 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-7dbec19732eso2355392a34.3 for ; Sat, 02 May 2026 10:11:28 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741888; x=1778346688; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=XiRXymXrkWv23qcdXgj3K3CF07+lwiWxAViASFYNdaQ=; b=sAFblp2RbcjMAhDyYfirdmWHCAYjWTrIoYfAh1Q1m8Ly3qlSpHVQajxG4dgakgEvN3 MwFfU9UtOWoHMKFebiz4/9AkMZvwnHUC6khF7uyAzzNi7WStp878ZmkWxXIaPYQL9tiv I6kstYhKfxkXS8CGDzGGOxaN1id+zN+kNqR3NVPZ1e3/TfkeK8+C+KIwLGDkDvz2SLqG UzE71xTgynyKmkbMDi6It9oZJEFgz4e9NwRvGJX8pXoucMKRyyNacg470pb4klAnS0Ym pYed+jY+XHwRjhwWC20nuIIYFrfD+x5phAbtT4c3iXkiQrJXmpOz3Eqm5bR5QOH6nHS0 Inkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741888; x=1778346688; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=XiRXymXrkWv23qcdXgj3K3CF07+lwiWxAViASFYNdaQ=; b=Lxrg06ot/pJ2jID55/7qKgJ8PvApFK0V6DaCGspjRieEBM3gGwTKDLh5n+FEMOuVsI LjnfkicMVUujUEeLSnGuxb2qwO5DSr3EIiXoGPaOm5RIgJv4sxz942Vc/dgRjZRCXaTk ySVjEiWPnUvlsnFsuk1SB8JKRKFz+Q/tSpKbXrFzHT1txyzWZiHjcd/41EfGP+rBs0n9 vCgpbvAWGcpSdd8qr/28bFNUOuL9nD15f4iztaVrRK98GK3JTc5KBh4U2t+KgXJlLaGj Mj/7BRTkKoZty0Y1ZDF+ES5ut8IZPEeg8ZoJ6B7nnT7NeqQIG6JMJooIcjv+IfM1ZZ65 KZSQ== X-Gm-Message-State: AOJu0Yz+wERDETAh++kYi+TUlINSTsmMy3xqzAF2B2W0/IrWOJYOXnek spaWdtWjqU1fmVhXcPauuYqPrbkFB+7GJ2Y9hV/5OZAzgLXt9EZx5L6UUFj3kAA17FgWXcnRPjn YtI/bqVk= X-Gm-Gg: AeBDiesvSeUHUsThkbjGADfLGn84UhG2Z3zAvz9ui6t06w10EYhnkRMTvh4UAcK6D+s eVnkRpiDiAijUU0dWz3vvMkR7Vxp+pnBXwDmZIRqQS/87wjOXSBkNmP2DKKyLPmAMyHG9sLBXe5 1+o9zA8lwyfynFOVQJh0ebXtom/8brIySqWrhI2cvpCo4UaaOJBGce9G8YmZgVVeNKHlE/zZAQs k97AWTLlCuNhE36MtQN8Z4Vd8o/A1NHWhJcUoLhU3AyM0FitZmqigoGsJbkbfY+qn2dlyqP93Yo 9mF6DVp3BduVDUB8umxTAY7hDCOOO1qqvGGEptQmER5BQrkr9bQf7/6nR0F4iLkKOKSyT6IKQWP Y/R6DwGZFb+AY08ljXxKKjBzcejwN7bmAkVQ5JVe5fqhveq5mC5FMJ0QX9GVUMYzsH1mqsPHIDA q8P3uSd5NOEfll7K3kD4hLk+DulfNYgm0= X-Received: by 2002:a05:6830:4422:b0:7d7:eabb:2a5 with SMTP id 46e09a7af769-7dee148a3a7mr2360399a34.24.1777741887882; Sat, 02 May 2026 10:11:27 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:31 -0600 Subject: [PATCH v3 10/19] bsd-user: Add bsd-ioctl.h header MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-10-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=900; i=imp@bsdimp.com; h=from:subject:message-id; bh=7krySvXGKAFQniXOZAf3gvwvHJtjuTrz7smA6FnxKN8=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/Q+XbvNJ1URBZTRpQ9DSy+bDLFfCF3PbMy7 JusAhz8ynaJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0AAKCRBsHNEofbAR ALRgD/9rNQvifCMgRQdkADiwx4kRDsCnvReVb6VQFJ0UcwjJ5DjlG3mm+G8PwfPVVohWHQNKYiY vk3mnzCdHnETe3LC5ifF6taGuyvmggBTPAatuqvVBrPiskFfeZzPcfAJzqsPLHo8AXDqljncOnF iquK5Bk+2xomiSmchTMo3UGsV8Ok6y6GGLPScTDYv9JMETRT2kTQJ87cSNlHJklfVTEf4CAGOjF lN3sjjNCjcPd5WZAJzZiIw+a2CaNiQ5lAK3dt6RDexlKWmGA5Tm9hIZjkaKfRXZ/e38e8OL4l2H 26yySwZwSDqkEGIeWdL1hnWfq9kXx+uCdbw8K+ebfM4ekbEr8aUyMgfq6Z6/X9/GbDq4/3/caLf c1SHuV51azYdKGWKQx+wbODLZkS+lzP6GRJeI9hR/8GLu82TgvBDjRQw1HE+5An+sM52YVnn+Hk VU4+ZHjkpqnKD0xqElGQb0hICfnFgXs2H/EEVXnUZp8s1E25IkJS3gA3wwYvbodJ1aKM3qElX0W zIQ3BedbVw2nTpK/EYk8xP32lAizHaPyM/8CffSc/WgIEwR0Krsspf/13Y6WcLn+Xtf6Tkf9T/C YG2b+v/mL4EnDsEDOGxOPcB5aRHbTtd4XyD2OEkDfCq7pbRrWsyel69H+fGG8tJIEe8YbVdyYYZ m6LMu6FIAzAMd9A== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::333; envelope-from=imp@bsdimp.com; helo=mail-ot1-x333.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741946499158500 From: "Stacey D. Son" Add bsd-ioctl.h header declaring the public ioctl emulation API: do_bsd_ioctl() for processing ioctl system calls and init_bsd_ioctl() for initialization. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/bsd-ioctl.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/bsd-user/bsd-ioctl.h b/bsd-user/bsd-ioctl.h new file mode 100644 index 0000000000..bf9bb72bc9 --- /dev/null +++ b/bsd-user/bsd-ioctl.h @@ -0,0 +1,14 @@ +/* + * ioctl system call definitions + * + * Copyright (c) 2013 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#ifndef BSD_IOCTL_H +#define BSD_IOCTL_H + +abi_long do_bsd_ioctl(int fd, abi_long cmd, abi_long arg); +void init_bsd_ioctl(void); + +#endif /* BSD_IOCTL_H */ --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741943; cv=none; d=zohomail.com; s=zohoarc; b=A8tnaAuLCdFiQTysQz+ILDqAUyxZgtfI1myS8mtu129siFh/t9r7zvRaJkz4eEdjH4SMaLkUOdhYcnqdbr4aIJAE3WE8fXcWM0y7T8uZi7yBn4yNBx5r3EtHWAyIWU7trRXKGmTyp2/AFt5bdkVRbqETZPaWqiI8AdWKtRY7bBw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741943; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FIy4SnqLUGIEyitTzv2znL28AAqKREY6FCzUomgrBVM=; b=KacPpm0QNnGQHpy/RZOYJ1kQbTU5xZ7tdQvFRXGF0R9vzSKOAKr5OSLWnxr4FrN8G6dsJk9f/ieocRItRYooUy+eBIdZRmmummc25ig2QA7+3opQKkRtqyOcdZ6aAr0SX05bZp2CJItciSDunMrM2n4bSQnxjpK+zS40htb4LF8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741943425131.59570647911858; Sat, 2 May 2026 10:12:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsM-0007rr-Tr; Sat, 02 May 2026 13:11:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsJ-0007qP-Ju for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:31 -0400 Received: from mail-ot1-x331.google.com ([2607:f8b0: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 1wJDsI-0007Bw-5B for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:31 -0400 Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-7dbe437b072so1829373a34.2 for ; Sat, 02 May 2026 10:11:29 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741889; x=1778346689; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=FIy4SnqLUGIEyitTzv2znL28AAqKREY6FCzUomgrBVM=; b=M6mPKIGS+7XBlE6GsaZeAjL63hloQWEfVpj4sPmkKLeK4zD+m6uyDCcocWZqzt7B27 08ihGFuMJD1lHGskJjOjVe2L64qhHNHN3Ni+mq0uktB1/jbglfvvH77wudKkgw56vf0e /h4QluiWbwWYGbBBkwQHaye2eGIIRr6eRuEFMfzexfScOsAqcFEFUOJixU4Gxdgqo2jE ubxOQa4NEfjBebQIj0JV9jkjzS9XGj7PqcPOuZnqg9MkombK+oe7Ekg79XFuNuLOZjqY VIOh1zi1gCDFRWFCpYfArT7M3INYA/UKZ9ntbqLjEcmQZKgPOY/c/zLb8gMzaU7kQkYt 78HA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741889; x=1778346689; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=FIy4SnqLUGIEyitTzv2znL28AAqKREY6FCzUomgrBVM=; b=guJ0wuEHDtIvjCvV9PKy+As/L6dCmIOW1tXkokOMNFnnB1qyLqF08GI023Pu/KYZYW +wV07N5gS8pykam+gsQsiVU7KhnKjVfNvzIK+347tsRlGJroI7pkYSVGmClMvscFfdM0 LYyRBmhrsXfiixDhHEmHFObjwRj8ejYo7mFbmCXn9AexyfhglrKAVJ7DuyBnZiHC6WzK pCiU2woCJ2OHajAyzftAuuS3pNC5g6N6i6LJQq830sw5wAtIfNECcGMmuj0hAgAVcTEo k8cA80h1UBv9nyweWvtNCAjoWTHE+rGI2kCZi6w2nNdIvRgRCTOanL5q4Tp71XIIiePR ZDlw== X-Gm-Message-State: AOJu0Yy2pBXmGiXgOcO4PnI4qJytHmkHwRISWo7EUcbGeOCxJnFWKLAR vl3wKnGWm6Qa/Np74aFI/HZ4CHavBadWcJUjbTqaK4yOXnwtmxEJN4b9mlp+I5sVtRLkfyBzG/E liz0bvns= X-Gm-Gg: AeBDiesGM/BYdiNSzntns/w06XaFXk+oPh7txZ7lLVTQvXNciDPvFxhSJmcdYWeRV5M mJmFwqDCIOLKvDSdhxLs9N5XQwcsEqk5YT4/SnSKS/Q+R+VI1V/LGc7eJC+ga+m++cljN235Snd QRnoRnmfkMOnRTKLO5/IsO35393F134Ktfb5xDISVcl5wsR6+hLgrsdRoQqT0O0I6U7VihPaIjI byK9XkafOJ4HGOV8i3TCvR9EfhmAm+Y+sjY/ZgncX35O4EEaJlbGT9JvA0BGc26TOb5/J2qvein WZKb0F1BymEFBPiZgdjnm24tYtFJFy9N2uwxJfrafni7BbLxbuwT8hMiBKROtiHs+zBK+qBiGSm DkWWIY31zGOK3pS6MSn1MSPQljQQYEyTWZB4fujHoPwuhlpxLQvPUG4xQeCNpI77d3c7Kw7DkkI jmLlXKXZJydpp4bMc+oM8t X-Received: by 2002:a05:6830:4c04:b0:7d7:f623:680a with SMTP id 46e09a7af769-7dee122059fmr2225779a34.2.1777741888839; Sat, 02 May 2026 10:11:28 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:32 -0600 Subject: [PATCH v3 11/19] bsd-user: Add target_sockaddr and safe_ioctl to syscall_defs.h MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-11-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1150; i=imp@bsdimp.com; h=from:subject:message-id; bh=xg/177J6QSN8YcD+cjog3d3ndgjHQvk6fuzDhXxQAcI=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/Qp7OAee6qOUIGj6txSV20ontD+qBeWHBbZ xk8ryHJB2yJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0AAKCRBsHNEofbAR AEP3D/9NkGmLSwADME7uyjXzBvYCBJUWEWQgpKdCTxtKH39ixihgMJ56rUFALN2jCfZNug05XGy vGVlOjWgyLwfC3ElVLxjNEiz0p3kTv4rZmDn0ii99FxBha22kP+H5wsQwLUVi57psg+cCpClfyb 8dXhmHSmNIfgkWm/qKWtC2+OSPpmwy/5OHJ4K0nqKH6iorfxjKNEfFJdbVCbqbcqOhvVB6fZmyf c31viqP5QM98EceNjpp2iobtsiMNywhjw7cXbXx0C0Z97Tj/aGyaj5N6lXj2b6RMBVP4+t3W07F T2tk5cyPaUsoBLxBwWOOPv0I6i68gDRTaZlkn5Ht0yiuE9UmIO44zE5LKLNq1TbqUTaP29hWb9J K7JUERniZaSe3dbtUJ7kMvkp3Ar0dEYyATtVHnDo0MgNiP9TC8PFG+Kzb9SaEx7l/Rn45JRHS4I Xz6exfiH+DZP52RSHDSir7QWeCyxZ2jIuYt3os8/xw+OYxiBq8l43NyUc9wAf70cv9V2IQq4NPy VLueX+68wZfarAtw9t0X0FAhXUW8RAbbtafd9MwBt7h3HGkaRw7a3NB2OOPtJaI8WT/3Qju3BQf rRq7uXdThqIetoMKVJi2+x1LR9X5o3nVPfsbPSUzujFudv0j9zLi9zvEFdqEBtmjQUf0XnHKDy7 uub01KtrvmK1/Sg== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::331; envelope-from=imp@bsdimp.com; helo=mail-ot1-x331.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741944596158500 From: "Stacey D. Son" Add struct target_sockaddr and target_in_addr definitions for socket address handling and safe_ioctl macro for safe ioctl system calls. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/syscall_defs.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h index 4dbd90c2f1..34ea750bb2 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -565,6 +565,20 @@ type safe_##name(type1 arg1, type2 arg2, type3 arg3, t= ype4 arg4, \ return safe_syscall(SYS_##name, arg1, arg2, arg3, arg4, arg5, arg6); \ } =20 +/* + * sys/socket.h + */ +struct target_sockaddr { + uint8_t sa_len; + uint8_t sa_family; + uint8_t sa_data[14]; +} QEMU_PACKED; + +struct target_in_addr { + uint32_t s_addr; /* big endian */ +}; + +#define safe_ioctl(...) safe_syscall(SYS_ioctl, __VA_ARGS__) #define safe_fcntl(...) safe_syscall(SYS_fcntl, __VA_ARGS__) =20 /* So far all target and host bitmasks are the same */ --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741987; cv=none; d=zohomail.com; s=zohoarc; b=cYQzSYaTTNx93ORQg/msLPPixLyXVEnGmLArXugISLjk2tofQOrm1l0n7zCIUZ01nWlnLdIo812HihhOqTl2UmreWMH6K7tPDnTN4V3XJMVG9HYtLm8w8Y5dmotgSbk+qu+IW6ye57r69cimIpTfal/wgDvKqPORIDTU7OfBN34= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741987; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4MKf6De/lMm9M73N3EIAo5PrmTbOcp6IZR9GOSaoP9c=; b=Ti455QWrPqWhAgcnZFLqHkehncR3OUpDwLqHkZ9Cz3mq5hkQ7bpWHaRscGDcq3eZv1z590tNMgK1IV3C5sS9t7wR4hqqy39KM9XZOXvOO2dG1pgvhQTGvtfPCZrPUw2NDaTU1og62Ab6NczIEvOAf3edsTI3U0fEs2fCmxZ8pDA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741987208296.1705879703387; Sat, 2 May 2026 10:13:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsU-0007u7-QS; Sat, 02 May 2026 13:11:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsL-0007qn-E4 for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:33 -0400 Received: from mail-ot1-x334.google.com ([2607:f8b0: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 1wJDsJ-0007CM-J0 for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:33 -0400 Received: by mail-ot1-x334.google.com with SMTP id 46e09a7af769-7de44ed7a11so2424846a34.1 for ; Sat, 02 May 2026 10:11:31 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741890; x=1778346690; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=4MKf6De/lMm9M73N3EIAo5PrmTbOcp6IZR9GOSaoP9c=; b=ak3+YEoOCyaCz0nSaQCgk5Jl4machKkfrjpKVx4ZQ3nk1ySIngvI4lbVaZhragm25l EJklJ1Gngzk7iUZBSOXKXnQPB+UXCuBBY3FyUp/vgIWzrmbeMCRrysBFMDZoDoZ7cnYs XzUYMf66tDrUTedjDBE3x3xCW5af8atdc4b/lxbzrjYCJS3dJsY8hkGsDow1ejvwU4YJ YruWk3znYutbBjbv6uS05CiAN4/+sRPpGjPEPgHNNajcmg/i+yKH/yrmsfeA0wwFcYne ZlP1kT1oHyBt5nPeOSaaJH8I0a6SBDzaUVRbm/E5GBv7HN7shcjB8dCchasjUXqYkKci +zEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741890; x=1778346690; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=4MKf6De/lMm9M73N3EIAo5PrmTbOcp6IZR9GOSaoP9c=; b=YFJSK5nJnNvdHZH0HxZ1Lf5yIeE8qnT2bDUq3BG6y4LbmxXXlNdq96i2X+7Wga57uM fWzUIB4TbTWP+6DfKxUkQvHx4WEYSxSyH2jhuDGQnducUfnX811HLCQfIOPe94skzZxc +MXsvJu+Vo2xi43PwxVx+iuU9dMb48zd6nduuCPK+MEgTwXbKpXQtwFQAzqqYIAysUlr DB7lF9pkgnE1zOWwF8B3e0F/K5m6HSH6i8psERlDiT9o28hVrcc9mW+9nxDNqZjIS5+Y xgELWs/go6CHBwc1m4PscAbnxtZL83STUEp4UF1BBQlvAmfKXsnU4IQ9SvEQNuU6BUI2 UjTg== X-Gm-Message-State: AOJu0YwomvR+W2vr4TMWjTDX14Vx/EbnhaclM5h5HYG8W54rcL6ZwQnF tNYeg15M3LpvjszWSrs7hwKEcsTVWfy8e78dsqYdAs4PcF0FVMfFnaWpXV2PpsbIWL+mj2u0wed /cjPD/cY= X-Gm-Gg: AeBDieufiRoWJs81ShQd3/oOv1N4GX2A/qBPGi83kZrCq1uxVr90pQZhSk5di6/21kP U8r1ZwPht5C+3bsK3yOoynHg9/OM4iWRiIZmpjjSFUujZFaturGcGmfTLMx3G1ky/j9+PjlH9EJ 8Gg2vUTOMM0GYtAki3I0bzCXq+7EaQuVoEqYagdRpu66RYYgyds1e4ZGKh3KXLJtrgAnTYskZ3o 1C+Ji5LdJ5YPQRBK6W8gWElQrBW6MCtwHmuMqnxFIj1BDKX/S3GicZT2n+yTDY0I5mWGsyI4/v5 Q5lzYsPq7ep+rTfnXXzmkCFOTD6/87Rtt5htPaLrBC2RPRd9YYRYlsNIgF9gj0jI+RrqPT6DvAm jQqhGGkjaDs3ooMCfWpkL7ThQxUQBQaSN22pQ4KCv8znO5f1slrIkDomP3V/Z9Xy8mjbKDhCJBE BEko4CZd/sdiJPhfByCIJy X-Received: by 2002:a05:6830:6a87:b0:7d9:71fa:3079 with SMTP id 46e09a7af769-7dee1267007mr2445301a34.10.1777741890173; Sat, 02 May 2026 10:11:30 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:33 -0600 Subject: [PATCH v3 12/19] bsd-user: Add bsd-ioctl.c infrastructure and termios conversion MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-12-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" , Sean Bruno , Kyle Evans X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=8485; i=imp@bsdimp.com; h=from:subject:message-id; bh=L5oWgaasv37SfpZktqhsjhO7ULMMl2LYv2E2ql7FUpQ=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/QzNnPiH1xBxFWnZ9Fp1Zus7C7GTc1xiyYW u7g9aGt3F2JAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0AAKCRBsHNEofbAR AKxkEACoebCvRVaU7ZG0WfKtE9mj7TzI5TQCnG4Jy0XNRvY8S9jUEWeSL9akFKQ39pjbgRTSWXg 4ncQhWgdJde7pzEvpFQtddtMJFFKpo7I3MeQuWGs/3Db9/cARtLy9JA2TQ4qZf56Q8tDyA87WpX ImlKgdGdxLNPGGW8aFUZkqctXt2FEEXcwuyqPG7fS+N6ezajaYAobUmAaxkVAeubZratd3pNM6u OZBueNJyhwYnjCfE+55zOKFmM7NdWl9Kv/SZlcwpif+25iXSt8PfXOADwNwY9nK/ShhkosTHLW/ aJgY7SFRuDJCQqqg/seR8oM3evE1n2vtPxHRGJ9Eb6WWJ4ZNeVXuzt7a84e44wD/egnhCnYlV8V Te6C5xhSzv2x5+lJV4LErkd+mSWA+2fTkkxIMRXxjegMYYs++2yVIY3WQ9XlfLCWftaUTy+XFBf w3NMphVeMz3tSVWqaPpEq1tS7AHANv3lVXL4/uD9XAmFlRcqtJR1v4Ud8/YqbR7auF9DimOe+N1 0MITHBTA9tM8rqzE7CwgnbC5M0sPsq/dLF/stD7b4ZXjM/NDwByQbYLNY1by3xwXv864Brr5UdH EvI2tY+ulojBPhjELGJoiAqa3fPzYbDzscOMRiwBRHcYrpYIn3vUpVPg5EKNVPAUvEYwzDODbTY 8cfUvQJWuRPydeA== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::334; envelope-from=imp@bsdimp.com; helo=mail-ot1-x334.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741990112154100 Add initial bsd-ioctl.c file with termios conversion functions, structure type definitions, and ioctl table infrastructure. Includes target_to_host_termios and host_to_target_termios for terminal I/O control conversion, along with the ioctl dispatch table framework. Style complains about STRUCT and STRUCT_SPECIAL defines: =E2=97=8F checkpatch.pl: 197: ERROR: Macros with complex values should be= enclosed in parenthesis =E2=97=8F checkpatch.pl: 198: ERROR: Macros with complex values should be= enclosed in parenthesis but that's fine. We are doing weird things with macros, and it's fine. We can't put parens or do while (0) around these since they are table building macros for files that are included multiple times. Signed-off-by: Stacey D. Son Signed-off-by: Sean Bruno Signed-off-by: Kyle Evans Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/bsd-ioctl.c | 219 +++++++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 219 insertions(+) diff --git a/bsd-user/bsd-ioctl.c b/bsd-user/bsd-ioctl.c new file mode 100644 index 0000000000..94110d4ad5 --- /dev/null +++ b/bsd-user/bsd-ioctl.c @@ -0,0 +1,219 @@ +/* + * BSD ioctl(2) emulation + * + * Copyright (c) 2013-2015 Stacey D. Son + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ +#include "qemu/osdep.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include "qemu.h" + +#include "syscall_defs.h" +#include "bsd-ioctl.h" +#include "os-ioctl-cryptodev.h" +#include "os-ioctl-filio.h" +#include "os-ioctl-in6_var.h" +#include "os-ioctl-sockio.h" +#include "os-ioctl-ttycom.h" +#include "os-ioctl-disk.h" + +static void target_to_host_termios(void *dst, const void *src) +{ + struct termios *host =3D dst; + const struct target_termios *target =3D src; + + host->c_iflag =3D target_to_host_bitmask(tswap32(target->c_iflag), ifl= ag_tbl); + host->c_oflag =3D target_to_host_bitmask(tswap32(target->c_oflag), ofl= ag_tbl); + host->c_cflag =3D target_to_host_bitmask(tswap32(target->c_cflag), cfl= ag_tbl); + host->c_lflag =3D target_to_host_bitmask(tswap32(target->c_lflag), lfl= ag_tbl); + + memset(host->c_cc, 0, sizeof(host->c_cc)); + host->c_cc[VEOF] =3D target->c_cc[TARGET_VEOF]; + host->c_cc[VEOL] =3D target->c_cc[TARGET_VEOL]; +#ifdef VEOL2 + host->c_cc[VEOL2] =3D target->c_cc[TARGET_VEOL2]; +#endif + host->c_cc[VERASE] =3D target->c_cc[TARGET_VERASE]; +#ifdef VWERASE + host->c_cc[VWERASE] =3D target->c_cc[TARGET_VWERASE]; +#endif + host->c_cc[VKILL] =3D target->c_cc[TARGET_VKILL]; +#ifdef VREPRINT + host->c_cc[VREPRINT] =3D target->c_cc[TARGET_VREPRINT]; +#endif +#ifdef VERASE2 + host->c_cc[VERASE2] =3D target->c_cc[TARGET_VERASE2]; +#endif + host->c_cc[VINTR] =3D target->c_cc[TARGET_VINTR]; + host->c_cc[VQUIT] =3D target->c_cc[TARGET_VQUIT]; + host->c_cc[VSUSP] =3D target->c_cc[TARGET_VSUSP]; +#ifdef VDSUSP + host->c_cc[VDSUSP] =3D target->c_cc[TARGET_VDSUSP]; +#endif + host->c_cc[VSTART] =3D target->c_cc[TARGET_VSTART]; + host->c_cc[VSTOP] =3D target->c_cc[TARGET_VSTOP]; +#ifdef VLNEXT + host->c_cc[VLNEXT] =3D target->c_cc[TARGET_VLNEXT]; +#endif +#ifdef VDISCARD + host->c_cc[VDISCARD] =3D target->c_cc[TARGET_VDISCARD]; +#endif + host->c_cc[VMIN] =3D target->c_cc[TARGET_VMIN]; + host->c_cc[VTIME] =3D target->c_cc[TARGET_VTIME]; +#ifdef VSTATUS + host->c_cc[VSTATUS] =3D target->c_cc[TARGET_VSTATUS]; +#endif + + host->c_ispeed =3D tswap32(target->c_ispeed); + host->c_ospeed =3D tswap32(target->c_ospeed); +} + +static void host_to_target_termios(void *dst, const void *src) +{ + struct target_termios *target =3D dst; + const struct termios *host =3D src; + + target->c_iflag =3D tswap32(host_to_target_bitmask(host->c_iflag, ifla= g_tbl)); + target->c_oflag =3D tswap32(host_to_target_bitmask(host->c_oflag, ofla= g_tbl)); + target->c_cflag =3D tswap32(host_to_target_bitmask(host->c_cflag, cfla= g_tbl)); + target->c_lflag =3D tswap32(host_to_target_bitmask(host->c_lflag, lfla= g_tbl)); + + memset(target->c_cc, 0, sizeof(target->c_cc)); + target->c_cc[TARGET_VEOF] =3D host->c_cc[VEOF]; + target->c_cc[TARGET_VEOL] =3D host->c_cc[VEOL]; +#ifdef VEOL2 + target->c_cc[TARGET_VEOL2] =3D host->c_cc[VEOL2]; +#endif + target->c_cc[TARGET_VERASE] =3D host->c_cc[VERASE]; +#ifdef VWERASE + target->c_cc[TARGET_VWERASE] =3D host->c_cc[VWERASE]; +#endif + target->c_cc[TARGET_VKILL] =3D host->c_cc[VKILL]; +#ifdef VREPRINT + target->c_cc[TARGET_VREPRINT] =3D host->c_cc[VREPRINT]; +#endif +#ifdef VERASE2 + target->c_cc[TARGET_VERASE2] =3D host->c_cc[VERASE2]; +#endif + target->c_cc[TARGET_VINTR] =3D host->c_cc[VINTR]; + target->c_cc[TARGET_VQUIT] =3D host->c_cc[VQUIT]; + target->c_cc[TARGET_VSUSP] =3D host->c_cc[VSUSP]; +#ifdef VDSUSP + target->c_cc[TARGET_VDSUSP] =3D host->c_cc[VDSUSP]; +#endif + target->c_cc[TARGET_VSTART] =3D host->c_cc[VSTART]; + target->c_cc[TARGET_VSTOP] =3D host->c_cc[VSTOP]; +#ifdef VLNEXT + target->c_cc[TARGET_VLNEXT] =3D host->c_cc[VLNEXT]; +#endif +#ifdef VDISCARD + target->c_cc[TARGET_VDISCARD] =3D host->c_cc[VDISCARD]; +#endif + target->c_cc[TARGET_VMIN] =3D host->c_cc[VMIN]; + target->c_cc[TARGET_VTIME] =3D host->c_cc[VTIME]; +#ifdef VSTATUS + target->c_cc[TARGET_VSTATUS] =3D host->c_cc[VSTATUS]; +#endif + + target->c_ispeed =3D tswap32(host->c_ispeed); + target->c_ospeed =3D tswap32(host->c_ospeed); +} + +static const StructEntry struct_termios_def =3D { + .convert =3D { host_to_target_termios, target_to_host_termios }, + .size =3D { sizeof(struct target_termios), sizeof(struct termios) }, + .align =3D { __alignof__(struct target_termios), + __alignof__(struct termios) }, +}; + +/* ioctl structure type definitions */ +#define STRUCT(name, ...) STRUCT_ ## name, +#define STRUCT_SPECIAL(name) STRUCT_ ## name, +enum { +#include "os-ioctl-types.h" +STRUCT_MAX +}; +#undef STRUCT +#undef STRUCT_SPECIAL + +#define STRUCT(name, ...) \ + static const argtype struct_ ## name ## _def[] =3D { __VA_ARGS__, TYPE= _NULL }; +#define STRUCT_SPECIAL(name) +#include "os-ioctl-types.h" +#undef STRUCT +#undef STRUCT_SPECIAL + + +struct IOCTLEntry; + +typedef abi_long do_ioctl_fn(const struct IOCTLEntry *ie, uint8_t *buf_tem= p, + int fd, abi_long cmd, abi_long arg); + +struct IOCTLEntry { + unsigned int target_cmd; + unsigned int host_cmd; + const char *name; + int access; + do_ioctl_fn *do_ioctl; + const argtype arg_type[5]; +}; +typedef struct IOCTLEntry IOCTLEntry; + +#define MAX_STRUCT_SIZE 4096 + +static abi_long do_ioctl_unsupported(__unused const IOCTLEntry *ie, + __unused uint8_t *buf_temp, + __unused int fd, __unused abi_long cm= d, + __unused abi_long arg); + +static abi_long do_ioctl_in6_ifreq_sockaddr_int(const IOCTLEntry *ie, + uint8_t *buf_temp, int fd, abi_long cmd, abi_long arg); + +static IOCTLEntry ioctl_entries[] =3D { +#define IOC_ 0x0000 +#define IOC_R 0x0001 +#define IOC_W 0x0002 +#define IOC_RW (IOC_R | IOC_W) +#define IOCTL(cmd, access, ...) \ + { TARGET_ ## cmd, cmd, #cmd, access, 0, { __VA_ARGS__ } }, +#define IOCTL_SPECIAL(cmd, access, dofn, ...) \ + { TARGET_ ## cmd, cmd, #cmd, access, dofn, { __VA_ARGS__ } }, +#define IOCTL_SPECIAL_UNIMPL(cmd, access, dofn, ...) \ + { TARGET_ ## cmd, 0, #cmd, access, dofn, { __VA_ARGS__ } }, +#include "os-ioctl-cmds.h" + { 0, 0 }, +}; --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741924; cv=none; d=zohomail.com; s=zohoarc; b=ilM1obMORLX0AA/Y+5MXh7X6mHnBG8Lglk6OymQ4pJG9kXm2tdNGkJdDA3H8vg5MaZqOkP0leCJAtRnDX/iHL4Cd126EF0SWdCIry3K041hS8jEe0zE/qTfbUo9uPU+KhfMfaz+dsdylDrChigjzMRr56t29LlndMht9U8idFIE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741924; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=HAHKfojUuw/69SixWPv6wm5RcU3cb1v2ogn7XGt8kfk=; b=T+h+GlEnGN0yoURfuJ89b/5hN+mpaa9f9w3dwCc53UOHVhah5PYIamWXVLn5gH4gLqDQfui9wkQakPsHJCR0HE2jc8PqHbsawKE001WsKZrem/blQa5idki4k01vuGoqQ6yMDOKc3bhGKd6L0IBeIHW+6xhIn898JHmMmJw4YmE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741924148143.98805523994497; Sat, 2 May 2026 10:12:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsO-0007t7-M2; Sat, 02 May 2026 13:11:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsM-0007rj-8m for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:34 -0400 Received: from mail-ot1-x335.google.com ([2607:f8b0: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 1wJDsK-0007Cg-OT for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:34 -0400 Received: by mail-ot1-x335.google.com with SMTP id 46e09a7af769-7de4be15125so2511692a34.0 for ; Sat, 02 May 2026 10:11:32 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741891; x=1778346691; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=HAHKfojUuw/69SixWPv6wm5RcU3cb1v2ogn7XGt8kfk=; b=pZWC/kjYNiXBoRUXYleGbQQdVyiZ6mIKVgp6stiIZFb9EF5E8xycZpfWfoE1lzqrA/ dpOB8ZaG/tI5fgiu0d5HnfTFcOGHTIVipi1XkRwc8zs7LR7RG+iGAoyUN4NZvHYZ5v7n xE6fVJBbmW3QEGK+bkBZf8RkB09IVmpBYC9Z6+Si8HPmPlK7ho7xhmIGuBPAQPToAN3h yycs8GTfEk0qMj5+BGMNoaWMzXUMo7WmF1GbyDWV7wRFM9Y0ksB3Z4ruFkRCn7m+QX2K 1m9EQ/VEJ03zhA+GYt8+JGqdSHRvbKIzVcFnZHCy5iv+BO3sBMcg7slwg+znVx7sWAyy uMbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741891; x=1778346691; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=HAHKfojUuw/69SixWPv6wm5RcU3cb1v2ogn7XGt8kfk=; b=FEeVZ+YKf99x1FX25nif7ENapVFeKYfLHalYgAFjo7dpMkj4QF3r+gVgcI63LB+BSg VNqxk+A13xKaibQfhOApa2e8rhZLTAgZRuuwpc/lrvt2p7GJenRlM5vtzRjL4RwZTYAj AFXMON4P6znSfujEzzHhGXFKDqlIzJa48/i018DV41Ypa2ZgkmbrQOetP580SFHn57fo AT6aus5/FMa3CfGTptER6rfeb0NMRntP15tk6YeThGrwgPoeolDVe2DLeD2mtA4RqpkL 3KGGaqNa0eSv0lwbuW+JbE455amd5BCin5PBsvdR4N37DddfUubDuLMkkihFReb9fG93 qrVQ== X-Gm-Message-State: AOJu0YyEp1K2MF+NI71X0HEIVZ3stM8+9GgJB4CYzEjNLviwrQTnF1ea mOfvSfKZxzGwVpOHBapiEvtzYMyNsF54wnmJgGwaWhRT6/Io7bggxnjbK2zhq8SRaWSGgOYuPuA 6WjwKmVE= X-Gm-Gg: AeBDietJ1ygkYPtzZSLcQtlo/BkXser8eGkG4bKHQvVJymOm7ao/pKcFERDA1M0alWN 943IOwOs9eVxK7VadahuVOiihPOIZ64jnAfIYdjQ6KQao9V1Bwcv4VOdi4dJywUeo/okBt8fOms tKnlO0sMczI+W1tUoHwN84avvoMDE2lKI3X1EatgcQvInlWOq0KX5JSKdnS16HLCCwpzA4hSueb aBq9vDcd73uW9qYVu9LAkcfjsV4oY+Yd+ZdKBka5PrUO5NwlAI/5pRSFObD2y6PQkAleUqguSOL G2UdC53klqUg0vWDJmNthsruMxtjRX1gW2fK4MnCsdLJfRbmMWpgPaL/gvY9PBM05RyhagLziaz srf9GZx4DNWHshVEHAUJQU6as4Y3T0jNMXJ/T/P51GIA2b+dFG3k4QVUSb0HAV7sYnWK8epyK5o g6rz7e1CGPcYBA6epyb1PL X-Received: by 2002:a05:6830:350a:b0:7d7:ccd6:3cd4 with SMTP id 46e09a7af769-7dee14cf785mr1845102a34.23.1777741891423; Sat, 02 May 2026 10:11:31 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:34 -0600 Subject: [PATCH v3 13/19] bsd-user: Add log_unsupported_ioctl function MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-13-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1282; i=imp@bsdimp.com; h=from:subject:message-id; bh=tQ0vLwhfAdA97xzGxFaYPIA9yayNPuS/jeE39FxxK4w=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/QJZ9eP9yDcPhVNN4jwShipGxfWEO8VbNNR A3ubZ4aJziJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0AAKCRBsHNEofbAR AOxIEADO4YZqSQ+JB8sy/gOsehZIgN8ki2wSThTnGjIWqfWSjIL6kCop9KJBZgrha3x+SNrnrcj POlHxcqEA5DLV+OHqZRwKz7YPvf/mrqM4MDz36/qUKMJ0qumRvwX37HhFdkERJdQ5C5p29fYkg0 jdg+9LqPlARTwbCczRfLUtAzCCFLjUG82GV+Cc3DI28eZvCxDYPySwYg1GeQ1CgkP0f5kdDLAuf 2FkX5Rbotpf1e4yKt3nfk6yewwTw8A+4GZv3H415ZTbk0GSrwnbrn0dnWwEaiYhbBtcjfXNlTjn mdK5v2nQhV9BuLIL/wNJHbHj72BFay9qJcL7cCQvYQTxJK1bRJ/MJdmWumnirmp1NlpovFyxcfV fAnANZFZ+3DDfyiNmNFkjsR9tWZ/FQQ63JX8LPLCu7a80ndwj/JBX02CnkmOx879WT8g07wLYYF Y2l43AE5n67TVJq4hMTw/uWLptALvzmh0GYMGkgiJfqIzRhhtIW9Ve/vvktI5ZmFYqF0YaK1uQQ 1YayYicp+6pTISbOZQsYUv8bIKKUFbcsYUQQGjjsNh/Q9yZGkHN0XOei161rOPwuXG+EVAiwg4N ki0Rw6+K3xANkAAA5OkL36DrLvLErA9RN9JXomqpwNPRStFsTeCZYsFHjT62JtqasBI5q2Ml0d/ COPXSVN8+7E+EUg== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::335; envelope-from=imp@bsdimp.com; helo=mail-ot1-x335.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741927446154100 Add helper function to log detailed information about unsupported ioctl commands, including direction, group, and parameter length. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/bsd-ioctl.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/bsd-user/bsd-ioctl.c b/bsd-user/bsd-ioctl.c index 94110d4ad5..2d84adce71 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -217,3 +217,27 @@ static IOCTLEntry ioctl_entries[] =3D { #include "os-ioctl-cmds.h" { 0, 0 }, }; + +static void log_unsupported_ioctl(unsigned long cmd) +{ + gemu_log("cmd=3D0x%08lx dir=3D", cmd); + switch (cmd & IOC_DIRMASK) { + case IOC_VOID: + gemu_log("VOID "); + break; + case IOC_OUT: + gemu_log("OUT "); + break; + case IOC_IN: + gemu_log("IN "); + break; + case IOC_INOUT: + gemu_log("INOUT"); + break; + default: + gemu_log("%01lx ???", (cmd & IOC_DIRMASK) >> 29); + break; + } + gemu_log(" '%c' %3d %lu\n", (char)IOCGROUP(cmd), (int)(cmd & 0xff), + IOCPARM_LEN(cmd)); +} --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777742006; cv=none; d=zohomail.com; s=zohoarc; b=DyQ3+j3vrNbNLblPn1v9ptbwWbGll4xrPfiTpafRiJ4jXZbn9p/F6sri7Hm9RVaZVzdpzIevBX96lcsJrFRLudLpoRAM+2r6gwIWYqxTagT3d4ryoBXpQHaniY0JusqHuZ7lLPZWLSjzhba6BOAwoOTfjRxu1lGvISCdnR+eyV4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777742006; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=vXQpeVT6NjBI0ExB2y6SAL1f7h+wTVfpl0e6umDStqE=; b=EanRMOMkJRm/QGwL3uJwM6Yr05eBN1je0zAUftmSidtxl1zx9ubJ9J7OmglO347Q4oxw0CUMbBr+7x4gqqq+Xa0CjB5xAlXot7NrAMX4Zi6c0IrhFBE16ykewp7S1UlImh3fFG7CGia/ccEkKJ6d2L8WaRuD8TaGnwU4tjPhnBk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777742006506753.2510720542075; Sat, 2 May 2026 10:13:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsP-0007tK-5x; Sat, 02 May 2026 13:11:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsN-0007ry-4C for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:35 -0400 Received: from mail-ot1-x32e.google.com ([2607:f8b0: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 1wJDsL-0007Cp-OE for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:34 -0400 Received: by mail-ot1-x32e.google.com with SMTP id 46e09a7af769-7de431da8fbso2612378a34.1 for ; Sat, 02 May 2026 10:11:33 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741892; x=1778346692; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=vXQpeVT6NjBI0ExB2y6SAL1f7h+wTVfpl0e6umDStqE=; b=oM1o2JL8KV1CTI7DUP6GD62Q7TWUGIsy4uvyC4quqxjxQZxmt55Xw1+Wal3uTt2wR1 TFV8TVorp0QwKN6qynqxBcaZPxm5D2wJY+kO9JPZWhLOiaEuRw6Yq0WJAqgewzwO+h9F /hWVGFe6+E5Qtr5wUahU4bHmXoZCZLGCyAjNHdSVTIxClo6D/p2EZDlGfcePOJIwICcx lfIsYk76BzyREQS8kC5Oewbt6L//aCUQuXbCrAO5637C4AlFMGPATxYhrDJlR9RBo98a qkSeroLLdxNxvuQtOrgqNNgutGWfBKASEXGH6n8/eDW4LaG56XokdYKVMgm3ohveNc5N b7UA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741892; x=1778346692; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=vXQpeVT6NjBI0ExB2y6SAL1f7h+wTVfpl0e6umDStqE=; b=GCaqJlrmpQgPw0gBmH1uff9SNpMj0ih0Qy6cr5qrk3vQQ8dFgqIPK31TOK4FoxWfua TvAVytQNCQzZdAx7uqd7/oG+gz+0TurWpCdWyCKaj9GkinXppPx8yHmWfkoqjwCvB/XF AY9suLNfJZZRg/92MIoQO3IkWzfeR62PyUpIzEM1xODp65fEhDNghDsLOzBP0tTLZRwi EucFleIjVghzoOQPafDY3LXjDn4Bb4z2RdjejZhkIYTMyNiJGVV9m7gpC9fJvwU8Tg1D 02g6KgSV10UtpzaKwj4rd+sU/yj954Mg6zkeG6U1wf6rv/ynP+YYNOYxMsAaAnddyEWx E4dQ== X-Gm-Message-State: AOJu0YypuqKF8Mh6/Pnq0UXlU3tvUi3ffjCYIsYxlNXOxmDduIfQYjtG wZYHNvlPbCFAPF5K+26UI/Sw1Aa2TgHBm+pe4w2YI6+al/zs00cZxaA43dgFuXzkRYwHQ9h9r1f Y1LKerxI= X-Gm-Gg: AeBDiesVsIhlBhAr3tbNc6YEBndC30cq9kExCJ30COWGaM9BI60Z+RlumT+S7FtBUyq sCEQEzZBJPOHgC2eAWYnVf9PSbuWxEqacgg9KkAeme8q+kb2RqXC3x2DA3HN9cYgfgmtii2BIe1 Tus4tlidVhQ8eujEFrNY0nm1Z+qESDS7PDCqWhwJ40hyApdkKPY8LtTq2Rfxd4QDHGrzZNEXIiA dGnML8Q9QJvLNLJtOa3DIpCrl1yhyZwqys55TGJwKpEE/BsxpDFY6xC+0okjmVTjRbpRI1eCN1c bod3vcJn4/axI706vZo1Cs5+Y0HEb8PULf93vH0HCTlTmzUGW64PBHYhe0QV0X/qao56sdNBmKB 0NNtiBovod+BA+CciMjUinnWBmPq5pSiJG2OdcUShJI6blU2ExnMiCKU9e+mBp7cBgpHBmFVa7v pyjHCzFCZ8BctQ+O7+G3ag X-Received: by 2002:a05:6830:4182:b0:7d7:d524:bc88 with SMTP id 46e09a7af769-7dee132b4b4mr2385036a34.10.1777741892346; Sat, 02 May 2026 10:11:32 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:35 -0600 Subject: [PATCH v3 14/19] bsd-user: Add do_ioctl_unsupported function MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-14-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=991; i=imp@bsdimp.com; h=from:subject:message-id; bh=DJgAUmrf4raw2oc+XFegw2HgSbHU5Wy5dZ5DGqoYjZo=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/QfOm9o/hjOw+u7Wu31539Ox1YkY7QtyLc0 0NywOUfDaSJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0AAKCRBsHNEofbAR AF9LEADahW8NdIIlH40TtfW2v/RFGAS7fKIh9VhzYSdU5P17YINuhVVeYDQZvWpGH6YmMo4E2HM sotWXsYHqS5a0nTr4ucBou1zN3u/2RWyHa1xQ4LWwc+yUUL7vl/U27TG7b6i15dyS2ulXk0qBeQ nSB47CjqRLtUDMJ5DBtxAQW5vrMgGLCK9CWmnNoImR6ZCtnTVxzyriUj+XEXVp0UIinmbY+fPcS YzrdYQfL664E1e1+drH7kR/K3npM8/kpymsq58sAfv+YwVa05pa8lo09gqJt8nvo/4FaFNjgXcE hZDvQIxH0PlSv1IAbBe3ML+eplDoFkgzOH5poSK6smY6/uVOKSvd8UaHdHdAc6UWGegFg2Z0ut/ EEswYg7RETov1EAnmAzboY9VW6LdbRfp/YswtNesGwmesp0hJYxTVeTFGndvC1bANpRxSDu1oYn Jqx21+HrHZ/CEX0T28XDvLlWxi32mqPo1fXW/kRpMIGADDmQvsupfiEgATaAR3pXqpPuzJ18GSN DYOgWZlhZJMrDAchX1znzeXBweecOd3KFMidN5asEzmKWp3ghSF9NJjF1ZzmrXNiX5EoNj1vof0 6/zrnCvAyjf1LjE41Ai+ZqgIA7v8nJLYWIs6fcXxmMj226AGK3ibwS1guoa1WS/0srNmdr4xF6X 6oOD4Y5iiJ+mHYQ== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32e; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32e.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777742007992154100 Add handler function for unsupported ioctl commands that returns TARGET_ENXIO. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/bsd-ioctl.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/bsd-user/bsd-ioctl.c b/bsd-user/bsd-ioctl.c index 2d84adce71..69d1ea1718 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -241,3 +241,11 @@ static void log_unsupported_ioctl(unsigned long cmd) gemu_log(" '%c' %3d %lu\n", (char)IOCGROUP(cmd), (int)(cmd & 0xff), IOCPARM_LEN(cmd)); } + +static abi_long do_ioctl_unsupported(__unused const IOCTLEntry *ie, + __unused uint8_t *buf_temp, + __unused int fd, __unused abi_long cm= d, + __unused abi_long arg) +{ + return -TARGET_ENXIO; +} --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741932; cv=none; d=zohomail.com; s=zohoarc; b=VQN0yVNKRm6542elH2JJ1kcjqJMI/CfA49ZYrFCyjIxhywIHjMiw1uO9Js/AgHdQI3jMOs+ckWj0XYg3XHodO1z2kY3bWnePzXFfMxINgLvn5ZLZMsTBCdw/mpaLrqAsMeXCdwTLgA0Q7Yr09DcUSG6YgFZ/Nhpw9R8+po8zL3U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741932; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/V+9tfaRgt5CpOg/C2Wds64ohNNT4UAweJWSemJjSNI=; b=eRoBgBOimBYmf2Zk2gywUni/ahZwTM7AKSvoJ9oCwloIS8xleRWtMrg4R0cCDRJru8lDHkdCMlNjbet6qdImdNqMx1CsBsUfviQqLdRJb8oK32N4Y1ZlDerCD75MhqQVoUfKNq7FwcA3gS2qRK0SPD9EI9cVv9bm7Dm/Eo76Kjw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741932201327.1731166757704; Sat, 2 May 2026 10:12:12 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsT-0007ti-L1; Sat, 02 May 2026 13:11:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsN-0007sO-Ri for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:36 -0400 Received: from mail-ot1-x32e.google.com ([2607:f8b0: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 1wJDsM-0007D4-GP for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:35 -0400 Received: by mail-ot1-x32e.google.com with SMTP id 46e09a7af769-7dea20cf21aso2779661a34.1 for ; Sat, 02 May 2026 10:11:34 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741893; x=1778346693; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=/V+9tfaRgt5CpOg/C2Wds64ohNNT4UAweJWSemJjSNI=; b=XAMIvlpPA/NbP+mpPgkZQ0n0eqClSOieMYPTLWV0AJ3qcx4MiPsjgW6nPD/Hu1rLM6 Q+fw33biLKJAtR187MRGuQ46P0vOFL1U1miAYkq3lQI5VxXzhK3jBO0OIOb9v9vHPNqt sU7mdsOjjGcNGZ7AUzF9F2Fevl28iOWN+8G3X8M7nlBQlqcGvbu6SplNLPLS5mdTw/8N HTMf/0o2E/lD0xEHOlg3+XySF23T2UAP23jo0+uYHTi2fQxQRLlOxxrp8BFprG6pn15U DfJMd5y9ELj4ecqk6+4eCjzLEvlZBFfG/pPCNlrmIXIbx7eQ++u84maTHThgjRE7Q7MX 8NHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741893; x=1778346693; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=/V+9tfaRgt5CpOg/C2Wds64ohNNT4UAweJWSemJjSNI=; b=RK8oBiZiOTI083CWu8fxfAabUetEQlYEJPCZICJytk5sLvlrL1Dbxam0T+ka54xz4Q 2lIuOkE5Px59OukkJIObwKKMK2hmIg9inLwE2seqhnPMiSx/fFoaRl/khZIQWLODIQDg oONb+ySUNK0o5Enm5otfMgkdQ0CTtGp7yUgvNlvEE5Jnj7mg3uVKSpTMlvznBTMp+s43 +dan7kGGdsqtLNEH9HZ81raC78EnZfpC060duN96Z52+5i47aKvlFNjg8+UQQZJREnQ1 YLzvfp+O4pTDZ728XWn/IcfYsk0L1+75sJVN2VX1BUr5c2TTcJcd57l2QJlwj/SUuUBJ CFAA== X-Gm-Message-State: AOJu0Yw/kLZJ7dq2dZ/lZO3gTws8XnQARxgz1HTfhHBG6cQYcW8Xe3ns EM7jmbYNFZpe00zmqx1TbMPCIuBaeEEQU7txVZTLlQsarUrxyT/KPRHL9xZRMKgsAT5oYXUDbFw AE0GqF0k= X-Gm-Gg: AeBDietHiamw1YgEnx0TzlWTA7+aQ0pMWHZKpgSKSc9KYTWRvOVX0/p8wGTSw2dzbEy LD7G+ll0vJeUMfMHKj93uumBFQVvmGHBk7qZplMFY8FQ7OFXzRebinszR9UPrdxdqL8pjtS+Eev LbUudYoSGvewXB+FZcZ/D4KQbEG0N4glt5VktXTZqyb5DpyphuUs5x/klSeOtiQbY4/w7r8hY1K wCyNduzdEuTfm9XNwPonY4FdTsTE9ANQtZVUieiJrhy7dmepMvQupo9uLUKRSsH+Qi7ah2tvXB8 +bdS8rnmDVjKbRmpON/3MKmuWGENdRveQapqgigfuNYxGjXchvj3H3Q6YvmFemQDExTjV3yn/ZJ 6qbm3oiaChuL8f2ND98QTEGH8F/qbnBzGgjBFBbC4gEnQ4I3vEj5BJOZL7yrcYz3882krSvkJ1z QwUXhObmYKqz8zCQUWUVUe X-Received: by 2002:a05:6830:3c08:b0:7dc:df37:844b with SMTP id 46e09a7af769-7dee11e9996mr2167198a34.4.1777741893217; Sat, 02 May 2026 10:11:33 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:36 -0600 Subject: [PATCH v3 15/19] bsd-user: Add target_to_host_sockaddr_in6 function MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-15-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1210; i=imp@bsdimp.com; h=from:subject:message-id; bh=NjTaCPSd2PQWPoUModq1Jl6vHCVrkKMMVYp2dPAAd5k=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/QYKCtyJs8RleRJJsRBs7f/3YfP7KSmqZ64 fjdwF+YrAaJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0AAKCRBsHNEofbAR AEjQEAChKfqA+qO96ptEox+ct74MET5UKlP33N4fzppiN5E4vFVi/QCnomhLSx8udxMGyHjV0ke KoJiV7EyavSZqwO6PCpkj3MbYdyfOL2QGl7zQ/VPpZ+mD7iabjRG5wOvYNdVQyfay07Lb0vMNaT oxxCl0C0FHUASPcPINbBWjSWRdkmzk+KPLl/xf/KMukl+0omWYTzsIUnPLeTc5j6qfgH7mn1h/E 4y6M1QGkK0QTpL+qIKgmxqyQ6W/pPYb31qXSSPFDtPLjJ63myaS/6f/qfxgVM4uSLXF3EPzGJpB FL0eNSpbJyp1JdSIR1/aAA2o+dRiAYMewNgHOkW6d68NvAXANjg/Zn+bL0akEQa2C9UN17qP2Mt xH8bQeM2g6huoP4/M9dP//v8B1WdS238LTTUoLzh4DnImBwnKh08ytSGiFVh7SAmaA3jWdNFomm gnQKXSeI6bq55DDaAJmIBE0HnwcMPbSEpYz/oQmsB9AnjgqFF/QR0zs0lpM6VKKbzNPMQ+N4HBg anj7+Bp20uAZt6xfSo0S+1d4iTyjxWzw2NsA98TnBznt3YjCE3zv1IKYpdujUDTmzRoQjxdlUf2 VsAxUThNqnxANChIdFEjgH6uEKnOmQFBPpXpm1r1bU22dHhFK4+EBRWuFWXybg6SVMeKbo09vSz GGYVvSPEDnpn4HA== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32e; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32e.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741933288154100 Add helper function to convert target IPv6 socket address structure to host format, handling all sockaddr_in6 fields including address, port, flow info, and scope ID. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/bsd-ioctl.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bsd-user/bsd-ioctl.c b/bsd-user/bsd-ioctl.c index 69d1ea1718..d2eb9105fc 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -249,3 +249,14 @@ static abi_long do_ioctl_unsupported(__unused const IO= CTLEntry *ie, { return -TARGET_ENXIO; } + +static void target_to_host_sockaddr_in6(struct sockaddr_in6 *hsa_in6, + struct target_sockaddr_in6 *tsa_in6) +{ + __get_user(hsa_in6->sin6_len, &tsa_in6->sin6_len); + __get_user(hsa_in6->sin6_family, &tsa_in6->sin6_family); + __get_user(hsa_in6->sin6_port, &tsa_in6->sin6_port); + __get_user(hsa_in6->sin6_flowinfo, &tsa_in6->sin6_flowinfo); + memcpy(&hsa_in6->sin6_addr, &tsa_in6->sin6_addr, 16); + __get_user(hsa_in6->sin6_scope_id, &tsa_in6->sin6_scope_id); +} --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777742013; cv=none; d=zohomail.com; s=zohoarc; b=m+nTAYHu4EEsMSm7Wo590K+rg30LkYjEI2XShf5fj+e4YucKW48UGc8PUrjRJbaQ/VoZ3rO1ajX3MBC+78nUzE8ydqVu1M05ccgRvEEx5DGAdMM7JBhzkzef2ANMJExPTPCYthRSLDMt1OUu8uKeJnrHelA94mLUHiKUjAwuMzQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777742013; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=u/5WwmT1Nl2SLuj37J8q9Pa4m4CRjwDyjCSwrLxZuNc=; b=G0xaoRM7Irevrn6LonuXLelogxo7GSNH/MdfNokhvEMGuX9aKkPyX7kbSnVoIRRJJF4m5M2cVJUXt9sGsNbAR9VJMp3gvOw43LlUii7ynG+vcMH6G2/FXdvAGROdri2Hw7rLt9frLFI1QetPsSvmrE1JYTRXwc/XbJvWws3/VLA= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 17777420135031003.67448638609; Sat, 2 May 2026 10:13:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsW-0007ui-Dv; Sat, 02 May 2026 13:11:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsP-0007tM-Fj for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:37 -0400 Received: from mail-oi1-x230.google.com ([2607:f8b0:4864:20::230]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wJDsO-0007DJ-28 for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:37 -0400 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-47c7b282e21so443198b6e.1 for ; Sat, 02 May 2026 10:11:35 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741894; x=1778346694; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=u/5WwmT1Nl2SLuj37J8q9Pa4m4CRjwDyjCSwrLxZuNc=; b=krrlwkIk+a3p6yWR7gimgVvMsFVIxsGA+gcOGGhKQihXerQoGw7y1YBKGpCgxXmrqQ i+0bxfkSRhozikOUn0xGaLrTPT8Jy5zZLO89Xlx8bRMDpByBQ2SEq0NRYULxtfYUCuvN idhqNSM8OCd76l8BcodjPJ7dsQCF5lh51FG+xtmz8+Z3cCFhO873+ApSZvQCvdvAF0eG av1wD77cbAJriXjpEd+ofCKph+NaL1J/i9xldDiL8k3CX8Cn4nY6J5CTcuBVBFZ0tZYc e5gLN+oPW4XPi9q1HKx76RylW4x+hKYRPTUupSS+dTkc75gj4Qpsd026WuMg1PL9eoEx Lyfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741894; x=1778346694; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=u/5WwmT1Nl2SLuj37J8q9Pa4m4CRjwDyjCSwrLxZuNc=; b=M0QF7e+Tt8gKbw/468SLQUacEsgrIcRIeDECnv5gOPrrTh8+eRKDMxWd3C+hyAqwm/ 39ixpRM5Dg1uONrRf1ZB1wYXY5U6KjVoUzLxLALGcaYUI7YK6X3s+lp8CEQG87JzbaQd ELGFU3k4faVNI9LicvlZlnl4b/TSw8G/l0k9Hhyi5oUcwstw8b/7PCt/S3dCuTT4of+y EtpTBMtyUp1mkEyEQ6Fyk8rpZ0aM78V/nHMyYt8j5gW0aAONjOHHiirQLpucDKi7tfWL LoO94n691taDxApW5dBu5FgRaycGqTF8aumHWhVwwFv9GznjybES1+I64G40Woaa94x2 7AjA== X-Gm-Message-State: AOJu0Ywq+X4ZLlCk2gTziEyFtz90du+Gs+Xy3WSdZZuajO+PR743JQGL avJmJoci3wAlTmtbZcCijOhJ0uLLZSy4WV7pDZ184/JfhWMsaG939AOVMbB+YgWRlQdy5iN4+2o 05uYfM6c= X-Gm-Gg: AeBDievIHNGI0DqwTM5rUxcbfB1fWWonmsUAgGnb1PFgXEi7SxLmLN4HLiw0dYHKqZy dmMUhzHmCk2QUYNV9EV92XEie8oqZAww1zp4OGvWFgmiM2FpYOXmDpn227B9owI3XnNl8070Owo fF33UlIzcDWDpAxB8ERHMKhvE4h/S8WXKxW9G/o2XonSDZjlZaad/KsruJrSKva71zjEOvrgbNR 4HftaWAGu4hNPNWR0ZKBIPOo9X7X3jfvU1grASEFkX81GL0bQdPR+VK7n2HPzjEGi8DG/i4Nxw8 eO27lirOr75k6favb3957Av0dv0gvvhEpm5a/yh7fS5y9HTvyW79K5wJgrs2pzzDimnwYtnFrCM jgRzauR3oxQYWoeJbaUMPHvC2o6xY0lVGMBy5md+BNSIcfdBSM/bvM3RCEOglj+DP9trktktAWM njMoCoUnVmucQ1LtoeZmKc X-Received: by 2002:a05:6808:4fcf:b0:47c:34fd:d391 with SMTP id 5614622812f47-47c8931483dmr1855816b6e.46.1777741894102; Sat, 02 May 2026 10:11:34 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:37 -0600 Subject: [PATCH v3 16/19] bsd-user: Add do_ioctl_in6_ifreq_sockaddr_int function MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-16-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1996; i=imp@bsdimp.com; h=from:subject:message-id; bh=0Px4FKlaWpUQPC6Iuv07IPtIHSjzI5LaoVqTdqZiEKE=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/RX/9KVzSpTREEhhpujFMOtrWPqz6/Nn8nD I1AfDydcjWJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0QAKCRBsHNEofbAR AMrMEADOzaVIfrnfQw8j2cw0Em3bdhq9X+BkCFv5K02uJYASaZIDvjkCsxPwNvruFgBNOmKzEMc DqDvkdJ4a5VU7p/BjwImjcvs/FFPOjklFdpW2H3v9pzRxxQGyDfv7Foive7EuICEjFx+Q8SARnj Fv/JicgSLJf3wlBbgOdfKMRg6Gsf6+3a6qy2OCBqx0jMuFo3ujXKNZLtyduV5cHlcFhCP72g2nc Bat4ZVj4MiKG+dLkxscw55hgPgeGJl0g7bLvlQ5Hk/1QLGiM5jhNoLS4w4W7R4dJvB3QMyRJPGT 8JPGKgPevIQiZg/LSOMvi+DR+YgD8FpuWwLbkSQKlrkT7DK+LAUajhjl3KNsDKg5K/7FOrsyFMx dk1TbWAHkiFy5T8+JrtcFbCAFULbvxfBK3jwJXhvgl0XP5uGXzmjPRhSzmIIdpK8nKTXV7KAZO8 l1y2HGwl6krtZIUB2IDTxhUVpu2sGgBUSlFZXymBYao3ORpmvc7KK2r12Zsdh85vFp5nQdIQ/1N zq5b0lqc1LbGi9z1zjeJenNaLR9BqIH+AfaWE7cPvw2aOSUb/v32psPOdmggbdRWD8oFVSPakL3 pqaeupRYm2Ymgsi01ynkMUjUboNpsgA5P6LUJbfCTRzwwn8F5UG99gfzhAgukdds0jVvlX4Kxox VJHslF6qklTJKXg== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::230; envelope-from=imp@bsdimp.com; helo=mail-oi1-x230.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777742016183154100 Add special handler for IPv6 interface request ioctls that take a sockaddr_in6 structure as input and return an integer flag value, such as SIOCGIFAFLAG_IN6 and SIOCGIFALIFETIME_IN6. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/bsd-ioctl.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/bsd-user/bsd-ioctl.c b/bsd-user/bsd-ioctl.c index d2eb9105fc..8d25d84dbe 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -260,3 +260,35 @@ static void target_to_host_sockaddr_in6(struct sockadd= r_in6 *hsa_in6, memcpy(&hsa_in6->sin6_addr, &tsa_in6->sin6_addr, 16); __get_user(hsa_in6->sin6_scope_id, &tsa_in6->sin6_scope_id); } + +/* + * For ioctl()'s such as SIOCGIFAFLAG_IN6 and SIOCGIFALIFETIME_IN6 that + * passes a struct sockaddr_in6 in and gets an int out using + * struct in6_ifreq. + */ +static abi_long do_ioctl_in6_ifreq_sockaddr_int(const IOCTLEntry *ie, + uint8_t *buf_temp, int fd, abi_long cmd, abi_long arg) +{ + abi_long ret; + struct target_in6_ifreq *tin6ifreq; + struct target_sockaddr_in6 *tsa_in6; + struct in6_ifreq hin6ifreq; + struct sockaddr_in6 *hsa_in6 =3D &hin6ifreq.ifr_ifru.ifru_addr; + + tin6ifreq =3D lock_user(VERIFY_WRITE, arg, sizeof(*tin6ifreq), 1); + if (tin6ifreq =3D=3D NULL) { + return -TARGET_EFAULT; + } + memcpy(hin6ifreq.ifr_name, tin6ifreq->ifr_name, IFNAMSIZ); + tsa_in6 =3D &tin6ifreq->ifr_ifru.ifru_addr; + target_to_host_sockaddr_in6(hsa_in6, tsa_in6); + + ret =3D get_errno(safe_ioctl(fd, ie->host_cmd, &hin6ifreq)); + if (!is_error(ret)) { + put_user_s32(hin6ifreq.ifr_ifru.ifru_flags6, + arg + offsetof(struct target_in6_ifreq, ifr_ifru.ifru_flag= s6)); + } + unlock_user(tin6ifreq, arg, sizeof(*tin6ifreq)); + + return ret; +} --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741964; cv=none; d=zohomail.com; s=zohoarc; b=YT/dBa+N8TKoEDOKJYwUip5dWQPwRmlts2t4C3oHqG8lzV3L7CiqFApN3ucbRRiheAuGymMHZObkAw2VsCFvH0cMBYfHjvTqGfalP+X/KCZosk58TY+Bh0lM28XDcYNsWHsVlGBoHXldFXNds/AzPoYm43Nlt7aHBkJ9vzskRzU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741964; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=2QBmwjvaav499uBiNQkZ4uLoZRRkEdivASGuKNAftSo=; b=Rnw1wOuXjSOwadVIFT2S2a+IxqnFQf01mjdG5yIuf2kxRWKUg3jNvqGIZXf0IhrvmyBUX40/9eNi+OCF0occHoeA67NS3VzooPUqdJgCN87ZKH0+mOUVS5Nig1hTpOFd3+OUAzcU/P/IcrOrUut6FJf2dxDwiHLIyCM2MA6qU+I= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741964216390.7173783482043; Sat, 2 May 2026 10:12:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsU-0007uB-Th; Sat, 02 May 2026 13:11:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsQ-0007tN-LJ for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:38 -0400 Received: from mail-ot1-x330.google.com ([2607:f8b0: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 1wJDsO-0007E6-Nv for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:38 -0400 Received: by mail-ot1-x330.google.com with SMTP id 46e09a7af769-7d4be94eeacso3210386a34.2 for ; Sat, 02 May 2026 10:11:36 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741895; x=1778346695; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=2QBmwjvaav499uBiNQkZ4uLoZRRkEdivASGuKNAftSo=; b=p9e66/wzF1MZGMTVqMlEQ/l83fp4lnaiTsOCZuk4Vpwz3XBdDo0TA/fG2+PO4XOtHq TFS1nDMqla2ysJdmaRtBaNdMpG/6SVECJAxd3QJ5vHvyKmtW4imbvMoquh0C7eohTW1d tExpkpGAIExRN6DhXtO4Q0wCw0X+JmEKzzdXKq4Un4fjToWk6AhTXNmw5mG951VWTWgY ArYGvrexJJbLTmFWdMUOjKO1k4OYg8A1RzR8/rO8LRLYEdLGBElbTmVc70PQkOUXAY9p FlwbyMpLUtqid3BY0errwPPx/wEBcX6C0SsGruIjtRWrlQUBpgGIED6zAG0FmZwMDFsR BOCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741895; x=1778346695; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=2QBmwjvaav499uBiNQkZ4uLoZRRkEdivASGuKNAftSo=; b=hSHu5HzW3XknlERQlrnqX/CyGAHLAxPW+VepETK7AxMO/AuPcHCOKlYaYYpyvKkk8k mXmPtuKp3nuOFj2NQiRA+jXW4oOAQmwDQ8nZcc/9c5XlbVmsE0AOl9d6SM4FFSX0BtOk Uo+poEP8CIL06gA2s5OhqxhUU1co4IKPv4M6WOGYA5UNjZnL2N1aI0r1sLgg5Kphro/m dGgS7VTwxHnY4uOCh5w8JsDI6snZ27nYfjeKTOAD6MddEhTJPz2bnJ+6W/lx2mNnd41C VTah6hbdyVt9Gc6lgPzhOdF7H5erpKlcDRx8nat48WqHauQPTj8fv1sHRl4ljo+gcica u2wA== X-Gm-Message-State: AOJu0YyZByhmWamGZZEg2MDK4v85lB/j1IUyb+xhBhLbswic6N9ZPcm8 VmanQB5bvBH87xJ6n2O7EKF8LrdCw/h8mCkua2NJcPymOlkoqF/6vRwZrdIO0Xv7kF1qndmX8/y /JYP3uSY= X-Gm-Gg: AeBDietByatSAhlz11zPp33sOS446QUgmATUjpR3rm2wKpKOLvHnOUFysIAZB5LFlDC he/+/pJ32Uk/0tjU7YPOJYfxEKe24jB7F7oX9oZMcYaA9MEd8nxHel9zjYuG+15h4zoQM1YTKkh UQgrWAuc3tWXWvnhppTZ6Gzs4FU33apfmFQpLHqLN6DyiG+aVRhXjCQ0gz4J3IzDRnWpPkmN+X9 KTleDvR5bxPGlXnMOFB38Jm8hRWUY5SjC1cApDKbNgVeg2WtvgRALBPp3j8XL2ScTjuls2jBlra eUkib/LnLA+NsakMUt7vc+bWU2ngIdmyyPwvP/r2S4a2HOQPUZDVSW9x6yFOZMgaFiWH9gt378z nFwiuo49fLNRiq0yf7Jr7BPHj1N5Dm6e5y7z0+7LGm7bXGEDIi/3eEtDV+5XFL3YySxs/qG79ZF TQBIIxqtBAKMVVDHKV6Sw6 X-Received: by 2002:a05:6830:81eb:b0:7d9:7209:4378 with SMTP id 46e09a7af769-7dee13c17c5mr2396554a34.17.1777741895355; Sat, 02 May 2026 10:11:35 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:38 -0600 Subject: [PATCH v3 17/19] bsd-user: Add do_bsd_ioctl main function MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-17-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3931; i=imp@bsdimp.com; h=from:subject:message-id; bh=xguMmeeOWqzWWh1TUfAOdmnx9WUC5A613/gvNUKKM1I=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/RXHs2r0ZF3gUUKBSzAtxA32QJZJ4oizlcu GMWKPkcfceJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0QAKCRBsHNEofbAR AAuvD/0fmT1d/SKwYpHsG7ONoPBz8riszqyJDD/9R+7Vunj9HAxqqwNnlmv+KTuIX6s5eM4eDBn yFixD/OH+Qr5HltHUAIRBPVV6PPSpqnyWrf49A3ShnCRoey+Zgica6vS9NxNZ9Fh6SDqWKXREN3 GmO0+Q9h4Q3Qi7ChIiPl9Nn4mA9FcpzeKxuAUqyaBgkRl/NuUKptDSxhcLPd11nxlqofZl9v8D8 18KTs4SVrOcX0bHroDLxHaj5UaVfBB722r+drBzFHzI4CUmiW6sQXwTVhI4Mtv3QevShnfzfzJ/ AqmnR4XVk2EYVB6tUuxgzdMR9zDEEmn+UXmtPWsYiVCM4MXonbhsslonv28jqKBgPzuZAjGbyGt IL/PRZ67mSMicgMzbS+GcMQyxAxkxB8+HKHl8ldGL0aWNva/pIVE+Pc29uaLzqwegIruGYSde9D HgQrLKINfNPh8Lxwxelkh8carziGSkghLD3wb/S/eB5HB4OMOWQL0p37ADsrTQMBGoIbnNkXZqe XT3k0VT/vo1UxMiYqz5iduOgh06xJmA3ajXUo69k3NUpRfCWKwoXQPhOF7NgFp4V3DQzg9fARwJ pzpMPCzeZCH+wAc4eAMi+5X95O6/dhk2YgJmkinu175jDwyGr1wnA7tfR5+4RnNEZnuNuIP32Zq QO8hkvAhIH3HS3Q== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::330; envelope-from=imp@bsdimp.com; helo=mail-ot1-x330.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741966713158500 Add main ioctl emulation dispatcher that handles table-driven ioctl translation with thunk-based structure conversion. Supports TYPE_NULL, TYPE_INT, and TYPE_PTR argument types with read, write, and read-write access modes. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/bsd-ioctl.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 100 insertions(+) diff --git a/bsd-user/bsd-ioctl.c b/bsd-user/bsd-ioctl.c index 8d25d84dbe..3940a69260 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -292,3 +292,103 @@ static abi_long do_ioctl_in6_ifreq_sockaddr_int(const= IOCTLEntry *ie, =20 return ret; } + +abi_long do_bsd_ioctl(int fd, abi_long cmd, abi_long arg) +{ + const IOCTLEntry *ie; + const argtype *arg_type; + abi_long ret; + uint8_t buf_temp[MAX_STRUCT_SIZE]; + int target_size; + void *argptr; + + ie =3D ioctl_entries; + for (;;) { + if (ie->target_cmd =3D=3D 0) { + gemu_log("QEMU unsupported ioctl: "); + log_unsupported_ioctl(cmd); + return -TARGET_ENOSYS; + } + if (ie->target_cmd =3D=3D cmd) { + break; + } + ie++; + } + arg_type =3D ie->arg_type; +#if defined(DEBUG) + gemu_log("ioctl: cmd=3D0x%04lx (%s)\n", (long)cmd, ie->name); +#endif + if (ie->do_ioctl) { + return ie->do_ioctl(ie, buf_temp, fd, cmd, arg); + } + + switch (arg_type[0]) { + case TYPE_NULL: + /* no argument */ + ret =3D get_errno(safe_ioctl(fd, ie->host_cmd)); + break; + + case TYPE_PTRVOID: + case TYPE_INT: + /* int argument */ + ret =3D get_errno(safe_ioctl(fd, ie->host_cmd, arg)); + break; + + case TYPE_PTR: + arg_type++; + target_size =3D thunk_type_size(arg_type, 0); + switch (ie->access) { + case IOC_R: + ret =3D get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp)); + if (!is_error(ret)) { + argptr =3D lock_user(VERIFY_WRITE, arg, + target_size, 0); + if (!argptr) { + return -TARGET_EFAULT; + } + thunk_convert(argptr, buf_temp, arg_type, + THUNK_TARGET); + unlock_user(argptr, arg, target_size); + } + break; + + case IOC_W: + argptr =3D lock_user(VERIFY_READ, arg, target_size, 1); + if (!argptr) { + return -TARGET_EFAULT; + } + thunk_convert(buf_temp, argptr, arg_type, THUNK_HOST); + unlock_user(argptr, arg, 0); + ret =3D get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp)); + break; + + case IOC_RW: + /* fallthrough */ + default: + argptr =3D lock_user(VERIFY_READ, arg, target_size, 1); + if (!argptr) { + return -TARGET_EFAULT; + } + thunk_convert(buf_temp, argptr, arg_type, THUNK_HOST); + unlock_user(argptr, arg, 0); + ret =3D get_errno(safe_ioctl(fd, ie->host_cmd, buf_temp)); + if (!is_error(ret)) { + argptr =3D lock_user(VERIFY_WRITE, arg, target_size, 0); + if (!argptr) { + return -TARGET_EFAULT; + } + thunk_convert(argptr, buf_temp, arg_type, THUNK_TARGET); + unlock_user(argptr, arg, target_size); + } + break; + } + break; + + default: + gemu_log("QEMU unknown ioctl: type=3D%d ", arg_type[0]); + log_unsupported_ioctl(cmd); + ret =3D -TARGET_ENOSYS; + break; + } + return ret; +} --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741971; cv=none; d=zohomail.com; s=zohoarc; b=JsdU5fnJyp9MHaAzUrvDHxHptwqD9d3I2K3aib/xIP57+bdS8q5enzc5YifXiYtFl6svJfjqkBUPuUFKCdvdzGNStUpGfYXsYDgEW965wuOjst9F+y10xNlijkHllAfWAw3fVVLmyvA1o3sL9kowXiN472jN9n541VeCi8fH13U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741971; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=uXSkyeAuBF8dF7CtfiQUOv3GW9Lp97cqaaHYWkMyp/Q=; b=J90XgVcoX+O9DxwUZ2LYZLh/FurRu1QXDwO5y8yIj0fKbRDTTEcNK5Iz7Z22SWpC9ncRrmH95KPrXu5Ub367GUGZN0BWVzlEgPgvD+8Tk3yeHtfM5WfcZw5yjiw2yWKhASj4M1Z0zh0CrZw9SdvsG4YzmIK7CJI8ekag1H5yarU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741971148975.167695831299; Sat, 2 May 2026 10:12:51 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsW-0007uw-Gj; Sat, 02 May 2026 13:11:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsR-0007th-Cq for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:40 -0400 Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wJDsP-0007Fn-V3 for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:39 -0400 Received: by mail-ot1-x32b.google.com with SMTP id 46e09a7af769-7de4ed0593fso1693546a34.1 for ; Sat, 02 May 2026 10:11:37 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741896; x=1778346696; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=uXSkyeAuBF8dF7CtfiQUOv3GW9Lp97cqaaHYWkMyp/Q=; b=VR6WBv+aXRjK6/VjzBxU/BI7giI8Ez4ccNqyVr0+klozkz8gTeKmC0miZ1ty2spQQY 9HIRK02phnXR/QGUKDuZzY6odHARBRyZoKqL1zYV8/bhLnQGvRohPaaX45e/LcrrTjUM qlBdZUVoeN7xokl49F5CXE6O26OOJ6RWFm2zWmPe6BEaljA6ezt5UAdngvrBctCGclGt 4qOYXPuJI3M2Y1YtIJYTO83aEuQ3lgmi53Drd9j7VG/fObB3x+IuVOJsXOn9r45zXbgG WTWEM/DZpJke0f5Qe+rfTYL2hHKGEZLVbQ5rBs0M5WEWs/gpVKPzjnotHVoB4jOgpx9q y3Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741896; x=1778346696; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=uXSkyeAuBF8dF7CtfiQUOv3GW9Lp97cqaaHYWkMyp/Q=; b=XjmVnPrlXYQPsAnrsgEmSwV9amJJ4/8taNbJfwYMuKwpvhYcBsznk9O4cQm4s0h+rV FGwQ5Zq+q+GE62+JwaGmoH9dSY8AspU67oyIISqTBNoL/At06xoq9VnqIBjcKgWyIpP+ Kow3TNCkL1y8gGRVd/UZShS2cvZw4IehvYIb7dQnLq+cdbdRAG73eNvNREqhyizgHjBj kLGWPBsH3ptFGJ7YEaViJua/fBtqinIurpJ3bItNdvrwIa2b3PKLRT/lZGvajt41rY/b J01Kou+kNYMb9Q2RS8/WUCm/a7n8XvxkHLl1mHzNNuQeo2tSTZVaoYLYtzgPLiv1kqqR y9FA== X-Gm-Message-State: AOJu0YyT/ILDVYbulKwWFttb0oz7HzyAfoevddm/87fOH5Cq6p7XgVmr 0yXJw0yCdOOuLpo7DXbj/KYMSepYsBnakj38Oh5wHCvQq6gGsv4f2DVO/ujmKrvbm/uNnzyclaH Sw3iQjy0= X-Gm-Gg: AeBDieull3bYbnLVzezIlmW9lhO+CKHr2R9EXu7fWt56nnlp0En0d8V/bw1V1RPfJFA F6h7BBxeOXekNfB3WFdqdmTgIeYJ4/eyI7KQfki56zi99Ci7VBwtfcP5mCQbaDW9/XoO9pJAWpi mtrIW0hQH5qC1e56VWo5qh9Rje/9mPjkkiMzIzacHt4AWYrYfIf0mN+lPlGPs4QHsB7CZ1rACSe 6pU/MMomk5m5kOzN2BLl2OCrb9NHera+NUwaGu2rKB8zDTp/Xd1j0q8JxOo13/l6CHoXe5fFQLh qRS/lVDkZue2d9PzWW7e4XoOccyRmo2E4JK7xoxtXWi6VM6QyU2at2+P3UrzJS3mxUvTGA3Ftbz mt5u8sKQU04snWqCo2e4H3qk8PpwOwC6ebqpzJ+YVf+s/BbXpJB1df5X5Hcro6JvalkAzxvrhnc PNywAw28UsJDzx5U9q/mnO X-Received: by 2002:a05:6830:2a14:b0:7d7:ea9f:c0f9 with SMTP id 46e09a7af769-7dee0f85980mr2197075a34.0.1777741896662; Sat, 02 May 2026 10:11:36 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:39 -0600 Subject: [PATCH v3 18/19] bsd-user: Add init_bsd_ioctl function MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-18-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2027; i=imp@bsdimp.com; h=from:subject:message-id; bh=+jZfdOHvs6mPyd8v5lZEHn1dUAl1Uq1WFnmnnryznIM=; b=kA0DAAoBbBzRKH2wEQAByyZiAGn2L9GgeTSOP1tZa95+aktPTv924sxHDib39gqOv1cAJD9zB YkCMwQAAQoAHRYhBCA1+JSwCqPPfM3ht2wc0Sh9sBEABQJp9i/RAAoJEGwc0Sh9sBEAKPcQAIl3 FGWkEZKiMXsgnB5gzBcfR4qKdM7RRcUouq1f3k/nn9muD33CB7FIVu9gljaaYVkhNHysUPQO8bm Hn1ApU5Sbc2cJnWwr50M0Wsb81FSQuN48Aq451dAduUuTd3jJqGGqhLGkuKQjMrIDhPWBTfxQ41 AThzONg+VC4kTZripIKf3uT1TdKPHItwie+Hcpzt+JVqPouN8uXr4l5i1bX6nevIe0tmdFEO8Oi JH44F8J08bzYPPPBZfmBmFwbxHAqQDGdn5b1jVl19xlgFDKw7XUK2D+y65VgskfcznrBqXt/XJr SjiWgBl6IqTiyxdNkR3jDKtDmnHuiLMCsEzcRnHL+XhKp0DqPl26YTwaKz1dSKnWeMTndyLk+57 D2EPKJ2QFiKSZncWsggHjTpFx1MrSe/TOpcHpQejM/Q2Nq26IHgVD4E6kfk4HxiOWcDzJuxSV+K +8md2JRC4LSXlHfpsYbYGW14rhJqgZ6B/nAleT0E+5qvTi0l8XFaf/SD87Tfcr77rJKyPYPvx3n 7/eLVr8GZhswkP9Y5uxfdn0O8dvGW6AEl3IISyu9+q/80ToPCTV8MNUdET+6JTu/+jC4Y2KS751 RzW1JOjfN+GdaGwoTdJ0sRTaVgXSfL9E6n/HHZKXOHvorWCBUTQUywWdZXV4EzDTwzv5OTf6Dc9 eMmzW X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32b; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32b.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741973542154101 Add initialization function that registers thunk structures and patches ioctl table entries with correct size parameters for target architecture. Signed-off-by: Stacey D. Son Reviewed-by: Pierrick Bouvier Signed-off-by: Warner Losh --- bsd-user/bsd-ioctl.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/bsd-user/bsd-ioctl.c b/bsd-user/bsd-ioctl.c index 3940a69260..15e80bb21e 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -392,3 +392,45 @@ abi_long do_bsd_ioctl(int fd, abi_long cmd, abi_long a= rg) } return ret; } + +void init_bsd_ioctl(void) +{ + IOCTLEntry *ie; + const argtype *arg_type; + int size; + + thunk_init(STRUCT_MAX); + +#define STRUCT(name, ...) \ + thunk_register_struct(STRUCT_ ## name, #name, struct_ ## name ## _def); +#define STRUCT_SPECIAL(name) \ + thunk_register_struct_direct(STRUCT_ ## name, #name, &struct_ ## name ## = _def); +#include "os-ioctl-types.h" +#undef STRUCT +#undef STRUCT_SPECIAL + + /* + * Patch the ioctl size if necessary using the fact that no + * ioctl has all the bits at '1' in the size field + * (IOCPARM_MAX - 1). + */ + ie =3D ioctl_entries; + while (ie->target_cmd !=3D 0) { + if (((ie->target_cmd >> TARGET_IOCPARM_SHIFT) & + TARGET_IOCPARM_MASK) =3D=3D TARGET_IOCPARM_MASK) { + arg_type =3D ie->arg_type; + if (arg_type[0] !=3D TYPE_PTR) { + fprintf(stderr, "cannot patch size for ioctl 0x%x\n", + ie->target_cmd); + exit(1); + } + arg_type++; + size =3D thunk_type_size(arg_type, 0); + ie->target_cmd =3D (ie->target_cmd & + ~(TARGET_IOCPARM_MASK << TARGET_IOCPARM_SHIFT)) | + (size << TARGET_IOCPARM_SHIFT); + } + ie++; + } + +} --=20 2.52.0 From nobody Sat May 30 18:34:20 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1777741965; cv=none; d=zohomail.com; s=zohoarc; b=ELENUfRZsegKv6eTNWzOuHhStt+RiPqZxkD6390B6r3rRXNMYwaweLhzZYogm2LzXSxFCHcCi4yYNIXa5YcCeMR9z4kT2t7RhXM07vhmhlymXNhFbr4kqZ2ylgm5xb2xeDeQ3Y468nBrL1ZrmNAfop06pB7g0bIyks4xveBF2Qo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777741965; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=yOKFPgBMLiOQCpxJ/HoukPsjgqhmFBu/kKtVTLDxNuI=; b=W0NHmjVxBUOnZThcozVxfd+WWkR2mVry7aUqvd9d7QOZZzDggAp0YcnaZf8xxOlPf99hOkNsNjiKBjixxCTm48qPKefSQ2UYg45KSB6l+DIYAFqV1TEaudixfwMucppJaPQPLyHjabA8r4yrmvRuuF6cTbM1e3G3Ikodh8BeIt0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1777741965205677.5915188342634; Sat, 2 May 2026 10:12:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wJDsY-0007vC-4P; Sat, 02 May 2026 13:11:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wJDsT-0007tk-0g for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:41 -0400 Received: from mail-ot1-x32b.google.com ([2607:f8b0:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wJDsQ-0007G5-Ud for qemu-devel@nongnu.org; Sat, 02 May 2026 13:11:40 -0400 Received: by mail-ot1-x32b.google.com with SMTP id 46e09a7af769-7de46b8e432so2764955a34.1 for ; Sat, 02 May 2026 10:11:38 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7deca824746sm4334355a34.11.2026.05.02.10.11.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 10:11:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777741897; x=1778346697; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=yOKFPgBMLiOQCpxJ/HoukPsjgqhmFBu/kKtVTLDxNuI=; b=Pyq6tAUaaRgT2R7Icq5xepr/dBVvaLra1BFMmldA2NX8VxbfEfqdPJEs+TVmh0B9zG yjhMF7s2uWoTdypfGxaDGHOx5nnTh6G9ZnWlikwDEUouAAaznzmJYIhR9aIwsN8hFtef tJ/F34CpQ4lXZTli3NDHYuZt8Zfo1TA5+3air8iwA0QviemTKRdudfg8SA7F0tB4XdHj co7FdIW8zVJylrvXBKcatmCZHwRaczbcFJKZcBGlNMzR2aYP9H/Tt6bx/7XoJNzLSyz6 Qwz+ZJ3DVVnJ/sdc8JkPNvKKrMgebldD73KX93bad/npEJVvlAoe4Adljh3UT+rQs53n Vybw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777741897; x=1778346697; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=yOKFPgBMLiOQCpxJ/HoukPsjgqhmFBu/kKtVTLDxNuI=; b=nWXwBarNI8dOWQ+aGpmQs0r0rAoIwEeLF60ogVAO+5z8niO4KNMr6TrpsJnQVst8OB gdTOtPwvG2Uft4qzoYJ0BZiHxa9+iMpDozvMXN5D61zoXFBviolN34JEsRz2EfcNje0r LoCB8e8kPHtenYQBJQgneqCSuU+MdnaquP0SANkQPRWlkv+EheSwZuwOKGksqdbrBfMV TIpccEvhTmWOKTF32axhv/kLFagLAlJjsxafRImopyB68Gs7d77TEtBCBkH4X099xBCw 9ORqNqCIiMuQcnzCOiamNp+CC9hd94f4qtIefC8YtaBw0UtLNuIhQeeFEuYx81A1CARN PwBg== X-Gm-Message-State: AOJu0YyjjMtYpH7exZZlzQgkCyBER6pjYtj1tFs+Y203SOTheOmRnER/ RdyFjJ3xDioIcj4teEMbwa9SM8RVTu2VK+W95G8+5h773guSJvJDvz4JAoRiB0sI1VcjYZdFj5T WB0nwATw= X-Gm-Gg: AeBDiesYBgtoauZNx3QwA0rbLjYaX8iYLqAtRv9/I09IGyVvWxv8PIQhob6W59TDpQh OZhJsULuSfpCeBdSNOiNfvBauFY9jm0xowxT6G91zFZBeTSKliu8QEr+38Vt48pZnzh5CBBC5rV Xx/F7D2+n8dFVa/AcfFRcYshEWOS+4Rw0xtHpWKSQvkAhP8G9dJ3qZ2z1xdSr6kfwIaeobNK3r5 2xCsujj/ult88wG89i0xF24ESUxO22rN3BN5MioU9HQs9bvjjUjGvlI1pmuo6CNgHDH8hvsqVnq 69rFzrHEfK9CSjjnxi18kmZMHoWaHHZRnO2h7yMNgTDUYqXd5C+6All53xMyyUN25NFl6REw7ya BeCfdOoaSU/1Ndu7qT+rDQXfENWF9/aYwJY71kMPThLl6C+a20vRCIyjp8mu6PT66OQQgJHByBt BXKm+LoM4xNPH6jjvxXv4i X-Received: by 2002:a05:6830:2b0e:b0:7db:b7ae:ef0b with SMTP id 46e09a7af769-7dee143c081mr2496632a34.24.1777741897590; Sat, 02 May 2026 10:11:37 -0700 (PDT) From: Warner Losh Date: Sat, 02 May 2026 11:09:40 -0600 Subject: [PATCH v3 19/19] bsd-user: Add call to do_bsd_ioctl and add bsd-ioctl.c to the build MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260502-ioctl-v3-19-a05d4cb1bdff@bsdimp.com> References: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> In-Reply-To: <20260502-ioctl-v3-0-a05d4cb1bdff@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1572; i=imp@bsdimp.com; h=from:subject:message-id; bh=pgP0eEEHq6h/GuDoYbSsIZvY30awmIOGPBgt3Kks/ZQ=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp9i/RrO1Aq2gKVDrYvrQkuRyrZM6NABEWu0sPb vXeHFLlHmCJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafYv0QAKCRBsHNEofbAR AA20EADtdS+/hNHMsHm1Ce5JEnitj6AffWFQvLtj9O+G9hIszMpxQWng0WWhrqRPx/OmL+/eDpp 2bbxBJnp5y+xkudovY/ETumrvyE1efNo537lw+tboTjWGsyg9Sow5gLm4aLoiIC3M8FGDrAFSBm ec1cqYRuqf+UWKJ8iMr0sG4aBb98wLW2j+s6m6/AU0wqTkSPfTtA2tt8jWdd9gN3CQu00PC9Ocv suptdKGT12+zViwZ/Ys7KpTMHjoZxBq7nzl/Dg8fYtC+uRkTmFFRVTQXcaN5412ry01Br3RzSM4 o58MGkf/4gquDwu8opC2l2NMld/KyJb0cInryzUGqnOORzBPx7YY6gUynfsLO0JWXPDWFyMEVz1 U/nArHkXrhK8oxb+6dbqAfG4Sy1U5KNObTFJCMY9NZc6HjjqefuiyWhHrpJ28cXIWJ/BuO/gCHZ 1maTI3mYZUoER/QwKqM05eE+6Qa6c/Oy9hlbEkgS9ucMbdQq5a05b4BJ6QPVCkD/Foy27fXEqOD ZW5qdIGKZTXUFQ8HOZ0+X2jrRZppOY1ywCvjlcwdqztD7octMnDuuIWvsirEFcKyCunXTibL7Qn fIQhkmmpetGfddMMoDgaGxshs3sfNWV9cuVjbv7LhcVcWbhmy2eOhktzGihopA17PZm4Y98e9YE xDEuuyNuRB/5hIw== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32b; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32b.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777741967451154100 Finally, connect do_bsd_ioctl to the build. Call bsd_ioctl_init() from syscall_init() Signed-off-by: Stacey D. Son Signed-off-by: Warner Losh --- bsd-user/freebsd/os-syscall.c | 9 +++++++++ bsd-user/meson.build | 1 + 2 files changed, 10 insertions(+) diff --git a/bsd-user/freebsd/os-syscall.c b/bsd-user/freebsd/os-syscall.c index 85e5db19a3..07fca396bb 100644 --- a/bsd-user/freebsd/os-syscall.c +++ b/bsd-user/freebsd/os-syscall.c @@ -34,6 +34,7 @@ =20 /* BSD independent syscall shims */ #include "bsd-file.h" +#include "bsd-ioctl.h" #include "bsd-mem.h" #include "bsd-proc.h" #include "bsd-misc.h" @@ -689,6 +690,13 @@ static abi_long freebsd_syscall(void *cpu_env, int num= , abi_long arg1, ret =3D do_bsd_undelete(arg1); break; =20 + /* + * ioctl(2) + */ + case TARGET_FREEBSD_NR_ioctl: /* ioctl(2) */ + ret =3D do_bsd_ioctl(arg1, arg2, arg3); + break; + /* * stat system calls */ @@ -1001,4 +1009,5 @@ abi_long do_freebsd_syscall(void *cpu_env, int num, a= bi_long arg1, =20 void syscall_init(void) { + init_bsd_ioctl(); } diff --git a/bsd-user/meson.build b/bsd-user/meson.build index 9cc5c6c459..2abcae5122 100644 --- a/bsd-user/meson.build +++ b/bsd-user/meson.build @@ -7,6 +7,7 @@ bsd_user_ss =3D ss.source_set() common_user_inc +=3D include_directories('include') =20 bsd_user_ss.add(files( + 'bsd-ioctl.c', 'bsd-mem.c', 'bsd-misc.c', 'bsd-proc.c', --=20 2.52.0