Commit 0c77e103 authored by Kuan-Ying Lee's avatar Kuan-Ying Lee Committed by Andrew Morton

scripts/gdb: add iteration function for rbtree

Add inorder iteration function for rbtree usage.

This is a preparation patch for the next patch to fix the gdb mounts
issue.

Link: https://lkml.kernel.org/r/20240723064902.124154-3-kuan-ying.lee@canonical.com
Fixes: 2eea9ce4 ("mounts: keep list of mounts in an rbtree")
Signed-off-by: default avatarKuan-Ying Lee <kuan-ying.lee@canonical.com>
Cc: Jan Kiszka <jan.kiszka@siemens.com>
Cc: Kieran Bingham <kbingham@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent a633a4b8
......@@ -9,6 +9,18 @@ from linux import utils
rb_root_type = utils.CachedType("struct rb_root")
rb_node_type = utils.CachedType("struct rb_node")
def rb_inorder_for_each(root):
def inorder(node):
if node:
yield from inorder(node['rb_left'])
yield node
yield from inorder(node['rb_right'])
yield from inorder(root['rb_node'])
def rb_inorder_for_each_entry(root, gdbtype, member):
for node in rb_inorder_for_each(root):
yield utils.container_of(node, gdbtype, member)
def rb_first(root):
if root.type == rb_root_type.get_type():
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment