ver 2.16:
	Fix buffer allocation for features to string conversion.
	Add function for reading local supported commands.
	Add function for reading local extended features.
	Add function for reading remote extended features.
	Add function for getting the remote name with a clock offset.
	Add function for extracting the OUI from a BD_ADDR.
	Add inquiry info structure with RSSI and page scan mode.
	Support inquiry with unlimited number of responses.

ver 2.15:
	Use better way for unaligned access.
	Remove sdp_internal.h and its usage.
	Add deprecated functions for reading the name.
	Add function for reading the clock.
	Add function for reading the local Bluetooth address.
	Add function for reading the local supported features.

ver 2.14:
	Add function for reading the RSSI.
	Add function for reading the link quality.
	Add function for reading the transmit power level.
	Add functions for the link supervision timeout.
	Remove deprecated functions.
	Update AM_PATH_BLUEZ macro.

ver 2.13:
	Add Device ID and HID attribute definitions.
	Update the UUID constants and its translations.
	Update L2CAP socket option definitions.
	Update connection information definitions.

ver 2.12:
	Correct kernel interface for CMTP and HIDP support.
	Add service classes and profile ids for WAP.
	Add simple AM_PATH_BLUEZ macro.

ver 2.11:
	Initial support for the kernel security manager.
	Use bit zero for vendor packets in the filter type bitmask.
	Add SIM Access types for service discovery.
	Add more audio/video profile translations.
	Add another company identifier.
	Add the missing HCI error codes.
	Add RFCOMM socket options.
	Add definition for the SECURE link mode.
	Add functions for reading and writing the inquiry mode.
	Add functions for AFH related settings and information.
	Add version identifier for the Bluetooth 2.0 specification.

ver 2.10:
	Fix and extend the unaligned access macros.
	Make compiling with debug information optional.
	Don't override CFLAGS from configure.

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.
