a1d67727877b7be012f21ce5e46c16f3889b68ec |
|
15-Jun-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Merge "Use UINT16 for GATT attribute id field" into nyc-dev
|
e6b1cb43525e27f95de85dc43150d7368b9d4c35 |
|
14-Jun-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Use UINT16 for GATT attribute id field Id field is equal to attribute handle, so it must be 16bits. Otherwise only piece of GATT database can be used. Bug: 29253825 Change-Id: Ia88e3ad3eb96ca8e97349aa5e852e66c57072b49
/system/bt/bta/gatt/bta_gattc_cache.c
|
552e630435a68d8f51d458dccf8697c625cf1510 |
|
14-Jun-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Fix missing GATT Characteristic from last service GATT Service is contained between start and end handle. If characteristic definition is at end handle, and it's value definition is after end handle, it will not be properly discovered. That's because we use value_handle instead of attribute_handle to identify characteristics. As a workaround, increase service boundary if value is defined after it's definition. Bug: 29253825 Change-Id: Ib145aea4f5cf38a1fbb977c301136e16f8f900f7
/system/bt/bta/gatt/bta_gattc_cache.c
|
26f8828cdb5f02b0b01bafaccd4ad0b0ba9d57ab |
|
17-Mar-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Use handles to identify GATT attributes (1/4) Bug: 27778668 Change-Id: Id7454450c1ce2164001a1f9ca0b91f18d84e3fd6
/system/bt/bta/gatt/bta_gattc_cache.c
|
36b67072266468e4b4becc76c0ddbff6154bb12c |
|
15-Mar-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Restructure GATTC This patch changes how GATTC is structured. Up till now, it contained tBTA_GATTC_CACHE and tBTA_GATTC_CACHE_ATTR. Those structures were so ugly, someone hide them inside internal header, to make sure noone would ever access them from outside GATTC. They are now replaced with: tBTA_GATTC_SERVICE, tBTA_GATTC_CHARACTERISTIC, tBTA_GATTC_DESCRIPTOR and tBTA_GATTC_INCLUDED_SVC. Those looks much better, and were made globally avaliable. Thanks to way they're build, we no longer need set of access methods, which were also very ugly: BTA_GATTC_GetFirstChar BTA_GATTC_GetNextChar BTA_GATTC_GetFirstIncludedService etc. This patch breaks HID, DO NOT SUBMIT without HID refactor. Bug: 27455533 Change-Id: Ic42cfff175e0cc1a0d8e1a1216e2b4b756cbf77d
/system/bt/bta/gatt/bta_gattc_cache.c
|
ac4ee3a4ecae72fbc992c17efd733e373ad56daf |
|
04-Mar-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Remove bta_gattc_id2handle Now that the instance id is equal to handle, we no longer need this mapping function. Bug: 27455533 Change-Id: I6760f8fc81460df8520d4ebf1899ed256ce5ad1e
/system/bt/bta/gatt/bta_gattc_cache.c
|
29feba05f64b8f3bd9897ef6ed1cadc837ee0f77 |
|
02-Mar-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Use attribute handle instead of id in GATT cache Currently we generate an id for each GATT attribute. Those ids are used to differentiate between attributes that have the same UUID. We need to get rid of those ids because it won't work with partial GATT database updates due to "service change" notifications. Instead, attribute handles, which are unique across the whole GATT database will be used. This is first patch in series to achieve that. It gets rid of id generation, and just assigns handle in place of ids inside of gatt cache. Upcoming patches will change the GATT cache API and eventually get rid of "id" completly. Bug: 27455533 Change-Id: I74c10872ecc223329b8ac7fef4085963bf272624
/system/bt/bta/gatt/bta_gattc_cache.c
|
56658ccb40957a296f6600bdfed529d3f6e264a7 |
|
06-Mar-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
GATT cache storage refactoring Currently when storing GATT cache into file, we save it piece after piece, max 10 elements at once. This is not necessary, we have enough space to just save all at once. Also the logic doesn't need to be so complicated - no need to state machine for such simple task. Bug: 27455533 Change-Id: I82923dbedfb317835e45e13e0ea28151eb524d37
/system/bt/bta/gatt/bta_gattc_cache.c
|
390749a4346248314b6b4d20aaea355c78e444ef |
|
03-Mar-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Simplify UUID handling in GATT cache Bug: 27455533 Change-Id: I653b563d3b3c233ffe31b0a35d396a66db363459
/system/bt/bta/gatt/bta_gattc_cache.c
|
12265e39b511f28425236b0dc97c78e7d837304b |
|
13-Feb-2016 |
Pavlin Radoslavov <pavlin@google.com> |
Fix C/C++ compiler generated warnings * Remove unused functions: -Wno-unused-function * Fix logical operations that are missing parentheses: -Wno-logical-not-parentheses, -Wno-parentheses * Add missing braces in initializers: -Wno-missing-braces * Remove unused variables: -Wno-unused-variable * Fix printf()-like formatting issues: -Wno-format * Avoid using unitialized variables: -Wno-maybe-uninitialized, -Wno-uninitialized * Fix a bug inside bta_gattc_get_gatt_db_impl() when the processed GATT DB attribute type is unknown. * Fix warnings about missing field initializers: -Wno-missing-field-initializers * Re-implement macro COMPILE_ASSERT(COND) to fix a compilation warning: -Wno-non-literal-null-conversion * Fix sign mismatch comparison warnings: -Wno-sign-compare * Fix warnings related to enum conversion: -Wno-enum-conversion * Fix warnings related to incompatible pointer types: -Wno-incompatible-pointer-types * Fix warnings related to enum conversion: -Wno-enum-conversion Bug: 26879229 Change-Id: I522931fe156aeab23ae841051a9e25ceab00b1c2
/system/bt/bta/gatt/bta_gattc_cache.c
|
0e36a4d1617da1c5ec713c85a5bef4f6af89148e |
|
12-Feb-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Fix discovery status handling This typo was introduced in commit 48db2d25 3years ago. This cause unnecesary purge of cache and rediscovery even though discovery was successfull. Change-Id: I828e148ad489af1e231d33d7807bbe0e46f445c5
/system/bt/bta/gatt/bta_gattc_cache.c
|
12339a801146d45f8aab010b38c099082bfc80e5 |
|
11-Feb-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Add handle range to BTA_GATTC_GetGattDb Change-Id: Iaf0280853278a4f28dde5b952b646096cfb12d97
/system/bt/bta/gatt/bta_gattc_cache.c
|
5fe6f0cf6b223e3ed6be4912d55b3ed5b41ce0cd |
|
06-Feb-2016 |
Pavlin Radoslavov <pavlin@google.com> |
Removed checks for NULL returns after osi_calloc() / osi_malloc() Removed explicit checks for NULL pointer returns after calls to osi_calloc() and osi_malloc(), because those are not needed. If the memory allocation fails, osi_calloc() and osi_malloc() will trigger an assert. Bug: 27048759 Change-Id: I2791eb2f69c08f991f8fcdef10e101a41568cd95
/system/bt/bta/gatt/bta_gattc_cache.c
|
abd70abb5e42c9431df94fe9d2c4a78a0d8d9af9 |
|
05-Feb-2016 |
Pavlin Radoslavov <pavlin@google.com> |
Replaced osi_getbuf()/osi_freebuf() with osi_malloc()/osi_free() Removed the alternative buffer allocation osi_getbuf() / osi_freebuf() and use instead osi_malloc() / osi_free(). Correspondingly, replaced usage of osi_freebuf_and_reset() with osi_free_and_reset(). Bug: 24914560 Change-Id: I7a9599ba7fa900321f087da684428133eb0ddd6b
/system/bt/bta/gatt/bta_gattc_cache.c
|
9df3192b94a186207976ecc579d390f3cfd547c6 |
|
05-Feb-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Use dynamic memory for keeping GATT cache Change-Id: I60674c47246d8fe2094fe78ce31b752fa2acb89e
/system/bt/bta/gatt/bta_gattc_cache.c
|
8a01f77a46186e04123b78ace6f79f57041a2e5c |
|
05-Feb-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Remove unused return value of bta_gattc_alloc_cache_buf Change-Id: I624aeaa0c562b5c7404ad37411ad209beac3a5e1
/system/bt/bta/gatt/bta_gattc_cache.c
|
20524d393e8b3bea4c573f7980cd843500b0e6a4 |
|
03-Feb-2016 |
Pavlin Radoslavov <pavlin@google.com> |
Refactor usage of osi_free() and osi_freebuf() * Allow to call osi_freebuf(ptr) on NULL pointers. This simplifies the code: a notable number of "if (foo != NULL)" checks are removed. * Add new function osi_free_and_reset(p_ptr) that frees the buffer, and explicitly resets the pointer to NULL. This prevents unintended usage of free memory. * Add corresponding function osi_freebuf_and_reset(p_ptr) * Minor cleanup around usages of osi_free() and osi_freebuf() Also: * Removed unused function btif_gattc_cleanup() * Replaced usage of the following functions with osi_freebuf_and_reset() - mca_free_buf() - utl_freebuf() - btif_hl_free_buf() * Replaced usage of rc_supported_event_free() with osi_freebuf() * Replaced usage of btif_hl_get_buf() with osi_getbuf() * Eliminate some of the osi_get_buf_size() calls Bug: 22948224 Change-Id: Ife860658b26274da6f228d7353cb0f1531587337
/system/bt/bta/gatt/bta_gattc_cache.c
|
96b9707fd07ce3596b5200dd64b2ebf1aed9efea |
|
29-Jan-2016 |
Andre Eisenbach <eisenbach@google.com> |
Fix build error in bta_gattc_cache.c Change-Id: I41e95f880bd37647278ad9dba4e12c2b54db273b
/system/bt/bta/gatt/bta_gattc_cache.c
|
533fdbf46fb623aefbe4d0107b5cccd41aec097a |
|
22-Jan-2016 |
Jakub Pawlowski <jpawlowski@google.com> |
Add new HAL method get_gatt_db Currently getting GATT database from HAL requires multiple calls and iterating over each element. This is long, unnecessary complicated process, error prone process. This patch adds new method, get_gatt_db that can be used to grab whole GATT database for remote device just in one call. Change-Id: Ib5d88fbc28d09d5c191e7c0152ca61d6a34f7a81
/system/bt/bta/gatt/bta_gattc_cache.c
|
1b3ac367492750439ebecd393af1799242767ef3 |
|
02-Dec-2015 |
Jakub Pawlowski <jpawlowski@google.com> |
Fix race condition during simultaneous SDP Right now sdp_conn_id and p_sdp_db are stored in static global bta_gattc_cb between call to bta_gattc_sdp_service_disc and bta_gattc_sdp_callback. If multiple instances of SDP discovery are running simultaneously, they override this field, and free same memory multiple times. This patch fixes that by making sure sdp_conn_id and p_sdp_db are unique for each SDP discovery. Bug: 25801255 Change-Id: I8ec52229e906e6b8748db7504f77e1f4d7006fbe
/system/bt/bta/gatt/bta_gattc_cache.c
|
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/bta/gatt/bta_gattc_cache.c
|
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/bta/gatt/bta_gattc_cache.c
|
2e3d006b96eafb0651fe7f78d28250faf89405de |
|
18-Sep-2015 |
Pavlin Radoslavov <pavlin@google.com> |
GKI cleanup - Eliminate usage of pool buffers * Replace usage of function GKI_getpoolbuf() with GKI_getbuf() * Remove usage of function GKI_poolutilization() * Remove usage of function GKI_poolfreecount() Change-Id: Ide938192b878bbfb4912642c903fce548f2b5368
/system/bt/bta/gatt/bta_gattc_cache.c
|
49120dc867c7818511b5afec461dfc97d17eef58 |
|
08-Jul-2015 |
Marie Janssen <jamuraa@google.com> |
build: Fix LOG_TAG define breakage, macro usage Fixes build breakages related to r.android.com/156982 Change-Id: Ib1143c41fe05a17c296226998afdb41a8cb6294a
/system/bt/bta/gatt/bta_gattc_cache.c
|
db554581079863974af8e1289646f5deea6fc044 |
|
26-Jun-2015 |
Marie Janssen <jamuraa@google.com> |
build: Update osi log functions, use consistently Update the LOG_* functions to take a tag argument which makes them more consistent with the Android Log.*(TAG, s) common syntax and removes some #define-dependency with osi/include/log.h. Also update to never use Android log functions directly. Also contains minor cleanup of some header includes. Bug: 21569831 Change-Id: If07385cafbea062232ecdbc7c673f908d5ef8921
/system/bt/bta/gatt/bta_gattc_cache.c
|
2f199b12dd1ae256973cd419ff2315beb8dd4546 |
|
01-May-2015 |
Nitin Arora <niarora@codeaurora.org> |
Fix allocation of instance ID for LE services Defers the incrementing of the total services count after the allocation of the instance ID for the service. If the increment is not deferred, the current service is compared with its own instance in the cached service list while allocating the instance ID. This leads to an incorrect instance ID being allocated for the service. Change-Id: I547888ae0f7015cfdb9b1a995373523699642a6c
/system/bt/bta/gatt/bta_gattc_cache.c
|
f8027005333c88a2f097cfd70d15c3d54c7764ae |
|
12-Mar-2015 |
Chris Manton <cmanton@google.com> |
Demote, cleanup and extend observed logging
/system/bt/bta/gatt/bta_gattc_cache.c
|
fe7216ca12f91baae733e7c93063db73121af308 |
|
06-May-2014 |
Chris Manton <cmanton@google.com> |
Enforce GKI API buffer usage Also add another API GKI_queue_length(BUFFER_Q *)
/system/bt/bta/gatt/bta_gattc_cache.c
|
c78665ffc09be2adf3ba5478911a3f35f1163e81 |
|
11-Dec-2014 |
Prerepa Viswanadham <dham@google.com> |
Increase SDP buffer from 750 bytes to 4096 bytes Bug 18670169 Change-Id: Ida1a6a57dcce94339a190974af4565f14157cdc2
/system/bt/bta/gatt/bta_gattc_cache.c
|
e8c3d75b75493911ebf0f99c83676359657178f7 |
|
04-May-2014 |
Sharvil Nanavati <sharvil@google.com> |
Logging cleanup: BTIF and APPL. Change-Id: I5b1214642bbb4b9aecc0fd2c899a6ec2c9793286
/system/bt/bta/gatt/bta_gattc_cache.c
|
82d0a118de082b95cc41b63de8fcd79c9f1f0831 |
|
06-Jun-2014 |
Sharvil Nanavati <sharvil@google.com> |
Eliminate dead code: remove GKI_sched* from the codebase. Change-Id: I607bd3bf88ef8847c8a7e984a54eabedd4fb7516
/system/bt/bta/gatt/bta_gattc_cache.c
|
8fe58875ce67c6e1099e7ba2339dcd2b979491b0 |
|
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
/system/bt/bta/gatt/bta_gattc_cache.c
|
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/bta/gatt/bta_gattc_cache.c
|
5cd8bff2dd0337cb52bf48f312e3d2d55a8882fb |
|
01-Feb-2014 |
Mike J. Chen <mjchen@google.com> |
Major warnings cleanup Mostly fixing unused parameter warnings. A few other warnings also fixed like possible use of unitialized variables (no real issue found, just compiler couldn't follow the path), signed vs unsigned warning. Also fixed some typos, indent issues, removal of dead code, etc. Change-Id: I95eb887aefc4d559d7921f71a0af5f3bfb01ac01 Signed-off-by: Mike J. Chen <mjchen@google.com>
/system/bt/bta/gatt/bta_gattc_cache.c
|
6975b4d711142b885af479721cada448952c6b41 |
|
06-Aug-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE: UPF 45 bug fixes This change fixes the following issues: - Second GATT-over-BR/EDR channel cannot be established when there already is an existing GATT-over-BR/EDR channel - If encryption fails for an LE connection due to a missing key, the security state is not being cleared and blocks all further security processing - When DM discovery of an LE Peripheral device fails with a connection timeout, no further discovery requests can be made - GATT service discovery can get into endless loop when duplicate descriptor definitions are found on the remote device - When GATT over BR/EDR fails, BTA does not give a connection callback to the application initiating the connection - BR/EDR connection to remote platform does not generate API callbacks - Stack crash discovered during UPF after remote disconnects - The host is sending HCI disconnect to invalid HCI handle when SMP fails because of a connection timeout - Possible race condition: If a disconnect is immediately followed by a connection complete, the connection complete cannot be processed in the BTA GATT state machine - Write Complete event is not triggered for Prepare Write requests Change-Id: I539cdedd68007818ff4f0d0213cee1c913f72d0f Conflicts: bta/gatt/bta_gatts_act.c
/system/bt/bta/gatt/bta_gattc_cache.c
|
781b5adee20e222ef87b56b72bfcd3f64013e4a0 |
|
28-May-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE: Integrate power table for GATT No power table exists for GATT, causing the device to never enter sniff mode while using GATT over BR/EDR. Change-Id: I0db539c1814a61af620f3dba560da64481291beb
/system/bt/bta/gatt/bta_gattc_cache.c
|
48db2d254997a69f8709e94c55607732e7772436 |
|
13-Feb-2013 |
Andre Eisenbach <andre@broadcom.com> |
LE fixes - Null pointer exception check added. An exception occurs at the memcpy in the bta_dm_gatt_disc_result. User removed the battery on Ble device(Smart Nudge) during bonding and connection. This exception occurs sometimes. I used Broadcom LE Explorer to reproduce it. - Fixed disconnect and encryption behaviour Disconnect will now disconnect the physical link immediately when no other application is interested in the device anymore. Also, the connection to a remote device is now dropped if encryption fails. - Deep copy buffers when transfering context Certain BTA server event types require a deep copy of the request data buffers when transfering context. Shallow copy of the pointers involved may cause a crash when overlapping read and write requests are received. - 2nd encryption has not started need to send encryption complete callback when the encryption fail due to link drop without a complete event. Otherwise BTA layer would not be able to clean up the status, and no further encryption can be started. Change-Id: If93e0a188e8779830c8991e4193b96dc95e23e5d
/system/bt/bta/gatt/bta_gattc_cache.c
|
ead3cde4bac0c3e32cd31f149093f004eef8ceeb |
|
06-Feb-2013 |
Ganesh Ganapathi Batta <ganeshg@broadcom.com> |
Initial version of BLE support for Bluedroid Change-Id: I9825a5cef9be2559c34c2a529b211b7d471147cf
/system/bt/bta/gatt/bta_gattc_cache.c
|
5738f83aeb59361a0a2eda2460113f6dc9194271 |
|
13-Dec-2012 |
The Android Open Source Project <initial-contribution@android.com> |
Snapshot cdeccf6fdd8c2d494ea2867cb37a025bf8879baf Change-Id: Ia2de32ccb97a9641462c72363b0a8c4288f4f36d
/system/bt/bta/gatt/bta_gattc_cache.c
|