[PATCH 06/18] log: Add function to create a filter with flags
Sean Anderson
seanga2 at gmail.com
Tue Oct 6 21:15:58 CEST 2020
This function exposes a way to specify flags when creating a filter.
Signed-off-by: Sean Anderson <seanga2 at gmail.com>
---
common/log.c | 6 ++++--
include/log.h | 29 +++++++++++++++++++++++++++--
2 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/common/log.c b/common/log.c
index bcb9e2634a..b42c4fad60 100644
--- a/common/log.c
+++ b/common/log.c
@@ -242,8 +242,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;
@@ -257,6 +258,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++) {
diff --git a/include/log.h b/include/log.h
index 3496382bda..9116466fcf 100644
--- a/include/log.h
+++ b/include/log.h
@@ -426,6 +426,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_none). 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
*
@@ -440,8 +459,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
--
2.28.0
More information about the U-Boot
mailing list