log: Add function to create a filter with flags

This function exposes a way to specify flags when creating a filter.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Sean Anderson 2020-10-27 19:55:25 -04:00 committed by Tom Rini
parent 3102c1d2c2
commit a02f84ee9c
2 changed files with 31 additions and 4 deletions

View File

@ -246,8 +246,9 @@ int _log(enum log_category_t cat, enum log_level_t level, const char *file,
return 0;
}
int log_add_filter(const char *drv_name, enum log_category_t cat_list[],
enum log_level_t max_level, const char *file_list)
int log_add_filter_flags(const char *drv_name, enum log_category_t cat_list[],
enum log_level_t max_level, const char *file_list,
int flags)
{
struct log_filter *filt;
struct log_device *ldev;
@ -261,6 +262,7 @@ int log_add_filter(const char *drv_name, enum log_category_t cat_list[],
if (!filt)
return -ENOMEM;
filt->flags = flags;
if (cat_list) {
filt->flags |= LOGFF_HAS_CAT;
for (i = 0; ; i++) {

View File

@ -476,6 +476,25 @@ enum log_fmt {
/* Handle the 'log test' command */
int do_log_test(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]);
/**
* log_add_filter_flags() - Add a new filter to a log device, specifying flags
*
* @drv_name: Driver name to add the filter to (since each driver only has a
* single device)
* @flags: Flags for this filter (LOGFF_...)
* @cat_list: List of categories to allow (terminated by %LOGC_END). If empty
* then all categories are permitted. Up to LOGF_MAX_CATEGORIES entries
* can be provided
* @max_level: Maximum log level to allow
* @file_list: List of files to allow, separated by comma. If NULL then all
* files are permitted
* @return the sequence number of the new filter (>=0) if the filter was added,
* or a -ve value on error
*/
int log_add_filter_flags(const char *drv_name, enum log_category_t cat_list[],
enum log_level_t max_level, const char *file_list,
int flags);
/**
* log_add_filter() - Add a new filter to a log device
*
@ -490,8 +509,14 @@ int do_log_test(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]);
* @return the sequence number of the new filter (>=0) if the filter was added,
* or a -ve value on error
*/
int log_add_filter(const char *drv_name, enum log_category_t cat_list[],
enum log_level_t max_level, const char *file_list);
static inline int log_add_filter(const char *drv_name,
enum log_category_t cat_list[],
enum log_level_t max_level,
const char *file_list)
{
return log_add_filter_flags(drv_name, cat_list, max_level, file_list,
0);
}
/**
* log_remove_filter() - Remove a filter from a log device