libfdt: Add function to explicitly expand aliases
PATCH 1/1 libfdt: Add function to explicitly expand aliases
Kumar has already added alias expansion to fdt_path_offset(). However, in some circumstances it may be convenient for the user of libfdt to explicitly get the string expansion of an alias. This patch adds a function to do this, fdt_get_alias(), and uses it to implement fdt_path_offset().
---
Another patch hot off the dtc/libfdt repository.
gvb
include/libfdt.h | 26 ++++++++++++++++++++++++++ libfdt/fdt_ro.c | 26 +++++++++++++++++++------- 2 files changed, 45 insertions(+), 7 deletions(-)
include/libfdt.h +26 -0
@@ -459,6 +459,32 @@ static inline void *fdt_getprop_w(void *fdt, int nodeoffset,uint32_t fdt_get_phandle (const void *fdt,int nodeoffset);/** +* fdt_get_namelen - get alias based on substring +* @fdt: pointer to the device tree blob +* @name: name of the alias th look up +* @namelen: number of characters of name to consider +* +* Identical to fdt_get_alias(), but only examine the first namelen +* characters of name for matching the alias name. +*/ +const char *fdt_get_alias_namelen (const void *fdt, +const char *name,int namelen); + +/** +* fdt_get_alias - retreive the path referenced by a given alias +* @fdt: pointer to the device tree blob +* @name: name of the alias th look up +* +* fdt_get_alias() retrieves the value of a given alias. That is, the +* value of the property named 'name' in the node /aliases. +* +* returns: +* a pointer to the expansion of the alias named 'name', of it exists +* NULL, if the given alias or the /aliases node does not exist +*/ +const char *fdt_get_alias (const void *fdt,const char *name); + +/** * fdt_get_path - determine the full path of a node * @fdt: pointer to the device tree blob * @nodeoffset: offset of the node whose path to find
libfdt/fdt_ro.c +19 -7
@@ -145,17 +145,12 @@ int fdt_path_offset(const void *fdt, const char *path)/* see if we have an alias */ if (*path !='/' ) { -const char *q; -int aliasoffset =fdt_path_offset (fdt,"/aliases" ); - -if (aliasoffset <0 ) -return -FDT_ERR_BADPATH ; +const char *q =strchr (path,'/' ); - q =strchr (path,'/' );if (!q) q = end; - p =fdt_getprop_namelen (fdt, aliasoffset, path, q - p,NULL ); + p =fdt_get_alias_namelen (fdt, p, q - p);if (!p)return -FDT_ERR_BADPATH ; offset =fdt_path_offset (fdt, p);
@@ -306,6 +301,23 @@ uint32_t fdt_get_phandle(const void *fdt, int nodeoffset)return fdt32_to_cpu (*php); } +const char *fdt_get_alias_namelen (const void *fdt, +const char *name,int namelen) +{ +int aliasoffset; + + aliasoffset =fdt_path_offset (fdt,"/aliases" ); +if (aliasoffset <0 ) +return NULL ; + +return fdt_getprop_namelen (fdt, aliasoffset, name, namelen,NULL ); +} + +const char *fdt_get_alias (const void *fdt,const char *name) +{ +return fdt_get_alias_namelen (fdt, name,strlen (name)); +} +int fdt_get_path (const void *fdt,int nodeoffset,char *buf,int buflen) {int pdepth =0 , p =0 ;
Signature · 1 line
1.5.6.5
PATCH 1/1 libfdt: Add function to explicitly expand aliases
On Thu, Oct 02, 2008 at 07:05:53PM -0400, Jerry Van Baren wrote:
[snip]
include/libfdt.h static inline void *fdt_getprop_w(void *fdt, int nodeoffset, · line 462
Quoted 9 lines
include/libfdt.h +1
-0@@ -459,6 +459,32 @@ static inline void *fdt_getprop_w(void *fdt, int nodeoffset,uint32_t fdt_get_phandle (const void *fdt,int nodeoffset);/** +* fdt_get_namelen - get alias based on substring
===^^^^^^^^^^^^^^^===
include/libfdt.h static inline void *fdt_getprop_w(void *fdt, int nodeoffset, · line 472
Quoted 10 lines
include/libfdt.h +10
-0+* @fdt: pointer to the device tree blob +* @name: name of the alias th look up +* @namelen: number of characters of name to consider +* +* Identical to fdt_get_alias(), but only examine the first namelen +* characters of name for matching the alias name. +*/ +const char *fdt_get_alias_namelen (const void *fdt, +const char *name,int namelen); +
This should be fdt_get_alias_namelen, right?
Petri
PATCH 1/1 libfdt: Add function to explicitly expand aliases
Quoted 12 lines · Petri Lehtinen
On Thu, Oct 02, 2008 at 07:05:53PM -0400, Jerry Van Baren wrote:
[snip]include/libfdt.h static inline void *fdt_getprop_w(void *fdt, int nodeoffset, · line 462
Quoted 9 lines
include/libfdt.h +1
-0@@ -459,6 +459,32 @@ static inline void *fdt_getprop_w(void *fdt, int nodeoffset,uint32_t fdt_get_phandle (const void *fdt,int nodeoffset);/** +* fdt_get_namelen - get alias based on substring ===^^^^^^^^^^^^^^^===
Quoted 13 lines
include/libfdt.h static inline void *fdt_getprop_w(void *fdt, int nodeoffset, · line 472
Quoted 10 lines
include/libfdt.h +10
-0+* @fdt: pointer to the device tree blob +* @name: name of the alias th look up +* @namelen: number of characters of name to consider +* +* Identical to fdt_get_alias(), but only examine the first namelen +* characters of name for matching the alias name. +*/ +const char *fdt_get_alias_namelen (const void *fdt, +const char *name,int namelen); +This should be
fdt_get_alias_namelen, right?
It does look that way....
This patch has already been applied upstream,
so correcting patches on top of this are welcome.
Thanks,
jdl
PATCH 1/1 libfdt: Add function to explicitly expand aliases
Quoted 26 lines · Jon Loeliger
Quoted 11 lines · Petri Lehtinen
On Thu, Oct 02, 2008 at 07:05:53PM -0400, Jerry Van Baren wrote:
[snip]include/libfdt.h static inline void *fdt_getprop_w(void *fdt, int nodeoffset, · line 461
Quoted 8 lines
include/libfdt.h +1
-0@@ -459,6 +459,32 @@ static inline void *fdt_getprop_w(void *fdt, int nodeoffset,uint32_t fdt_get_phandle (const void *fdt,int nodeoffset);/** +* fdt_get_namelen - get alias based on substring ===^^^^^^^^^^^^^^^===
Quoted 13 lines
include/libfdt.h static inline void *fdt_getprop_w(void *fdt, int nodeoffset, · line 472
Quoted 10 lines
include/libfdt.h +10
-0+* @fdt: pointer to the device tree blob +* @name: name of the alias th look up +* @namelen: number of characters of name to consider +* +* Identical to fdt_get_alias(), but only examine the first namelen +* characters of name for matching the alias name. +*/ +const char *fdt_get_alias_namelen (const void *fdt, +const char *name,int namelen); +This should be
fdt_get_alias_namelen, right?
Quoted 4 lines
It does look that way....
This patch has already been applied upstream,
so correcting patches on top of this are welcome.
Crap, sorry. I'll send a fixup patch if none of you gets to it first.
Signature · 4 lines
David Gibson | 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
PATCH 1/1 libfdt: Add function to explicitly expand aliases
In reply to Jon LoeligerQuoted 25 lines · Jon Loeliger
Quoted 11 lines · Petri Lehtinen
On Thu, Oct 02, 2008 at 07:05:53PM -0400, Jerry Van Baren wrote:
[snip]include/libfdt.h static inline void *fdt_getprop_w(void *fdt, int nodeoffset, · line 461
Quoted 8 lines
include/libfdt.h +1
-0@@ -459,6 +459,32 @@ static inline void *fdt_getprop_w(void *fdt, int nodeoffset,uint32_t fdt_get_phandle (const void *fdt,int nodeoffset);/** +* fdt_get_namelen - get alias based on substring ===^^^^^^^^^^^^^^^===
Quoted 12 lines
include/libfdt.h static inline void *fdt_getprop_w(void *fdt, int nodeoffset, · line 471
Quoted 10 lines
include/libfdt.h +10
-0+* @fdt: pointer to the device tree blob +* @name: name of the alias th look up +* @namelen: number of characters of name to consider +* +* Identical to fdt_get_alias(), but only examine the first namelen +* characters of name for matching the alias name. +*/ +const char *fdt_get_alias_namelen (const void *fdt, +const char *name,int namelen); +This should be
fdt_get_alias_namelen, right?
Quoted 4 lines
It does look that way....
This patch has already been applied upstream,
so correcting patches on top of this are welcome.
libfdt: Fix error in documentation for fdt_get_alias_namelen()
Oops, screwed up the function name in the documenting comment for this function. Trivial correction in this patch.
libfdt/libfdt.h +1 -1
@@ -459,7 +459,7 @@ static inline void *fdt_getprop_w(void *uint32_t fdt_get_phandle (const void *fdt,int nodeoffset);/** -* fdt_get_namelen - get alias based on substring +* fdt_get_alias_namelen - get alias based on substring * @fdt: pointer to the device tree blob * @name: name of the alias th look up * @namelen: number of characters of name to consider
Signature · 4 lines
David Gibson | 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