On Tue, Nov 11, 2003 at 06:01:55PM +0100, Reinier Kleipool wrote: > Hello, > > I am investigating the possiblilies for looking at the kernel boot > parameters from within a userland utility. (Possibly a new FreeBSD install > facility) The idea is that by looking at sysctl kern.environment.* you > should be able to see the BTX variables. An install program could use this > to see an INSTALL_SERVER=install.company.com variable (etc...) to use as > install server. The BTX loader could provide these variables at install boot > time, thus enableing fully automated installs. [snip] > My question is this: When looking at kern/kern_environmet.c I see routines > that install a SYSCTL_NODE kern.environment. The sysctl_kernenv routine > handles this node. What I do not understand is how the environment is > returned from this routine.
Take a look at the kenv(1) utility - its source is in the src/usr.bin/kenv/kenv.c file. There is a weird comment at line 74, where the kern.environment sysctl is accessed in a really 'magic & undocumented' way. Look at what it does - basically enumerating oid's from a given starting point, the starting point being obtained in said 'magic & undocumented' way - and see if you could use the same approach. Alternatively, you could just invoke kenv(1) with your variables as command-line parameters from your program/script, although this might incur a performance cost. G'luck, Peter -- Peter Pentchev [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 .siht ekil ti gnidaer eb d'uoy ,werbeH ni erew ecnetnes siht fI
pgp00000.pgp
Description: PGP signature