developtools_profiler/hiebpf/scripts/hiebpf_code_generator.py
wenlong12 112d44d9e2 版权信息整改
Signed-off-by:wenlong12 <wenlong12@huawei.com>

Signed-off-by: wenlong12 <wenlong12@huawei.com>
2023-08-14 20:06:28 +08:00

78 lines
3.0 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Copyright (c) Huawei Technologies Co., Ltd. 2022. All rights reserved.
# 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.
import os
import sys
import getopt
import fstrace_code_generator as fstrace
FSTRACE_PROGS_FILE = "../include/fstrace_progs.h"
FSTRACE_TYPES_FILE = "../include/fstrace_types.h"
FSTRACE_TARGETS_FILE = "../data/fstrace_target_funcs.txt"
OVERWRITE = False
LICENSE_HEAD = '''/*
* Copyright (c) Huawei Technologies Co., Ltd. 2022. All rights reserved.
* 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.
*/
'''
if __name__ == '__main__':
opt_list = [
'progs-out-file=',
'fstrace-out-file=',
'fstrace-targets-file=',
'overwrite=',
]
opt_names = [
'--progs-out-file',
'--fstrace-out-file',
'--fstrace-targets-file',
'--overwrite',
]
opts, args = getopt.getopt(sys.argv[1:], '', opt_list)
for opt, val in opts:
if opt == opt_names[0]:
FSTRACE_PROGS_FILE = val
if opt == opt_names[1]:
FSTRACE_TYPES_FILE = val
if opt == opt_names[2]:
FSTRACE_TARGETS_FILE = val
if opt == opt_names[3] and val == "true":
OVERWRITE = True
PROGS_FILE_EXISTS = os.path.exists(FSTRACE_PROGS_FILE)
TYPES_FILE_EXISTS = os.path.exists(FSTRACE_TYPES_FILE)
FILE_EXISTS = PROGS_FILE_EXISTS or TYPES_FILE_EXISTS
if OVERWRITE or not FILE_EXISTS:
with open(FSTRACE_PROGS_FILE, 'w') as progs_ouf:
HEAD_LINE = '/* This line is generated to truncate the original file */\n'
progs_ouf.write(LICENSE_HEAD)
progs_ouf.write(HEAD_LINE)
with open(FSTRACE_TYPES_FILE, 'w') as fstrace_ouf:
HEAD_LINE = '/* This line is generated to truncate the original file */\n'
fstrace_ouf.write(LICENSE_HEAD)
fstrace_ouf.write(HEAD_LINE)
fstrace.output_fstrace_code(FSTRACE_PROGS_FILE, FSTRACE_TYPES_FILE, FSTRACE_TARGETS_FILE)