Re: sysctl(3) interface



At about the time of 1/31/2007 2:10 AM, Dag-Erling Smørgrav stated the
following:
Daniel Rudy <dr2867@xxxxxxxxxxx> writes:
I've been taking apart and analyzing the sysctl(8) program to gain a
better insight into how to use the sysctl(3) interface. [...]
It's using an oid of 0 and 2 to get something, then it comes up with 440
and then a sequence of numbers that are incrementing in a peculiar
pattern.

sysctl(8) uses undocumented interfaces to a) enumerate the nodes in
the sysctl tree and b) obtain the name of a node, given its OID.

So, my question is, how do I walk the tree to get the PnP info for all
the devices in the system?

man 3 devinfo

DES

A little too late since I already hacked the source for sysctl(8) and
figured out how it works.

Here's what I have:

mib[0] = 0; Unused according to sys/sysctl.h.

So,

0,1 - get name from oid.
0,2 - get first sysctl node/leaf? (I haven't used this one yet)
0,3 - get oid from name.
0,4 - get format for oid? (I haven't used this one yet either)


At least that's that I have. I wrote a program based on that and it
does work, quite well in fact. I am not concerned about portability
since the software that I'm writing will run ONLY on FreeBSD and maybe
some of the variants.

--
Daniel Rudy
_______________________________________________
freebsd-hackers@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@xxxxxxxxxxx"



Relevant Pages