aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/smdk4412_func_usage.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/smdk4412_func_usage.py')
-rwxr-xr-xscripts/smdk4412_func_usage.py85
1 files changed, 85 insertions, 0 deletions
diff --git a/scripts/smdk4412_func_usage.py b/scripts/smdk4412_func_usage.py
new file mode 100755
index 0000000..fe54f66
--- /dev/null
+++ b/scripts/smdk4412_func_usage.py
@@ -0,0 +1,85 @@
+#!/bin/env python
+
+import os
+import re
+from sh import git
+
+funcs = [
+ 'xmm626_kernel_smdk4412_power',
+ 'xmm626_kernel_smdk4412_boot_power',
+ 'xmm626_kernel_smdk4412_hci_power',
+ 'xmm626_kernel_smdk4412_link_control_enable',
+ 'xmm626_kernel_smdk4412_link_control_active',
+ 'xmm626_kernel_smdk4412_link_connected_wait',
+ 'xmm626_kernel_smdk4412_link_get_hostwake_wait',
+ 'xmm626_kernel_smdk4412_status_online_wait',
+ 'xmm626_kernel_smdk4412_open',
+ 'xmm626_kernel_smdk4412_close',
+ 'xmm626_kernel_smdk4412_read',
+ 'xmm626_kernel_smdk4412_write',
+ 'xmm626_kernel_smdk4412_poll',
+ 'xmm626_kernel_smdk4412_fmt_send',
+ 'xmm626_kernel_smdk4412_fmt_recv',
+ 'xmm626_kernel_smdk4412_rfs_send',
+ 'xmm626_kernel_smdk4412_rfs_recv',
+ 'xmm626_kernel_smdk4412_gprs_get_iface',
+ 'xmm626_kernel_smdk4412_gprs_get_capabilities',
+]
+
+results = {}
+
+def func_usage(func):
+ output = ""
+ try:
+ output = git('--no-pager', 'grep', '--color=never', func)
+ except:
+ pass
+
+ for line in output:
+ filepath = line.split(":")[0]
+ content = line.split(":")[1]
+
+ device = None
+ if re.match('samsung-ipc/devices/.*/*\.c$', filepath):
+ device = re.sub('\.c', '', os.path.basename(filepath))
+ if device not in results:
+ results[device] = {}
+ results[device][func] = True
+
+def print_func_group(device, device_data, device_maxlen, funcs, regex):
+ print ("| {}{} |".format(device, " " * (device_maxlen - len(device))),
+ end='')
+ for func in funcs:
+ if re.search(regex, func):
+ func_name = re.sub('xmm626_kernel_smdk4412_','', func)
+ if func in device_data:
+ print (" {} |".format(func_name), end='')
+ else:
+ print (" {} |".format(" " * len(func_name)), end='')
+ print()
+
+def report_results(results):
+ device_maxlen = 0
+ for key in results.keys():
+ if len(key) > device_maxlen:
+ device_maxlen = len(key)
+
+
+ print ("+{}+".format("-" * (device_maxlen + 2)))
+ for device, device_data in results.items():
+ # All:
+ # print_func_group(device, device_data, device_maxlen, funcs,
+ # "open|close|read|write|poll")
+ # print_func_group(device, device_data, device_maxlen, funcs, "fmt|rfs")
+ # print_func_group(device, device_data, device_maxlen, funcs, "gprs")
+
+
+ print_func_group(device, device_data, device_maxlen, funcs,
+ "power|link|status")
+
+ print ("+{}+".format("-" * (device_maxlen + 2)))
+
+for func in funcs:
+ func_usage(func)
+
+report_results(results)