• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/bash
2# Copyright (c) 2021 Huawei Device Co., Ltd.
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14set -e
15SOURCE="${BASH_SOURCE[0]}"
16cd $(dirname ${SOURCE})
17echo "begin to generate proto based files"
18SOURCE=$(dirname ${SOURCE})
19proto_dir="."
20services_dir="$proto_dir/services"
21# kernel_version="5.10.79_aarch64"
22kernel_version="."
23ftrace_data_dir="$proto_dir/types/plugins/ftrace_data/$kernel_version"
24memory_data_dir="$proto_dir/types/plugins/memory_data"
25hilog_data_dir="$proto_dir/types/plugins/hilog_data"
26native_hook_dir="$proto_dir/types/plugins/native_hook"
27hidump_data_dir="$proto_dir/types/plugins/hidump_data"
28network_data_dir="$proto_dir/types/plugins/network_data"
29cpu_data_dir="$proto_dir/types/plugins/cpu_data"
30diskio_data_dir="$proto_dir/types/plugins/diskio_data"
31process_data_dir="$proto_dir/types/plugins/process_data"
32hisysevent_data_dir="$proto_dir/types/plugins/hisysevent_data"
33proto_array=("${services_dir}/common_types.proto"
34    "$ftrace_data_dir/trace_plugin_result.proto"
35    "$ftrace_data_dir/ftrace_event.proto"
36    "$ftrace_data_dir/irq.proto"
37    "$ftrace_data_dir/vmscan.proto"
38    "$ftrace_data_dir/workqueue.proto"
39    "$ftrace_data_dir/task.proto"
40    "$ftrace_data_dir/power.proto"
41    "$ftrace_data_dir/sched.proto"
42    "$ftrace_data_dir/filemap.proto"
43    "$ftrace_data_dir/i2c.proto"
44    "$ftrace_data_dir/kmem.proto"
45    "$ftrace_data_dir/block.proto"
46    "$ftrace_data_dir/ipi.proto"
47    "$ftrace_data_dir/ftrace.proto"
48    "$ftrace_data_dir/ext4.proto"
49    "$ftrace_data_dir/oom.proto"
50    "$ftrace_data_dir/compaction.proto"
51    "$ftrace_data_dir/clk.proto"
52    "$ftrace_data_dir/cgroup.proto"
53    "$ftrace_data_dir/binder.proto"
54    "$ftrace_data_dir/signal.proto"
55    "$ftrace_data_dir/sunrpc.proto"
56    "$ftrace_data_dir/net.proto"
57    "$ftrace_data_dir/cpuhp.proto"
58    "$ftrace_data_dir/writeback.proto"
59    "$ftrace_data_dir/v4l2.proto"
60    "$ftrace_data_dir/pagemap.proto"
61    "$ftrace_data_dir/dma_fence.proto"
62    "$ftrace_data_dir/printk.proto"
63    "$ftrace_data_dir/filelock.proto"
64    "$ftrace_data_dir/gpio.proto"
65    "$ftrace_data_dir/timer.proto"
66    "$ftrace_data_dir/raw_syscalls.proto"
67    "$ftrace_data_dir/rcu.proto"
68    # "$ftrace_data_dir/mmc.proto"
69    # "$ftrace_data_dir/f2fs.proto"
70    # "$ftrace_data_dir/gpu_mem.proto"
71    # "$ftrace_data_dir/regulator.proto"
72    "$memory_data_dir/memory_plugin_common.proto"
73    "$memory_data_dir/memory_plugin_config.proto"
74    "$memory_data_dir/memory_plugin_result.proto"
75    "$hilog_data_dir/hilog_plugin_result.proto"
76    "$native_hook_dir/native_hook_result.proto"
77    "$native_hook_dir/native_hook_config.proto"
78    "$hidump_data_dir/hidump_plugin_result.proto"
79    "$network_data_dir/network_plugin_result.proto"
80    "$cpu_data_dir/cpu_plugin_result.proto"
81    "$diskio_data_dir/diskio_plugin_result.proto"
82    "$process_data_dir/process_plugin_result.proto"
83    "$hisysevent_data_dir/hisysevent_plugin_result.proto")
84
85export LD_LIBRARY_PATH=../../out/linux
86for ((i = 0; i < ${#proto_array[@]}; i ++))
87do
88   newpath=$(dirname ${proto_array[$i]})
89   newpath=${newpath:2}
90   cppout=../../third_party/protogen/$newpath
91   mkdir -p $cppout
92   ../../out/linux/protoc --proto_path=$memory_data_dir:$native_hook_dir:$hidump_data_dir:$hilog_data_dir:$ftrace_data_dir:$services_dir:$network_data_dir:$cpu_data_dir:$diskio_data_dir:$process_data_dir:$hisysevent_data_dir --cpp_out=$cppout ${proto_array[$i]}
93done
94echo "generate proto based files over"