forked from OpenSDV/Linux_Kernel_map4vehicle
+cflow_dir
This commit is contained in:
parent
e2f1e3aefb
commit
83e17d2ee2
53
srcxray.py
53
srcxray.py
|
@ -721,27 +721,7 @@ def remove_loops(dg):
|
|||
return dg
|
||||
|
||||
|
||||
def cflow_linux():
|
||||
dirs = ('init kernel kernel/time '
|
||||
'fs fs/ext4 block '
|
||||
'ipc net '
|
||||
'lib security security/keys '
|
||||
'arch/x86/kernel drivers/char drivers/pci '
|
||||
).split()
|
||||
|
||||
# dirs += ('mm net/ipv4 crypto').split()
|
||||
dirs = ('init kernel arch/x86/kernel fs ').split()
|
||||
|
||||
# fs/notify/fanotify fs/notify/inotify
|
||||
|
||||
try:
|
||||
print('loading all.dot')
|
||||
all = read_dot2('all.dot')
|
||||
# all = nx.DiGraph(read_dot('all.dot'))
|
||||
except FileNotFoundError:
|
||||
all = nx.DiGraph()
|
||||
for a in dirs:
|
||||
print(a)
|
||||
def cflow_dir(a):
|
||||
index = nx.DiGraph()
|
||||
for c in glob.glob(os.path.join(a, "*.c")):
|
||||
g = None
|
||||
|
@ -763,12 +743,39 @@ def cflow_linux():
|
|||
index.add_edges_from(g.edges())
|
||||
write_dot(index, str(os.path.join(a, 'index.dot')))
|
||||
digraph_print(digraph_tree(index), [], os.path.join(a, 'index.tree'))
|
||||
return index
|
||||
|
||||
|
||||
def cflow_linux():
|
||||
dirs = ('init kernel kernel/time '
|
||||
'fs fs/ext4 block '
|
||||
'ipc net '
|
||||
'lib security security/keys '
|
||||
'arch/x86/kernel drivers/char drivers/pci '
|
||||
).split()
|
||||
|
||||
# dirs += ('mm net/ipv4 crypto').split()
|
||||
dirs = ('init kernel arch/x86/kernel fs ').split()
|
||||
|
||||
# fs/notify/fanotify fs/notify/inotify
|
||||
|
||||
try:
|
||||
print('loading all.dot')
|
||||
all = read_dot2('all.dot')
|
||||
# all = nx.DiGraph(read_dot('all.dot'))
|
||||
except FileNotFoundError:
|
||||
all = nx.DiGraph()
|
||||
for a in dirs:
|
||||
print(a)
|
||||
index = cflow_dir(a)
|
||||
# all.add_nodes_from(index.nodes())
|
||||
all.add_edges_from(index.edges())
|
||||
write_dot(all, 'all.dot')
|
||||
# print('loops: ' + str( all.nodes_with_selfloops()))
|
||||
remove_loops(all)
|
||||
print('loops: ' + str(list(all.nodes_with_selfloops())))
|
||||
print('trees:')
|
||||
digraph_print(all, ['x86_64_start_kernel', 'start_kernel', 'main', 'initcall', 'early_param', '__setup', 'sys_write', 'write'],
|
||||
digraph_print(all, ['x86_64_start_kernel', 'start_kernel', 'main', 'initcall', 'early_param',
|
||||
'__setup', 'sys_write', 'write'],
|
||||
'all.tree')
|
||||
start_kernel = digraph_tree(all, ['start_kernel'])
|
||||
write_dot(start_kernel, 'start_kernel.dot')
|
||||
|
|
Loading…
Reference in New Issue