mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 09:41:03 -04:00
gone_in: make it __printflike()
Provide flexibility to use format strings for gone_in(). As a side effect, this removes hardcoded string "Obsolete code will be removed soon:" from the message, so now it is obligation of the deprecated code to provide a meaningful message. This required a small adoption of the existing users: midi, drm2 and le(4). Note that gone_in() is not a public KPI as it has no sense to use it outside of the FreeBSD tree. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D50783
This commit is contained in:
parent
5843b8ee02
commit
01addd846c
5 changed files with 40 additions and 35 deletions
|
|
@ -154,18 +154,11 @@ typedef void irqreturn_t;
|
|||
|
||||
#if !defined(__arm__)
|
||||
#if defined(__i386__) || defined(__amd64__) || defined(__powerpc__) || defined(__aarch64__)
|
||||
#define DRM_MSG "This code is deprecated. Install the graphics/drm-kmod pkg\n"
|
||||
#define DRM_MSG "WARNING! drm2 module is deprecated. Install the graphics/drm-kmod pkg\n"
|
||||
#else
|
||||
#define DRM_MSG "This code is deprecated."
|
||||
#define DRM_MSG "WARNING! drm2 module is deprecated.\n"
|
||||
#endif
|
||||
|
||||
#define DRM_OBSOLETE(dev) \
|
||||
do { \
|
||||
device_printf(dev, "=======================================================\n"); \
|
||||
device_printf(dev, DRM_MSG); \
|
||||
device_printf(dev, "=======================================================\n"); \
|
||||
gone_in_dev(dev, 13, "drm2 drivers"); \
|
||||
} while (0)
|
||||
#define DRM_OBSOLETE(dev) gone_in_dev(dev, 13, DRM_MSG)
|
||||
#endif /* __arm__ */
|
||||
|
||||
/* DRM_READMEMORYBARRIER() prevents reordering of reads.
|
||||
|
|
|
|||
|
|
@ -193,7 +193,8 @@ lance_attach(struct lance_softc *sc)
|
|||
if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU, 0);
|
||||
if_setcapenablebit(ifp, IFCAP_VLAN_MTU, 0);
|
||||
|
||||
gone_in(15, "le: 10/100 NIC no longer needed for Qemu/MIPS");
|
||||
gone_in(15, "Warning! le(4) to be removed: no longer needed for "
|
||||
"Qemu/MIPS\n");
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -519,7 +519,8 @@ seq_addunit(void)
|
|||
int ret;
|
||||
u_char *buf;
|
||||
|
||||
gone_in(15, "MIDI sequencer: no longer needed or used");
|
||||
gone_in(15, "Warning! MIDI sequencer to be removed soon: no longer "
|
||||
"needed or used\n");
|
||||
|
||||
/* Allocate the softc. */
|
||||
ret = ENOMEM;
|
||||
|
|
@ -738,7 +739,8 @@ mseq_open(struct cdev *i_dev, int flags, int mode, struct thread *td)
|
|||
struct seq_softc *scp = i_dev->si_drv1;
|
||||
int i;
|
||||
|
||||
gone_in(15, "MIDI sequencer: no longer needed or used");
|
||||
gone_in(15, "Warning! MIDI sequencer to be removed soon: no longer "
|
||||
"needed or used\n");
|
||||
|
||||
if (scp == NULL)
|
||||
return ENXIO;
|
||||
|
|
|
|||
|
|
@ -6258,8 +6258,10 @@ SYSCTL_INT(_debug, OID_AUTO, obsolete_panic, CTLFLAG_RWTUN, &obsolete_panic, 0,
|
|||
"2 = if deprecated)");
|
||||
|
||||
static void
|
||||
gone_panic(int major, int running, const char *msg)
|
||||
gone_panic(int major, int running, const char *msg, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
switch (obsolete_panic)
|
||||
{
|
||||
case 0:
|
||||
|
|
@ -6269,32 +6271,36 @@ gone_panic(int major, int running, const char *msg)
|
|||
return;
|
||||
/* FALLTHROUGH */
|
||||
default:
|
||||
panic("%s", msg);
|
||||
va_start(ap, msg);
|
||||
vpanic(msg, ap);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
_gone_in(int major, const char *msg)
|
||||
_gone_in(int major, const char *msg, ...)
|
||||
{
|
||||
gone_panic(major, P_OSREL_MAJOR(__FreeBSD_version), msg);
|
||||
if (P_OSREL_MAJOR(__FreeBSD_version) >= major)
|
||||
printf("Obsolete code will be removed soon: %s\n", msg);
|
||||
else
|
||||
printf("Deprecated code (to be removed in FreeBSD %d): %s\n",
|
||||
major, msg);
|
||||
va_list ap;
|
||||
|
||||
gone_panic(major, P_OSREL_MAJOR(__FreeBSD_version), msg, ap);
|
||||
va_start(ap, msg);
|
||||
vprintf(msg, ap);
|
||||
va_end(ap);
|
||||
if (P_OSREL_MAJOR(__FreeBSD_version) < major)
|
||||
printf("To be removed in FreeBSD %d\n", major);
|
||||
}
|
||||
|
||||
void
|
||||
_gone_in_dev(device_t dev, int major, const char *msg)
|
||||
_gone_in_dev(device_t dev, int major, const char *msg, ...)
|
||||
{
|
||||
gone_panic(major, P_OSREL_MAJOR(__FreeBSD_version), msg);
|
||||
if (P_OSREL_MAJOR(__FreeBSD_version) >= major)
|
||||
va_list ap;
|
||||
|
||||
gone_panic(major, P_OSREL_MAJOR(__FreeBSD_version), msg, ap);
|
||||
va_start(ap, msg);
|
||||
device_printf(dev, msg, ap);
|
||||
va_end(ap);
|
||||
if (P_OSREL_MAJOR(__FreeBSD_version) < major)
|
||||
device_printf(dev,
|
||||
"Obsolete code will be removed soon: %s\n", msg);
|
||||
else
|
||||
device_printf(dev,
|
||||
"Deprecated code (to be removed in FreeBSD %d): %s\n",
|
||||
major, msg);
|
||||
"to be removed in FreeBSD %d\n", major);
|
||||
}
|
||||
|
||||
#ifdef DDB
|
||||
|
|
|
|||
|
|
@ -566,17 +566,20 @@ void counted_warning(unsigned *counter, const char *msg);
|
|||
/*
|
||||
* APIs to manage deprecation and obsolescence.
|
||||
*/
|
||||
void _gone_in(int major, const char *msg);
|
||||
void _gone_in_dev(device_t dev, int major, const char *msg);
|
||||
void _gone_in(int major, const char *msg, ...) __printflike(2, 3);
|
||||
void _gone_in_dev(device_t dev, int major, const char *msg, ...)
|
||||
__printflike(3, 4);
|
||||
#ifdef NO_OBSOLETE_CODE
|
||||
#define __gone_ok(m, msg) \
|
||||
_Static_assert(m < P_OSREL_MAJOR(__FreeBSD_version)), \
|
||||
"Obsolete code: " msg);
|
||||
"Obsolete code: " msg)
|
||||
#else
|
||||
#define __gone_ok(m, msg)
|
||||
#endif
|
||||
#define gone_in(major, msg) __gone_ok(major, msg) _gone_in(major, msg)
|
||||
#define gone_in_dev(dev, major, msg) __gone_ok(major, msg) _gone_in_dev(dev, major, msg)
|
||||
#define gone_in(major, msg, ...) __gone_ok(major, msg) \
|
||||
_gone_in(major, msg __VA_OPT__(,) __VA_ARGS__)
|
||||
#define gone_in_dev(dev, major, msg, ...) __gone_ok(major, msg) \
|
||||
_gone_in_dev(dev, major, msg __VA_OPT__(,) __VA_ARGS__)
|
||||
|
||||
#ifdef INVARIANTS
|
||||
#define __diagused
|
||||
|
|
|
|||
Loading…
Reference in a new issue