From nobody Sun Apr 12 13:44:09 2026 X-Original-To: dev-commits-src-branches@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 4ftsG22k3yz6ZM7r for ; Sun, 12 Apr 2026 13:44:10 +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 "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ftsG15yKyz3kgn for ; Sun, 12 Apr 2026 13:44:09 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776001449; 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=MJP2SL7PrCkDg/+tDRyorVVWrMUQ6TOGhkyZTkN5gCs=; b=pes5+aoaXJSaMtTT1c+RFIVELxjgUbIrxDV3YFEggSKmEgYaW4zUQTCKB0qsFyWiD0Gagn G7qTHhvRUwi8mFUTctm2d4Vgx9cdeCCNMIWB5E1rkXUypvgQ0umU41qoGRJE4NnmwOAI5e DAhuFr4XgYb3V8Pn85AXEcH2JlrTakD7KkkGrUqA/yciZ7LAl1MIC+8TtY1F36Dw3qFvHY 4ciTkgt1nnHsZPNcE9cEkHh4wGO6ljS16zZdfDNg3RZHTdEK1wSCwhtgqnMmLLCpTKMikj dubQ6HA9bg4OxUwt+/vFWm2D0I99Ls77ZkUmr+DSwqN72o7auN6A90zrCskQwQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776001449; a=rsa-sha256; cv=none; b=iziVB50Ksj6C7ikx9qirD+IGDCCRASzxEr7JPdfIUHBXmKAS69GrbGWTrAmvoqTK7RgTM/ MQT2AHu1Lbg3fa/w+RVOEf0Vs0K96Tx6Y+wEDguQqDZpfXn7CoNFPQTuLmWb21rAIdNArm B8KPkqMc9AceyN5KlEnzh6S1gVGkhA7YQ4/cy3DveKHAPFMOvqSVoyhynF+mKt0qQbHcRh aG7PLFh51peZupjstPBd+dLsrIqNd2BwXlz/l/u0Fg8RXtdkvi1R8UbpmXtWRWC41A2/SV aWubkg/xWZuJHFSmg7X7C4gSOPcSKYhTNt31ZEJt4vJSMHctnRkd5Vg0d4pdDQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776001449; 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=MJP2SL7PrCkDg/+tDRyorVVWrMUQ6TOGhkyZTkN5gCs=; b=PJhtpxGQ78LORddJ84iao0E4JoZvtKITBKCGfNmj+BdXCWWUgcB9M56BtWpaEfQz8iURW+ QZl+2MR+q0QJF/nFxxqykGOZ9FlCbuANn7E0t5y1Q9hDiRWRUC7LC00uVwBSrkKIB0gPtM 2oc0HA+iSDPL3QKFKGHBhGll2I81eJTcFNkN3YAsyEHw4asCPghrTjOCDM7hevoGqDsVWC fGGEnauYZLi7Dvji0zygVAJ5EPQR3J5ECl3tlsEc5c3j8RUs7sRDHYl1RLVj3gsnr2nTM+ 012J+bfRyjwjF+8kxPf0dpGQ0q9hqgZn4T8EXUdqT3uXcQzfvuGQgympIEro2A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4ftsG15F4Mz4fS for ; Sun, 12 Apr 2026 13:44:09 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 42f4f by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Sun, 12 Apr 2026 13:44:09 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 4bb6ec63dace - stable/14 - stand: use a common function in gfx_fb for setting up teken colors List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/14 X-Git-Reftype: branch X-Git-Commit: 4bb6ec63dace8fb6d522fe246700ffc30bc79ab5 Auto-Submitted: auto-generated Date: Sun, 12 Apr 2026 13:44:09 +0000 Message-Id: <69dba1a9.42f4f.5b9a1a20@gitrepo.freebsd.org> The branch stable/14 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=4bb6ec63dace8fb6d522fe246700ffc30bc79ab5 commit 4bb6ec63dace8fb6d522fe246700ffc30bc79ab5 Author: Kyle Evans AuthorDate: 2025-08-22 03:48:14 +0000 Commit: Kyle Evans CommitDate: 2026-04-12 13:43:37 +0000 stand: use a common function in gfx_fb for setting up teken colors These are basically identical, with exception to the hook installed which is specific to the loader we're building by necessity. Pull these out into common/gfx_fb.c and just parameterize the hooks to make it easier to change the logic. Reviewed by: imp (cherry picked from commit c43de099d0138b369b705b3af2c3254d3f3afc6e) --- stand/common/gfx_fb.c | 31 +++++++++++++++++++++++++++++++ stand/common/gfx_fb.h | 1 + stand/efi/libefi/efi_console.c | 23 +---------------------- stand/i386/libi386/vidconsole.c | 21 +-------------------- 4 files changed, 34 insertions(+), 42 deletions(-) diff --git a/stand/common/gfx_fb.c b/stand/common/gfx_fb.c index 67f757983cd3..9aa0431a04d6 100644 --- a/stand/common/gfx_fb.c +++ b/stand/common/gfx_fb.c @@ -223,6 +223,37 @@ gfx_parse_mode_str(char *str, int *x, int *y, int *depth) return (true); } +void +gfx_fb_setcolors(teken_attr_t *attr, ev_sethook_t sethook, + ev_unsethook_t unsethook) +{ + const char *ptr; + char env[10]; + + /* + * On first run, we setup an environment hook to process any color + * changes. If the env is already set, we pick up fg and bg color + * values from the environment. + */ + ptr = getenv("teken.fg_color"); + if (ptr != NULL) { + attr->ta_fgcolor = strtol(ptr, NULL, 10); + ptr = getenv("teken.bg_color"); + attr->ta_bgcolor = strtol(ptr, NULL, 10); + + teken_set_defattr(&gfx_state.tg_teken, attr); + } else { + snprintf(env, sizeof(env), "%d", + attr->ta_fgcolor); + env_setenv("teken.fg_color", EV_VOLATILE, env, + sethook, unsethook); + snprintf(env, sizeof(env), "%d", + attr->ta_bgcolor); + env_setenv("teken.bg_color", EV_VOLATILE, env, + sethook, unsethook); + } +} + static uint32_t rgb_color_map(uint8_t index, uint32_t rmax, int roffset, uint32_t gmax, int goffset, uint32_t bmax, int boffset) diff --git a/stand/common/gfx_fb.h b/stand/common/gfx_fb.h index 17e419d8ffd3..d12bcd76b7fa 100644 --- a/stand/common/gfx_fb.h +++ b/stand/common/gfx_fb.h @@ -277,6 +277,7 @@ void gfx_fb_bezier(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, int gfx_fb_putimage(png_t *, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); bool gfx_parse_mode_str(char *, int *, int *, int *); +void gfx_fb_setcolors(teken_attr_t *, ev_sethook_t, ev_unsethook_t); void term_image_display(teken_gfx_t *, const teken_rect_t *); void reset_font_flags(void); diff --git a/stand/efi/libefi/efi_console.c b/stand/efi/libefi/efi_console.c index a112528d8c95..26b38603bb3b 100644 --- a/stand/efi/libefi/efi_console.c +++ b/stand/efi/libefi/efi_console.c @@ -1041,28 +1041,7 @@ cons_update_mode(bool use_gfx_mode) a = teken_get_defattr(&gfx_state.tg_teken); attr = *a; - /* - * On first run, we set up the efi_set_colors() - * callback. If the env is already set, we - * pick up fg and bg color values from the environment. - */ - ptr = getenv("teken.fg_color"); - if (ptr != NULL) { - attr.ta_fgcolor = strtol(ptr, NULL, 10); - ptr = getenv("teken.bg_color"); - attr.ta_bgcolor = strtol(ptr, NULL, 10); - - teken_set_defattr(&gfx_state.tg_teken, &attr); - } else { - snprintf(env, sizeof(env), "%d", - attr.ta_fgcolor); - env_setenv("teken.fg_color", EV_VOLATILE, env, - efi_set_colors, env_nounset); - snprintf(env, sizeof(env), "%d", - attr.ta_bgcolor); - env_setenv("teken.bg_color", EV_VOLATILE, env, - efi_set_colors, env_nounset); - } + gfx_fb_setcolors(&attr, efi_set_colors, env_nounset); } } diff --git a/stand/i386/libi386/vidconsole.c b/stand/i386/libi386/vidconsole.c index 414803e9af3d..3938bd7822ea 100644 --- a/stand/i386/libi386/vidconsole.c +++ b/stand/i386/libi386/vidconsole.c @@ -956,26 +956,7 @@ cons_update_mode(bool use_gfx_mode) a = teken_get_defattr(&gfx_state.tg_teken); attr = *a; - /* - * On first run, we set up the vidc_set_colors() - * callback. If the env is already set, we - * pick up fg and bg color values from the environment. - */ - ptr = getenv("teken.fg_color"); - if (ptr != NULL) { - attr.ta_fgcolor = strtol(ptr, NULL, 10); - ptr = getenv("teken.bg_color"); - attr.ta_bgcolor = strtol(ptr, NULL, 10); - - teken_set_defattr(&gfx_state.tg_teken, &attr); - } else { - snprintf(env, sizeof(env), "%d", attr.ta_fgcolor); - env_setenv("teken.fg_color", EV_VOLATILE, env, - vidc_set_colors, env_nounset); - snprintf(env, sizeof(env), "%d", attr.ta_bgcolor); - env_setenv("teken.bg_color", EV_VOLATILE, env, - vidc_set_colors, env_nounset); - } + gfx_fb_setcolors(&attr, vidc_set_colors, env_nounset); /* Improve visibility */ if (attr.ta_bgcolor == TC_WHITE)