Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 619ccaf3 authored by Kieran Bingham's avatar Kieran Bingham Committed by Linus Torvalds
Browse files

scripts/gdb: convert modules usage to lists functions

parent a84be61d
Loading
Loading
Loading
Loading
+6 −11
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@

import gdb

from linux import cpus, utils
from linux import cpus, utils, lists


module_type = utils.CachedType("struct module")
@@ -23,12 +23,9 @@ def module_list():
    global module_type
    module_ptr_type = module_type.get_type().pointer()
    modules = gdb.parse_and_eval("modules")
    entry = modules['next']
    end_of_list = modules.address

    while entry != end_of_list:
        yield utils.container_of(entry, module_ptr_type, "list")
        entry = entry['next']
    for module in lists.list_for_each_entry(modules, module_ptr_type, "list"):
        yield module


def find_module_by_name(name):
@@ -80,17 +77,15 @@ class LxLsmod(gdb.Command):
                size=str(layout['size']),
                ref=str(module['refcnt']['counter'] - 1)))

            source_list = module['source_list']
            t = self._module_use_type.get_type().pointer()
            entry = source_list['next']
            first = True
            while entry != source_list.address:
                use = utils.container_of(entry, t, "source_list")
            sources = module['source_list']
            for use in lists.list_for_each_entry(sources, t, "source_list"):
                gdb.write("{separator}{name}".format(
                    separator=" " if first else ",",
                    name=use['source']['name'].string()))
                first = False
                entry = entry['next']

            gdb.write("\n")