History log of /system/bt/stack/btm/btm_int.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ecb6c72a1d06dbcbd0e5c07628b572c5f22a5f1d 02-Sep-2017 Pavlin Radoslavov <pavlin@google.com> Implement HCI_Read_Automatic_Flush_Timeout mechanism

Also, read the Automatic Flush Timeout when flushing the A2DP Tx queue

Test: Streaming A2DP headset and trigger audio stutter
Bug: 64038257
Change-Id: Ic49b5236328ddacde1d7f2aee131e35e317a14ef
(cherry picked from commit b8568ae0e198a84225c9fdef1e715dc4d45565c9)
/system/bt/stack/btm/btm_int.h
4820b2a6e69a8c13a2d57c8b7d41ba3b6d6471d2 01-Sep-2017 Pavlin Radoslavov <pavlin@google.com> Implement HCI_Read_Failed_Contact_Counter mechanism

Also, read the Failed Contact Counter when flushing the A2DP Tx queue

Test: Streaming A2DP headset and trigger audio stutter
Bug: 64038257
Change-Id: I8ff72560e3840c5c22cfac9613c4be670b8a4cf1
(cherry picked from commit 6ab749f3cfd9c7660bb245764fcd01dcff51dbe9)
/system/bt/stack/btm/btm_int.h
7be17ed2c74ba5ab351f6d0dd8bd1f22618ccb86 18-Aug-2017 Jakub Pawlowski <jpawlowski@google.com> Fix connection handle data type

conn_handle should be uint16_t, not uint8_t.

Test: compilation test
Bug: 64232952
Change-Id: Ibce88e2cf2f74f402ea26f7471e5ac35aef6229b
Merged-In: Ibce88e2cf2f74f402ea26f7471e5ac35aef6229b
/system/bt/stack/btm/btm_int.h
942648ef5a4b25508cc9ffe7073ddab5e04a9ab4 08-Dec-2016 Srinu Jella <sjella@codeaurora.org> Dynamic blacklist device for role switch

- Blacklist the device if it's rejected the role switch for
max number of times. Same is added to the interop_database.

- Maximum number of failed (BTM_MAX_SW_ROLE_FAILED_ATTEMPTS)
attempts set to 3 and it is configurable.

- Same blacklisted device is referred by the BTM module when
any other module like profile is requesting for role switch
and BTM module returns BTM_REPEATED_ATTEMPTS as the switch
role status.

Test: Code compilation
Bug: 32999957
Change-Id: Ie999104a2c8ca507605ef3e1d454865cee98dcd2
/system/bt/stack/btm/btm_int.h
a484a888196ddf8bcbf1ad3226d6451bc735a94b 25-Jun-2017 Jakub Pawlowski <jpawlowski@google.com> Rename bt_bdaddr_t into RawAddress (3/3)

Test: compilation test
Change-Id: I4571721a0c6165a66450ee157a53d8d15bfc45d0
/system/bt/stack/btm/btm_int.h
c2276b06572ab6fc1f900fbb1f41087e77d47e2a 10-Jun-2017 Jakub Pawlowski <jpawlowski@google.com> Use bt_bdaddr_t instead of BD_ADDR

Test: compilation test, sl4a GattReadTest
Change-Id: I8d1bd6914aec55bb53495b1d0d5e3d37b86865e6
/system/bt/stack/btm/btm_int.h
57f6508cf7b22788fa2e7a739cec241b785718fb 09-Feb-2017 Mudumba Ananth <ananthm%broadcom.com@gtempaccount.com> eSCO: BT 4.1 Enhanced SCO command (1/5)

Added support for BT 4.1 enhanced SCO feature on the stack.
This feature allows the stack to create a SCO connection with
remote device by using Hci_Enhanced_Setup_Synchronous_Connection
command after checking the controller (4.1) support for
enhanced SCO command.
Added the command parameters to use the command in both wide band
speech(WBS) and narrow band speech(NBS) scenarios.

Number of Broadcom vendor specific commands(VSCs)that are needed
to be sent to Broadcom controllers along with this command have
also been updated accordingly

NOTE: This change would also need a firmware patch for
the feature to work on Broadcom contollers which will
be delivered to Google in a separate change set.

Bug: 19540029
Test: make, HFP PTS test, testplans/86884, testplans/87103
Change-Id: I1014d81be5cbe91078a4484dd072ac3957bfdfe4
/system/bt/stack/btm/btm_int.h
8bf2285959ffb8960f1bf01499c15cfa1e2ccf16 16-Feb-2017 Jack He <siyuanh@google.com> Fix for dual-mode devices advertising with a single address

* BTM_ReadRemoteDeviceName checks if a device is connectable over LE before
making a connection. However, when it is not connectable over LE, it could
be connectable over BR/EDR.
* For Dual Mode device, the device type should be 0x3 and is not equal to
BT_DEVICE_TYPE_BREDR, hence we cannot check equality to determine whether
a device is BR/EDR, but need to AND them and check the result.
* btm_ble_read_remote_name() already checks if device is connectable in LE,
and we do not need to do it in BTM_ReadRemoteDeviceName().
* This fix removes the check from BTM_ReadRemoteDeviceName
* This fix also adds error checking to return values of BTM_ReadRemoteDeviceName
* This fix moves inquiry database query to respective remote name
request procedures, as the result of the query is used in those
procedures instead of in BTM_ReadRemoteDeviceName()

Bug: 35348392
Test: make, pair with device that advertise on both LE and BR/EDR
Change-Id: I10d1aa9dd6e2447f9b9d40b1fea9370b5088a57d
/system/bt/stack/btm/btm_int.h
ad1e23d50e431fb82ff1b8d3ce02f64ca0c5a940 10-Dec-2016 Jack He <siyuanh@google.com> Remove extern "C" from header files

Since change 290046, most files in system/bt is compiled as C++ source.
Therefore, there is no longer a need for the extern "C" wrapper around
includes that export symbols from those sources.

The following python script is applied to each file in the directory:

front = '#ifdef\s+__cplusplus\s+extern\s+"C"\s+{\s+#endif\s+'
back = '#ifdef\s+__cplusplus\s+}\s+#endif'
with open(sys.argv[1], "r") as f:
data = f.read()
data = re.sub(front, "", data)
data = re.sub(back, "", data)
print data

through a shell script:

for file in $(find . -name "*.h"); do
python remove_cpp_extern_c.py $file > tmp
cat tmp > $file
rm tmp
done

with following files not edited:
* stack/include/a2dp_*
* include/bt_trace.h
* embdrv/sbc/*

Bug: 33492510
Test: Code compilation, BtFunhausMetricsTest, BtStressTest
Change-Id: Iac21cdfb1924b50478dd0b82326e092602cbc9d4
/system/bt/stack/btm/btm_int.h
911d1ae03efec2d54c3b1b605589d790d1745488 29-Nov-2016 Myles Watson <mylesgw@google.com> Apply clang-format to the rest of the tree

find * | grep "\.[ch]" | xargs clang-format --style=file -i

Test: mma -j32
Change-Id: I6fcc9862bb7bc07c2a367ca58fef2b3cd27a6f05
/system/bt/stack/btm/btm_int.h
ee96a3c60fca590d38025925c072d264e06493c4 23-Nov-2016 Myles Watson <mylesgw@google.com> Fix asterisks in block quotes

Remove double asterisks from block quotes.

git grep -lP '^[*][*]' | xargs sed 's/^[*][*]/ \*/' -i

Fix asterisk line lengths

git grep -l '^[ /][*]\{79,\}[*/]' | \
xargs sed -i s,"^\([ /]\)[*]\([*]\{78\}\)[*]*\([*/]\)","\1\2\3",

Test: mma -j32
Change-Id: Ie3fd375ac2f804cb0f53bf1314a005e85973b3d7
/system/bt/stack/btm/btm_int.h
2e8e9f42132d0297a94c0852a1fbf45c9bc348e5 15-Nov-2016 Myles Watson <mylesgw@google.com> Remove SMP_INCLUDED define

Test: Connect to a BLE Keyboard
Change-Id: I785692cb61f4ca5ccccab7424aa03f50c54523c9
/system/bt/stack/btm/btm_int.h
84baa7f16e830394408278dbb8c508dd9fa02887 14-Nov-2016 Myles Watson <mylesgw@google.com> Remove BLE_INCLUDED define

Test: Connect to a BLE Keyboard
Change-Id: I5f8f4017c90c3c404004632fd10e6c2b93bd7783
/system/bt/stack/btm/btm_int.h
b2a292b5d8df2f359c38b0787bc01181225a9bc9 15-Oct-2016 Pavlin Radoslavov <pavlin@google.com> Renamed most C files to C++: *.c to *.cc

Also:
- Fixed C++ related compilation errors.
- Added missing 'extern "C"' guards in some of the header files.
- Added missing LOCAL_CPP_EXTENSION to Android.mk files.
- Added-back btif/src/btif_mce.cc and bta/mce/bta_mce_* to
btif/Android.mk and bta/Android.mk respectively.
- Fixed the alphabetical ordering of the *.cc files in some
of the Android.mk files.
- Added missing Copyright header to "osi/include/list.h"
- Updated "osi/src/wakelock.cc" to use C++ std::string
instead of dynamic allocation of C-style strings.

Test: code compilation, unit tests, and A2DP streaming
Change-Id: Ia2f7215ed9df32775c701b68fc86b09875b942c7
/system/bt/stack/btm/btm_int.h
37c1b5f8ccf4fc6d5132e07f98f0f40f65d5bfaf 15-Oct-2016 Pavlin Radoslavov <pavlin@google.com> Removed unused *_DYNAMIC_MEMORY conditional statements

Test: compilation from the top-level directory
Change-Id: I181e6ae2e71c232ca0dc733dabda5cb0fc2672d8
/system/bt/stack/btm/btm_int.h
e47b769e71fa88f207db747e62974662e43aa07c 28-Sep-2016 Jakub Pawlowski <jpawlowski@google.com> Make Bluetooth LE multi-advertising testable

This patch turns the code that manages LE multi-advertising into the
BleAdvertisingManager class. All HCI calls made by this code were
abstracted into BleAdvertiserHciInterface.

Thanks to those changes, we can mock BleAdvertiserHciInterface and test
the advertising manager.

The BleAdvertisingManagerTest, still has some dependencies on other
code from the "stack" module. These have to be implemented on top of the
test file. In the future, this dependencies should be replaced by mockable
classes.

Test: Tests covering the change are added in this patch.
Bug: 30622771
Change-Id: I4a363678815c235ee01255f462db2a671ef89610
/system/bt/stack/btm/btm_int.h
426da5ad3cc43336e48620605e37e9432b3cd126 28-Sep-2016 Andre Eisenbach <eisenbach@google.com> Fix 100 LE device connection limitation

Currently after 100 devices are added to the device security database,
any subsequent LE connection to a newly discovered LE device address
will fail as entries in the security record database are not reused.

This patch removes a device record if the device itself is removed and
also ensures that the oldest device security record is deleted if the
limit is reached to ensure a new record can be allocated.

Bug: 31625900
Test: SL4A multi-device connection test + regression
Change-Id: I22f6c82c64a9a9bfb2a16d79182903e5aa011355
(cherry picked from commit 013c32bf98b8d511dc29fcd7de7578a421a52590)
/system/bt/stack/btm/btm_int.h
dc3c1f2afa2d5f311c3ea42bda432089a7f303a4 28-Sep-2016 Jakub Pawlowski <jpawlowski@google.com> Separate the definition of BTM layer types from control blocks

Right now, data types, control blocks, and functions used in the BTM
layer are defined in the same header files. This means that if someone
wants to write a test that uses those data types, they must also define
all control blocks, or compile the whole module.

This patch separates the data types from other definitions. Thanks to
it, we will be able to write unit tests, once other dependencies get
separated.

Change-Id: Ibc089e273cc37642fbb8672964b266c20f8d825d
/system/bt/stack/btm/btm_int.h
d19e0785e662e640191a075eda07acce61c2aeda 15-Jul-2016 Marie Janssen <jamuraa@google.com> Use standard types, consistent ifdef style everywhere

Remove the typedefs in stack/include/bt_types.h

Use standard types everywhere.
Use standard style for #if statements:
- #if (VAR_NAME == TRUE)
- #if (VAR_NAME1 == TRUE && VAR_NAME2 == TRUE)
Use __func__ instead of __FUNCTION__
Fix some debug statements to use __func__

Update script to be less disruptive to aligned assignment blocks.

Change-Id: I8f8f068e6c26ce74fd3b3707e1e31fd0b919cdd0
/system/bt/stack/btm/btm_int.h
63b0519c3f0d1c0cc523e0e9553c60fc68651acc 20-May-2016 Chih-Hung Hsieh <chh@google.com> Fix misc-macro-parentheses warnings

When compiled with WITH_TIDY=1, clang-tidy warns about
missing parameters around macro parameters.

Bug: 28705665
Change-Id: I89c23cfe6eaefae5ef3c648a7c123c0501662c13
/system/bt/stack/btm/btm_int.h
3d6accfcc0bdc5c7a8713320c9bb069cbf253348 11-May-2016 Bryce Lee <brycelee@google.com> Move extern "C" to top of headers and remove tBTA_HF_CLIENT_HDR.

Previously, extern "C" was placed in various locations within the header
files, sometimes below actual struct declarations. Doing so would lead to
alignment issues between C and C++ code.

tBTA_HF_CLIENT_HDR was removed from bta_hf_client_api since it was
extraneous and empty - leading to alignment issues.

Change-Id: Icdd338f1affe4c3a70c7bbd716249be6a16443d2
/system/bt/stack/btm/btm_int.h
063ca0230d902b1397bb8c19366e807980d876f3 25-Apr-2016 Jakub Pawlowski <jpawlowski@google.com> Add const guarantees

This patch adds const qualifiers to parameter of some methods.
It adds no value right now, but will make conversion of btif to C++
much easier.

Change-Id: I380a63484230f92aedfd4ff5e1ee72f30307d9d9
/system/bt/stack/btm/btm_int.h
9ab2a9d97f4e0c4b3cd76416e3d6ed03b610ec6f 30-May-2015 Mallikarjuna GB <gbmalli@codeaurora.org> Avoid sending SCO disconnect when power mode is processing

Use case:
1. Pair and connect with Mercedes car kit.
2. Answer incoming call by phone or car kit.
3. Switch audio between car kit and phone.
4. Repease 1-3 steps.

Failure:
Car kit is going into bad state and not accepting SCO disconnect.

Root cause:
Phone has sent SCO disconnect command to car kit when
power mode command(sniff/unsniff) is in the processing
on the ACL where SCO is active. Car kit didn't accept
remove SCO request command and gone into bad state.

Fix:
AG should send sco disconnect once power mode change is completed
to avoid this failure.

Change-Id: I7eba162a8fd9615795009ab26005535a3e5c7e86
/system/bt/stack/btm/btm_int.h
6721232129f137ab024d9b95fc1094a714bc4c01 09-Mar-2016 Navin Kochar <navin.kochar@intel.com> Add LE L2CAP Connection Oriented Channel

This implementation for LE L2CAP Connection Oriented Channel (a Bluetooth
Core Spec 4.1 feature) has been tested on the following formal and informal
IOP events conducted by BT SIG Sport and Fitness Working Group.

* Informal IOP – Tokyo 2014
* UPF 49 – Berlin 2014
* Formal IOP – Tokyo 2014
* Formal IOP – Santa Clara 2015

Change-Id: Ia6de62f9321a78b98930629f65078884157a9c0d
Signed-off-by: Navin Kochar <navin.kochar@intel.com>
/system/bt/stack/btm/btm_int.h
1be7ae1a0890380b8a3daebcade0c1f55b04b167 04-Mar-2016 Jakub Pawlowski <jpawlowski@google.com> Remove btla-specific comments

Change-Id: I91a19b2cfbc96d7567e0e0914058619ea364c1d4
/system/bt/stack/btm/btm_int.h
dbd767da09b450b65b84f78c4c38a1ddbcc4a256 04-Feb-2016 Andre Eisenbach <eisenbach@google.com> Remove Porsche car-kit pairing workaround

Bug: 26551752
Change-Id: I14c5e3fcda0849874c8a94e48aeb7d09585617e1
/system/bt/stack/btm/btm_int.h
cac784d772db7f42dc93acafb18e5d71617c04f3 01-Feb-2016 Jakub Pawlowski <jpawlowski@google.com> Keep sec_dev_rec in list instead of static array

This reduces the computational complexity of most BLE operations.

Change-Id: Ife35a50d9ef3467abdc5259c2712bf5d85b8f909
/system/bt/stack/btm/btm_int.h
7db2548c0346c1d33a46cc35b250e71fd24adae4 03-Feb-2016 Andre Eisenbach <eisenbach@google.com> Revert "Keep sec_dev_rec in list instead of static array"

Breaks pairing...

This reverts commit c9f86da73bfb637426c83b86497c50fede4e0f63.
/system/bt/stack/btm/btm_int.h
c9f86da73bfb637426c83b86497c50fede4e0f63 01-Feb-2016 Jakub Pawlowski <jpawlowski@google.com> Keep sec_dev_rec in list instead of static array

This reduces the computational complexity of most BLE operations.

Change-Id: I3997b414680ff4288091b1ddf00ec1ef1c4453fb
/system/bt/stack/btm/btm_int.h
73d488ea3a3d14054e29c675f0b175647a86dcbb 30-Jan-2016 Jakub Pawlowski <jpawlowski@google.com> Remove unused method

Change-Id: Icb1a9f76cade28112c084cf6fde4d0f8d9c57ed0
/system/bt/stack/btm/btm_int.h
f40b136e7b943d7e25224817fc47bb5b171479d5 26-Jan-2016 Andre Eisenbach <eisenbach@google.com> Add explicit sec_act parameter to encryption requests

This avoids de-referencing a potentially NULL pointer (p_ref_data) and
also makes the use of the parameter more obvious.

Also added NULL check before invoking security callback.

Bug: 26792899
Change-Id: I6613c9c2706f1d460ab39421a967d79c59ad0fde
/system/bt/stack/btm/btm_int.h
78bcff79e1b1f0efce436b33bdd6da88745bfc8a 05-Dec-2015 Pavlin Radoslavov <pavlin@google.com> Refactor the Bluetooth timers

* Updated the alarm API:
- Existing API alarm_new() is modified to take an alarm name
as an argument.
- New API alarm_new_periodic() is used to create a periodic
alarm.
- Added new API alarm_is_scheduled() to test whether an alarm is
scheduled.
- Existing API alarm_set_periodic() is removed: a periodic
alarm is created by alarm_new_periodic().
- Added new API alarm_set_on_queue() to set an alarm whose
callback is executed on a specific queue.
- Added new API alarm_register_processing_queue() and
alarm_unregister_processing_queue() to register/unregister
a queue and the corresponding thread for alarm processing.
- Added corresponding unit tests.

* Updated the alarm internals:
- Added alarm_info_t for collecting alarm-related information
and statistics.
- Collect and store alarm-related statistics into alarm_info_t
per alarm.
- Include the alarm-related statistics and info into the native
dumpsys output for Bluetooth.
- Once an alarm expires, the alarm execution is scheduled for
processing on another internal alarm-specific thread, not
on the thread that is maintaining the alarms.
- Implemented callback execution ordering guarantee among
timers on the same thread with exactly same timeout values.

* Refactor some of the usage of alarm_set() and simplify the
code by using alarm_set_on_queue() instead.

* Removed the non_repeating timers wrapper, and use directly
the alarm mechanism / API.

* Refactored all timer_entry_t timers and replaced them with alarm_t
timers:
- Replaced the btu_start_timer() / btu_stop_timer() /
btu_start_quick_timer() / btu_stop_quick_timer() /
btu_oneshot_alarm() mechanism with alarm_set_on_queue() and
alarm_cancel()
- Removed the whole mechanism around the BTU_TTYPE_* timers.

* Fixed a bug when processing the GATT indication confirmation timer
expiration (timer tGATT_TCB.conf_timer: b/26610829).

* Renamed and/or split misc. timeout functions, fields, and timers

* Renamed time-related constants and changed the values from seconds
to milliseconds

* Replaced timer tAVDT_CCB.timer_entry with three mutually exclusive timers:
idle_ccb_timer, ret_ccb_timer, rsp_ccb_timer
The reason we are using three timers, is because in the original code
function avdt_ccb_chk_timer() used the timer type in its logic: it
would stop the timer only if the type is "idle".

* Removed btm_ble_timeout() and replaced it with multiple timeout
callback functions (per timer)

* Fix the actual value of the global constant BT_1SEC_TIMEOUT and
rename it to BT_1SEC_TIMEOUT_MS

* Removed btu_cb and associated timers and events, because they are
never used.

* Removed unused timers, functions, struct and declarations that are
not used / needed.

Bug: 26611369
Bug: 26610829

Change-Id: I812c8c31710a5daefc58b01fcf35c353768f390f
/system/bt/stack/btm/btm_int.h
175da70b6d60349dffdee3a9cd13182b293edf4c 13-Nov-2015 Jakub Pawlowski <jpawlowski@google.com> Remove BTM_OOB_INCLUDED

Bug: 22932952
Change-Id: I35dbcd1881a8bd627d1b1c6759761a356d07bcb2
/system/bt/stack/btm/btm_int.h
dd339ab075d913334c84fe4c817c8ab09f5eda47 20-Nov-2015 Scott James Remnant <keybuk@google.com> Allow Bluetooth to build on systems with no LE support

Bug: 25387258
Change-Id: Ie82dae7a1a6807b398c067d4e1984a098793c589
/system/bt/stack/btm/btm_int.h
258c2538e3b62a8cdb403f2730c45d721e5292b4 28-Sep-2015 Pavlin Radoslavov <pavlin@google.com> GKI cleanup - moved GKI buffer allocation wrappers to OSI

* Moved the following GKI buffer allocation functions to OSI:
- GKI_getbuf() -> osi_getbuf()
- GKI_freebuf() -> osi_freebuf()
- GKI_get_buf_size() -> osi_get_buf_size()

For now we need the osi_getbuf() / osi_freebuf() allocation wrapper,
because we need to be able to call osi_get_buf_size() on the allocated
buffer.
In the future those should be replaced with osi_malloc() / osi_free().
Currently, the osi_malloc() buffer size internal allocation tracker
does not always track the size, hence we need the osi_getbuf() wrapper.

* Replaced GKI_MAX_BUF_SIZE with BT_DEFAULT_BUFFER_SIZE

* Added new file include/bt_common.h that can be usee to include
few files that should be included alost everywhere (e.g. bt_target.h"
NOTE: This file might be removed in the future and we should include
everywhere the right set of header files.

* Removed some of the GKI-related references

* Removed file include/gki_target.h

Change-Id: Ie87830e73143de200746d54235aa99f228a95024
/system/bt/stack/btm/btm_int.h
9f1c9ad85759c7663e3bbc494f8e75b2f107da67 28-Sep-2015 Pavlin Radoslavov <pavlin@google.com> GKI cleanup - Moved struct TIMER_LIST_ENT to OSI

* Moved struct TIMER_LIST_ENT to file osi/include/non_repeating_timer.h
and renamed it to timer_entry_t
NOTE: This is a short-term solution. timer_entry_t should be
removed, and its usage everywhere should be replaced by
struct non_repeating_timer_t .
* Renamed TIMER_CBACK to timer_callback_t
* Renamed TIMER_PARAM_TYPE to timer_param_t

Change-Id: I9ca830718bf900195f9c0a513a97f6995322693b
/system/bt/stack/btm/btm_int.h
1a3844f933bd63c8a381371dabfb35c6a0249e3e 25-Sep-2015 Pavlin Radoslavov <pavlin@google.com> GKI cleanup - Replaced usage of GKI queue with OSI fixed_queue

* Added new functions to OSI:
- fixed_queue_init()
- fixed_queue_length()
- fixed_queue_try_remove_from_queue()
- fixed_queue_try_peek_last()

* Renamed fixed_queue_try_peek() to fixed_queue_try_peek_first()

* Replaced usage of GKI queue functions with OSI fixed_queue functions:
- GKI_init_q() -> fixed_queue_new(SIZE_MAX)
NOTE: unlike GKI_init_q(), fixed_queue_new() allocates memory /
state that needs to be released by calling fixed_queue_free()
- GKI_enqueue() -> fixed_queue_enqueue()
- GKI_dequeue() -> fixed_queue_try_dequeue()
NOTE: fixed_queue_try_dequeue() is non-blocking
- GKI_queue_length() -> fixed_queue_length()
- GKI_queue_is_empty() -> fixed_queue_is_empty()
- GKI_getfirst() -> fixed_queue_try_peek_first()
- GKI_getlast() -> fixed_queue_try_peek_last()
- GKI_remove_from_queue() -> fixed_queue_try_remove_from_queue()
- Queue elements iteration.
In the fixed_queue implementation we have to use the underlying
list_t mechanism to iterate over the elements.
OLD:
p = GKI_getfirst(queue);
...
while ((p = GKI_getnext(p) != NULL) {
...
}
NEW:
list_t *list = fixed_queue_get_list(queue);
for (const list_node_t *node = list_begin(list);
node != list_end(list); node = list_next(node)) {
p = list_node(node);
}

* Remove initialization of the GKI module, because it is not needed
anymore

* Removed unused files in GKI:
gki/common/gki_common.h
gki/ulinux/gki_int.h
gki/ulinux/gki_ulinux.c

Change-Id: I3ff9464db75252d6faf7476a9ca67c88e535c51c
/system/bt/stack/btm/btm_int.h
65f9c04aa36af5379ba3a28dba36a5de16686024 17-Jul-2015 Pavlin Radoslavov <pavlin@google.com> Fix the logic for removing bonded devices

* Removed btif_storage_is_device_bonded(), because it is not needed,
and it was giving the wrong answer in use cases like Smart Setup
with BR/EDR connections.

* Added a call to btif_storage_remove_ble_bonding_keys()
within btif_storage_remove_bonded_device() so the bonded device
state is properly removed.

* Don't save the BLE bonding keys if it is temporary bonding

Bug: 22233299
Change-Id: I33d9f76a124acc60173f0acaa517bc29ee6603e8
/system/bt/stack/btm/btm_int.h
818d0f2afb10c75125b0df9ea2bce6108268a269 21-May-2015 Casper Bonde <c.bonde@samsung.com> SAP: Make it possible to enforce a 16-digit pin code (1/5)

This change enable the posibility to enforce using a
16-digit pin or MITM for a RFCOMM or L2CAP connection.

This is needed for the SIM access profile.

Change-Id: I02886ce284f27295205def3c66fb76372f5dab4f
Signed-off-by: Casper Bonde <c.bonde@samsung.com>
/system/bt/stack/btm/btm_int.h
1287166da9c34f041d54a78800b79cb2738675a9 09-May-2015 Andre Eisenbach <eisenbach@google.com> DO NOT MERGE Fix compilation on platforms with BLE_INCLUDED == FALSE

This is not a comprehensive fix. More work is necessary to ensure the
correct separation of BLE_INCLUDED TRUE/FALSE as well as removing many
of the hacked-up if() statements resulting from this patch.

Change-Id: I1812594feba0bf43369096e472a8b18cde305255
/system/bt/stack/btm/btm_int.h
fd6d3aea8be32cc1b47e349ebf002f6177d7ca7d 01-May-2015 Andre Eisenbach <eisenbach@google.com> Change "ltk" to "pltk" and "csrk" to "pcsrk"

To clarify local/peer key deliniation.

Change-Id: I79573015c80456ce3287acfe5551a6881ff581b2
/system/bt/stack/btm/btm_int.h
8a05724400085c56bdb2c4d7293226a7aa1ace37 30-Apr-2015 Andre Eisenbach <eisenbach@google.com> Fix LE pairing LTK storage issue

Two separate issues prevented the correct LTK from being storred in
non-volatile storage and thus prevented an LE device from working after
Bluetooth was restarted:

1. tBTM_SEC_BLE_KEYS contained a field "pltk" which stored the LTK, but
downstream the field "ltk" in the same structure was used to access
the key.

2. The structure element p_key_value was not deep-copied for
BTA_DM_BLE_KEY_EVT events, causing data corruption and instabilities.

This patch addresses both issues.

Bug: 20091926
Change-Id: I9f9481a44bfe83cacd351f9e578451e77b573564
/system/bt/stack/btm/btm_int.h
e28055315f96c0d06e73a66a9bb06df85247b5a7 22-Apr-2015 Chaojing Sun <cjsun@broadcom.com> Cross transport key mapping fixes

Change-Id: I22d97303054eccc876c4a9c7c0a50e369ff4fa62
/system/bt/stack/btm/btm_int.h
899b77140675a157dba034e98527ab546bc9ac35 30-Jan-2015 Mudumba Ananth <ananthm@broadcom.com> BR/EDR secure connections support

As a part of BT 4.1 stack upgrade, added host support for BR/EDR
secure connections to be able to interact with controllers that
support secure connections and upgrade the SSP mechanism to use
secure connection rules.

This change checks for controller support in the extended_features
(LMP page 2) and then declares the host support (extended_features
LMP page 1) using WRITE SECURE CONNECTIONS HOST SUPPORT.
If both the sides support secure connections, the simple pairing
process utilizes the link key generated using P-256 elliptic curve
(in the controller) and both the sides will be
in a secure connection.

Bug: 19289699
Change-Id: Idb3c41f439973bea137f5a4a69468c1f55aecbd7
/system/bt/stack/btm/btm_int.h
444a8da807abaf5f9e813ce70c56a79160495fb3 06-Mar-2015 Satya Calloji <satyac@broadcom.com> LE Privacy 1.2 and LE secure connections

Bug: 19816438
Original author: Chaojing Sun <cjsun@broadcom.com>
Change-Id: I5951f4d4e038f8348a62aa6d19b2111bae0b3ecc
/system/bt/stack/btm/btm_int.h
f4c4b78b6d85b785afa53a4b8f440b3f657e8b67 19-Mar-2015 Andre Eisenbach <eisenbach@google.com> Remove ACL connection reference counting

In addition to maintaining ACL link control blocks, which carry a
"in_use" flag, ACL links are reference counted in the num_acl links
variable.

The reference counting is thrown off when a SM connection initiated for
pairing is followed up by a GATT connection after pairing completes. The
2nd connection is counted against num_acl, even so other parts of the
code recognize the connection as a duplicate ACL connection to the same
BDA.

This patch removes the unecessary reference counting and relies on the
control block status instead, which is correctly maintained.

Bug: 19019189
Change-Id: I0a5f4d279fc634689d0e8c0ef4ad639d0ce5d687
/system/bt/stack/btm/btm_int.h
24ff5af9e40aaebc236bb6a16849c63bff0f23ba 29-Dec-2014 Sharvil Nanavati <sharvil@google.com> Collapse more feature flags.

Start reviewing in include/bt_target.h.
/system/bt/stack/btm/btm_int.h
a330b102cc2f0b87919ff457563a3a722a73dd67 29-Dec-2014 Sharvil Nanavati <sharvil@google.com> Collapse RFCOMM_INCLUDED and GAP_INCLUDED guards.

Both of these features are always available in bluedroid.
/system/bt/stack/btm/btm_int.h
de35e095aa0a97ec4687aebec188205d41444a3e 07-Jan-2015 Zach Johnson <zachoverflow@google.com> Remove unused read link policy + friends

Was never called, and the removal of which obviated
a lot of other code.
/system/bt/stack/btm/btm_int.h
a2caad53c843b5c03441d702fbce5e2a22ff553b 07-Jan-2015 Zach Johnson <zachoverflow@google.com> Remove unused link supervision timeout code

The btm callback was never set, so this code
did nothing useful.
/system/bt/stack/btm/btm_int.h
e53504e10abe3079c39a8a865dfb5c293ca23c01 27-Dec-2014 Zach Johnson <zachoverflow@google.com> Clean up unused functions in btm_sec
/system/bt/stack/btm/btm_int.h
6a8c80eae89a4ba9d842ae68798081df725e787c 01-Nov-2014 Zach Johnson <zachoverflow@google.com> Remove unused link key functions from devctl

The security manager looks for the link key notification event,
so it doesn't use these read/write link key functions at all.
/system/bt/stack/btm/btm_int.h
2a1f4e2121f7ffd9bbbd868c4bd5307356adb054 31-Oct-2014 Zach Johnson <zachoverflow@google.com> Remove the afh functions from btm_devctl

The callers were removed in a previous CL, so these
are no longer necessary.
/system/bt/stack/btm/btm_int.h
34b6a92011ac1ed94c9eaf4da9cbd1e7bfaef910 23-Oct-2014 Chris Manton <cmanton@google.com> Remove always true BTM_USE_INQ_RESULTS_FILTER
/system/bt/stack/btm/btm_int.h
df7634158b0853bee885cb292dfdd30356615db8 16-Oct-2014 Chris Manton <cmanton@google.com> Remove unused functions BTM_RegForLstoEvt/btm_acl_set_discing
/system/bt/stack/btm/btm_int.h
e7ef465c37298c2b64b7e9794659b1b1b50ab877 16-Oct-2014 Chris Manton <cmanton@google.com> Remove always true BTM_PWR_MGR_INCLUDED

There are two code paths to set the chip into the power modes.
The power manager aggregates access to the power modes.
Does not compile when set to false.
/system/bt/stack/btm/btm_int.h
584846a2109f8b34b3794683b61c8322ad6eb11a 15-Oct-2014 Chris Manton <cmanton@google.com> Remove always true BTM_BUSY_LEVEL_CHANGE_INCLUDED
/system/bt/stack/btm/btm_int.h
c0b16b1aa7e1880a87e0f408b043914797cd9dd2 24-Oct-2014 Chris Manton <cmanton@google.com> Remove always true definition BTM_EIR_CLIENT_INCLUDED
/system/bt/stack/btm/btm_int.h
65779660ffced1b16f2efa06c8b96fa8de98458a 08-Oct-2014 Zach Johnson <zachoverflow@google.com> Comment said BTM_PM_SNIFF_SLOT_WORK_AROUND would be removed someday. Today is that day.

Looks like this has been around for a while, and isn't/shouldn't be used.
restore_pkt_types then becomes obsolete, so removed.
/system/bt/stack/btm/btm_int.h
a87c8214181c5828dae719dd2b884a12652a1744 29-Oct-2014 Zach Johnson <zachoverflow@google.com> Fix BLE GAP handling after callback refactoring

BLE supported states was moved to controller during the callback
re-factoring CL, but in the commotion I forgot to remove the
supported states variable from devcb.

This meant I didn't realize GAP was looking at the wrong place
for BLE supported states. This CL fixes that.
/system/bt/stack/btm/btm_int.h
e7faae66ddb7c4fc318c5e4986f820c92a787307 28-Oct-2014 Zach Johnson <zachoverflow@google.com> Remove unused function BTM_ChangeLinkKey & friends

Not used in the codebase. Removed it along with
all its related code.

According to the spec the change link key event is only
sent in response to the change link key command, so
it should be completely safe to remove that logic.
/system/bt/stack/btm/btm_int.h
30e58068c1adaac7c5ccb3aa9cfb045d41d2a10e 27-Sep-2014 Zach Johnson <zachoverflow@google.com> Refactor btm_devctl reset sequence

* Controller bring up on blockable thread now
* Removed some duplicate and commands during controller bring up
* The code to make commands for controller bring up is smaller and better
/system/bt/stack/btm/btm_int.h
5fc4be1aa79e3b732e4503a84908522fd754b56f 29-Sep-2014 Zach Johnson <zachoverflow@google.com> Remove <BT 2.0 workarounds
/system/bt/stack/btm/btm_int.h
24933b5b1a06274c47133debac5251a97128a267 25-Sep-2014 June R. Tate-Gans <jtgans@google.com> Removing unnecessary BTAPI #defines.
/system/bt/stack/btm/btm_int.h
8986635b6c62c430fd7f59fbe8370df479f4e371 02-Sep-2014 Zach Johnson <zachoverflow@google.com> Remove unused function BTM_SecSetConnectFilterCallback
/system/bt/stack/btm/btm_int.h
99f2ad1e229eefccb60580ef67f6ca16a644baaf 03-Sep-2014 Zach Johnson <zachoverflow@google.com> Remove BTM_ReadBrcmFeatures because it shouldn't exist and isn't used

Also eliminates some related macros.
/system/bt/stack/btm/btm_int.h
4eb14ed2eab174998a86ad245d8163d9f03d3c68 02-Sep-2014 Zach Johnson <zachoverflow@google.com> Remove unused function BTM_SetInquiryFilterCallback
/system/bt/stack/btm/btm_int.h
ff2c6ae048d59e2be29339a7c88cf6c97b818358 02-Sep-2014 Zach Johnson <zachoverflow@google.com> Remove unused function BTM_InquiryRegisterForChanges and associated code
/system/bt/stack/btm/btm_int.h
1fbddc8faacde61190df31a8e6ea9142feb4bc88 10-Oct-2014 Andre Eisenbach <eisenbach@google.com> Revert "Unable to connect to a Motorola s705 until Bluetooth was toggled of and back on"

This reverts commit a934f018b6c6a7eda4662a60f2f04828afc3ab77.

This patch caused various headset audio break issues and slow
reconnections on headsets like the Bose AE2W.

Based on the original bug under which this patch was merged
(b/10648781) it is unlikely that this bug even fixed the
issue it was meant to address.

Bug: 17520043
Change-Id: I39bb9abbf5735abff25b5257425c34972287dc27
/system/bt/stack/btm/btm_int.h
9c29d08bc7c6da33db5cfc777404354c6dca845c 03-Sep-2014 Priti Aghera <paghera@broadcom.com> Avoid premature LE connection notifaction to app

To avoid premature connection notification to app, always wait for
LE read remote feature complete with success before the connection
event is sent to application.
bug 17326529

Change-Id: Id731bf02e8d5d5a68db12e0478b8eb74723eb95d
/system/bt/stack/btm/btm_int.h
8d41691e6b16ba945711e8c3846df1ec70fdb724 31-May-2014 Ganesh Ganapathi Batta <ganeshg@broadcom.com> Support for reading LE specific controller features

Support for reading LE specific controller features via get adapter properties
API

Change-Id: Ia0b813be45fb826ce27d1d7a31ca41650d7286dd
/system/bt/stack/btm/btm_int.h
ed534e330bf63c72e778fc8daae09ddd63c395b2 20-May-2014 Wei Wang <weiwa@google.com> Revert "Revert "LE: Add RRA offloading and vendor specific PCF commands""

This reverts commit 146bb736bc1cdfd679bbafcf3f33c7af612096b9.

Change-Id: Ie4e6b4d7118a622d04c46623add1073906366edf
/system/bt/stack/btm/btm_int.h
146bb736bc1cdfd679bbafcf3f33c7af612096b9 20-May-2014 Wei Wang <weiwa@google.com> Revert "LE: Add RRA offloading and vendor specific PCF commands"

This reverts commit 15fa3be8ecd576b9ef88e20cf9a6f4bd765cbc6b.

Change-Id: Iaa484508ac664d4cb6c94758c2984d53263a902a
/system/bt/stack/btm/btm_int.h
15fa3be8ecd576b9ef88e20cf9a6f4bd765cbc6b 12-May-2014 Satya Calloji <satyac@broadcom.com> LE: Add RRA offloading and vendor specific PCF commands

Change-Id: Iadca8e73ceaadcd0429421ea70f1b76644e88c42
/system/bt/stack/btm/btm_int.h
6efed2dbe3da9d7ccf636880aa9789320c367edb 09-May-2014 Zhihai Xu <zhihaixu@google.com> Unable to pair and connect A2DP headset with DUT on KWD

this is due to some field type is not defined correctly.
We don't have this problem with old compile option.
recently some compile option change expose this bug.

bug:14489818
Change-Id: Ief48ec7d1312eb588fc344ea0afb153226bf0541
/system/bt/stack/btm/btm_int.h
3fcde2fdaae4d097855243a73c2d0a6be1f0dd0a 03-May-2014 Sharvil Nanavati <sharvil@google.com> Fix data type for rmt_auth_req; it stores an integral value.

This broke pairing in a bunch of ways, most notably the inability
to use Just Works pairing mode. Just Works is used quite heavily
by iOS devices.

http://b/14438257

Change-Id: I4d32b446d0435acfc73987b91dbd1a0bd3b53ec3
/system/bt/stack/btm/btm_int.h
7fa4fba6f59f97df00aff07dbe8fb21b114b3c2c 17-Apr-2014 Ganesh Ganapathi Batta <ganeshg@broadcom.com> Merge BT 4.1 features

The features include:
- LE Peripheral Mode
- Link Layer topology (LE Central & Peripheral Concurrency)
- Dual Mode Topology (Ability to choose LE transport when connecting with
other Dual Mode devices)
- Fast advertising Interval
- Limited Discovery Time Changes
- GAP Authentication and Lost Bond
- Dual Mode Addressing
- Common Profile and Service Error Code
- 32 bit UUIDs

Change-Id: Ic6701da4cf6aaa390ff2c8816b43157f36b7fb42

Conflicts:
stack/btu/btu_hcif.c
/system/bt/stack/btm/btm_int.h
0830ad47f790fea658ddc6fa857fb36880e0c552 22-Feb-2014 Nitin Arora <niarora_qca@codeaurora.org> Allow simultaneous LE Observe and BTM Inquiry/Scan

This patch allows BTM inquiry and LE observe to be launched
and overlap each others' occurance by redirecting results
and handling states accordingly.

CRs-Fixed: 579505

Conflicts:
stack/btm/btm_ble_gap.c
bug 12939764
Change-Id: Ifde73f17f8d40e9ebfff3b49e409591189574ee0
/system/bt/stack/btm/btm_int.h
8b35b3fccc065730e6f0ee1050d3e4528e58ea37 11-Mar-2014 Zhihai Xu <zhihaixu@google.com> support resolve BLE random mac address for both central and peripheral mode.

bug:12990335
Change-Id: Ica42dcf039487b7b01454ce9255f3f6fae2faaaf
/system/bt/stack/btm/btm_int.h
bf9a8aa26988aedbc161d75f2688641ce59dc001 11-Feb-2014 Mike J. Chen <mjchen@google.com> Fix warnings when BLE_INCLUDED is FALSE

Change-Id: I27c8ac6d5410159ed6bbef6aca5bf3b9692b0467
Signed-off-by: Mike J. Chen <mjchen@google.com>
/system/bt/stack/btm/btm_int.h
e68ffb0c2430f02c7e21ebbebdbf76a7e907350e 01-Feb-2014 Mike J. Chen <mjchen@google.com> Change argument to return ptr rather than assign to unused local

There was a warning about local variable assigned but not used.
I believe this was actually an implementation and API problem.
The function is called "btm_sec_find_bonded_dev" and returns
a BOOLEAN about whether the search succeeded or not. I believe
it should also return a pointer to the dev rec if the search
succeeded, but due to an API definition error, it was just
assigning a local rather than returning the pointer ot the rec.

Also add to btm_int.h a function prototype that was missing
and causing a warning about implicit declaration.

Change-Id: Ifcef3afe3acbe12f4c69472fcedd01b268f644dd
Signed-off-by: Mike J. Chen <mjchen@google.com>
/system/bt/stack/btm/btm_int.h
cd9ceb9f48d633b68570e5f70768475c8fe93af1 02-Nov-2013 Zhihai Xu <zhihaixu@google.com> Merge "Unable to connect to a Motorola s705 until Bluetooth was toggled of and back on" into klp-dev
a934f018b6c6a7eda4662a60f2f04828afc3ab77 08-Oct-2013 Zhihai Xu <zhihaixu@google.com> Unable to connect to a Motorola s705 until Bluetooth was toggled of and back on

we should use the same role as the previous connection, if phone walk out of range,
and reconnect back from remote device.
bug:10648781

Change-Id: I6abd77067d26769067ba2fbd45d9e8f75cf7c764
/system/bt/stack/btm/btm_int.h
7f3e42943b834ff0f556cd5c063a896f54d53167 30-Sep-2013 Matthew Xie <mattx@google.com> Interleave br/edr device discovery with BLE device scan for some targets

This change only applies to targets which do not support interleaved scan
in controller.
bug 8508849

Change-Id: Ia99faf92c942b4b33abfde2708eff25ec9cd5468
/system/bt/stack/btm/btm_int.h
9d140a9dc432e457a0437920d5f84c22e3baea0d 12-Apr-2013 Ganesh Ganapathi Batta <ganeshg@broadcom.com> Make host side of Read Local/Remote Extended Features more reliable

Issue Ext feature request only if the local controller supports
the command. Fall back to read remote feature command,
if the extended feature request fails
Bug:8591628

Change-Id: I744d9845c04b30d2dca1fd491fea49616adbb2d7
/system/bt/stack/btm/btm_int.h
3aa60544585b5fb0f35c1165539a4a859fc0f25c 23-Mar-2013 Andre Eisenbach <andre@broadcom.com> Parse LMP features to enable LE support

Only send LE commands if the local Bluetooth radio supports LE.
Improved remote feature parsing by reading extended features. Before
this change, only the first page of the features was parsed.
bug 8332905

Change-Id: I0b90771dcfc453efea157f463b9df006e0178609
/system/bt/stack/btm/btm_int.h
ead3cde4bac0c3e32cd31f149093f004eef8ceeb 06-Feb-2013 Ganesh Ganapathi Batta <ganeshg@broadcom.com> Initial version of BLE support for Bluedroid

Change-Id: I9825a5cef9be2559c34c2a529b211b7d471147cf
/system/bt/stack/btm/btm_int.h
5738f83aeb59361a0a2eda2460113f6dc9194271 13-Dec-2012 The Android Open Source Project <initial-contribution@android.com> Snapshot cdeccf6fdd8c2d494ea2867cb37a025bf8879baf

Change-Id: Ia2de32ccb97a9641462c72363b0a8c4288f4f36d
/system/bt/stack/btm/btm_int.h