Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Aug 2023 20:05:27 GMT
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: cbe53bd975b7 - main - pcm: Turn SND_DECLARE_FILE into a no-op.
Message-ID:  <202308182005.37IK5R3S001691@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by jhb:

URL: https://cgit.FreeBSD.org/src/commit/?id=cbe53bd975b7fa05eb5165c5d6bbcb7b4b37407f

commit cbe53bd975b7fa05eb5165c5d6bbcb7b4b37407f
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2023-08-18 20:04:33 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2023-08-18 20:04:33 +0000

    pcm: Turn SND_DECLARE_FILE into a no-op.
    
    SND_DECLARE_FILE originally added lines to the output of /dev/sndstat
    listing the $FreeBSD$ strings for individual files, but only if the
    value of hw.snd.verbose was raised to 3.  With the switch to Git these
    strings became meaningless as they were now all identical and no longer
    contained the path (which was implicitly included previously via the
    keyword expansion).
    
    This commit removes all of the infrastructure to support file version
    strings from /dev/sndstat, but preserves the KPI/KBI by turning the
    SND_DECLARE_FILE macro into a nop and changing the backing sysinit
    functions into null functions and is suitable for merging to
    stable/13.
    
    A future commit will remove SND_DECLARE_FILE entirely.
    
    Reviewed by:    kbowling, emaste
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D41498
---
 sys/dev/sound/pcm/sndstat.c | 67 ++++++++++-----------------------------------
 sys/dev/sound/pcm/sound.h   | 15 ++--------
 2 files changed, 17 insertions(+), 65 deletions(-)

diff --git a/sys/dev/sound/pcm/sndstat.c b/sys/dev/sound/pcm/sndstat.c
index fc92bd783587..6bd3e56687bf 100644
--- a/sys/dev/sound/pcm/sndstat.c
+++ b/sys/dev/sound/pcm/sndstat.c
@@ -52,7 +52,6 @@
 
 SND_DECLARE_FILE("");
 
-#define	SS_TYPE_MODULE		0
 #define	SS_TYPE_PCM		1
 #define	SS_TYPE_MIDI		2
 #define	SS_TYPE_SEQUENCER	3
@@ -561,8 +560,6 @@ sndstat_create_devs_nvlist(nvlist_t **nvlp)
 		struct snddev_info *d;
 		nvlist_t *di;
 
-		if (ent->dev == NULL)
-			continue;
 		d = device_get_softc(ent->dev);
 		if (!PCM_REGISTERED(d))
 			continue;
@@ -1063,21 +1060,16 @@ sndstat_register(device_t dev, char *str, sndstat_handler handler)
 	const char *devtype;
 	int type, unit;
 
-	if (dev) {
-		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 if (!strcmp(devtype, "sequencer"))
-			type = SS_TYPE_SEQUENCER;
-		else
-			return (EINVAL);
-	} else {
-		type = SS_TYPE_MODULE;
-		unit = -1;
-	}
+	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 if (!strcmp(devtype, "sequencer"))
+		type = SS_TYPE_SEQUENCER;
+	else
+		return (EINVAL);
 
 	ent = malloc(sizeof *ent, M_DEVBUF, M_WAITOK | M_ZERO);
 	ent->dev = dev;
@@ -1108,10 +1100,9 @@ sndstat_register(device_t dev, char *str, sndstat_handler handler)
 	return (0);
 }
 
-int
-sndstat_registerfile(char *str)
+void
+sndstat_registerfile(void *dummy __unused)
 {
-	return (sndstat_register(NULL, str, NULL));
 }
 
 int
@@ -1134,24 +1125,9 @@ sndstat_unregister(device_t dev)
 	return (error);
 }
 
-int
-sndstat_unregisterfile(char *str)
+void
+sndstat_unregisterfile(void *dummy __unused)
 {
-	struct sndstat_entry *ent;
-	int error = ENXIO;
-
-	SNDSTAT_LOCK();
-	TAILQ_FOREACH(ent, &sndstat_devlist, link) {
-		if (ent->dev == NULL && ent->str == str) {
-			TAILQ_REMOVE(&sndstat_devlist, ent, link);
-			free(ent, M_DEVBUF);
-			error = 0;
-			break;
-		}
-	}
-	SNDSTAT_UNLOCK();
-
-	return (error);
 }
 
 /************************************************************************/
@@ -1177,8 +1153,6 @@ sndstat_prepare(struct sndstat_file *pf_self)
 	/* generate list of installed devices */
 	k = 0;
 	TAILQ_FOREACH(ent, &sndstat_devlist, link) {
-		if (ent->dev == NULL)
-			continue;
 		d = device_get_softc(ent->dev);
 		if (!PCM_REGISTERED(d))
 			continue;
@@ -1226,19 +1200,6 @@ sndstat_prepare(struct sndstat_file *pf_self)
 	if (k == 0)
 		sbuf_printf(s, "No devices installed from userspace.\n");
 
-	/* append any file versions */
-	if (snd_verbose >= 3) {
-		k = 0;
-		TAILQ_FOREACH(ent, &sndstat_devlist, link) {
-			if (ent->dev == NULL && ent->str != NULL) {
-				if (!k++)
-					sbuf_printf(s, "\nFile Versions:\n");
-				sbuf_printf(s, "%s\n", ent->str);
-			}
-		}
-		if (k == 0)
-			sbuf_printf(s, "\nNo file versions.\n");
-	}
 	sbuf_finish(s);
     	return (sbuf_len(s));
 }
diff --git a/sys/dev/sound/pcm/sound.h b/sys/dev/sound/pcm/sound.h
index 8ab3a05cbbf5..1b9168b9171b 100644
--- a/sys/dev/sound/pcm/sound.h
+++ b/sys/dev/sound/pcm/sound.h
@@ -347,20 +347,11 @@ void snd_mtxassert(void *m);
 
 typedef int (*sndstat_handler)(struct sbuf *s, device_t dev, int verbose);
 int sndstat_register(device_t dev, char *str, sndstat_handler handler);
-int sndstat_registerfile(char *str);
+void sndstat_registerfile(void *);
 int sndstat_unregister(device_t dev);
-int sndstat_unregisterfile(char *str);
+void sndstat_unregisterfile(void *);
 
-#define SND_DECLARE_FILE(version) \
-	_SND_DECLARE_FILE(__LINE__, version)
-
-#define _SND_DECLARE_FILE(uniq, version) \
-	__SND_DECLARE_FILE(uniq, version)
-
-#define __SND_DECLARE_FILE(uniq, version) \
-	static char sndstat_vinfo[] = version; \
-	SYSINIT(sdf_ ## uniq, SI_SUB_DRIVERS, SI_ORDER_MIDDLE, sndstat_registerfile, sndstat_vinfo); \
-	SYSUNINIT(sdf_ ## uniq, SI_SUB_DRIVERS, SI_ORDER_MIDDLE, sndstat_unregisterfile, sndstat_vinfo);
+#define SND_DECLARE_FILE(version)
 
 /* usage of flags in device config entry (config file) */
 #define DV_F_DRQ_MASK	0x00000007	/* mask for secondary drq */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202308182005.37IK5R3S001691>