summaryrefslogtreecommitdiff
path: root/sys/dev/ldvar.h
AgeCommit message (Collapse)Author
2012-05-03use uint64_t for sc_disksize512.bsh
fixed the problem with ataraid volumes larger than 2 TiB.
2012-02-02Entropy-pool implementation move and cleanup.tls
1) Move core entropy-pool code and source/sink/sample management code to sys/kern from sys/dev. 2) Remove use of NRND as test for presence of entropy-pool code throughout source tree. 3) Remove use of RND_ENABLED in device drivers as microoptimization to avoid expensive operations on disabled entropy sources; make the rnd_add calls do this directly so all callers benefit. 4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might have lead to slight entropy overestimation for some sources. 5) Add new source types for environmental sensors, power sensors, VM system events, and skew between clocks, with a sample implementation for each. ok releng to go in before the branch due to the difficulty of later pullup (widespread #ifdef removal and moved files). Tested with release builds on amd64 and evbarm and live testing on amd64.
2011-11-19First step of random number subsystem rework described intls
<20111022023242.BA26F14A158@mail.netbsd.org>. This change includes the following: An initial cleanup and minor reorganization of the entropy pool code in sys/dev/rnd.c and sys/dev/rndpool.c. Several bugs are fixed. Some effort is made to accumulate entropy more quickly at boot time. A generic interface, "rndsink", is added, for stream generators to request that they be re-keyed with good quality entropy from the pool as soon as it is available. The arc4random()/arc4randbytes() implementation in libkern is adjusted to use the rndsink interface for rekeying, which helps address the problem of low-quality keys at boot time. An implementation of the FIPS 140-2 statistical tests for random number generator quality is provided (libkern/rngtest.c). This is based on Greg Rose's implementation from Qualcomm. A new random stream generator, nist_ctr_drbg, is provided. It is based on an implementation of the NIST SP800-90 CTR_DRBG by Henric Jungheim. This generator users AES in a modified counter mode to generate a backtracking-resistant random stream. An abstraction layer, "cprng", is provided for in-kernel consumers of randomness. The arc4random/arc4randbytes API is deprecated for in-kernel use. It is replaced by "cprng_strong". The current cprng_fast implementation wraps the existing arc4random implementation. The current cprng_strong implementation wraps the new CTR_DRBG implementation. Both interfaces are rekeyed from the entropy pool automatically at intervals justifiable from best current cryptographic practice. In some quick tests, cprng_fast() is about the same speed as the old arc4randbytes(), and cprng_strong() is about 20% faster than rnd_extract_data(). Performance is expected to improve. The AES code in src/crypto/rijndael is no longer an optional kernel component, as it is required by cprng_strong, which is not an optional kernel component. The entropy pool output is subjected to the rngtest tests at startup time; if it fails, the system will reboot. There is approximately a 3/10000 chance of a false positive from these tests. Entropy pool _input_ from hardware random numbers is subjected to the rngtest tests at attach time, as well as the FIPS continuous-output test, to detect bad or stuck hardware RNGs; if any are detected, they are detached, but the system continues to run. A problem with rndctl(8) is fixed -- datastructures with pointers in arrays are no longer passed to userspace (this was not a security problem, but rather a major issue for compat32). A new kernel will require a new rndctl. The sysctl kern.arandom() and kern.urandom() nodes are hooked up to the new generators, but the /dev/*random pseudodevices are not, yet. Manual pages for the new kernel interfaces are forthcoming.
2010-09-20Check disk bounds, in RAW_PART.kiyohara
2009-12-18Use "rnd.h" and <sys/rnd.h> to ensure that struct ld_softcjakllsch
is always of consistent layout. Should prevent another someone from spending a few hours trying to figure out why their code crashes because they didn't realize they needed to have "rnd.h" included already.
2009-05-07struct device * -> device_t, no functional changes intended.cegger
2008-09-09Complete device_t/softc split for the ld(4) attachments. This shouldtron
prevent crashes while attaching a drive. Patch supplied by Juan RP in PR kern/39468.
2008-08-11Add a flags argument to the ld(4) flush handlers, and call these with asimonb
"poll" flag when called from ld_shutdown(). This is the infrastructure part of kern/38655 - in itself it doesn't fix the panic referenced in that PR. XXX: At least ld_twa.c and perhaps ld_iop.c and ld_icp.c need to check for this new poll flag and do something useful.
2008-04-28Remove clause 3 and 4 from TNF licensesmartin
2007-02-09Merge newlock2 to head.ad
2005-12-11merge ktrace-lwp.christos
2005-10-15- change the way to specify a bufq strategy. (by string rather than by number)yamt
- rather than embedding bufq_state in driver softc, have a pointer to the former. - move bufq related functions from kern/subr_disk.c to kern/subr_bufq.c. - rename method to strategy for consistency. - move some definitions which don't need to be exposed to the rest of kernel from sys/bufq.h to sys/bufq_impl.h. (is it better to move it to kern/ or somewhere?) - fix some obvious breakage in dev/qbus/ts.c. (not tested)
2004-09-25Add support for wedges to the logical disk driver.thorpej
2004-07-20use uint64 instead of int for sc_secperunitdbj
2003-05-17Add DIOCKLABEL support. Fixes PR kern/21605 (Luke Mewburn).thorpej
2002-07-20Convert to new device buffer queue interface.hannken
2001-06-10Centralise the geometry fudge.ad
2001-02-04Allow for draining/adjusting the queue.ad
2001-01-03Make dumps work, and put the first part of detach into ld.c.ad
2000-12-03Make it possible to detach ld devices.ad
2000-11-26lsu -> ld, by popular request.ad