summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_hints.c
Commit message (Collapse)AuthorAgeFilesLines
* Use a sleep mutex instead of an sx lock for the kernel environment. Thisscottl2006-07-091-6/+6
| | | | | | allows greater flexibility for drivers that want to query the environment. Reviewed by: jhb, mux
* The resource_xxx routines in subr_hints.c are called before and after thenetchild2005-07-311-0/+2
| | | | | | | | | | | | | | | | | | | | | | kenv environment in kern_environment.c switches to dynamic kenv. The prior call sets the static variable hintp to the static hints in subr_hints.c (hintmode==0). However, changes to the environment are not detected by the resource_xxx lookups after the change to dynamic kernel environment, so the lookup routines only report the old stuff of hintmode==0, even after the change to the dynamic kenv. This causes kenv users to see a different environment than the kernel routines. This is a problem in the mixer.c code that looks up initial mixer volume settings from the hints: If the hints are dynamic and not from the device.hints file, mixer.c doesn't see them, but kenv does. The patch from the PR (modified to comply to the style of the function) solves this. PR: 83686 Submitted by: Harry Coin <harrycoin@qconline.com>
* Don't set ret_namelen and ret_resnamelen in res_find() unless both thejhb2005-03-241-2/+2
| | | | | | | corresponding pointer to the buffer (ret_name and ret_resname) is non-NULL to avoid possible NULL pointer derefs. Reported by: Coverity via sam
* fix spelling of match in comment...jmg2005-03-101-1/+1
| | | | MFC after: 3 days
* Add a resource_disabled() helper function that returns true (non-zero) ifjhb2003-07-021-0/+14
| | | | | a specified resource has been disabled via a non-zero 'disabled' hint and false otherwise.
* Use __FBSDID().obrien2003-06-111-2/+3
|
* Cosmetic tweaks. Try and keep the style more consistent, catch some straypeter2002-05-011-3/+2
| | | | whitespace and update a comment.
* Finish fixing hints. Remember the use_kenv state for the next run.peter2002-04-271-8/+10
| | | | | | | | | Otherwise we fall back to using the static hints the next time around. We still have the leftover fallback code there which meant that we skipped the use_hints checking on the second and subsequent calls. Also, be a bit more careful about walking off the end of the envp array. I've extracted this from a larger diff. I hope I didn't miss anything...
* Partial fix for hintspeter2002-04-271-2/+4
| | | | Obtained from: mux
* Rework the kernel environment subsystem. We now convert the staticmux2002-04-171-18/+54
| | | | | | | | | | | | | | | | | environment needed at boot time to a dynamic subsystem when VM is up. The dynamic kernel environment is protected by an sx lock. This adds some new functions to manipulate the kernel environment : freeenv(), setenv(), unsetenv() and testenv(). freeenv() has to be called after every getenv() when you have finished using the string. testenv() only tests if an environment variable is present, and doesn't require a freeenv() call. setenv() and unsetenv() are self explanatory. The kenv(2) syscall exports these new functionalities to userland, mainly for kenv(1). Reviewed by: peter
* Fix a fatal type mismatch (char *static_env; vs char static_env[]).peter2001-09-171-2/+0
| | | | Submitted by: bde
* Go back to having either static OR dynamic hints, with fallbackpeter2001-07-141-15/+40
| | | | | | | | support. Trying to fix the merged set where dynamic overrode static was getting more and more complicated by the day. This should fix the duplicate atkbd, psm, fd* etc in GENERIC. (which paniced the alpha, but not the i386)
* Hints overhaul:peter2001-06-121-0/+304
- Replace some very poorly thought out API hacks that should have been fixed a long while ago. - Provide some much more flexible search functions (resource_find_*()) - Use strings for storage instead of an outgrowth of the rather inconvenient temporary ioconf table from config(). We already had a fallback to using strings before malloc/vm was running anyway.
OpenPOWER on IntegriCloud