freebsd-nq/sys/dev/usb
John Baldwin 4e7f640dfb Optimize sx locks to use simple atomic operations for the common cases of
obtaining and releasing shared and exclusive locks.  The algorithms for
manipulating the lock cookie are very similar to that rwlocks.  This patch
also adds support for exclusive locks using the same algorithm as mutexes.

A new sx_init_flags() function has been added so that optional flags can be
specified to alter a given locks behavior.  The flags include SX_DUPOK,
SX_NOWITNESS, SX_NOPROFILE, and SX_QUITE which are all identical in nature
to the similar flags for mutexes.

Adaptive spinning on select locks may be enabled by enabling the
ADAPTIVE_SX kernel option.  Only locks initialized with the SX_ADAPTIVESPIN
flag via sx_init_flags() will adaptively spin.

The common cases for sx_slock(), sx_sunlock(), sx_xlock(), and sx_xunlock()
are now performed inline in non-debug kernels.  As a result, <sys/sx.h> now
requires <sys/lock.h> to be included prior to <sys/sx.h>.

The new kernel option SX_NOINLINE can be used to disable the aforementioned
inlining in non-debug kernels.

The size of struct sx has changed, so the kernel ABI is probably greatly
disturbed.

MFC after:	1 month
Submitted by:	attilio
Tested by:	kris, pjd
2007-03-31 23:23:42 +00:00
..
dsbr100io.h add copyright notice to something I wrote that didn't have one 2005-01-06 01:36:28 +00:00
ehci_pci.c o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ehci.c Use a different task queue for host controller and peripheral driver 2006-10-19 01:15:58 +00:00
ehcireg.h ehcivar.h: 2005-09-18 11:45:39 +00:00
ehcivar.h More removing compatibility macros. 2006-09-07 00:06:42 +00:00
FILES Acknowledge (dearly) departed files 2006-11-21 22:29:06 +00:00
hid.c s/Static/static/g 2006-09-06 23:44:25 +00:00
hid.h
if_aue.c Optimize sx locks to use simple atomic operations for the common cases of 2007-03-31 23:23:42 +00:00
if_auereg.h Remove my "custom" locks that allow for lock acquire abort, they are 2007-01-08 23:24:21 +00:00
if_axe.c Optimize sx locks to use simple atomic operations for the common cases of 2007-03-31 23:23:42 +00:00
if_axereg.h Add a sleep lock that protects access to sequences of blocking 2006-06-04 14:42:38 +00:00
if_cdce.c Add support for Familiar Linux powered iPaq handhelds to cdce(4). 2006-10-07 17:35:37 +00:00
if_cdcereg.h Add dummy support for ifmedia subsystem. This allows devd to see cdce as an 2005-09-26 05:29:46 +00:00
if_cue.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
if_cuereg.h Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
if_kue.c Add support for Psion Gold Port Ethernet USB NIC. 2006-10-07 18:03:39 +00:00
if_kuereg.h Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
if_rue.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
if_ruereg.h Stop embedding struct ifnet at the top of driver softcs. Instead the 2005-06-10 16:49:24 +00:00
if_udav.c Use a different task queue for host controller and peripheral driver 2006-10-19 01:15:58 +00:00
if_udavreg.h More removing compatibility macros. 2006-09-07 00:06:42 +00:00
if_ural.c allow net80211 to fillin rate sets 2007-03-11 22:43:35 +00:00
if_uralreg.h o fix initialization sequence. 2006-01-21 10:25:51 +00:00
if_uralvar.h More removing compatibility macros. 2006-09-07 00:06:42 +00:00
kue_fw.h s/Static/static/g 2006-09-06 23:44:25 +00:00
ohci_pci.c o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
ohci.c Use a different task queue for host controller and peripheral driver 2006-10-19 01:15:58 +00:00
ohcireg.h Use the limited scatter-gather capabilities of ehci, ohci and uhci 2006-05-28 05:27:09 +00:00
ohcivar.h More removing compatibility macros. 2006-09-07 00:06:42 +00:00
rio500_usb.h
sl811hs.c Use pause() rather than using tsleep() on a dummy variable. 2007-02-27 17:19:33 +00:00
sl811hsreg.h Add SL811 based host controller driver for CF usb host controller. 2005-07-14 15:57:01 +00:00
sl811hsvar.h Use pause() rather than using tsleep() on a dummy variable. 2007-02-27 17:19:33 +00:00
slhci_pccard.c Catchup with filters 2007-02-23 19:34:52 +00:00
uark.c o Add uark(4), a driver for Arkmicro Technologies ARK3116 based serial 2006-11-15 09:13:25 +00:00
ubsa.c Add support for Huawei Technologies Mobile card (3G). 2007-02-09 15:59:28 +00:00
ubser.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
ubser.h initialize pp->p_sc so it can be referenced later. 2005-03-17 22:47:18 +00:00
ucom.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
ucomvar.h More removing compatibility macros. 2006-09-07 00:06:42 +00:00
ucycom.c Eliminate two unused arguments to ttycreate(). 2005-10-16 20:22:56 +00:00
udbp.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
udbp.h Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
ufm.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
ufoma.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
uftdi.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
uftdireg.h Add support to the uftdi driver for Intrepid Control Systems' vehicle 2004-07-01 17:16:20 +00:00
ugen.c More antideclarification. 2006-09-06 23:29:53 +00:00
ugraphire_rdesc.h Add support for the Wacom Graphire 3 4x5. Like the Graphire 3, it has a 2005-12-31 04:38:50 +00:00
uhci_pci.c o break newbus api: add a new argument of type driver_filter_t to 2007-02-23 12:19:07 +00:00
uhci.c Don't assume the run bit is still set after a suspend. 2007-03-27 18:55:06 +00:00
uhcireg.h Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
uhcivar.h More removing compatibility macros. 2006-09-07 00:06:42 +00:00
uhid.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
uhub.c Fix build (sc->dev => sc->sc_dev). 2007-02-03 21:11:11 +00:00
uipaq.c It turns out we were mallocing too early, so move the allocation so we 2007-02-03 19:11:09 +00:00
ukbd.c Add a quirk for devices recognized as usb keyboards not to be hooked by 2006-11-28 21:13:07 +00:00
ulpt.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
umass.c Some USB mass storage devices return the number of sectors in response 2007-02-27 22:33:50 +00:00
umct.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
umodem.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
ums.c Fix a buffer overflow iff USB_DEBUG is set, hw.usb.ums.debug is > 5 and the 2007-01-17 03:50:45 +00:00
uplcom.c o A quirk for Sagem USB-Serial controller. 2007-03-24 09:27:58 +00:00
urio.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
usb_ethersubr.c Add the following functions to abstract away the creation of task threads 2007-01-08 23:21:06 +00:00
usb_ethersubr.h Add the following functions to abstract away the creation of task threads 2007-01-08 23:21:06 +00:00
usb_if.m
usb_mem.c s/Static/static/g 2006-09-06 23:44:25 +00:00
usb_mem.h Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
usb_port.h More removing compatibility macros. 2006-09-07 00:06:42 +00:00
usb_quirks.c o Add several CDMA-2000 terminals. 2007-03-24 09:25:56 +00:00
usb_quirks.h Add a quirk for devices recognized as usb keyboards not to be hooked by 2006-11-28 21:13:07 +00:00
usb_subr.c Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
usb.c Use a different task queue for host controller and peripheral driver 2006-10-19 01:15:58 +00:00
usb.h s/Static/static/g 2006-09-06 23:44:25 +00:00
usbcdc.h
usbdevs o A quirk for Sagem USB-Serial controller. 2007-03-24 09:27:58 +00:00
usbdi_util.c More removing compatibility macros. 2006-09-07 00:06:42 +00:00
usbdi_util.h protect against multiple inclusion (this is useful when you 2007-01-03 10:50:03 +00:00
usbdi.c Refine the previous change to only call bus_dmamap_sync() in case of 2006-11-27 18:39:02 +00:00
usbdi.h Use a different task queue for host controller and peripheral driver 2006-10-19 01:15:58 +00:00
usbdivar.h More removing compatibility macros. 2006-09-07 00:06:42 +00:00
usbhid.h Start each of the license/copyright comments with /*-, minor shuffle of lines 2005-01-06 01:43:34 +00:00
uscanner.c Add support for Epson Stylus CX4200 in uscanner(4). 2006-10-07 18:09:27 +00:00
uvisor.c Fix memory leak of devinfop 2007-02-03 16:41:55 +00:00
uvscom.c Use pause() rather than tsleep() on stack variables and function pointers. 2007-02-27 17:23:29 +00:00
uxb360gp_rdesc.h Add support for the Wacom Graphire 3 4x5. Like the Graphire 3, it has a 2005-12-31 04:38:50 +00:00