From nobody Sat May 30 19:21:11 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=1777474027; cv=none; d=zohomail.com; s=zohoarc; b=HPiGxpWTCELaM4foZuxWbPP/t6CnYHQOEmZminlvJRQ6rcWXjtuiBijaGn+qFb7zwfZ3Nto5SPsEadZsHfJN3IzAxXHGlKSRS2yf3EXGUVjCOCHGvJbqZSg6Yc9nTiJM0NGpwudjCK91VwNtjumvX2SGCM57Shd9zR0uWw/zf20= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474027; 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=Lzi0fGUnYNoL/ns1mAVn24tzyog1o2/a7ELf6ijFmvW2Ank3PS6hPUZ7rXVPRFlJJQbJjKo+SGfHRrHdU/T3iPl3FeOTc4vypB/3TbBnCOsXLISrb7lu8m4/zoetzqiK7z9Bxtm07wuEBvWggdUm+3qlHVVvlF9etXbNRebEOUg= 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 177747402756388.43058957795779; Wed, 29 Apr 2026 07:47:07 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6Bk-0004Ru-G4; Wed, 29 Apr 2026 10:46:56 -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 1wI6Bj-0004Rj-1U for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:46:55 -0400 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6Bf-0004XR-Nt for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:46:54 -0400 Received: by mail-ot1-x32a.google.com with SMTP id 46e09a7af769-7dbccf6a23dso9848362a34.2 for ; Wed, 29 Apr 2026 07:46:51 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.46.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:46:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474010; x=1778078810; 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=HDxZg6Gc1qWtXu0MJe5p1YjTwY4/KigSfOaaWufXqanPMWpORxMvcV9JPt2uEWv/mB pm+b6uZzklCdK/8oJHaDSb5YKSfVkxrlTARU9sLnqdTrIP3Fg8p0tvtyG39CPU4+iCdh 8RqI+XAuD49bz7z+K3L4mKrStIfNcX9XiFg9/PFs1bFAffUJgsKEKBTBSaoNTOAUYe+7 kTFikDaaaHKXHdhpTJW3Rt6bKwWGXx9P2uATzYDT8B7m91PU/6B7TFXasSf2fnM7aVVY ZJ8GHVJm+zLutdzDrjTSMUUTevzQYGaP9yhxeT9Xh2G3IlzIUBERZ0Kb1Jz9N4o2b5eO ktMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474010; x=1778078810; 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=F950K3328ChYu9dnphya6lNhOxLvbao/Z6Pp4zdb9khjsWoPTFqWt5YeX+a7wGvT7P /j2M1gQtp5F2jN6J34875TxNcxYyPwWmwIdxG6p39ONwuTpbdu3ItA8lKF2WJixxNSTY 8aG9HYONmiWt57qooTijTdeLYk1Q6zbKdQvFRq8avTkRKmmCpXxcc3AzQ1IpMOHMNkuj M6/sJ5+gbFvBsVpCRqi98uX1ZvFz9c/pcZ+n4wBy8MEhr+5fsuwyDeHDNaEkMMn0Z5iV k6uQjIhuapcSG28xzkjeEOX4eOHtJgEB9Hzbfm4MlBiZWWpCzsY1zJnjg9OBTNdV7EmC HiEw== X-Gm-Message-State: AOJu0Yz+65TWzIrEaj784NyE85hPp1PKipFJnIg8zqa2XAvmLifeMIsx tXPq+uRDDsIdAtrpY8dpl+B5pzTDD3tMyJp4SK941zWrDfNsg1F3nVCKgrhd5Fh0Tjg= X-Gm-Gg: AeBDieuQSQUJ1lCK4ElonQDsYXrxINHz9g1NdRO097zOhNhReI9wWU/smTmjUpHW39w hYTKhfEfFirGh2ddwAMth67qSCrJZAblNT/WTbGc7xk6d5tFDOgPR2PRCqIUE011bZUptqxWPnr 4BZlqOxIIhGxP5mjtFnIMpl6ajC+4ndOYSQjXXBaaxDb2IQrR29UuM9l0c8vWcMmVrUkCtuNZeW uGSs9MNUDtimxztDWf5BfO4WyWuwC8sDHYTCBO+GsBMiliRbBLonrd68UfFjQLgv/m+sCd7xmbM KDGiY6A5FLRuQh0fxnrzNJOAapO1IETE4yFnw4q+N9gKDFGCaDLEh9rqyqZMAGWWdDYrxCw58hf 3kUvPSx9Nl/GMyildVUnmYyYH8gMX46MeS+VSRntFTMuWl1OesfHBM5LKh5zDAMzLmzf5sWy971 5Jym0FqL2uEKpvn4P8McA4 X-Received: by 2002:a05:6820:2908:b0:694:99e1:62fc with SMTP id 006d021491bc7-6965cb5bffemr3895684eaf.41.1777474010331; Wed, 29 Apr 2026 07:46:50 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:07 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-1-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=12750; i=imp@bsdimp.com; h=from:subject:message-id; bh=9PqYfDLp+JL+z2iqielsRW/geVLSgR0zAZWSVrUXOvk=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl8pb0w04nIFfYofVf7kNUw0Z7WzlM2DLyoK QQEmpRZ2CiJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfAAKCRBsHNEofbAR AAxPEACcmmOU7WMLxt4DwrU9dtayDrkFAS1R+IRKWC5O8IEScc93vWTK7+8C+SD+jn51MyyojK2 qVM90RNTZFB2t2tmO6F+lIq3vH+0JjXGiNud4+ASUut75w4z6zbYpVfPJGV0FIstH/nBGYkcBOh fS+QlEhf+gPI1utJ3jiVcsZJzWIYfqCIBAhHt0Ru0erbBsR5NG4aW3d9M0Kgow5JsDJ3ZbmtqfU oSO9jjzW1JhjNaeW+TskhXDVJ5XVgcsrtYs+fQKuf/AYWagLgDKmf/y4JfKgRQ4ZxI7BsI62Bo8 pxtdYF8jPtvGBiwmdcbyJ0y6S4avOL/0UXrojiUYEy+yZ1oMoWyWprvBn9+cfJqUa7nIOW0wqH9 d42ST/MKLgcwQv784yuDtm8JeMiOauacLT0biBuduW0zPBTGKqYirIOqwL7F7N2Vuma/coWkUUR KWEatA6brSh/ysU373IV1Hohymn8ofB0frHWJ5xwMqXDydpraBbqSZDBqNr+mGkIFeMBjcYhxFD uUkHzSiKOONtFmSOp9oSbTaIPCABeFgPa3I4R2UQs0zI1AmNsBmJCvTeQqXVx/AhnfnDjYx4Ju3 JjE2sIMsO8Az/zkOdtFqxiLMuZsY/dkciwD0HlqOW/2G1YhC2herjlnod6wBRLH+790lMdSzwPw aMLml7uObGLafDw== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32a; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32a.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777474028794158500 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474062; cv=none; d=zohomail.com; s=zohoarc; b=YLZ7g8ZBUj0J7y8QwxEJC2MXwszQSBYd/5QcODv+ha1qo4TvhtwaMt18GPiZ/ALaDkuHLOrsveCfpmCEgB9kr2K/E47pC8tjrxW5ZNOBSz03gXOsNu4yIg7aOgEai2OAhaFkmekPklhtblTFrnHgiBVX1lnPO4bpwhN0mA2dxA0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474062; 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=dcmHEavMBurmRVIKeipmROa8kROFbhS9oy6h4qfrVA3SPWcPRuN+lyah48Q+kNOOuXjkUnlnIqePy91V5dgmZSQjGttqXAyCxLDz1kb7mgOlsZM4Oz4Bq0pDN+TYPjHPbqMAgenBZhcRucim2nJnzmpUCeL6UxHpNVPNNHomhZI= 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 1777474062010118.93718965233495; Wed, 29 Apr 2026 07:47:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6Bk-0004S2-P5; Wed, 29 Apr 2026 10:46:56 -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 1wI6Bi-0004RM-HU for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:46:54 -0400 Received: from mail-oo1-xc32.google.com ([2607:f8b0:4864:20::c32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6Bg-0004XZ-O5 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:46:54 -0400 Received: by mail-oo1-xc32.google.com with SMTP id 006d021491bc7-6948d7ccfbbso3973574eaf.1 for ; Wed, 29 Apr 2026 07:46:52 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.46.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:46:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474011; x=1778078811; 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=SBCBQIlyRlDhE86INXN4VoYGDTZtT5NoLeGUiXDu1hJewRlksXqwmVVfxflhMxlOsy 3MCsiKetjme0EmvLQDyJ5ZSY3YuwdQy6+k0skECyecEXBOZYSWerYfIkFwldS9+WwG0+ 6Yf4JtTPpfuEbkj2eEcX2zcB3K93zIkazIHdVz3ndNhCEYzQ8L0eQ8v56H4REpEH/xnT yWujJI3+2zvy5QPT/z3sikBVt6TRgwkT33GFrXMShqMyIrr7Eop/U3nP/INau/fehEou zyX1ierGKvlhvYictB6Y9t4ba7nUGCx9sGRz8/pOvcCUFjiyCyV2Khzy7oc6w9dD8gel aIoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474011; x=1778078811; 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=Q7/eDNw+gRkzYNTS5VGjdV51zGO44pQFrv/qgVzqnvrseKMJn8IqlXMLlsbOHppvUO NnHL3+jdSbAksor1juyAERF8BLj92+HcBDdGleEw4xbs1pjf7q3WOAPk5f9EpCioBvrz 1TLHoDTOgLmA91l5RhT4tgfm5wwZJyzRAVwaxULzKIARMBHrfgzeLsB/FG2kkEL9A/zI b9yyX1P9ul0IZaRQ3e9+i3cEsUsDZOXLuidiaTMABFtrYB02spyyOwVKP5uhVR58Bdlv fdWgpXaZvD5Ct9Kvf7fJzYopEmPRQDseN9tOiMdCPdbAbrhDy9vv+ZCHWpsBKc1Th5zh QF1g== X-Gm-Message-State: AOJu0YymWnkvBcaP7mhtdOlc3zGjpt2imzm/98b2rUYRu/yi2xjCP1Qp t8QGjLTelwGRC57lFfpM4uXauBJEcLnc/BA/tri2O/B8ZPWR+v4xF/ePKX/KmSgXdfQ= X-Gm-Gg: AeBDieuQp2GsYFcavVrUJSlVuAGpzMWPp3r1FOwJYeiWsfpvbtmqaZZA1/Eckekxq9R IIm9b1C0iVNhHkCUkU/90dLbZvQSlGG4+K79ZmOZjbHuvzpdktBNc0Rl99jgw8ikDPVHU19Xu0B 5+hlFGQCmCWUg2bA1crsAOJ9bp9EvozE5fXFeWVgUBLJ3hYE9xuXn11BCtzQCtU7n6pM36pu5vi 6/BYP/Z/mGaEihQltFY9fVlPs1JLkl1cakQMOGxta968oRAkYD2uw9pxVqC+sqXbcrp6XMgSdjI HW+QfVTkwm8IjmKdXVMZArO33OhCDGGYqDnM7IRMJiZhvtPz8Saz9Q7IUUe5YeXcpeVtR8wHC7C BHWOQ2f7n26g68j/ey5jGCXF7UGCld+GvuFcdjDqWDh9R42WWD4Wio+PUBcFNHGXrHGcxbNxxvc 0h7xw1CrPNOU85Vqbi+7ag X-Received: by 2002:a05:6820:2916:b0:67e:21c9:ab55 with SMTP id 006d021491bc7-6965ca67f02mr3987868eaf.3.1777474011471; Wed, 29 Apr 2026 07:46:51 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:08 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-2-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1819; i=imp@bsdimp.com; h=from:subject:message-id; bh=EbvF/Y9N6ysKAY6EEB2dujgG2t2X2bzpyoB14Ggqvkg=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl8CtnogfFwFkClwNKPs1v8dheSvwwlCXoEn MaA+5pHeHGJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfAAKCRBsHNEofbAR AINEEACG9CB18khRE/WWENqq7O5AXHI9cfzae1FwUzE+GbGu7UJVlKfYYaiuJgPDeEpN8wVXcqK AOQChJnHonJWBEOPsjCS8D5kVQD0g4A+3rzHsNa5n4GGm6Pe0oWk/syHN3mhMuvFmG6mPUNtP47 Sl9tHcwv3JzGx1uhX+iwoWhdG74DjopEQUS5BJzXCItXUz8gzUq23taKhOaYXxFs+kZei9wNBb7 SA/UkA7VujxRBr2T2NEsc/A30nSuzXLw98TQ46ytHaseD8AWEW+HzxW76fQEYwp//IscxF17J/j zP2h4lUtuc/QKWCyqsQqKxZ0cM9hgXsaHmCCyuKTvNUGqXunkSf0OxrjsYrmjv9oRl2CBWOpqjn /dRBf/UpZtZzhpuoEud7aPDN0b17LHbyHchuOkk4UPfqps4jPIZo+IU8z7qoN/BErdt1bwhG8v6 dSaJGOhIV+iEFM+2VSxZFM7r/Q2xsKFx6AyHb+ZW7T0vZva3Kkj3cGMfujRbp51ki9Ff60sDU7w YU3q7sXLuSrMU1Yp/oXRLl4Op9KlYnQ0W30vOmnjJocdg9UoR0uEP4PsxpEpJJpQ2Ja+a0oO2pj 3TaaA8Wz1P/6UgbJJq4GsxfF026Jj6IYUR+bBrSMj1LL3ZzhC2jDfwnAZetjpZ81ePf8pwqbGfI 7Ht1QiFL/DDeycA== 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::c32; envelope-from=imp@bsdimp.com; helo=mail-oo1-xc32.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: 1777474063526154100 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474097; cv=none; d=zohomail.com; s=zohoarc; b=m3IFzfMpF32EVapXlHQ7/PZt37kiYzGs86Cr1m9jJfR+mavOPgUeNurrtgR+/JL4F4DgNGvLWVXtHn+6pq/c2NYBQ3xtZSxJDzvJBMUoYxkrf14v+WDjfsiZK55mxYIsvHu3e8TvnRZXEno//0dH1jn6TuYRkfaSFH2bd/N7QDM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474097; 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=dYAI6LndC7iUxMQFTPzRg71Ym7yN4m3DxNR4npKQm84ComKgmRZqLjOYVJ2+ZSogkmZCc/X+6JlzDkmlPifZhHXgAEyQFdTfgCLos/U4fdN+4uC7jZW92JPklehET/FJNyKnD5ih70mKhZSrxtvCg4jRjY5HrrlHtb8jGAfI3Ow= 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 1777474097958434.28420153764364; Wed, 29 Apr 2026 07:48:17 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6Bm-0004SV-BG; Wed, 29 Apr 2026 10:46:58 -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 1wI6Bk-0004Rt-90 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:46:56 -0400 Received: from mail-oo1-xc35.google.com ([2607:f8b0:4864:20::c35]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6Bh-0004Xo-N4 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:46:56 -0400 Received: by mail-oo1-xc35.google.com with SMTP id 006d021491bc7-6966f99716fso259043eaf.0 for ; Wed, 29 Apr 2026 07:46:53 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.46.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:46:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474012; x=1778078812; 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=yaTOsuJP0UjzsM5twTsYHaFB5soSA0GSEc9mVronp/21iJ8lbBX2CNGspwzeYjO14r k91uyjsWQVyrZhw/4ZffyTxm627PjxKz6xa5JNH+YcC5afa66vIy4qMcE9bhpEzvGFyf rN2KwzLlOuQiCoO+opnGHUqCheYQObUIIpgTZbOThUrXaGY8gqRuIPW1G+RtNeFr1apI MQfv00GJG2R6BHVMXZydPkcli4sK6/PiSiNP7ocDnzIGZYKwetusAHoPBfLkKyTp5XWX wzaoCW2pGP6mtYAtevw42YY8xwa9VYrDDusoAoXRzlDL1C0MW/TkFbiiEqwLYuCjChG+ CfcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474012; x=1778078812; 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=KetBIPlYqU8sNd+ALzrSDmyE9q3IusoKe4c1R1pHJTZhn2pMaYiGRLsS7DOafq+aWD ryiT4T+OkZZY2sIKxM1h+5jncOvYKQyCtJmeY6OsQVxJdNCdQVFZ1QBJYrR3rBFNu5a7 x884FSubE4kp7cErAvr6B4jTOG0kbHKuEonnhN2MUU3EZeqZcE7pIgIgAaDLut2KQ1go a/KUwN+2LWnH1aw1McSSOs0F/cU5cCmu1ioNLOD91+PwolYPDjFUAkcjpD4Xo/NSrD9M h7vupiOopo8xRHjuX0GuwHxrM/NJ0XRWFv4gug7UGvi3bWGYoAsMS8E5xLEEvcIKDhZJ CXyg== X-Gm-Message-State: AOJu0YyXyhxc1WSLGvIBQWzzoiPj65kDobak1f5fCpwgF2u2Miu/nELZ h/e7SOl9/PK0dU41wOpmDc7AjG/XhOEDxYsznSAO+svw/TJeSOnEXepM4MSQ2wzmrJ4= X-Gm-Gg: AeBDiesEQzgnLF+AnVFcW/zwkUA+HrZ1rh8wjHYqEClhNbsCn4lP1rC911RdhCMuav8 yuDgwFVBdoyti75eZ1zeimmb0EZ6JvxrX8wg6XN9zvwdKR7QvueVy9gEc0mHXmX9BUBXeHwz8y0 y3igO9aj+5fqXRsmuPmpyKr1tCikDIdLT4/IkoQgfZSubCidiSooUHMUgWuIM/Y/8jG1V40zM8g eNHLQ+3bGFte/760RLd9xbn3AlUEc2quQt0TYPHD0NwDK02t8mYHwuTo6pfSN9L6nMI+sAph/NG 81WkD82Ne7H6Q9UmaDHzo3KoZPtNYJCKzkKPYR7qmT5YoOfGs+qiUngMNtJXiVtCWSvAaYs7a6N V2LBGHJ0rLqqN0jYxvnNxFcnvMlLyu+R1OA+M+tEeejOkLHibq0aa3shnxgd6Sou31uJaYwhuZQ u7YQPDJ3rSoFpYMfxKA4Cj X-Received: by 2002:a05:6820:1997:b0:696:14c0:3f9f with SMTP id 006d021491bc7-6965ca3b5d4mr3753761eaf.11.1777474012423; Wed, 29 Apr 2026 07:46:52 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:09 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-3-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=9965; i=imp@bsdimp.com; h=from:subject:message-id; bh=E5TcCxhlYakiFKXgpDFbtw1vmY+ujW4UaM+sGPBsaMY=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl82wKrDBT/ncm4SJtUTLBowZCKQNDoQ9FK2 sqEv4j3MVuJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfAAKCRBsHNEofbAR AEdID/9UAQYvEyMO2dqA7PqYWOudsJBJuSCJq6sO7a84+p3xbqf9+/ZoYNsRtWJJ5e/nI3jFcDW LzvBr1MnvpMCU2nOpHdI1PPmvPz/U+VaINJ2yCXYHllrwiK8PhzpBKA6HMS9ybelV7YtDaS/NKo NSsdf3yw6RCfxKWiWxFFOH/gnor0aCzMvobcyRrGGdrRxbD7OP3PJebIBaJTsxvcos8Kw1MULMv 0CWJ/8OKsuVkNxSi0HlI3w54kAeSNQz3DnzfyjfjLSRt9aqdQUdqzJ3FectbrUWVnNp6EW9DHS7 jOffGJD4pZXzAKTm94V47h/Xkzg/NaqyOuyd28ZvwAl2BjsLINot56MinDfjvEPXrb9wmS2GXcR gAvBKbn8uV00Hj+JjLaot/Zf4Y3x43GtJed8ohUkvBWLF53eGYCIo5OJlE374ofYqsNNQlaO76M cy3dEIsVhAyjyHqnx3aouOswLLcb+mIAwC61CQiVSEpAF+zCfuOcyjhlpjkomCfGVKJ3jXLcyaT OaOFcUjxRB9j3R9HehtY/bNyfPJdV6HR5CK4/aZKu8bqnLhoC5BO33Uyv7gR0RRuxdzAOvAmhLb 3cfuVmuBBhQWa6QgFe1kXGe6CaPfnNCxP3tFfYQGAuVFs1ri75ReDpHTlYhJPq/JHqzf0S9WOJk GL7K3dKcNPrpdjA== 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::c35; envelope-from=imp@bsdimp.com; helo=mail-oo1-xc35.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: 1777474100225154100 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474114; cv=none; d=zohomail.com; s=zohoarc; b=JNTGVRK4g9un3jQJG8T8tT2cOQrwNZVQ9zNqwxlHbdMjbYW6mTmwOxeYngIjlrXvsNV+u8WpAPRD6sPb0P52roHVhCnPgqkwz7gyKta+KGiU4s7sYLG1Jjabf21s9ITraqJCdaLOb4g/unj2WQH/xe0Of63aoILTPUIIBRgc+1Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474114; 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=dZuGadGZttV6WGqT0DevHdTQNUxHYk1X0sf3hSVhuvItsO5I/7/WkBjKBFZ80Xw71Fq7MKC2BbMWfjll+WJGKwvKdnkBnsjv2pKMzn8mGoZ9N92eUabNauPRtKpMsZDGA2wbPvavcrtJZtAP8D/xl2t4bRXygFbQR9j6YMrLdtw= 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 1777474114574699.3426858216627; Wed, 29 Apr 2026 07:48:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6Bm-0004Sk-Q3; Wed, 29 Apr 2026 10:46:58 -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 1wI6Bk-0004S3-OX for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:46:56 -0400 Received: from mail-oo1-xc35.google.com ([2607:f8b0:4864:20::c35]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6Bj-0004Y9-3B for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:46:56 -0400 Received: by mail-oo1-xc35.google.com with SMTP id 006d021491bc7-6949f3eeaf6so434579eaf.0 for ; Wed, 29 Apr 2026 07:46:54 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.46.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:46:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474014; x=1778078814; 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=u7WDJEIJZGiHzyxlNXV7eJ5wjf/lH3nUTZVTSeIJYKoUMSyvrTCO8S1xTzCLPHL+TH 2OyiS3IBYMKkNf/PsmPmhIU7uqPxSwtFOimQvoKuYIEdRR5YpKGESYL7R57UuWh66AQb pNxUVPj+sRLJNTbhQUTPa1TtD6P7dtipT7thr/CUVQnhqPBMtAkx325Se0T2hxSHvFsh jemvn5qymy4Mw7dRjP8ttRjQy8fSV587wgGJHTCqs9N1mtMEzINDozkodYMRKKLjDK0i p0Mmm91yMWhdOp/tES1tFfFBl4B07FA9ZE3EEDZ/4aDeOV2bgS3iwGt6OXmrvvBkwI13 FD8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474014; x=1778078814; 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=sRzrCA7Eu4kRB8GhZZaxw0Hm0xi0hvhoWtQmaZDL5Ve3tIa8hh0P8cETIWxNs/9ezz d5/ql++l1kaXouNJILNOqeQ66RaxcWpcYKLl4hVCq9wb2zUCpDYaOiguFdQrzyGq2Jpc dB2Nb/FpAjFnVYPeJfgNh2P4+/Qb+bqS6Sr9R1lHN6YI3S6qSTBRJPp7bAh13Qmv+kTQ 7OFHr4vS/5zVCQSp+agCRcRseZK65UuSoyJVDTJan14G1SGBR0e2Q2gWWGcDz+zbptx4 JH9ZKqL/gpi5Cdi0oiQErzer/KTv9oqvPrjzCJY4RVXTZxJ6AIBK4bWSl/Z6lZlq75n2 9VsQ== X-Gm-Message-State: AOJu0YzHKFllwi/G0UlXXG6noPP65ZnqSXvh3lSSJSnM4hNJBy4BZyfj Wl3F8XJAU0UyBWYb51uw9V3OxIJf02PRWna/SlCQZZqS0wh6eYjp9mUxtkJ47ceR++g= X-Gm-Gg: AeBDievrsM8OHQYDcIS0iBEaBIy2Gds4+u6v+k74bNdvU+Fr5jbe/1oOhmUb7fUsfAQ GjTndGaoeBBFnD9Dr3HRW2E7pOVT+3hFG7aX6OJ9/KMCIZLFOHMsVL23pq/nPFcEmyCWMle8xea bHDJkapwLj/KGBaQLvWQJhHJIztHEXCqnE52aE6r/S8EeyIpbHwok/Qs5q+2tNFeXSICmV4va4O Ffx7gOzuPkxilsM0mj9fuNR3osZcDtye7SVDzZgh4LYsVXCcIUVFg/niUKCHLmVSAgsF+VdL//1 Ydtk4rISw0JUAiCmRFA0DA/dJQPfIs4CvTkKtbU93xJTjQGcUeJvZwNjAjMxMKVgin3iA6nHbIq 7Dpz91kBGp5wyfZMNrU1Q/sW12FNf/L5WVfSat4hftwK4iNpA2QvOrlh1JXIyXpSxNaVYO+T3ly us6KPhIwneTjGS3xCePKl9 X-Received: by 2002:a05:6820:60c:b0:689:dc9a:3a79 with SMTP id 006d021491bc7-69669a3c85amr1258166eaf.27.1777474014021; Wed, 29 Apr 2026 07:46:54 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:10 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-4-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2915; i=imp@bsdimp.com; h=from:subject:message-id; bh=HQVEx98MB+ubgsNcOdd8V62hijQU2ZsZtPK3SIbf1KQ=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl8UDPRgfRfV9yBhSmMZGctoXqi/udB2cmlt FLBWPvJ0TmJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfAAKCRBsHNEofbAR AAOAD/9kg7q1Znm6Y3Wn05SIndpSgso5g4O9p91Z0aasYA4+tQq1bmzLI0x01l/0vhTY8MS7riM gSAFY5QHKXMZuB5VOl++ETQmEWkUyxe/6tUximjDOIOihB8dUt9ppiq8O6PzDFTCa3t2mBQLIhs EfJIlzVfmRb1xI2Y0eNxU+Zas8Xg+JQeQO/ccwy9YwAygVij1Z67+0UY+9J+zTJgRQXFvF0MxT0 OQ+UYrE3y2i4zom7/ycqEZb1xYCHzzy/VFHfwTp62XwYYUYR/GM6O6Xb6Fw6chk0ebVl29CxHpY jzehDesRujlCzupcD0MpZwIp+vcO2hEkG+UmIMsXjnP2oX89QmFUSgPHvewb0PTfPwmySTh4te9 kZYswqPqzab7aU63lQ/zJ4cJPvglpazx60yVrAxiqPC4TmfXTdUvlTED48rTXVU5bObV28prV10 84A1V7bcx9+1RG/oa/ZJ5bclzXUQSt0NzJm81UHLBnqcqoixnXyVWbFewt6WXpMDdebXqI0k9VS pwLCXmlNhyIZxW1mEtDeEpFEUWmTwjiG9wwrC4AQgZIQIyrtRQx69LDdwlg0XG8r1TGSUBw7/ZL /zITM6buEHOK7oikCAjRrXmZrkNfTGsEkb3n89iAgLzyFIjpGQi4D+zl4wimY3aOgM+baJqndCB 461r2yMA0dq259A== 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::c35; envelope-from=imp@bsdimp.com; helo=mail-oo1-xc35.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: 1777474116428154100 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474043; cv=none; d=zohomail.com; s=zohoarc; b=S5lbozCNkRIBJuCi80DfyAUju9DL6CaygB+BSKbxithIeXaiXegf68v68kSRGNzxGouVoUFbaF1eyXUf44EnXgqF+A6pjus0DraQnCE5BrpFbyPO/AnW1RaNgFMYz67hY2Q+JSsNStjluzYqAbMT4ipypRvAT/Z1GWocBWU72Mk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474043; 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=NPsbSiTj2S57cCjXvRLf//957huCi+k5x+OGT71utmXiWeAk1iWbNvcBKpjCVD1gioLL6uoD/KmzsW0QZKFqpySQhuxNLxWTEuHLyyYN9WiWWhD833l3GvPs+xjPMnw7R05Lq7M+eMaKWfhAmF1sWP5NN814exFCDV4IPvcHsGk= 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 17774740437501001.1621465717068; Wed, 29 Apr 2026 07:47:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6Bq-0004Tu-RB; Wed, 29 Apr 2026 10:47:03 -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 1wI6Bm-0004Sx-Vw for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:46:59 -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 1wI6Bl-0004Yf-52 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:46:58 -0400 Received: by mail-oi1-x230.google.com with SMTP id 5614622812f47-4756e74f8edso8740360b6e.1 for ; Wed, 29 Apr 2026 07:46:56 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.46.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:46:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474016; x=1778078816; 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=z79WnyVpxXXermsqpy2eoBcvzesyrNzDLzavUBNDNWTuVtiXucakIIPQTU4nhpGr2x uzMwmiuz/pmf7Ra+XeR2emfdarFmlzV+IGvMAYaqgymkOklwH96hnzVP9nyWyJ5B8rqV 3dR+0MonBx7g/MAyqpmZGMSqDQNE2Q7MFeINlenEoTbWHy1KGbO4EXovJ7NY7YQJe2G5 SgeriRkdsOTP7H/zAI5qEyS3SFEMmuIGWao5Se05xFPxowFWpHuv8ByUeJhl5CxTm/+6 24nTpj77VqxtjjEeEnqhnrA+4dZcbv6P9wDqK8kaudsguSO8zDggc2pc3tUrvLSusAFF sHcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474016; x=1778078816; 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=TZssw4H/uV03281/T0k2UuCo4hSsZ+JC9iWq4IsLFuDbHZwb318c2UWyN8QFnpcl/j OxSJsRR3SeXkmgyKJugk/jnfTVBDGy/mnKshi0txSpB851LwUzu4QcxzMxWlqgDQ8WHV sGYjuLORq6l57+dmd2e+PS6jCo+czGGeQ0Q+/NjfG+BXTq3O8gmzMtYpAyXAsYUeF+Xo 3rsbw9Bo2JzqFzN++d9RqTczVVEwIiDuHDLXCk7/czGict3ECOtHVipqgvTDE0ep0Hw0 SDALDi9Mps8T4g51LIruut8+2NFQYYJ1p3CZ3iMOLezs4zHVVcnOgQAr4CDAtEDUAbLz 6JLQ== X-Gm-Message-State: AOJu0YxTrwnRGARRAyhM1SDuXvai3L5y7Ol0HV4zqSdH8CufDDrkpLZ7 ZnjWqyDphiMUqT5ENqH68q1xe5+QWSd0xKNKw1D+jZxZ3eywCBTyDWaWfjBNO8LNxMc= X-Gm-Gg: AeBDievYdc+EpiuG+fiD5Z2QNiYo2SVJtDKw+jw0UeQrzss0V20FTKqNchcSDxjUvLj c0x8RbDbQeWNPqYL2un1+KAodPI8N+90/mH6I2EDS+aGtUSfMUaRdYmBPaupPk6y4cR75m4z8gE UO/T89oAvYmXjoNQUxZVNOxxa7q1pWmqX1kH4qFq0kbB3Y2o/eZkmXt4Io40ebEJpO8IjJaqJXx OimqAINRocOqSlN/JCrmzFQOJnG9C8Nwy1vBlQ9D1TOzPegy5HMCvKp40LczGoltspUSz8PDSwm DbaBI1QNAXf8etOrYzXahjGB31WuQVoZNMDUyKzw6+dF0cmj+SaWaeqcSkWX2bC4RttmhqPU+fL r28eyXsvifzNZ/Fg1aOj0Qg/gc/SGY0+HVsl87sv/GNqpMyjADeo9aNvdmQzJdh5i/o6BAQkMwQ XijmKCjLQCZkSWRAhODrYG X-Received: by 2002:a4a:ee0e:0:b0:694:91ab:ec85 with SMTP id 006d021491bc7-696684c2c8emr1993860eaf.42.1777474015840; Wed, 29 Apr 2026 07:46:55 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:11 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-5-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2199; i=imp@bsdimp.com; h=from:subject:message-id; bh=cMb3ivJfUvUazhrawmKHI2pYvxgGoimqonpCHhslrO0=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl8CmmHIQTydgLsIOBB9gyAUWp/CKxqREOGp S8UXK3eEOGJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfAAKCRBsHNEofbAR ACi8EACqtd1zOktWZcKK44xogxLQaf5r+p0qGMg2O6GdbUn/lQkpDDhGBJwvNXSZwALEr894Bq8 Sn/yIfuMkqZqFWa0otx9KCLToiHofqPsPZaQhuVS7qcGz+TVs4ZZWvGPiq4wvZB4S1dYiHqQLL2 6v6gW6qS3DgrHJKRQhmxfX4VEHREuFoxsu1Dh/cPRJKsYHd0zGfn6NeqD7MpIOUeK6PWY/92+Mu iOM/b8ofdeF54uh6UfDNFi68LT5tOXQkDMQ+Z6dUTfEKTiH27WpKLGBoS1Lfg9uxm7JXOHBbRWP 04srzmHB8Dt1iSwN08R2mR361YfLYltHfemsFmmIGWCwgw1pkWlnatdbgRe/ZgvRJ/1h7UOiJOE ep9aCpyTpo1CZHGjD9TpfaoT2+9BTSEf18TEcq/7Qzf3y2ziLu61J2qeazlXAtoZD/uBb7a3r4C jY9+6IMdrsncijmWCSlV9Na4E5/X0AT6an+0ZxUov56FWiXyose+KELje2z7AcqtK9KDvc65Pf5 qhwGXvgx4BiEM6VPbIGDcW3s4RIz5OL7II1kR4JoDxa8nR5y5XveppunNgo+nMB3Z6e93Ce7zdR SlO4579uBnh4Q0d/5M7XKOu2PvDlstpTMf4CJ9eJdHNm1HVvaF9sVM8AadWkWRiYtJ0IynRPRuJ uzD33y8Jvs3T+ow== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::230; envelope-from=imp@bsdimp.com; helo=mail-oi1-x230.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777474044786158500 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474057; cv=none; d=zohomail.com; s=zohoarc; b=Lwm1euwfTKd5cAE/aKYDYD3Ag9eD8ve1z/MkS6RLdDEdKYSmnwgJSFVatdQKHqfNb6+vZGnNoQ5cTVfSmvzbb5Bt2+x09QzxSyk6SG0eyU5iY0lV6n35SDtAWQLaiuxbW2uvEfdvyBw/joupVb0XnldgM0YcFE0R/ACxuHw2cR0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474057; 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=K0enhanNcAxeWpzN2zZt++ugmkRQUgPGn2L9uUAkhRItRjEWDl5rlLcHzCMF6Klm+lWVEoiSEw0Z+sB0Jns1KUmOqSGBzelrxxmSpq/Fae87NQi25qsjdKMg9/thOO2o1MJupGXzlJc/d0gX3Ny89rFA3RAtODxXyxrTZV4z6Rk= 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 1777474057437184.75997615629126; Wed, 29 Apr 2026 07:47:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6C4-0004l3-DR; Wed, 29 Apr 2026 10:47: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 1wI6Bo-0004Tt-P6 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:01 -0400 Received: from mail-ot1-x332.google.com ([2607:f8b0:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6Bm-0004Z2-HH for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:00 -0400 Received: by mail-ot1-x332.google.com with SMTP id 46e09a7af769-7d4c12ff3d5so11258731a34.2 for ; Wed, 29 Apr 2026 07:46:58 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.46.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:46:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474017; x=1778078817; 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=x6AkrhIKS0mvF9w/GElCBk0WEkAySyup4IlYNCZE9Ffe5YS6xHYGfaF+bRJnAUkNOD GL1xaGLCR2NIMt+KwLAz0H/I5nOcbX1BaALK5rQX+LPCIEQrwn76NfOB0Tk7SRreuTDR mV9q4zMybfE15bebD160KziVaxR4CrJqCf0/rey1pE1oMSoXqFegiLsQ2gITj339NzCe HaSRxGMg8D0CZNCYk8U8JChSrFgukCRryw1teyfd8J7zqKV5S2UWoIUw2m1AEs8dV7DO NiGjVfsiUAk3CMdlXPCHUtkP0hAAZdqoe8xWsAGhcX2pZhf2jCapqM4PfJqfg1j5Oszb PeJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474017; x=1778078817; 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=DuWCGBx6GYyfIlscrt2W3noom6Mk3PqvBaiiai7Y1MxRLZdx/9fKvrOJZlNvUQ2Mbi tXCOWeK90wy8m/nXyZd31NOwsLNUj0rMUHUrD7wiC8QrF3H2H90hHOAZWbvXsmbdtXiY /xE41y4k94G9L2egp6J9vLxDc9rUm5EUcK3YT7WlPv6WVCIXz0KDZge4eOQL8TWFyp3u ldwHhNVzPd51RD+/+7Rjp/8qCHPVowNW/zFmFnNsy6J5eMZBFx436rP+eGk42PwT0L5j 3uhvSrgnQ3jcffdNX/1caDjdHlTSisTi8R9exr12KX0BbAIKaBVvSCkOnJOU0/4APxKb lj/g== X-Gm-Message-State: AOJu0YyWOraPTV0Ia+qf6MW+Q98C3FhIQ2pKmVJfSWSqmWhddqhQyh6o d9OS7D1uRzN6HW57q/5JKT1MT+PnEA2LyAmziTVVwSkyF+HFPl9OKJDGN7pdZJ/5JxvSPbo7NOE R2Thu77A= X-Gm-Gg: AeBDiet/oVinZX639RrFlQak6zgnvVaCLfSN41efZM480ieDIcetqVfmmEwyb28DqSr nf5T/9a3jbsYZq21P9HMv84bOWv3+hdhZDd3wfv0KI+udanbj4teldnxILmyiir3aE3zVx/SRXw a7900gkN6JmyikcdGNabKFgd145x4b0LlPTCiBn6KrMT3NcgFVUXYE4ktORDda3l3X06RlQspOy S9wkUrFet2BvmVaBzXJnNAwO09So6Yu8cCc4em0yXi5gwPqxRV9EcONgEvrzcDoLpr06k17kWjG ZiL1YFILT8M9RwMRNx9VEABrtwzh4aKj6hv38HUr7Be6zUgA9n/PLvjrw/IC3ye9Z1qcQVhMxTC pQdN2f3VYJIEke+vk5nTz8wr59qC90mnlKlSpWmwM+6Ea/H0o6hd+MBUQiti7ZkNAPOzoyf8VEj KItZ7GnFiBLwv6QG/1kdU6 X-Received: by 2002:a05:6820:1504:b0:695:818c:e56a with SMTP id 006d021491bc7-6965cab1292mr3966445eaf.27.1777474017162; Wed, 29 Apr 2026 07:46:57 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:12 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-6-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=8387; i=imp@bsdimp.com; h=from:subject:message-id; bh=gZmM7uu3K8cX/RwjkkOXNVmFwtWCH9uYOgns46xr4Cs=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl8Vw5PyxgJvSlE6FBl/NGDYU1e9bpRKpkAN Pob4GqsEMiJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfAAKCRBsHNEofbAR AIQAEADQvPzzIuxY/uUyPXswa0ijSNCi+vuI2tKafW2syPwA7qNbralxLnso69etA12luZFwDzA sM993+vzdMtzDhHeKis30RCEreq7asxkoTrrGD75TRVoEwR55mR+077HJADZIqr1WMgZKv1dPaq 2NgDPgUbXG8l74vGfxJadPyXP97eJwti7kx49J4p8vwWfm7jZ7fYAITb3vOU0SpIeOAGPUR5M9A HfLG/eUjujWCGBHitPoiNJyf7CtV7ZXzMW92B7O7wfAihCHK4VXs/UGoJd7qK+EW4f8b971lERP 5lqVeY19PKX7lr5bJJstqyBlExivmoMTPK6XUP6MjAMxJw8nPg1Wx01hJkx5iDdLJl4KmR+VKS1 xRPO+0bGxGVlKO8ozLWN735XYUPiKbN2dNWC/xIjv3ZihehSkETOn8Mkb/oReTh0w36sh8x2V/i 1t8Jo3S69WXmlYeFuw5PUiccwuT1owe0+7ZDY5kaRHRAmPBK+6u/N4OucBJch8s9828kET0X55P 185n4RgO1TUXEGkIw8nxD2v1iYAtvgqnjxgJJjZK7ufTeJp4eCSYAAWT77FJ4WoBN6z87qKuh7z rMkrEolAOTsGtpqgTEzHDAmkm0DohtEjpT1DOO4Gowx8ZmUKK0hF3eatc5yism63EAYkq9f9k1t NOazMwUk6cjx7Sg== 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::332; envelope-from=imp@bsdimp.com; helo=mail-ot1-x332.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: 1777474058985158500 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474114; cv=none; d=zohomail.com; s=zohoarc; b=JjZBZUY+e+alrclFWqiocTWb3k8oRuvOGaZuuJp0m3d/VQeY02M7zVosAg/VWaYnXHNlORTP+wGX+8d5Niufs7DI4Y3WXkq6JqJrCfv0b+efglLfFbViLH4avXMmV2CWM4jK8Sa401De6jtp+h3S9g7YCyOAx18SenPuH1yDXBY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474114; 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=BUZ1+A+c7c0cfSK8ZodoA+cNJc0j8STJW3FJklqffnLQCh/Py6E+tteMd9275KPmkKcYCfcvDXIr8RvxXjNpP/IHddZHqq8FW6Sgi2R1IQYz1Mix6N/DiPRZBxCL29sJCG6u6jGg3HP3n1iC9bd2FVVBqiPPV0FgXUQQffqnw2c= 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 1777474114259757.5003853786819; Wed, 29 Apr 2026 07:48:34 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6Bz-0004bb-2f; Wed, 29 Apr 2026 10:47:11 -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 1wI6Bq-0004Uf-55 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:02 -0400 Received: from mail-oo1-xc2c.google.com ([2607:f8b0:4864:20::c2c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6Bn-0004ZP-L0 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:01 -0400 Received: by mail-oo1-xc2c.google.com with SMTP id 006d021491bc7-6966d16b978so273298eaf.3 for ; Wed, 29 Apr 2026 07:46:59 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.46.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:46:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474018; x=1778078818; 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=nV+n8wTYC2cM5ce2mZ+W1Nyh4W81rpke225Xp1ucmcTRiKF400ICsaKtG8LjbFyCjt 7kMdrFV7qkSnbflzu+1mqJmy2/IsN/7ilKB2rT0m0BiohjRpK+wID273D82Y900OYNSU ezCfmExPPPLJywEftmVHRMGTuJDInK+G6lgHx2XYWJ3S3ROW64oWgVJv+fYBtfNHbH5U XNg2UsURTtlQ1WBL6dJ2YfQj6umq+u/6LfGMrB2IXZXYKmjFEH7xzt4qaiJvcQODpTwi 9zTOkYNTB/ItgnUNkUSytq75/JxCrmg6DEL5VaKZ407Nn92nf2na8M4qki6f5RXALXPN gG+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474018; x=1778078818; 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=pJZfPUtcaT67ztsOzYMU1uJlwmzsbc+R5IMbZyOvBeZBI5QJ/92hdKjYY2MoVTNeVg ZAv6JG/nvpNmwvKbSrwtCg6SusCt1VYyZPyjugj2o+mCDkzyb8WWMV3plsMaYRdBnGe5 hB2TVnLzJzwLSOcT5i5RuRZuLeSVNMjyMfDzqLjgAsBuNDyoQ0+H5/APmPzEGKq949tw iaQYYAfOZ92CxU/wT4Ap24vCKAu+llVu6ecKaEUkv2PnuFQGo7BlONGWaAcRVzx63oeq raznZlDjre5lhTkmTAR+MMQDEOLRXZJSjdSrVcO41U3Ir0liVRxG7egrR+e8xP0cTmei JPLw== X-Gm-Message-State: AOJu0YyONazkEZv0XqP0uTbQfJLA/D4OuqlUzSwBuhJ1fZFMWWkRJmFT dghE0G7YFM4rpa9UpR3h8s+eBXD4XR5EcQtbVd6a0oO4sMIuLHQ+RwG9XbqGih9rASs= X-Gm-Gg: AeBDies8h+iOPHcNJvSjYI2FQ80uyJMsq6cLkj4OVHTwYOtvpJhua+4W8s3g+IvJIer /dEY/hK3WJVcfODvmIVdrgBW0ABEDlh8upZfgC4ZgMLe0fL6xDqPUZqgYFDQzFpWcf1lc8t0eO+ Y7kX23qt32MyJ3M1rhYGqh6WSOk6Ofugn27gU5vbpNoQFD37OafKj98wPB9qaCjcadKPTZfHI2k sq3lTmb9BO2ivzk4ng3FL2tIpWFqIm/kDKpD2UffqCRhCWImjEU+V8mgQunXEQ2ZNPzkenQFqsE QEJsV6fzNtg3+d80Row8gvJgFFapDQC9SJQN2Q/Z/tGeU2U7+vup6baLOpDPFzE6qh1BUvk95gB 3HboV0xWECLDW8o9wD79LOKi/LWvG0AVUEaV0erY20L1xoX+gCCqnwyNfqfLM3/IMvMchU9nMnI sVtMdz9O9BncIksZewTJhp X-Received: by 2002:a05:6820:3088:b0:685:d435:1471 with SMTP id 006d021491bc7-6965ca51435mr3783962eaf.10.1777474018463; Wed, 29 Apr 2026 07:46:58 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:13 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-7-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3790; i=imp@bsdimp.com; h=from:subject:message-id; bh=8sPigRwG0vQFguN7CSo9z0cJsJ/owqmYKQDTqdJ4kxg=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl9+A3bXi/5bM7u7LvcT65cenB2ARMb0ixoX auVmvl9e8qJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfQAKCRBsHNEofbAR AD27D/40qE6e/tYjOcCoHtkdCb8uZ+XH6dJokt7yT4QxAuhC4tYAJgZri/hnIJ+SM29W0tnm3ow pqaUYjOWrvVn6/QZGLHe99dg5e2sX39NxgAUZc/6fAMW8hAKpFGxr2HH2aV5MLnDBSrSCDB5HAJ yxE8qePq4XjCOrV8wNYjoVqufuuSUn4NKB09THg0bp53YUO93ibZllQJXFkcegezgAf4lumr72z nAeuIVWmEbFs56MePmLVTaLJEgDlLpx5YmyroDOlB2anXr7B3hfU3cMR6XGpdaOf9QUDlOnRZdU TtfoNlk080PBLffQ2wRCUScsXMPg6IPgpp3X5TWAM+/wH5qIr0e7OllniSw9/hsj37XaHjqYydI h7WR78a+2pQxUy5NujP3W7IQMDrlFFbRg/kxIrcDjhuooAJ8TNGKejor4nMLybWKYewBzrh4UPQ 1ulfqm0Yr1ka0J9RNc0qGkS+l++ylq+MDa9p4CaCdsQ296EhqnqmUe2Hn16xsHkBTyQmz/T5P4Y xqrldM/EaaH2ni578Fln7Qqg24woIvAhAkV6Z/ftHsAvNz6hb3viTng27hoLw+6r8XEr56t/UH9 Osg60i6Pgbt9jw4Zec5VZBWKsJrv52O93yp7LTlu9Yt/cSxu/dAdeq5fSzNCPB8HXtqUD6ZEedP c+RE1upgYIqhPJw== 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::c2c; envelope-from=imp@bsdimp.com; helo=mail-oo1-xc2c.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: 1777474115211158500 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474082; cv=none; d=zohomail.com; s=zohoarc; b=hz2ogatM8s9BtAvvGSttVCT9yQGzlOGaYrszdAUhkgSjcHbeGiL+wmAzKxmrgJxMGu74LNYQzvRBGgw+g/NtxQDVRx74gwFd7llPUxrPUYi++bmi+qz5FP6larAgHWO03O6S/BWZxB6aDRHlqQH9gNdr0sB5gwDICSyyV3wOAUk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474082; 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=FswSs4LRLHXHKrgR4FegxPxJvTksi7qOI6Ndy54Ga8oWdm0p/TZDrykskk2RG5rbsP/Vq7QNkthpPMP3Jvi3R77T0tGYjZQa6y4CCCAU3QMFtqZJEp2PMNUM8sFR7HETiTjiRk4DWpbTDG8lWInNMnTNUCiG54T2Vr9RKgj57KE= 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 1777474082066379.5796421630042; Wed, 29 Apr 2026 07:48:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6C9-0004ry-Rz; Wed, 29 Apr 2026 10:47:21 -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 1wI6Bs-0004VD-EA for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:06 -0400 Received: from mail-ot1-x32a.google.com ([2607:f8b0:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6Bp-0004Zf-Ss for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:04 -0400 Received: by mail-ot1-x32a.google.com with SMTP id 46e09a7af769-7dbccf6a23dso9848527a34.2 for ; Wed, 29 Apr 2026 07:47:00 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.46.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:46:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474020; x=1778078820; 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=HLzElVufIzTpXirk0VUUF3uTPnxqhPN0ndLBAu70pW7AOD5Htrq+nh1rSOBPv2wa0D MyXIT2oD7bZG0uZKOuEvj52vWPjWYf+W+JITdeHOMblyUV3vsSZ8N6ak2sN3MpIpzZOE Em8FOc2FaLDm57bALEnqeZB6SSBxUAcBGVgcGrg0qHS2jbFtoEXiW3f79xum8PFwOEAC wJ2SCCjH93F6XKMUQeimPeR5yuKR699KXb6MYHEkkNPgFGBM2mMZC5yGDd2rlMdtJIl4 NU1NoIwGgmMG/yvfXZxcQ9Y8N7hn0r+gWjBEIDHh+ZZDAbDu1RT8SHb0qIW2YKZ9poxj KA8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474020; x=1778078820; 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=eSI3zpCtdsiXnyohMy6MP3KLFiAfhbhU3h3LlX6XNi6voNhsg5PsktFMwNteAv9gRa AmD5jlc017b16NgEWx+LKF7RkJGj5q5mEaO9vUmecqCUU9eRQHlgg+5mSfqzmQsBM4p9 aLNmZ4dczJjO037gYYkVdPzpm0Oy4ZETQPsID0S+BBa+Er6LEVR7Y5d2AuyyulNWTtq9 Hqu9HP6E+gMVJtCv9TQ7aFzGJl8VkVavFRHHr6stpyZwN7BsyMluyIzmVlr4KWROInZN g91a7BDIZwA+Z4dxBPu4jRBARYSuYZAOYlURWOYI4+X1O7jMgcnxPSvUxzzXwuU45XwJ SXRw== X-Gm-Message-State: AOJu0Yz1RziieAsB9McaLDZwqFX5GNyX9/p9/6CSmnIk3ddRtTKGe9BT 8SgeU0mDhgwyY4MLzNJSjlpAEeclC2ofNCIY51fDECWT0jTPrPA4yJdBoMy7wLkgE68= X-Gm-Gg: AeBDietCGPRbWeLSs3csSiBy0SE9a+NB3fimOWDqEbEEbPZhafV5h+DfHkMeD1iy92Z G5IcyRGvQzBC8BrMuKhOL8Ci1YtXQA4Bia7OYUrnqg4x4kiUShCtDYCxF2wnFmT3iVnqOtbnTAs 4n+G2YZgfU9wLhr1SJ2TqZmuSinWCjDPZ02Qrj4DK1Ig9hJgeoY4eJsZbIWU1cRRmiSdx2ZpElK rV4SwIOjN982O+S2Qu9D06QH3iLOXEB0twAKArvz7V/NYaHzeGwxw+Iw7kHTds+Xig2ZCh0GS6P gMPnFd7RY5tHEkhVcCyZn7ayDxdchLnnChhbxeJsbMlzo6bsgBq4z0g1WivRv8P/At9fVajUJOY 1LZ2BhmqFtNPn5dFcYrwwvEpFnZD56FQQ8ny5e2YtQV8JSj8yfmlmMTMzUK8i48FXUzX+ytKzb+ 0+6S4dPNEz1KrlTK7qXDyt X-Received: by 2002:a05:6820:1886:b0:67e:160c:36ba with SMTP id 006d021491bc7-6965cb7f189mr4184371eaf.48.1777474019766; Wed, 29 Apr 2026 07:46:59 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:14 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-8-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" , Alexander Kabaev X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=6990; i=imp@bsdimp.com; h=from:subject:message-id; bh=NmJqk3FSVLIKDs2qsRfZvQlgCcX5khfFeERHrIqG7cM=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl9qrjhVui8SBbbbR+nMEWkWB5CVAma2l+7s 6muIUcuLxGJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfQAKCRBsHNEofbAR ALLoD/9Ov4nOOz2T3A2N3DcEVTpQoQv72bpaDYsXISWSaKVQL3FYvHXQxCQ4AD45yOBm10I96wa DZADT+AdqU6XTln5QesYg7Ma5lTH9RpEXZVcogmoE6AHJebz6vq413kyROG3fu9FO0yl9S1ZZYd DyfulXe3I3LbCMa6MfCzb6D9nVrWCW6GdMrlil6SGCtlYTb7NWW3/C9EYS+XIJWewN9q8O58Nus 0fGIus5E1nqs+Sop4VJmrhc2bWVlVMLNSwuXiqbkn3CGxqnI1JPzCLRkKpv7pGYJARir2Xkcy9k viIXjSxKsKT7GnC0AOJBj5IFAzcBfRZl7JlZ5tKapSZ/S5S9LVK2g+RIN11ePljxPmW1+t18fcQ V69aIo9SmPru0PnL50eEF/KucdOyLYQjzVst3ZaTSe8eIMn4nO6ubr04AYC6tYro01Ndi+iMngi 8dmzheUMWP1GuGdnIEFuvYRu5rWe0OCdAhl2JuoXKGu89DH4JWQC4IBzhy24TxfJhiDbEkgqXnI rgx5B7tcIcXmTBtuNL18s+867+a7iBSPXP50hT3aTleUrR5CrAFcvw/ZWAY25ymmmWnOaadIlvn Al+cHRiMHUu3o8YRAjz6OybjsundbuTd7StnsmgA2Mk0qU5n821NL/yPO43jiVa19ELlue8iL0T 0KIhyVU5qwSVDxA== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32a; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32a.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, 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: 1777474083118158500 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474090; cv=none; d=zohomail.com; s=zohoarc; b=fAiMAUa6ftK5A9igSW6rw0if4L+pyxzi4mmwr0MAKqR8GXP13bWSdcwAUS+HqKWczNmZ9fHQGLkQ+4ODe2OeRqTSb8164G17d1R9rFbm1HVJhHteWSvlTm76tlpeqRxZFmQEJiVs3VFBE6C9nQvIYj3qgPaZJZnffWu6EEj47EM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474090; 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=idKSUirlfBc9ant/XLCH17ONjrGkF9aBTv57RPC4GI8uEsuMVrSSuIaL6/+a00uGxV0lwM6T9MR2KMDYcGPLPvDDODrSvVhN3ViiVY1l8fLHZ/BrKGAg9Qhpwu+BsuLuGd5fD8m18Iduos5ppES1smvNHHf6B9K3XuNvTjQoaWI= 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 1777474090675196.35610369388849; Wed, 29 Apr 2026 07:48:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6CA-0004wp-Tg; Wed, 29 Apr 2026 10:47:22 -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 1wI6Bs-0004VI-MC for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:07 -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 1wI6Bq-0004Zz-P7 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:04 -0400 Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-42c08cbae4cso7342893fac.2 for ; Wed, 29 Apr 2026 07:47:01 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.46.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:47:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474021; x=1778078821; 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=DyuKJckGB8ZRjAhva8vGoZEs3wSqcq8tk6uaKVJommSipDyBxXH39yuNvR+O65X8Oy Ghkzy4cPAf1rN9ZOKzuEOYWCfQrDzvMKvBZR7q+2zCpt6Abnvoqm4BCe7WnBZNbZkii6 5vy/qQypnzjg/E4hyYVq9+NWVcEbFg3yAVK6G2GrxgyOYWmYGbPFZGiyQOlkbZGtBlBC ow1XbYOfXwwdYhOoGFQDmPgn3HS9iNUKLm/l5E5FcvMhDbN/A+CZ/rRuQwddmBZs9/Ob ecCNj+Y1J1PHlNXRFslhCqtib9oTO+cxJVek47k22Wnu6ihbnDLC8et/+haLMw3XPZ0p hY6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474021; x=1778078821; 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=P8lEAwdr0rlgZCrn3TF7gvabi5qYS5p4fgnrK+YSLjDW4qjQTYZ6eHwHZIDa/XqQe9 wzZwb/fwSJWaobb215OV0M4hCAe6SXkkAVsHOepxB5OyIqT8ahaWPnaRAbusMGuLCPb2 HvPkBlwfsLCCMmctIJE22PWk+bgSOskmQ17miCkz5wnQ5L4ZNilPhLgUlzAusuxC5rt0 tTFp8sMxCnndh30/IQnRh7xyBNfgYAnMa+/NYPdWWO3ny17QuIASJ13z19oWoBPbMY56 4n3jk/Xqy/rVO0bjTvboJYvxuiQDjty5pfFgdEYBFrdOWVR1JVzbcFIVjZtkEBt9oT91 mdkw== X-Gm-Message-State: AOJu0YwhibHS0Z/B6iKYTY2SbRJQCk0b4GpCij7/Z6Ct4RZWu5hP9tW0 7HJnenF1AZ27qFXxu7FChRlQ19oackYQqKtADPdDfbDKKzdWb76OciQ51oedMbEHbr9k0l4jEQ7 nL1/IIdE= X-Gm-Gg: AeBDievp+JOkeT579wh4LXvY4SxmA7vRsfSPgyVOK4OUcJo3WVZCh7nM8Hte1IctMHB Q3k0MC1dnd44aFgnZDPXHpjsuO3rvi4QXhWKMrjAKh39hDPDWpCnb0hsIKxRFXrThvPEhDeIOmT 88tb8LJaM4wJSvGRF50EjcjWgwG3A5UPdP/8tTbx1hQWN4vlxGxlCTXSMsYG2mtb1V8VqHOF8Nk 7gINDxo+7/1IKhyJDkt04mC8ypZ8KN1Hqjbr23f7rLakZPzjwt14A3Mb/IzRxcn2MMiFqOC9nOD oeDzMpbl5KfpkQUPBG8mEfq95miZCjAB8T65/tZyoCvGIKBa55GoTbLnI49K0TxfLpHTWe8E+6J NqBRCpga3jLcdhqjUWFWxdc0CN1q6QHt6swaoPGIPHzUeBCp9hf4ries2ZlSNHo/WgBALzfL7fb U2IN5oYctSO3zygydjgMYk X-Received: by 2002:a05:6820:2d0a:b0:688:7dbe:5ff7 with SMTP id 006d021491bc7-6966852964fmr2093531eaf.56.1777474020863; Wed, 29 Apr 2026 07:47:00 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:15 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-9-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=833; i=imp@bsdimp.com; h=from:subject:message-id; bh=yeGavK2BMRJ20mAsfFVakCqJnM3dMDajDrM0UbXfJQI=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl9abMv6l6jkZO0Rtj6FogD0gZTEESPIMM8b uAcw+PcwzaJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfQAKCRBsHNEofbAR AEthEACzZvM7X2dooXxssTJplbo+vejJWb2aXrNUVMKBuVGjA4izocQ8B1ItLE/Y9MFGzPok+uM IUWIRsZI+tTeNv0kW/K7n7iksPq7woCovAyJS7pZl/EW+xYYdDFBCUt1q6mDoGuvz7pq1lKrpRD hehj86OOdh3AowbyCKjQNpDPmQByiJsoURvfT/OTAgn83I2AEhpMFdHusL5Vmm6yFTLgqczHS1N jVE11eOMN51rCdJ0p1MWuzP/yfaqzzw6ICcsiKv+UmquFOAHlFXyN1v5svsmjvp53OuKzD8ydiB JResj3bGQ0VUUVxso2g9XEC3191xb8vuGEZSKatUu13E8fQW1kAhrCSFTXHAP+DIkZCwk1/7tYI K01mIk8hYkbAnu6Ta1YsJoYFmm6FQIRMqiZcFEv3EfkXy+C8fmymutJztuupouTIUv5UfrHYFpn 9s77iWRYYfyhiiMZs3KwgD5q27eaB4B4Dq0M0eisv9fTPxUmGWLSZIAgD4ch6jqPK5NJD5DahEJ mmOnuuc8LYRVN3ryjcNbhLNEEUyMR6ovI8A+e9GV5B4z4kmvC8C3GN4E6toT4GguFYJo0pLcIDp f+ccRTVsetuCHl1IASEmol1z/LJ625UMEamRWHXOIHA109EMxi3fmgJLvPWucDDlzZSlSYIqVtv vq/Z8oZP5qihz8A== 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: 1777474092040154100 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474136; cv=none; d=zohomail.com; s=zohoarc; b=HSaMInFnNUUw6aF/3T3wPdfSoZ2wvkM3UTDVB9ujj6NbnZZ1VsOxBdeAMo/A7lgEq/36iqGmeBauzAowASh4ZrHgWdc8/Xtl8uLbZSQm05O4bJJcb0QpyZykI2lMbk+DxAe9VK623DOK3Qkrzr6OCr80vNzqfE8SXDL25jgwzXo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474136; 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=AWTEsg+6YWn2CBd0DCWVDX8xDNzknn/4/CTpv+Ylp2qhVs2zeRAumYbXf8rL94NysYIu5zlQvHWw9gEuYAxwJjDGV+YFgsIKq31kwUzgAS92m6VsBtwtbF7THeA1bmbcBfT3As3wL3OJfDa5WHswX5c5YJ2dkqerk8rVe+tpnHI= 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 1777474136448452.764785713419; Wed, 29 Apr 2026 07:48:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6C1-0004i9-P3; Wed, 29 Apr 2026 10:47: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 1wI6Bt-0004VJ-A1 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:08 -0400 Received: from mail-oo1-xc32.google.com ([2607:f8b0:4864:20::c32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6Br-0004aZ-0e for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:04 -0400 Received: by mail-oo1-xc32.google.com with SMTP id 006d021491bc7-694891f8f75so5626582eaf.1 for ; Wed, 29 Apr 2026 07:47:02 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.47.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:47:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474022; x=1778078822; 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=l05BuCCut0s1RmASxsI1VpEV60h/aN2xrJXBzKtIdZRU59kebtc7nTn0CpXZTRahGI RHbW1RbNkTT//CKhimh5fnxqLRe7N69P8ZiXsSAGpZ2CirB7AyoO6Y+OXvwN6ZiFJ8tZ sOzCXI6oGoQmCaX7hdTkRzfobn+H7M/2+aYXpHSnQz5RpbINVX6EpoZGeeXN1cCVCkWm bb4uejkKKcM9nVewRRL8Eo+/YpLOtmhV8fkmV4aNdtcBS0XwmpRZA4VqwWuYmjIpvb2O m1IQT6hZKeuaxqdF1CkSPbm+oJIxHZ1ie2xAp/vygWEZxTDsCYsd9KtwU7IPIvI0w74X zy6g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474022; x=1778078822; 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=WLMOr6kHNOMwU1qpdlA9K9qSkonPAt4kDrU6j2QipGO/x7LrKJq37mil86uDYKj0RP LC94pupRbOMpaavySJ/QWcafPturez1NY7XdtIIkS6kTvMnY8rCvVyl+ruSRpr4MJr6i AD9/q+7BeFQWs+vkOkyxgSx7HL2jlO/xhJeksXlpnV16cxDtj0NSjBGTU2LaFavyWQOf ZFoUgEChVkndq9KmLvlta+nBTig9J/OzLBM5C5l6zajLczk+vinryF/gp9Z5b3HjinMg 58QFQSfzG9JRf71jLE55BGDmVU87gArkD0hQxvrLdu5WtUJKOD7GTNw8IQVD7hzz/edQ GIEw== X-Gm-Message-State: AOJu0YyqCFER3ly7HyY4/cwYEP5pvDtC673HKI3eOExkKVH39f3vqpBk 9zuXRDc690I3DoN7uFK1pwhCzK6FfsRB0raYKcGyFYP+uF1Eo8YODAHahhdfugEIjek= X-Gm-Gg: AeBDieuZF9Y7bv6oNssyLBFZzXfOBVqlRkzuNsNPeu4DaEmW4b1otqn4npSDKLvUcSs EzN3LUs8iKU6mGm1xPKkZku5zxZ+tmvGYe9FeyeWWw5wSWtiifTA2XXUcAeA6TGdOGY2Kb7Wa/x G7xXQWoOEiVxBAJDWmOMyxmN/Fa/TWuMu14Jzp/Z+ZOfXTZ2rOjczL5QHZn19biFfAaMpzp1mAV eju0ErtEC5WNh+RzdTdy74yGSOJTBSBpfC8+xowyVLHTux/zVd0FgTp0LvcbBcr2snfCYeUb7cI MJ/ELHi8iSWBTx6E8D+HEtPX4krclaM+qIIzP0oChnsbqSnd8jz+NvJRq47tShi6S5oaoCwRhCH xZxI0mcUNcIuyMKFydJ2VqikIIJGLcztVYfDrX0RB/lIUBdo+9/o0kYga8javxa9m3PCbljHYn4 2Q42dCwRHb2RTb5odD4eOAkNhDt91sG7s= X-Received: by 2002:a05:6820:1989:b0:696:25d4:1e62 with SMTP id 006d021491bc7-6966838808amr2229839eaf.2.1777474021924; Wed, 29 Apr 2026 07:47:01 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:16 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-10-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1053; i=imp@bsdimp.com; h=from:subject:message-id; bh=1aWdqqfETnObSvDu3kjSpmHIrNfg8gEN8mkXnAbEnzk=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl96AQn+PECZiJ3RTtcNWN4DC2Ob+vVr71kZ 46fnIrc0qqJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfQAKCRBsHNEofbAR APZ/D/9pP4M8CMNUN0jI1a7vXqmzGPcS8MmcYjWoWAR3AU4RkiOBAbYo19vGLigKWJf6ga/kA3P IpB2cN7wojN2I7XQ/ygnABxOoEjawOezdKkD751Njb8fvSzdI7TL92QfGnTS/Aa+h4uCltQ9leh 2qDrnstDYsJAlQoMCTJ1auEOlR9kI29kObJzfUjH+PUR0pxOFsaKD2tMiucLa1j06UCHuQk8rhf M2xPkgUeG2Qe1r9DuIzHcsxpH33bavyp/JonyFGypOLigHa10BFDCui39cyrfrTOP10C9IRXQMc cfkIbaTrY7ucjB07u+JqdZVMcPVOmCrlv97Cq6GbwOHR9w/xJiK3Np/Ao/yArp1b64McAp+z/QV MP6OZZsplt+2NSlTSpOFoY9WX6FN7ijoGcZdefrMTUjr4z85wDdHGhcmC3W2Lja3jUI/zkJTau0 lDzG3YlCG1KwKz3hUD4+fiXNFGirnTCWztIxmtTAMNqwGBTiGVKo3ivPS80y1D1VogzxhGEco93 E29na0zdtRnAlaU4lXTUnyxh2S8YGUu6y1VgFu4yO276EQyFK5oB4SD0QNi4vZ5WkeeTJY9gtWn KZEnRU7uoLSde2LMLbNN9gL2ZOFaAJaOlcgP1gsTYP0Nb8wq9xQAizIIWB3xKoQJimD8P0CVVyR 9fdjpL5f7BBdYHw== 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::c32; envelope-from=imp@bsdimp.com; helo=mail-oo1-xc32.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: 1777474137288158500 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474082; cv=none; d=zohomail.com; s=zohoarc; b=BNRB2TQXX5pdTHCO5R0f2mUjzJjK/fuVxAvfiKoMyxvaHnWGGPEjz7rhDuyAWocUTq/xHxuNBySVkMbhoG3Q845acXt9nRJmP2xRAqgPIVm+UgmhkAp+eVJDdn5pBZ4Hqz4eoJ+2GdEvKntJDutu8fZggqP2GhR/IInJoxrwQSI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474082; 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=YB4ZyYbbmlYvc7DVk1V1enTsfxPg1P52J69z9JHC8ag5ngOJcnwjSOgqlifVq+qfg6kQnCSZXkkISPXd1erIfQhftGdF9fDWQ0narSP4ZgpwX/ohLVGZVuwLrlRg/Xm15tgnDySTsv5yyK/TrBBNfdNlXbZvIL+72i2H/SGKaRU= 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 1777474082666241.46034029524708; Wed, 29 Apr 2026 07:48:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6CC-00051K-GN; Wed, 29 Apr 2026 10:47:24 -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 1wI6Bv-0004Zm-Dk for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:10 -0400 Received: from mail-ot1-x329.google.com ([2607:f8b0:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6Bs-0004bI-7b for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:05 -0400 Received: by mail-ot1-x329.google.com with SMTP id 46e09a7af769-7dca00c1591so4077156a34.3 for ; Wed, 29 Apr 2026 07:47:03 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.47.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:47:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474023; x=1778078823; 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=GYbN90h+6deHBUN4IE7AWXogzHSM7qpcdHJ4qR9GWJYr1Nrsts/8ZUZQiunaodndIU +RRw4XDILQfEdHlpYxEMl+g8m9kXSW41grya/SlKcJWqAfAvsw7mQ8EttCkE42Xm9z0J BERpiPBe7bsqQ+zskkSN0/bLGtNVjZG8vSXADrSBjaTiD0sWPHNCqqzE9NISjQHrHX45 CMjKLgUb+bT4Fxc/VCuVrRID4gCGNa02T2nWHgBXH7uNa32oVeuJjMIBwYyx+dej6A37 dXMnINxQD9QxriDnINf4swQyYaCHI5DwdfzT44HJcQRmuqWNL1k7KakGAxVhy0DTj/O4 i3Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474023; x=1778078823; 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=hMkCXvxcnI5xoOh+ET7XFMAhXnhCLhSeGshejNh9Tdy/uTxU9DzSVQLfB9v9qzsodF TRqVQtFIE62rv67S74hX/dzWB9Iwm6n9tVRmLJkc4nQW36D7tFWHOXy1gUwuJ76I3lQV lm28bsfnyGbQFMAHW5mwOenu0f7YMJWnbcZA4caa3ewf0KbRwo5QomsXSTEwj99U4aYG KzCVo1I/qqEfbyOXCdDg3OOpYUt1GizXpu3i1EK+H7JQaj/mx+/XEZZaPIxJLZA29NNU 7fZaWaiS0qgkVwIqeYHGAeXRQdvrX/6VLUpfg3yRAv6KDGFzH5AtFB0849U6XW7f2P7C Arfw== X-Gm-Message-State: AOJu0YzrxGOZBKvnmUVmFxzvWxNomKS1lz8NrGB2F4VwtZb0lEeDRdv5 4R15jAyYRmKCQd6mJ4hBTyjNsMg2/km5HJ3pFr+2p+TEzMtQf8oygQ+modk4GFrghLDHTU7+lIQ TtFFG7jQ= X-Gm-Gg: AeBDievhA4Edo8IWqJVdfYtkL+P27u/guezOT2c/HBCXtrMBsV1qv8KPJdYOH3Oqk6N 06dFSHwPaW4ZDlqKSyZa/yJf/pMbn9ridWGHov8PI0zlodd8MU/J9dFEFI7V5k+v4VvNeIlW+uZ ZeBYkNLJm6017pKisCUBTjZgjXpLSHSM0crNAypuudK2F2wSZXfP+BUXp01B6MLjpdwoUTHVJcq 45lBvbTbWWTTwz7N5KPr29pvd9VrDesXbpT5qS/biDIH/9smZfGFCNvbn8ya2qgl7lG+Ak7PdOq KOQPTow4ulpj/52dj9Cozi1bIfI0/weanFx92ZOwrIoCukcmngiA3b9mgj3+HRx5NraOjO+surn mngRNYMckzARbrk5hTkQECimxkkFt5/B2Ic8vdB129V15Ikgu3Q9uowxLXaT4DYCwrLngSoj0Ma JAyDK09Ba+dybYENowG6JZ X-Received: by 2002:a05:6820:a28b:10b0:696:749e:5ce9 with SMTP id 006d021491bc7-696749e617amr208806eaf.46.1777474023026; Wed, 29 Apr 2026 07:47:03 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:17 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-11-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" , Sean Bruno , Kyle Evans X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=8449; i=imp@bsdimp.com; h=from:subject:message-id; bh=bk41F2WqzI69O5FRTdWBtdF3GnnfoknoNTPXwZvfnHA=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl9he6R4syuh7oIwIg858d2JphYS+VQdWy8x 9IccXSexYaJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfQAKCRBsHNEofbAR ADY9EACB4pk29fwUBYbl3zbFBOZzMfBNyXzOHfLVyVGrmLBT/ZSfC9eeyI919+RZwGbN/ZbbiFr 8Xl9j0JSq1kCDpV2X7yZyRPA2NtOJP2IjIi/Uw2WZ8I2V0XIvrttHUEhKA09mYQHqQhwUu0QNXo D1R2PVdiIR1M303RgBhcO4Dlppfl1mWr9K/gAp93fLojwzTaOUmiSJDqLyoNUZviTqYlMm42gOL 5Lb6DsoH88eVwdh2dIe6cBIKeHuwYebLoB6jLoi/pTbIYb5/D52Mqmmdnsm4Wws0pK9TFBxFyUU X/UMNg97XAwSkDJMAxyh8Ug+3vwM32/Iwy560Y+/sGD4SL9euON0h1nI95i6OcL9m2t5NhVyy6h M6YWLzoTfoef/kg5QXe6t9KGKJsW+FEEBdkm2K2jAOqUm0QX5eGXzwbBIL720BGsF20/FS96JFR 9Skbr5b3scsu+fknaxThtR26Xqk9vx4ZP+eI6A3eYgA6onzD4KDE1ydbYrqqyqvW7ShOGBdHMFX OF86p5kvZJflZCtW6hE3m0/J/KYV9YG7mtwiAlfrAWk0wWXLzK/SVIzWbGkJHuhYGkr9bfOmK7N bN98UozsTvKwJJvMjI0SSWeCeLQDp/Tz7MZfRFJvz7saMTde+fKcfAYqyZnqugPZEV2Ii6XrUuE CuDc0JM+43iBx6w== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::329; envelope-from=imp@bsdimp.com; helo=mail-ot1-x329.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 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: 1777474084017154100 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474120; cv=none; d=zohomail.com; s=zohoarc; b=mYn6PLngiBd5ErS77B2bmb3sEOVAMESoveeg43tkTgmv4iD4txYCaUSFLJP2ylahxXtnSsz5TLPjeoBisNluXGJUaiDIB7cjsCHl6EOEkUHdAHTneCRprJ3BLDq7T6TGDGQKCQIv9ib0xMvVmQkw2sVqqbP68IHdrszjGhfmxeI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474120; 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=h622qNXL5D9ub706tAxSCTUj5rtAlZoCYbtuZgQ7li3YflzdA1AJyYA2hDYuNccnHwjQRmTzxCYB9qd8fQQ91qTHQofqu3C6AO8DCwYYgVjV4jASc8MjaSJonF330HUJs17AbRyw5OeuN2a5fEt1jJBfRbcqkbGMr38uaxkUbfA= 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 177747412050872.27780658205575; Wed, 29 Apr 2026 07:48:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6C1-0004iE-SE; Wed, 29 Apr 2026 10:47: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 1wI6Bw-0004Zs-I1 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:10 -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 1wI6Bu-0004bp-Vp for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:08 -0400 Received: by mail-ot1-x335.google.com with SMTP id 46e09a7af769-7dca5f64e86so7988144a34.0 for ; Wed, 29 Apr 2026 07:47:05 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.47.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:47:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474024; x=1778078824; 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=LEAlQik/XnQYUJQfHzKLn8DjYpB2NPC/xmvHGrr2Yuq/cLKM9I73W3UG14N/JCcuj/ zI+ZvHU498ThfW5ZldweEwM2+EhJu97Tc/WglSKc0PgZq9ebQt2Y40FKxw+YtPLxmtTq +H9TJjEYWTueZwRNmTBpmlQ9GaaTu3KMnds1vxBuB4X7ogPsP6ZOR3nRv8acuugSpEMF Qx1jdntVWE8VHB2PeM1RI8SgBwR15gdigqvSapPqR97S6AqISDSoOqEpHepvCINPT791 Xhn3TmgCRqqCBNrEiUGni0Jjc+FdP4DrCe4SBRL53BAa/vHxaP0kjW/2ZUKPyWv+9Sb7 L3QA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474024; x=1778078824; 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=F2eRFaz7GAIXLAnfuOdTtl122/64YeEOfKt6BYAdB3epy05zOoa9R5k8fhCyOuP123 MbiB9k+m9DVzLu80FDiZz4D9sYE/tVzrHT8o4ir+tFg/cwn/RnX68wBAmay+wjOy0WLz gRZOKjfPjXy7CttHqu5M36GYu483d23bQnpqCrtFFB1uOHRcsIREDdtRy0xxwx1gUXUh eAW25rgmnX1VPuXXa1VWZWaK6R+oWAwyZ6VMh6sr6Ptj1Cp7JYG+PDApnjMYzPVSuAKv g7yPdBF8+iJW2YdAaKL7WvHsTB2aOt39Sy5AcsKQOvV0ztSLnYCF/XLY3n8Qot3KKDIz GP4Q== X-Gm-Message-State: AOJu0Yy4LfDE0tq4O3YOHBbw2PBtlmhHcirmDlqs5TG7jI+eLU4ZZ2as yJ6A9+Sl6/J5hahix/TPMPe+NaLB1OQLMlSsJ0CXNcetaXBpADpGCNlpxz41BKfuzcY= X-Gm-Gg: AeBDiesp0bHCLdsDTrf0PbPGlsrfHWZftBphO16mVVXjHUC0YRgdLsejz+3jNVhCTBe sfklzGCugSBnGgAjefxdJEgccXHAz2woTTH63//FKYJuN01dOabnHNz76KsNETWSFT+hBCa80Hs qNXqYWBeVO+8XywY4swRc4go+Hs5hPSg7srzkIXM/G2VN2kpfDPqv/7TJdIp7Dy42zucTp/dkqU VwuYgpQ7C7z0qPiCJGnyjmjL+h9kmHRiOzTLjdj774T8o+pAyQO34blILaYZtM8gN1LR+/p9yMD 0V5KQYiW0watEn/jkQlYjfo3g+pDECKYAvJuC5YXlIKFPQhdpa+dqN6By6ceJd/5ChIcnTIyc0Z wHeZ4dDljvxCtOR7zPcWZl7mTWqBrVws/dRYWKqArUCXqzw8Qw1zATlXfKBNaEE3p/LMyZJ5acC tkWUNbnjV39jaOEwn4JB2f X-Received: by 2002:a05:6820:1c8c:b0:696:2cf3:3bc3 with SMTP id 006d021491bc7-696684f21cfmr1910299eaf.41.1777474024187; Wed, 29 Apr 2026 07:47:04 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:18 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-12-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1215; i=imp@bsdimp.com; h=from:subject:message-id; bh=xbGD7IcDXbypQMwK7rI7j0iz7UJrizyHubokpLPYvRQ=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl948SF6Ai/tO+7OXoit/A5zE3r0e4KfFFUJ 0wTI3lSGLyJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfQAKCRBsHNEofbAR AK7dEADMpJqmSOQE/EGBAFmoRw+xeT6OfUSHwY0+SfeD/bEfinHJzPbVRlDTOrrOep9SDljbcUu kjgMrRd6FPI8gqfs45Scm0hW3vmCoXyxKvr1iso26yp2dEF+6Z2AxuqohwENk+F3jzZNGd/SWob xSRFrb+iPEh8Z3ziC6tLGArPBquOtptmhLwJmGmNkG2p0m9U8SLCqfe/m0y+YvTB+KMtDSxX8yC 0Y5E/RDJKyFyOPswqvcLFmVvCvuITQvUOCPpDFs1e85FsYCC/hB2W37SQJ+C5WHw15Iro+sqmHB TbN1OToh4BLGB5IJQhXnmo/BmLZAsmm2WZNWO6qPUMvpWjLrOR+vGYiJ33rT3XCeLQN+RNnVZqd ZyXbvlx1bMRESgcXGaoWudJa6o7SoDnLXR5K0STa1Yu8cEddp0u7h1SKkIa/13KwOiJSMxykkUV cMkVyHFVQsyCvrLjfWwO9HnBdmvpPBhhTsL7G50VTSJxnuQLSDQBdjJ+k5182VituIRGJMAi9XG McAWpW+bE/J8UD7bsSjegqWktvsVJP6MqBha91eU/k1Ck/+WWAhSbsy6CUQDj7C2FQVEbRRg8ca jEThfLt5NCtu8zmk2Vj8XybY6sR2Pc8+Y5pIYlnfylWtNVheRkWIkgBTC8mgDt3ssn7aV0sis/v sT/GEAdeLN+aTUA== 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: 1777474121197158500 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474068; cv=none; d=zohomail.com; s=zohoarc; b=Q3L4HQuctJLKpZtdCvAN8TbBT0poyf11ajsqxkO49Ot/AGZ5nxgxzy4rhwOyCNGqUmFzJ9n8OvuqVyMP5LTX0mC/SICzpTbaqXcpXkPPU0Rq/JAarSiFFi+0k5L/+/oqw6EsgEzuVxQMAoDcSLsjPpIX9Xtv2VGSFxVAlFRRjbk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474068; 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=fbI9dAGFT8sFoCq8NpqUf6kbXu8DDqWgQeIb6FFWwqUpu5EMJ1JBo3406Wyk1D0WYqJ4W0nV4vd55QaAk1j46p6oknh9cPwdxGDw1ye94Tv787gEQJ3Jxoh3UljG6BmCYcgW6N5hkPyvNiafDil9ePCw9T6E7fDwvp6aXc3Uiss= 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 177747406834544.66967924195228; Wed, 29 Apr 2026 07:47:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6CE-00054c-SF; Wed, 29 Apr 2026 10:47:26 -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 1wI6C4-0004lG-Dc for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:16 -0400 Received: from mail-ot1-x333.google.com ([2607:f8b0:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6C2-0004er-Em for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:15 -0400 Received: by mail-ot1-x333.google.com with SMTP id 46e09a7af769-7dbe07d3ec3so6230169a34.0 for ; Wed, 29 Apr 2026 07:47:12 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.47.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:47:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474031; x=1778078831; 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=qEr2Kljt671d6a9qeWdETxq34XXCdhnOYnLhkl/0lEfq3b0gSP4ZpSshjc7T8oGrCd mylslD8As4qnqRS9uljXhLJQf7DP02xT9kMwPp06TxS/nSWINZ1xzo+3GVGQ8kIj9rTF exjSR82y3DxLAQeUUDcFc1ztzmwmRe3+ZmptwoCvW6hoFVjTfXUy5ZUxDUscfrK8/XKy 2nhbXOJMiZBfbvf2I+qSRo5w4y2taA0+yShzceCxwsmNw391vN1UpDRNZQMAsLhNgJix LVx7hoIOBtOWIzDx3FTaQxxFxWKRn01ULXKCgzfDaZnsNtmLJ9qhgrYLzADowKl6uLE7 e+cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474031; x=1778078831; 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=tUHSpFF8iNIXPW4hBKAw/buSpboLnBIJ8lqA59UtX9Fxwmb53ht8BdHy2Xi3UWgP7+ Bda6M7PzJZ6dQ9aUBvqmeKhTEK5SQ/4bdDZR1cWC6OLXuCKC1///MZGw979f0ORB9+eI HPM8xFowHdb/eoDBoXy0cuRjCM8Uwe5vWKl52N46JlL7HAcBhhoBKIoryKiPCtTyZc+5 +iahxvDWb6EmaFvHw6jfWgtUgpSswuTR1N6ex26CoOD6snGmKJvx4DDpnsRECGYslQqb FVCcwSIyCo6MqqAVRanEM7N98CmxyeRbCjD56xqwzYza0MR1OWoeoUE5sm+pT58MafWk Sd7Q== X-Gm-Message-State: AOJu0YxFDhxDWGld5z5vWkCau1kXGQ9hCtbA8KaG30SVTkALfBSa2FRE SziujlluykRG69lKfX8IIAyG9vL//Sj60TNCtDlVxrsqeLE7MuJ8jfEchTDLQWOOu3o= X-Gm-Gg: AeBDieu2u5ML1XSg22QeRyDALqnsqyZGDwsQW8GlHfUXTLrnKtehiVUhDAj74DLRFZ6 fPPW8kIJZlADhZQFo/C2Qe3Nsmtaz/GayhXp32CM/QdayWMi/ixZNSFH1B3gCM/7EAIEEdttuTy 9PZWm/OKfCjueCbtWqOQCHae7afCZLCDqqmifjxVLw/v/VWFvNvsBdOYMPx1xbHurlkR0YgX48Y ygJ6YWEikjpYOgfsS9epkRh67OnHeLWy+ZiqhaPuIKTSAhg+wixsDQVJ5tkn2GNKPKsLongmdWC 0c0rPD3J0y74HP+qR6hRQjUVy/WgBzZhNsHDZKwtwF/Cha2GdoJ+BD7ZcBvDxlwm6dzOyTL2d4D q6ak/ZN+pYAoAsPoBTZeVubSsz643/GoAiqMmndzdCQ6oSkwDGFzvRYM7L+4ikybWucl/5a46cG EV8uHztf8jwqi9hNsb2403 X-Received: by 2002:a05:6820:2219:b0:694:984c:1a7a with SMTP id 006d021491bc7-6965ca4d56cmr3726905eaf.10.1777474025613; Wed, 29 Apr 2026 07:47:05 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:19 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-13-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=924; i=imp@bsdimp.com; h=from:subject:message-id; bh=z3kSXcpgHWSbT8rO0VakkW+JCopL97J9zLmtTQWWN9s=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl9fWobJVTjCLnEpntYHONeQ+supMyuuPkM4 yEvMdwW7fKJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfQAKCRBsHNEofbAR AGQOEADJlUse7gewwgZjHVjE3sdSIA+qOqYGY+gVk2otoINMjAkWs0poAFl49kpmXyyIQ5GZfDK Lk2xL2l+44D1a028pKUaep2T+XU3Sic2xGFelvqvuiD7JIlE/vFqRl33Ca6fsCEPxyDkRsO/B3v Cu14gg+ngIYXEPbexaucV2cL4LmdXriw0IJETnqwzUP4ZWyJ+zff2j0k3poLA5erXwf22JxdGr4 MFZ7UwHcoH++JeItZ5IUNdlCHdNvry2b4EqOkmBCZFu24DnD0fC7cBDyK+SxDgi1jF/YStX3kMG FUql/S2rKgq1+m3VvitTSYG0HCRKmWhJbtIcoEfsdoVyo/SNAN/PIGngz+J+OwK3HBLmKLv6BJf 3sz3zEjFy45rtRSGRgaLZ1mew7oijQolzQUXcJLJyZIrW9/UXx+xAHQLAPQ4CxZxV7DTKAeBQAI TLfnUylgDVt78FOYvA8Hkt8DGPKrUjSeQmd4AHMcanulwnNK5xIbZEBrSDPJjvzjcaXBZbZFsan yTLsBgq6oRJ3fKXDXNMGwdQyTS5a4Xz00eR4b+vcWsV2qhZhv3M4j7gkPyPhuYwJI/3i2cCfmCJ 1M6Wcf0rt8aMaPsoSzDLPtwhutxgM7jeZgPAhRy3DcHw7daUPjSh4yfbI29n2qtLiCo3qHeg4JK FJpDwlbw7jdCu+g== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::333; envelope-from=imp@bsdimp.com; helo=mail-ot1-x333.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777474069660154100 Add handler function for unsupported ioctl commands that returns TARGET_ENXIO. Signed-off-by: Stacey D. Son Signed-off-by: Warner Losh Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474081; cv=none; d=zohomail.com; s=zohoarc; b=k2+mZ9pbA1OnWL0akx/IsHw+F14wQIccLAtm6zSzyXSlqqvYacvd6E2LVnAL5TjkoUsUet2FzlhTb/RTBv8Vk7zd1GaS/fLqb1LCXaXRhuCb1zLUictUA9IOPlTvvvNIeZtW3LYylZ3eL1JgWPZpya+VDw2Oyc7marLrIoTRJ+E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474081; 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=NBuVc2c8Rf0VCXVUiDnIPuG60lLOVlINkLJiKYl+VSlT6x8zIZCClp+8K3Kfh+TYpfJdx4R2p703pqokOTgH20en/MxKE1DwajZVwogSdnt7mYcNpaKNO+eZgJG9S+KBRGxd9d1et6JpWyDdGoDzNj0f034UykY+gVUXZ/MuoNA= 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 1777474081688585.4931021339327; Wed, 29 Apr 2026 07:48:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6CG-0005Bm-HM; Wed, 29 Apr 2026 10:47:28 -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 1wI6C4-0004lK-EA for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:16 -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 1wI6C2-0004fC-FN for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:15 -0400 Received: by mail-oo1-xc33.google.com with SMTP id 006d021491bc7-673ee2a98b1so6715318eaf.0 for ; Wed, 29 Apr 2026 07:47:13 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.47.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:47:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474032; x=1778078832; 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=ENZCLEkFqtWuIQ3OfxUc1HeWYZGniIGV0kUTq03hFyZFi9nUjU2eeng0iOoDM/0FFq uiq2Y1DwIAp7CUGex7cRj7x6OxHMcy9We5Zqe5orhsh6UhiOwpl5Cv0+qwVISu9UeQhi UuBTRdvzRoWXKQnaDTfjikTORjGWN2sQtvf6Vc2jzT+pJw5croAXkys8HSLbh9LbdqzA Ah+wEYBU4Khq8vhBeZEW8NV8242XeoTXfXLyWiXYN2nLvtMlOqe/I9fx29HnH7eP0Pil JwYxUsVNp21xb36OfRbl4EYLEptd95w1IQomCAUDNhNgh48S9WlDtYW1/8N6oim4LQsS vUtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474032; x=1778078832; 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=QLbfYcSZnJ6+iM+nVjBOdSNepdhIF2m/57I+RwA7maeshMafg7Bv3cnCU19lklnxqE 6pj0hWhDm7GZq9RlP0trSPVfloybEcXaD2OhHnN8TAeUeKHewqrVT5f9yTLr09UobSUv r4sHvwfMuDyIOzZka252P3WuDZdIHrQ9Fj/hrQ171NT1gJL7THpaZkiiRCtpPx6UXsYJ Ckn9l306xNUXygtnMk26wbmYiAp5rGIYqVpYMr3GM2LpRIzjCQmLngOQbEuusDqdI17+ CdfO1sT9zyMkBVT3cObPj40l1acGeF+36WBnJzsiwrjoB1kZWPNtHizVrD/MMNSw54/a 8ZLA== X-Gm-Message-State: AOJu0Yx4FEfsKaE8Yb7JKmmw3sMh0V9PQ+MVuV/KvIXAjIdpLa+Lm9/T VjRfXJehzbjJqCUDhFqr7s2w9katpzGDMzCE1bygjRDRneS3Ff6giRSHh0ou04yEHvs= X-Gm-Gg: AeBDievNz8l9g6Cvsexe/tt4bKM416p8c2sQQneM6ZhsU7w7kAZ6+eYSUHWFq0hkSAz 4dMi9q2wdFb/uJ/UwZM8ajf4OLpTKMRoXV8zL5Myi2Bpvd/BAlQliHa/iOtvWvdFINgNm2VE0lU vBk8Wh/zniLVcyqWPwbd6KNL1qk1jDLs8Yg2s4sWgMf9j6qAgx8OJJZ4HfI8GWRhxqzKPFOuPzJ d7tcxrNbJEY6sM23BMQ3LjwIGViGYVQyu+1xUmgK36tKcLBI9hMQM0XrX81RtaSe9IZcCyGA1A/ gnb2z4LvhNs7tU5aFDOTbPdib8F9M3VrGwkOBmIzIQC2rmkyMnQNg0xADFCsn4K+xECCJ+P7n85 lEZjT+TCtj6w1oZgMFVbe+TYPU+E1O2CgcdLKshDkeqrribtBBEmZT4cdeQ6F4bEExribj+IC5r FBobXzfJCnyp0Pr6EZkFuuqybsevdi/rE= X-Received: by 2002:a05:6820:f02b:b0:696:1ef9:e089 with SMTP id 006d021491bc7-6965caae4d0mr3802341eaf.25.1777474032643; Wed, 29 Apr 2026 07:47:12 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:20 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-14-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1143; i=imp@bsdimp.com; h=from:subject:message-id; bh=gptYB3Ta+ssbSfFtE/iXz28A9edNGVvJaAH+IXwJ/LE=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl99yIUDe4uxwWzbbvzQsy8A2bmd1MkG1RkW y4Xwcfgc1GJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfQAKCRBsHNEofbAR ACZTEADOMqUm6aZ9wKL92SNWjtzRhtGGeWelbWteNnWvbjZ4AC+rKIqqySKiWcpOLf3kdXce/r/ /jCSFqKaa5ZU2Ko8e9cvNWnykJkP3jr2KO11eU237yEU01/k3q8OtuOkYvdjRhd/jP1w63obw04 68rP6qcVCsu8kbgyA6fPraVrkG3qgnAW3W2bZa6/WlBYrUJg13dEr3CL4x8Tdwi+IMHBYZyRybh 4enCEbrqDbF7pTwM8kmyXDthk8xuJFfzCK8C7lGSYS6QtFw/e7Q5bu5mi2lrlzwk0DUu5qjOT8D l0ZpeM/cQXlteZ5IzgjexsW0e6eFWcsZb5AmUQ3Lz3gAoJ5zi35uDVfLf1JSwnSAOMOkwwl7P+2 VF+aUEeDfgrguZ5xDyZMWDYM4myuPE06MyH3nRu9EwNhx/I7WQ/oKzmVj9By14P+5e/cjhz5aCN RhNTvRiz5L+nVre4tJBrp/J0ET2+oyJcPy/oL2BCkgaOgrzxPsHawwexV3d6nRerAGEPWWaGfo7 B5B5/g3BVIFeLJnmym8CPHkN8BkXYoyk0B+IWdyWuVir0QSo4wuC2zH61Lf8ZtBCL0Vq2aFZvL8 evah10HSXGf6vdcWbTfdYyN0tL3dLhPUDliKeVXR714t30UMxzTzfh9gR0qKKiP/3QI715Nkjsf +wMCTD+tVrEcoaw== 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: 1777474083902154100 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474073; cv=none; d=zohomail.com; s=zohoarc; b=jSVXoVncztcaebBdOpua1dA+78+1eJiq9iSp5Rv3Usr1IS9SthuXDhjbRWaUgonXKE2KjH/dn/ejDPfTmas/QpXC9hg77DNz/M3JLjXJ2yudZN1gLu0LzVIh3oHIMxL3HIhmZ3cw0DGJseyP59y9gm28Fg3pwQewMqrmyTkdQDc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474073; 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=KQwOgnFssZEi2l48rPSjQq1Yhy4RaABGb9JPwbcfuMMjzkmKBBIaXkl8uhrQQrVj7sccQOfPl0dl1XdJ/bWa34I9MoZY0TC0x5esFl4C8Sl+6tRlfAS4HXpftpwhEXcjzCe78jXG6LxaAQBm9EdTW3INFew0nM9vT4zRDj1p9bA= 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 177747407320978.68617642281936; Wed, 29 Apr 2026 07:47:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6CI-0005ET-D0; Wed, 29 Apr 2026 10:47:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wI6C5-0004ml-IV for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:21 -0400 Received: from mail-ot1-x32e.google.com ([2607:f8b0:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6C4-0004fP-5x for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:17 -0400 Received: by mail-ot1-x32e.google.com with SMTP id 46e09a7af769-7dcc9b506d9so8757539a34.1 for ; Wed, 29 Apr 2026 07:47:14 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.47.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:47:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474034; x=1778078834; 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=uefHxCRpHr6Re6vPBgRDR6NgsYVUBKdA/idjVkme9PLdHZ6plgENdmwASsGEIQTR5I Q8D5KWmCjZwZX2RYBUY0TQrPx/Ci12hdJthH5FJkaZlmdt2atOn7D2GvBH6n4EmhGmCr BvXobSh0JLuqHQYX+Yjmc+DeBc22ORTkIc4pmIIKXL2MEyaaAQo6JKI8lk3/ijeSdBsh vYK3lNbRBjgpTS758YdznqZsOECq/t+Ov3CwgT0jh3OvhKZ0UGBkWVvjig/pL1NQ9hrM 4RD2m0U2hwKVNmYSBjJjaGIWQ1ui9D4HucGA8bzBFlr8wSN9LvxkInyC2wNXK3870RXE 8Lpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474034; x=1778078834; 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=IwtKbKGmArS+TXXEyno5xrdmrucZ/lr6PHBiyPB0hh4WZyW1FrLWeuaZEz09ZjaEmd 0ZSwOxjan9d38zBYraTSBHE2CcgsXfJxZcHWO6IDto6xYTqt53GUDTDfVW/C2LMCehu/ 66sRRLLbkQYXrM3ogoQcovM5OdepykJTqUvX8J7G7F38l2sPbCX9dDACjd6s/ynf24xd 8rWxPUDk2wTqfS28c1A064P08BVZb0jUQObP7L4R0xZ9Vy9x/anWvOLBpci0MMySnfLq QKlPNqkFwwIwpnxqeWXNX9IUdodNHzuR9jNOdTwCIUvo4lteXo1/Mm245jItaA4j5ymX BeDQ== X-Gm-Message-State: AOJu0YzQwEaPOmj7hf6cbDvF7fs8Fzl8Xp5bJvtLwJ9Mo3ELYlgfFUaE D+o2SL10d8hveq5HBz9MH97xb8PiuDOdsZ2zTzej3B9RYet/XbJTWHvj79AxEc8r0l0= X-Gm-Gg: AeBDiesVoWMLa9oV2WiYo+HR1Qrnu0A1ucA8A/2LXN4qkKaGX6UUIqhFc2LhXf+Ye8c jdtJzDodUummx8vG0ebKUN7TfgP4BXCa/B7TzIGvI0aQA6/vzHo4nFZTUUt0raeftg8c2dVrFLQ CoJRttVAY9qoFlYi3oxCl69qmh1vjBalkeLvJtEXZ8Q56ohpngVUTL8ieHCOChLROAPXZSINLlS peqQuCuRzyh0wjmAMf0YYsWe6UM/uMVTlNv0IxySp+isDadKs3EIqnQiBwBjjZ/BEq+D12C/pP2 bKPpp8yMFRFxovNxoUY6vHgDKE6wgFeaZL6UBLIqOd6N4f6VasNrmP3dCp2rk/uzYPcSwbH3qHM mkclqH/yuFAlZz1Np3m2gHJyBIOrONOkyWqonyiZONPmd0qIetTWgFqAC1wFuNCnATHp0yJnhRl X2lgBq/541MvZ4ZFZtUFxA X-Received: by 2002:a4a:ee06:0:b0:684:5041:9296 with SMTP id 006d021491bc7-6966837ddf5mr2182633eaf.10.1777474033991; Wed, 29 Apr 2026 07:47:13 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:21 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-15-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1912; i=imp@bsdimp.com; h=from:subject:message-id; bh=8zLJUOP9iTXAdsPkZjgut3g1hr2+Sb8fdxbKAXICtBw=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl+PABoojwjfc2/KfWnj8aAT/VRcaGmjHdrX YgZcMRVlpKJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfgAKCRBsHNEofbAR APo4D/9vyEElp00bR3OdFBA4Nkhvs7HIaLLncl5HSco0FnSEI9Y2vas8JDI0F6apN3Oi4BGAoUZ cuzpnxH1imQKq2TZLuGZwLP43hmzzgzOS0NSjCRelswe4DViTr8hIj/wpodLGZinE8FbpPpijiR +Mz4gvS6Hrf9k9teF4WBxvVXj8dvls5oUAqvvWASqkq9+kCLZb/4IKbaTsMRrmbRRJW84BWDD9T 5KeZBxnK1DfXnxOfAJ3w4BCRBFQtQ5hqhafhcNBwhCb+dloIgVSoyDsXk8Ki/GV/7r/kp+XSyWj aSuZTobmuyavetFD+MgU6TxWdRwovl/63H9pgru+yeQi6uFW52koYSLBcIrWGLfs9oHdL+BSFfg gQ7hpgSkol2KZKnX0UU/+J4OUQEQKC473yUVDjehr84/SqqJHVnyqYX7N3pObwBx29fzgvr7Qed Yvp9wVYJ7eF7rw5hI6FD4chHOcm3JWQCNW8xLm1dWl/LuSTGqLBZVYAqi0tUF88gn5wX05S2+Nk 8LaJD0wbugy/5ZXM4fd7dmmLCSFi54BeD8nytH24u0tZvtODlMjFyPiIlH/x1QfiIQMiecMvZhs 2pqx7iAf3wrcv/fWwlG1uOTJOF2/HABLGEiQ1VvRm1qa1Omoe2Vx3+3i5emeBkwJZCWvLLvqReA qC4e8T/1XjEZ8SQ== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::32e; envelope-from=imp@bsdimp.com; helo=mail-ot1-x32e.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777474075867154100 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474098; cv=none; d=zohomail.com; s=zohoarc; b=OrAIWUlU5gGitkmWhBjjew8yEzo+KZKABJr/eNR5d9AWm3gh2IUHrT6BRZFcT5L3ljCBqF/gt9HihnSExpjmdIipeQuLEjPR8Cc3I9mHvay3yaCVosaSW0Zaf5giO2YbP6UAQRht4tbfn0oHlHcoXAXzdApBhmpeaWnPM3gySpg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474098; 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=jxx7FwQ1j/jTjtTC0JR4Nu/wcWCKR5QpKkT5ub5JH12ZvAEgOtjfxcEmM9W/dn708jMLruBtbKXojuWj3SDc1RPRHVfSKj68B/3+fC6POb+il5c7L6FU4mTLPxHyJDlLvvomT+Mr+MeAdYKXxY7WsF1zFTXJiNvBu6nOZ79aPdY= 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 1777474098332741.5388305288196; Wed, 29 Apr 2026 07:48:18 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6CG-0005C3-Il; Wed, 29 Apr 2026 10:47:28 -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 1wI6C9-0004qM-9j for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:21 -0400 Received: from mail-ot1-x334.google.com ([2607:f8b0:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6C4-0004fz-8z for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:17 -0400 Received: by mail-ot1-x334.google.com with SMTP id 46e09a7af769-7dea1272943so943393a34.0 for ; Wed, 29 Apr 2026 07:47:15 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.47.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:47:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474035; x=1778078835; 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=l0OD4eOGXTsvfRqxJ9Y0Axz7LOJ34L+Jf4Xu1e51qQn9Z6DoMdY6XPjltTkqfPX5K5 SpjfPW+G5FhKrcm7DSkXLvea/mvD8kc2Z7wYy5BIxuFHwlyaNDWzLWlMm/JVHxG5VLZp 68WSYmbUWDGf5E9TqzT4xdnOpMyK1fRia3/y1HnB9iaOhC9Nx+7OhtwLpWEoTI20UAKN NzgfWbp3KS8zDWQtK5g9Cpsy5cSLjU4eKcCdPTFEsP+6uG0tLvAVGqycw0T6lW/IDrQR gJpHXnAVAuf64c2Sg61dWVUueSTABGVP9EbhU6X+o4ltP9gIdngJUNc1HzHPpFsRZ6tw acbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474035; x=1778078835; 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=URVgyCcd3kYFOeWAAhzY9fua/kpStosNn+8q0FiemuxPe3FClCBZQhB2OEoddv932N bykkBNJXmXuwJLz7h0HS1c77RDCyTW30WgNQ2Do5E3UuC5xUc7/ZsOZw9/NrJAw2JyEa AIeOJTtaf1kndVbG1QWtfXyI7TinwIlOLzRmQjEqe+CawK+CevNfiovN2H7bfXY/P8hl uH1PBiwgnKT1ZakELJAXj0hyRvLQxFwldpz9W+O7pQ0nxbWZYnxfKQ5f2QIixF3HpEPT hhkZpX8KroViDPbXK9g6ez0jetQnCUSAVNLzOvhtBsY5uQX9dBlyQTtyJjaagsUsDjrF 7oRg== X-Gm-Message-State: AOJu0YwKvGKO67YZ4iIKfaQuhWyT/kXO11Ql2sbHn0tl+6bLmDJ1izoG ctLiZso00GLrqjV6CyTGC30deiOywNQvwa6WmVpp35/02BOa69o+fk6qdQt/BlMvdRw= X-Gm-Gg: AeBDieuhQblR58j9tWefynWbiKVSrw0bMfLbrU5vV1Y5xa6hvt1iphNXrobm/vvE7LJ ozekIkmUMi7urEomrxK11Q6sw6My9CmxdwW+HsjDqeCPkc5pmOnaQTedkkierZUoyREmQOflUyb BM3hm0WLO1Pojnfz8XqznHhGYnH7a83eYLufVJ/8j01v6lm65o9FwpHkzvVWiUPfrOb9RArEmZk cBuYKWlvpmeUqFXtA8ODyVRNLXBoSX8uq2LbEgvmR2pjD6Yh+FKjlgVuQU/4ZWg2Xl9J0U0zytO pNFvQ1FjMJ2nWPM2qGg6cj1kM7vLfOVSGG+qjLN0Vrgn5uc7sT2sE/mA5pqTn8Hhd0ZVr0fuZ+d UQDWSl9dYYUS+ieltn6n9884xHQqX6IdT2tD2+Jd82ZZld4lCFdA7tmQuxydJ8f/6i4QGa7iLRw OAldNt+33Lwn2BIH7sVpRH X-Received: by 2002:a4a:e904:0:b0:695:818c:e552 with SMTP id 006d021491bc7-6965cbeee7fmr4135050eaf.55.1777474035001; Wed, 29 Apr 2026 07:47:15 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:22 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-16-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3864; i=imp@bsdimp.com; h=from:subject:message-id; bh=ocknaMBKcFWF+U0DHJKsIdFpogAJcD7isOX+33qY5G8=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl+T5MS7QGyCrTdd/e8EOU0/EhE9fdp8NC8q EaFfljwq36JAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfgAKCRBsHNEofbAR AHuFD/9Ba1XITWHq0F2MbIDryw7QpfwERJZE5CZeEX60wtNXxhL4wmuBNTLSFgf5fza+PKlJtEK TWJ3tD40N1nCOElkrDLfgFENYWVnm2HvN8i3+EvYAnqvLpdcH9rKrFLe5iejFm8nKZH7vMD83sh dc1pvoBfVB6oAWGIpMA37IDE1ZqgStRqVgVeCW6z0s/iDuUYmr2X5SqBTMnLfzLKSbO+opkiZRN gfvoyVrk7rgrcj6yBGk7SW7NCeMZAYyIi7n2XM+sHVkYsNb/lswRNoc4w+bE7H/zOYJKAUQAIao x8octjvT8qu/+CX1PeDErtgBx3jwKYWylhHPe9hKdpft/eIqyxf/Do/mSE7e03Sydeun/LArYNb h++cXQ5URSlSbb3ucybzKfw8kl3pwUY6bqpiB0n42hnqH3JH9OmQMTYOafBd+FHO2IFbNL/DxIq XICBSQ1PJYxuH56vMXomlGx8SM2g2OejGeY6khXOkmt693aXk8czRDUJr7mj1oGRE2lpbSnFNL8 Ux+SqaAu2R5p2gT8bdAfhR3Nqi4298kqxFLPT9WtkdpWpiCu0Q7iFNkTP0R4AOgr+OEXWvfUGFq 5jfBJrRan0TwUFCBxjm9w+Pf+HjcSg0dkBzMJhWtMttW0+2idDEWTVNItl4a9rYzjbcH8I9eGdT +ilq0acqEMFMQtg== X-Developer-Key: i=imp@bsdimp.com; a=openpgp; fpr=2035F894B00AA3CF7CCDE1B76C1CD1287DB01100 Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists1p.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::334; envelope-from=imp@bsdimp.com; helo=mail-ot1-x334.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @bsdimp-com.20251104.gappssmtp.com) X-ZM-MESSAGEID: 1777474099127158500 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 Reviewed-by: Pierrick Bouvier --- 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 19:21:11 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=1777474070; cv=none; d=zohomail.com; s=zohoarc; b=kbs6nMJXQ3NifZ3X5kfBBv78GmJrJgKOD8ydo7eF6bNyCIbBbX9aT0ub4mjEfuHsQ4EqEUgc6IC6JDNSz7LtGxqnDl63vaFIS8znC9DxevPDS7q6g6M1hWQ+dCF2CFo4rJlgYLJv8Ga1R/fbF+xvye++/9APtY9IVGRojT8IzJo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1777474070; 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=clCPJPiq5vsBHYUD0jhe5ACeKC+pGOFNmgSSZsKVI2wx+HP0xuQOR9pPv/y47p1XRIzmMlRJbMIepLikOb/58sJcWJ/6rOzYd4tNUQ5Uz2xZ+XZNNUQKqUIfU1KbOp/YbZ6gr11syYlN3MDlbZ4q73P5C4We58bUvqcubQ41wTY= 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 1777474070373580.1286712739825; Wed, 29 Apr 2026 07:47:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wI6CE-00054p-UP; Wed, 29 Apr 2026 10:47:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1wI6C9-0004qK-93 for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:21 -0400 Received: from mail-oo1-xc34.google.com ([2607:f8b0:4864:20::c34]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wI6C5-0004gQ-4n for qemu-devel@nongnu.org; Wed, 29 Apr 2026 10:47:18 -0400 Received: by mail-oo1-xc34.google.com with SMTP id 006d021491bc7-6948d7ccfbbso3973842eaf.1 for ; Wed, 29 Apr 2026 07:47:16 -0700 (PDT) Received: from rebo.bsdimp.com ([50.253.99.174]) by smtp.gmail.com with ESMTPSA id 006d021491bc7-6966b93d58csm1313984eaf.0.2026.04.29.07.47.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:47:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20251104.gappssmtp.com; s=20251104; t=1777474036; x=1778078836; 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=nKf78z6gf5glfqbwjMvkZOBKy8FmZuJLYtqs2IGGT4zPxfnFSeBEJNmW4Jz0AqOX7U Y/6u9dPVVskCQm2qyZrz7YFJzDGDur+A3B/suaeGcUmKRj56K7TOGhDNSTkX/4RCu5tN Orj1dtm4kkb9/xYMJx+25qS80jBEZPN7+9RnFCox11RvxgJqFlH4gQlMeQCV8pl1rGNi YOjAxsmXIknODVAArO+ysYBTq7Nr0b/1Jk2SXALOyxmgkhpbpkmbyD9r5bdArB2FXmKY GPupgjQzccP6SmyEdRGCony9hY+UTuAzMbbOScTQSCW/0UCUWM2xWZnENl00vBQFWNG8 AP6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777474036; x=1778078836; 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=DvwrD5rl7F9pB7jq1K0wmmR3RgJmsBEVy9jsJzU314zB+arrrITuwjq669NxVbRp/S ebCjEJa/k+R1UYsQ2rU8rNfyXYaaEO6e0T0R7MdNSVEN5+iyCaBDq6he60Z+Q61zWPfv GwLikroHsQ+/ny2vBzBsb9AReCWO/8kNCLcvqZ/0So+rGTVPFRU1ZhPloHDWvYKOGCX0 SZ5etwQrGPmAlPdrGkxFbncfPvSqY475kO0dPnNs6fyDZnIzworxyW5gLL5IG65sfLp6 rX0OykpPAhCkwmC/ReF4ZwOSewOyCIqzKDU9qpZwZtLxHOxnl7OYLtYYT3Ywc8L5Kfy8 Hc3A== X-Gm-Message-State: AOJu0YwY+xMsgi1CYEulOJa0OzCDAeYzSPfp2LSIslhiJeVUGw9m6Xf/ NwR1OXzS17Bzu4kz8rtkw0GdGIz2KBnk6lj+wNZPjJEsTF2bu+YHFu1Vs0yC31EGw1s= X-Gm-Gg: AeBDieskxjk8qgVdec/7fyQfw2h03uExMgLL4Asdcccu7PQmGD21tBUoLJ8atMBniep PKsQwusfXPJR4QXmBG+lHY+GCbt+UNILeuVi277Ek1WBwQndsi8CPsATDoXtUlaLd2cUpfQBZoj GBMOhzGNJWLYqtqPrie9ryjYqZObTBTAuDHOSLustzYUbey4VoIcra11XVsx6Q+tAGItM0vMT6l GeoLvRtdpW/tAxy2supDtVyIhiKZFdv1ciHNXQDrzeyrwrT+oS7aWV1v2ZRC5H6/ulYkavvtbB1 Kk6ZvuV80bXheKxYrWafiHXE524NkFH+aj6rVU9Kuo5b64iCavtACxP34VvzxNmUuUKKjxa8gfR 6Vp7wtf76TOhk6TkemliVMZ1bsxFwZjZRWwrgwaUV0lKcfAwy9Jupi4+5ceacHHOyIrGOpbk1aw 1YEZv7CxZJPyesyKdsMTA/ X-Received: by 2002:a05:6820:2916:b0:67e:21c9:ab55 with SMTP id 006d021491bc7-6965ca67f02mr3988469eaf.3.1777474036019; Wed, 29 Apr 2026 07:47:16 -0700 (PDT) From: Warner Losh Date: Wed, 29 Apr 2026 08:45:23 -0600 Subject: [PATCH v2 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: <20260429-ioctl-v2-17-288639bc2427@bsdimp.com> References: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> In-Reply-To: <20260429-ioctl-v2-0-288639bc2427@bsdimp.com> To: qemu-devel@nongnu.org Cc: Kyle Evans , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Pierrick Bouvier , Warner Losh , "Stacey D. Son" X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1960; i=imp@bsdimp.com; h=from:subject:message-id; bh=27UGPnZgjmD1mPVP14mIEYcoboWhKhyrLBLgJZ9KMrg=; b=owEBbQKS/ZANAwAKAWwc0Sh9sBEAAcsmYgBp8hl+kDTgmMcGQ4NI1KAyRRa7VMkc+7LKb6oyk 2Ton5UGLriJAjMEAAEKAB0WIQQgNfiUsAqjz3zN4bdsHNEofbARAAUCafIZfgAKCRBsHNEofbAR AGo/EACS05mwjRl9ceJRe4qdolGGUfnbspHuk9Sxs9eTYqIiyI+BInQbXYRQmlmwqaL7QyVWFVW aYW+IEQ6G/dorhGP38NQW423m/ncJSlnwK7oCDmK+IDbOt9zSvMx65yDLXXcibS+vbRv/0wIlrb ccq0HB1zmqknKoRNFh8h9SMwnUV/U2ku7DxPHf15enCZroUlOsLgFFPp1xTxYKfkEykK/jp9KLc WkoEsCy3unfbGR1WfxeVHUfciZvedgwUVfHmkeTsOzjqRN05/QEVkYViGyOEQeSQ8+5lb12amUo vr+bt6RmE5P2yPM+UHyBG/nEv1CLQLCW5JPckoA7uddSKrt5SNTsp+xSAV5Cr4nI3HPGDvHpql1 kq+zY/j/vJj75M01EsZSoBcUmHeAwyIVbeABZdgARiTprtNm0WL293bpz0xjFOG+TqhxFPVwxkY i4DSaPHTeA/QKNk1fG1oyCKmf4jizlh2Hy79Ep7Kc9j+d1YBUSNyf6dUdZBx7HnC/nOxnE1xNKh wclzrUvsNwEv/PSIVmrnWjr/hPajWouWlQctA+xJLuk1QhplhuXChj8tkh0fPEjMInJxYvhVwBS lMAmBWs55ei8q54bOUw8GHtvdRdCyjqZ3dx5akVyXMCY1mGyA1jexdx20ovG5dfTyK14wiuZjes zEMIq2RUWdfRfoQ== 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::c34; envelope-from=imp@bsdimp.com; helo=mail-oo1-xc34.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: 1777474071020158500 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 Reviewed-by: Pierrick Bouvier --- 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