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

Commit d61c72e5 authored by Jiri Slaby's avatar Jiri Slaby Committed by Jeff Garzik
Browse files

DMI: add dmi_match



Add a wrapper for testing system_info which will handle also NULL
system infos.

This will be used by the ata PIIX driver.

Signed-off-by: default avatarJiri Slaby <jirislaby@gmail.com>
Cc: Alexandru Romanescu <a_romanescu@yahoo.co.uk>
Cc: Tejun Heo <tj@kernel.org>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: default avatarJeff Garzik <jgarzik@redhat.com>
parent 5ccfca97
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -582,3 +582,19 @@ int dmi_walk(void (*decode)(const struct dmi_header *))
	return 0;
}
EXPORT_SYMBOL_GPL(dmi_walk);

/**
 * dmi_match - compare a string to the dmi field (if exists)
 *
 * Returns true if the requested field equals to the str (including NULL).
 */
bool dmi_match(enum dmi_field f, const char *str)
{
	const char *info = dmi_get_system_info(f);

	if (info == NULL || str == NULL)
		return info == str;

	return !strcmp(info, str);
}
EXPORT_SYMBOL_GPL(dmi_match);
+3 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ extern int dmi_name_in_vendors(const char *str);
extern int dmi_name_in_serial(const char *str);
extern int dmi_available;
extern int dmi_walk(void (*decode)(const struct dmi_header *));
extern bool dmi_match(enum dmi_field f, const char *str);

#else

@@ -61,6 +62,8 @@ static inline int dmi_name_in_serial(const char *s) { return 0; }
#define dmi_available 0
static inline int dmi_walk(void (*decode)(const struct dmi_header *))
	{ return -1; }
static inline bool dmi_match(enum dmi_field f, const char *str)
	{ return false; }

#endif