K 10 svn:author V 5 green K 8 svn:date V 27 2004-10-02T22:49:54.000000Z K 7 svn:log V 648 * Use two cdevsw's for ugen(4): one for control endpoints, and one for data endpoints. The control endpoint doesn't need read/write/poll operations, and more importantly, the thread counts should be separate so that the control endpoint can properly reference itself while deleting and recreating the data endpoints. * Add some macros that handle referencing/releasing devices, and use them for sleeping/woken-up and open/close operations as apppropriate. * Use d_purge for FreeBSD, and a loop testing the open status for all the endpoints for NetBSD and OpenBSD, so that when the device is detached, the right thing always happens. END