From nobody Wed May 7 19:22:10 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Zt4rz2Nbrz5v9MJ; Wed, 07 May 2025 19:22:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Zt4ry6hP7z49pg; Wed, 07 May 2025 19:22:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746645730; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FtpPzCNUdVTVBt+VTCS/V9ow/dOSdDv6PNMq85Yoy7w=; b=Wb0JekUYVcl0jA2qKvkHJi0L/3pj5DWGQVTAaklRyqGiGixV7nHjftEE4FLoAUOXCA9lsE cwGetHMZgXPFJeruE2WA8PB8NYbkvc2l1ETIYDSKAn3YTAftHw2P1iIize/Iy+iDNy9tEV 2DcMKIhU6JjNPXj2zdlUVlZa93dL1wHAgmFNb3Y8ISRHh5t7Gvb0s0x+NQ6ps9kDHqaxup Sr6C1DzvuiuYzMXsU/fnD0TdHp5/xq6wts348SEFi3OSvXOqtZgnQVfp334N+C9ZWqJYeI 2zVx+pa4U8wmjFrcoq3bijtgBx+1dpZ9YS19KhGKmVaVMLJwdClRslWWT/oAzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1746645730; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=FtpPzCNUdVTVBt+VTCS/V9ow/dOSdDv6PNMq85Yoy7w=; b=RHLRog0ymVaIhQrQpxHBL4BdA2r/6/TFAJSxMw9h4mkXafal8sJcHVsme4KboJcsBi7/aq ltFKIZnertiTYx1cFNq83QlOPHj6Th81NFPu7lpdnAKQcawTx5SKghsuHySfvfHgi42xFr qD9SkqEyQXRNPwTUEDwFuxU6T/TYvyJ1MkID5//r4LF5U/7pSONtfnHHMU4sVTNnXoeyJn +mDOe+sPg+DA2rI95lXO43b/Tnv87bNWMZyHSRToKjz3V6RMhLyi1eALpH1UDK9GF+hxNn z/DEr460Mk+jfuEte5UoDEqN5BkCnt0kjlVAWkQ4jjPMH8ZQLmwVhwwA5qy1Uw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1746645730; a=rsa-sha256; cv=none; b=ubSJo5amxgk2D/WjlnsyAIqt0CRCXg6DMDGCQseyxfKPKfNxBdfYUiCX+I5dX88lKTmR0u t3nHBLO1WHE9XyP0U6ljIAUr8BDHtXbFFvQeslh3XtwY5z3C/hjDMlh4dJewgFVf7/NYQL J94oNfBb4gKPTm4VRa5Bk9TtsF7wFdtQxrx2+80aI0LxIlWYohYAhQmdt7T3HQE5BmHs5c 5HxVE9u2Yu+ddrmsQRKdrZUiBcyVDFzo4Ti36c8kmQK9t0H65jT9qPpGcwLm8RSsSaVl+J zSHZLjyWcEmerSadiPfaVugFG8tDGxJQJrLsdHPRvRm8p7e8O6F1vjWognRXSQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Zt4ry5zyvzj9L; Wed, 07 May 2025 19:22:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 547JMAQR043098; Wed, 7 May 2025 19:22:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 547JMAd1043095; Wed, 7 May 2025 19:22:10 GMT (envelope-from git) Date: Wed, 7 May 2025 19:22:10 GMT Message-Id: <202505071922.547JMAd1043095@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Jessica Clarke Subject: git: 3703f95c6fca - main - libc: Use struct tcb * rather than uintptr_t ** for the tcb List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jrtc27 X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 3703f95c6fcaede56bb1d62c4ac00b933e2eb887 Auto-Submitted: auto-generated The branch main has been updated by jrtc27: URL: https://cgit.FreeBSD.org/src/commit/?id=3703f95c6fcaede56bb1d62c4ac00b933e2eb887 commit 3703f95c6fcaede56bb1d62c4ac00b933e2eb887 Author: Jessica Clarke AuthorDate: 2025-05-07 19:20:10 +0000 Commit: Jessica Clarke CommitDate: 2025-05-07 19:20:10 +0000 libc: Use struct tcb * rather than uintptr_t ** for the tcb This lets us access via named struct members rather than magic hard-coded indices. Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D50228 --- lib/libc/gen/tls.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/libc/gen/tls.c b/lib/libc/gen/tls.c index 9772c99833d5..5b6970ad3905 100644 --- a/lib/libc/gen/tls.c +++ b/lib/libc/gen/tls.c @@ -201,10 +201,8 @@ void __libc_free_tls(void *tcb, size_t tcbsize, size_t tcbalign __unused) { uintptr_t *dtv; - uintptr_t **tls; - tls = (uintptr_t **)tcb; - dtv = tls[0]; + dtv = ((struct tcb *)tcb)->tcb_dtv; __je_bootstrap_free(dtv); libc_free_aligned(get_tls_block_ptr(tcb, tcbsize)); } @@ -232,7 +230,8 @@ __libc_free_tls(void *tcb, size_t tcbsize, size_t tcbalign __unused) void * __libc_allocate_tls(void *oldtcb, size_t tcbsize, size_t tcbalign) { - uintptr_t *dtv, **tcb; + uintptr_t *dtv; + struct tcb *tcb; char *tls_block, *tls; size_t extra_size, maxalign, post_size, pre_size, tls_block_size; @@ -261,7 +260,7 @@ __libc_allocate_tls(void *oldtcb, size_t tcbsize, size_t tcbalign) abort(); } memset(tls_block, 0, tls_block_size); - tcb = (uintptr_t **)(tls_block + pre_size + extra_size); + tcb = (struct tcb *)(tls_block + pre_size + extra_size); tls = (char *)tcb + TLS_TCB_SIZE + post_size; if (oldtcb != NULL) { @@ -270,7 +269,7 @@ __libc_allocate_tls(void *oldtcb, size_t tcbsize, size_t tcbalign) libc_free_aligned(oldtcb); /* Adjust the DTV. */ - dtv = tcb[0]; + dtv = tcb->tcb_dtv; dtv[2] = (uintptr_t)tls; } else { dtv = __je_bootstrap_malloc(3 * sizeof(uintptr_t)); @@ -279,7 +278,7 @@ __libc_allocate_tls(void *oldtcb, size_t tcbsize, size_t tcbalign) abort(); } /* Build the DTV. */ - tcb[0] = dtv; + tcb->tcb_dtv = dtv; dtv[0] = 1; /* Generation. */ dtv[1] = 1; /* Segments count. */ dtv[2] = (uintptr_t)tls; @@ -312,7 +311,7 @@ __libc_free_tls(void *tcb, size_t tcbsize __unused, size_t tcbalign) tcbalign = MAX(tcbalign, libc_tls_init_align); size = roundup2(libc_tls_static_space, tcbalign); - dtv = ((uintptr_t **)tcb)[1]; + dtv = ((struct tcb *)tcb)->tcb_dtv; tlsend = (uintptr_t)tcb; tlsstart = tlsend - size; libc_free_aligned((void*)tlsstart); @@ -327,7 +326,8 @@ __libc_allocate_tls(void *oldtcb, size_t tcbsize, size_t tcbalign) { size_t size; char *tls_block, *tls; - uintptr_t *dtv, **tcb; + uintptr_t *dtv; + struct tcb *tcb; tcbalign = MAX(tcbalign, libc_tls_init_align); size = roundup2(libc_tls_static_space, tcbalign); @@ -346,10 +346,10 @@ __libc_allocate_tls(void *oldtcb, size_t tcbsize, size_t tcbalign) abort(); } - tcb = (uintptr_t **)(tls_block + size); + tcb = (struct tcb *)(tls_block + size); tls = (char *)tcb - libc_tls_static_space; - tcb[0] = (uintptr_t *)tcb; - tcb[1] = dtv; + tcb->tcb_self = tcb; + tcb->tcb_dtv = dtv; dtv[0] = 1; dtv[1] = 1;