diff options
author | Brucex.Wang <brucex.wang@intel.com> | 2023-09-06 08:24:43 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2023-09-26 07:26:21 +0000 |
commit | d6b05375b42c0c3b617d2058ccd35b703fb46a23 (patch) | |
tree | 3408e4da06921422f8476bc76d624a0d37a4027e | |
parent | c70d91442889078eb94e0abf777f74e403b72d37 (diff) | |
download | edk2-d6b05375b42c0c3b617d2058ccd35b703fb46a23.tar.gz |
MdePkg/BaseFdtLib: Add Fdt function.
Add FdtGetName() and FdtNodeDepth() function.
Cc: Benny Lin <benny.lin@intel.com>
Cc: Gua Guo <gua.guo@intel.com>
Cc: Chasel Chiu <chasel.chiu@intel.com>
Cc: James Lu <james.lu@intel.com>
Reviewed-by: Benny Lin <benny.lin@intel.com>
Reviewed-by: Gua Guo <gua.guo@intel.com>
Signed-off-by: BruceX Wang <brucex.wang@intel.com>
-rw-r--r-- | MdePkg/Include/Library/FdtLib.h | 34 | ||||
-rw-r--r-- | MdePkg/Library/BaseFdtLib/FdtLib.c | 40 |
2 files changed, 74 insertions, 0 deletions
diff --git a/MdePkg/Include/Library/FdtLib.h b/MdePkg/Include/Library/FdtLib.h index cf5ceba9e9..d9300a18e3 100644 --- a/MdePkg/Include/Library/FdtLib.h +++ b/MdePkg/Include/Library/FdtLib.h @@ -398,4 +398,38 @@ FdtSetProp ( IN UINT32 Length
);
+/**
+ Returns the name of a given node.
+
+ @param[in] Fdt The pointer to FDT blob.
+ @param[in] NodeOffse Offset of node to check.
+ @param[in] Length The pointer to an integer variable (will be overwritten) or NULL.
+
+ @return The pointer to the node's name.
+
+**/
+CONST CHAR8 *
+EFIAPI
+FdtGetName (
+ IN VOID *Fdt,
+ IN INT32 NodeOffset,
+ IN UINT32 *Length
+ );
+
+/**
+ FdtNodeDepth() finds the depth of a given node. The root node
+ has depth 0, its immediate subnodes depth 1 and so forth.
+
+ @param[in] Fdt The pointer to FDT blob.
+ @param[in] NodeOffset Offset of node to check.
+
+ @return Depth of the node at NodeOffset.
+**/
+INT32
+EFIAPI
+FdtNodeDepth (
+ IN CONST VOID *Fdt,
+ IN INT32 NodeOffset
+ );
+
#endif /* FDT_LIB_H_ */
diff --git a/MdePkg/Library/BaseFdtLib/FdtLib.c b/MdePkg/Library/BaseFdtLib/FdtLib.c index 090b0b3fd4..1ef99ea882 100644 --- a/MdePkg/Library/BaseFdtLib/FdtLib.c +++ b/MdePkg/Library/BaseFdtLib/FdtLib.c @@ -402,3 +402,43 @@ FdtSetProp ( {
return fdt_setprop (Fdt, NodeOffset, Name, Value, (int)Length);
}
+
+/**
+ Returns the name of a given node.
+
+ @param[in] Fdt The pointer to FDT blob.
+ @param[in] NodeOffset Offset of node to check.
+ @param[in] Length The pointer to an integer variable (will be overwritten) or NULL.
+
+ @return The pointer to the node's name.
+
+**/
+CONST CHAR8 *
+EFIAPI
+FdtGetName (
+ IN VOID *Fdt,
+ IN INT32 NodeOffset,
+ IN UINT32 *Length
+ )
+{
+ return fdt_get_name (Fdt, NodeOffset, (int *)Length);
+}
+
+/**
+ FdtNodeDepth() finds the depth of a given node. The root node
+ has depth 0, its immediate subnodes depth 1 and so forth.
+
+ @param[in] Fdt The pointer to FDT blob.
+ @param[in] NodeOffset Offset of node to check.
+
+ @returns Depth of the node at NodeOffset.
+**/
+INT32
+EFIAPI
+FdtNodeDepth (
+ IN CONST VOID *Fdt,
+ IN INT32 NodeOffset
+ )
+{
+ return fdt_node_depth (Fdt, NodeOffset);
+}
|