trace: remove limitation on patterns number
[dpdk.git] / lib / librte_eal / common / eal_trace.h
index 846677c..8f60616 100644 (file)
@@ -27,7 +27,7 @@
 #define TRACE_CTF_FIELD_SIZE 384
 #define TRACE_POINT_NAME_SIZE 64
 #define TRACE_CTF_MAGIC 0xC1FC1FC1
-
+#define TRACE_MAX_ARGS 32
 
 struct trace_point {
        STAILQ_ENTRY(trace_point) next;
@@ -46,6 +46,11 @@ struct thread_mem_meta {
        enum trace_area_e area;
 };
 
+struct trace_arg {
+       STAILQ_ENTRY(trace_arg) next;
+       char *val;
+};
+
 struct trace {
        char dir[PATH_MAX];
        int dir_offset;
@@ -54,6 +59,7 @@ struct trace {
        enum rte_trace_mode mode;
        rte_uuid_t uuid;
        uint32_t buff_len;
+       STAILQ_HEAD(, trace_arg) args;
        uint32_t nb_trace_points;
        uint32_t nb_trace_mem_list;
        struct thread_mem_meta *lcore_meta;
@@ -92,6 +98,8 @@ struct trace_point_head *trace_list_head_get(void);
 /* Util functions */
 const char *trace_mode_to_string(enum rte_trace_mode mode);
 const char *trace_area_to_string(enum trace_area_e area);
+int trace_args_apply(const char *arg);
+void trace_bufsz_args_apply(void);
 bool trace_has_duplicate_entry(void);
 void trace_uuid_generate(void);
 int trace_metadata_create(void);
@@ -103,5 +111,10 @@ void trace_mem_per_thread_free(void);
 /* EAL interface */
 int eal_trace_init(void);
 void eal_trace_fini(void);
+int eal_trace_args_save(const char *val);
+void eal_trace_args_free(void);
+int eal_trace_dir_args_save(const char *val);
+int eal_trace_mode_args_save(const char *val);
+int eal_trace_bufsz_args_save(const char *val);
 
 #endif /* __EAL_TRACE_H */