ver 2.9:
	Add L2CAP info type and info result definitions.
	Add value for L2CAP_CONF_RFC_MODE.
	Change RSSI value to signed instead of unsigned.
	Allow UUID32 values as protocol identifiers.

ver 2.8:
	Fix the event code of inquiry with RSSI.
	Add defines and UUID's for audio/video profiles.
	Add AVDTP protocol identifier.
	Add HIDP subclass field.
	Add PKGConfig support.
	Remove dummy SDP library.

ver 2.7:
	Fix display of decoded LMP features.
	Update company identifiers.
	Add AFH related types.
	Add first bits from EDR prototyping specification.
	Add support for inquiry with RSSI.
	Add HCRP related SDP functions.
	Add HIDP header file.

ver 2.6:
	Use R2 for default value of pscan_rep_mode.
	Add new company identifiers.
	Add BNEP and CMTP header files.
	Add the SDP library.

ver 2.5:
	Add decoding of Bluetooth 1.2 features.
	Add link manager version parameter for Bluetooth 1.2.
	Add new company identifiers.
	Support for transmit power level.
	Support for park, sniff and hold mode.
	Support for role switch.
	Support for reading the clock offset.
	Use R1 for default value of pscan_rep_mode.

ver 2.4:
	Added const qualifiers to appropriate function arguments.
	Minor fixes.

ver 2.3:
	Fix hci_for_each_dev() for big endian machines.
	Support for voice settings.
	RPM package.

ver 2.2:
	Updated RFCOMM header file.
	Additional HCI command and event defines.

ver 2.1.1:
	Resurrect hci_remote_name.

ver 2.1:
	New HCI functions:
		hci_{read, write}_class_of_dev(),
		hci_{read, write}_current_iac_lap(),
		hci_write_local_name()
	Added RFCOMM header file.
	Minor fixes.

ver 2.0:
	Additional company IDs.
	Minor fixes.

ver 2.0-pre10:
	Fix hci_inquiry function to return errors and accept user buffers.
	New functions hci_devba, hci_devid, hci_for_each_dev and hci_get_route.
	Additional company IDs.
	Makefile and other minor fixes.

ver 2.0-pre9:
	LMP features to string translation support.
	Additional HCI command and event defines.
	Extended hci_filter API.

ver 2.0-pre8:
	Additional HCI ioctls and defines.
	All strings and buffers are allocated dynamically.
	ba2str, str2ba automatically swap bdaddress.
	Minor fixes and cleanup.

ver 2.0-pre7:
	Bluetooth libraries and header files is now a separate package.
	New build environment uses automake and libtool.
	Massive header files cleanup.

ver 2.0-pre6:
	API cleanup and additions.

ver 2.0-pre4:
	HCI filter enhancements.

ver 2.0-pre3:
	Cleanup.

ver 2.0-pre2:
	Additional HCI library functions.
	Documentation update.
	
ver 2.0-pre1:
	Minor fixes and improvements.
