Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 05e4e5b8 authored by Joe Perches's avatar Joe Perches Committed by Greg Kroah-Hartman
Browse files

dev: Add dev_vprintk_emit and dev_printk_emit



Add utility functions to consolidate the use of
create_syslog_header and vprintk_emit.

This allows conversion of logging functions that
call create_syslog_header and then call vprintk_emit
or printk_emit to the dev_ equivalents.

Signed-off-by: default avatarJoe Perches <joe@perches.com>
Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
Tested-by: default avatarJim Cromie <jim.cromie@gmail.com>
Acked-by: default avatarJason Baron <jbaron@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent c2c5a705
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -1913,6 +1913,33 @@ int create_syslog_header(const struct device *dev, char *hdr, size_t hdrlen)
}
EXPORT_SYMBOL(create_syslog_header);

int dev_vprintk_emit(int level, const struct device *dev,
		     const char *fmt, va_list args)
{
	char hdr[128];
	size_t hdrlen;

	hdrlen = create_syslog_header(dev, hdr, sizeof(hdr));

	return vprintk_emit(0, level, hdrlen ? hdr : NULL, hdrlen, fmt, args);
}
EXPORT_SYMBOL(dev_vprintk_emit);

int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...)
{
	va_list args;
	int r;

	va_start(args, fmt);

	r = dev_vprintk_emit(level, dev, fmt, args);

	va_end(args);

	return r;
}
EXPORT_SYMBOL(dev_printk_emit);

static int __dev_printk(const char *level, const struct device *dev,
			struct va_format *vaf)
{
+11 −0
Original line number Diff line number Diff line
@@ -897,6 +897,10 @@ extern const char *dev_driver_string(const struct device *dev);

extern int create_syslog_header(const struct device *dev,
				char *hdr, size_t hdrlen);
extern int dev_vprintk_emit(int level, const struct device *dev,
			    const char *fmt, va_list args);
extern __printf(3, 4)
int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...);

extern __printf(3, 4)
int dev_printk(const char *level, const struct device *dev,
@@ -918,6 +922,13 @@ int _dev_info(const struct device *dev, const char *fmt, ...);

#else

static int dev_vprintk_emit(int level, const struct device *dev,
			    const char *fmt, va_list args)
{ return 0; }
static inline __printf(3, 4)
int dev_printk_emit(int level, const struct device *dev, const char *fmt, ...)
{ return 0; }

static inline int __dev_printk(const char *level, const struct device *dev,
			       struct va_format *vaf)
{ return 0; }