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