move aoc dump to gs-common

Bug: 248426917
Test: adb bugreport
Change-Id: I29fea8752011959b5d0eb50ed93c6e8eed66f9ee
diff --git a/aoc/dump_aoc.cpp b/aoc/dump_aoc.cpp
new file mode 100644
index 0000000..a3e0088
--- /dev/null
+++ b/aoc/dump_aoc.cpp
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <stdio.h>
+#include <string>
+#include <android-base/file.h>
+#include <fstream>
+#include <iostream>
+
+// Format title and content output.
+void dumpFileContent(const char* title, const char* file_path) {
+    std::string content;
+    printf("------ %s (%s) ------\n", title, file_path);
+    if (android::base::ReadFileToString(file_path, &content)) {
+        printf("%s\n", content.c_str());
+    } else {
+        printf("Unable to read %s\n", file_path);
+    }
+    return;
+}
+
+void command(const char* title, const char* cmd){
+    printf("------ %s (%s) ------\n", title, cmd);
+    system(cmd);
+    return;
+}
+
+// Dump Aoc.
+int main() {
+    setbuf(stdout, NULL);
+    dumpFileContent("AoC Service Status", "/sys/devices/platform/19000000.aoc/services");
+    dumpFileContent("AoC Restarts", "/sys/devices/platform/19000000.aoc/restart_count");
+    dumpFileContent("AoC Coredumps", "/sys/devices/platform/19000000.aoc/coredump_count");
+    dumpFileContent("AoC ring buf wake", "/sys/devices/platform/19000000.aoc/control/ring_buffer_wakeup");
+    dumpFileContent("AoC host ipc wake", "/sys/devices/platform/19000000.aoc/control/host_ipc_wakeup");
+    dumpFileContent("AoC usf wake", "/sys/devices/platform/19000000.aoc/control/usf_wakeup");
+    dumpFileContent("AoC audio wake", "/sys/devices/platform/19000000.aoc/control/audio_wakeup");
+    dumpFileContent("AoC logging wake", "/sys/devices/platform/19000000.aoc/control/logging_wakeup");
+    dumpFileContent("AoC hotword wake", "/sys/devices/platform/19000000.aoc/control/hotword_wakeup");
+    dumpFileContent("AoC memory exception wake", "/sys/devices/platform/19000000.aoc/control/memory_exception");
+    dumpFileContent("AoC memory votes", "/sys/devices/platform/19000000.aoc/control/memory_votes_a32");
+    dumpFileContent("AoC memory votes", "/sys/devices/platform/19000000.aoc/control/memory_votes_ff1");
+    command("clean AoC buffer","echo ' ' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
+    command("AoC Heap Stats (A32)", "echo 'dbg heap -c 1' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
+    command("AoC Heap Stats (F1)", "echo 'dbg heap -c 2' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
+    command("AoC Heap Stats (HF0)", "echo 'dbg heap -c 3' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
+    command("AoC Heap Stats (HF1)", "echo 'dbg heap -c 4' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug");
+    return 0;
+}