mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-26 02:47:36 +00:00
tools/dot2c: Fix generated files going over 100 column limit
The dot2c.py script generates all states in a single line. This breaks the 100 column limit when the state machines are non-trivial. Change dot2c.py to generate the states in separate lines in case the generated line is going to be too long. Also adapt existing monitors with line length over the limit. Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Tomas Glozar <tglozar@redhat.com> Cc: Juri Lelli <jlelli@redhat.com> Cc: Clark Williams <williams@redhat.com> Cc: John Kacur <jkacur@redhat.com> Link: https://lore.kernel.org/20250723161240.194860-4-gmonaco@redhat.com Suggested-by: Nam Cao <namcao@linutronix.de> Signed-off-by: Gabriele Monaco <gmonaco@redhat.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
parent
1160ccaf77
commit
9efcf59082
@ -41,8 +41,18 @@ static const struct automaton_snep automaton_snep = {
|
||||
"schedule_exit"
|
||||
},
|
||||
.function = {
|
||||
{ non_scheduling_context_snep, non_scheduling_context_snep, scheduling_contex_snep, INVALID_STATE },
|
||||
{ INVALID_STATE, INVALID_STATE, INVALID_STATE, non_scheduling_context_snep },
|
||||
{
|
||||
non_scheduling_context_snep,
|
||||
non_scheduling_context_snep,
|
||||
scheduling_contex_snep,
|
||||
INVALID_STATE
|
||||
},
|
||||
{
|
||||
INVALID_STATE,
|
||||
INVALID_STATE,
|
||||
INVALID_STATE,
|
||||
non_scheduling_context_snep
|
||||
},
|
||||
},
|
||||
.initial_state = non_scheduling_context_snep,
|
||||
.final_states = { 1, 0 },
|
||||
|
@ -152,28 +152,30 @@ class Dot2c(Automata):
|
||||
max_state_name = max(self.states, key = len).__len__()
|
||||
return max(max_state_name, self.invalid_state_str.__len__())
|
||||
|
||||
def __get_state_string_length(self):
|
||||
maxlen = self.__get_max_strlen_of_states() + self.enum_suffix.__len__()
|
||||
return "%" + str(maxlen) + "s"
|
||||
|
||||
def get_aut_init_function(self):
|
||||
nr_states = self.states.__len__()
|
||||
nr_events = self.events.__len__()
|
||||
buff = []
|
||||
|
||||
strformat = self.__get_state_string_length()
|
||||
|
||||
maxlen = self.__get_max_strlen_of_states() + len(self.enum_suffix)
|
||||
tab_braces = 2 * 8 + 2 + 1 # "\t\t{ " ... "}"
|
||||
comma_space = 2 # ", " count last comma here
|
||||
linetoolong = tab_braces + (maxlen + comma_space) * nr_events > self.line_length
|
||||
for x in range(nr_states):
|
||||
line = "\t\t{ "
|
||||
line = "\t\t{\n" if linetoolong else "\t\t{ "
|
||||
for y in range(nr_events):
|
||||
next_state = self.function[x][y]
|
||||
if next_state != self.invalid_state_str:
|
||||
next_state = self.function[x][y] + self.enum_suffix
|
||||
|
||||
if y != nr_events-1:
|
||||
line = line + strformat % next_state + ", "
|
||||
if linetoolong:
|
||||
line += "\t\t\t%s" % next_state
|
||||
else:
|
||||
line = line + strformat % next_state + " },"
|
||||
line += "%*s" % (maxlen, next_state)
|
||||
if y != nr_events-1:
|
||||
line += ",\n" if linetoolong else ", "
|
||||
else:
|
||||
line += "\n\t\t}," if linetoolong else " },"
|
||||
buff.append(line)
|
||||
|
||||
return self.__buff_to_string(buff)
|
||||
|
Loading…
Reference in New Issue
Block a user