Up to [DragonFly] / src / sys / sys
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
The devinfo(3) library provides userspace access to the internal device hierarchy. The devinfo(8) utility can be used to view that information. Ported by Sascha Wildner. Obtained-from: FreeBSD
Implement kern.do_async_attach. default disabled. To enable add kern.do_async_attach="1" to your /boot/loader.conf. This feature allows conforming drivers to attach in their own thread, allowing multiple drivers to attach in parallel. Implement a new device state, DS_INPROGRESS. Seems to work properly. Implement device_set_async_attach(), which allows a device's probe function to indicate that it is ok for its attach function to be run in its own thread. Split tsleep's enable out from the 'cold' variable. tsleep works earlier then when cold is cleared. Add a 'tsleep_now_works' variable to take over the functionality. Implement DRIVERSLEEP()... similar to DELAY(), this function works in any context and will call lwkt_switch() in its spin loop. It isn't perfect yet. ATA/NATA: * Uses the new async attach feature * Uses DRIVERSLEEP * No longer uses a configuration interrupt hook. Interrupts are now available during device config. NOTE: atapicam does not seem to be scanning the 'bus' (from cam's point of view), so 'cd0' is not found until CAM scans the bus itself in the interrupt config hook code. USB: * Uses the new async attach feature * Uses tsleep instead of DELAY MISC: * IF_EM, IF_NFE also use the async attach feature as a test, but it doesn't seem to have a huge effect.
Clean up more #include files. Create an internal __boolean_t so two or three sys/ header files don't have to juggle the type. Use _KERNEL_STRUCTURES in variuos pieces of user code that delve into kvm. Reported-by: Rumko <email@example.com>, walt <firstname.lastname@example.org>
Improve seperation between kernel code and userland code by requiring that source files that #include kernel headers also #define _KERNEL or _KERNEL_STRUCTURES as appropriate. With-suggestions-from: joerg Still-todo: systimer.h, and clean up scsi_da.c Tested-by: cd /usr/src/nrelease && make installer_release Approved-by: dillon If-anything-breaks-yell-at: cpressey
KObj extension stage IIIb/III Merge inheritance support from FreeBSD: * Add a simpler form of 'inheritance' for devclasses. Each devclass can have a parent devclass. Searches for drivers continue up the chain of devclasses until either a matching driver is found or a devclass is reached which has no parent. This can allow, for instance, pci drivers to match cardbus devices (assuming that cardbus declares pci as its parent devclass).
Use hex bit values instead of decimal bit values (non operational change).
Adjust indentation, use uint32_t and line up comments.
Factor out the object system from new-bus so that it can be used by non-device code. Re-implement the method dispatch to improve efficiency. The new system takes about 40ns for a method dispatch on a 300Mhz PII which is only 10ns slower than a direct function call on the same hardware. This is all based on Doug Rabson's work in April and May of 2000.
Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most ids have been removed from !lint sections and moved into comment sections.
import from FreeBSD RELENG_4 126.96.36.199