mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 11:06:41 -05:00
verification/dot2k: Add support for name and description options
The dot2k command includes options to set a model name with -n and a description with -D, however those are not used in practice. This patch allows to specify a custom model name (by default the name of the dot file without extension) and a description which overrides the one in the C file. Cc: Juri Lelli <juri.lelli@redhat.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: John Kacur <jkacur@redhat.com> Link: https://lore.kernel.org/20241227144752.362911-5-gmonaco@redhat.com Signed-off-by: Gabriele Monaco <gmonaco@redhat.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
committed by
Steven Rostedt (Google)
parent
91f3407e13
commit
64b3e5f0d4
@@ -19,9 +19,9 @@ class Automata:
|
||||
|
||||
invalid_state_str = "INVALID_STATE"
|
||||
|
||||
def __init__(self, file_path):
|
||||
def __init__(self, file_path, model_name=None):
|
||||
self.__dot_path = file_path
|
||||
self.name = self.__get_model_name()
|
||||
self.name = model_name or self.__get_model_name()
|
||||
self.__dot_lines = self.__open_dot()
|
||||
self.states, self.initial_state, self.final_states = self.__get_state_variables()
|
||||
self.events = self.__get_event_variables()
|
||||
|
||||
@@ -22,8 +22,8 @@ class Dot2c(Automata):
|
||||
struct_automaton_def = "automaton"
|
||||
var_automaton_def = "aut"
|
||||
|
||||
def __init__(self, file_path):
|
||||
super().__init__(file_path)
|
||||
def __init__(self, file_path, model_name=None):
|
||||
super().__init__(file_path, model_name)
|
||||
self.line_length = 100
|
||||
|
||||
def __buff_to_string(self, buff):
|
||||
|
||||
@@ -25,16 +25,12 @@ if __name__ == '__main__':
|
||||
|
||||
print("Opening and parsing the dot file %s" % params.dot_file)
|
||||
try:
|
||||
monitor=dot2k(params.dot_file, params.monitor_type)
|
||||
monitor=dot2k(params.dot_file, params.monitor_type, vars(params))
|
||||
except Exception as e:
|
||||
print('Error: '+ str(e))
|
||||
print("Sorry : :-(")
|
||||
sys.exit(1)
|
||||
|
||||
# easier than using argparse action.
|
||||
if params.model_name != None:
|
||||
print(params.model_name)
|
||||
|
||||
print("Writing the monitor into the directory %s" % monitor.name)
|
||||
monitor.print_files()
|
||||
print("Almost done, checklist")
|
||||
|
||||
@@ -17,17 +17,18 @@ class dot2k(Dot2c):
|
||||
monitor_templates_dir = "dot2/dot2k_templates/"
|
||||
monitor_type = "per_cpu"
|
||||
|
||||
def __init__(self, file_path, MonitorType):
|
||||
super().__init__(file_path)
|
||||
def __init__(self, file_path, MonitorType, extra_params={}):
|
||||
super().__init__(file_path, extra_params.get("model_name"))
|
||||
|
||||
self.monitor_type = self.monitor_types.get(MonitorType)
|
||||
if self.monitor_type is None:
|
||||
raise Exception("Unknown monitor type: %s" % MonitorType)
|
||||
raise ValueError("Unknown monitor type: %s" % MonitorType)
|
||||
|
||||
self.monitor_type = MonitorType
|
||||
self.__fill_rv_templates_dir()
|
||||
self.main_c = self.__open_file(self.monitor_templates_dir + "main.c")
|
||||
self.enum_suffix = "_%s" % self.name
|
||||
self.description = extra_params.get("description", self.name) or "auto-generated"
|
||||
|
||||
def __fill_rv_templates_dir(self):
|
||||
|
||||
@@ -114,6 +115,7 @@ class dot2k(Dot2c):
|
||||
main_c = main_c.replace("%%TRACEPOINT_HANDLERS_SKEL%%", tracepoint_handlers)
|
||||
main_c = main_c.replace("%%TRACEPOINT_ATTACH%%", tracepoint_attach)
|
||||
main_c = main_c.replace("%%TRACEPOINT_DETACH%%", tracepoint_detach)
|
||||
main_c = main_c.replace("%%DESCRIPTION%%", self.description)
|
||||
|
||||
return main_c
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ static void disable_%%MODEL_NAME%%(void)
|
||||
*/
|
||||
static struct rv_monitor rv_%%MODEL_NAME%% = {
|
||||
.name = "%%MODEL_NAME%%",
|
||||
.description = "auto-generated %%MODEL_NAME%%",
|
||||
.description = "%%DESCRIPTION%%",
|
||||
.enable = enable_%%MODEL_NAME%%,
|
||||
.disable = disable_%%MODEL_NAME%%,
|
||||
.reset = da_monitor_reset_all_%%MODEL_NAME%%,
|
||||
@@ -88,4 +88,4 @@ module_exit(unregister_%%MODEL_NAME%%);
|
||||
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_AUTHOR("dot2k: auto-generated");
|
||||
MODULE_DESCRIPTION("%%MODEL_NAME%%");
|
||||
MODULE_DESCRIPTION("%%MODEL_NAME%%: %%DESCRIPTION%%");
|
||||
|
||||
Reference in New Issue
Block a user