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>
This commit is contained in:
Brucex.Wang 2023-09-06 08:24:43 +08:00 committed by mergify[bot]
parent c70d914428
commit d6b05375b4
2 changed files with 74 additions and 0 deletions

View File

@ -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_ */

View File

@ -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);
}