X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fsparc%2Fprom%2Ftree.c;h=2bf03ee8cde5d10b70c55258631d592e5c92aab4;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=5ec246573a98ee8d8399323b13227c7aac48241f;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/arch/sparc/prom/tree.c b/arch/sparc/prom/tree.c index 5ec246573..2bf03ee8c 100644 --- a/arch/sparc/prom/tree.c +++ b/arch/sparc/prom/tree.c @@ -205,6 +205,24 @@ int prom_searchsiblings(int node_start, char *nodename) return 0; } +/* Gets name in the form prom v2+ uses it (name@x,yyyyy or name (if no reg)) */ +int prom_getname (int node, char *buffer, int len) +{ + int i; + struct linux_prom_registers reg[PROMREG_MAX]; + + i = prom_getproperty (node, "name", buffer, len); + if (i <= 0) return -1; + buffer [i] = 0; + len -= i; + i = prom_getproperty (node, "reg", (char *)reg, sizeof (reg)); + if (i <= 0) return 0; + if (len < 11) return -1; + buffer = strchr (buffer, 0); + sprintf (buffer, "@%x,%x", reg[0].which_io, (uint)reg[0].phys_addr); + return 0; +} + /* Interal version of nextprop that does not alter return values. */ char * __prom_nextprop(int node, char * oprop) {