]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
bsd-user: Add target_to_host_sockaddr_in6 function
authorStacey Son <sson@FreeBSD.org>
Sat, 14 Mar 2026 17:32:52 +0000 (11:32 -0600)
committerWarner Losh <imp@bsdimp.com>
Thu, 7 May 2026 02:19:43 +0000 (20:19 -0600)
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 Son <sson@FreeBSD.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@oss.qualcomm.com>
Signed-off-by: Warner Losh <imp@bsdimp.com>
bsd-user/bsd-ioctl.c

index 69d1ea171852841df799f9fa66121d717d7c4f87..d2eb9105fc59c796465eafc1974e93ab7f1177ca 100644 (file)
@@ -249,3 +249,14 @@ static abi_long do_ioctl_unsupported(__unused const IOCTLEntry *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);
+}