Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/ofw some cleanup. Add back OFIOCGETOPTNODE.



details:   https://anonhg.NetBSD.org/src/rev/71de00dc1ab1
branches:  trunk
changeset: 499226:71de00dc1ab1
user:      matt <matt%NetBSD.org@localhost>
date:      Tue Nov 14 21:10:05 2000 +0000

description:
some cleanup.  Add back OFIOCGETOPTNODE.

diffstat:

 sys/dev/ofw/openfirmio.c |  19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diffs (58 lines):

diff -r cee2f3c75317 -r 71de00dc1ab1 sys/dev/ofw/openfirmio.c
--- a/sys/dev/ofw/openfirmio.c  Tue Nov 14 21:07:26 2000 +0000
+++ b/sys/dev/ofw/openfirmio.c  Tue Nov 14 21:10:05 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: openfirmio.c,v 1.1 2000/11/14 06:45:54 matt Exp $ */
+/*     $NetBSD: openfirmio.c,v 1.2 2000/11/14 21:10:05 matt Exp $ */
 
 /*
  * Copyright (c) 1992, 1993
@@ -120,6 +120,13 @@
        int node, len, ok, error, s;
        char *name, *value;
 
+       if (cmd == OFIOCGETOPTNODE) {
+               s = splhigh();
+               *(int *) data = OF_finddevice("/options");
+               splx(s);
+               return (0);
+       }
+
        /* Verify node id */
        of = (struct ofiocdesc *)data;
        node = of->of_nodeid;
@@ -188,12 +195,12 @@
 #endif
 
        case OFIOCNEXTPROP: {
-               char newname[33];
+               char newname[32];
                if ((flags & FREAD) == 0)
                        return (EBADF);
                if (node == 0)
                        return (EINVAL);
-               if (of->of_namelen != 0 || of->of_name != NULL) {
+               if (of->of_namelen != 0) {
                        error = openfirmgetstr(of->of_namelen, of->of_name,
                            &name);
                        if (error)
@@ -202,6 +209,10 @@
                s = splhigh();
                ok = OF_nextprop(node, name, newname);
                splx(s);
+               if (ok == 0) {
+                       error = ENOENT;
+                       break;
+               }
                if (ok == -1) {
                        error = EINVAL;
                        break;
@@ -246,7 +257,7 @@
                        error = ENOENT;
                        break;
                }
-               of->of_nodeid = node;
+               of->of_nodeid = lastnode = node;
                break;
 
        default:



Home | Main Index | Thread Index | Old Index