diff options
Diffstat (limited to 'scripts/smdk4412_func_usage.py')
-rwxr-xr-x | scripts/smdk4412_func_usage.py | 85 |
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) |