[RFC PATCH 68/77] libfdt: Introduce fdt_getprop_by_offset_w()

Herve Codina posted 77 patches 3 weeks, 5 days ago
[RFC PATCH 68/77] libfdt: Introduce fdt_getprop_by_offset_w()
Posted by Herve Codina 3 weeks, 5 days ago
The future support for applying a addon on a base device-tree needs to
modify properties retrieved by their offset.

fdt_getprop_by_offset() already exists to get a preperty by its offset
but the property returned is read-only. A writable returned property is
needed.

Fill the lack and introduce fdt_getprop_by_offset_w(), the write enabled
variant of fdt_getprop_by_offset().

Signed-off-by: Herve Codina <herve.codina@bootlin.com>
---
 libfdt/libfdt.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
index 37459a6..0c654b1 100644
--- a/libfdt/libfdt.h
+++ b/libfdt/libfdt.h
@@ -858,6 +858,12 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
 #ifndef SWIG /* This function is not useful in Python */
 const void *fdt_getprop_by_offset(const void *fdt, int offset,
 				  const char **namep, int *lenp);
+static inline void *fdt_getprop_by_offset_w(const void *fdt, int offset,
+					    const char **namep, int *lenp)
+{
+	return (void *)(uintptr_t)fdt_getprop_by_offset(fdt, offset, namep,
+							lenp);
+}
 #endif
 
 /**
-- 
2.52.0
Re: [RFC PATCH 68/77] libfdt: Introduce fdt_getprop_by_offset_w()
Posted by David Gibson 3 weeks, 3 days ago
On Mon, Jan 12, 2026 at 03:19:58PM +0100, Herve Codina wrote:
> The future support for applying a addon on a base device-tree needs to
> modify properties retrieved by their offset.
> 
> fdt_getprop_by_offset() already exists to get a preperty by its offset
> but the property returned is read-only. A writable returned property is
> needed.
> 
> Fill the lack and introduce fdt_getprop_by_offset_w(), the write enabled
> variant of fdt_getprop_by_offset().
> 
> Signed-off-by: Herve Codina <herve.codina@bootlin.com>

Add a testcase, and this could be merged regardless of the rest of
the series.

> ---
>  libfdt/libfdt.h | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/libfdt/libfdt.h b/libfdt/libfdt.h
> index 37459a6..0c654b1 100644
> --- a/libfdt/libfdt.h
> +++ b/libfdt/libfdt.h
> @@ -858,6 +858,12 @@ static inline struct fdt_property *fdt_get_property_w(void *fdt, int nodeoffset,
>  #ifndef SWIG /* This function is not useful in Python */
>  const void *fdt_getprop_by_offset(const void *fdt, int offset,
>  				  const char **namep, int *lenp);
> +static inline void *fdt_getprop_by_offset_w(const void *fdt, int offset,
> +					    const char **namep, int *lenp)
> +{
> +	return (void *)(uintptr_t)fdt_getprop_by_offset(fdt, offset, namep,
> +							lenp);
> +}
>  #endif
>  
>  /**
> -- 
> 2.52.0
> 
> 

-- 
David Gibson (he or they)	| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you, not the other way
				| around.
http://www.ozlabs.org/~dgibson