From nobody Fri Jan 9 23:27:56 2026 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 4dnycY1D3Fz6MYLh for ; Fri, 09 Jan 2026 23:27:57 +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 "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dnycX5grpz3nBd for ; Fri, 09 Jan 2026 23:27:56 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768001276; 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=VqjL1WDxTOp9PwRoyz0RKjBBdQUM7uAGBZdnDJctJvk=; b=tgbJjBpCc+adtev8v++HNAwE5qAXJUV1lX4wQ/B22lsJxCRVuQ4wHuMkM2C4twDlZU2YKj K0MIU4AumXPW8h8lmgoXOTPjzX3TiFH0M0G3slDqgTyMDQA77KRs+Ratk4BT2YK5c16XXX nkge5dVqHIQ9kicOkrSLGri5IgA2om55ZR9/PGraKrkVBrUl5UiQdlbo3LR4QtxStG2pzm YYABLtNy7Xp9h3pCHjytHz94S8pBqCrFHY3yHFP/PIJj7mrcKQH5HoeA8dJNKeodHxRulM s9L2IM9YabOgsFVSpCGMshJX4fndPu02i/c3MdNqWhlpIJCz0wGPgHczSMYnhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1768001276; 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=VqjL1WDxTOp9PwRoyz0RKjBBdQUM7uAGBZdnDJctJvk=; b=lO757zS8PWZigYR8f9YFA6vXGfH2AC0NKXApl9J6LJ9IMFd1RZWKOdmrkmD9zTuBCcclIm msSPKFUBmb+8tiXL2+dJ7+0z9AL/f8681ybJufjIUgtUKW1GT++NWmF1lQ/gi9G+sjZ1bc MVkArXSTA1ZVwNx6a9iadD7Z7UEtPnQFwUdxzGn/CKIj4fhAfR3FwCx/9pdojlEufNfuQ7 d/FEvpsOIAlCMwKU10NfIgZ3oKOVhKcWqaUPayt7mG281+ed2sE+ulnyYF/aHmsEkBKw5k yCxB2UCE1n80IoVW36lbcBvcAe778ppzj8pvlMMn5enZHvwOMGcvGXFZIxJC8Q== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1768001276; a=rsa-sha256; cv=none; b=RCx/XjHeITf4oVwyqdX7JHv4iFcxW2U+5eeN4TZeQ1RuOo+uXkEt1hgJKrduTJ1pqxS+ou AB80OUeE2yxyopPl3QkCzqtnNRCqjO1DGxSzM+2k1CoVfbNfFxHQ3Dg/pdQ7xDC1qD556A gVGIGWJZm00ffJmMPSSbMqicRinOra4YmR6889rY31q9/J07827zK3b/pviaNnJu7sFsge wyKB5V5TjcPixTh1pEeATTOSIRLteunnWGFJSGZvRcYPf+jPM571McFdYJFyN+/WNZ8rWO ZXIbB1F/rHiX7LGjYLcbXrUaU5GSlBuDnficl2ndKcFjfyU5G2PM5Tw/ENMHkg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dnycX5HtQzTV2 for ; Fri, 09 Jan 2026 23:27:56 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 30cf1 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Fri, 09 Jan 2026 23:27:56 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Christos Margiolis Subject: git: 1cebe00c289f - stable/15 - sound: Take device type into account in sndstat 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: christos X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 1cebe00c289f574031ffb5abc565fb89c5c8abcf Auto-Submitted: auto-generated Date: Fri, 09 Jan 2026 23:27:56 +0000 Message-Id: <69618efc.30cf1.14b4adbf@gitrepo.freebsd.org> The branch stable/15 has been updated by christos: URL: https://cgit.FreeBSD.org/src/commit/?id=1cebe00c289f574031ffb5abc565fb89c5c8abcf commit 1cebe00c289f574031ffb5abc565fb89c5c8abcf Author: Christos Margiolis AuthorDate: 2026-01-02 16:56:46 +0000 Commit: Christos Margiolis CommitDate: 2026-01-09 23:27:24 +0000 sound: Take device type into account in sndstat sndstat will be extended to work with MIDI devices as well, so separate functionality based on the device type. Sponsored by: The FreeBSD Foundation MFC after: 1 week Reviewed by: markj Differential Revision: https://reviews.freebsd.org/D54141 (cherry picked from commit 2aa16666e2fa5c98be8d330cd0c32c9dc3801ba7) --- sys/dev/sound/pcm/sound.c | 2 +- sys/dev/sound/sndstat.c | 84 ++++++++++++++++++++++------------------------- sys/dev/sound/sndstat.h | 7 +++- 3 files changed, 47 insertions(+), 46 deletions(-) diff --git a/sys/dev/sound/pcm/sound.c b/sys/dev/sound/pcm/sound.c index 1e4b2eebdcaa..8ce369bfce5e 100644 --- a/sys/dev/sound/pcm/sound.c +++ b/sys/dev/sound/pcm/sound.c @@ -427,7 +427,7 @@ pcm_register(device_t dev, char *str) else if (snd_unit_auto == 1) snd_unit = pcm_best_unit(snd_unit); - sndstat_register(dev, d->status); + sndstat_register(dev, SNDST_TYPE_PCM, d->status); return (dsp_make_dev(dev)); } diff --git a/sys/dev/sound/sndstat.c b/sys/dev/sound/sndstat.c index eee9e0b18108..b0ac7f7d0824 100644 --- a/sys/dev/sound/sndstat.c +++ b/sys/dev/sound/sndstat.c @@ -52,9 +52,6 @@ #include "feeder_if.h" -#define SS_TYPE_PCM 1 -#define SS_TYPE_MIDI 2 - static d_open_t sndstat_open; static void sndstat_close(void *); static d_read_t sndstat_read; @@ -75,7 +72,8 @@ struct sndstat_entry { TAILQ_ENTRY(sndstat_entry) link; device_t dev; char *str; - int type, unit; + enum sndstat_type type; + int unit; }; struct sndstat_userdev { @@ -688,22 +686,26 @@ sndstat_create_devs_nvlist(nvlist_t **nvlp) return (ENOMEM); TAILQ_FOREACH(ent, &sndstat_devlist, link) { - struct snddev_info *d; - nvlist_t *di; + if (ent->type == SNDST_TYPE_PCM) { + struct snddev_info *d; + nvlist_t *di; - d = device_get_softc(ent->dev); - if (!PCM_REGISTERED(d)) - continue; + d = device_get_softc(ent->dev); + if (!PCM_REGISTERED(d)) + continue; - err = sndstat_build_sound4_nvlist(d, &di); - if (err) - goto done; + err = sndstat_build_sound4_nvlist(d, &di); + if (err) + goto done; - nvlist_append_nvlist_array(nvl, SNDST_DSPS, di); - nvlist_destroy(di); - err = nvlist_error(nvl); - if (err) - goto done; + nvlist_append_nvlist_array(nvl, SNDST_DSPS, di); + nvlist_destroy(di); + err = nvlist_error(nvl); + if (err) + goto done; + } else if (ent->type == SNDST_TYPE_MIDI) { + /* TODO */ + } } TAILQ_FOREACH(pf, &sndstat_filelist, entry) { @@ -1154,22 +1156,14 @@ fail: /************************************************************************/ -int -sndstat_register(device_t dev, char *str) +void +sndstat_register(device_t dev, enum sndstat_type type, char *str) { struct sndstat_entry *ent; struct sndstat_entry *pre; - const char *devtype; - int type, unit; + int unit; unit = device_get_unit(dev); - devtype = device_get_name(dev); - if (!strcmp(devtype, "pcm")) - type = SS_TYPE_PCM; - else if (!strcmp(devtype, "midi")) - type = SS_TYPE_MIDI; - else - return (EINVAL); ent = malloc(sizeof *ent, M_DEVBUF, M_WAITOK | M_ZERO); ent->dev = dev; @@ -1195,8 +1189,6 @@ sndstat_register(device_t dev, char *str) TAILQ_INSERT_BEFORE(pre, ent, link); } SNDSTAT_UNLOCK(); - - return (0); } int @@ -1388,20 +1380,24 @@ sndstat_prepare(struct sndstat_file *pf_self) /* generate list of installed devices */ k = 0; TAILQ_FOREACH(ent, &sndstat_devlist, link) { - d = device_get_softc(ent->dev); - if (!PCM_REGISTERED(d)) - continue; - if (!k++) - sbuf_printf(s, "Installed devices:\n"); - sbuf_printf(s, "%s:", device_get_nameunit(ent->dev)); - sbuf_printf(s, " <%s>", device_get_desc(ent->dev)); - if (snd_verbose > 0) - sbuf_printf(s, " %s", ent->str); - /* XXX Need Giant magic entry ??? */ - PCM_ACQUIRE_QUICK(d); - sndstat_prepare_pcm(s, ent->dev, snd_verbose); - PCM_RELEASE_QUICK(d); - sbuf_printf(s, "\n"); + if (ent->type == SNDST_TYPE_PCM) { + d = device_get_softc(ent->dev); + if (!PCM_REGISTERED(d)) + continue; + if (!k++) + sbuf_printf(s, "Installed devices:\n"); + sbuf_printf(s, "%s:", device_get_nameunit(ent->dev)); + sbuf_printf(s, " <%s>", device_get_desc(ent->dev)); + if (snd_verbose > 0) + sbuf_printf(s, " %s", ent->str); + /* XXX Need Giant magic entry ??? */ + PCM_ACQUIRE_QUICK(d); + sndstat_prepare_pcm(s, ent->dev, snd_verbose); + PCM_RELEASE_QUICK(d); + sbuf_printf(s, "\n"); + } else if (ent->type == SNDST_TYPE_MIDI) { + /* TODO */ + } } if (k == 0) sbuf_printf(s, "No devices installed.\n"); diff --git a/sys/dev/sound/sndstat.h b/sys/dev/sound/sndstat.h index d6735f74af31..3ac0cf48f5a8 100644 --- a/sys/dev/sound/sndstat.h +++ b/sys/dev/sound/sndstat.h @@ -31,7 +31,12 @@ #ifndef _SNDSTAT_H_ #define _SNDSTAT_H_ -int sndstat_register(device_t dev, char *str); +enum sndstat_type { + SNDST_TYPE_PCM, + SNDST_TYPE_MIDI, +}; + +void sndstat_register(device_t dev, enum sndstat_type type, char *str); int sndstat_unregister(device_t dev); #endif /* _SNDSTAT_H_ */