]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
log: Add function to create a filter with flags
authorSean Anderson <seanga2@gmail.com>
Tue, 27 Oct 2020 23:55:25 +0000 (19:55 -0400)
committerTom Rini <trini@konsulko.com>
Fri, 30 Oct 2020 14:55:26 +0000 (10:55 -0400)
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>
common/log.c
include/log.h

index c5de99a8d16f27a3f8dfde40f2f9ca91e4d1e322..b7b144fa5d2485d3edadee93f60e3b7afef7970e 100644 (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++) {
index 12293d65956e266fe28b990d8080ee8981fe3b7d..ee94f14ff00953ea83d6b91b892ecc520877d2b0 100644 (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