On 30.09.19 21:13, Andrej Utz wrote:
> From: Ralf Ramsauer <[email protected]>
>
> Move the next part to the new class: the whole file parser.
>
> For the moment, this leaves an ugly one-liner in parse_iomem_file, but let's
> keep it for the moment -- we'll clean that up later.
>
> Signed-off-by: Ralf Ramsauer <[email protected]>
> ---
> pyjailhouse/sysfs_parser.py | 50 ++++++++++++++++++++-----------------
> 1 file changed, 27 insertions(+), 23 deletions(-)
>
> diff --git a/pyjailhouse/sysfs_parser.py b/pyjailhouse/sysfs_parser.py
> index a179461d..b72be367 100644
> --- a/pyjailhouse/sysfs_parser.py
> +++ b/pyjailhouse/sysfs_parser.py
> @@ -834,6 +834,32 @@ class IORegionTree:
>
> return level, TargetClass(int(region[0], 16), int(region[1], 16),
> type)
>
> + @staticmethod
> + def parse_io_file(filename, TargetClass):
> + root = IOMemRegionTree(None, 0)
> + f = input_open(filename)
> + lastlevel = 0
> + lastnode = root
> + for line in f:
> + level, r = IORegionTree.parse_io_line(line, TargetClass)
Style.
> + t = IOMemRegionTree(r, level)
> + if t.level > lastlevel:
> + t.parent = lastnode
> + if t.level == lastlevel:
> + t.parent = lastnode.parent
> + if t.level < lastlevel:
> + p = lastnode.parent
> + while t.level < p.level:
> + p = p.parent
> + t.parent = p.parent
> +
> + t.parent.children.append(t)
> + lastnode = t
> + lastlevel = t.level
> + f.close()
> +
> + return root
> +
>
> class IOMemRegionTree:
> def __init__(self, region, level):
> @@ -877,29 +903,7 @@ class IOMemRegionTree:
>
> @staticmethod
> def parse_iomem_file():
> - root = IOMemRegionTree(None, 0)
> - f = input_open('/proc/iomem')
> - lastlevel = 0
> - lastnode = root
> - for line in f:
> - level, r = IORegionTree.parse_io_line(line, MemRegion)
> - t = IOMemRegionTree(r, level)
> - if (t.level > lastlevel):
> - t.parent = lastnode
> - if (t.level == lastlevel):
> - t.parent = lastnode.parent
> - if (t.level < lastlevel):
> - p = lastnode.parent
> - while(t.level < p.level):
> - p = p.parent
> - t.parent = p.parent
> -
> - t.parent.children.append(t)
> - lastnode = t
> - lastlevel = t.level
> - f.close()
> -
> - return root
> + return IORegionTree.parse_io_file('/proc/iomem', MemRegion)
>
> # find specific regions in tree
> @staticmethod
>
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
--
You received this message because you are subscribed to the Google Groups
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/jailhouse-dev/555f58d6-8497-3cbd-dc33-5731df8ca2af%40siemens.com.