From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Anderson Date: Tue, 6 Oct 2020 15:15:58 -0400 Subject: [PATCH 06/18] log: Add function to create a filter with flags In-Reply-To: <20201006191610.761899-1-seanga2@gmail.com> References: <20201006191610.761899-1-seanga2@gmail.com> Message-ID: <20201006191610.761899-7-seanga2@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de This function exposes a way to specify flags when creating a filter. Signed-off-by: Sean Anderson --- 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