From nobody Sat May 30 20:56:21 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=1776009880; cv=none; d=zohomail.com; s=zohoarc; b=Gm1EkNuNmfYGxdZxcHxUGI+7ef6O/xUxgXA7iTVyZnQgn0MkSfGl7hHnYSoR2c1j7bQOPC2ZpVzYV2w53Xb+MyT+lyKLg9raEFTrpzxPwc+/82lWaY1hyMWIbffbcwtBEGpzvpxvli3aazKqiinwBg34ufH0XS2g/b3PKteJ8xc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009880; 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=GYx14N1uigAfO7+nUb6U6pmUr1t2J4FtSk0xX48qd80=; b=hMsac01pen+6bV+iIMADWqMaaCyTiz6k6vMXsGBS8rLnc9tiVjBFCSk4iGuIBIrMVjgdgJOJSOgBLOSMHAazUJdo8z/ZsSR96TmlyBoJa3j8oCeK82Mlf+421YOJlYK2pjZoUZhyXrIUAHBvaFg4VQwEcrFBYmn++rna26LvqNM= 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 1776009880388621.6692727879123; Sun, 12 Apr 2026 09:04:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxI4-0006SA-Nu; Sun, 12 Apr 2026 12:04:06 -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 1wBxHn-0006Pl-Ip for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:48 -0400 Received: from mail-oi1-x232.google.com ([2607:f8b0:4864:20::232]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHf-0004U8-Jw for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:43 -0400 Received: by mail-oi1-x232.google.com with SMTP id 5614622812f47-471618e202bso881308b6e.2 for ; Sun, 12 Apr 2026 09:03:35 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009813; x=1776614613; 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=GYx14N1uigAfO7+nUb6U6pmUr1t2J4FtSk0xX48qd80=; b=ruWU3PSNjBoFKCHiDmxyEE3doMzXCbWmis1e7gqd03OoXDoRfvEPhxxOEseCj1TddH bWL8JtcMeZve0Tr81rTP1WqUd32yygdi2Z5n9cWkAoMxHhDsPvbfqNk21pyN76fir5+L NmGl/pllH0wq9oHLwxNhEy4qVcAFFlJLviq6yI3KIoHq8I0URkVxcFYS64QxTpKD0EXB xq65FoUV06c9UtPlqiPZ6V3vbgdsRZSH/YFQA53yQiWYOR85qdOyIZ7I78REc35cn6Tm GM7ZpkEg9fHLc/PxeJJOxSp/DzXl7U6VAgc9uM5pFs0utB6AbvG060s5Q4EkPkhj0UWM ysgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009813; x=1776614613; 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=GYx14N1uigAfO7+nUb6U6pmUr1t2J4FtSk0xX48qd80=; b=Jdz3jhYBzk9jNjr5dhJg/Qzk9gJ3d8yT/tC9gRhJkxeiT9vC+IrnLRSeSrrecfXfwc iPr7VVq5lxKE0un3ugpc4m168BrEpraG9BdffCXs1RLbPz//IyChuaxxuxBJu8GAoy83 K6ojucq3W8lK8G4kdpfo7NN4061Ni2MgxWslx+dqvutpvEQ6qeakTrzLVk/Ix+fmsWfc WnZ6Oqd53UGDOq7/fNnqOzlLHB43h8Rv+KTKTluTXMT+GUItb63aC+qpzBgNBC7AZF6L Dfryum0zuvmmX+15wfMs5EeqNJeUoHhfX5h091iAm+C/IwCfpJbl8+qbF1fcAaLqVHy0 vwOA== X-Gm-Message-State: AOJu0YwMnkI8J+bDR7C0dQ+Ud2kZBgKu9kMean267OzP+oW5bnnpN2FU bS9eDsXK4JdqqvBSto+DlXr9hUs01OD9kHUDoKN9VBTnn58GHw/7jUlSlcxq2prHPwI+KZPTB82 XEVJOWqc= X-Gm-Gg: AeBDiesriCSPorPCHnbE8S7EyxWYonSv550eRv3PHedil1ipXBLmXptSuTQSHTNnBk5 RaKhMI6QryUiyIG6MR2EL0zyIcSt/8Ccw+wOU5fu0SE1m4U+CHaex9VsU2lGh05F31IGQb5TKa0 q++4/hqYoUtyDYTqyowSwJV87vif2KX+NcqKO8c3XK2HeHN7h4Wj2wH9WaEwO3lHCeVFCte/MJU PhpYDE1CPTtQv41R8JunwqMMj1oe9+ToCn+LsGyVntiBrYJctPAe+0bG9+xq1MhsyBX/LvW9xgc RsknLZ0J5lb2/B0wurRl6F6QjKVlkUgijid0zxj340jzYa8h4KkBNRnrwNPAzBDzpV75lichI/l xv0eccRvBopN0iceqq9siD6UyZllUz7j2f08EnSpAWzPzSZSx5JBOK0ieIXtR9C0fyrLLz0WizY 1Q0uXxcZskjQ== X-Received: by 2002:a05:6808:6ec2:b0:467:cda:f15d with SMTP id 5614622812f47-4789e71bb4emr4719965b6e.26.1776009812584; Sun, 12 Apr 2026 09:03:32 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:24 -0600 Subject: [PATCH 01/17] 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: <20260412-ioctl-v1-1-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=12750; i=imp@bsdimp.com; h=from:subject:message-id; bh=9PqYfDLp+JL+z2iqielsRW/geVLSgR0zAZWSVrUXOvk=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IfZm/P+bAn0JfFCGFvTaXi427u9wxLCueq+ kQRiusew6CJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCHwAKCRBsHNEofbAR ABgYEADaTg7ErAMQ6u1nygmp7yIIm67zRGfUysF8LJiei4/cRDEs4NiLNYxf6EhDcdnAYawL4EZ mTGNXz/7MhSJeuP8DqdGR3wSA+KjB4Z6GW+/e/T6w4pJFkThJfLrn3cozqhtCbojX7VdlRxH+SI ZQdyRoTueplk1diVf+alDMnCQRFafaPOinqDlnDNuBklky1q/Jxng/YQG8O0I2EhulPmRUVnIXP Zoz4SvdLAGFNIzBR4fH4VjabID8lF4CIFthDIlSFwkEJSlxMcZ7fS4nq+IcsqhuPyu7pNmoMY8g zfn0F5mQRVACetq2yXOkbOmjfdDWV1KZEXGlm9v/qtNszdwmP9KDU1DTD891OPw9i+bpAYzqo+Z dVkn3zE5U7TmFvYLUq0AuI++uTm9+dH1FmCE6gBUZ2UpBrPcZ84UZJOzlRrJt5suTCa/FoJfMRi 2JAe6naBkGrMwP4XTMRJ1Ac12aiSX22wZ3tGV/B5kVHmQv1IIGm+BCDPDJcOWm9TumhXm4xtZui SzPotFHTucBL8pNv32NhdziOQW1LGPfhUBn4yVfCh1P0buNvxjqaWwBdOqeJ63J4n7UxVMSFsxg LnYSl7iMlIOwnNpjO0w6ATWk2eWHqZ5Jbe1ds/UIJDU2miO5VLzF5xYm8PLfUNJ7ur9R46xR/ED NbeVESjNteTd7oA== 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::232; envelope-from=imp@bsdimp.com; helo=mail-oi1-x232.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: 1776009882000158500 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 Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-ttycom.h | 237 +++++++++++++++++++++++++++++++++= ++++ 1 file changed, 237 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..94ffa06558 --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-ttycom.h @@ -0,0 +1,237 @@ +/* + * 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 */ + +/* + * 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 */ + +/* + * "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 20:56:21 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=1776009905; cv=none; d=zohomail.com; s=zohoarc; b=HG3JxXdm8M9O/fIlsMfaMSghdEEIsGrV1DlMR5zaBi7G3dq9YLnKtAcrr8V7yun+Au9ToAPTJPWega0CavRF5JqU32J23N91bd1sJ2zjG/so01Fc+4mOuWWFMyf2xUCtyiIqdjNcBH3ZIvhN5N+P6xwhPzTgqV+ogr6EVo+mRHg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009905; 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=AMr7jz7FRFjQWOZT8lC9LVSiGIZkZ996tBpI4CHStjU=; b=eYiWw9RB5h9ydA+su5lnK8TDSejMLh3BDOyXwJZmNMIi7p5dlgTkLIQ1aX8o+xy3trew+YCYr7wgBK8VR3Jdp12FKKr6lv94F2HVrIsSY6tv/sxgt5C+N/60M9LV3St9KSaDAdWwHX4/FuZ6zaZxg1kczaZW1KWFOyQZq7vqqng= 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 1776009905783764.6099224959489; Sun, 12 Apr 2026 09:05:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxIG-0006XT-Kz; Sun, 12 Apr 2026 12:04:16 -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 1wBxHp-0006Ps-Fj for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:52 -0400 Received: from mail-oa1-x34.google.com ([2001:4860:4864:20::34]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHh-0004UB-MB for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:47 -0400 Received: by mail-oa1-x34.google.com with SMTP id 586e51a60fabf-404254ffe8aso2409445fac.0 for ; Sun, 12 Apr 2026 09:03:35 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009814; x=1776614614; 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=AMr7jz7FRFjQWOZT8lC9LVSiGIZkZ996tBpI4CHStjU=; b=eM7YZztDmRcF1DjbYy2y4eT1yFBm6o+UthcW62p1xUGES6Fc2dKZskiYQEOUz9LloF SFh/WZTKPjSZecKKkA+MoAEVGD9ffgE54mMQhIFIn2z32EIYOBfxClUz+ijOx4iMw06D ukMNmHg6psmnlv/3U0PZ2ypl5/WVov6+fQ95SuBDKuF8Wq2LNZ1HY/4+MgQc7DMMlbGA cEhblx9RsVIcq6VsmOFkCEgTE/Y31kr8OF6BdZj1vG2SHAeWWyOrA9yL8r+gBOJy9Rdk 1tym9nphZveRLo1kIWoiQoyfxY6iSCt/TPQD3KFdmg+Mo1pTnVWl+vb8P8fk3INmiF8P J3lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009814; x=1776614614; 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=AMr7jz7FRFjQWOZT8lC9LVSiGIZkZ996tBpI4CHStjU=; b=QLDqe8eCPY6mSz+2j7lLO7HRgYpzLkr47+6/Z/Edyu7uknL0BegtH7Y5A4BnyetibG 4caY6+zpHF+6jJNQZmfdZJ7nSANwGfmJsFzexmYA9FhsEG3jFMkbRSWbsgOreXO974uW HSdlKOIw4NvUMV0NGJAsbC9PuzhQhYpPUbUIwVX7T520L1gsKSkXTNbKo9aC/cW7/fZ9 KjLnJxT2fALuCbWj3fxt7FxrkyxHm+NuCqSOvsZXeLH0PFCSLm9F8LjLY3ZAbbIcqemt XFxrECYErkcqpnolVmuVyNoaQTBCq3FJIrjRxys/TX/1kCrOpMQJKHZniAEMdv8Yvo2q PaNg== X-Gm-Message-State: AOJu0YzGhSYhKs7xGqJRPjPJ/48SPMNFdzoCufNRWwNF6tA38j9ExDsT wn8U4nD9os4PvLbMNb/oeDPiiozaL/0LMy1GZk5mygaqJU60r3mVecscpNKuxW9yHFCJ+1MavUV pDnOLoqY= X-Gm-Gg: AeBDievvoJ2RPaROySnsalMJfG3M7n1/9kOMea0Y1PBORWH6H7glXTxr7MWXXK9BR0K aMuU9sv1bW2Wt35KID0PzB4woQ9/xM/zjmi3YvonDVtAi1G/GvLEi3sJHE8SMD+FkqIkI3L8NGz M5hcHBga66ejSBaUgsEs0X8nuArJ9FFWTDCsgBH+3jo5LeVhQwROGUF8CRjmD2ZjnZJUUMnj9kV J+3dpwq0yo3QDu78g7AX6ff8XMiGjildb7BivNE24FuiLdYsOajOa/aj+QQrnvSqGSFSp0+XAHR NH0MB0LyU79I4/vDfinxqFJKf0K/HaWvCD8HpwxCw/2GfoU3rPC5HWacHs7kDfOXkPxjMoL5Cp1 KxuMaMy0kFjs8axHz70o1DrzKG8At+r62BBSYU97z8pMGshhgDay/kHUxFtA6ymzJOYznrQUAyw zO4JSqY/7ieB3huimrMNGQ X-Received: by 2002:a05:6870:2188:b0:423:69cd:14d1 with SMTP id 586e51a60fabf-423e1f241d9mr4904496fac.21.1776009814110; Sun, 12 Apr 2026 09:03:34 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:25 -0600 Subject: [PATCH 02/17] 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: <20260412-ioctl-v1-2-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1819; i=imp@bsdimp.com; h=from:subject:message-id; bh=EbvF/Y9N6ysKAY6EEB2dujgG2t2X2bzpyoB14Ggqvkg=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IflOjsC9jKrFLgCbRqdtjNtPYYmGeFwH6n5 E5clq1qmzSJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCHwAKCRBsHNEofbAR AKusD/9/Z2Sr/KkYKuDePlkbi8Sej224qEtpmKX4x+FTCWAYF8aDpBW93ZD111A2k1945qwcWNb DIzk7uBL9Udn6GkpG2RU1Jkb0652HYQS+nwJZIhx6kx5Qf1WTs+dj7k2BJAptENGHoyOwTjLr1K wcke2VT8iXh+b6omrnIpY3dJha/Ep+SToC0PTIN7nNj3LKxTO4EgO+1z7Me6wevMwRbn1/ia1HG J5ho0quzemc0quTyg9u4eT94wwwRJc0Va3PYMaPBv9hCfGAayYOTL91YGnQkdiGVq8FuAbRk2wD +1jbKqoH977QUN9N+WN1ds9ZIioDNkQog4srFv8+j5VHH5WOGk/PuWYno9ljSqCQHD12uY7Eusw DqnW2FECRn4nShVxfeE9CMrC2pPefa1Z5hawCpIZyC/qNAKs6mHp1ZTkPIaOBJkleOKocXpsuT1 aVCdE/liJys6CwuXe/Nvv4M2tbHVLoIPjdvwYkTI0GemND1irVE+qp7/rADapC5F7PByIEeG/m1 E+dLFzP5CWUqpifKmL5yqSouLL0H3lGXba5smPmT+jD7EsseGyNGZzPWCDjiUnrp2wHrxhg1jIE RJjA2Sf72fyRfAZoUl8B94hQcCT7F6uCE1aVyCsgoo1psGgyo2yXcGvQPh6VxVWeJxtXY5/WCmO jyu0gM0lpJslN9Q== 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=2001:4860:4864:20::34; envelope-from=imp@bsdimp.com; helo=mail-oa1-x34.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: 1776009907616158500 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 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 20:56:21 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=1776009915; cv=none; d=zohomail.com; s=zohoarc; b=DvmL3DAsmLcLEV+K7YmEV7/Y/OphdW2fS0/K9FypFOH1s9YFwPhc9xHgu52EdwS9qELjStm4sqrIOkfZmc21jI3utu6ASmHCzH+nKh0Pe2IkNUyyU+46aC33cLlTfhmSztFyE4KfBcvp7TfyorqXBrByFZFbNns4ECS/8JeMOV8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009915; 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=BTe/D/bvROg9C7EiZvO4+y9jfPH29sCoFwKyN55BCew=; b=aKwK2syR/jdn199e00RTxbQ5I7MQQocnIR05mRhzaGvW6JZLnGMn/i7LHAnL51zPUv6nB+akmMtwaIxUlaAqz204nJ8divp/PxYobMI3L7Be8OflTNd18O4ywAHnKiZ6cElypMq2rZNpw+E62hqH3DoQf04lUxx0dk2RWfnuVXg= 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 177600991570232.02846486121109; Sun, 12 Apr 2026 09:05:15 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxIA-0006UR-R7; Sun, 12 Apr 2026 12:04:10 -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 1wBxHn-0006Pj-J2 for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:50 -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 1wBxHh-0004UV-O5 for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:47 -0400 Received: by mail-ot1-x330.google.com with SMTP id 46e09a7af769-7d4be94eeacso3966266a34.2 for ; Sun, 12 Apr 2026 09:03:36 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009815; x=1776614615; 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=BTe/D/bvROg9C7EiZvO4+y9jfPH29sCoFwKyN55BCew=; b=qdiJoEK6hRiWP0yuE4g/ifj98eE7RK1d+9NGAxbsvjch2T0JkbKQKdRKjo4B/MJxHt Afm4d2f4sqNYq0OL/2dn0yQOj1G+vW9wW7+fpQh2y9MEDV6XXhwI7K5UTEzCwxbqD4sB +YTq6qG6XQgi1Rjq7OLedDvnp3tdO+KKhx0E8ZSeZPNTYywqySBMO/Pn8hNQcNTQlvhN syeQadUTHwThmyNHdc6tjOnXMW0Ff+s6Gu8JCuIGQnMoMHZ6SB4hJv9DccwUqFxabEo5 EGqtFuAXNBapwlswTgTC8EqJm8Ijoo0K346QntJZg0455V3zxUde52E6N94uZXJBhNEF u/1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009815; x=1776614615; 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=BTe/D/bvROg9C7EiZvO4+y9jfPH29sCoFwKyN55BCew=; b=SR15rVPHZiTaT+0gy+XFoee+hG/7gWdZ8I0ELU+6q/Ne6uf2RHvdsaX5Nvh17ZDWGg kGo2zihxOEc/6EB777w/TFO72n4YlyMSW6va2wNBOP8iltKPPxLB+Mjvt04g16z1CtQG E+10igsIUMn5C6ahdNBxzcXa9vqy0uI1+12y6wmVUXXYy8nHRK4z+7PckltywYD9f7Ma Ke3HX0ru+sK6KZLs7ZD9LamOsnrfiMk2Bp3e5wxV4tpaiYM+jwwC5PH3vegqnIKWiFQC EcR5ZshpfAwzrPJVQ1cnbHh6Cyp7eF5TQAkYfSwZkhQIFPb1D22aOQWZkx+UguxinQU1 qNkg== X-Gm-Message-State: AOJu0YwFgdseWQc/URU8+Hs130Ssq7uA5A7NAk+8/Xq65ab5dJeYaNbs IqL4+cWrYYFUmE66BgM7aTz3eI8VUQOMDXw/zREZdCsRgEKFwb+hvCPq3kQtks3Jm9F62UV0KRD waoRc19Q= X-Gm-Gg: AeBDiesuE2QVx5ENjKQ6AYJStOPUu1+KkWK5ZZzDLXtyQN2lA7CTLAM+OjpCjiWYJA/ LVqxhZMecnyYcdfXQXN2YXw/4ZoYdajYIcH3SyCTrQ3zmbWTB1LDFqLi8/0ws2NsdYg57UWsenE bysqa6ZSskZ92xcgwlhIwUo51SknDOdhyMjx4rTP7D00PTqs/dpIBPa9WjPYwS4y+bf0BRP8Eni NDNDdqcI4m2ue4heCPUrr2JW+wY2bEGffQNRGc7bheb7bRCNRYvWgf/LMHJhbA6E/mUyp8egXzr ESwcT/qPTu150I8+Rtd9JlEeMDvje3SwJ3GG5u5nFGSD3YpQpobDrFEQiDeUQu5acfQBs7DQ/hd /hJfXE9XdVEnMqFZYxgikvtscCgazBPFq6Pr4SMvwjCv6Mnyc8BSa4SPGo0gxWoO3jbB1KyhYUW /NMK22K5k9ZQ== X-Received: by 2002:a05:6820:6306:b0:67e:16b4:aa07 with SMTP id 006d021491bc7-68be8fccf9cmr3747802eaf.61.1776009815390; Sun, 12 Apr 2026 09:03:35 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:26 -0600 Subject: [PATCH 03/17] 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: <20260412-ioctl-v1-3-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=9965; i=imp@bsdimp.com; h=from:subject:message-id; bh=E5TcCxhlYakiFKXgpDFbtw1vmY+ujW4UaM+sGPBsaMY=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IfQLUffg/sqZ/ObIK85gemryruK6Ywesy2S SJCi25wa7eJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCHwAKCRBsHNEofbAR AHakEACun4hjYy8vcIKW9J698+tJTDomk3ntwNj4sK1IW8hpxbFO1bi5LNLzNFhcOEGLqpjWl/n JtHqMgMbPvkegE+oQPJc1giqvlHw73wKQyLnotATN9Zqe+ZvgKherTC21t60EXvxNmIBJPlU6Vu Ydi8Z+9Mr2svXj8yG9keqfgBSW6MOot+hmaLbZuGkC1I5SRgsOJrwHzKDlxWnLBCl0IbYrvs/I7 4kqLezLK7Vb41vyalGdYq32q51HkMy/BntFyrztwXQa/z250A0SHekTcADxirABvNQvLRo4/a6X Cf4gCdEbJuQ6hrh0D5zg6ejaX++Z2n6RcP5ZrSxWwo1qOVP4En+UxgXB0WrkGCR+3Tct3hRBpB0 X6jpxbGf4dO5/cUkt8dj/Sk6ZV4hr8ESDKwA+APwIPPx+nJ3mXLZ9MCzjbQf1I+BS4rYQzWninP sSulSv5tSIGZXdV6DAOjnd4Uct0RZqKb5kAxo0EgsA0xRreMG/aukqOHBGYKoFC3b6IREt5MWM6 HFoaD9vehGHo7bp5QocX+MOrvl7zgrQCaQQSxK18oRtrZyk85UuKQi9ZzjtuJbFnual38yAY2Aa T5S/WllZ+4F1XrgZ2EsRCjPuXzn5pu+somCCWH5yRMC6/7nkr0IMNBxHJYyTKe9bt7trKH+Iovc +9uzvnvKdKICBuA== 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: 1776009917310154101 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 Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-sockio.h | 240 +++++++++++++++++++++++++++++++++= ++++ 1 file changed, 240 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..90a9950177 --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-sockio.h @@ -0,0 +1,240 @@ +/* + * 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; +}; + +#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; + int16_t ifru_flags[2]; + int16_t ifru_index; + int32_t ifru_jid; + int32_t ifru_metric; + int32_t ifru_mtu; + int32_t ifru_phys; + int32_t ifru_media; + abi_ulong ifru_data; + int32_t ifru_cap[2]; + uint32_t ifru_fib; + } 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) + +/* 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_reg; + } 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]; + uint32_t ra_proto; + + abi_ulong ra_size; + abi_ulong ra_port; + int32_t 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[IFNAMSIZ]; + int32_t ro_opts; + uint32_t ro_count; + uint32_t ro_active; + uint32_t ro_flapping; + int32_t ro_flowid_shift; +}; +#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 20:56:21 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=1776009879; cv=none; d=zohomail.com; s=zohoarc; b=O1fgCAoCdKvsEKbw8UFp4xInkPcLy07ORYx/7fWOkgj501kQ3IjNKWQxM8CPibFuISv2cKNRAO39OTY/sChlo/5xlowBN1ib791jkuDmzYD66YQNQYwxdg+Lfk87sxjJIPsFJxJ8Xn7qeDZ2skkkdvBb3xVd8h6FWI3TtHJyS1w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009879; 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=uXMRYLbIrSLe9wi5/S8Sasx5IZ6DFxOdiiRJnfLgI/Q=; b=TY183rmUdST/LUGuit5p/Gm1RiE4PdFWt7iqmNsWhoud5F9l3Vh7ELLw2f+Ozd+y5pHhegqXh9NJgxAhgrwz+3ZIdl5nHVI1yQZB4xJLYe7Vkb+MKchsgkMfgUMzoRXCLU9WAEIxPvCm2zFm2B4cRIm7jmBwqsyE1/S7EVGNT0g= 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 1776009879311546.2451040482828; Sun, 12 Apr 2026 09:04:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxIC-0006Uk-SH; Sun, 12 Apr 2026 12:04:12 -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 1wBxHp-0006Pq-FS for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:50 -0400 Received: from mail-oa1-x36.google.com ([2001:4860:4864:20::36]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHh-0004Uc-O4 for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:48 -0400 Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-4233e152457so2636401fac.1 for ; Sun, 12 Apr 2026 09:03:38 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009817; x=1776614617; 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=uXMRYLbIrSLe9wi5/S8Sasx5IZ6DFxOdiiRJnfLgI/Q=; b=Yw8/ujrXrV34j0D6b06E14dr+L/2MUTjUJox3x1R81xzcPAY89vp+C4LkDqF0abX8/ p6sGTcokuBjbSicivz1+DWmkzTSvz3Xi5fzqPkhrsjOjwA6xVbH1IQHuYt4LFnJTKIz+ b49quiUue25XZgEOVJHDR/eo50kICOgAx2z+3uOd2xirISPYpf5ayxsK5x/UD6h5rRGz GnXLf/P5+CtknGYrgFqPej9CRVkX/9Yg8uaGu6NzhX8BRVNn6lYQrKqVyknMvggmlNhY xAfMSm0oL6rBffE8wRXroPnlmYhrNWFKq+LMdR4O/6UFLYC/D7mMlc1kc0REcc0SRid5 D46A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009817; x=1776614617; 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=uXMRYLbIrSLe9wi5/S8Sasx5IZ6DFxOdiiRJnfLgI/Q=; b=Mipl6t5b9B1JxjhBfqK8SOJeJzMtqLnpRYZKmD8s7QzXgpm7upSFWETvKncfVw/CUl Y4hm671FudeqBVjSv56AnSDS/VNK44jEonBt+9XQtiEJxR0C5MaPadx11hE4tIFGmYmQ zgJvfXA5zCtHNbkPVLlBpK5zZNid3Kb5b3AXbmA+53HEWvzX4E3ih16543BVex0/5lup x4WW2byYYdHjlXXIqeuu0BaLSafdvsPTr/3yh1CTDqrBeu0Uty9MMD0npqZYxq54bCjA xOUbE17m6+ga7nLslUyUgT5cAAJKpbxc1EZJJ4p/5/K3pT9rG7ZUvhbRrlIxw1AQr8u3 EUgw== X-Gm-Message-State: AOJu0Yzltcnejx9ihNpL10BkrY58YA9t0tDuI4IRhgqL2QZwRimQJpc7 yulFsCbxeZKWVzqR6UiZM6UGqY6Xaefsp9HUs2qKqvAKXI6AfIB8F1rJ21pO3pRAXzYN3CQbIR4 bNZ8VQEQ= X-Gm-Gg: AeBDieu4L4vAKAbPYvbni/Z2pDXj6yLdjEDB/Sgs20S2Y3WQr50AaqdNuV8NX4PSvxw EVLiByIZ3ISdb6piJ1HxHQ4a+aTesHvqOLoasUqEgTMoiEc8thFnuLn6lKX/3F25ChJAQCItpb1 Tz7f502Up9BEowWml6nulnBt3J0JtgYYtgzQMvFwrIqaOXI6NjM7XZUERMFyH/cCMGRxXaT8R8n ysbt4mKUYNz+nu60TPMVznIfxfCFtRO4GAzitnEDz5eP6RSWqOw2KGVI/ZVdDxpA/SZYGyF1C9n rvOoAXeOyPXhTk3SMpMQTXE41wEGy0xNszNhMecVVsfid5/xBbfzsKFVo+2qeC4zaKv/87Xtlrm 7JE0EPKQ/ZixfuABcjlbY3IKiuTcjeZtM4k3DlN9ZtigCaaVEJ5pvy4JXlt4c8qx+PmxQZIGrqE ON1LLmmOxz5Q== X-Received: by 2002:a05:6870:2112:b0:422:fb29:8248 with SMTP id 586e51a60fabf-423e11e7782mr5530644fac.43.1776009816903; Sun, 12 Apr 2026 09:03:36 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:27 -0600 Subject: [PATCH 04/17] 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: <20260412-ioctl-v1-4-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2915; i=imp@bsdimp.com; h=from:subject:message-id; bh=HQVEx98MB+ubgsNcOdd8V62hijQU2ZsZtPK3SIbf1KQ=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IfKFT8T1hc5Ts35E9R+ouuHyqZBqskLp8ll 83PM3J0so2JAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCHwAKCRBsHNEofbAR AJLmD/4oWkMLoSE5xqfXl4d79CbRuDTk4WCFpP3TC6UPHxfZUu7mdVawP6OMAlSnujPsNHKJ2rk nnPA8zWRWY+FlOBgGbIRYRXF/JAOuUpfaO3Km9VBl5cVzmn+QeFcHGpfaCtihtrXSJ+qU/6Y8ko Qw90yKiGYsyw/8fU4y+4NLt5KQLNgM2n5lIDbL8N/BW+oyZBJ93wtYCVsTgysCwO5wP3DnmCS9X 9+f9ylhTbce3sG4JAKTaIbU9kBn2w22Bu+31jIBQxbEU11mxseNHqguidtEHTg/LI2I7B7+1JAB fZs8oKVxfbOUe9iNhWd5fG36VPbwpThIOLe25hv+/W0E45eWoCVINVN4UxKkBEzr1WnUmQtsN66 oG0Z22+LWqM3V0ttLkBzfZDALOAjV0cLdeZcjN8VIJmqumEnFHnHwCACFAJkMkHGZqLpNtMp2/H 4YOjBL2yNRxs+pQG68XMXH8kdAHGm649CoWA0v68JDUIIg03Dw9b/dJ5+TD3p1JpoZK7U2YiXB4 Yg+wNpwXkiiA2VX0NphPbSnd4AtOnfp6DCB2nx4xhni3wn7CQjzu4CnBM8x8QX7/vidIS//aYjC fRWI7iSA0gJOT8BC+mN0XoDhLAvdqokQk4EERaQK8oySeP2sA96/Pjq0W87eBMks+UWAoAF3yQk ruSDnchx92WZpRA== 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=2001:4860:4864:20::36; envelope-from=imp@bsdimp.com; helo=mail-oa1-x36.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: 1776009880998154100 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 Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-cryptodev.h | 74 +++++++++++++++++++++++++++++++= ++++ 1 file changed, 74 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..dc88521057 --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-cryptodev.h @@ -0,0 +1,74 @@ +/* + * 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; + int pad[4]; +}; + +struct target_crypt_find_op { + int crid; + char name[32]; +}; + +struct target_crparam { + abi_ulong crp_p; + u_int crp_nbits; +}; + +#define TARGET_CRK_MAXPARAM 8 + +struct target_crypt_kop { + u_int crk_op; + u_int crk_status; + u_short crk_iparams; + u_short crk_oparams; + u_int crk_crid; + struct target_crparam crk_param[TARGET_CRK_MAXPARAM]; +}; + +#define TARGET_CRIOGET TARGET_IOWR('c', 100, u_int32_t) +#define TARGET_CRIOASYMFEAT TARGET_CIOCASYMFEAT +#define TARGET_CRIOFINDDEV TARGET_CIOCFINDDEV + +#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_CIOCKEY TARGET_IOWR('c', 104, struct target_crypt_= kop) +#define TARGET_CIOCASYMFEAT TARGET_IOR('c', 105, u_int32_t) +#define TARGET_CIOCGSESSION2 TARGET_IOWR('c', 106, struct target_sessio= n2_op) +#define TARGET_CIOCKEY2 TARGET_IOWR('c', 107, struct target_crypt_= kop) +#define TARGET_CIOCFINDDEV TARGET_IOWR('c', 108, struct target_crypt_find_= op) + +#endif /* BSD_USER_FREEBSD_OS_IOCTL_CRYPTODEV_H */ --=20 2.52.0 From nobody Sat May 30 20:56:21 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=1776009879; cv=none; d=zohomail.com; s=zohoarc; b=KEDqMX0puWBik+gHE2R+l5Q4xiI03Mo/cEVvgWFH40TeulYDE4occWHYvvGfRkt4oMVMoA/vwsTlANMspc7FPRFFll16+odGHDY+AYWxMdA8ZV3CJsd4rjioHD+lnHQ5T6reFngpIJ1/C0H9kOdGLVa2rg/OqxoYDL7ejjgglD4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009879; 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=AFqJHU2l3M+7nH4aoIVAt7Us+qXXcU/vpI78plz7qKM=; b=g5QcKe0N6ZJo9BbECrV7RIQb2dFqyRDP2Ct7CcagJm4XNsmj81txKIXQ7L/D5J+dmoGdX4GwIqfIjh2ye7s3LFdZKZCcfDxNy8lV5TjUX5XUaFb7Jefpjvyf/f3k7OAZ1X2YQruG6tpfpEZ0hM9/3ERAul+vzIkrU4G0BY1vkLo= 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 177600987930186.00834666219998; Sun, 12 Apr 2026 09:04:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxIF-0006XQ-UK; Sun, 12 Apr 2026 12:04:15 -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 1wBxHn-0006Pi-If for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:48 -0400 Received: from mail-oa1-x2b.google.com ([2001:4860:4864:20::2b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHh-0004Uh-MA for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:44 -0400 Received: by mail-oa1-x2b.google.com with SMTP id 586e51a60fabf-40ea36b56b7so2782331fac.3 for ; Sun, 12 Apr 2026 09:03:40 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009818; x=1776614618; 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=AFqJHU2l3M+7nH4aoIVAt7Us+qXXcU/vpI78plz7qKM=; b=b39Phc+3CFoBEVraLsFHu4L5N9zCXKuiHoWMN1VKM8XiGFOWAHW6da0SqTqlD3kYR5 5VYU/wkLE3vV+7ksFe23OStc8x8t/Vw/eTw/h9TayLOzjNHTrE5Vlv5oy8YdN5cVXnJ0 tQIi+k/uIhjHVleM0vwh49Ra/9SGSP3jvndVLlhVLJtNVqXUPBqzjwgfrp0MmOBnlBzo DXT+5vJuRhLClYybqvgIrIHrhfJ3U7UEeRK4Gv4NtDMXxdJq88bXP14Eq08b36/iffyf 0DqMyghKgnXcl6tzcsCXnOslfojnSzIOFeOvdz1/pIiKipBDKjygmXhUGq1O0VCeEtVR OoFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009818; x=1776614618; 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=AFqJHU2l3M+7nH4aoIVAt7Us+qXXcU/vpI78plz7qKM=; b=ZKBnYI4VhWrQiTu2MUHJsF6VP7hKcW8mlZxjMk4mJhI8pUd1xcRHLqT8lJ5Fn9YXph lHiBy19ei4YXHdY/ndPdeNvHMBxCPGUprLGlVzVBIaRa7y7AdCfBeZSy7sXR5QfCi/us l+HXDp8wZmO2aGELJTBRYa8Bdl3iIySFR6dWF63K2aI3mqUIUVccS6JQu/eHZresLPsu jGxS1sMIHelEpiJjJzjygVbhb3sV7BtiorDn+rgrbKBTqOFGHzU0qZ+/X3eMZPhXMhif c04FYkCfygC09OntrrlHlBzxJ5bD6ayoUzE4rggA5SuSZ+3+0a8hGIlE65s5QOp5j312 DZfg== X-Gm-Message-State: AOJu0Yx22smVnLlQN0QaSJOwX5kFNDIdDeC28kFeSa4227JCu0aRr5p4 tVyUOnuJ3cQqQsdNzKSNGxbXf2/wUHxZT8RdwMZ0+PtxaKFjYc1CJvmlqQMZNZBE9V3URZVsRk0 WKhSBvyc= X-Gm-Gg: AeBDieuQgx5i+vlW8erO6nLQCNcH2YMJ6ex8RcTjziIQVnjdWNO/V88PAybVWzADfHC mAZ2OGmt4UtnUi6j0rYg8uuI9JoBuZ9lRYqoXwrQjCyMXujhCMpb6WvMN7mZwd4OiZYEMfAAJUw auyytLuUazCDfX4sa5kLQj5skckv2oexbegZrk6sPn4iwpd3/sC/uR3wr3ggZRpx2pFE0z18/Bt Kh03GRB9/J63H3RpCXAk7G/LCu4v5HSpTlp33SfRgVnu8YTAhsmoPavOnLVAfjaNu4OIL5ic715 TPk5RmB4z3Ja5QfEIr1sJn+QioW6AOtQipZrbKJ9IbJh1FZVj9OqiKnoa7mm++B7rnGMIlKDVVJ TEu1sN7FBhe3wruJ6az2cyrqu79HU99jFF6Z9ajVc5muRxDngMHmHVqLQDsf7lVBmOv8BKxR7n2 yeKfSTQ4rTvsnZ8XWKg7b3 X-Received: by 2002:a05:6808:1391:b0:467:1ad3:7ee with SMTP id 5614622812f47-4789f10b778mr4888815b6e.40.1776009818357; Sun, 12 Apr 2026 09:03:38 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:28 -0600 Subject: [PATCH 05/17] 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: <20260412-ioctl-v1-5-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2199; i=imp@bsdimp.com; h=from:subject:message-id; bh=cMb3ivJfUvUazhrawmKHI2pYvxgGoimqonpCHhslrO0=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28Ifi9mBxYSRBN4N64ikaJa77/RBsr8NmDbBP CDed529EFqJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCHwAKCRBsHNEofbAR AFN2D/oCDD+vMREJcr5geVbzqmK3VfLLfzocMbbW9QVy4NhC6tVfpf13TiIXLI/33s/zHcmBujd fXDmzo3XZbCAPq5PVjWPSl2Wy6mm8vvP2y07IL2+h4s48taWRlsYObl36YRNX9c95/wMb9rhfUP oeZlH0h/IWZU+maHb9C0UuiRmrkhiif4G9bpupUaPNOlnAYjNkjr2KthXGnQtOV3ibT47DaVZZR KiQebNllIGpbVjYiB9oLXhJs6FupyiW1YnYEYeDxCotRisTtZG9l7T6Nb1sdcfZ2hBloHoeT6a7 ynfRV6ILlowJmWBUGvewAibTU9SGCMnQtWbEqz2Mq4KUoRX//hgzG+9j0bvkYpBqqroZsuf2iOe meXmJENKz5YrB+EXeBbtfoPh2H9xMvHW8k6eREe90PJGonumScg/CGSFxHNU2cNf7FbM1L+cJ8/ sw5Mfo6zrM/X3yRC1tGaTDTo2N5MxXt2AFP/V74fn5RGhGDUqe/6Q+FbeXu5U/l7b7iA+Q9ci30 AXHi5/tv/k+cjJ3x3myQJHg1OJ4zUq+n7KfOcmAocX5MpBRh595YEHv4YGQdiWOFlHhGVvpV37E MmvLPOER3KgnIEawBfbSv+TgFvGXxGFY4Fj7LaWRDASplkFj0VvRtLWrCaAHlj80SUhEEqkZH+Q JPruHwfcNjFj+ZQ== 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=2001:4860:4864:20::2b; envelope-from=imp@bsdimp.com; helo=mail-oa1-x2b.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: 1776009881204154100 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 Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-disk.h | 41 ++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 41 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..9260953dc6 --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-disk.h @@ -0,0 +1,41 @@ +/* + * 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_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_DIOCSKERNELDUMP TARGET_IOW('d', 133, uint32_t) +#define TARGET_DIOCGFRONTSTUFF TARGET_IOR('d', 134, int64_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[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[MAXPATHLEN]) + +struct target_diocgattr_arg { + char name[64]; + int32_t len; + union { + char str[TARGET_DISK_IDENT_SIZE]; + int64_t off; + int32_t i; + } value; +}; + +#define TARGET_DIOCGATTR TARGET_IOWR('d', 142, struct target_diocgattr_= arg) + +#endif /* OS_IOCTL_DISK_H */ --=20 2.52.0 From nobody Sat May 30 20:56:21 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=1776009918; cv=none; d=zohomail.com; s=zohoarc; b=GjBHEjdqKfekEbZ1PQr0QQloYfaPHBOrP7kDhHFB4LTZ/0JAIewjive2VQE3LXApaIMNd1IuPE73rWkUZLbBDAFicM0+tQSCp8GgH8I8f3Fyo2WxlcA1kqp54ghHWCcQlHUqzIXfIF2Ggj4J3KRikqMcFwLXobUoLio6hxikT7g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009918; 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=rm4n/Ct2kmMIgYudwVfyNN0Qjq7Jfkatneto3NuwicI=; b=HZ5SU1j2QQQm5avzSDoK4PnA0yuR/eCeYo6wsSfoulKJyqS8SRrblMZEWrPQb0XxBOCltpAsABn2KfU2PDR0iRTTra3H9WCw6KFLhfSH7pr8M28tK/6bojGtTGJdfoV2aV3t8Gz/L3QzexzNLOBtIGW4hz2ZPtrRXC8pqbOj0Do= 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 1776009918283649.7259426387154; Sun, 12 Apr 2026 09:05:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxI8-0006Tt-Km; Sun, 12 Apr 2026 12:04:08 -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 1wBxHp-0006Pr-Fd for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:52 -0400 Received: from mail-oi1-x22d.google.com ([2607:f8b0:4864:20::22d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHj-0004V0-I2 for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:48 -0400 Received: by mail-oi1-x22d.google.com with SMTP id 5614622812f47-4645dde00a7so2819423b6e.1 for ; Sun, 12 Apr 2026 09:03:41 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009820; x=1776614620; 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=rm4n/Ct2kmMIgYudwVfyNN0Qjq7Jfkatneto3NuwicI=; b=Skal0CtZIXrqcmO/6I4uZVSXo3OObWWswrVP7HJ8KWgP0YpSy9bh7MUu26z1IIfNRJ +xh/TQa7EKdOlwX9jxYTyuxadxMq0wXtZj8IN5Q88hs0PrYDOKIEziqHgAyQyWuHcljU rhVxA8ntlzBq9rY3MJTOhh41wm3u0Mcu7rH4H4oMEY0ZVKlGHkOLuchnrNIIpY4jAHCo +Xa9VOQGxJD0TvTozs6j3By1+xxdAQFsoEh5hYV6IvMgUK56idGIiYbwraqSVEBZ24dE tLdMb4ZZkZbIK6Pe3EFokFF1sV8gaCpf4BdhPAbiIUeLYCpuSbwcF1TIbNGEfKaFhiaq 8wzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009820; x=1776614620; 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=rm4n/Ct2kmMIgYudwVfyNN0Qjq7Jfkatneto3NuwicI=; b=SaWsyDhPRbj6BSozR0bc4QcOjvpmsN8Cb+0oC6dCAGbsSiQeMpLcYlEo4/G4rV+oAc S/0WBa5sOhgzTugdsqCEQRLj/rW2PfFMnMWLNy3OBmeI/ac3L0iXio6gRpKgJ4nT/G9J qkIGrNV2QiZhrJDQdh4B4uZIc790f8dF8Jl/gpDcMjlPWNd8KzfgEs5gQ4T6KKd4W9ts 96oeGLQeaOrIaDWbU6FzfnOVsGpy3Z0XLSm42IXNQFL1ywlhA0T7HOrcPM+7fsBBIEVb sCAAz08LlgraJDb4SQag4a0lmb/jzyudcNThKQ0ZCEy5aN17ejqm/wf2Y8J8glIBcx/m Dksg== X-Gm-Message-State: AOJu0Yzx7ZupiDMBPC7KykndjvmKQG0u3yhtI6zXVhwumyKtssBJHWxu ZSPMAboVdrIP2mvqEl4QCnv5NXluxpaJA0JNKFx0+AEytOe1PiUusGx04/70XCIjUyF2nKS9/2s P7vANaKo= X-Gm-Gg: AeBDieuxcd7DggGG/TzEzWtH+HOd7dYoDJE6JFvpSVi/VcrdgA283txq6hJLYkQz+4V e/LJfXzRqM+MXNN1ocLwRHiwYakTlzY8t4qZBgR5LZTX22FYmNy0WXs3QTnFNUy0EYH/daU3ZMm 5JFfnyJQvC7y55gn11JVi5qhFJOb7H5H2skxFqHCtPR0k+bQirUPh7TG/G9oIUiP44+4n+sawIx Dw0D1JGhOm26DxFEgUzIdaCvjC4Dk0a9MYPMxAcqwDFYyT7vcUnkDT6OOJA6xvnKAji5lFw2vdM oxCkqSyaDetbdDRyrqOz7eTHSaoFXkVCx8e0a0WBGN5lHBygEG1r28AgAB8n4ZdeO1aYwL51Gw2 ViOScwk1kVKLHl652nYQ/M4uhEWxGzpkB3WFrYXVIrrtCo6eUSSeZf+dpTrZbxE0nyt4SjWao82 1YVSRzwHflvg== X-Received: by 2002:a05:6808:11c9:b0:45e:d94c:70b with SMTP id 5614622812f47-477272fe437mr6010188b6e.0.1776009819884; Sun, 12 Apr 2026 09:03:39 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:29 -0600 Subject: [PATCH 06/17] 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: <20260412-ioctl-v1-6-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=8387; i=imp@bsdimp.com; h=from:subject:message-id; bh=gZmM7uu3K8cX/RwjkkOXNVmFwtWCH9uYOgns46xr4Cs=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IgwmGegezCGfWwwf94NHhmYmprv6bQ9Qar9 JdP0FVzrU2JAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIAAKCRBsHNEofbAR AMWSD/92FIysc0bVNmB6GbvQ7JohBahuJ2a65z1vQZ2bHgRUD5k3efWMuG2jFkElZh2kqhFaWnv hD0aZHRlKHNzcRrZlol3CtKUnLXzkAWPqRzLZ4m7GcxzRBSevqUBt0xiARrhfwZpP1ymqDhD6Xa hYoWNeg17fEYb+hzlUmcbd8bh8kBe07+ZEx0zZbsX+C2I+/vjG+/NXEXq6+PfvZESWbq6e1DaQC 2GD9rWfinZ+/Wri6EZuCD/usMkJf7XGKEt6ffgUHfCHlwL2h3Ub9OBvTbz206IA77XgXxikPnEq SSgAE9l/IVKMj5Mi988q4e46lQN/g7Z8MgIGsgVLoR+bzB0PfsZK8Epz+Q9rp9uiSq8Vqja+2mf Nogd1rr37XSSa1euuadOGnI31uozth7JK4K9C8CxD/xSuUAsrSGBulzNEq+2AdEkQuQyeQnwxKQ byNOfV3iP2CjrpkvrsA5asnbrAPl9fp9lqL3tPn1oCQrTrrurUbmKAirBugcTmpuiQdUVxCf1bN AQed4VQ6qT/a98UDkiizH8nx1CFaMIXzXJ7tryH8rdyxhbdK4aWsB3oNpCK1JtWKdqzlEdhZ37l 7a6sQXju7NvDU2roPcnk+Oa1mQYT0F0fHMp0ILuhFcbtkriTUVr+JHwfm7sLTu1/LCDIqyB49aH H9wL0Tl/8vfFPYQ== 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::22d; envelope-from=imp@bsdimp.com; helo=mail-oi1-x22d.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: 1776009921096154100 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 Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-in6_var.h | 217 ++++++++++++++++++++++++++++++++= ++++ 1 file changed, 217 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..3656b27918 --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-in6_var.h @@ -0,0 +1,217 @@ +/* + * 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 + +/* + * 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; +}; + +#ifndef TARGET_IFNAMSIZ +#define TARGET_IFNAMSIZ 16 +#endif + +struct target_in6_ifreq { + char ifr_name[TARGET_IFNAMSIZ]; + union { + struct target_sockaddr_in6 ifru_addr; + struct target_sockaddr_in6 ifru_dstaddr; + int ifru_flags; + int ifru_flags6; + 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[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_al= iasreq) +#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_SIOCSIFALIFETIME_IN6 TARGET_IOWR('i', 82, 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_pr= efixreq) +#define TARGET_SIOCGIFPREFIX_IN6 TARGET_IOWR('i', 101, struct target_in6_p= refixreq) +#define TARGET_SIOCDIFPREFIX_IN6 TARGET_IOW('i', 102, struct target_in6_pr= efixreq) +#define TARGET_SIOCAIFPREFIX_IN6 TARGET_IOW('i', 103, struct target_in6_rr= enumreq) +#define TARGET_SIOCCIFPREFIX_IN6 TARGET_IOW('i', 104, struct target_in6_rr= enumreq) +#define TARGET_SIOCSGIFPREFIX_IN6 TARGET_IOW('i', 105, struct target_in6_r= renumreq) + +#define TARGET_SIOCGETSGCNT_IN6 TARGET_IOWR('u', 106, struct target_sioc_s= g_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 20:56:21 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=1776009923; cv=none; d=zohomail.com; s=zohoarc; b=I1ftnw7STN5MseMIiJojnSz/P1iQN+LXISdYbMKD/dE6STooIA07ub59OmOIC0GGQGuovxrcEIL5MziQToqik/1ktTRJHVh2xxzGYFVgsUEd6NguecKAt2GTiRQJDD/vGMdbRQd7Z0s/T/Sp3Hdr43RnEiAjpNdTtp2D5wKBFts= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009923; 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=aXHvbfwqhCila++e6qHrBf6an4295SAF04kURxuYrWg=; b=QR0jdbVKBuVu9fPIGs/MuSvwpYbPu3v+BSFpLfF+P3cE7aI1Z5gzQpqP+z/e/pO8Qet7NBWa3Sd1NRKv0dztIqQ6X4nVIvP2L/hxm7rHgPdaRq9byhXj4PRuMPelqDK5pX74dNX7dj6ptCl/bd9RYrqRNcy2gTNzuilb/BxNT+g= 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 1776009923359180.6485186857817; Sun, 12 Apr 2026 09:05:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxID-0006V1-3G; Sun, 12 Apr 2026 12:04:13 -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 1wBxHq-0006Pu-QG for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:52 -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 1wBxHl-0004VJ-GM for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:48 -0400 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-470145d7df5so2288727b6e.0 for ; Sun, 12 Apr 2026 09:03:42 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009821; x=1776614621; 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=aXHvbfwqhCila++e6qHrBf6an4295SAF04kURxuYrWg=; b=y0rQSHRTI/RPQswCzq5leg/2xxB0I2vGo4idpgGTDwdy1trLU/trxLf8h4VpiKLxlY 54/zM0TRheNRANLEc08l384qXFKU/Ze35dICrdjwYXRSNa47n1Vez4vOLRk5MYahqPqO oZp3aP9hXDbqG3lvgmlCY+akAIBQVajGnP1cOfXtQHQ0SC+VtuDnXh2A9E4NcMzPhejN H3y+ThyyZhpr154226sWAQOyIQnbfXuHYwe6YQTlSXnsHrcS2XpNPp+LH29E7BgB0o9K CckKioGYOS5NC4Af4UUbEuGx/mWj16vvEUlGY1thsMClOpBnqRqGwSSwNScWs0iawhtp MkuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009821; x=1776614621; 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=aXHvbfwqhCila++e6qHrBf6an4295SAF04kURxuYrWg=; b=Mkfgmbf84qxSBvtHO6viP+9eGIlpqzjb7PXXYWehH/nMpQKLG7DeXePu2dSQONKBUV 7EfJvUiyLDcipezMFqZdQoNJgGCtQA2rt8essDkY9EZO+rREa2FvHM97nBURdlJdEzMO 4Bj6zux71vDVSY0qJ75Y1cdUZiX5ax7izXuylsFiSlnOBaISWGbgxNHWQYcsba5PNDBb 3LotP/zY9OcFPum+6jD+Df5BaHABKXNkck7m/wQHefM4Gtb/NjdBdhenWmfIG+FujTX9 OKV0kRVNwdNBqcTjleHQQQWU3JKcELxHDXmhVfcgBpJlwqCki1ymuqGQ4bLfzKbtDwMh Toog== X-Gm-Message-State: AOJu0YyXY+GOAEOQ2QMhBiJeUgUPJ0RIQCz/kF+rCuRpwdlPv8ngDoM7 z5m7a4PLx3V7IixVJn60bE0cAsY6ds/uMJjZGrB7tAn6zmOjB3u9bfBIFQC/Brmz0R9UqI05j9p PHx7xv/U= X-Gm-Gg: AeBDietD+u8Cf7j8c5YvOV27ih7419T+D/HP+BnkNMLwoj4zGbN5Qh1G6P0stBcV1tP x8SrpN9QybDP2bmvnUk2C8Hom0XWNMih65Z2qgB+EnhRNBg/WcNftevNrIKo+j8usFyKvBeRBRK TMdu7ubGPzpMHMB7dbfEXqtQVow5meQlyEfgCYv3z8ZAsYnyeNnawwtziGFa7J99xxpPBiR6BM/ URbcOXGfNza8amPDZl9xNZtuUEh/m+Dtoxs+QjAl+jm0k8LoXrWmTRwHeljegE0p+OLMF9omt2V JZn9W6NP142LbChfQHm5enJB/Q5RuXiwPA9xRdAt/+E0UrRk53tESi3UL7ZFkfMrJFHIP1403z3 sBgR/fN+rWGlLeeB4qNMu3cES1M2AB6R7tJNa0VKQWfcsFnyw4sxsybIvomKuYyk9y9gZ73zJMQ 7WOviEgSFDeO7lG5MCGYma X-Received: by 2002:a05:6808:1796:b0:45e:f0ef:382c with SMTP id 5614622812f47-4789f8fc6c0mr5389348b6e.44.1776009821004; Sun, 12 Apr 2026 09:03:41 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:30 -0600 Subject: [PATCH 07/17] 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: <20260412-ioctl-v1-7-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3790; i=imp@bsdimp.com; h=from:subject:message-id; bh=8sPigRwG0vQFguN7CSo9z0cJsJ/owqmYKQDTqdJ4kxg=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28Ig05Sr6hl62UV+iB0OF4ZAhU33IIVvPzDIW Zhv61sHZVaJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIAAKCRBsHNEofbAR AIhXEACXV7NwkZBq23OdoufSnE96xlcRQt4tu5j5M2L40Jajzt6lZBYIsgKo9sejir7r5cXY5eJ oKiSFrkQtXeozE5pjeKlN5y3LCBj2D3WNzfGsd1jkRDW4AbpVMn5wFL7dcc6kXWlOneyWXLm+xQ GZcirDpkdkvtIPYidF/L3FDTNGs82fOIon1MWyqL8QxGHkaGTPU+yKqaJSykM2g8GnX2MxWNanS 0HKZHVQH5KhTw3scKdAlxQK0a+Q9MvioJPkEmlJxpGzK+pnrHzyEbV4CDcaVqFAv1cIdItT/4ff tZdkOW/dn9nEL4tZOfRBoswU5Y+sq6hJbik42XDpAX9/96PzKP6cCYOz0GbcE6v9iouwz/mU/DL 9olq5RLih3IwoZ4X9F1kT4MAvBFePU/TqaVvQOoEvgbDqf457TIEjTx+oWDVbDwALwO+Nr1o4v9 zP4XYmD1/SYpgdVyw4nrXIzLRLTLMfOmmplajMEY6rQNkf5qumF9SF7dHMtaioO9Ld+KJuuun2I wX+WT8JSKPU/UfxWiLNcISHQVByGAk8MTGqpuXtTNkDkN9K07vq2y2zaWMWQCInzrX5rOAkJFcg 3YnQ1XrkFbfckYGfSBrWNZvLkaumsHxtAjLrmwTEV0SETzereJSIDaIW59guFlYECEtHmrbvAs1 QEnxhgFAQsEEAPQ== 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, 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: 1776009925669158500 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 Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-types.h | 104 ++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 104 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..ea0a7b7d92 --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-types.h @@ -0,0 +1,104 @@ +/* + * 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, IFNAMSIZ), TYPE_CHAR) + +STRUCT(ifreq_short, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_SHORT) + +STRUCT(ifreq_int, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT) + +STRUCT(ifreq_ptr, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_PTRVOID) + +STRUCT(ifreq_cap, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_ARRAY(TYPE_INT, 2)) + +STRUCT(ifreq_sockaddr, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT_sockaddr)) + +STRUCT(ifreq_buf, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_STRUCT(STRUCT__ifreq_buffer)) + +STRUCT(ifdrv, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_PTRVOID, TYPE_PTRVOID, TYPE_PTRVOI= D) + +STRUCT(ifgroupreq_ptr, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT, TYPE_PTRVOID) + +STRUCT(ifmediareq, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, + TYPE_INT, TYPE_PTRVOID) + +STRUCT(ifstat, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_ARRAY(TYPE_CHAR, IFSTATMAX)) + +STRUCT(ieee80211req, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT, TYPE_INT, TYPE_INT, TYPE_PTRV= OID) + +STRUCT(lagg_reqport_lacp_opreq, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT, + TYPE_INT, + /* struct lacp_opreq */ + TYPE_SHORT, TYPE_CHAR, TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_CHAR, + TYPE_SHORT, TYPE_CHAR, TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_CHAR) + +STRUCT(lagg_reqall_lacp_opreq, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT, TYPE_PTRVOID, TYPE_PTRVOID, + TYPE_INT, + /* struct lacp_opreq */ + TYPE_SHORT, TYPE_CHAR, TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_CHAR, + TYPE_SHORT, TYPE_CHAR, TYPE_SHORT, TYPE_SHORT, TYPE_SHORT, TYPE_CHAR) + +STRUCT(lagg_reqflags, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT) + +STRUCT(lagg_reqopts, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT, + TYPE_INT) + +STRUCT(in6_ifreq_int, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_INT) + +STRUCT(in6_ifreq_ptr, + MK_ARRAY(TYPE_CHAR, IFNAMSIZ), TYPE_PTRVOID) + +STRUCT(in6_ifreq_sockaddr_in6, + MK_ARRAY(TYPE_CHAR, 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, 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, IFNAMSIZ), TYPE_PTRVOID) --=20 2.52.0 From nobody Sat May 30 20:56:21 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=1776009888; cv=none; d=zohomail.com; s=zohoarc; b=jGZ+LN4gSnx/NsMr3KOdDylyth6smTiINQpckh61/j//po2vA/nKdfVQITrz3YZiitAzfyaJQEVcpbdjAiB3jCTipCaUISVVNm2qNoblv9fhOivZvUt5pxZ4QBP3qfPFAA0e98MXE5vB/HLOR3KPUvX1vo9aPvRaQme9vGBm6Qg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009888; 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=BKC2bjWi/SrtpYK3J2TKDXq3sEnsuUf9zoPfckC3H0A=; b=cuG3mxKqfCQd0hgXEUvlmxQ9diEB8POBMMOKueZZwqnrHYNozwIyLmMaDVbQpHHbkkj5A1t5A4dFi6GeW0ER+3LjeZfoMVsilen1ND2bZf3dxzs/x6YEvNWDp+6GMRxRry/tn/DmSnLlyqbC6hDwMTM7jQ8Usr0gs3xO+NcUyVA= 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 1776009888279501.1037165235657; Sun, 12 Apr 2026 09:04:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxIG-0006XU-S5; Sun, 12 Apr 2026 12:04:16 -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 1wBxHx-0006RX-Cg for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:01 -0400 Received: from mail-oa1-x2d.google.com ([2001:4860:4864:20::2d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHn-0004VR-AG for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:50 -0400 Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-42321c8b8f5so2952576fac.1 for ; Sun, 12 Apr 2026 09:03:44 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009823; x=1776614623; 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=BKC2bjWi/SrtpYK3J2TKDXq3sEnsuUf9zoPfckC3H0A=; b=Qj7ZT6D0yLEpNUrYdd2qK95H635Nc1O+hUYtJMlbQt/GeQFPu9eP0xCE20QpsCZJZh S5cCD4hsxj34MUS9tYfSECBNmQ4wQgNYOBjSItSJn6Nk+wZnq+G8Wy4dzGIGPnalCded +K1ZQkmM4mvGBGQ6fO6edsOrWU/qf9ii3CkJrm0tpu4fwkegoaX5Rj82uNguV2flXZGQ 6Uo45ZEgRkyiFaVLcLKHr50Cn2aUobuHtOmmKt8RCop22coe1yuDz2fJ6hhyx/11b1Xi BvsATcOvrSZ4QNrn6ITa+wgzl3jCSE2Opx8l0axNRjq+fXpnjCb6BSIEEcNnbznkG4sg 06cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009823; x=1776614623; 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=BKC2bjWi/SrtpYK3J2TKDXq3sEnsuUf9zoPfckC3H0A=; b=q5NipzovG7OQC/zQbMriXYy18nW+npGl3HZ7i0uy8qdkxiBQaQwp2r5vP/gtHFIbt2 tBhZRy52Q0y/7Py2b658bqbsAsuE3SfBXiK78APTZclZMina408GZAIFxGRM5RpnR59g faN/QnMY/bxmBLiUXxi99roYkUm/CqoKUIixVYaKnVHYbtDNHuyysRJJvJXjhQjUNhi2 uYvhNQU/1Z6irwyQ8IuSuQbWjn/IFlT36IROFOlMwhJJ52wWeJUZC0TJtNIEj04189Ii IblZn1K0rsTp1DHHvAMy1/2KAPvHuINCZYAsdZC1uv+Vqbx2pCQeiU1flinYpmuGyjdo FZ+Q== X-Gm-Message-State: AOJu0Yxh7U9lDl9QFmR3hINOeXHiDgkmO3nPssXgPHucDAEKBYJQWhD6 VZcsqgMvdr3Q/x4yt65NyymlYxBsIdz3UoKe7MkGQo5JlSDPD2mw6QE3oGX7c22W5pwQ9yWEuRw NdC9G4fg= X-Gm-Gg: AeBDievOAB1JJC9SaHoUg9cGIDKaM7n00sPx03eRWNBcK0IKegUTDHn8s3dOg7pz3/B ZOI2M32OMpdwrmhdcAf7IXDGOnDLHpE6sXCQusQc3tRu4P+p8YETMkST1Qax6StcjmfBwMrTy3G aZBmBwQaFuWVF+AN2RYgXXJhhTPaKHXI1hczWpbHCww0O3RaUMgKqXTLmbTH4RCDfOkhu9FgAPW QBxWjRiBykhjf5xSnZ0UJKCKExV9XwMTYRUbnxePtRLPXShbFlJ9xg+3W8kifLswatJ5UY2t6GN 0XzRD1ooQp16xNW4NYaFQR4FKa14ZZadS3Q7jJA0KuHIaPPwbMqQ7kTcBo4LKCKD7vNTkeD3/Ge 8GwtSbtcU56kHY8w+miOlPSnyqhSTgyncfHH6UD/y/mqJghJw6OppgCfgLTL5Pa+NSHEn0fyVfM apOsJGN+alSQ== X-Received: by 2002:a05:6871:c967:b0:423:4260:2e0d with SMTP id 586e51a60fabf-423bccab0aamr6989832fac.8.1776009822895; Sun, 12 Apr 2026 09:03:42 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:31 -0600 Subject: [PATCH 08/17] 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: <20260412-ioctl-v1-8-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" , Alexander Kabaev X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=6990; i=imp@bsdimp.com; h=from:subject:message-id; bh=NmJqk3FSVLIKDs2qsRfZvQlgCcX5khfFeERHrIqG7cM=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IgJpkAr7ZJ9f6xkm8QpLbT2GCuxvgDr9VTz ELZZOQ3Q9qJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIAAKCRBsHNEofbAR ALM1D/9eJZs2oDESxJiMVlyEGEv5oHY8eNyCBLJQPQKtkth2oZngzJPe0jZb17+eqIUdDg/grdq xA1/2fT2QWBatujIOfRKiJF6+PKugCFeXv+Vihe6bf9xpZWXCmSRNGfN+s2KcdGWigX3WarV2cd 3KwzFIEgLBG8IYUyEzIVRZYHRQrA+32nbCBgcccCUUjRDOvNbO5ewjxI/mlrDlojvm5BmWgywZP UPp+UHAwyJiJDhaTiQ+F8nVJVVZyyNe4DJdAbQhdIiiGTk1u+DkmoqQ8oD1XN8Krutzn7JYvDC/ dbapzWdVY3VuS7LEbbdCMJ7ot9Qe2mEmuAMdXnepsEPRVc1aBZwfnIQWNg6q3FS2nmOBa5xG8yA XBQ1NCvuKhyc2ji1HslIskgvygWzZbT7P6v70NogpuykKlffuxZPYhpRCQ8+I+Fz6Rdij6WMVRX Gg9e52i9NV5M07q9xjAi5DRjIufGIyEDjhBU+qmy96beDL+CTt5YzebyrE35NwJA0WzU2awzXi8 AQAEAFcLccQCEjG4kEb7/OXrFW/DiReLN09VZd4B0avL8l0ZRlYyg25NUkyR++YOf/iCGyCOToL Q2UKdZJz9sNyC8sny+Z5KkFvIUkPMkLzaAe0ExLcqpxk9q937lubJy0F7QyYw0ngxLu+hey+vJW geX9j7hUmzYlwfg== 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=2001:4860:4864:20::2d; envelope-from=imp@bsdimp.com; helo=mail-oa1-x2d.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: 1776009890687154100 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 Signed-off-by: Warner Losh --- bsd-user/freebsd/os-ioctl-cmds.h | 151 +++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 151 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..359e0dbe08 --- /dev/null +++ b/bsd-user/freebsd/os-ioctl-cmds.h @@ -0,0 +1,151 @@ +/* + * 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) +IOCTL_SPECIAL_UNIMPL(CRIOGET, 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 20:56:21 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=1776009955; cv=none; d=zohomail.com; s=zohoarc; b=MN9mM/O1Yu+/VlGL2MIfAco0m3grZh+xIGEtrSQYzQEvD/S1NHXvtXftuAZT/oTBBBwDPEpH7HSTdIGtCHnU5cSs/W1YabMUcMjTntDVzIIAVxBnAz7BM8VS8c7BpPshpahA8tn5BbFQ6xzLLQU+xvLDDTbtMRKotfDQ5Cln+ec= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009955; 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=3CPXyrU6scI+xTi1TnD3MNp9VsbfveDSzhlCE0CEV+o=; b=kujoaiIWieipLgngbxCNYp6yv/KXL87zmRBzgRKY7oV/ZEPzuCulYyJawWtHN054e+tg37UigipyvaV1pPLrwoJeOqtZ1goZlFeHQc8R3dndZkeQ7FuzVCSrUmhjPD6VnbM7I5fjB5mpzS24glL3XD3GwJl9kxRNiTFIv47D5sI= 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 1776009955248650.0936807726147; Sun, 12 Apr 2026 09:05:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxIH-0006Y2-Ib; Sun, 12 Apr 2026 12:04:17 -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 1wBxHx-0006Rb-Oq for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:02 -0400 Received: from mail-oa1-x2d.google.com ([2001:4860:4864:20::2d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHp-0004Ve-7B for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:52 -0400 Received: by mail-oa1-x2d.google.com with SMTP id 586e51a60fabf-40f387a688dso2462253fac.0 for ; Sun, 12 Apr 2026 09:03:45 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009824; x=1776614624; 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=3CPXyrU6scI+xTi1TnD3MNp9VsbfveDSzhlCE0CEV+o=; b=FUYlqw78fjA/h2z8UbzC5bySSYuRrg5fDYEpeWX8LMqdvdQBsGzXGOPM6l+5zSOifG E2L9p376dQuqcOY/HnnmCxj41hcEevB7yiz9zhoOEhRtwZRLoLgvPlbUoW1QUbmasszD vqdGDs6PKDihRCdHBPx/P6FL4YHifneXEXgYktU3TxlRRgEGgot1TO7xErvhsC5/V4CI zuIh2K/qomYWkjBlirWRYMMdJ+masDJTjIOBtEvQS63vo4SyL7p2iXqUlm2QyF+pP94S 9v+yZJO6OdQTYOrxmC7NbUDdMTK5lQTuN493v7pgnBf8fTq0acXwQvfmWAksVSWV3TAD Dh9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009824; x=1776614624; 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=3CPXyrU6scI+xTi1TnD3MNp9VsbfveDSzhlCE0CEV+o=; b=jtoIaOfiVL6DARcA2GH9RxzrPbSAcDYDKRamrAxih2ErUbm1z856CthMhDSLK88Qts 0fUeDdLJD/CKq16s8Is1CseI51KkewQxJILucozY5QgsTg3z1UnUwWLcjxhiJ3tiodhw iBsZ03Hk3uuKhHrZJ763MagsEPkf0FoicsvVEg6ESL6JgJ03ZIs/S4P6vwd6VY04r72D SDAI55dlZdhOr3vY2maZV7PBNA0dgYPwW0d3WbvP+1kVCqeLCnyIi9tu7nwxlPAI9oh5 aIo0NKAQuqs8Hqgx/kEsj4VE6K9In8b99mVuS2KqtsweId7tUwYg/dk76Je5/tiUJZU/ vpuQ== X-Gm-Message-State: AOJu0YzlyoVJ5kBQBzsef8pMtsKbP7yVnCDltfQH5cVq7R4aZZ73Uzs8 4eMmZI3kkXsARynhKH1jSz9oUsJNYd0i/ZvTE6/UZ/ECKyr0jFeaiEmUe3FdujDzuRqxXLn8JHW hyRi4pvE= X-Gm-Gg: AeBDiessngNgirhlZ6AlHg++7JnqNYOwW87zyDkHM/QbubiArAUtDRd3UBz26phvvrG G/OCw9X1jg9ujfXZd0lFVka1kA6OV6cZJPb7ah3wSUByphMarO+WqlDntiI8Z4xV6vKjJwex8KY d9Yw6sB87+rohtUdyRiMDq44sRUQ9eAQ8zUEQTi+0AS6TPG2vyUPuIWC15xm7kU3s0WaWV/XLfK i2HJOrGnetZBC5BtLkaLWGfoGe8TIwNzXfOGWaQYlFF3Axrjneznt5IWZvM2aXem1W52QQcMYkY oZ/nf8rFuiGg1QiFY4+pM9afpi7OXTNMFLizQvNhLQHjy9Lj2cFwjc8iepCE+FirDWFywH8d9PW b8i0lQ56nIIWu3Nynuj25oMxeOv5hCpRyKMEb/5chbSQWzt+gAeJAG5nzIX0Fapw6HTmFO8Ir2a U2Hp0x+E925g== X-Received: by 2002:a05:6870:1b1a:b0:41b:f2ee:bfea with SMTP id 586e51a60fabf-423e1162254mr5650894fac.41.1776009824292; Sun, 12 Apr 2026 09:03:44 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:32 -0600 Subject: [PATCH 09/17] 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: <20260412-ioctl-v1-9-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=833; i=imp@bsdimp.com; h=from:subject:message-id; bh=yeGavK2BMRJ20mAsfFVakCqJnM3dMDajDrM0UbXfJQI=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IgZb4V++s7iQnDx5XKujCjFEjbbSFirgDFJ v7Zi4xCRSSJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIAAKCRBsHNEofbAR ACz2D/0fGBH304BWkbKEX+Cdg+x2Or+a8S3QtCrv/9T4tPR5UtrihXplOLQvHDttlEUhrGg8H/i ycjyjXQrXwLEDRZvadT7HZ2V37C5PGmi0Y9ZBcHXChtTh3d8TaJ+ZYsexLqh39zgRNsFjEAmcPi u39yZ1Mf05JuTc3mBMZ4UTmX/li2lkz4pYEnP8CB9/aGG1CtcwkhQEGMOPfsdJzL5KyExUGsrQe 36yg1oJ2kwTJtCJdisX83pSwFPInME1ZPQAFUJOq6SmjYCS5+L0y4fKiQxCoTmlSS0J+6rhNexI RqFrnWlb0Y16f7cLGYL2aCJYBY74PE85wRg/G9cT9Ww/71FXxYe/7Z5AOUf9zg6BvlQso2G2Htp efVHGwYoomNTPpxbaKK1fKH+v5BEx7i4cKzFmwaThRXDnlcQf6X3g8VeUGkG10ShAjj15ILML/m gNdrcAmM209yqmWe1N3tfksyOEZL81xYc22qkvy5yiffI2wIuDK4g0CbuB/W/4ui5ICdF7ETrOp +UZfMbmSrunc/YniNkzP4JhbdJsRqNxb609uQ6OgtrKZoeptYHrEqd4K18dng+MGk0TpJT1Qyao kVtpYejnfd+BWSfNIk0yL0yzrP9GdGO4oFORmxMXMBj2jNnZd2RWbu4x2XkEONLOMU+m6a6xeeU CMiPxZuhE5Wwjmw== 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=2001:4860:4864:20::2d; envelope-from=imp@bsdimp.com; helo=mail-oa1-x2d.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: 1776009957504154100 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 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 20:56:21 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=1776009886; cv=none; d=zohomail.com; s=zohoarc; b=ldBvkwh/x3B7kxgHHSRZJmIGbM6U0Q6PRad+a6PZyQbQmTs25pJbq6U2w5Mt3NRaCS9blG+Y0P8YcwYTwChB2CDly7oNHSjBVaPpssu7Mt7NXFsqxiuc7M+6ZAi70kGlnWrX7N3bIOU9f8eoqzF2CUQnKRPwusTeGGbE9gk72s8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009886; 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=X+vpUTgmmUCDm+9ikvEVgt8ooJ9JXNNdESCppn40+QE=; b=W+i5AFK2yFxseldJESVvvF8iSxXiOfdTDtwx9XniBXcfS3/b6Q9EZdlCv93mrrBWGFabBkKXsZqQ9/w0mhAOjSn1tx27Wubq3Y+Var94ND8c5YUHSRl37Hx5uzO6SOTIHNMJqBJNTZJf61f2KtrJgZzhzkUhqILClN627gOHFNo= 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 1776009886967815.3165202926594; Sun, 12 Apr 2026 09:04:46 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxIF-0006XO-7a; Sun, 12 Apr 2026 12:04:15 -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 1wBxHw-0006RN-3U for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:59 -0400 Received: from mail-oi1-x231.google.com ([2607:f8b0:4864:20::231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHn-0004Vo-B1 for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:50 -0400 Received: by mail-oi1-x231.google.com with SMTP id 5614622812f47-46808125c65so1218834b6e.2 for ; Sun, 12 Apr 2026 09:03:46 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009825; x=1776614625; 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=X+vpUTgmmUCDm+9ikvEVgt8ooJ9JXNNdESCppn40+QE=; b=Pw/QeI20nd1QOLJ2ubLe+nVXfjS2IwoPn6EsFVOn+n4TZxhNL7BlaVRLoKM860/gbI 0pEWLAuUPobwcV4P4H9v5YxjJUkIfPXeGhHI94iNZBJKntWlTZjJOpq7GBdTzxaWKSxl dgzqaGUUsl6aZOF9WSh27l+SJTfN7/6QgVLOhuhXpqhIG0sbOprNL9aZd2UsO4N6VCeW xJJjYKc7rYTl6g7xhAiztzeLGkHtOabTSYAWpg/PeMhWhTnJlzQQuwJq0AYVCMMpaQQT u82CVOZbr1vr8khrp2MOlfRahHnIg/EZxQX49Cq7osu3fN/PJZpUYNa0QKAcdxtuA/G5 /+9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009825; x=1776614625; 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=X+vpUTgmmUCDm+9ikvEVgt8ooJ9JXNNdESCppn40+QE=; b=ehEeREXE6GGmpkb/uDiEx60GT003+NysojpvBlW9J8I/NM2U3aE9i+j8wa6eMSuFrd lpGg5B/fKLEvOiKPOwVT0NfUYjRV+/8K3wvD0cHNkJNm+UqqXwL4O7U+puIY/CasnRk0 qwTZHWKZGvmLfIJ8j4TrrvD+QYtaJXWqJu9zTmGgyeLciCFQJnZAQ15oPBvnnv6u54x9 jOtggHE4omiAmOSWFyeRqj0mhGAAKSnBelI/giJi+DQF7INjYKtggZ+tHjS9CtSje6N/ asq/My9p16FvK+fnFAe1wl6x4X+P2etHtNwtGgOW5rg4Tl0WHBaZYB9KSAtESV/EQy2B eoCw== X-Gm-Message-State: AOJu0YwkAEQFn9WxAxKyNNHHRRgFNpBdbrwU0LZWKnz8V/bAfrD2VNIU iobRzA+o57jP+LPZyZf3UalESIs2IvkvUCBHvxvS1+0EUf5SyWkgQzBJoKVFcd4POBdjY8EcItD cxb/ypP8= X-Gm-Gg: AeBDieumgPJKR8qEmVtVol8sFpyus+qb80kridoonKW+9jLxJiFOJQhlElVvRkli+s6 SNgDW76WX+h0/O/GZyxfsaRjWAdPs69zsXZp4S5MGHcLxHz9AaM1q4qgM5S0T1rbfPbrqpPFAng z9Pyv+dqxI9CWWT9blQ39WVnkORcn/P1umYSH5akJWRNm2D+kiMj4irHdVgM3UgGR8pUCk4ifSN 0NmkgIaKe/0eS30gWOrVF2Byh8GniMSWuU+smCbO21Ybu7XIPWr/LsVYCeccZXISP+pXz3TMGZu VB5Yzpc8VCW1V/8swRKfrwlZgpdfE3Ys3tm/YVhLgorqEcK2FA9JXNesqfyVxc/FyiX10SFG9pD KtNDZR2QcM2Xd+M+hQB2gTHQvGajrORjgJ577qA3STF4WpUnDAOndpocL+aL/Da11alh3WyWN1e WujboWdy+GkA== X-Received: by 2002:a05:6808:180a:b0:467:ee67:d2cb with SMTP id 5614622812f47-478a0f16aecmr5426944b6e.41.1776009825512; Sun, 12 Apr 2026 09:03:45 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:33 -0600 Subject: [PATCH 10/17] 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: <20260412-ioctl-v1-10-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1053; i=imp@bsdimp.com; h=from:subject:message-id; bh=1aWdqqfETnObSvDu3kjSpmHIrNfg8gEN8mkXnAbEnzk=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IgU4KtGlGg8nMCBZKzl/nASQ/NTNG1UZ6xc JWnGSwD01aJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIAAKCRBsHNEofbAR AAVuD/46WAWQsX0tu7IVwahTsnM3Aj3pAO7r5x/wP0fMui+YvXwUWl+8gk+L6suYChjxYOEYelu oJQcyioV8SAgb50CHlcwr860QYBTwIgslYytACbGpO6vvOZ2FA2tfFSTX5xeIeNaK1kIwsJI35P BRX8P+qbsJFH9uzlXktXu9XLhoAR76FkvMTSKV9lSIRQQkZYjHUMpwsgFlaCJfuHgqsU5L6NE6z w5l30iZ0unSYJv7+mJ+KcI71fFXEn7QCShoShdED9gdPhIblbOqN3bMJfAolDS77bW9IpMpRgdr v9pyuCg1nNyYVu45QCi/cDmE1ItuAPqPA95iwXmJatu2zgc2ZGnHRrEAkspx6sKSAnycV2176lN V6I3Vm/ujn8cy56Id43uPnpD2YpN4MhE554B95A0f7+rZ6IAF4/wV8be19RhNVSvaDFKJ0hNLJz xGLVmgHOKj4WiiM/9i0WeQSlQE8/Hdb787IHvUNe2q/UpiWSKY0P0v74S8UNQ8Z14Dn2cXYBjPa B35zUCvgTftq/FIxWOZ2EriHhEgd81U1si2CwFwGXuYDrknvtb1gBdB1kU5zshQ8nrd4soiJn4Z F1B7KQHJnszuSp/swKV1hJ8peoBO7SiV0iTStSWHskqx2Tvm08elrO0wudAcKdycTxpBlisgi4G 5BhkcZdV/Py9hlg== 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::231; envelope-from=imp@bsdimp.com; helo=mail-oi1-x231.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: 1776009888694154100 From: "Stacey D. Son" Add struct target_sockaddr definition for socket address handling and safe_ioctl macro for safe ioctl system calls. These are required dependencies for the ioctl emulation subsystem. Signed-off-by: Stacey D. Son Signed-off-by: Warner Losh --- bsd-user/syscall_defs.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h index 4dbd90c2f1..873aea2fdd 100644 --- a/bsd-user/syscall_defs.h +++ b/bsd-user/syscall_defs.h @@ -565,6 +565,16 @@ 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; + +#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 20:56:21 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=1776009923; cv=none; d=zohomail.com; s=zohoarc; b=T2T5Bf/Jd9+l0FbiPElR14zhhqR7WboevUQ9tYP1csfwp4AQuVEG72J2v2pEez3O1haObiQXOYOQXHcjwB9ynbp6Q6fkUMGmjDhTgF8dXtr/1oV6ld6TMS4oyEw06tX5WAW2ht5Pq1WYfQwbsohxPBNHzVNJp6UKrOPUdTdmfIQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009923; 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=OG67MzhAjbi8mtn9vqr3Qx3q3JjHQoONM9JlGgCF1mM=; b=c5PZ3bNIOToN0Lb4vBfJ9FvwI0cL7B+ovxx0VcRP1e6sOXxky+aUsL9xzeC5/94LWWXn0BFBsP5CcM13Zh+ltm2+QosXUUfuUPa/fq7K0whFviNIOtiCFehA56uDGwr9a2cx9+o0tOXVrij3c62vjz3xVNjTSRf8fOrl8sR736o= 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 1776009923816160.1165585783882; Sun, 12 Apr 2026 09:05:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxID-0006VU-Bx; Sun, 12 Apr 2026 12:04:13 -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 1wBxHx-0006Rc-QM for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:02 -0400 Received: from mail-oa1-x31.google.com ([2001:4860:4864:20::31]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHq-0004WY-Jh for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:54 -0400 Received: by mail-oa1-x31.google.com with SMTP id 586e51a60fabf-4152698e745so1337179fac.1 for ; Sun, 12 Apr 2026 09:03:48 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009827; x=1776614627; 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=OG67MzhAjbi8mtn9vqr3Qx3q3JjHQoONM9JlGgCF1mM=; b=dhynwrnGypFQorpn8JLg7JGtk9gQJp+3DQn6d8ynQcdhwd0b4fcXWT/1detyUK1mOi AabZ3SEjua4DZ4gg2lmTPQYxDSM28mQjy3/Vp7pCa+6JK9JFu7tQkvZQe85JJtlmvflK z1v6GMBP6b/OdF3NfnCjoV/zcJ5ZC4f1t92FP3IpHMoeAt+apjfKUQcdvbLJLvy/8uus G2AphCU32oNATRCLK2xDRnME5YTm8qIuma4CqgmnJXqj2xcSxHtmzPjByHpRDiat1PN/ 7XFjbs6E4XWqBbg5WaDHbntG8pFbNY3r7zIvNN2PSZ8dAHmTnIcWpugrIMy2phaJ5Zf1 5tTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009827; x=1776614627; 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=OG67MzhAjbi8mtn9vqr3Qx3q3JjHQoONM9JlGgCF1mM=; b=TLfTWJZTxN2XiZXdcEDZY4vYUC6zXTedn9UAS9ly+8irYHUY7KUpiq2JzPWb4e008G cuo043NG7oovBXLMthvYKV2Dw0VRGfJEhKmcJSs5+b3hJEddP2v9gXjHSEERsHLWiy/i kMTDg0S+rYVztsI1/+Q4zavJamgFFN0FLq2OWhZfg3SRyvTY0NzYgjfRvHbRuvubAQb1 IFwUCFdVqFp13a9xYelpMQFOFTRTdLO+flOxXELAPMDN1kDXD9VibtCrIfJseEA/+ZJe LwVwCrqipW2eEfKb13qMl4FCMkWjwrDYaKBBuslyOXMfcWHug4MVdSty0bcLehwp7eYl oqHg== X-Gm-Message-State: AOJu0YzAMUG2NbdAcPtjSW3LUje10hdrNkQo5TNsaTiqyT2LMRxRGtlR hxAV/vK2o9Q7wyOQbN0jSxfaJ/AU/AMfTKJUcmnSK8tgAmMgAljVIMdkXZWTN8gyGkx/iD39obH urH+Wp3E= X-Gm-Gg: AeBDiesU5r8Uv3FE4mSgWH/yDyVQHpcihTjeODgfxtrziDI/LDJ+15JXbCzX1iNAwJj BB+CWxXd98dMfcVKLuE6WBGP3tWmQMPF1jaIsPCAP/5hSNOSi0wAxKsyNKOpEY1qmhTXiANeT1T ZgEEU4qos4848JIsJtjma1pl+0GJynXGYtd1B1qyYuA9k5VXxoYAivxfbc+svmhyOH3zND9EwZB ielzT8pKht/9AQqcAfjrYadfDqQOJ/YTMYNYuU5rX9Xhotyr6wExUyrKRJKw0YFfobvW/peO748 M+fK0U2KZ/bZsXJfi+RGUCxAorb4hAHXaycaukP2G60apIlgjBrgu7SjYdkS6OTQIov5vO77wJ6 hr/+ZlZ9ip4jCMeB05YbT3nXXXOo/0WfjyCeR43I4ROX3r8i7cFLufIjhAEJbS2+4CsVCz3BwX6 +PKO+mb0quQw== X-Received: by 2002:a05:6820:1b18:b0:68b:cadc:4340 with SMTP id 006d021491bc7-68be604a404mr4863543eaf.18.1776009827198; Sun, 12 Apr 2026 09:03:47 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:34 -0600 Subject: [PATCH 11/17] 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: <20260412-ioctl-v1-11-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" , Sean Bruno , Kyle Evans X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=8449; i=imp@bsdimp.com; h=from:subject:message-id; bh=bk41F2WqzI69O5FRTdWBtdF3GnnfoknoNTPXwZvfnHA=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IgfarNv73DL2k9PA4oni8enRnPDBde/ocOO pT7rY7TnqaJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIAAKCRBsHNEofbAR AAZsD/0QZM7SZw5CgkQjthEuauGAQBp0w7Y3fvJKI4hDejHee15hIq1k8If2Nda1YS1D/j/HfmC yns0z79ERPkQBL8MCpnic/rIpdCHgAYACWIGjhYrZy+yCWT5BSOu0btmxtUpR1HYNTaj8SJAPND g5P7nlySaXwwJDjxpv6QrgeTFD0THybnPtid5g4cH+Jc+CnT9QMfxWWNgd+Zh/RQo8V7q8Alejd 97qtM2g+/lOFe02rApnEgGgGEqzrpFleqGyBlCwJlu+s2BBWFPELWe/DvHXyBLuroKpppH2+K1+ /lJBJmHKopu/E4ZrnZ9ckRfOwDSeJTQaNxn0ea15RUcPvHmatSKJkaeoEzRCeCJKS3+ZSfZJhsk Hm4tbu53DHwHjCIOW9eweofjkdEiXl+HnT3gKCVnJ7mWPhF5i7SBySsiVijA4WUBPLcvf3ce8mK 2M7HORS6YqPmSwlOdA8ZoyB/alU1job4vdwle375DmscvWt3VXtjc6o9zHBWerOEHgI6k2+avci NqtxNpCBCEz8gDiS9k06lkhLXdSVzm3fjDfVK8aIdcrnVQ2LKWqA1fGeDLv8u32JEVcYPYhOOfp WxctC9mXqM8LJ40UajB1r0yOfZPetTrWkzhy5H0THI5ikbUuGBJMeWnaoGCG3m19UXCg1XT5QHh BxRpS34u8Z5qmHg== 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=2001:4860:4864:20::31; envelope-from=imp@bsdimp.com; helo=mail-oa1-x31.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: 1776009925743158500 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: Warner Losh Signed-off-by: Sean Bruno Signed-off-by: Kyle Evans --- bsd-user/bsd-ioctl.c | 221 +++++++++++++++++++++++++++++++++++++++++++++++= ++++ 1 file changed, 221 insertions(+) diff --git a/bsd-user/bsd-ioctl.c b/bsd-user/bsd-ioctl.c new file mode 100644 index 0000000000..32fa9c3d33 --- /dev/null +++ b/bsd-user/bsd-ioctl.c @@ -0,0 +1,221 @@ +/* + * 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 + +#include "qemu.h" + +#include "syscall_defs.h" +#include "bsd-ioctl.h" +#include "os-ioctl-cryptodev.h" +#include "os-ioctl-disk.h" +#include "os-ioctl-filio.h" +#include "os-ioctl-in6_var.h" +#include "os-ioctl-sockio.h" +#include "os-ioctl-ttycom.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 20:56:21 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=1776009921; cv=none; d=zohomail.com; s=zohoarc; b=PdbZ1O5ZYhKWaEjfhiGQzM5fPBMKD8851YyC5gVkz8iK8/Pbt1zgLw0IiW0DHkeQHRctQ09Tajr8uEaOTRWpAjI4gIhwg8ghEy/TdtMxZ2SbBSo9HXCEQj4Ku7CkI3IrCHfOBdb4phxmetiH3pLBdHTKBdHebt97oAB9mx6ovwQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009921; 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=flxXVM9IUYo3v5A37ldvuHn8wPg9FyAcz4uvyK53nnI=; b=S3iFMYq+CI1O37M4OCH1hRipL+sZpdq4hgvme776CIrLJCE8VLkZao164vHI1JXakyJ0dZzEyRogMYomZuaHpFHXrGFvlyvHexdz7O5pc4YTTm0sjkTUhGwC64KsImsTEcIV0BxqnQK2RQTwJW6gWt+YOMx9tiL/1oYR8J1tOk8= 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 1776009921646226.65905463583488; Sun, 12 Apr 2026 09:05:21 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxII-0006YX-1y; Sun, 12 Apr 2026 12:04:18 -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 1wBxHz-0006Rn-A8 for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:03 -0400 Received: from mail-oa1-x35.google.com ([2001:4860:4864:20::35]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHx-0004Wx-IR for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:58 -0400 Received: by mail-oa1-x35.google.com with SMTP id 586e51a60fabf-40429b1d8baso1241681fac.0 for ; Sun, 12 Apr 2026 09:03:49 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009828; x=1776614628; 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=flxXVM9IUYo3v5A37ldvuHn8wPg9FyAcz4uvyK53nnI=; b=rBUQr30VeJY8W2zXs8Tve81ZjKBVnjXGEdPICp0feB8FqqcEa+zV2paGKoYIR38JmV B1tW9Fl4YdTEr2+04HzSlhGs9619I3ag8NuO6uKji2EOUqns3EUSpeYpQeopmCHbz+4w BQjlR1og0xkKAhvzSnRObJsJVNXnqGlMzSE33JVTIYDNbyX8oE3OCz3WemLUmNmjT23v hB2+fxwiPaWDj0cEN2PSwLWJjEcChV0OWGZmtd6cYMcDJYxXdEVZZFK3fRrM2rdgowe5 lkk1edOjDuS9B7qj2BooJrgwaC0XiMXJekwGterKwtIzzU9xvaWDAQ9sPTnWEcEjJG97 jx1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009828; x=1776614628; 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=flxXVM9IUYo3v5A37ldvuHn8wPg9FyAcz4uvyK53nnI=; b=YbtCrJ9uXC4lzQtxRyVN2hKQE6lLIFpHaNAeSChNs/abRVfWeQLlAWz3WUwwIrWiwI HBW4LdEzVJFWvchMYO1/4RaSBUWiEeJyqS8do5YVSZrWqF5X2y+sAzatznoPu294ambl 3fYdRMIrFZY+RRIZd2kokJGMj2vSdVF8OR2Bpw1x6Jppp/cjoRD1+jIXqXggCDZ5SXfO YnDqzxdmRqsbqT1GbbPVIqUZXzuW7Y65CXvZj0jhUDeUi+HxZn4X9yKTDYwSCumfpA7Z We/jpbFpd6uAjz1rnMq1RGnN6mm2Q7XvvBsPlBZof87gsw+SA766bbmKuAFeADrIy8MP sfBQ== X-Gm-Message-State: AOJu0Yy+SB2d614vW8aYBfZtC2+UuT1Te1AR9NI+uwaZ/wj6nTBlgl83 E7iwz7PaLYdG2KipYWB8OwBDk1Xyc+//0QPT3Wk2dRGJNot2sv1uKphUjPRSPgo/3ooHorlah/L N0IlgVFw= X-Gm-Gg: AeBDievNIlu8JsV2jMLw3xFuKFi4nJWrYg3nFwVDhZ9Y39A+m5DvxTg8bJpaJdTR+cE sOX7VCc1EbxJRdHt2XC2sGkNqie6GNBsFsRUf0cREmfhFWG2k1u6ThEUq07GbIBcEVuftfVjntP z9nkFd8qQhYnRhFp8XSk0QoM5Ke+xW/BT2xRi9weoc1uW/1T9DfOmZKKD7ZFIcXtrCFLNvNJRtg 5vFGiVXCjvpSPUcCPmpXWFOLqrZV23T/Tyh8EFyNnLKm5/LTSxVgWef8+0j3ZmfGN8VGb8c8ims +Zbx3lcdynflFSWW9afUzSD6jExMOhjQbcQWxbUhg6kl7Oy1AghPSkP0MUfP9sbDfkGoPxtMx+M SnnSpj6yCYaebdjq6O6iSsgbWNDyIfiS0k02LzHdXyjb3kYhytETtu3+0n4FoAmFrorvmPhKjBE /LhqPB+W6n/A== X-Received: by 2002:a05:6871:e785:b0:417:15c:796a with SMTP id 586e51a60fabf-423e10c3aebmr6406411fac.26.1776009828482; Sun, 12 Apr 2026 09:03:48 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:35 -0600 Subject: [PATCH 12/17] 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: <20260412-ioctl-v1-12-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1215; i=imp@bsdimp.com; h=from:subject:message-id; bh=xbGD7IcDXbypQMwK7rI7j0iz7UJrizyHubokpLPYvRQ=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28Ig/rheeLFhubVKUkvrp1CPXsHgTe8eC8Ges Z2sjN0WE3OJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIAAKCRBsHNEofbAR ANIFEACbz4nSPoCdKFDXr0lwEmnyTZ8DgNEGP/fP+W2a3AF0uvmAvlox+EoxbJWwJ1n9KXcg5dN j2Y3pYtUIm6wvMtoxs2cE9NdhsIfFhgYqMeHOvj0GFsWzRNw0ELlH/QxD27IXDCwUvl5xfGPIX7 w4YnG5oIY6NaUCCAd147L1JkCzDSo/Pru9BH68AA3Z35Bb0Ai5rGWwttn2K/JDrtPCC6EtPUFp+ 1/i9Lhg+ksDCw/B8LI2eW34EpqTtPnMOCXE05JFz9Zi6WLg+n/CqnIO8Sl6G4wf9cTHLVK4PIak E85vQDuP7A8/uxBbWKtFUFaDUcjlbYK9NDkE3uyesXH+Succk5LxV0jK3cjxtw/aXwAGuWWmSKI 0qsSDXnVpXmrhWHNKvI0S8tBe+Idqpbc9G3cqjxpSpGR9CQnk010Prxj33MUIE7x0FDGW7Kz7uB v2MQ8J47Mb5YN64SSUrRVFYFxhdkCsaa9QoeKvu/d80LEFENA2eHnXbPhkSdXFt2aUF9G1OHofD sMjza4KM2yTM+mcxSuyeAsW25kOCSY2CEHU6VnNAq94ipxwQG/pj1Jo97UXbEHlHS/aXphCL4Cd ++UzYee55JSOvOe2e0deWkT2jRGn/ievx50pONaFXqq0YUnDZpChajrZktynXhNYIPlo9uQT3sC XKerEBOuvxvi5Uw== 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=2001:4860:4864:20::35; envelope-from=imp@bsdimp.com; helo=mail-oa1-x35.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: 1776009923620158500 Add helper function to log detailed information about unsupported ioctl commands, including direction, group, and parameter length. Signed-off-by: Stacey D. Son 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 32fa9c3d33..049188e5e1 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -219,3 +219,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 20:56:21 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=1776009937; cv=none; d=zohomail.com; s=zohoarc; b=gMPxWYL1j86grp+2FN5TW1M/l5pOzqZ6pWChrJtxcyaw0xNigPuqNnfA+O5+1YdLP7tTK/JteXg4lhVBAN5kbYzfGp58Gbw1LU4vU/BHatfExDfZwS2xbAZP/FukEszmK3ko07DQxkyLhiOxfujdSahdbSzWY564E4LMfkxuoDI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009937; 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=ydItN197xR3dfX4ljekOGS/5kkStQ6bZhyq8u2u6ke0=; b=TaEg+ULSPRttT/T6ZiAbUrh3EFJy4j6jXG3n8rB8Le22A2SumeXVkXutb4b6QRJ5966tvyQ5GEJA2VVOU1w0ZYz9pY2vM+ic9MykP+BiomAWtg0wu1EJpjRiyHGz70Vx3Xj1WDzvfbdHQgnF30P0AnDwi8ReDrY3I4HQTXXDVaE= 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 1776009937771883.3240686607495; Sun, 12 Apr 2026 09:05:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxID-0006Vb-GE; Sun, 12 Apr 2026 12:04:13 -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 1wBxHz-0006Rl-9k for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:02 -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 1wBxHv-0004XD-Sa for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:58 -0400 Received: by mail-ot1-x335.google.com with SMTP id 46e09a7af769-7d7ebe11bffso3163462a34.0 for ; Sun, 12 Apr 2026 09:03:51 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009830; x=1776614630; 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=ydItN197xR3dfX4ljekOGS/5kkStQ6bZhyq8u2u6ke0=; b=LWst7y0vE/e0sdspR4UyjpQj01Tt0h5VcE13CGzISwXrdyxSr0Ndl020GVDbfRNtiB gUJJnRKbGHByyVgSCED7cHk8BNrhc2pqheis9ZOFtcJbL6JHaIV6oJjqfNL6PCEwaEId DdP4OICVnUFJJXMitfl4H2Vlm1ZMvMqx2j7+PQrqKkmuUOWOv7Nv6lh/2YahKCF39I14 JzMelHgYMz/f7fmb5P4cVj5ECaaDviGnzNOj5OSvKaBJzvJHtgW6OCJDRELN53d1OzDA 62Gk4kfU8d33B9x74FXCXxwP8Hs8sRYEGzqzjVSk58k0wLJzUcWW4IiO7KJEGkXgo4/b qb6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009830; x=1776614630; 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=ydItN197xR3dfX4ljekOGS/5kkStQ6bZhyq8u2u6ke0=; b=jYFiLUnJsS09iua9i1eq+g5NCMbtybH2YkCDbp95oSl5JNENqVu536bXWaLkDd2wGn knRK6lAOCmznddvAUocfvgeOk7F8YoHsN1wuUSvyW2PAHZj/nFmbmOwyYTzDe3Ud6+w8 lb+3yckDWjb0p/p9WY4EUIx0FOQTkHhkrmhvRi01dKgPFGmIhxnZ401y/lUPdHI3uakY bGMBTcC+Lqb/D1UpRpoUjtQ5n1s8+ahThy6+19/QweWqkFRq6RNW0VvAi1njFjLrKlgy TqZIaB+COrogvpkAb46rVl7oEsSMZWLtljzQqsBPsL3srnF4c3CBddwtC6mxC/WJ63iQ 0D0Q== X-Gm-Message-State: AOJu0Yy5MZeIMC/YTgAYcazTxikkxgS5SqL6sPSipCQy2oN9TztuXIed btzd6aRazl7Lnc2qA7EGRdBBnInIpmp3gutfE11p2D8y71tZ0PKeLDOD2eAf6c14l21/8xKTMdV WZjmKIi8= X-Gm-Gg: AeBDietbedDAn2mC9iQGfYn+n7D7c4CwbM1mRFi4gmaM+/CtL/XzyD1mDrpcDO2gHAk t+X5CBs9zgVnxK2c/ZPTkezZ/KIMPbUWDk7wHEHp4u6sXRb+IjuitYzjS0ipPVC6r1UJvOztI0X HXInWaGj3WPLLuu1jzCfJqCjPsae3CY1hY/vuKTqYyanXoKrlnulB65rQ2CLAKdqZYiyUFRcw/3 8V9T1PecV+SthYaZm+RWRPNWtd8JHJ0kxSWsAFDEKSTZvknqj5VKtBGZqusOuGIzHy8sa4zlNN3 K0c/YUj2Xs9te2ehLYwgO/0DnOJdXdHYabHYabyVuzepVArqrhl3DR9ZdAycRQmhjT0yXWQsV2H 1GUNP83CPURPiH3FGqyUEvI9tK0RVv+4A4pn0coe+EZB40a97nyI4lFwavxf7mefARyLRJqz8TR YKBQISMWz8hxtpLonHXjJX X-Received: by 2002:a05:6820:750d:b0:67c:27a7:8c4b with SMTP id 006d021491bc7-68be8bde8f8mr3440355eaf.54.1776009829908; Sun, 12 Apr 2026 09:03:49 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:36 -0600 Subject: [PATCH 13/17] 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: <20260412-ioctl-v1-13-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=924; i=imp@bsdimp.com; h=from:subject:message-id; bh=z3kSXcpgHWSbT8rO0VakkW+JCopL97J9zLmtTQWWN9s=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IguIj6e5nY7zrUm6SWZYSkTQ1OVs/H/mVFS FzmQplGZKaJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIAAKCRBsHNEofbAR ABcSEADgD1E1hgHs6QKKQE99A8KqhNDN+tZQ/apmQMiMegU6hilCf3MyqTxHuocD6/fTig8tqD0 n7sfDJfu/gl+muuVMOuQwnZeMCkO12KCyWNO4bb7zVXKNSNWFG/TANqbAoOhzrwESHrYSm+THjM VYdM2snkPwpGga0U7dEMHvTvgM9Q8jWUOn4z1gchr46tBheuoyxTbPx9JutcR/dibB/5IhsfC2Z cD3nA8Bq8kqzJTmm4CC3WcvGs84nTZnNZ6DVDLcRmEoqvV9OHTEBa8UJBd/Hnj/08ChfmE8C26p PMlgONKHHEbruzHIHi8byEkpNlBUfrF1r5zsMaaCRbduSxKXrVBuncM3PWBki0v+7EJlmSzTQFI lZhbqYysDwHOnz0u3jCt3Ay3eiVYKvX8lnrE9j4QRJG6OU2f73PRaWtf8xzZygFsj5w1HxOeXyE yIRk0ePDRG86NELoXP968YVj4qDe9DhBhPOhR610EKlOIaVCc5/IRHvq0x7WAahgDpriVIBb1qy af/k+uZ6oCa2VvlS8FChvvoUfPuCpRsuF3xqMgRoWCr9AdS0t6anH4eQAFMShUxeX06aHnicsGt 93iBDbWpMstesQvdiwUfGMFb12IbARLGW0lnkha7E2TXBgMi3nm8TVzEKmhLzks9zuKxQY8KIdr t0PLDwq8qqvyudQ== 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: 1776009939777158500 Add handler function for unsupported ioctl commands that returns TARGET_ENXIO. Signed-off-by: Stacey D. Son 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 049188e5e1..41f310c734 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -243,3 +243,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 20:56:21 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=1776009955; cv=none; d=zohomail.com; s=zohoarc; b=TVK/ZTR6PBhVbVe3lpgdB7HxbRVyZQ8L5heOhZ5U0+l8PhP/XVHvUj660tbdMc8yODyDHPEQ/VBHlkJwjH7dWq2ajOvrc5kSNtTOKClY88KMcXFnX0p/H9bIYjn0r2HDgcV2Ghjj5XlzeNxVfPE6/QnNpo8SHIrlqvN8kWmcy+g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009955; 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=Io57xFIzSdjFwvyqCc7fTyL68avblP79bNQWneISrX4=; b=QrnN6QLmQry3jnRhCVWZ3Fr2FChb2KwvX3F5Y+SBb/PO91NLAcMu7Lgs+5woEQ3CIJYkN/HwmCZFPFMrNned6fJwXN79Glwxvs9vwgjZ3+eXxV/jwIzt+podqe7p8Ib7E8j62gVftttP2g8fpQYJJ7duCMnsi+KDaQxNlp//U+Y= 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 1776009955542706.1159489734329; Sun, 12 Apr 2026 09:05:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxIH-0006XV-2M; Sun, 12 Apr 2026 12:04:17 -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 1wBxHz-0006Rr-SQ for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:03 -0400 Received: from mail-oa1-x2e.google.com ([2001:4860:4864:20::2e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHx-0004XQ-Hr for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:03:59 -0400 Received: by mail-oa1-x2e.google.com with SMTP id 586e51a60fabf-4232323a7daso1944765fac.1 for ; Sun, 12 Apr 2026 09:03:52 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009831; x=1776614631; 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=Io57xFIzSdjFwvyqCc7fTyL68avblP79bNQWneISrX4=; b=HO9PNJVXnPUzckYCX9g/rEKFB3zmWKYvgkV+/wfvd51vFSPQvNaippBQZmgivlPjLK WAeEEGWdgf8E9zy6PVN4h2wvFkEuI2qIVZrGWYHNyfdeUzOD9RHp3U/HLH78H44exXXo uJb5mw0E1RsDPlv6Am5bs597My9QXIccugcld2zOL260Z88LNU/DRdcncFPUweoCBfmn vK09ecd77eGQpYGck65iqLFBycbFSQnts4P+NfvB8yxgkz5EExlKzLv3tt1ePfcMq60K F/rATNfzCYcasiZtrIlnz24p1L+9KPwNcRHEfbFeibSA0GE1MbKOU6BPjlCbGvCa2ieg lwWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009831; x=1776614631; 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=Io57xFIzSdjFwvyqCc7fTyL68avblP79bNQWneISrX4=; b=DP1PO+FqKnwXL0bb9bGmdvbAYavfyERN3HoDxYTlyQu7e4XK9Cj9/HEiNpkQkIPDCV Ra6mWW7NUnciAOHHtVv19oKnqeq+zcH9GUwbYV6VgETNt+f8s7/h4td13O7G5VFMxHdI hoVYMmQU95lhYOSwrIY/5mDvyrzEJMiOHi2hf8VLrBo5zU+fbDheGtsE0aO74+AlxpHL ZwQdM53uwB5WUzv3hSmQhIdkSruZpw0W4qdb+/NpzpIchw3o6Ipp8qRNFEUZA1RSatOB l6jY06BZTZpjiCAZksKwSbDjdjvmf/xrgT2+wltpgDdYZFe2J5u4Uxy8/2RJMIYkKl8T mw9A== X-Gm-Message-State: AOJu0YyLfeRfcGdvJBMR9vL3KWSxIExOc65ZLM7ZtAh/rmDHLSk/rLfF 05YLZFeUvUn4osdXE8ZrCpOM3TQzikdwOLkwFE4QmSsi0B9CpePyJHKi6DDfKKb/kT4fbuHloUM /c4iwNA4= X-Gm-Gg: AeBDietKBSOyDgdcXUGRVhDH24ODtwlgPGD6ExIqBntaOmAdSDWlgEp8PeNR2Uz7A86 p/snbnTAkdtPgj/OSCJN8snSQPhYRxAQpu10D4WegTkvciAX3fMKUtlqtb0gYsSvWRJryltEy9X sYnqTNg1fuNeI7wbI71iX7Y40zSryC0se+OnEdq5umjRuEG48Fx68naJ6wjQsAbFdzc0rbKGZea hC24qtqjmHYWhbFlrskK9f0kdGzKIc5eBCWh6COudrMSt9bJppJBHt5VplXmJoBTRoz38gbXKkr ds0HMwCC1SY8vgACM/wWdBrAxcHWHY/qtc34d5ZEyT3Vljyu8BWtdcAv9w9zsom7Br8D1RDNXT1 h8MAQhe6Pf9H/RiGTpK16GJXX7rxl3/OZxbyECztt3pAj94z/CRsVL6UHJeGZdSegfZgl5r1lvH p5akKYDJ7IwA== X-Received: by 2002:a05:6871:3407:b0:417:1c55:151a with SMTP id 586e51a60fabf-423e112f407mr5428879fac.41.1776009831558; Sun, 12 Apr 2026 09:03:51 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:37 -0600 Subject: [PATCH 14/17] 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: <20260412-ioctl-v1-14-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1143; i=imp@bsdimp.com; h=from:subject:message-id; bh=gptYB3Ta+ssbSfFtE/iXz28A9edNGVvJaAH+IXwJ/LE=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IgnE8U07juUgtWJ3fcT7HqqL+8eYYRs0U/E cTtNkEBEwCJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIAAKCRBsHNEofbAR AGB+D/0fbcovsVhyrYefs4XTgEGYmqCV6Z0NBfKypwUy6apZArAxFjP2KUXgIxeG56+/xWGS7Zl t5m9HKHvnjTovLgW4Nq+GIO7fycxhArL//xx2aiQOYEooXSH6jEs3hNYmULCblXW7NFbYgXgh0z rX8QnH/WZUnL+LMW9cVurQ4wBPoXaGUM401qFw/xoGER287D75jQK+OdeX25GZFDKVevs8AnW6m p08u8Et15r26LaBd76npGs3WV8opH5kMIk+yuiwhr+LrGNOU4hiNmZWTW886qLMFqe3zvwlnOuN 1LBmGZddP7ATXayWdTcDdX+Z5p4cFl5KhLFKBLBniTaL6MMhhnMYf637H7g0c728XRsRPYyGm4L 7lUZfBKpiEmWQgPay1qJkZGPJSa8tEi/41TqwoAD0PJMItvfRIIZrKzSLB7rwdj2Ne+p3l2FOz+ LFks144ja6ZouZJ1GeonybzirtMMHeWxPtXTGxIeKwW3c5AMn00gdXR6CAJ1hITXtAWhXJbcrT1 5P0FXnrIXE80jlZUhEq1/khnwOWARpdJNurtSWhKoz/akFbFdoZroeEvrJm5is0rj6R25Z4X94p 3ZQY2qKo/UqAiXWaNIrb1NdSWQYLxi8riEQO4r7kH05QujH4UBkJyVKKkrpog1Vh0Fyqyg6M27D dSswtaD4dMYymwg== 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=2001:4860:4864:20::2e; envelope-from=imp@bsdimp.com; helo=mail-oa1-x2e.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: 1776009957540154100 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 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 41f310c734..2ff37a0817 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -251,3 +251,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 20:56:21 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=1776009899; cv=none; d=zohomail.com; s=zohoarc; b=FspuZ0qTNT/tuzfqFwKvBpKU3gdOS650NaZ8gHQHqX/6RT6aHOfgPOIDwGacsbDv8bK2RuFp9HQh8/uq0YUdXB868sepUARXUQFkEiLuXFhgyflOuqI29D0Fzi7HQSlhIpAr2v25BPsFa8FuMI9rz42BzqJdNycAu5YJfjChYQo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009899; 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=umfzvOji71umc53PSuHoNWCYUoaF8ndU8jIV+mTrGw0=; b=EAdeLcQnrPLwBlFpIirsPdSgnZsmRFGBbrtjYd/3fYScA2T+fupaoXKz9xS1254g4MR/XHOmKlDOkzbe8P06z/mi9Qgb8N+zvvz5MZQceXc35eCTzpVABSqupUyN3G8Wa51esW4eKVT0Y5ROHDRCZTIuXFgIuQXwFH/6EKtEHwI= 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 1776009899436206.49110482865194; Sun, 12 Apr 2026 09:04:59 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxIC-0006Ue-QO; Sun, 12 Apr 2026 12:04:12 -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 1wBxI0-0006Rv-Gr for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:04 -0400 Received: from mail-oa1-x36.google.com ([2001:4860:4864:20::36]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHx-0004Xb-LB for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:00 -0400 Received: by mail-oa1-x36.google.com with SMTP id 586e51a60fabf-40f1a1f77a6so2422949fac.2 for ; Sun, 12 Apr 2026 09:03:53 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009833; x=1776614633; 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=umfzvOji71umc53PSuHoNWCYUoaF8ndU8jIV+mTrGw0=; b=lub+rRRrHz0wc04WMtXrPNVRcbi72Dh+P5vZ7mHx+vt4K2JAE8CyhS49UnYIkhtO8m b7AdRGs3TxWxjN9InhGWzIGIWl56EDdOHWKC/wo8QJQdj18kzIRsM5y3UHRt7WwFM7kY mFNMRYnDaqP7ZnPy3OoJr9JIi+FmfVKY6B6z9zBmcTqNvczQVPLPb/BCGchtlbEzqKN2 t9VNcMBEaI/+qHXAzgHPtiOzSFqJooQjZxWjM7IJV8S40GlhGGLrPq9y2a9FzmKoluZR NRoAWrmF4QJmLRNjIrp3zBzevCEP5kDC0zZsuQfk1nRwHJKj3W5iyLnKh1NdltupwCmg m5gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009833; x=1776614633; 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=umfzvOji71umc53PSuHoNWCYUoaF8ndU8jIV+mTrGw0=; b=r2c/k2EWLzLzhmTD4a9V6RfMslRelWxR6z8JgRVQ5kFOQosqCJQP1eA2kqnfO372Qz /DJ8uq/BJyJ6UdhTD1jZoJHMEo2+bnKicSJXTqEs2ApMTkrJwqsSe/xXyabdwWaF37ha NVoVkX/3uFPhbSb8/sSdBrKKRYehbK52YnzrK7SSK2XeOyTjH9oaPmIUyURxcEl/FqLK PtyF5/Od+XPrZEeLUuaGjgUTtZSVwOTRD5udjd9MMISwZY2HfpriAf/CfuI7NJ51J3Xy h2LFWzauzDVE5Ed0s0P1nMmGgZygcBkQZvXUA3SxGOcwgXYjX9AaAjdWJg5px5ld4kUJ dmqw== X-Gm-Message-State: AOJu0YzyGI729FvMsdWqIdgJ1kNToUgN0GfGzrvVY6VEoKqNvvBuyse1 4w6Xy9i2HDv+IGTT0ngHc5n98YMtvwAhb0aIeWz3utxngtkBUq9Z1RQH689fWGcuyzJghAjyHPp mCssIXmA= X-Gm-Gg: AeBDievlWAiQhvPkex1P+rhN7T0YU/nUoxImq/vXLPxhancx/AdttrLuuUWPVE7y3Dp LtpswJ+/4xUyyM33PmcqQJHXaQB0yMxIdovwSIWTbwyekQYZgLakewfmr2bj4J7ZsGi4rknViEe N1Ksnb+LWzyeIgrcaAY04j19BcyM5aZuoEr4bLfXNqBWx0WjGZODII1KIksWuc97eoMzCAZC+mI WNJbS1tkBwsFR4ZqF5RWhyT+P8uL8u7jNw2A76ZtYbsPT2syKicNxD6EY/hlah7rP56YH20icig jg3I+IdObCprYa6IJvn985cZkr5hyUqeVzy6Y4Y8YlHVhVnuNmNnWEJV29gm4nboGOrwi1zJSxB ZPa1e7dUiCmV1wnYUkq6ZJrNWu/Vz/0f+79ZqCfwu6g/IDviCZDUWu8dGlcxd9NfGBMzcTMazHF L1BmF8rRGXLvC8ikpB1ig2 X-Received: by 2002:a05:6870:e131:b0:417:6402:395f with SMTP id 586e51a60fabf-423e0e18313mr5817252fac.13.1776009832751; Sun, 12 Apr 2026 09:03:52 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:38 -0600 Subject: [PATCH 15/17] 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: <20260412-ioctl-v1-15-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1912; i=imp@bsdimp.com; h=from:subject:message-id; bh=8zLJUOP9iTXAdsPkZjgut3g1hr2+Sb8fdxbKAXICtBw=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28Ihxa0JsbGwDGTQvzuaxXu9vvL48pgmfXB7D VDUsAZpTwiJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIQAKCRBsHNEofbAR AE0wD/9eCWRLn9h+D+WuazBggeU1wHs3n8YwK+DjbvsByfOUg685siLJDvsMvTZ9psgO30VKQ9I 1fDhbBuqdFgfeGZ/JAX0kFcLHCAy6u1ygjqU8o62hQCBA/Xtf1KxX6k2QXYFXWg7v7K1HVPFQuR NZCZzfCfyot4rj/h23uFjiuEzTiu4tmdoCCxZVs0c2Xw5++yLGt2dGtZHq/RJ/AJLYsZ8gHMBTH PM1HgADI6ShbvtpzHUE+yqVTBFarjx2h6jlwpQRB7y2iiA2Vbg6B+hUAL+iM5roEGgsX5N2kj25 snPhcNHsxxv4bB9qpLP0GQzcny9raA2yKo5v3nD84T/Q38QHQ0Xq+DPOSqw6qKBJFnJ4YppZAEc IYrystuEGWo5TiVwMoLx3ZwN0Jw6R6a+kFR5ECqVxi8maq+bbN+Mws9wD/KJuvDQ1umaDiIkFo6 iwCLGTZ7XRv+GkVTu61RfCt/qPgf8EU1b2TBNr93ilIFnrnQeDp6+v13cReJygZKmBMIPUKwdr0 iuEAbj9CdkynJV2zv6pUtaXAyr9SuKKTEkD0xiqFwTXBy0wd5AbYX7x28+3+MyvCkOIX8U+UYSp /EEGIyzJrSA8cGwMiACCXzTAVAIORlIIFGm5ULhh7KTqZ19p6xYhvi4sqn84LvF8r1x75Dt0awb zJ+U9EqMB2y6amA== 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=2001:4860:4864:20::36; envelope-from=imp@bsdimp.com; helo=mail-oa1-x36.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: 1776009902030158500 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 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 2ff37a0817..aa0153bbaa 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -262,3 +262,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), 0); + 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, 1); + + return ret; +} --=20 2.52.0 From nobody Sat May 30 20:56:21 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=1776009958; cv=none; d=zohomail.com; s=zohoarc; b=cmFD1v60VqE8Sa+RhBId1cDbRIE+dRsUbwilEQKMQVuIVmaZSyssEv0ZgUYDSmkvSKhxuSP+gAY0CIx4CGarGIj6WHY5F6T05m/4BIQuXzcWg3njzSGYrrckSqYfxgybLK8ayjinmGmCgoY84RqxjdGF6VG3lkbGuupPPiR1p+U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009958; 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=BIEcMXAa7oyuBcQ1J23D6kVpY/4XNgxRO50EvsP93+M=; b=EfZMNSBWyjRhsYSLokqmlelTDGxyU0t9TC0FTK/jTfMOWxtfSsyOFBmEBXUbvHBexXEHMvdAOa+YUxLVmI8Fke8kkgcieIUUXVvDcZrZ5hQNtT4yHaV9rR2pwPFL/ZBKkYtVuFMsbggaxDonw++yeg8HTxxO+EOVpr2zfDiPjq4= 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 1776009958663620.1720297227181; Sun, 12 Apr 2026 09:05:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxIH-0006Xc-As; Sun, 12 Apr 2026 12:04:17 -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 1wBxI1-0006Rx-6K for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:04 -0400 Received: from mail-oo1-xc33.google.com ([2607:f8b0:4864:20::c33]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHz-0004Xn-1Z for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:00 -0400 Received: by mail-oo1-xc33.google.com with SMTP id 006d021491bc7-67c250805ccso1183309eaf.1 for ; Sun, 12 Apr 2026 09:03:55 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009834; x=1776614634; 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=BIEcMXAa7oyuBcQ1J23D6kVpY/4XNgxRO50EvsP93+M=; b=RK8lJwj73nQsd2tuVFCLxAIEGBG8Eogg/wD/pjIbgbuxl6TfN46GNXdbtmXvx5y8m5 lxg5bSej+mituFeDIL5KtKRizdC4VQL79hkrOIBi37fCZ8bV4PVB33PV3ZV7Ve5OFDRc pKcwpxgReAJDv5U8+tM5t/j3Pk+ITaxeVz4/Z1b6YyOABXLr94CEBVI3iAUG8cYo3cSX tuXY1GLArp01jep436Bnx9GT3pwYeLiU7yBEcon/dl6FNgqWUMhjzsWxIlDvwltQQXkY coVZo+Vv5v2FZ5YP0rkyck4ylb2iUxxjXQz6vf0sEe7IbZpp+xi9xNLvFO6GEjvWbe+r pvWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009834; x=1776614634; 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=BIEcMXAa7oyuBcQ1J23D6kVpY/4XNgxRO50EvsP93+M=; b=lWfXTpDj/q6Kz1OZxgBniQwP/Ox59oedScTfPCcwQ77/YOwa1L3DTZtc17ZL0/y0vq Pyf196iCHIire7+XyoegoBDv4gd7SxUx5YGPrfm1R4fqfQejnhFbTV1zQgFW8N5y9pdG QN843b7utt81KGZJMF2f55UBkn7RE7idsgi0/0/KLF0pu0F+JOx1UhI2lyPGQGSAXxMP UZUnxI9zCnbCFOvzv3UlLuE+zLdbE4BJ2Kt/mecbnTYvN6QjwxKYMXru2/Pt03LJWNfJ QaoJZEvx7ZM8bSe7xVa/XMqeiKSmb0w/vjdA7pHSEBvKlELPuu3FxRF678U8Trl+DFP/ i70w== X-Gm-Message-State: AOJu0YxzEaISqcmR08bKIQUVFWkaOHlGymRAmDGX5CvF1Stiidh2ye46 ahHIgrLzqA/LTp6yeJF1H0fwmaguCCZRbglcxxfYethPIYk4D1aTN027uGUFZw/c0lO06qpzNke M41SrkyY= X-Gm-Gg: AeBDiesAhuxz8tpHV+2kyH8plgfkPkUJcHZJrGfw3ovzjx6nZcdploYcN99xk9/t4dF wuhYg350gWRaDChaOsIPlo43hzTbmQ0wYqxfiHSUS5/9JNIeCVFVnX33phomCcnQkQucEtaWK4O sv58wB7a8oWiPNiUo1sRMfqvG66/O1Htcu05hv/Y6NKFMZLrZ5Kuw98v+SAYxNRc3fV6TRMqCtl xnpJhUsSMQSvo/hvV/5rWxvscwXVJ2404HaSvBisOvl0oUiHWqZLBFbuAaIkuucC8Xe6vEH0xZE 7R5i6FEpKaZRIUACm8FvvaIjk8/1R7f3YPNUXsTeZwMBszvcmgf4zybShZbp0JVVMr2uYjauadG WpqSGa0960KjtoQ5UVopbGITQwmA6T8khfOb9uQzQjTv8sP23nkDv3fWlKNsPoSFvNltC+LMPU6 GUSgdxm9my5Q== X-Received: by 2002:a05:6820:2e83:b0:67f:c06c:a5f0 with SMTP id 006d021491bc7-68be7de42cdmr3645688eaf.35.1776009834336; Sun, 12 Apr 2026 09:03:54 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:39 -0600 Subject: [PATCH 16/17] 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: <20260412-ioctl-v1-16-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3864; i=imp@bsdimp.com; h=from:subject:message-id; bh=ocknaMBKcFWF+U0DHJKsIdFpogAJcD7isOX+33qY5G8=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IhHUkBoyDFzbO2lOco3V8FQv16713r/rc7J H9WPM0sOwqJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIQAKCRBsHNEofbAR ABygD/9wMlcksw+1NQMBkZiGmx49UoshOnoxqLoVi8U1UHrg6hX7sZyqVsdR0KusixoVCyJ1U/Z 7YSb8Pben0xF8spqMQLpa6FqlWeWEyc6++zJffO7Tji0P4qGbPHmdsrVil6BfltdCQvAa2J2jyF x2O7uX2iHcxqEvFQJ75sn3pu+9PlBYiJ/StGbRem7P9AOkNGaES460T/qNzHQCynb9xgREDwH8b EShVk2HgQ4H4kor4P2KN5oVWGz+ZkRHeP77hX98S/oyXliIXYrT0B4FZv9ZC6XEv3cU68YrNX1u qHgRSux86Dn6/ThV3OwoCqQKzZhFcPl9y8B+WcvEqUVMaIAG+FUy3mYMFSo4OQhatQq7caxzYiq 3UpXPHiPUVWfFgw1m42Qk9FbD1BcEP5Q40lN0nqAfopxD/JWKN4dEkBSdrzVT6JT8w0SQrsf2uv kSM6aswJGPYQs4u2mUkYwdTIbIVamf0Q+dMUPgEbDgVTzqV2AbuShpbPXf4io7vFuP1L3jgvxRI on/UPqUAAst16HL1NKy8E0vBAW5wPjuleUVuZxCxNC31mapUgRYvMz/Znn7ajyHeeI5zHl/8//p BRubmXGp0h6sPXCfmS76bfXTAiiNhzBhn8WEbb8knVIYKMTJbPU8mMACb3AgpqeRIzaWyGoLAfK HZzqJWiXSKOjbeg== 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::c33; envelope-from=imp@bsdimp.com; helo=mail-oo1-xc33.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: 1776009959818158500 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 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 aa0153bbaa..ae3ac7ae24 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -294,3 +294,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 20:56:21 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=1776009933; cv=none; d=zohomail.com; s=zohoarc; b=HeReUXln1y+4bB0J0SlbbEfG5wk+hIM02JxlnOBXuT0pPH1JpYLgN70t1FRZzSPUPui+YgYxjR0VRDwIAUTyoURvyrW7cm/CCV67HrHpqcZg4dzlqI87IkcFiZsi4s5cxDjsaVZqDMC8edLUn5mROH11vxASH8CixjZNgXZh1hE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1776009933; 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=o1e+ElYrsw4Uwy1NUtuxiSSVkG57IJLzK/avf8LppdA=; b=eV8wGg+7+z2x7kMD41OATf1h+19pB1adWd33W3NvXS6f2dT33r0RwsdDtNJgpWWHvDRsXFqzjzdPUIArbv/Bua+yddTKUbLcXTjzdXc/nb5y1nb7Vlm2q3+izEFSpTgMztb6ibVcUlBQcuXInO4g/lI1ICXmHMqduRGJYT7UCYY= 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 1776009933364290.5910411002741; Sun, 12 Apr 2026 09:05:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wBxII-0006Ya-ES; Sun, 12 Apr 2026 12:04:18 -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 1wBxI0-0006Ru-GB for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:04 -0400 Received: from mail-oa1-x33.google.com ([2001:4860:4864:20::33]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wBxHx-0004Xx-K4 for qemu-devel@nongnu.org; Sun, 12 Apr 2026 12:04:00 -0400 Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-4138136f02eso2316920fac.2 for ; Sun, 12 Apr 2026 09:03:56 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-423ddbee0fesm6457006fac.17.2026.04.12.09.03.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Apr 2026 09:03:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1776009835; x=1776614635; 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=o1e+ElYrsw4Uwy1NUtuxiSSVkG57IJLzK/avf8LppdA=; b=Ra4TITOjrVmFKhw/EuZBlz2BJE/iEBBRuVb3DOeIbDUqPGdGXH021/pvTQe4Wk+gF+ T+G8+qd/e67SfXusvKfVqiUMaX5q7sYujPbYbK+buEbxkBXJdQFo/zbrRM2NIXu7ZnAO A1FuveJC5+coHMnxzhmzVZfL6rK3tIbfOa4oswqoChdkwy/Q4O4wqoctTURYlsitaLA3 +WySXE4d2axCAKo5XNLJ1e0sj7uy5vSNQ6lORDgV/TtzNtCnEkq+xiMB9mFpU/8+ECpk GU2mtkL3MPqaTfhRVgegiOx42oJzpor88nzzkE3ht7r4J/hn6NS7816nelJq/M/yP2Vb nFJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776009835; x=1776614635; 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=o1e+ElYrsw4Uwy1NUtuxiSSVkG57IJLzK/avf8LppdA=; b=XhK4hNijQpzlE+jY//2xBNSdQzce/yeg6TnYqI9YslXHt2ZSXDuLbe6RrIobqpAaGE jWudba/8SDQFVOgcW5lVyHIeR4SdySbKXJljVdCGbUaeCYo/Ckq2uRIXmwF6IzUFUJf4 8zZT9jQEFutXHwadlXMYkcC+RMoVpiJ59tBw2YvFZEMED3m9OZeBx87AeUDrC14hdDZr Fldxb8a2LOR8ohTxeqzNT8kdk7gww6QnlL2ncrl5YHWelAzAN1Yk9ogR+/62BqoMhrFv vCrOWs4p71Gh2vODvWq42zazXfXMCg6AuvrW0dt3mbiTat1Drgk0a/FTWFUtzYxctUBk //NA== X-Gm-Message-State: AOJu0YzdSrnZREu/Yjvilw/2RdEPN2W8m4Z0DxuhHmmRIqY7V/oYVp4X 42sEcQTV3SO9woADPFSN8fRB6UMJPjtk7/1BTU6ra1fwc0F8ESMJMxnE8PH3PO6oRxjTe3TpX8o ULLCacaY= X-Gm-Gg: AeBDievC94EEgbLsjCCbNR625OddhNKcym8A5FiCfcWcaxdwbueVyzenCFKzP+NUaTi s+tsAelMNayv/qQX45gXPEPYnIeys21EfmhPvUzoqhQN46cCGOADRzHaa8YJ4sC+S0XypkbkbH6 o9m3Po417ouCwUcDkWRSELhj3OvgJkC55WYK40GFQ1Ht2+XCKHBrAgQivj0ygSw4wa+TIIqXVLm 1gxV+vkZlVgy/lFhXyTvil0I3Zx5PFESjnZ6Mq8mZVcDvUOceY5wL/L7QX62qGc9xCEBe9JJEJj 5lpPtQMmHK+12vDHhgi5nthRQzobVXABMLlshIS2SJ20JRyjRfocj7cQ2O1lMKthi6SwJYP/tkz 3M0PknCEFmERENe9TrTQkBHWX1S/URy/36gGSXJZMZzLmVnHIv9ZqHbSkZQhc47wZMpo3ffl4c9 rRLJkH7jnGfA== X-Received: by 2002:a05:6870:3231:b0:423:9a50:438c with SMTP id 586e51a60fabf-423e0dcd292mr5843205fac.1.1776009835371; Sun, 12 Apr 2026 09:03:55 -0700 (PDT) From: Warner Losh Date: Sun, 12 Apr 2026 10:02:40 -0600 Subject: [PATCH 17/17] 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: <20260412-ioctl-v1-17-1d998a460560@bsdimp.com> References: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> In-Reply-To: <20260412-ioctl-v1-0-1d998a460560@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1960; i=imp@bsdimp.com; h=from:subject:message-id; bh=27UGPnZgjmD1mPVP14mIEYcoboWhKhyrLBLgJZ9KMrg=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp28IhaIZl1DLf4sWRc/Fz+nJssuEegRJau4Obx tgQTCw2/XKJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCadvCIQAKCRBsHNEofbAR AHiCEACNMZ2W2HfLDsm/OMInvqijtr33iUi0tHNu3+B7An+5z/xItLFNmI0pAuEKVleubfqnOfC LLCCtyPwyoNI8b91Hlg5fVO94UB8vN/7qGtVdf6yF+53Q5M/f+N3tgXJ+ienxfoFEJd3Dy56KqC FApjLRRiXQkTp3RvBfs7yt7B+KNaLlZj0VW4lGOJLxGodt87zu5REHELLhcrGCMQM8fmimD0nxP f+q5VTbKb/huidjeQMX1fXMGAapWBdRLvRAoZBjjcIJTM4TGbmkcCekioQeEDLgNeV3XyJHHNy+ co7YZe0ZnXElxYKY591F5y112NtVYy36VSYNA1WAv3+NOyOf9RuIMcc4sl1yVWq3rmYG7l1qrtK 8TjORRVoKawUcLQW4W3EGH/xHfWnZrvm7cHOwFoeDQvTJNJu+2E3crp6dgYcQxmqlrLgtvTQk3x z1jyiZkY/Vv1PEf5z2T0pskLrMT1agfz2D9FJC95kTylaeWTt4Pw/QLAkadU1uZtQjmI8lyHoaV X5dW+kGwRmotCinvEoSpPSYYVunIw3zm5Mt369iVaq4stJAHvf4pxO5OQaNDQRBHqQDlExbAHAV TbrJfS2DGzNyR6onrRQHQ9BOzobLJtsvL+zELx77+CpLV3mqNVVg6Wv4XuzSiwHbqHGizQorRSY FwxQ5L5VoStywHQ== 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=2001:4860:4864:20::33; envelope-from=imp@bsdimp.com; helo=mail-oa1-x33.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: 1776009935294154100 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 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 ae3ac7ae24..0b6a0943a2 100644 --- a/bsd-user/bsd-ioctl.c +++ b/bsd-user/bsd-ioctl.c @@ -394,3 +394,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