Lines Matching refs:param

324 			 const struct bt_le_ext_adv_start_param *param)  in bt_le_adv_set_enable_ext()  argument
344 net_buf_add_le16(buf, param ? param->timeout : 0); in bt_le_adv_set_enable_ext()
345 net_buf_add_u8(buf, param ? param->num_events : 0); in bt_le_adv_set_enable_ext()
367 static bool valid_adv_ext_param(const struct bt_le_adv_param *param) in valid_adv_ext_param() argument
371 if (param->peer && in valid_adv_ext_param()
372 !(param->options & BT_LE_ADV_OPT_EXT_ADV) && in valid_adv_ext_param()
373 !(param->options & _BT_LE_ADV_OPT_CONNECTABLE)) { in valid_adv_ext_param()
380 if (param->peer && in valid_adv_ext_param()
381 (param->options & BT_LE_ADV_OPT_EXT_ADV) && in valid_adv_ext_param()
382 !(param->options & BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY)) { in valid_adv_ext_param()
389 if (!(param->options & BT_LE_ADV_OPT_EXT_ADV) && in valid_adv_ext_param()
390 param->options & (BT_LE_ADV_OPT_EXT_ADV | in valid_adv_ext_param()
401 param->peer && in valid_adv_ext_param()
402 (param->options & BT_LE_ADV_OPT_USE_IDENTITY) && in valid_adv_ext_param()
403 (param->options & BT_LE_ADV_OPT_DIR_ADDR_RPA)) { in valid_adv_ext_param()
408 if (param->id >= bt_dev.id_count || in valid_adv_ext_param()
409 bt_addr_le_eq(&bt_dev.id_addr[param->id], BT_ADDR_LE_ANY)) { in valid_adv_ext_param()
413 if (!(param->options & _BT_LE_ADV_OPT_CONNECTABLE)) { in valid_adv_ext_param()
421 param->interval_min < 0x00a0) { in valid_adv_ext_param()
426 if ((param->options & (BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY | in valid_adv_ext_param()
428 !param->peer) { in valid_adv_ext_param()
432 if ((param->options & BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY) || in valid_adv_ext_param()
433 !param->peer) { in valid_adv_ext_param()
434 if (param->interval_min > param->interval_max || in valid_adv_ext_param()
435 param->interval_min < 0x0020 || in valid_adv_ext_param()
436 param->interval_max > 0x4000) { in valid_adv_ext_param()
441 if ((param->options & BT_LE_ADV_OPT_DISABLE_CHAN_37) && in valid_adv_ext_param()
442 (param->options & BT_LE_ADV_OPT_DISABLE_CHAN_38) && in valid_adv_ext_param()
443 (param->options & BT_LE_ADV_OPT_DISABLE_CHAN_39)) { in valid_adv_ext_param()
450 static bool valid_adv_param(const struct bt_le_adv_param *param) in valid_adv_param() argument
452 if (param->options & BT_LE_ADV_OPT_EXT_ADV) { in valid_adv_param()
456 if (param->peer && !(param->options & _BT_LE_ADV_OPT_CONNECTABLE)) { in valid_adv_param()
460 return valid_adv_ext_param(param); in valid_adv_param()
892 const struct bt_le_adv_param *param, in bt_le_adv_start_legacy() argument
899 bool dir_adv = (param->peer != NULL), scannable = false; in bt_le_adv_start_legacy()
907 if (!valid_adv_param(param)) { in bt_le_adv_start_legacy()
911 if (!bt_id_adv_random_addr_check(param)) { in bt_le_adv_start_legacy()
921 set_param.min_interval = sys_cpu_to_le16(param->interval_min); in bt_le_adv_start_legacy()
922 set_param.max_interval = sys_cpu_to_le16(param->interval_max); in bt_le_adv_start_legacy()
923 set_param.channel_map = get_adv_channel_map(param->options); in bt_le_adv_start_legacy()
924 set_param.filter_policy = get_filter_policy(param->options); in bt_le_adv_start_legacy()
928 adv->id = param->id; in bt_le_adv_start_legacy()
931 err = bt_id_set_adv_own_addr(adv, param->options, dir_adv, in bt_le_adv_start_legacy()
938 bt_addr_le_copy(&adv->target_addr, param->peer); in bt_le_adv_start_legacy()
943 if (param->options & _BT_LE_ADV_OPT_CONNECTABLE) { in bt_le_adv_start_legacy()
945 if (param->options & BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY) { in bt_le_adv_start_legacy()
951 bt_addr_le_copy(&set_param.direct_addr, param->peer); in bt_le_adv_start_legacy()
956 } else if ((param->options & BT_LE_ADV_OPT_SCANNABLE) || sd) { in bt_le_adv_start_legacy()
983 (param->options & _BT_LE_ADV_OPT_CONNECTABLE)) { in bt_le_adv_start_legacy()
987 !(param->options & _BT_LE_ADV_OPT_ONE_TIME)) { in bt_le_adv_start_legacy()
1017 !(param->options & _BT_LE_ADV_OPT_ONE_TIME)); in bt_le_adv_start_legacy()
1020 param->options & _BT_LE_ADV_OPT_CONNECTABLE); in bt_le_adv_start_legacy()
1025 param->options & BT_LE_ADV_OPT_USE_IDENTITY); in bt_le_adv_start_legacy()
1031 const struct bt_le_adv_param *param, in le_ext_adv_param_set() argument
1038 bool dir_adv = param->peer != NULL, scannable; in le_ext_adv_param_set()
1044 adv->options = param->options; in le_ext_adv_param_set()
1046 err = bt_id_set_adv_own_addr(adv, param->options, dir_adv, in le_ext_adv_param_set()
1053 bt_addr_le_copy(&adv->target_addr, param->peer); in le_ext_adv_param_set()
1076 sys_put_le24(param->interval_min, cp->prim_min_interval); in le_ext_adv_param_set()
1077 sys_put_le24(param->interval_max, cp->prim_max_interval); in le_ext_adv_param_set()
1078 cp->prim_channel_map = get_adv_channel_map(param->options); in le_ext_adv_param_set()
1080 cp->filter_policy = get_filter_policy(param->options); in le_ext_adv_param_set()
1084 if ((param->options & BT_LE_ADV_OPT_EXT_ADV) && in le_ext_adv_param_set()
1085 !(param->options & BT_LE_ADV_OPT_NO_2M)) { in le_ext_adv_param_set()
1091 if (param->options & BT_LE_ADV_OPT_CODED) { in le_ext_adv_param_set()
1099 if (param->options & BT_LE_ADV_OPT_REQUIRE_S8_CODING) { in le_ext_adv_param_set()
1101 } else if (param->options & BT_LE_ADV_OPT_REQUIRE_S2_CODING) { in le_ext_adv_param_set()
1112 if (!(param->options & BT_LE_ADV_OPT_EXT_ADV)) { in le_ext_adv_param_set()
1116 if (param->options & BT_LE_ADV_OPT_USE_TX_POWER) { in le_ext_adv_param_set()
1120 if (param->options & BT_LE_ADV_OPT_ANONYMOUS) { in le_ext_adv_param_set()
1124 if (param->options & BT_LE_ADV_OPT_NOTIFY_SCAN_REQ) { in le_ext_adv_param_set()
1128 if (param->options & _BT_LE_ADV_OPT_CONNECTABLE) { in le_ext_adv_param_set()
1130 if (!dir_adv && !(param->options & BT_LE_ADV_OPT_EXT_ADV)) { in le_ext_adv_param_set()
1140 if ((param->options & BT_LE_ADV_OPT_SCANNABLE) || has_scan_data) { in le_ext_adv_param_set()
1148 if (!(param->options & BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY)) { in le_ext_adv_param_set()
1152 bt_addr_le_copy(&cp->peer_addr, param->peer); in le_ext_adv_param_set()
1155 cp->sid = param->sid; in le_ext_adv_param_set()
1157 cp->sec_adv_max_skip = param->secondary_max_skip; in le_ext_adv_param_set()
1187 param->options & _BT_LE_ADV_OPT_CONNECTABLE); in le_ext_adv_param_set()
1192 param->options & BT_LE_ADV_OPT_USE_IDENTITY); in le_ext_adv_param_set()
1195 param->options & BT_LE_ADV_OPT_EXT_ADV); in le_ext_adv_param_set()
1201 const struct bt_le_adv_param *param, in bt_le_adv_start_ext() argument
1209 bool dir_adv = (param->peer != NULL); in bt_le_adv_start_ext()
1217 if (!valid_adv_param(param)) { in bt_le_adv_start_ext()
1225 adv->id = param->id; in bt_le_adv_start_ext()
1226 err = le_ext_adv_param_set(adv, param, sd != NULL); in bt_le_adv_start_ext()
1239 if (!(param->options & BT_LE_ADV_OPT_DIR_MODE_LOW_DUTY)) { in bt_le_adv_start_ext()
1247 (param->options & _BT_LE_ADV_OPT_CONNECTABLE)) { in bt_le_adv_start_ext()
1251 !(param->options & _BT_LE_ADV_OPT_ONE_TIME)) { in bt_le_adv_start_ext()
1282 !(param->options & _BT_LE_ADV_OPT_ONE_TIME)); in bt_le_adv_start_ext()
1294 int bt_le_adv_start(const struct bt_le_adv_param *param, in bt_le_adv_start() argument
1310 err = bt_le_adv_start_ext(adv, param, ad, ad_len, sd, sd_len); in bt_le_adv_start()
1312 err = bt_le_adv_start_legacy(adv, param, ad, ad_len, sd, sd_len); in bt_le_adv_start()
1522 int bt_le_ext_adv_create(const struct bt_le_adv_param *param, in bt_le_ext_adv_create() argument
1539 if (!valid_adv_ext_param(param)) { in bt_le_ext_adv_create()
1548 adv->id = param->id; in bt_le_ext_adv_create()
1551 err = le_ext_adv_param_set(adv, param, false); in bt_le_ext_adv_create()
1562 const struct bt_le_adv_param *param) in bt_le_ext_adv_update_param() argument
1570 if (!valid_adv_ext_param(param)) { in bt_le_ext_adv_update_param()
1579 if (param->options & _BT_LE_ADV_OPT_CONNECTABLE || in bt_le_ext_adv_update_param()
1580 param->options & BT_LE_ADV_OPT_SCANNABLE || in bt_le_ext_adv_update_param()
1581 !(param->options & BT_LE_ADV_OPT_EXT_ADV) || in bt_le_ext_adv_update_param()
1582 param->options & BT_LE_ADV_OPT_ANONYMOUS) { in bt_le_ext_adv_update_param()
1591 if (param->id != adv->id) { in bt_le_ext_adv_update_param()
1595 return le_ext_adv_param_set(adv, param, false); in bt_le_ext_adv_update_param()
1599 const struct bt_le_ext_adv_start_param *param) in bt_le_ext_adv_start() argument
1622 atomic_set_bit_to(adv->flags, BT_ADV_LIMITED, param && in bt_le_ext_adv_start()
1623 (param->timeout > 0 || param->num_events > 0)); in bt_le_ext_adv_start()
1636 err = bt_le_adv_set_enable_ext(adv, true, param); in bt_le_ext_adv_start()
1783 const struct bt_le_per_adv_param *param) in bt_le_per_adv_set_param() argument
1825 if (param->interval_min < BT_GAP_PER_ADV_MIN_INTERVAL || in bt_le_per_adv_set_param()
1826 param->interval_max > BT_GAP_PER_ADV_MAX_INTERVAL || in bt_le_per_adv_set_param()
1827 param->interval_min > param->interval_max) { in bt_le_per_adv_set_param()
1832 (param->options & BT_LE_PER_ADV_OPT_INCLUDE_ADI)) { in bt_le_per_adv_set_param()
1845 cp->min_interval = sys_cpu_to_le16(param->interval_min); in bt_le_per_adv_set_param()
1846 cp->max_interval = sys_cpu_to_le16(param->interval_max); in bt_le_per_adv_set_param()
1848 if (param->options & BT_LE_PER_ADV_OPT_USE_TX_POWER) { in bt_le_per_adv_set_param()
1856 cp->num_subevents = param->num_subevents; in bt_le_per_adv_set_param()
1857 cp->subevent_interval = param->subevent_interval; in bt_le_per_adv_set_param()
1858 cp->response_slot_delay = param->response_slot_delay; in bt_le_per_adv_set_param()
1859 cp->response_slot_spacing = param->response_slot_spacing; in bt_le_per_adv_set_param()
1860 cp->num_response_slots = param->num_response_slots; in bt_le_per_adv_set_param()
1869 if (param->options & BT_LE_PER_ADV_OPT_INCLUDE_ADI) { in bt_le_per_adv_set_param()