[][openwrt][mt7988][tops][refactor tops-tool and add logger suuport]

[Description]
Refactor tops-tool and add logger support

add menu config for tops-tool
move common code into common part

save log cmd will open log relayfs and save
its data(log) as file in the filesystem

log relayfs path :
/sys/kernel/debug/tops/log-mgmt0
/sys/kernel/debug/tops/log-offload0

log file path :
<LOG_DIR>/log-mgmt-<time>
<LOG_DIR>/log-offload-<time>

[Release-log]
N/A

Change-Id: I1c563efbb584540eeb1b78c2a438c0173c4cdbba
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/7988095
diff --git a/feed/app/tops-tool/src/inc/logger.h b/feed/app/tops-tool/src/inc/logger.h
new file mode 100644
index 0000000..27a802a
--- /dev/null
+++ b/feed/app/tops-tool/src/inc/logger.h
@@ -0,0 +1,41 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2023 MediaTek Incorporation. All Rights Reserved.
+ *
+ * Author: Alvin Kuo <Alvin.Kuo@mediatek.com>
+ */
+
+#ifndef __LOGGER_H__
+#define __LOGGER_H__
+
+#include <glob.h>
+
+#define LOG_MGMT_RELAYFS_PATH		"/sys/kernel/debug/tops/log-mgmt*"
+#define LOG_MGMT_NAME			"log-mgmt"
+
+#define LOG_OFFLOAD_RELAYFS_PATH	"/sys/kernel/debug/tops/log-offload*"
+#define LOG_OFFLOAD_NAME		"log-offload"
+
+#define LOGGER_DEBUGFS_PATH		"/sys/kernel/debug/tops/logger"
+
+#define BUFFER_LEN			(0x1000)
+
+enum log_num {
+	LOG_NUM_MGMT = 0,
+	LOG_NUM_OFFLOAD,
+
+	__LOG_NUM_MAX
+};
+#define LOG_NUM_MAX			__LOG_NUM_MAX
+
+struct logger_runtime_info {
+	const char *relayfs_path;
+	glob_t relayfs_glob;
+	int relayfs_fd;
+	const char *log_name;
+	char *log_file_path;
+};
+
+int tops_tool_run_logger(int argc, char *argv[]);
+
+#endif /* __LOGGER_H__ */