perf tools: Introduce reset_output_field()
authorNamhyung Kim <namhyung@kernel.org>
Wed, 7 May 2014 09:42:24 +0000 (18:42 +0900)
committerJiri Olsa <jolsa@kernel.org>
Wed, 21 May 2014 09:45:37 +0000 (11:45 +0200)
The reset_output_field() function is for clearing output field
settings and will be used for test code in later patch.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/1400480762-22852-19-git-send-email-namhyung@kernel.org
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
tools/perf/ui/hist.c
tools/perf/util/hist.h
tools/perf/util/sort.c
tools/perf/util/sort.h

index 61cf31e094f329d70db19d75fa2167d51a4e8d98..4484f5bd1b14a6065637605b745b3aff2e08bbbc 100644 (file)
@@ -459,6 +459,23 @@ next:
        }
 }
 
+void perf_hpp__reset_output_field(void)
+{
+       struct perf_hpp_fmt *fmt, *tmp;
+
+       /* reset output fields */
+       perf_hpp__for_each_format_safe(fmt, tmp) {
+               list_del_init(&fmt->list);
+               list_del_init(&fmt->sort_list);
+       }
+
+       /* reset sort keys */
+       perf_hpp__for_each_sort_list_safe(fmt, tmp) {
+               list_del_init(&fmt->list);
+               list_del_init(&fmt->sort_list);
+       }
+}
+
 /*
  * See hists__fprintf to match the column widths
  */
index 034db761630e1c3768fdd3bde9b1053095a07eda..a8418d19808dc29e50cc683ea6da088062af55a4 100644 (file)
@@ -174,9 +174,15 @@ extern struct list_head perf_hpp__sort_list;
 #define perf_hpp__for_each_format(format) \
        list_for_each_entry(format, &perf_hpp__list, list)
 
+#define perf_hpp__for_each_format_safe(format, tmp)    \
+       list_for_each_entry_safe(format, tmp, &perf_hpp__list, list)
+
 #define perf_hpp__for_each_sort_list(format) \
        list_for_each_entry(format, &perf_hpp__sort_list, sort_list)
 
+#define perf_hpp__for_each_sort_list_safe(format, tmp) \
+       list_for_each_entry_safe(format, tmp, &perf_hpp__sort_list, sort_list)
+
 extern struct perf_hpp_fmt perf_hpp__format[];
 
 enum {
@@ -197,6 +203,7 @@ void perf_hpp__column_register(struct perf_hpp_fmt *format);
 void perf_hpp__column_enable(unsigned col);
 void perf_hpp__register_sort_field(struct perf_hpp_fmt *format);
 void perf_hpp__setup_output_field(void);
+void perf_hpp__reset_output_field(void);
 void perf_hpp__append_sort_keys(void);
 
 bool perf_hpp__is_sort_entry(struct perf_hpp_fmt *format);
index d9132069d3b19329e7f3cf47066fba7f37364b93..901b9bece2ee439ebbc9e9100471cd03883b55d8 100644 (file)
@@ -1573,3 +1573,14 @@ int setup_sorting(void)
 
        return 0;
 }
+
+void reset_output_field(void)
+{
+       sort__need_collapse = 0;
+       sort__has_parent = 0;
+       sort__has_sym = 0;
+       sort__has_dso = 0;
+
+       reset_dimensions();
+       perf_hpp__reset_output_field();
+}
index f5a831c3d0fbd091c37c225cc089540e9084fa00..5f38d925e92f4f20917c11c44a9bb6274b7762fd 100644 (file)
@@ -194,6 +194,7 @@ extern struct list_head hist_entry__sort_list;
 
 int setup_sorting(void);
 int setup_output_field(void);
+void reset_output_field(void);
 extern int sort_dimension__add(const char *);
 void sort__setup_elide(FILE *fp);