mirror of
https://github.com/dgibson/dtc.git
synced 2025-10-13 16:27:39 -04:00
pylibfdt: Add support for fdt_subnode_offset()
Add this into the class to simplify use of this function. Signed-off-by: Simon Glass <sjg@chromium.org> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
46f31b65b3
commit
5bed86aee9
2 changed files with 29 additions and 0 deletions
|
@ -174,6 +174,23 @@ class Fdt:
|
||||||
self._fdt = bytearray(data)
|
self._fdt = bytearray(data)
|
||||||
check_err(fdt_check_header(self._fdt));
|
check_err(fdt_check_header(self._fdt));
|
||||||
|
|
||||||
|
def subnode_offset(self, parentoffset, name, quiet=()):
|
||||||
|
"""Get the offset of a named subnode
|
||||||
|
|
||||||
|
Args:
|
||||||
|
parentoffset: Offset of the parent node to check
|
||||||
|
name: Name of the required subnode, e.g. 'subnode@1'
|
||||||
|
quiet: Errors to ignore (empty to raise on all errors)
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
The node offset of the found node, if any
|
||||||
|
|
||||||
|
Raises
|
||||||
|
FdtException if there is no node with that name, or other error
|
||||||
|
"""
|
||||||
|
return check_err(fdt_subnode_offset(self._fdt, parentoffset, name),
|
||||||
|
quiet)
|
||||||
|
|
||||||
def path_offset(self, path, quiet=()):
|
def path_offset(self, path, quiet=()):
|
||||||
"""Get the offset for a given path
|
"""Get the offset for a given path
|
||||||
|
|
||||||
|
|
|
@ -118,6 +118,18 @@ class PyLibfdtTests(unittest.TestCase):
|
||||||
fdt = libfdt.Fdt('a string')
|
fdt = libfdt.Fdt('a string')
|
||||||
self.assertEquals(e.exception.err, -libfdt.BADMAGIC)
|
self.assertEquals(e.exception.err, -libfdt.BADMAGIC)
|
||||||
|
|
||||||
|
def testSubnodeOffset(self):
|
||||||
|
"""check that we can locate a subnode by name"""
|
||||||
|
node1 = self.fdt.path_offset('/subnode@1')
|
||||||
|
self.assertEquals(self.fdt.subnode_offset(0, 'subnode@1'), node1)
|
||||||
|
|
||||||
|
with self.assertRaises(FdtException) as e:
|
||||||
|
self.fdt.subnode_offset(0, 'missing')
|
||||||
|
self.assertEquals(e.exception.err, -libfdt.NOTFOUND)
|
||||||
|
|
||||||
|
node2 = self.fdt.path_offset('/subnode@1/subsubnode')
|
||||||
|
self.assertEquals(self.fdt.subnode_offset(node1, 'subsubnode'), node2)
|
||||||
|
|
||||||
def testPathOffset(self):
|
def testPathOffset(self):
|
||||||
"""Check that we can find the offset of a node"""
|
"""Check that we can find the offset of a node"""
|
||||||
self.assertEquals(self.fdt.path_offset('/'), 0)
|
self.assertEquals(self.fdt.path_offset('/'), 0)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue