processor: Move json, fuchsia, systrace parsers to importers subdirs

Proto parsers will move later.

Bug: 141459049
Change-Id: Iad4d7ca549902bec7c32b39d9e9ffe325625ba9d
diff --git a/Android.bp b/Android.bp
index 52e65e5..d63f697 100644
--- a/Android.bp
+++ b/Android.bp
@@ -4547,15 +4547,17 @@
     "src/trace_processor/forwarding_trace_parser.cc",
     "src/trace_processor/ftrace_descriptors.cc",
     "src/trace_processor/ftrace_utils.cc",
-    "src/trace_processor/fuchsia_provider_view.cc",
-    "src/trace_processor/fuchsia_trace_parser.cc",
-    "src/trace_processor/fuchsia_trace_tokenizer.cc",
-    "src/trace_processor/fuchsia_trace_utils.cc",
     "src/trace_processor/graphics_event_parser.cc",
     "src/trace_processor/gzip_trace_parser.cc",
     "src/trace_processor/heap_graph_tracker.cc",
     "src/trace_processor/heap_profile_allocation_table.cc",
     "src/trace_processor/heap_profile_tracker.cc",
+    "src/trace_processor/importers/fuchsia/fuchsia_provider_view.cc",
+    "src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc",
+    "src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.cc",
+    "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc",
+    "src/trace_processor/importers/systrace/systrace_parser.cc",
+    "src/trace_processor/importers/systrace/systrace_trace_parser.cc",
     "src/trace_processor/instants_table.cc",
     "src/trace_processor/metadata_table.cc",
     "src/trace_processor/process_table.cc",
@@ -4579,8 +4581,6 @@
     "src/trace_processor/storage_schema.cc",
     "src/trace_processor/storage_table.cc",
     "src/trace_processor/syscall_tracker.cc",
-    "src/trace_processor/systrace_parser.cc",
-    "src/trace_processor/systrace_trace_parser.cc",
     "src/trace_processor/thread_table.cc",
     "src/trace_processor/trace_processor.cc",
     "src/trace_processor/trace_processor_context.cc",
@@ -4654,8 +4654,9 @@
     "src/trace_processor/filtered_row_index_unittest.cc",
     "src/trace_processor/forwarding_trace_parser_unittest.cc",
     "src/trace_processor/ftrace_utils_unittest.cc",
-    "src/trace_processor/fuchsia_trace_utils_unittest.cc",
     "src/trace_processor/heap_profile_tracker_unittest.cc",
+    "src/trace_processor/importers/fuchsia/fuchsia_trace_utils_unittest.cc",
+    "src/trace_processor/importers/systrace/systrace_parser_unittest.cc",
     "src/trace_processor/metadata_table_unittest.cc",
     "src/trace_processor/null_term_string_view_unittest.cc",
     "src/trace_processor/process_table_unittest.cc",
@@ -4666,7 +4667,6 @@
     "src/trace_processor/span_join_operator_table_unittest.cc",
     "src/trace_processor/string_pool_unittest.cc",
     "src/trace_processor/syscall_tracker_unittest.cc",
-    "src/trace_processor/systrace_parser_unittest.cc",
     "src/trace_processor/thread_table_unittest.cc",
     "src/trace_processor/trace_sorter_unittest.cc",
   ],
diff --git a/BUILD b/BUILD
index 41f87b0..7d76c2c 100644
--- a/BUILD
+++ b/BUILD
@@ -646,14 +646,6 @@
         "src/trace_processor/ftrace_descriptors.h",
         "src/trace_processor/ftrace_utils.cc",
         "src/trace_processor/ftrace_utils.h",
-        "src/trace_processor/fuchsia_provider_view.cc",
-        "src/trace_processor/fuchsia_provider_view.h",
-        "src/trace_processor/fuchsia_trace_parser.cc",
-        "src/trace_processor/fuchsia_trace_parser.h",
-        "src/trace_processor/fuchsia_trace_tokenizer.cc",
-        "src/trace_processor/fuchsia_trace_tokenizer.h",
-        "src/trace_processor/fuchsia_trace_utils.cc",
-        "src/trace_processor/fuchsia_trace_utils.h",
         "src/trace_processor/graphics_event_parser.cc",
         "src/trace_processor/graphics_event_parser.h",
         "src/trace_processor/gzip_trace_parser.cc",
@@ -664,17 +656,29 @@
         "src/trace_processor/heap_profile_allocation_table.h",
         "src/trace_processor/heap_profile_tracker.cc",
         "src/trace_processor/heap_profile_tracker.h",
+        "src/trace_processor/importers/fuchsia/fuchsia_provider_view.cc",
+        "src/trace_processor/importers/fuchsia/fuchsia_provider_view.h",
+        "src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc",
+        "src/trace_processor/importers/fuchsia/fuchsia_trace_parser.h",
+        "src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.cc",
+        "src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.h",
+        "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc",
+        "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.h",
+        "src/trace_processor/importers/json/json_trace_parser.cc",
+        "src/trace_processor/importers/json/json_trace_parser.h",
+        "src/trace_processor/importers/json/json_trace_tokenizer.cc",
+        "src/trace_processor/importers/json/json_trace_tokenizer.h",
+        "src/trace_processor/importers/json/json_trace_utils.cc",
+        "src/trace_processor/importers/json/json_trace_utils.h",
         "src/trace_processor/importers/proto/ftrace_module.h",
         "src/trace_processor/importers/proto/proto_importer_module.h",
         "src/trace_processor/importers/proto/track_event_module.h",
+        "src/trace_processor/importers/systrace/systrace_parser.cc",
+        "src/trace_processor/importers/systrace/systrace_parser.h",
+        "src/trace_processor/importers/systrace/systrace_trace_parser.cc",
+        "src/trace_processor/importers/systrace/systrace_trace_parser.h",
         "src/trace_processor/instants_table.cc",
         "src/trace_processor/instants_table.h",
-        "src/trace_processor/json_trace_parser.cc",
-        "src/trace_processor/json_trace_parser.h",
-        "src/trace_processor/json_trace_tokenizer.cc",
-        "src/trace_processor/json_trace_tokenizer.h",
-        "src/trace_processor/json_trace_utils.cc",
-        "src/trace_processor/json_trace_utils.h",
         "src/trace_processor/metadata.h",
         "src/trace_processor/metadata_table.cc",
         "src/trace_processor/metadata_table.h",
@@ -725,10 +729,6 @@
         "src/trace_processor/syscalls_aarch64.h",
         "src/trace_processor/syscalls_armeabi.h",
         "src/trace_processor/syscalls_x86_64.h",
-        "src/trace_processor/systrace_parser.cc",
-        "src/trace_processor/systrace_parser.h",
-        "src/trace_processor/systrace_trace_parser.cc",
-        "src/trace_processor/systrace_trace_parser.h",
         "src/trace_processor/thread_table.cc",
         "src/trace_processor/thread_table.h",
         "src/trace_processor/timestamped_trace_piece.h",
diff --git a/src/trace_processor/BUILD.gn b/src/trace_processor/BUILD.gn
index 94dd891..cd72205 100644
--- a/src/trace_processor/BUILD.gn
+++ b/src/trace_processor/BUILD.gn
@@ -75,14 +75,6 @@
     "ftrace_descriptors.h",
     "ftrace_utils.cc",
     "ftrace_utils.h",
-    "fuchsia_provider_view.cc",
-    "fuchsia_provider_view.h",
-    "fuchsia_trace_parser.cc",
-    "fuchsia_trace_parser.h",
-    "fuchsia_trace_tokenizer.cc",
-    "fuchsia_trace_tokenizer.h",
-    "fuchsia_trace_utils.cc",
-    "fuchsia_trace_utils.h",
     "graphics_event_parser.cc",
     "graphics_event_parser.h",
     "gzip_trace_parser.cc",
@@ -93,9 +85,21 @@
     "heap_profile_allocation_table.h",
     "heap_profile_tracker.cc",
     "heap_profile_tracker.h",
+    "importers/fuchsia/fuchsia_provider_view.cc",
+    "importers/fuchsia/fuchsia_provider_view.h",
+    "importers/fuchsia/fuchsia_trace_parser.cc",
+    "importers/fuchsia/fuchsia_trace_parser.h",
+    "importers/fuchsia/fuchsia_trace_tokenizer.cc",
+    "importers/fuchsia/fuchsia_trace_tokenizer.h",
+    "importers/fuchsia/fuchsia_trace_utils.cc",
+    "importers/fuchsia/fuchsia_trace_utils.h",
     "importers/proto/ftrace_module.h",
     "importers/proto/proto_importer_module.h",
     "importers/proto/track_event_module.h",
+    "importers/systrace/systrace_parser.cc",
+    "importers/systrace/systrace_parser.h",
+    "importers/systrace/systrace_trace_parser.cc",
+    "importers/systrace/systrace_trace_parser.h",
     "instants_table.cc",
     "instants_table.h",
     "metadata.h",
@@ -148,10 +152,6 @@
     "syscalls_aarch64.h",
     "syscalls_armeabi.h",
     "syscalls_x86_64.h",
-    "systrace_parser.cc",
-    "systrace_parser.h",
-    "systrace_trace_parser.cc",
-    "systrace_trace_parser.h",
     "thread_table.cc",
     "thread_table.h",
     "timestamped_trace_piece.h",
@@ -212,12 +212,12 @@
     sources += [
       "export_json.cc",
       "export_json.h",
-      "json_trace_parser.cc",
-      "json_trace_parser.h",
-      "json_trace_tokenizer.cc",
-      "json_trace_tokenizer.h",
-      "json_trace_utils.cc",
-      "json_trace_utils.h",
+      "importers/json/json_trace_parser.cc",
+      "importers/json/json_trace_parser.h",
+      "importers/json/json_trace_tokenizer.cc",
+      "importers/json/json_trace_tokenizer.h",
+      "importers/json/json_trace_utils.cc",
+      "importers/json/json_trace_utils.h",
     ]
     deps += [ "../../gn:jsoncpp" ]
   }
@@ -269,8 +269,9 @@
     "filtered_row_index_unittest.cc",
     "forwarding_trace_parser_unittest.cc",
     "ftrace_utils_unittest.cc",
-    "fuchsia_trace_utils_unittest.cc",
     "heap_profile_tracker_unittest.cc",
+    "importers/fuchsia/fuchsia_trace_utils_unittest.cc",
+    "importers/systrace/systrace_parser_unittest.cc",
     "metadata_table_unittest.cc",
     "null_term_string_view_unittest.cc",
     "process_table_unittest.cc",
@@ -281,7 +282,6 @@
     "span_join_operator_table_unittest.cc",
     "string_pool_unittest.cc",
     "syscall_tracker_unittest.cc",
-    "systrace_parser_unittest.cc",
     "thread_table_unittest.cc",
     "trace_sorter_unittest.cc",
   ]
@@ -312,8 +312,8 @@
   ]
   if (enable_perfetto_trace_processor_json) {
     sources += [
-      "json_trace_tokenizer_unittest.cc",
-      "json_trace_utils_unittest.cc",
+      "importers/json/json_trace_tokenizer_unittest.cc",
+      "importers/json/json_trace_utils_unittest.cc",
     ]
     if (!is_win) {
       # export_json_unittest.cc uses base::TempFile, which is not supported on
diff --git a/src/trace_processor/forwarding_trace_parser.cc b/src/trace_processor/forwarding_trace_parser.cc
index 765b0a5..b4e59dd 100644
--- a/src/trace_processor/forwarding_trace_parser.cc
+++ b/src/trace_processor/forwarding_trace_parser.cc
@@ -18,19 +18,19 @@
 
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/string_utils.h"
-#include "src/trace_processor/fuchsia_trace_parser.h"
-#include "src/trace_processor/fuchsia_trace_tokenizer.h"
 #include "src/trace_processor/gzip_trace_parser.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_trace_parser.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.h"
+#include "src/trace_processor/importers/systrace/systrace_trace_parser.h"
 #include "src/trace_processor/proto_trace_parser.h"
 #include "src/trace_processor/proto_trace_tokenizer.h"
-#include "src/trace_processor/systrace_trace_parser.h"
 #include "src/trace_processor/trace_sorter.h"
 
 // JSON parsing and exporting is only supported in the standalone and
 // Chromium builds.
 #if PERFETTO_BUILDFLAG(PERFETTO_TP_JSON)
-#include "src/trace_processor/json_trace_parser.h"
-#include "src/trace_processor/json_trace_tokenizer.h"
+#include "src/trace_processor/importers/json/json_trace_parser.h"
+#include "src/trace_processor/importers/json/json_trace_tokenizer.h"
 #endif
 
 namespace perfetto {
diff --git a/src/trace_processor/fuchsia_provider_view.cc b/src/trace_processor/importers/fuchsia/fuchsia_provider_view.cc
similarity index 95%
rename from src/trace_processor/fuchsia_provider_view.cc
rename to src/trace_processor/importers/fuchsia/fuchsia_provider_view.cc
index c83b789..6c69f6b 100644
--- a/src/trace_processor/fuchsia_provider_view.cc
+++ b/src/trace_processor/importers/fuchsia/fuchsia_provider_view.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/fuchsia_provider_view.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_provider_view.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/fuchsia_provider_view.h b/src/trace_processor/importers/fuchsia/fuchsia_provider_view.h
similarity index 85%
rename from src/trace_processor/fuchsia_provider_view.h
rename to src/trace_processor/importers/fuchsia/fuchsia_provider_view.h
index 3f7add2..a334ee4 100644
--- a/src/trace_processor/fuchsia_provider_view.h
+++ b/src/trace_processor/importers/fuchsia/fuchsia_provider_view.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_FUCHSIA_PROVIDER_VIEW_H_
-#define SRC_TRACE_PROCESSOR_FUCHSIA_PROVIDER_VIEW_H_
+#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_PROVIDER_VIEW_H_
+#define SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_PROVIDER_VIEW_H_
 
-#include "src/trace_processor/fuchsia_trace_utils.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.h"
 #include "src/trace_processor/trace_storage.h"
 
 #include <vector>
@@ -63,4 +63,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_FUCHSIA_PROVIDER_VIEW_H_
+#endif  // SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_PROVIDER_VIEW_H_
diff --git a/src/trace_processor/fuchsia_trace_parser.cc b/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
similarity index 99%
rename from src/trace_processor/fuchsia_trace_parser.cc
rename to src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
index 3423db9..ad9eca7 100644
--- a/src/trace_processor/fuchsia_trace_parser.cc
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/fuchsia_trace_parser.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_trace_parser.h"
 
 #include "src/trace_processor/args_tracker.h"
 #include "src/trace_processor/event_tracker.h"
diff --git a/src/trace_processor/fuchsia_trace_parser.h b/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.h
similarity index 81%
rename from src/trace_processor/fuchsia_trace_parser.h
rename to src/trace_processor/importers/fuchsia/fuchsia_trace_parser.h
index 8992ce6..bc54d47 100644
--- a/src/trace_processor/fuchsia_trace_parser.h
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_parser.h
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_FUCHSIA_TRACE_PARSER_H_
-#define SRC_TRACE_PROCESSOR_FUCHSIA_TRACE_PARSER_H_
+#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_TRACE_PARSER_H_
+#define SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_TRACE_PARSER_H_
 
-#include "src/trace_processor/fuchsia_provider_view.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_provider_view.h"
 #include "src/trace_processor/timestamped_trace_piece.h"
 #include "src/trace_processor/trace_parser.h"
 
@@ -42,4 +42,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_FUCHSIA_TRACE_PARSER_H_
+#endif  // SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_TRACE_PARSER_H_
diff --git a/src/trace_processor/fuchsia_trace_tokenizer.cc b/src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.cc
similarity index 98%
rename from src/trace_processor/fuchsia_trace_tokenizer.cc
rename to src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.cc
index 5f9a4b8..9f58cc9 100644
--- a/src/trace_processor/fuchsia_trace_tokenizer.cc
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/fuchsia_trace_tokenizer.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.h"
 
 #include <inttypes.h>
 #include <unordered_map>
@@ -22,7 +22,7 @@
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/string_view.h"
 #include "src/trace_processor/ftrace_utils.h"
-#include "src/trace_processor/fuchsia_provider_view.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_provider_view.h"
 #include "src/trace_processor/process_tracker.h"
 #include "src/trace_processor/slice_tracker.h"
 #include "src/trace_processor/trace_processor_context.h"
@@ -540,7 +540,9 @@
                 ftrace_utils::TaskState(ftrace_utils::TaskState::kExitDead);
             break;
           }
-          default: { break; }
+          default: {
+            break;
+          }
         }
 
         storage->mutable_slices()->AddSlice(cpu, previous_thread.start_ts,
diff --git a/src/trace_processor/fuchsia_trace_tokenizer.h b/src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.h
similarity index 87%
rename from src/trace_processor/fuchsia_trace_tokenizer.h
rename to src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.h
index be2f7cb..e5dd9af 100644
--- a/src/trace_processor/fuchsia_trace_tokenizer.h
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.h
@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_FUCHSIA_TRACE_TOKENIZER_H_
-#define SRC_TRACE_PROCESSOR_FUCHSIA_TRACE_TOKENIZER_H_
+#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_TRACE_TOKENIZER_H_
+#define SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_TRACE_TOKENIZER_H_
 
 #include "src/trace_processor/chunked_trace_reader.h"
-#include "src/trace_processor/fuchsia_trace_utils.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.h"
 #include "src/trace_processor/trace_blob_view.h"
 #include "src/trace_processor/trace_storage.h"
 
@@ -70,4 +70,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_FUCHSIA_TRACE_TOKENIZER_H_
+#endif  // SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_TRACE_TOKENIZER_H_
diff --git a/src/trace_processor/fuchsia_trace_utils.cc b/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc
similarity index 98%
rename from src/trace_processor/fuchsia_trace_utils.cc
rename to src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc
index cca1997..5e37177 100644
--- a/src/trace_processor/fuchsia_trace_utils.cc
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/fuchsia_trace_utils.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.h"
 
 namespace perfetto {
 namespace trace_processor {
diff --git a/src/trace_processor/fuchsia_trace_utils.h b/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.h
similarity index 95%
rename from src/trace_processor/fuchsia_trace_utils.h
rename to src/trace_processor/importers/fuchsia/fuchsia_trace_utils.h
index 3a70c86..e0c3085 100644
--- a/src/trace_processor/fuchsia_trace_utils.h
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_utils.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_FUCHSIA_TRACE_UTILS_H_
-#define SRC_TRACE_PROCESSOR_FUCHSIA_TRACE_UTILS_H_
+#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_TRACE_UTILS_H_
+#define SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_TRACE_UTILS_H_
 
 #include <stddef.h>
 #include <stdint.h>
@@ -220,4 +220,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_FUCHSIA_TRACE_UTILS_H_
+#endif  // SRC_TRACE_PROCESSOR_IMPORTERS_FUCHSIA_FUCHSIA_TRACE_UTILS_H_
diff --git a/src/trace_processor/fuchsia_trace_utils_unittest.cc b/src/trace_processor/importers/fuchsia/fuchsia_trace_utils_unittest.cc
similarity index 93%
rename from src/trace_processor/fuchsia_trace_utils_unittest.cc
rename to src/trace_processor/importers/fuchsia/fuchsia_trace_utils_unittest.cc
index fbe06ee..5b942ab 100644
--- a/src/trace_processor/fuchsia_trace_utils_unittest.cc
+++ b/src/trace_processor/importers/fuchsia/fuchsia_trace_utils_unittest.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/fuchsia_trace_utils.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.h"
 
 #include "test/gtest_and_gmock.h"
 
diff --git a/src/trace_processor/json_trace_parser.cc b/src/trace_processor/importers/json/json_trace_parser.cc
similarity index 96%
rename from src/trace_processor/json_trace_parser.cc
rename to src/trace_processor/importers/json/json_trace_parser.cc
index 2216eab..042f4fd 100644
--- a/src/trace_processor/json_trace_parser.cc
+++ b/src/trace_processor/importers/json/json_trace_parser.cc
@@ -17,7 +17,7 @@
 #include "perfetto/base/build_config.h"
 #if PERFETTO_BUILDFLAG(PERFETTO_TP_JSON)
 
-#include "src/trace_processor/json_trace_parser.h"
+#include "src/trace_processor/importers/json/json_trace_parser.h"
 
 #include <inttypes.h>
 #include <json/reader.h>
@@ -29,7 +29,7 @@
 #include "perfetto/base/logging.h"
 #include "perfetto/ext/base/string_view.h"
 #include "perfetto/ext/base/utils.h"
-#include "src/trace_processor/json_trace_utils.h"
+#include "src/trace_processor/importers/json/json_trace_utils.h"
 #include "src/trace_processor/process_tracker.h"
 #include "src/trace_processor/slice_tracker.h"
 #include "src/trace_processor/trace_processor_context.h"
diff --git a/src/trace_processor/json_trace_parser.h b/src/trace_processor/importers/json/json_trace_parser.h
similarity index 89%
rename from src/trace_processor/json_trace_parser.h
rename to src/trace_processor/importers/json/json_trace_parser.h
index bf0d5a5..30941bf 100644
--- a/src/trace_processor/json_trace_parser.h
+++ b/src/trace_processor/importers/json/json_trace_parser.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_JSON_TRACE_PARSER_H_
-#define SRC_TRACE_PROCESSOR_JSON_TRACE_PARSER_H_
+#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_JSON_JSON_TRACE_PARSER_H_
+#define SRC_TRACE_PROCESSOR_IMPORTERS_JSON_JSON_TRACE_PARSER_H_
 
 #include <stdint.h>
 
@@ -57,4 +57,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_JSON_TRACE_PARSER_H_
+#endif  // SRC_TRACE_PROCESSOR_IMPORTERS_JSON_JSON_TRACE_PARSER_H_
diff --git a/src/trace_processor/json_trace_tokenizer.cc b/src/trace_processor/importers/json/json_trace_tokenizer.cc
similarity index 96%
rename from src/trace_processor/json_trace_tokenizer.cc
rename to src/trace_processor/importers/json/json_trace_tokenizer.cc
index 120cc69..679f00f 100644
--- a/src/trace_processor/json_trace_tokenizer.cc
+++ b/src/trace_processor/importers/json/json_trace_tokenizer.cc
@@ -17,12 +17,12 @@
 #include "perfetto/base/build_config.h"
 #if PERFETTO_BUILDFLAG(PERFETTO_TP_JSON)
 
-#include "src/trace_processor/json_trace_tokenizer.h"
+#include "src/trace_processor/importers/json/json_trace_tokenizer.h"
 
 #include <json/reader.h>
 #include <json/value.h>
 
-#include "src/trace_processor/json_trace_utils.h"
+#include "src/trace_processor/importers/json/json_trace_utils.h"
 #include "src/trace_processor/stats.h"
 #include "src/trace_processor/trace_blob_view.h"
 #include "src/trace_processor/trace_sorter.h"
diff --git a/src/trace_processor/json_trace_tokenizer.h b/src/trace_processor/importers/json/json_trace_tokenizer.h
similarity index 89%
rename from src/trace_processor/json_trace_tokenizer.h
rename to src/trace_processor/importers/json/json_trace_tokenizer.h
index e5a1254..9eb15b3 100644
--- a/src/trace_processor/json_trace_tokenizer.h
+++ b/src/trace_processor/importers/json/json_trace_tokenizer.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_JSON_TRACE_TOKENIZER_H_
-#define SRC_TRACE_PROCESSOR_JSON_TRACE_TOKENIZER_H_
+#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_JSON_JSON_TRACE_TOKENIZER_H_
+#define SRC_TRACE_PROCESSOR_IMPORTERS_JSON_JSON_TRACE_TOKENIZER_H_
 
 #include <stdint.h>
 
@@ -61,4 +61,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_JSON_TRACE_TOKENIZER_H_
+#endif  // SRC_TRACE_PROCESSOR_IMPORTERS_JSON_JSON_TRACE_TOKENIZER_H_
diff --git a/src/trace_processor/json_trace_tokenizer_unittest.cc b/src/trace_processor/importers/json/json_trace_tokenizer_unittest.cc
similarity index 97%
rename from src/trace_processor/json_trace_tokenizer_unittest.cc
rename to src/trace_processor/importers/json/json_trace_tokenizer_unittest.cc
index 532d543..4305120 100644
--- a/src/trace_processor/json_trace_tokenizer_unittest.cc
+++ b/src/trace_processor/importers/json/json_trace_tokenizer_unittest.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/json_trace_tokenizer.h"
+#include "src/trace_processor/importers/json/json_trace_tokenizer.h"
 
 #include <json/value.h>
 
diff --git a/src/trace_processor/json_trace_utils.cc b/src/trace_processor/importers/json/json_trace_utils.cc
similarity index 97%
rename from src/trace_processor/json_trace_utils.cc
rename to src/trace_processor/importers/json/json_trace_utils.cc
index c4db237..13ad0fe 100644
--- a/src/trace_processor/json_trace_utils.cc
+++ b/src/trace_processor/importers/json/json_trace_utils.cc
@@ -17,7 +17,7 @@
 #include "perfetto/base/build_config.h"
 #if PERFETTO_BUILDFLAG(PERFETTO_TP_JSON)
 
-#include "src/trace_processor/json_trace_utils.h"
+#include "src/trace_processor/importers/json/json_trace_utils.h"
 
 #include <json/value.h>
 #include <limits>
diff --git a/src/trace_processor/json_trace_utils.h b/src/trace_processor/importers/json/json_trace_utils.h
similarity index 85%
rename from src/trace_processor/json_trace_utils.h
rename to src/trace_processor/importers/json/json_trace_utils.h
index 8055b02..3a18641 100644
--- a/src/trace_processor/json_trace_utils.h
+++ b/src/trace_processor/importers/json/json_trace_utils.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_JSON_TRACE_UTILS_H_
-#define SRC_TRACE_PROCESSOR_JSON_TRACE_UTILS_H_
+#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_JSON_JSON_TRACE_UTILS_H_
+#define SRC_TRACE_PROCESSOR_IMPORTERS_JSON_JSON_TRACE_UTILS_H_
 
 #include <stdint.h>
 
@@ -40,4 +40,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_JSON_TRACE_UTILS_H_
+#endif  // SRC_TRACE_PROCESSOR_IMPORTERS_JSON_JSON_TRACE_UTILS_H_
diff --git a/src/trace_processor/json_trace_utils_unittest.cc b/src/trace_processor/importers/json/json_trace_utils_unittest.cc
similarity index 96%
rename from src/trace_processor/json_trace_utils_unittest.cc
rename to src/trace_processor/importers/json/json_trace_utils_unittest.cc
index ef8b1f1..fcc115d 100644
--- a/src/trace_processor/json_trace_utils_unittest.cc
+++ b/src/trace_processor/importers/json/json_trace_utils_unittest.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/json_trace_utils.h"
+#include "src/trace_processor/importers/json/json_trace_utils.h"
 
 #include <json/value.h>
 
diff --git a/src/trace_processor/systrace_parser.cc b/src/trace_processor/importers/systrace/systrace_parser.cc
similarity index 98%
rename from src/trace_processor/systrace_parser.cc
rename to src/trace_processor/importers/systrace/systrace_parser.cc
index 6bb6b72..1587b32 100644
--- a/src/trace_processor/systrace_parser.cc
+++ b/src/trace_processor/importers/systrace/systrace_parser.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/systrace_parser.h"
+#include "src/trace_processor/importers/systrace/systrace_parser.h"
 
 #include "perfetto/ext/base/optional.h"
 #include "src/trace_processor/event_tracker.h"
diff --git a/src/trace_processor/systrace_parser.h b/src/trace_processor/importers/systrace/systrace_parser.h
similarity index 96%
rename from src/trace_processor/systrace_parser.h
rename to src/trace_processor/importers/systrace/systrace_parser.h
index c8c3452..a002fc6 100644
--- a/src/trace_processor/systrace_parser.h
+++ b/src/trace_processor/importers/systrace/systrace_parser.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_SYSTRACE_PARSER_H_
-#define SRC_TRACE_PROCESSOR_SYSTRACE_PARSER_H_
+#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_SYSTRACE_SYSTRACE_PARSER_H_
+#define SRC_TRACE_PROCESSOR_IMPORTERS_SYSTRACE_SYSTRACE_PARSER_H_
 
 #include <ostream>
 
@@ -208,4 +208,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_SYSTRACE_PARSER_H_
+#endif  // SRC_TRACE_PROCESSOR_IMPORTERS_SYSTRACE_SYSTRACE_PARSER_H_
diff --git a/src/trace_processor/systrace_parser_unittest.cc b/src/trace_processor/importers/systrace/systrace_parser_unittest.cc
similarity index 97%
rename from src/trace_processor/systrace_parser_unittest.cc
rename to src/trace_processor/importers/systrace/systrace_parser_unittest.cc
index d1a1158..55d42cc 100644
--- a/src/trace_processor/systrace_parser_unittest.cc
+++ b/src/trace_processor/importers/systrace/systrace_parser_unittest.cc
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/systrace_parser.h"
+#include "src/trace_processor/importers/systrace/systrace_parser.h"
 
 #include "test/gtest_and_gmock.h"
 
diff --git a/src/trace_processor/systrace_trace_parser.cc b/src/trace_processor/importers/systrace/systrace_trace_parser.cc
similarity index 97%
rename from src/trace_processor/systrace_trace_parser.cc
rename to src/trace_processor/importers/systrace/systrace_trace_parser.cc
index 777f262..58c86cb 100644
--- a/src/trace_processor/systrace_trace_parser.cc
+++ b/src/trace_processor/importers/systrace/systrace_trace_parser.cc
@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#include "src/trace_processor/systrace_trace_parser.h"
+#include "src/trace_processor/importers/systrace/systrace_trace_parser.h"
 
 #include "perfetto/ext/base/string_splitter.h"
 #include "perfetto/ext/base/string_utils.h"
 #include "src/trace_processor/args_tracker.h"
 #include "src/trace_processor/event_tracker.h"
+#include "src/trace_processor/importers/systrace/systrace_parser.h"
 #include "src/trace_processor/process_tracker.h"
 #include "src/trace_processor/slice_tracker.h"
-#include "src/trace_processor/systrace_parser.h"
 
 #include <inttypes.h>
 #include <string>
diff --git a/src/trace_processor/systrace_trace_parser.h b/src/trace_processor/importers/systrace/systrace_trace_parser.h
similarity index 88%
rename from src/trace_processor/systrace_trace_parser.h
rename to src/trace_processor/importers/systrace/systrace_trace_parser.h
index de58581..5703ec8 100644
--- a/src/trace_processor/systrace_trace_parser.h
+++ b/src/trace_processor/importers/systrace/systrace_trace_parser.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef SRC_TRACE_PROCESSOR_SYSTRACE_TRACE_PARSER_H_
-#define SRC_TRACE_PROCESSOR_SYSTRACE_TRACE_PARSER_H_
+#ifndef SRC_TRACE_PROCESSOR_IMPORTERS_SYSTRACE_SYSTRACE_TRACE_PARSER_H_
+#define SRC_TRACE_PROCESSOR_IMPORTERS_SYSTRACE_SYSTRACE_TRACE_PARSER_H_
 
 #include <deque>
 #include <regex>
@@ -59,4 +59,4 @@
 }  // namespace trace_processor
 }  // namespace perfetto
 
-#endif  // SRC_TRACE_PROCESSOR_SYSTRACE_TRACE_PARSER_H_
+#endif  // SRC_TRACE_PROCESSOR_IMPORTERS_SYSTRACE_SYSTRACE_TRACE_PARSER_H_
diff --git a/src/trace_processor/proto_trace_parser.cc b/src/trace_processor/proto_trace_parser.cc
index 8ca05fe..60396cc 100644
--- a/src/trace_processor/proto_trace_parser.cc
+++ b/src/trace_processor/proto_trace_parser.cc
@@ -38,12 +38,12 @@
 #include "src/trace_processor/heap_profile_tracker.h"
 #include "src/trace_processor/importers/proto/ftrace_module.h"
 #include "src/trace_processor/importers/proto/track_event_module.h"
+#include "src/trace_processor/importers/systrace/systrace_parser.h"
 #include "src/trace_processor/metadata.h"
 #include "src/trace_processor/process_tracker.h"
 #include "src/trace_processor/proto_incremental_state.h"
 #include "src/trace_processor/stack_profile_tracker.h"
 #include "src/trace_processor/syscall_tracker.h"
-#include "src/trace_processor/systrace_parser.h"
 #include "src/trace_processor/timestamped_trace_piece.h"
 #include "src/trace_processor/trace_processor_context.h"
 #include "src/trace_processor/track_tracker.h"
diff --git a/src/trace_processor/proto_trace_parser_unittest.cc b/src/trace_processor/proto_trace_parser_unittest.cc
index dc03fe3..8788dd0 100644
--- a/src/trace_processor/proto_trace_parser_unittest.cc
+++ b/src/trace_processor/proto_trace_parser_unittest.cc
@@ -21,12 +21,12 @@
 #include "src/trace_processor/args_tracker.h"
 #include "src/trace_processor/clock_tracker.h"
 #include "src/trace_processor/event_tracker.h"
+#include "src/trace_processor/importers/systrace/systrace_parser.h"
 #include "src/trace_processor/metadata.h"
 #include "src/trace_processor/process_tracker.h"
 #include "src/trace_processor/proto_trace_parser.h"
 #include "src/trace_processor/slice_tracker.h"
 #include "src/trace_processor/stack_profile_tracker.h"
-#include "src/trace_processor/systrace_parser.h"
 #include "src/trace_processor/trace_sorter.h"
 #include "src/trace_processor/track_tracker.h"
 #include "src/trace_processor/vulkan_memory_tracker.h"
diff --git a/src/trace_processor/timestamped_trace_piece.h b/src/trace_processor/timestamped_trace_piece.h
index 1a4f346..ac3fd26 100644
--- a/src/trace_processor/timestamped_trace_piece.h
+++ b/src/trace_processor/timestamped_trace_piece.h
@@ -19,7 +19,7 @@
 
 #include "perfetto/base/build_config.h"
 #include "perfetto/trace_processor/basic_types.h"
-#include "src/trace_processor/fuchsia_provider_view.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_provider_view.h"
 #include "src/trace_processor/proto_incremental_state.h"
 #include "src/trace_processor/trace_blob_view.h"
 #include "src/trace_processor/trace_processor_context.h"
diff --git a/src/trace_processor/trace_database_integrationtest.cc b/src/trace_processor/trace_database_integrationtest.cc
index 58242f6..5719493 100644
--- a/src/trace_processor/trace_database_integrationtest.cc
+++ b/src/trace_processor/trace_database_integrationtest.cc
@@ -22,7 +22,7 @@
 #include "perfetto/ext/base/scoped_file.h"
 #include "perfetto/trace_processor/trace_processor.h"
 #include "src/base/test/utils.h"
-#include "src/trace_processor/json_trace_parser.h"
+#include "src/trace_processor/importers/json/json_trace_parser.h"
 #include "test/gtest_and_gmock.h"
 
 namespace perfetto {
diff --git a/src/trace_processor/trace_processor_context.cc b/src/trace_processor/trace_processor_context.cc
index f58faa1..4189a15 100644
--- a/src/trace_processor/trace_processor_context.cc
+++ b/src/trace_processor/trace_processor_context.cc
@@ -22,15 +22,15 @@
 #include "src/trace_processor/event_tracker.h"
 #include "src/trace_processor/heap_graph_tracker.h"
 #include "src/trace_processor/heap_profile_tracker.h"
+#include "src/trace_processor/importers/json/json_trace_parser.h"
 #include "src/trace_processor/importers/proto/ftrace_module.h"
 #include "src/trace_processor/importers/proto/track_event_module.h"
-#include "src/trace_processor/json_trace_parser.h"
+#include "src/trace_processor/importers/systrace/systrace_parser.h"
 #include "src/trace_processor/process_tracker.h"
 #include "src/trace_processor/proto_trace_parser.h"
 #include "src/trace_processor/slice_tracker.h"
 #include "src/trace_processor/stack_profile_tracker.h"
 #include "src/trace_processor/syscall_tracker.h"
-#include "src/trace_processor/systrace_parser.h"
 #include "src/trace_processor/trace_sorter.h"
 #include "src/trace_processor/track_tracker.h"
 #include "src/trace_processor/vulkan_memory_tracker.h"
diff --git a/src/trace_processor/trace_processor_impl.cc b/src/trace_processor/trace_processor_impl.cc
index 0d3bd19..4699d9e 100644
--- a/src/trace_processor/trace_processor_impl.cc
+++ b/src/trace_processor/trace_processor_impl.cc
@@ -38,6 +38,8 @@
 #include "src/trace_processor/heap_graph_tracker.h"
 #include "src/trace_processor/heap_profile_allocation_table.h"
 #include "src/trace_processor/heap_profile_tracker.h"
+#include "src/trace_processor/importers/systrace/systrace_parser.h"
+#include "src/trace_processor/importers/systrace/systrace_trace_parser.h"
 #include "src/trace_processor/instants_table.h"
 #include "src/trace_processor/metadata_table.h"
 #include "src/trace_processor/metrics/descriptors.h"
@@ -62,8 +64,6 @@
 #include "src/trace_processor/stack_profile_tracker.h"
 #include "src/trace_processor/stats_table.h"
 #include "src/trace_processor/syscall_tracker.h"
-#include "src/trace_processor/systrace_parser.h"
-#include "src/trace_processor/systrace_trace_parser.h"
 #include "src/trace_processor/thread_table.h"
 #include "src/trace_processor/trace_blob_view.h"
 #include "src/trace_processor/trace_sorter.h"
diff --git a/src/trace_processor/trace_sorter.h b/src/trace_processor/trace_sorter.h
index 4aababf..e065cb9 100644
--- a/src/trace_processor/trace_sorter.h
+++ b/src/trace_processor/trace_sorter.h
@@ -21,7 +21,7 @@
 
 #include "perfetto/ext/base/circular_queue.h"
 #include "perfetto/trace_processor/basic_types.h"
-#include "src/trace_processor/fuchsia_provider_view.h"
+#include "src/trace_processor/importers/fuchsia/fuchsia_provider_view.h"
 #include "src/trace_processor/proto_incremental_state.h"
 #include "src/trace_processor/timestamped_trace_piece.h"
 #include "src/trace_processor/trace_blob_view.h"