__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
{
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;
}
* 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",
* 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));
}
}
* on failure.
*/
__inline__ int
-prom_getint(int node, char *prop)
+prom_getint(int node, const char *prop)
{
int intprop;
*/
int
-prom_getintdefault(int node, char *property, int deflt)
+prom_getintdefault(int node, const char *property, int deflt)
{
int retval;
/* Acquire a boolean property, 1=TRUE 0=FALSE. */
int
-prom_getbool(int node, char *prop)
+prom_getbool(int node, const char *prop)
{
int retval;
* 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;
* 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));
* '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;
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
*/
* 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];
}
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];
* 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;
* FIXME: Should work for v0 as well
*/
int
-prom_pathtoinode(char *path)
+prom_pathtoinode(const char *path)
{
int node, inst;