Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1473259a authored by Ian Coolidge's avatar Ian Coolidge Committed by Gerrit Code Review
Browse files

Merge "Improve adv_data transfer between contexts."

parents c7a2cb56 2bd8bd4c
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -4804,7 +4804,7 @@ void bta_dm_ble_set_adv_config (tBTA_DM_MSG *p_data)
    tBTA_STATUS status = BTA_FAILURE;

    if (BTM_BleWriteAdvData(p_data->ble_set_adv_data.data_mask,
                        (tBTM_BLE_ADV_DATA *)p_data->ble_set_adv_data.p_adv_cfg) == BTM_SUCCESS)
                        (tBTM_BLE_ADV_DATA *)&p_data->ble_set_adv_data.adv_cfg) == BTM_SUCCESS)
    {
        status = BTA_SUCCESS;
    }
@@ -4827,7 +4827,7 @@ void bta_dm_ble_set_scan_rsp (tBTA_DM_MSG *p_data)
    tBTA_STATUS status = BTA_FAILURE;

    if(BTM_BleWriteScanRsp(p_data->ble_set_adv_data.data_mask,
                        (tBTM_BLE_ADV_DATA *)p_data->ble_set_adv_data.p_adv_cfg) == BTM_SUCCESS)
                        (tBTM_BLE_ADV_DATA *)&p_data->ble_set_adv_data.adv_cfg) == BTM_SUCCESS)
    {
        status = BTA_SUCCESS;
    }
@@ -4945,7 +4945,7 @@ void bta_dm_ble_multi_adv_data(tBTA_DM_MSG *p_data)
        btm_status = BTM_BleCfgAdvInstData(p_data->ble_multi_adv_data.inst_id,
                        p_data->ble_multi_adv_data.is_scan_rsp,
                        p_data->ble_multi_adv_data.data_mask,
                        (tBTM_BLE_ADV_DATA*)p_data->ble_multi_adv_data.p_data);
                        (tBTM_BLE_ADV_DATA*)&p_data->ble_multi_adv_data.data);
    }

    if(BTM_CMD_STARTED != btm_status)
+28 −40
Original line number Diff line number Diff line
@@ -1016,19 +1016,16 @@ void BTA_DmSetBleAdvParams (UINT16 adv_int_min, UINT16 adv_int_max,
void BTA_DmBleSetAdvConfig (tBTA_BLE_AD_MASK data_mask, tBTA_BLE_ADV_DATA *p_adv_cfg,
                            tBTA_SET_ADV_DATA_CMPL_CBACK *p_adv_data_cback)
{
    tBTA_DM_API_SET_ADV_CONFIG  *p_msg;
  tBTA_DM_API_SET_ADV_CONFIG *p_msg = GKI_getbuf(sizeof(*p_msg));
  if (!p_msg) return;

    if ((p_msg = (tBTA_DM_API_SET_ADV_CONFIG *)
        GKI_getbuf(sizeof(tBTA_DM_API_SET_ADV_CONFIG))) != NULL)
    {
  memset(p_msg, 0, sizeof(*p_msg));
  p_msg->hdr.event = BTA_DM_API_BLE_SET_ADV_CONFIG_EVT;
  p_msg->data_mask = data_mask;
  p_msg->p_adv_data_cback = p_adv_data_cback;
        p_msg->p_adv_cfg = p_adv_cfg;

  memcpy(&p_msg->adv_cfg, p_adv_cfg, sizeof(p_msg->adv_cfg));
  bta_sys_sendmsg(p_msg);
}
}

/*******************************************************************************
**
@@ -1044,19 +1041,16 @@ void BTA_DmBleSetAdvConfig (tBTA_BLE_AD_MASK data_mask, tBTA_BLE_ADV_DATA *p_adv
extern void BTA_DmBleSetScanRsp (tBTA_BLE_AD_MASK data_mask, tBTA_BLE_ADV_DATA *p_adv_cfg,
                                 tBTA_SET_ADV_DATA_CMPL_CBACK *p_adv_data_cback)
{
    tBTA_DM_API_SET_ADV_CONFIG  *p_msg;
  tBTA_DM_API_SET_ADV_CONFIG *p_msg = GKI_getbuf(sizeof(*p_msg));
  if (!p_msg) return;

    if ((p_msg = (tBTA_DM_API_SET_ADV_CONFIG *)
        GKI_getbuf(sizeof(tBTA_DM_API_SET_ADV_CONFIG))) != NULL)
    {
  memset(p_msg, 0, sizeof(*p_msg));
  p_msg->hdr.event = BTA_DM_API_BLE_SET_SCAN_RSP_EVT;
  p_msg->data_mask = data_mask;
  p_msg->p_adv_data_cback = p_adv_data_cback;
        p_msg->p_adv_cfg = p_adv_cfg;

  memcpy(&p_msg->adv_cfg, p_adv_cfg, sizeof(p_msg->adv_cfg));
  bta_sys_sendmsg(p_msg);
}
}

/*******************************************************************************
**
@@ -1577,23 +1571,17 @@ void BTA_BleCfgAdvInstData (UINT8 inst_id, BOOLEAN is_scan_rsp,
                            tBTA_BLE_AD_MASK data_mask,
                            tBTA_BLE_ADV_DATA *p_data)
{
    tBTA_DM_API_BLE_MULTI_ADV_DATA    *p_msg;
    UINT16      len =  sizeof(tBTA_DM_API_BLE_MULTI_ADV_DATA) ;
  tBTA_DM_API_BLE_MULTI_ADV_DATA *p_msg = GKI_getbuf(sizeof(*p_msg));
  if (!p_msg) return;

    APPL_TRACE_API ("BTA_BleCfgAdvInstData");

    if ((p_msg = (tBTA_DM_API_BLE_MULTI_ADV_DATA *) GKI_getbuf(len)) != NULL)
    {
          memset(p_msg, 0, len);
  memset(p_msg, 0, sizeof(*p_msg));
  p_msg->hdr.event = BTA_DM_API_BLE_MULTI_ADV_DATA_EVT;
  p_msg->inst_id = inst_id;
  p_msg->is_scan_rsp = is_scan_rsp;
  p_msg->data_mask = data_mask;
          p_msg->p_data        = p_data;

  memcpy(&p_msg->data, p_data, sizeof(p_msg->data));
  bta_sys_sendmsg(p_msg);
}
}

/*******************************************************************************
**
+2 −2
Original line number Diff line number Diff line
@@ -516,7 +516,7 @@ typedef struct
    UINT8                   inst_id;
    BOOLEAN                 is_scan_rsp;
    tBTA_BLE_AD_MASK        data_mask;
    tBTA_BLE_ADV_DATA      *p_data;
    tBTA_BLE_ADV_DATA       data;
}tBTA_DM_API_BLE_MULTI_ADV_DATA;

typedef struct
@@ -529,7 +529,7 @@ typedef struct
{
    BT_HDR                  hdr;
    UINT32                  data_mask;
    tBTA_BLE_ADV_DATA       *p_adv_cfg;
    tBTA_BLE_ADV_DATA       adv_cfg;
    tBTA_SET_ADV_DATA_CMPL_CBACK    *p_adv_data_cback;
}tBTA_DM_API_SET_ADV_CONFIG;

+16 −55
Original line number Diff line number Diff line
@@ -339,66 +339,27 @@ typedef struct
#define BTA_DM_BLE_AD_BIT_SERVICE_128     BTM_BLE_AD_BIT_SERVICE_128      /*128-bit Service UUIDs*/

typedef tBTM_BLE_AD_MASK tBTA_BLE_AD_MASK;

/* slave preferred connection interval range */
typedef struct
{
    UINT16  low;
    UINT16  hi;

}tBTA_BLE_INT_RANGE;

/* Service tag supported in the device */
typedef struct
{
    UINT8       num_service;
    BOOLEAN     list_cmpl;
    UINT16      *p_uuid;
}tBTA_BLE_SERVICE;


typedef struct
{
    UINT8       len;
    UINT8      *p_val;
}tBTA_BLE_MANU;

typedef struct
{
    UINT8       adv_type;
    UINT8       len;
    UINT8       *p_val;     /* number of len byte */
}tBTA_BLE_PROP_ELEM;

/* vendor proprietary adv type */
typedef struct
{
    UINT8                   num_elem;
    tBTA_BLE_PROP_ELEM      *p_elem;
}tBTA_BLE_PROPRIETARY;

typedef struct
{
    tBT_UUID    service_uuid;
    UINT8       len;
    UINT8      *p_val;
}tBTA_BLE_SERVICE_DATA;

typedef tBTM_BLE_INT_RANGE tBTA_BLE_INT_RANGE;
typedef tBTM_BLE_SERVICE tBTA_BLE_SERVICE;
typedef tBTM_BLE_PROP_ELEM tBTA_BLE_PROP_ELEM;
typedef tBTM_BLE_PROPRIETARY tBTA_BLE_PROPRIETARY;
typedef tBTM_BLE_MANU tBTA_BLE_MANU;
typedef tBTM_BLE_SERVICE_DATA tBTA_BLE_SERVICE_DATA;
typedef tBTM_BLE_128SERVICE tBTA_BLE_128SERVICE;
typedef tBTM_BLE_32SERVICE  tBTA_BLE_32SERVICE;

typedef struct
{
    tBTA_BLE_INT_RANGE      int_range;          /* slave prefered conn interval range */
    tBTA_BLE_MANU           *p_manu;            /* manufacturer data */
    tBTA_BLE_SERVICE        *p_services;        /* 16 bits services */
    tBTA_BLE_128SERVICE     *p_services_128b;   /* 128 bits service */
    tBTA_BLE_32SERVICE      *p_service_32b;     /* 32 bits Service UUID */
    tBTA_BLE_SERVICE        *p_sol_services;    /* 16 bits services Solicitation UUIDs */
    tBTA_BLE_32SERVICE      *p_sol_service_32b; /* List of 32 bit Service Solicitation UUIDs */
    tBTA_BLE_128SERVICE     *p_sol_service_128b;/* List of 128 bit Service Solicitation UUIDs */
    tBTA_BLE_PROPRIETARY    *p_proprietary;     /* proprietary data */
    tBTA_BLE_SERVICE_DATA   *p_service_data;    /* service data */
    tBTA_BLE_MANU           manu;            /* manufacturer data */
    tBTA_BLE_SERVICE        services;        /* 16 bits services */
    tBTA_BLE_128SERVICE     services_128b;   /* 128 bits service */
    tBTA_BLE_32SERVICE      service_32b;     /* 32 bits Service UUID */
    tBTA_BLE_SERVICE        sol_services;    /* 16 bits services Solicitation UUIDs */
    tBTA_BLE_32SERVICE      sol_service_32b; /* List of 32 bit Service Solicitation UUIDs */
    tBTA_BLE_128SERVICE     sol_service_128b;/* List of 128 bit Service Solicitation UUIDs */
    tBTA_BLE_PROPRIETARY    proprietary;     /* proprietary data */
    tBTA_BLE_SERVICE_DATA   service_data;    /* service data */
    UINT16                  appearance;         /* appearance data */
    UINT8                   flag;
    UINT8                   tx_power;
+0 −2
Original line number Diff line number Diff line
@@ -52,9 +52,7 @@ typedef struct

typedef struct
{
    BOOLEAN is_scan_rsp;
    UINT8 client_if;
    UINT16 service_uuid_len;
    tBTA_BLE_AD_MASK mask;
    tBTA_BLE_ADV_DATA data;
    tBTA_BLE_ADV_PARAMS param;
Loading