fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / arch / sparc64 / prom / tree.c
index ccf7325..500f05e 100644 (file)
@@ -51,7 +51,7 @@ prom_getparent(int node)
 __inline__ int
 __prom_getsibling(int node)
 {
-       return p1275_cmd ("peer", P1275_INOUT(1, 1), node);
+       return p1275_cmd(prom_peer_name, P1275_INOUT(1, 1), node);
 }
 
 __inline__ int
@@ -59,9 +59,12 @@ prom_getsibling(int node)
 {
        int sibnode;
 
-       if(node == -1) return 0;
+       if (node == -1)
+               return 0;
        sibnode = __prom_getsibling(node);
-       if(sibnode == -1) return 0;
+       if (sibnode == -1)
+               return 0;
+
        return sibnode;
 }
 
@@ -69,7 +72,7 @@ prom_getsibling(int node)
  * Return -1 on error.
  */
 __inline__ int
-prom_getproplen(int node, char *prop)
+prom_getproplen(int node, const char *prop)
 {
        if((!node) || (!prop)) return -1;
        return p1275_cmd ("getproplen", 
@@ -83,20 +86,20 @@ prom_getproplen(int node, char *prop)
  * was successful the length will be returned, else -1 is returned.
  */
 __inline__ int
-prom_getproperty(int node, char *prop, char *buffer, int bufsize)
+prom_getproperty(int node, const char *prop, char *buffer, int bufsize)
 {
        int plen;
 
        plen = prom_getproplen(node, prop);
-       if((plen > bufsize) || (plen == 0) || (plen == -1))
+       if ((plen > bufsize) || (plen == 0) || (plen == -1)) {
                return -1;
-       else {
+       else {
                /* Ok, things seem all right. */
-               return p1275_cmd ("getprop"
-                                 P1275_ARG(1,P1275_ARG_IN_STRING)|
-                                 P1275_ARG(2,P1275_ARG_OUT_BUF)|
-                                 P1275_INOUT(4, 1), 
-                                 node, prop, buffer, P1275_SIZE(plen));
+               return p1275_cmd(prom_getprop_name
+                                P1275_ARG(1,P1275_ARG_IN_STRING)|
+                                P1275_ARG(2,P1275_ARG_OUT_BUF)|
+                                P1275_INOUT(4, 1), 
+                                node, prop, buffer, P1275_SIZE(plen));
        }
 }
 
@@ -104,7 +107,7 @@ prom_getproperty(int node, char *prop, char *buffer, int bufsize)
  * on failure.
  */
 __inline__ int
-prom_getint(int node, char *prop)
+prom_getint(int node, const char *prop)
 {
        int intprop;
 
@@ -119,7 +122,7 @@ prom_getint(int node, char *prop)
  */
 
 int
-prom_getintdefault(int node, char *property, int deflt)
+prom_getintdefault(int node, const char *property, int deflt)
 {
        int retval;
 
@@ -131,7 +134,7 @@ prom_getintdefault(int node, char *property, int deflt)
 
 /* Acquire a boolean property, 1=TRUE 0=FALSE. */
 int
-prom_getbool(int node, char *prop)
+prom_getbool(int node, const char *prop)
 {
        int retval;
 
@@ -145,7 +148,7 @@ prom_getbool(int node, char *prop)
  * buffer.
  */
 void
-prom_getstring(int node, char *prop, char *user_buf, int ubuf_size)
+prom_getstring(int node, const char *prop, char *user_buf, int ubuf_size)
 {
        int len;
 
@@ -160,7 +163,7 @@ prom_getstring(int node, char *prop, char *user_buf, int ubuf_size)
  * YES = 1   NO = 0
  */
 int
-prom_nodematch(int node, char *name)
+prom_nodematch(int node, const char *name)
 {
        char namebuf[128];
        prom_getproperty(node, "name", namebuf, sizeof(namebuf));
@@ -172,7 +175,7 @@ prom_nodematch(int node, char *name)
  * 'nodename'.  Return node if successful, zero if not.
  */
 int
-prom_searchsiblings(int node_start, char *nodename)
+prom_searchsiblings(int node_start, const char *nodename)
 {
 
        int thisnode, error;
@@ -190,91 +193,6 @@ prom_searchsiblings(int node_start, char *nodename)
        return 0;
 }
 
-/* Gets name in the {name@x,yyyyy|name (if no reg)} form */
-int 
-prom_getname (int node, char *buffer, int len)
-{
-       int i, sbus = 0;
-       int pci = 0, ebus = 0, ide = 0;
-       struct linux_prom_registers *reg;
-       struct linux_prom64_registers reg64[PROMREG_MAX];
-       
-       for (sbus = prom_getparent (node); sbus; sbus = prom_getparent (sbus)) {
-               i = prom_getproperty (sbus, "name", buffer, len);
-               if (i > 0) {
-                       buffer [i] = 0;
-                       if (!strcmp (buffer, "sbus"))
-                               goto getit;
-               }
-       }
-       if ((pci = prom_getparent (node))) {
-               i = prom_getproperty (pci, "name", buffer, len);
-               if (i > 0) {
-                       buffer [i] = 0;
-                       if (!strcmp (buffer, "pci"))
-                               goto getit;
-               }
-               pci = 0;
-       }
-       if ((ebus = prom_getparent (node))) {
-               i = prom_getproperty (ebus, "name", buffer, len);
-               if (i > 0) {
-                       buffer[i] = 0;
-                       if (!strcmp (buffer, "ebus"))
-                               goto getit;
-               }
-               ebus = 0;
-       }
-       if ((ide = prom_getparent (node))) {
-               i = prom_getproperty (ide, "name", buffer, len);
-               if (i > 0) {
-                       buffer [i] = 0;
-                       if (!strcmp (buffer, "ide"))
-                               goto getit;
-               }
-               ide = 0;
-       }
-getit:
-       i = prom_getproperty (node, "name", buffer, len);
-       if (i <= 0) {
-               buffer [0] = 0;
-               return -1;
-       }
-       buffer [i] = 0;
-       len -= i;
-       i = prom_getproperty (node, "reg", (char *)reg64, sizeof (reg64));
-       if (i <= 0) return 0;
-       if (len < 16) return -1;
-       buffer = strchr (buffer, 0);
-       if (sbus) {
-               reg = (struct linux_prom_registers *)reg64;
-               sprintf (buffer, "@%x,%x", reg[0].which_io, (uint)reg[0].phys_addr);
-       } else if (pci) {
-               int dev, fn;
-               reg = (struct linux_prom_registers *)reg64;
-               fn = (reg[0].which_io >> 8) & 0x07;
-               dev = (reg[0].which_io >> 11) & 0x1f;
-               if (fn)
-                       sprintf (buffer, "@%x,%x", dev, fn);
-               else
-                       sprintf (buffer, "@%x", dev);
-       } else if (ebus) {
-               reg = (struct linux_prom_registers *)reg64;
-               sprintf (buffer, "@%x,%x", reg[0].which_io, reg[0].phys_addr);
-       } else if (ide) {
-               reg = (struct linux_prom_registers *)reg64;
-               sprintf (buffer, "@%x,%x", reg[0].which_io, reg[0].phys_addr);
-       } else if (i == 4) {    /* Happens on 8042's children on Ultra/PCI. */
-               reg = (struct linux_prom_registers *)reg64;
-               sprintf (buffer, "@%x", reg[0].which_io);
-       } else {
-               sprintf (buffer, "@%x,%x",
-                        (unsigned int)(reg64[0].phys_addr >> 36),
-                        (unsigned int)(reg64[0].phys_addr));
-       }
-       return 0;
-}
-
 /* Return the first property type for node 'node'.
  * buffer should be at least 32B in length
  */
@@ -294,7 +212,7 @@ prom_firstprop(int node, char *buffer)
  * property types for this node.
  */
 __inline__ char *
-prom_nextprop(int node, char *oprop, char *buffer)
+prom_nextprop(int node, const char *oprop, char *buffer)
 {
        char buf[32];
 
@@ -314,15 +232,17 @@ prom_nextprop(int node, char *oprop, char *buffer)
 }
 
 int
-prom_finddevice(char *name)
+prom_finddevice(const char *name)
 {
-       if(!name) return 0;
-       return p1275_cmd ("finddevice", P1275_ARG(0,P1275_ARG_IN_STRING)|
-                                       P1275_INOUT(1, 1), 
-                                       name);
+       if (!name)
+               return 0;
+       return p1275_cmd(prom_finddev_name,
+                        P1275_ARG(0,P1275_ARG_IN_STRING)|
+                        P1275_INOUT(1, 1), 
+                        name);
 }
 
-int prom_node_has_property(int node, char *prop)
+int prom_node_has_property(int node, const char *prop)
 {
        char buf [32];
         
@@ -339,7 +259,7 @@ int prom_node_has_property(int node, char *prop)
  * of 'size' bytes.  Return the number of bytes the prom accepted.
  */
 int
-prom_setprop(int node, char *pname, char *value, int size)
+prom_setprop(int node, const char *pname, char *value, int size)
 {
        if(size == 0) return 0;
        if((pname == 0) || (value == 0)) return 0;
@@ -364,7 +284,7 @@ prom_inst2pkg(int inst)
  * FIXME: Should work for v0 as well
  */
 int
-prom_pathtoinode(char *path)
+prom_pathtoinode(const char *path)
 {
        int node, inst;