PR review fixes: Since the IDR, XArray and RadixTree can store any value, it renames the function names to a more generic name

This commit is contained in:
Gustavo Moreira
2024-08-08 01:52:57 -07:00
parent ee10ba8abb
commit 0f3f338633
4 changed files with 13 additions and 11 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ class EBPF(plugins.PluginInterface):
)
prog_idr = vmlinux.object_from_symbol("prog_idr")
for page_addr in prog_idr.get_page_addresses():
for page_addr in prog_idr.get_entries():
bpf_prog = vmlinux.object("bpf_prog", offset=page_addr, absolute=True)
yield bpf_prog
@@ -175,7 +175,7 @@ class PIDHashTable(plugins.PluginInterface):
ns_addr = self.vmlinux.get_symbol("init_pid_ns").address
ns = self.vmlinux.object("pid_namespace", offset=ns_addr)
for page_addr in ns.idr.get_page_addresses():
for page_addr in ns.idr.get_entries():
task = self._task_for_radix_pid_node(page_addr)
if self._is_valid_task(task):
yield task
@@ -572,7 +572,7 @@ class Tree(ABC):
for child_node in self._iter_node(nodep, height - 1):
yield child_node
def get_page_addresses(self, root: interfaces.objects.ObjectInterface) -> int:
def get_entries(self, root: interfaces.objects.ObjectInterface) -> int:
"""Walks the tree data structure
Args:
@@ -762,7 +762,7 @@ class PageCache(object):
Page objects
"""
for page_addr in self._tree.get_page_addresses(self._page_cache.i_pages):
for page_addr in self._tree.get_entries(self._page_cache.i_pages):
if not page_addr:
continue
@@ -2167,7 +2167,7 @@ class IDR(objects.StructType):
return idr_layer
def _old_kernel_get_page_addresses(self, in_use) -> int:
def _old_kernel_get_entries(self) -> int:
# Kernels < 4.11
total = next_id = 0
while total < in_use:
@@ -2178,14 +2178,14 @@ class IDR(objects.StructType):
next_id += 1
def _new_kernel_get_page_addresses(self, _in_use) -> int:
def _new_kernel_get_entries(self) -> int:
# Kernels >= 4.11
vmlinux = linux.LinuxUtilities.get_module_from_volobj_type(self._context, self)
tree = linux.LinuxUtilities.choose_kernel_tree(vmlinux)
for page_addr in tree.get_page_addresses(root=self.idr_rt):
for page_addr in tree.get_entries(root=self.idr_rt):
yield page_addr
def get_page_addresses(self, in_use=0) -> int:
def get_entries(self) -> int:
"""Walks the IDR and yield a pointer associated with each element.
Args:
@@ -2195,9 +2195,11 @@ class IDR(objects.StructType):
A pointer associated with each element.
"""
if self.has_member("idr_rt"):
get_page_addresses_func = self._new_kernel_get_page_addresses
# Kernels >= 4.11
get_entries_func = self._new_kernel_get_entries
else:
get_page_addresses_func = self._old_kernel_get_page_addresses
# Kernels < 4.11
get_entries_func = self._old_kernel_get_entries
for page_addr in get_page_addresses_func(in_use):
for page_addr in get_entries_func():
yield page_addr