OSDN Git Service

android-x86/system-bt.git
8 years agoRaise BTU and HCI thread priorities
Andre Eisenbach [Wed, 7 Oct 2015 18:16:37 +0000 (11:16 -0700)]
Raise BTU and HCI thread priorities

The audio sub-system and audio related tasks run at elevated thread
priorities in order to ensure timely handling of audio packets. This
patch raises the thread priority of lower layer Bluetooth tasks involved
in delivering audio packets to avoid thread pre-emption and subsequent
audio skipping.

Bug: 24570959
Change-Id: I5e19ee4590207df753f7b8bfc22174959722ec2d

8 years agoGKI cleanup - removed PORT_SCHEDULE_LOCK / UNLOCK macros
Pavlin Radoslavov [Mon, 28 Sep 2015 06:27:10 +0000 (23:27 -0700)]
GKI cleanup - removed PORT_SCHEDULE_LOCK / UNLOCK macros

Removed macros PORT_SCHEDULE_LOCK and PORT_SCHEDULE_UNLOCK
and replaced them with direct calls to mutex_global_lock()
and mutex_global_unlock() respectively.

Change-Id: I84a365feec239612b2224f029ae59f260cdb24a4

8 years agoGKI cleanup - moved GKI buffer allocation wrappers to OSI
Pavlin Radoslavov [Mon, 28 Sep 2015 03:59:05 +0000 (20:59 -0700)]
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

8 years agoGKI cleanup - Moved struct TIMER_LIST_ENT to OSI
Pavlin Radoslavov [Mon, 28 Sep 2015 02:39:37 +0000 (19:39 -0700)]
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

8 years agoGKI cleanup - Replaced usage of GKI queue with OSI fixed_queue
Pavlin Radoslavov [Fri, 25 Sep 2015 18:21:15 +0000 (11:21 -0700)]
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

8 years agoGKI cleanup - Moved functions GKI_disable() and GKI_enable() to OSI
Pavlin Radoslavov [Fri, 25 Sep 2015 05:07:53 +0000 (22:07 -0700)]
GKI cleanup - Moved functions GKI_disable() and GKI_enable() to OSI

Added new functions mutex_global_lock() and mutex_global_unlock()
within the OSI module, and replaced GKI_disable() and GKI_enable()
with those functions.

Also, minor cleanup in the gki.h header file.

Change-Id: I5f410e3174541224fcf30f37e1524ef099c25193

8 years agoGKI cleanup - Moved GKI_get_os_tick_count() to OSI
Pavlin Radoslavov [Thu, 24 Sep 2015 03:39:53 +0000 (20:39 -0700)]
GKI cleanup - Moved GKI_get_os_tick_count() to OSI

 * Renamed function GKI_get_os_tick_count() to time_get_os_boottime_ms()
   and moved it to the OSI module: to the new file osi/src/time.c .
   The corresponding header file is osi/include/time.h

 * Added unit tests for function time_get_os_boottime_ms() in file
   osi/test/time_test.cpp

 * Removed "osi/include" from the list of paths to search for include
   files. This is needed, because file name collision of "time.h"
   in osi/include and the system <time.h>

Change-Id: I934be0c8f392150a352947326546bcf8aa070f97

8 years agoDisable opening network debug ports for security reasons
Pavlin Radoslavov [Thu, 24 Sep 2015 20:34:35 +0000 (13:34 -0700)]
Disable opening network debug ports for security reasons

By default, we open up to three TCP ports that are used
for debugging purpose:

 * TCP port 8872 - used for forwarding btsnoop logs at real time
   Note: the port is open only if "Bluetooth HCI snoop log" is enabled
   in the Developer options
 * TCP port 8873 - used for HCI debugging
 * TCP port 8879 - used for debugging the Bluetooth counters

Those ports are disabled by default.
To enable, the following #define should be added at the top of the
corresponding file(s): btcore/src/counter.c hci/src/btsnoop_net.c
hci/src/hci_inject.c

   #define BT_NET_DEBUG TRUE

Bug: 24371736

Change-Id: I5cb43af1a5d29c331eb5ef61a24dccbe95df6f40

8 years agoFix PAN crash due to fd mismatch
Nitin Shivpure [Sun, 6 Sep 2015 09:34:01 +0000 (15:04 +0530)]
Fix PAN crash due to fd mismatch

A case, where tap read thread is always exist, Sometimes
data packets get recieved on older fd, which is not available.
which is causing assert due to fd mismatch in race condition.
when next pan connection is immediately available. If last pan
connection gets disconnected, then tap_read_thread should be
destroyed in btif context to fix this issue.

Bug: 24093456
Change-Id: Ic1053200a7be4c2091d6c394634831ca3fbd61df

8 years agoGKI cleanup - Remove GKI pool related defines
Pavlin Radoslavov [Wed, 23 Sep 2015 21:49:24 +0000 (14:49 -0700)]
GKI cleanup - Remove GKI pool related defines

 * Removed pool ID related defines
 * Updated / renamed / cleanup buffer size related defines
 * Added new #define BT_DEFAULT_BUFFER_SIZE
 * Removed unused defines

Change-Id: Ib1fbf463d1e6fda2c71631347de0c365a37ba5ce

8 years agoGKI cleanup - Eliminate function GKI_get_pool_bufsize()
Pavlin Radoslavov [Wed, 23 Sep 2015 17:08:20 +0000 (10:08 -0700)]
GKI cleanup - Eliminate function GKI_get_pool_bufsize()

Change-Id: I87168157b9bb3e9d315c03b98a10d18b38cce3e1

8 years agoGKI cleanup - Eliminated function GKI_poolcount
Pavlin Radoslavov [Tue, 22 Sep 2015 18:27:30 +0000 (11:27 -0700)]
GKI cleanup - Eliminated function GKI_poolcount

Refactored function l2c_link_adjust_chnl_allocation.
Now the buffer quota computation is done without using the
GKI poll counts.

Change-Id: I669492becc9024c12f3360ea58a06188caa6420a

8 years agoGKI cleanup - Eliminate usage of pool buffers
Pavlin Radoslavov [Fri, 18 Sep 2015 17:51:31 +0000 (10:51 -0700)]
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

8 years agoFix PAN and AV role switch war
tturney [Mon, 21 Sep 2015 17:49:09 +0000 (10:49 -0700)]
Fix PAN and AV role switch war

Bug: 23740164
Change-Id: Ib26a64b624c711443201adc4fde6b041ecb0dde1

8 years agoEnsure thread priority is raised for media task / UIPC
Andre Eisenbach [Sat, 19 Sep 2015 03:13:53 +0000 (20:13 -0700)]
Ensure thread priority is raised for media task / UIPC

Bug: 23978964
Change-Id: I36b6d05bb82eb0283eed3b465038d65890c4c245

8 years agoChange UHID socket to be non-blocking
Andre Eisenbach [Thu, 17 Sep 2015 22:16:20 +0000 (15:16 -0700)]
Change UHID socket to be non-blocking

On some platforms, the logs indicate that the BTU task is stalled by
UHID driver when writing the HID descriptor to the kernel. This patch
converts the UHID socket to non-blocking to avoid stalling the main
BTU task.

Bug: 23978964
Change-Id: I5a7a3e106fb2c967d68f077faedcd4fe62bbd912

8 years agoCheck BR device count before initiating role switch
Nitin Shivpure [Wed, 12 Aug 2015 12:45:11 +0000 (18:15 +0530)]
Check BR device count before initiating role switch

A case where DUT is acting as PANU device on BR/EDR link & also
acting as central on LE link. As LE link & PANU link need not to
be master & it's not a scatter-net scenario, because there is only
a BR link. So checking for BR device count before initiating role
switch to avoid continuous loop of role switches.

Cherry-picked from: https://partner-android-review.googlesource.com/#/c/376058/

Change-Id: I70e4041a71ba965f1f9e25729c3cfd20ae03d6b4
Bug: 23290136

8 years agoGKI cleanup - Eliminated function GKI_delay
Pavlin Radoslavov [Wed, 16 Sep 2015 20:30:26 +0000 (13:30 -0700)]
GKI cleanup - Eliminated function GKI_delay

Removed function GKI_delay from the GKI module, and replaced
it with a local static function inside file btif/src/btif_rc.c - the
only place it is (still) used.

Change-Id: Id8f3f700efd22d6e31c70aa8b1724ffa9afbc631

8 years agoAdd libpower as a dependency to all device targets that include libosi.
Sharvil Nanavati [Wed, 9 Sep 2015 22:56:17 +0000 (15:56 -0700)]
Add libpower as a dependency to all device targets that include libosi.

Bug: 23902077

Change-Id: Icc7119a2b3199310e2210d46f599da00261fdff6

8 years agoAllow BT inquiry while discovery is in progress.
tturney [Tue, 8 Sep 2015 21:42:09 +0000 (14:42 -0700)]
Allow BT inquiry while discovery is in progress.

BT Inquiry is disallowed when service discovery
is in progress. Innitially when GATT discovery
is in progress (crosskey pairing), it resulted
in inquiry requests being rejected. During an
insecure connection like OPP, bonding link key
is not stored. In an earlier patch (b820aec7),
BR/EDR discovery was bypassed if the bonding was
temporary. However, this was not done for LE.
Applying the same logic to LE, resolved the
inquiry issue reported in this bug.

Bug: 23468169
Change-Id: I6111c80a420aeb0bc36a0393eb215c112512d251

8 years agoEliminate recursive calling when handling GATT related errors
Pavlin Radoslavov [Sat, 5 Sep 2015 00:55:09 +0000 (17:55 -0700)]
Eliminate recursive calling when handling GATT related errors

If there are errors when processing GATT related events (e.g.,
configuring the MTU), don't use recursive calls into
bta_gattc_sm_execute(), because it breaks the free-ing of some
of the memory.

Bug: 23756301
Change-Id: I3c685170e868ffbf4e488d2bb5a31904e3f7b39d

8 years agoFix issue where bluesleep idle timer is not started
wang ping [Sat, 5 Sep 2015 17:48:09 +0000 (10:48 -0700)]
Fix issue where bluesleep idle timer is not started

Sometimes allow_device_sleep() is called before wake_assert, this result in transmit_done
does not start idle timer. This is because the "wake_state" does not match while
allow_device_sleep() is called before wake_assert() is called. So start idle timer
anyway when transmit_done is called.

Bug: 23754156
Change-Id: I5437aea0abc4b7f5cf847701e2d0a889c6823fcb

8 years agoFix btwrite timer timeout for Angler (2/2)
tturney [Mon, 31 Aug 2015 22:16:59 +0000 (15:16 -0700)]
Fix btwrite timer timeout for Angler (2/2)

When calculating the appropriate LPM's idle timeout,
the local chip name was NULL. This is fixed by calculating
LMP's idle timeout when the chip is enabling.

Bug: 23248798
Change-Id: I8ee2b28fb4363359e035e242fdcff8a736ee448c

8 years agoImplementation of net_test_bluedroid as a GTest.
Joshua Schwarz [Thu, 27 Aug 2015 21:15:26 +0000 (14:15 -0700)]
Implementation of net_test_bluedroid as a GTest.

Change-Id: If9fc9a26fe58858a107b8ad6ac9f1e757ba07f90

8 years agoLE Multi-Advertising State Change Sub-event Wrong Variable Type
Jacob Lee [Wed, 26 Aug 2015 06:43:59 +0000 (14:43 +0800)]
LE Multi-Advertising State Change Sub-event Wrong Variable Type

Wrong connection handle type in multi-adv event parsing,
causing random address (confirm value) mismatch and pairing failure.

Bug id: 23201007

Change-Id: I13ce231360937e711f61eb0777805b07bcde7074

8 years agoFix incorrect SetConnScanParam function mapping
Sunny Kapdi [Thu, 27 Aug 2015 07:37:31 +0000 (00:37 -0700)]
Fix incorrect SetConnScanParam function mapping

BTA_DM_API_BLE_CONN_SCAN_PARAM_EVT is defined before
BTA_DM_API_BLE_SCAN_PARAM_EVT in the enum but the corresponding
entries in bta_dm_action were inverted. This resulted in incorrect
invocation of set_conn_scan_params while trying to set parameters
for scanning. The call was hence failing here and was not
resulting in setting of the new scan parameters in the Controller
irrespective of the scan mode selected from the App. This would
essentially result in the breakage of ScanSettings.SCAN_MODE_<xx>
Android SDK APIs.

Bug: 23602042
Change-Id: I17e1b14a32250e3ccb7631a67690ec2e0a6bc321

8 years agoEnable clang compilation.
Chih-Hung Hsieh [Thu, 27 Aug 2015 19:07:17 +0000 (12:07 -0700)]
Enable clang compilation.

Files under system/bt/device do not use atomic operation.
Old setting of LOCAL_CLANG is unnecessary.

Other atomic operations in system/bt/bt/core were changed
and osi/include/atomic.h was removed, in
https://android-review.googlesource.com/#/c/166762

Change-Id: I807e1fd1792e801392f40ab92a8990c826a5785a

8 years agoSend current RPA instead of pseudo-address on connect.
Sharvil Nanavati [Mon, 10 Aug 2015 20:00:06 +0000 (13:00 -0700)]
Send current RPA instead of pseudo-address on connect.

Bug: 23079777

Change-Id: If6da80392748cdaad2a4833dd31fe299b62c28e3

8 years agoA2DP audio HAL: implement out_get_presentation_position()
Eric Laurent [Tue, 26 May 2015 22:50:29 +0000 (15:50 -0700)]
A2DP audio HAL: implement out_get_presentation_position()

And complete implementation of out_get_render_position()

Bug: 21199150
Change-Id: I95038ad68433e401b096a0159282a2ae372570e1

8 years agoLoad factory Bluetooth address from system property
Ajay Panicker [Mon, 3 Aug 2015 23:29:31 +0000 (16:29 -0700)]
Load factory Bluetooth address from system property

Implemented a check to grab the ro.boot.btmacaddr property in case the
device fails to receive an address beforehand.

Bug: 22618015
Change-Id: Ie322888e114a732f8e85c81793e3e5e5eacffc7a

8 years agoAdd a SCO routing command to net_hci.
Sharvil Nanavati [Thu, 16 Jul 2015 09:55:27 +0000 (02:55 -0700)]
Add a SCO routing command to net_hci.

This allows us to change the SCO routing parameters at runtime while
debugging / doing device bringup.

Change-Id: I8bafb7c7fb7ad7470d378cd14a7ee4aad63f3b9b

8 years agoFix merge discrepencies and resulting compile errors
Andre Eisenbach [Fri, 22 May 2015 00:07:21 +0000 (17:07 -0700)]
Fix merge discrepencies and resulting compile errors

Change-Id: I29fbec9f668ee9218b90a222801c9ddcb9352017

8 years agoservice/doc: Fixed some post-review comments
Arman Uguray [Tue, 13 Oct 2015 16:04:44 +0000 (09:04 -0700)]
service/doc: Fixed some post-review comments

Change-Id: I62e4f26cc55763f5880922bd06373db47329def9

8 years agoservice: Fix broken UUID advertising
Arman Uguray [Wed, 14 Oct 2015 19:22:27 +0000 (12:22 -0700)]
service: Fix broken UUID advertising

The BTIF API expects a single 128-bit UUID in little-endian form to be
passed for its multi-adv service UUID field. The system service never
did this conversion so UUIDs were never properly advertised. This CL
fixes this.

Bug: 24247700
Change-Id: I541921da85bdabd907bfa9f75fbde7a3477ff593

8 years agoservice/client: Add start-adv -u flag
Arman Uguray [Fri, 9 Oct 2015 19:32:55 +0000 (12:32 -0700)]
service/client: Add start-adv -u flag

Added the -u flag that allows passing a UUID in string representation
(16-bit, 32-bit, and 128-bit) to be advertised as long as all fields
fit inside the data.

Bug: 24247700

Change-Id: I3e572db31b84f1e010ba19ab5a51d00c563bb3b7

8 years agoservice: Improve creating UUIDs from string
Arman Uguray [Wed, 7 Oct 2015 23:09:54 +0000 (16:09 -0700)]
service: Improve creating UUIDs from string

- When UUIDs are initialized from a 128-bit UUID, they are now parsed
  from the canonical UUID string representation.

- Invalid strings now cause the UUID to be marked as invalid, rather than
  causing a crash.

- Input such as "0x180d" is now valid.

- Added the GetShortestRepresentationSize() method to use in determining whether
  a UUID is within Base BT SIG UUID domain.

Bug: 24247700

Change-Id: Id28255ec963bc6da27a8e871598016d41920b688

8 years agoAdd net_admin group capability to bluetoothtbd
Pavlin Radoslavov [Tue, 13 Oct 2015 04:09:44 +0000 (21:09 -0700)]
Add net_admin group capability to bluetoothtbd

The net_admin group capability is needed for accessing the rfkill
device in the kernel.

Change-Id: Ic5c2c2717fbad6428fc75ff00a0a3afcd2c5dec6

8 years agoservice/client: Handle EOF
Arman Uguray [Tue, 13 Oct 2015 15:06:46 +0000 (08:06 -0700)]
service/client: Handle EOF

Added handling for EOF to the REPL so we gracefully exit if
Ctrl+D is pressed.

Change-Id: I706f3f46a7092a30b1e9d83c32805dbefc5180c9

8 years agoservice: Added Binder API documentation
Arman Uguray [Wed, 7 Oct 2015 01:10:15 +0000 (18:10 -0700)]
service: Added Binder API documentation

Added the service/doc directory with documentation for the
currently supported Binder interfaces in AIDL format.

Change-Id: I81bec12b7da7fbee110b1df0ffafcc3dc7d6eec3

8 years agoservice: Create a client library for applications
Arman Uguray [Tue, 6 Oct 2015 22:56:36 +0000 (15:56 -0700)]
service: Create a client library for applications

This CL creates the libbluetooth-client static library that external
code can link against to interact with the Bluetooth daemon using
Binder. To this end, all service/ code that is common to the client
library and the daemon itself have been moved to service/common/bluetooth
and service/common is exported in LOCAL_EXPORT_C_INCLUDE_DIRS.

bluetooth-cli and bt-example-hr-server have been update to demonstrate
how an app should use this library (using library includes).

Bug: 23169160
Change-Id: Ie6841bd6c48846eecec824ff1e80a9971385d1fc

8 years agoAllow parsing of UUID and service data for advertising
Ajay Panicker [Wed, 30 Sep 2015 22:49:47 +0000 (15:49 -0700)]
Allow parsing of UUID and service data for advertising

Added code so that bluetooth advertisement packets will now
parse UUID data and service data. Also added unit tests to
confirm data is being parsed correctly. Also added constants for
the type fields for the different service UUID and service data
types.

Bug: 24247700

Change-Id: I53f5b639adb30e781ef155c8d55004547a26672d

8 years agoservice: Enable all tests for target
Arman Uguray [Tue, 6 Oct 2015 20:08:54 +0000 (13:08 -0700)]
service: Enable all tests for target

Made some changes to the test structure following the instructions
at http://go/brillo/brillo-team/testing:

  - Renamed the existing host and target tests to bluetoothtbd-host_test
    and bluetoothtbd_test respectively.
  - The target suite now includes ALL daemon unit tests + binder tests.
  - Added custom test/main.cpp to set up logging and command-line. Now
    we can run tests with the -v flag to increase log verbosity level.

Bug: 24708686
Change-Id: Ia4ce5d7028ce6cb0efd4a1c51ffebdf3bbe6921e

8 years agoMerge "brillo: run bluetoothtbd with correct permissions"
Marie Janssen [Tue, 6 Oct 2015 22:48:46 +0000 (22:48 +0000)]
Merge "brillo: run bluetoothtbd with correct permissions"

8 years agobrillo: run bluetoothtbd with correct permissions
Marie Janssen [Tue, 6 Oct 2015 17:23:53 +0000 (10:23 -0700)]
brillo: run bluetoothtbd with correct permissions

Adding net_bt_admin group grabs more correct permissions.

Change-Id: I3764e6d242fd79bb78cda620f4ec65f0b732aedd

8 years agoam 2846af52: service: Add missing build includes
Arman Uguray [Tue, 6 Oct 2015 01:26:49 +0000 (01:26 +0000)]
am 2846af52: service: Add missing build includes

* commit '2846af5215215c12ec162b76075769f395e41434':
  service: Add missing build includes

8 years agoservice: Add missing build includes
Arman Uguray [Tue, 6 Oct 2015 01:17:44 +0000 (18:17 -0700)]
service: Add missing build includes

Added missing files to service/Android.mk to fix a build breakage on
master.

Change-Id: Ic6a3e3511fa25cbc8f2c546e46a91f8665d2f654

8 years agoam 1c162dc3: service/example: Complete HR simulation
Arman Uguray [Tue, 6 Oct 2015 00:22:33 +0000 (00:22 +0000)]
am 1c162dc3: service/example: Complete HR simulation

* commit '1c162dc31bad03ee21a93e5afb9c7a572bf21ec7':
  service/example: Complete HR simulation

8 years agoservice/example: Complete HR simulation
Arman Uguray [Wed, 30 Sep 2015 05:30:53 +0000 (22:30 -0700)]
service/example: Complete HR simulation

Added the remaining logic for an example Heart Rate server app.
Also added more annotations throughout the code.

Bug: 24245347
Change-Id: I46184d2585eeb7683efdc5ea7122d0472dd7f05b

8 years agoam cd644e3c: service: Support GattServer notifications/indications
Arman Uguray [Mon, 5 Oct 2015 23:55:34 +0000 (23:55 +0000)]
am cd644e3c: service: Support GattServer notifications/indications

* commit 'cd644e3c54a4321b7626b52531c59f88e24e87be':
  service: Support GattServer notifications/indications

8 years agoam 4ebcbd9e: service: Support GATT server async write requests.
Arman Uguray [Mon, 5 Oct 2015 23:55:33 +0000 (23:55 +0000)]
am 4ebcbd9e: service: Support GATT server async write requests.

* commit '4ebcbd9ede4006500c3ead0685befe0a8e4aadc2':
  service: Support GATT server async write requests.

8 years agoservice: Support GattServer notifications/indications
Arman Uguray [Thu, 1 Oct 2015 23:36:38 +0000 (16:36 -0700)]
service: Support GattServer notifications/indications

Added outgoing notification/indication support to
bluetooth::GattServer and implemented the related Binder API.

Bug: 24245347
Change-Id: I2d5cea90137e5d771f969163591b50aee1ad171c

8 years agoam 514bf608: service: Support GATT server async read requests.
Arman Uguray [Mon, 5 Oct 2015 23:46:35 +0000 (23:46 +0000)]
am 514bf608: service: Support GATT server async read requests.

* commit '514bf6087093375351784b287cb29c5f4603273c':
  service: Support GATT server async read requests.

8 years agoam b10f96fa: service: Add HAL wrappers for read_request_cb and connection_cb
Arman Uguray [Mon, 5 Oct 2015 23:46:34 +0000 (23:46 +0000)]
am b10f96fa: service: Add HAL wrappers for read_request_cb and connection_cb

* commit 'b10f96fa25266b69d0d31af166e93afe14134be7':
  service: Add HAL wrappers for read_request_cb and connection_cb

8 years agoservice: Support GATT server async write requests.
Arman Uguray [Wed, 30 Sep 2015 05:09:46 +0000 (22:09 -0700)]
service: Support GATT server async write requests.

Added support for incoming characteristic/descriptor read requests
to bluetooth::GattServer and implemented the related Binder API.

Bug: 24245347
Change-Id: I18202c3255f0fb8fc5338b1139c375e1439b6568

8 years agoservice: Support GATT server async read requests.
Arman Uguray [Wed, 30 Sep 2015 02:38:03 +0000 (19:38 -0700)]
service: Support GATT server async read requests.

Added support for incoming characteristic/descriptor read requests
to bluetooth::GattServer and implemented the related Binder API.

Bug: 24245347
Change-Id: I88161c5bd3ca9ba5604c00aa4e569b3baf19137c

8 years agoam c61ef610: service: Add helper to util/address_helper
Arman Uguray [Mon, 5 Oct 2015 22:04:37 +0000 (22:04 +0000)]
am c61ef610: service: Add helper to util/address_helper

* commit 'c61ef610feb8858db4917ac7f3d0e847f14c80f8':
  service: Add helper to util/address_helper

8 years agoam e0fe3875: service: Added GATT server Heart Rate example
Arman Uguray [Mon, 5 Oct 2015 22:04:37 +0000 (22:04 +0000)]
am e0fe3875: service: Added GATT server Heart Rate example

* commit 'e0fe387561141e049bb2fc748cacb0b56af4928f':
  service: Added GATT server Heart Rate example

8 years agoservice: Add HAL wrappers for read_request_cb and connection_cb
Arman Uguray [Tue, 29 Sep 2015 00:38:52 +0000 (17:38 -0700)]
service: Add HAL wrappers for read_request_cb and connection_cb

Added HAL wrappers for GATT server callbacks for incoming read
requests, GATT connection state, and the send_response function.

Bug: 24245347
Change-Id: I8605fc6548294f9e09416ca8474cf13619463c40

8 years agoam d9b0552a: service: Implement IBluetoothGattServer.addDescriptor
Arman Uguray [Mon, 5 Oct 2015 18:57:52 +0000 (18:57 +0000)]
am d9b0552a: service: Implement IBluetoothGattServer.addDescriptor

* commit 'd9b0552a7f75737b5c8c60cb87f892b1b9323acf':
  service: Implement IBluetoothGattServer.addDescriptor

8 years agoam 91613743: service: Implement IBluetoothGattServer.addCharacteristic
Arman Uguray [Sat, 3 Oct 2015 00:43:41 +0000 (00:43 +0000)]
am 91613743: service: Implement IBluetoothGattServer.addCharacteristic

* commit '91613743c9db02dbe05d93d2afa163b78068d054':
  service: Implement IBluetoothGattServer.addCharacteristic

8 years agoservice: Add helper to util/address_helper
Arman Uguray [Wed, 30 Sep 2015 02:39:27 +0000 (19:39 -0700)]
service: Add helper to util/address_helper

Added the BdAddrFromString function which populates a bt_bdaddr_t
from a string.

Bug: 24245347
Change-Id: I75f798956a796ba6a972fc31e336a1aff86af148

8 years agoservice: Added GATT server Heart Rate example
Arman Uguray [Sat, 26 Sep 2015 03:29:17 +0000 (20:29 -0700)]
service: Added GATT server Heart Rate example

Added a simple example Heart Rate Service application that
demonstrates how to use the GATT server Binder APIs. The example
currently cannot respond to read/write requests or send
notifications as they are not supported in the API yet.

Bug: 24245347
Change-Id: Id10186a566559c9667adbd99b0484f2c90a422a0

8 years agoservice: Implement IBluetoothGattServer.addDescriptor
Arman Uguray [Sat, 26 Sep 2015 02:31:24 +0000 (19:31 -0700)]
service: Implement IBluetoothGattServer.addDescriptor

Declared and implemented the IBluetoothGattServer.addDescriptor
API.

Bug: 24245347
Change-Id: I7d1e992321c260b9d77521b1c8d7a1e7737b35cc

8 years agoservice: Implement IBluetoothGattServer.addCharacteristic
Arman Uguray [Fri, 25 Sep 2015 05:45:16 +0000 (22:45 -0700)]
service: Implement IBluetoothGattServer.addCharacteristic

Declared and implemented the IBluetoothGattServer.addCharacteristic
Binder API.

Bug: 24245347
Change-Id: I8baaed8d6dbf8ac2209b8fd0c918cade78dcba64

8 years agoam 3bdeebe1: service: Add IBluetoothGattServer service APIs
Arman Uguray [Fri, 2 Oct 2015 22:08:13 +0000 (22:08 +0000)]
am 3bdeebe1: service: Add IBluetoothGattServer service APIs

* commit '3bdeebe14fa2285aaf1bb2eee0a5734538d9048b':
  service: Add IBluetoothGattServer service APIs

8 years agoservice: Add IBluetoothGattServer service APIs
Arman Uguray [Thu, 24 Sep 2015 22:08:53 +0000 (15:08 -0700)]
service: Add IBluetoothGattServer service APIs

Declared and implemented the IBluetoothGattServer
beginServiceDeclaration/endServiceDeclaration APIs and the
IBluetoothGattServerCallback onServiceAdded API.

Bug: 24245347
Change-Id: I586660b586e125263f71d242f42b6e7bdec169c2

8 years agoam ae43de62: service: Fix IBluetoothLowEnergy signatures to return bool
Arman Uguray [Fri, 2 Oct 2015 03:42:08 +0000 (03:42 +0000)]
am ae43de62: service: Fix IBluetoothLowEnergy signatures to return bool

* commit 'ae43de627b9c91e54215d439149c0e01599249c0':
  service: Fix IBluetoothLowEnergy signatures to return bool

8 years agoservice: Fix IBluetoothLowEnergy signatures to return bool
Arman Uguray [Thu, 24 Sep 2015 22:05:21 +0000 (15:05 -0700)]
service: Fix IBluetoothLowEnergy signatures to return bool

Changed the IBluetoothLowEnergy API signatures that can
synchronously fail to return bool to report synchronous errors. Also
fixed a bug with lambda capture by value in advertising API
implementation.

Bug: 24245347
Change-Id: I9ce4bb44d155d74ba38916e2834d7e93bf49301c

8 years agoam f92aeb96: service: Add Parcel utilities for UUID and GATT
Arman Uguray [Fri, 2 Oct 2015 03:19:17 +0000 (03:19 +0000)]
am f92aeb96: service: Add Parcel utilities for UUID and GATT

* commit 'f92aeb96ae4dfe2e8cd7c27ca7b94a03518855cf':
  service: Add Parcel utilities for UUID and GATT

8 years agoam df0b2714: service: Implement adding a service declaration
Arman Uguray [Fri, 2 Oct 2015 03:19:16 +0000 (03:19 +0000)]
am df0b2714: service: Implement adding a service declaration

* commit 'df0b2714553cabc735222ce18a5f018c5a5fa138':
  service: Implement adding a service declaration

8 years agoservice: Add Parcel utilities for UUID and GATT
Arman Uguray [Thu, 24 Sep 2015 02:55:25 +0000 (19:55 -0700)]
service: Add Parcel utilities for UUID and GATT

Added Parcel helpers for UUID and GattIdentifier. Also added the
util::IsAddressValid helper function and unit tests.

Bug: 24245347
Change-Id: I52d7274dd0a8e2806836efc4467eb4d11ac0c7e4

8 years agoam 78a44cdb: service: Add HAL wrappers for adding a service
Arman Uguray [Fri, 2 Oct 2015 03:14:08 +0000 (03:14 +0000)]
am 78a44cdb: service: Add HAL wrappers for adding a service

* commit '78a44cdb25616892087af2c92abd382878c2ccb4':
  service: Add HAL wrappers for adding a service

8 years agoam 80826c9d: service: Add GattIdentifier.
Arman Uguray [Fri, 2 Oct 2015 03:14:06 +0000 (03:14 +0000)]
am 80826c9d: service: Add GattIdentifier.

* commit '80826c9d492b7d6c5d2a14b6e538510b8ce92dc5':
  service: Add GattIdentifier.

8 years agoservice: Implement adding a service declaration
Arman Uguray [Thu, 24 Sep 2015 00:25:54 +0000 (17:25 -0700)]
service: Implement adding a service declaration

This CL implements initiating and starting a GATT service
declaration in GattServer.

Bug: 24245347
Change-Id: I53281d29a052c1890616b6595881108ca0eedec3

8 years agoservice: Add HAL wrappers for adding a service
Arman Uguray [Thu, 24 Sep 2015 00:23:54 +0000 (17:23 -0700)]
service: Add HAL wrappers for adding a service

Added wrappers for HAL functions for adding and starting a service
declaration.

Bug: 24245347
Change-Id: Ie9bd09abb443abdfdc31f3439d563c58066961f2

8 years agoservice: Add GattIdentifier.
Arman Uguray [Wed, 23 Sep 2015 02:04:38 +0000 (19:04 -0700)]
service: Add GattIdentifier.

This CL introduces the GattIdentifier class which servers as an
opaque identifier for GATT API objects/attributes.

Bug: 24245347
Change-Id: I377f53e1ff5d51fa8581756522235d4a90e90233

8 years agoam 7b54b0de: service: Implement IBluetoothGattServer register functions
Arman Uguray [Fri, 2 Oct 2015 02:30:29 +0000 (02:30 +0000)]
am 7b54b0de: service: Implement IBluetoothGattServer register functions

* commit '7b54b0de26de5eb34579304e1ccf94e1d9b77701':
  service: Implement IBluetoothGattServer register functions

8 years agoservice: Implement IBluetoothGattServer register functions
Arman Uguray [Tue, 22 Sep 2015 21:25:45 +0000 (14:25 -0700)]
service: Implement IBluetoothGattServer register functions

This patch implements the IBluetoothGattServer interface
registerServer, unregisterServer, and unregisterAll functions
against bluetooth::GattServer.

Bug: 24245347
Change-Id: Ide114730a20f939a378a6a846161a6800a12c461

8 years agoam 0f2d4897: service: Add new GattServer abstraction
Arman Uguray [Fri, 2 Oct 2015 01:56:40 +0000 (01:56 +0000)]
am 0f2d4897: service: Add new GattServer abstraction

* commit '0f2d4897046f037a9f181f47f3d349a9dd646478':
  service: Add new GattServer abstraction

8 years agoservice: Add new GattServer abstraction
Arman Uguray [Tue, 22 Sep 2015 21:20:42 +0000 (14:20 -0700)]
service: Add new GattServer abstraction

Added bluetooth::GattServer and bluetooth::GattServerFactory,
which conform the BluetoothClientInterface and
BluetoothClientInterfaceFactory interfaces. A GattServer represents
a per-application server instance that was registered with the stack
(a GATT server API "client").

The new code was added to the gatt_server.h|.cpp files, replacing
the old code that was added for cast. The old code has been moved to
the gatt_server_old.h|.cpp files.

Bug: 24245347
Change-Id: I3ca2eb53ab8320c9dba656859a4a89683607bb22

8 years agoam 42c89a0e: service: Fix crash in hal/
Ajay Panicker [Wed, 30 Sep 2015 23:44:32 +0000 (23:44 +0000)]
am 42c89a0e: service: Fix crash in hal/

* commit '42c89a0e5f3e2771681ebd11281d6e3c20341894':
  service: Fix crash in hal/

8 years agoservice: Fix crash in hal/
Ajay Panicker [Wed, 30 Sep 2015 22:49:09 +0000 (15:49 -0700)]
service: Fix crash in hal/

Fixed crash in hal/ interfaces when the Bluetooth library
fails to load.

Bug: 24409298

Change-Id: I8841d4e568756ef976e40335ef4697645563aebc

8 years agoam ed7d0e3c: service: build unit tests on non-Linux hosts
Scott James Remnant [Mon, 28 Sep 2015 21:49:10 +0000 (21:49 +0000)]
am ed7d0e3c: service: build unit tests on non-Linux hosts

* commit 'ed7d0e3cea7ff7a66e9f13fffd5de554c425c7bf':
  service: build unit tests on non-Linux hosts

8 years agoam e415c050: Rename IPCHandlerUnix to IPCHandlerLinux
Scott James Remnant [Mon, 28 Sep 2015 21:49:10 +0000 (21:49 +0000)]
am e415c050: Rename IPCHandlerUnix to IPCHandlerLinux

* commit 'e415c050edbb2710e8807dd2602c851412953268':
  Rename IPCHandlerUnix to IPCHandlerLinux

8 years agoservice: build unit tests on non-Linux hosts
Scott James Remnant [Wed, 23 Sep 2015 20:11:03 +0000 (13:11 -0700)]
service: build unit tests on non-Linux hosts

Use a stub for the Linux-specific IPC on non-Linux hosts.

BUG=24306825

Change-Id: I038c17ad43695be88399617687a1c3b77946daae

8 years agoRename IPCHandlerUnix to IPCHandlerLinux
Scott James Remnant [Wed, 23 Sep 2015 17:52:07 +0000 (10:52 -0700)]
Rename IPCHandlerUnix to IPCHandlerLinux

Since it relies on the Linux-specific sequential packet socket type,
rename the "Unix" IPC Handler to "Linux".

Change-Id: I04c4d6d3f73061099ebffb1ee3adfd0a20430dd7

8 years agoam 9e520536: service: Add server support to BluetoothGattInterface
Arman Uguray [Sat, 26 Sep 2015 03:53:37 +0000 (03:53 +0000)]
am 9e520536: service: Add server support to BluetoothGattInterface

* commit '9e5205368d61adf11e75c9e2bd9f6ff26b375bac':
  service: Add server support to BluetoothGattInterface

8 years agoam 4624e1a6: service: Add IBluetoothGattServer stubs
Arman Uguray [Sat, 26 Sep 2015 03:53:37 +0000 (03:53 +0000)]
am 4624e1a6: service: Add IBluetoothGattServer stubs

* commit '4624e1a6d25a838dad2e72001e340dd77d68179e':
  service: Add IBluetoothGattServer stubs

8 years agoservice: Add server support to BluetoothGattInterface
Arman Uguray [Tue, 22 Sep 2015 21:12:50 +0000 (14:12 -0700)]
service: Add server support to BluetoothGattInterface

Added HAL GATT server interface wrappers to
hal::BluetoothGattInterface. Extended the fake implementation to
allow mocking server calls.

Bug: 24245347
Change-Id: Ic3436b8a82ecd93fed3b61579662fe776eebef58

8 years agoservice: Add IBluetoothGattServer stubs
Arman Uguray [Mon, 21 Sep 2015 21:47:19 +0000 (14:47 -0700)]
service: Add IBluetoothGattServer stubs

Added the IBluetoothGattServer and IBluetoothGattServerCallback
interface definitions with stub daemon implementation. Added
IBluetooth.getGattServerInterface to obtain a GATT server
interface handle.

Bug: 24245347
Change-Id: I2d361a55d2b21e270dc74484e678985df3d30306

8 years agoam 08f80ebd: service: Move client registration into base class
Arman Uguray [Sat, 26 Sep 2015 03:19:47 +0000 (03:19 +0000)]
am 08f80ebd: service: Move client registration into base class

* commit '08f80ebd5c714364cb76cc4e4a93454b42ed5669':
  service: Move client registration into base class

8 years agoam 2fea18e5: service: Add missing include
Arman Uguray [Thu, 24 Sep 2015 06:58:58 +0000 (06:58 +0000)]
am 2fea18e5: service: Add missing include

* commit '2fea18e501ab98df3254a08fca981513bf098274':
  service: Add missing include

8 years agoservice: Move client registration into base class
Arman Uguray [Mon, 21 Sep 2015 18:17:07 +0000 (11:17 -0700)]
service: Move client registration into base class

This CL introduces InterfaceWithClientsBase, which is an abstract class
that implements common client registration logic, which will be reused
for Binder interfaces such as IBluetoothGattClient and
IBluetoothGattServer. This also introduces BluetoothClientInstance, so
that per-application API client instances (and their factories) conform
to a common interface.

Bug: 24245347
Change-Id: Ia4b464fa85f7a33c631bf63342631fce8d155b4a

8 years agoservice: Add missing include
Arman Uguray [Thu, 24 Sep 2015 06:43:18 +0000 (23:43 -0700)]
service: Add missing include

Added missing "#include <atomic>" line to fix build breakages on
some build flavors.

Change-Id: I611bb63e84787217ff4bf774ceebc09ffd3c0476

8 years agoam d19bc045: service/client: Add start-adv and stop-adv
Arman Uguray [Thu, 24 Sep 2015 02:15:36 +0000 (02:15 +0000)]
am d19bc045: service/client: Add start-adv and stop-adv

* commit 'd19bc0457a9b6519acd6a79c3ac7de653894f5ec':
  service/client: Add start-adv and stop-adv

8 years agoam 1a3e9aba: service: Implement IBluetoothLowEnergy advertising
Arman Uguray [Thu, 24 Sep 2015 02:15:36 +0000 (02:15 +0000)]
am 1a3e9aba: service: Implement IBluetoothLowEnergy advertising

* commit '1a3e9aba73551eeecdfeece04f1c39a00880d56c':
  service: Implement IBluetoothLowEnergy advertising

8 years agoam 12338405: service: Add advertising support to LowEnergyClient
Arman Uguray [Thu, 24 Sep 2015 02:15:35 +0000 (02:15 +0000)]
am 12338405: service: Add advertising support to LowEnergyClient

* commit '12338405e0d8d70573e650560ccc8e1ce7d8e8cd':
  service: Add advertising support to LowEnergyClient

8 years agoam b2b1ecd3: service: Fix bug in RemoteCallbackMap
Arman Uguray [Thu, 24 Sep 2015 02:15:34 +0000 (02:15 +0000)]
am b2b1ecd3: service: Fix bug in RemoteCallbackMap

* commit 'b2b1ecd3c282412773f5ca70ee2798542bc2920f':
  service: Fix bug in RemoteCallbackMap

8 years agoam 909b7e66: service: Add various LE advertising constants
Arman Uguray [Thu, 24 Sep 2015 02:15:33 +0000 (02:15 +0000)]
am 909b7e66: service: Add various LE advertising constants

* commit '909b7e6681101eb5e2d56209993134932284b50e':
  service: Add various LE advertising constants

8 years agoservice/client: Add start-adv and stop-adv
Arman Uguray [Thu, 17 Sep 2015 01:04:32 +0000 (18:04 -0700)]
service/client: Add start-adv and stop-adv

Added the start-adv and stop-adv commands to FCLI for testing
the IBluetoothLowEnergy advertising APIs.

Bug: 23793954
Change-Id: I023441e4db4a50608b4f9a90bf3365c1dab8d0d1