mirror of
https://xff.cz/git/u-boot/
synced 2025-09-26 04:51:17 +02:00
pylibfdt: Sync up with upstream
Sync up the libfdt Python bindings with upstream, commit: 430419c (tests: fix some python warnings) Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -92,7 +92,7 @@ def check_err(val, quiet=()):
|
|||||||
Raises
|
Raises
|
||||||
FdtException if val < 0
|
FdtException if val < 0
|
||||||
"""
|
"""
|
||||||
if val < 0:
|
if isinstance(val, int) and val < 0:
|
||||||
if -val not in quiet:
|
if -val not in quiet:
|
||||||
raise FdtException(val)
|
raise FdtException(val)
|
||||||
return val
|
return val
|
||||||
@@ -417,7 +417,7 @@ class FdtRo(object):
|
|||||||
quiet)
|
quiet)
|
||||||
if isinstance(pdata, (int)):
|
if isinstance(pdata, (int)):
|
||||||
return pdata
|
return pdata
|
||||||
return Property(prop_name, bytearray(pdata[0]))
|
return Property(prop_name, bytes(pdata[0]))
|
||||||
|
|
||||||
def get_phandle(self, nodeoffset):
|
def get_phandle(self, nodeoffset):
|
||||||
"""Get the phandle of a node
|
"""Get the phandle of a node
|
||||||
@@ -431,6 +431,18 @@ class FdtRo(object):
|
|||||||
"""
|
"""
|
||||||
return fdt_get_phandle(self._fdt, nodeoffset)
|
return fdt_get_phandle(self._fdt, nodeoffset)
|
||||||
|
|
||||||
|
def get_alias(self, name):
|
||||||
|
"""Get the full path referenced by a given alias
|
||||||
|
|
||||||
|
Args:
|
||||||
|
name: name of the alias to lookup
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Full path to the node for the alias named 'name', if it exists
|
||||||
|
None, if the given alias or the /aliases node does not exist
|
||||||
|
"""
|
||||||
|
return fdt_get_alias(self._fdt, name)
|
||||||
|
|
||||||
def parent_offset(self, nodeoffset, quiet=()):
|
def parent_offset(self, nodeoffset, quiet=()):
|
||||||
"""Get the offset of a node's parent
|
"""Get the offset of a node's parent
|
||||||
|
|
||||||
@@ -727,6 +739,8 @@ class FdtSw(FdtRo):
|
|||||||
|
|
||||||
# First create the device tree with a node and property:
|
# First create the device tree with a node and property:
|
||||||
sw = FdtSw()
|
sw = FdtSw()
|
||||||
|
sw.finish_reservemap()
|
||||||
|
with sw.add_node(''):
|
||||||
with sw.add_node('node'):
|
with sw.add_node('node'):
|
||||||
sw.property_u32('reg', 2)
|
sw.property_u32('reg', 2)
|
||||||
fdt = sw.as_fdt()
|
fdt = sw.as_fdt()
|
||||||
@@ -1029,17 +1043,24 @@ typedef uint32_t fdt32_t;
|
|||||||
if (!$1)
|
if (!$1)
|
||||||
$result = Py_None;
|
$result = Py_None;
|
||||||
else
|
else
|
||||||
|
%#if PY_VERSION_HEX >= 0x03000000
|
||||||
|
$result = Py_BuildValue("y#", $1, *arg4);
|
||||||
|
%#else
|
||||||
$result = Py_BuildValue("s#", $1, *arg4);
|
$result = Py_BuildValue("s#", $1, *arg4);
|
||||||
|
%#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* typemap used for fdt_setprop() */
|
/* typemap used for fdt_setprop() */
|
||||||
%typemap(in) (const void *val) {
|
%typemap(in) (const void *val) {
|
||||||
|
%#if PY_VERSION_HEX >= 0x03000000
|
||||||
|
if (!PyBytes_Check($input)) {
|
||||||
|
SWIG_exception_fail(SWIG_TypeError, "bytes expected in method '" "$symname"
|
||||||
|
"', argument " "$argnum"" of type '" "$type""'");
|
||||||
|
}
|
||||||
|
$1 = PyBytes_AsString($input);
|
||||||
|
%#else
|
||||||
$1 = PyString_AsString($input); /* char *str */
|
$1 = PyString_AsString($input); /* char *str */
|
||||||
}
|
%#endif
|
||||||
|
|
||||||
/* typemap used for fdt_add_reservemap_entry() */
|
|
||||||
%typemap(in) uint64_t {
|
|
||||||
$1 = PyLong_AsUnsignedLong($input);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* typemaps used for fdt_next_node() */
|
/* typemaps used for fdt_next_node() */
|
||||||
@@ -1061,7 +1082,7 @@ typedef uint32_t fdt32_t;
|
|||||||
}
|
}
|
||||||
|
|
||||||
%typemap(argout) uint64_t * {
|
%typemap(argout) uint64_t * {
|
||||||
PyObject *val = PyLong_FromUnsignedLong(*arg$argnum);
|
PyObject *val = PyLong_FromUnsignedLongLong(*arg$argnum);
|
||||||
if (!result) {
|
if (!result) {
|
||||||
if (PyTuple_GET_SIZE(resultobj) == 0)
|
if (PyTuple_GET_SIZE(resultobj) == 0)
|
||||||
resultobj = val;
|
resultobj = val;
|
||||||
|
Reference in New Issue
Block a user