diff --git a/android/hal-gatt.c b/android/hal-gatt.c
index 51caf8d..b4512d4 100644
--- a/android/hal-gatt.c
+++ b/android/hal-gatt.c
{
struct hal_cmd_gatt_client_unregister cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.client_if = client_if;
return hal_ipc_cmd(HAL_SERVICE_ID_GATT, HAL_OP_GATT_CLIENT_UNREGISTER,
{
struct hal_cmd_gatt_client_scan cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.client_if = client_if;
cmd.start = start;
{
struct hal_cmd_gatt_client_connect cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.client_if = client_if;
cmd.is_direct = is_direct;
{
struct hal_cmd_gatt_client_disconnect cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.client_if = client_if;
cmd.conn_id = conn_id;
{
struct hal_cmd_gatt_client_listen cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.client_if = client_if;
cmd.start = start;
{
struct hal_cmd_gatt_client_refresh cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.client_if = client_if;
memcpy(cmd.bdaddr, bd_addr, sizeof(*bd_addr));
struct hal_cmd_gatt_client_search_service *cmd = (void *) buf;
size_t len = sizeof(*cmd);
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
memset(cmd, 0, sizeof(*cmd));
cmd->conn_id = conn_id;
struct hal_cmd_gatt_client_get_included_service *cmd = (void *) buf;
size_t len = sizeof(*cmd);
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd->conn_id = conn_id;
srvc_id_to_hal(&cmd->srvc_id[0], srvc_id);
struct hal_cmd_gatt_client_get_characteristic *cmd = (void *) buf;
size_t len = sizeof(*cmd);
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd->conn_id = conn_id;
srvc_id_to_hal(&cmd->srvc_id, srvc_id);
struct hal_cmd_gatt_client_get_descriptor *cmd = (void *) buf;
size_t len = sizeof(*cmd);
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd->conn_id = conn_id;
srvc_id_to_hal(&cmd->srvc_id, srvc_id);
{
struct hal_cmd_gatt_client_read_characteristic cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.conn_id = conn_id;
cmd.auth_req = auth_req;
struct hal_cmd_gatt_client_write_characteristic *cmd = (void *) buf;
size_t cmd_len = sizeof(*cmd) + len;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd->conn_id = conn_id;
cmd->write_type = write_type;
cmd->len = len;
{
struct hal_cmd_gatt_client_read_descriptor cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.conn_id = conn_id;
cmd.auth_req = auth_req;
struct hal_cmd_gatt_client_write_descriptor *cmd = (void *) buf;
size_t cmd_len = sizeof(*cmd) + len;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd->conn_id = conn_id;
cmd->write_type = write_type;
cmd->len = len;
{
struct hal_cmd_gatt_client_execute_write cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.conn_id = conn_id;
cmd.execute = execute;
{
struct hal_cmd_gatt_client_register_for_notification cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.client_if = client_if;
memcpy(cmd.bdaddr, bd_addr, sizeof(*bd_addr));
{
struct hal_cmd_gatt_client_deregister_for_notification cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.client_if = client_if;
memcpy(cmd.bdaddr, bd_addr, sizeof(*bd_addr));
{
struct hal_cmd_gatt_client_read_remote_rssi cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.client_if = client_if;
memcpy(cmd.bdaddr, bd_addr, sizeof(*bd_addr));
size_t resp_len = sizeof(dev_type);
bt_status_t status;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
memcpy(cmd.bdaddr, bd_addr, sizeof(*bd_addr));
status = hal_ipc_cmd(HAL_SERVICE_ID_GATT,
struct hal_cmd_gatt_client_set_adv_data *cmd = (void *) buf;
size_t cmd_len = sizeof(*cmd) + manufacturer_len;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd->server_if = server_if;
cmd->set_scan_rsp = set_scan_rsp;
cmd->include_name = include_name;
{
struct hal_cmd_gatt_client_test_command cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.command = command;
memcpy(cmd.bda1, params->bda1, sizeof(*params->bda1));
{
struct hal_cmd_gatt_server_register cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
memcpy(cmd.uuid, uuid, sizeof(*uuid));
return hal_ipc_cmd(HAL_SERVICE_ID_GATT, HAL_OP_GATT_SERVER_REGISTER,
{
struct hal_cmd_gatt_server_unregister cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.server_if = server_if;
return hal_ipc_cmd(HAL_SERVICE_ID_GATT, HAL_OP_GATT_SERVER_UNREGISTER,
{
struct hal_cmd_gatt_server_connect cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.server_if = server_if;
cmd.is_direct = is_direct;
{
struct hal_cmd_gatt_server_disconnect cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.server_if = server_if;
cmd.conn_id = conn_id;
{
struct hal_cmd_gatt_server_add_service cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.server_if = server_if;
cmd.num_handles = num_handles;
{
struct hal_cmd_gatt_server_add_inc_service cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.server_if = server_if;
cmd.service_handle = service_handle;
cmd.included_handle = included_handle;
{
struct hal_cmd_gatt_server_add_characteristic cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.server_if = server_if;
cmd.service_handle = service_handle;
cmd.properties = properties;
{
struct hal_cmd_gatt_server_add_descriptor cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.server_if = server_if;
cmd.service_handle = service_handle;
cmd.permissions = permissions;
{
struct hal_cmd_gatt_server_start_service cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.server_if = server_if;
cmd.service_handle = service_handle;
cmd.transport = transport;
{
struct hal_cmd_gatt_server_stop_service cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.server_if = server_if;
cmd.service_handle = service_handle;
{
struct hal_cmd_gatt_server_delete_service cmd;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd.server_if = server_if;
cmd.service_handle = service_handle;
struct hal_cmd_gatt_server_send_indication *cmd = (void *) buf;
size_t cmd_len = sizeof(*cmd) + len;
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd->server_if = server_if;
cmd->attribute_handle = attribute_handle;
cmd->conn_id = conn_id;
struct hal_cmd_gatt_server_send_response *cmd = (void *) buf;
size_t cmd_len = sizeof(*cmd) + sizeof(*response);
+ if (!interface_ready())
+ return BT_STATUS_NOT_READY;
+
cmd->conn_id = conn_id;
cmd->trans_id = trans_id;
cmd->status = status;