1 /* 2 * Copyright (c) 2021 Chipsea Technologies (Shenzhen) Corp., Ltd. All rights reserved. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include "ble_ip_config.h" 17 18 #if (BLE_PROFILES) 19 #include "ble_ip.h" 20 #include "hal_profile.h" 21 22 23 #if (BLE_HT_THERMOM) 24 extern const struct prf_task_cbs* htpt_prf_itf_get(void); 25 #endif // (BLE_HT_THERMOM) 26 27 #if (BLE_HT_COLLECTOR) 28 extern const struct prf_task_cbs* htpc_prf_itf_get(void); 29 #endif // (BLE_HT_COLLECTOR) 30 31 #if (BLE_DIS_SERVER) 32 extern const struct prf_task_cbs* diss_prf_itf_get(void); 33 #endif // (BLE_HT_THERMOM) 34 35 #if (BLE_DIS_CLIENT) 36 extern const struct prf_task_cbs* disc_prf_itf_get(void); 37 #endif // (BLE_DIS_CLIENT) 38 39 #if (BLE_BP_SENSOR) 40 extern const struct prf_task_cbs* blps_prf_itf_get(void); 41 #endif // (BLE_BP_SENSOR) 42 43 #if (BLE_BP_COLLECTOR) 44 extern const struct prf_task_cbs* blpc_prf_itf_get(void); 45 #endif // (BLE_BP_COLLECTOR) 46 47 #if (BLE_TIP_SERVER) 48 extern const struct prf_task_cbs* tips_prf_itf_get(void); 49 #endif // (BLE_TIP_SERVER) 50 51 #if (BLE_TIP_CLIENT) 52 extern const struct prf_task_cbs* tipc_prf_itf_get(void); 53 #endif // (BLE_TIP_CLIENT) 54 55 #if (BLE_HR_SENSOR) 56 extern const struct prf_task_cbs* hrps_prf_itf_get(void); 57 #endif // (BLE_HR_SENSOR) 58 59 #if (BLE_HR_COLLECTOR) 60 extern const struct prf_task_cbs* hrpc_prf_itf_get(void); 61 #endif // (BLE_HR_COLLECTOR) 62 63 #if (BLE_FINDME_LOCATOR) 64 extern const struct prf_task_cbs* findl_prf_itf_get(void); 65 #endif // (BLE_FINDME_LOCATOR) 66 67 #if (BLE_FINDME_TARGET) 68 extern const struct prf_task_cbs* findt_prf_itf_get(void); 69 #endif // (BLE_FINDME_TARGET) 70 71 #if (BLE_PROX_MONITOR) 72 extern const struct prf_task_cbs* proxm_prf_itf_get(void); 73 #endif // (BLE_PROX_MONITOR) 74 75 #if (BLE_PROX_REPORTER) 76 extern const struct prf_task_cbs* proxr_prf_itf_get(void); 77 #endif // (BLE_PROX_REPORTER) 78 79 #if (BLE_SP_CLIENT) 80 extern const struct prf_task_cbs* scppc_prf_itf_get(void); 81 #endif // (BLE_SP_CLENT) 82 83 #if (BLE_SP_SERVER) 84 extern const struct prf_task_cbs* scpps_prf_itf_get(void); 85 #endif // (BLE_SP_SERVER) 86 87 #if (BLE_BATT_CLIENT) 88 extern const struct prf_task_cbs* basc_prf_itf_get(void); 89 #endif // (BLE_BATT_CLIENT) 90 91 #if (BLE_BATT_SERVER) 92 extern const struct prf_task_cbs* bass_prf_itf_get(void); 93 #endif // (BLE_BATT_SERVER) 94 95 #if (BLE_HID_DEVICE) 96 extern const struct prf_task_cbs* hogpd_prf_itf_get(void); 97 #endif // (BLE_HID_DEVICE) 98 99 #if (BLE_HID_BOOT_HOST) 100 extern const struct prf_task_cbs* hogpbh_prf_itf_get(void); 101 #endif // (BLE_HID_BOOT_HOST) 102 103 #if (BLE_HID_REPORT_HOST) 104 extern const struct prf_task_cbs* hogprh_prf_itf_get(void); 105 #endif // (BLE_HID_REPORT_HOST) 106 107 #if (BLE_GL_COLLECTOR) 108 extern const struct prf_task_cbs* glpc_prf_itf_get(void); 109 #endif // (BLE_GL_COLLECTOR) 110 111 #if (BLE_GL_SENSOR) 112 extern const struct prf_task_cbs* glps_prf_itf_get(void); 113 #endif // (BLE_GL_SENSOR) 114 115 #if (BLE_RSC_COLLECTOR) 116 extern const struct prf_task_cbs* rscpc_prf_itf_get(void); 117 #endif // (BLE_RSC_COLLECTOR) 118 119 #if (BLE_RSC_SENSOR) 120 extern const struct prf_task_cbs* rscps_prf_itf_get(void); 121 #endif // (BLE_RSC_COLLECTOR) 122 123 #if (BLE_CSC_COLLECTOR) 124 extern const struct prf_task_cbs* cscpc_prf_itf_get(void); 125 #endif // (BLE_CSC_COLLECTOR) 126 127 #if (BLE_CSC_SENSOR) 128 extern const struct prf_task_cbs* cscps_prf_itf_get(void); 129 #endif // (BLE_CSC_COLLECTOR) 130 131 #if (BLE_AN_CLIENT) 132 extern const struct prf_task_cbs* anpc_prf_itf_get(void); 133 #endif // (BLE_AN_CLIENT) 134 135 #if (BLE_AN_SERVER) 136 extern const struct prf_task_cbs* anps_prf_itf_get(void); 137 #endif // (BLE_AN_SERVER) 138 139 #if (BLE_PAS_CLIENT) 140 extern const struct prf_task_cbs* paspc_prf_itf_get(void); 141 #endif // (BLE_PAS_CLIENT) 142 143 #if (BLE_PAS_SERVER) 144 extern const struct prf_task_cbs* pasps_prf_itf_get(void); 145 #endif // (BLE_PAS_SERVER) 146 147 #if (BLE_CP_COLLECTOR) 148 extern const struct prf_task_cbs* cppc_prf_itf_get(void); 149 #endif //(BLE_CP_COLLECTOR) 150 151 #if (BLE_CP_SENSOR) 152 extern const struct prf_task_cbs* cpps_prf_itf_get(void); 153 #endif //(BLE_CP_SENSOR) 154 155 #if (BLE_LN_COLLECTOR) 156 extern const struct prf_task_cbs* lanc_prf_itf_get(void); 157 #endif //(BLE_CP_COLLECTOR) 158 159 #if (BLE_LN_SENSOR) 160 extern const struct prf_task_cbs* lans_prf_itf_get(void); 161 #endif //(BLE_CP_SENSOR) 162 163 #if (BLE_IPS_SERVER) 164 extern const struct prf_task_cbs* ipss_prf_itf_get(void); 165 #endif //(BLE_IPS_SERVER) 166 167 #if (BLE_IPS_CLIENT) 168 extern const struct prf_task_cbs* ipsc_prf_itf_get(void); 169 #endif //(BLE_IPS_CLIENT) 170 171 #if (BLE_ENV_SERVER) 172 extern const struct prf_task_cbs* envs_prf_itf_get(void); 173 #endif //(BLE_ENV_SERVER) 174 175 #if (BLE_ENV_CLIENT) 176 extern const struct prf_task_cbs* envc_prf_itf_get(void); 177 #endif //(BLE_ENV_CLIENT 178 179 #if (BLE_WSC_SERVER) 180 extern const struct prf_task_cbs* wscs_prf_itf_get(void); 181 #endif //(BLE_WSC_SERVER) 182 183 #if (BLE_WSC_CLIENT) 184 extern const struct prf_task_cbs* wscc_prf_itf_get(void); 185 #endif //(BLE_WSC_CLIENT 186 187 #if (BLE_BCS_SERVER) 188 extern const struct prf_task_cbs* bcss_prf_itf_get(void); 189 #endif //(BLE_BCS_SERVER) 190 191 #if (BLE_BCS_CLIENT) 192 extern const struct prf_task_cbs* bcsc_prf_itf_get(void); 193 #endif //(BLE_BCS_CLIENT) 194 195 #if (BLE_WPT_SERVER) 196 extern const struct prf_task_cbs* wpts_prf_itf_get(void); 197 #endif //(BLE_WPT_SERVER) 198 199 #if (BLE_WPT_CLIENT) 200 extern const struct prf_task_cbs* wptc_prf_itf_get(void); 201 #endif //(BLE_WPT_CLIENT 202 203 #if (BLE_PLX_SERVER) 204 extern const struct prf_task_cbs* plxs_prf_itf_get(void); 205 #endif //(BLE_PLX_SERVER) 206 207 #if (BLE_PLX_CLIENT) 208 extern const struct prf_task_cbs* plxc_prf_itf_get(void); 209 #endif //(BLE_PLX_CLIENT 210 211 #if (BLE_CGM_SERVER) 212 extern const struct prf_task_cbs* cgms_prf_itf_get(void); 213 #endif //(BLE_CGM_SERVER) 214 215 #if (BLE_CGM_CLIENT) 216 extern const struct prf_task_cbs* cgmc_prf_itf_get(void); 217 #endif //(BLE_CGM_CLIENT 218 219 #if (BLE_ISO_MODE_0_PROFILE) 220 extern const struct prf_task_cbs* am0_has_prf_itf_get(void); 221 #endif // (BLE_ISO_MODE_0_PROFILE) 222 223 #if (BLE_UDS_SERVER) 224 extern const struct prf_task_cbs* udss_prf_itf_get(void); 225 #endif //(BLE_UDS_SERVER) 226 227 #if (BLE_UDS_CLIENT) 228 extern const struct prf_task_cbs* udsc_prf_itf_get(void); 229 #endif //(BLE_UDS_SERVER) 230 231 #if (BLE_DBG_THPP) 232 extern const struct prf_task_cbs* thpp_prf_itf_get(void); 233 #endif //(BLE_DBG_THPP) 234 235 #if (BLE_MESH) 236 extern const struct prf_task_cbs* mal_prf_itf_get(void); 237 #endif // (BLE_MESH) 238 239 #if (BLE_SMARTCONFIG) 240 extern const struct prf_task_cbs* smartconfig_prf_itf_get(void); 241 #endif 242 243 244 /* 245 * EXPORTED FUNCTIONS DEFINITIONS 246 **************************************************************************************** 247 */ 248 249 /** 250 **************************************************************************************** 251 * @brief Retrieve profile interface 252 **************************************************************************************** 253 */ prf_itf_get(uint16_t task_id)254const struct prf_task_cbs * prf_itf_get(uint16_t task_id) 255 { 256 CSBLE_DBG(PRF, DEBUG, "prf_task_id:0x%x", task_id); 257 258 const struct prf_task_cbs* prf_cbs = NULL; 259 switch(KE_TYPE_GET(task_id)) 260 { 261 #if (BLE_HT_THERMOM) 262 case TASK_ID_HTPT: 263 prf_cbs = htpt_prf_itf_get(); 264 break; 265 #endif // (BLE_HT_THERMOM) 266 267 #if (BLE_HT_COLLECTOR) 268 case TASK_ID_HTPC: 269 prf_cbs = htpc_prf_itf_get(); 270 break; 271 #endif // (BLE_HT_COLLECTOR) 272 273 #if (BLE_DIS_SERVER) 274 case TASK_ID_DISS: 275 prf_cbs = diss_prf_itf_get(); 276 break; 277 #endif // (BLE_DIS_SERVER) 278 279 #if (BLE_DIS_CLIENT) 280 case TASK_ID_DISC: 281 prf_cbs = disc_prf_itf_get(); 282 break; 283 #endif // (BLE_DIS_CLIENT) 284 285 #if (BLE_BP_SENSOR) 286 case TASK_ID_BLPS: 287 prf_cbs = blps_prf_itf_get(); 288 break; 289 #endif // (BLE_BP_SENSOR) 290 291 #if (BLE_BP_COLLECTOR) 292 case TASK_ID_BLPC: 293 prf_cbs = blpc_prf_itf_get(); 294 break; 295 #endif // (BLE_BP_COLLECTOR) 296 297 #if (BLE_TIP_SERVER) 298 case TASK_ID_TIPS: 299 prf_cbs = tips_prf_itf_get(); 300 break; 301 #endif // (BLE_TIP_SERVER) 302 303 #if (BLE_TIP_CLIENT) 304 case TASK_ID_TIPC: 305 prf_cbs = tipc_prf_itf_get(); 306 break; 307 #endif // (BLE_TIP_CLIENT) 308 309 #if (BLE_HR_SENSOR) 310 case TASK_ID_HRPS: 311 prf_cbs = hrps_prf_itf_get(); 312 break; 313 #endif // (BLE_HR_SENSOR) 314 315 #if (BLE_HR_COLLECTOR) 316 case TASK_ID_HRPC: 317 prf_cbs = hrpc_prf_itf_get(); 318 break; 319 #endif // (BLE_HR_COLLECTOR) 320 321 #if (BLE_FINDME_LOCATOR) 322 case TASK_ID_FINDL: 323 prf_cbs = findl_prf_itf_get(); 324 break; 325 #endif // (BLE_FINDME_LOCATOR) 326 327 #if (BLE_FINDME_TARGET) 328 case TASK_ID_FINDT: 329 prf_cbs = findt_prf_itf_get(); 330 break; 331 #endif // (BLE_FINDME_TARGET) 332 333 #if (BLE_PROX_MONITOR) 334 case TASK_ID_PROXM: 335 prf_cbs = proxm_prf_itf_get(); 336 break; 337 #endif // (BLE_PROX_MONITOR) 338 339 #if (BLE_PROX_REPORTER) 340 case TASK_ID_PROXR: 341 prf_cbs = proxr_prf_itf_get(); 342 break; 343 #endif // (BLE_PROX_REPORTER) 344 345 #if (BLE_SP_SERVER) 346 case TASK_ID_SCPPS: 347 prf_cbs = scpps_prf_itf_get(); 348 break; 349 #endif // (BLE_SP_SERVER) 350 351 #if (BLE_SP_CLIENT) 352 case TASK_ID_SCPPC: 353 prf_cbs = scppc_prf_itf_get(); 354 break; 355 #endif // (BLE_SP_CLIENT) 356 357 #if (BLE_BATT_SERVER) 358 case TASK_ID_BASS: 359 prf_cbs = bass_prf_itf_get(); 360 break; 361 #endif // (BLE_BATT_SERVER) 362 363 #if (BLE_BATT_CLIENT) 364 case TASK_ID_BASC: 365 prf_cbs = basc_prf_itf_get(); 366 break; 367 #endif // (BLE_BATT_CLIENT) 368 369 #if (BLE_HID_DEVICE) 370 case TASK_ID_HOGPD: 371 prf_cbs = hogpd_prf_itf_get(); 372 break; 373 #endif // (BLE_HID_DEVICE) 374 375 #if (BLE_HID_BOOT_HOST) 376 case TASK_ID_HOGPBH: 377 prf_cbs = hogpbh_prf_itf_get(); 378 break; 379 #endif // (BLE_HID_BOOT_HOST) 380 381 #if (BLE_HID_REPORT_HOST) 382 case TASK_ID_HOGPRH: 383 prf_cbs = hogprh_prf_itf_get(); 384 break; 385 #endif // (BLE_HID_REPORT_HOST) 386 387 #if (BLE_GL_COLLECTOR) 388 case TASK_ID_GLPC: 389 prf_cbs = glpc_prf_itf_get(); 390 break; 391 #endif // (BLE_GL_COLLECTOR) 392 393 #if (BLE_GL_SENSOR) 394 case TASK_ID_GLPS: 395 prf_cbs = glps_prf_itf_get(); 396 break; 397 #endif // (BLE_GL_SENSOR) 398 399 #if (BLE_RSC_COLLECTOR) 400 case TASK_ID_RSCPC: 401 prf_cbs = rscpc_prf_itf_get(); 402 break; 403 #endif // (BLE_RSC_COLLECTOR) 404 405 #if (BLE_RSC_SENSOR) 406 case TASK_ID_RSCPS: 407 prf_cbs = rscps_prf_itf_get(); 408 break; 409 #endif // (BLE_RSC_SENSOR) 410 411 #if (BLE_CSC_COLLECTOR) 412 case TASK_ID_CSCPC: 413 prf_cbs = cscpc_prf_itf_get(); 414 break; 415 #endif // (BLE_CSC_COLLECTOR) 416 417 #if (BLE_CSC_SENSOR) 418 case TASK_ID_CSCPS: 419 prf_cbs = cscps_prf_itf_get(); 420 break; 421 #endif // (BLE_CSC_SENSOR) 422 423 #if (BLE_CP_COLLECTOR) 424 case TASK_ID_CPPC: 425 prf_cbs = cppc_prf_itf_get(); 426 break; 427 #endif // (BLE_CP_COLLECTOR) 428 429 #if (BLE_CP_SENSOR) 430 case TASK_ID_CPPS: 431 prf_cbs = cpps_prf_itf_get(); 432 break; 433 #endif // (BLE_CP_SENSOR) 434 435 #if (BLE_LN_COLLECTOR) 436 case TASK_ID_LANC: 437 prf_cbs = lanc_prf_itf_get(); 438 break; 439 #endif // (BLE_LN_COLLECTOR) 440 441 #if (BLE_LN_SENSOR) 442 case TASK_ID_LANS: 443 prf_cbs = lans_prf_itf_get(); 444 break; 445 #endif // (BLE_LN_SENSOR) 446 447 #if (BLE_AN_CLIENT) 448 case TASK_ID_ANPC: 449 prf_cbs = anpc_prf_itf_get(); 450 break; 451 #endif // (BLE_AN_CLIENT) 452 453 #if (BLE_AN_SERVER) 454 case TASK_ID_ANPS: 455 prf_cbs = anps_prf_itf_get(); 456 break; 457 #endif // (BLE_AN_SERVER) 458 459 #if (BLE_PAS_CLIENT) 460 case TASK_ID_PASPC: 461 prf_cbs = paspc_prf_itf_get(); 462 break; 463 #endif // (BLE_PAS_CLIENT) 464 465 #if (BLE_PAS_SERVER) 466 case TASK_ID_PASPS: 467 prf_cbs = pasps_prf_itf_get(); 468 break; 469 #endif // (BLE_PAS_SERVER) 470 471 #if (BLE_ISO_MODE_0_PROFILE) 472 case TASK_ID_AM0_HAS: 473 prf_cbs = am0_has_prf_itf_get(); 474 break; 475 #endif // (BLE_ISO_MODE_0_PROFILE) 476 477 #if (BLE_IPS_SERVER) 478 case TASK_ID_IPSS: 479 prf_cbs = ipss_prf_itf_get(); 480 break; 481 #endif //(BLE_IPS_SERVER) 482 483 #if (BLE_IPS_CLIENT) 484 case TASK_ID_IPSC: 485 prf_cbs = ipsc_prf_itf_get(); 486 break; 487 #endif //(BLE_IPS_CLIENT) 488 489 #if (BLE_ENV_SERVER) 490 case TASK_ID_ENVS: 491 prf_cbs = envs_prf_itf_get(); 492 break; 493 #endif //(BLE_ENV_SERVER) 494 495 #if (BLE_ENV_CLIENT) 496 case TASK_ID_ENVC: 497 prf_cbs = envc_prf_itf_get(); 498 break; 499 #endif //(BLE_ENV_CLIENT) 500 501 #if (BLE_WSC_SERVER) 502 case TASK_ID_WSCS: 503 prf_cbs = wscs_prf_itf_get(); 504 break; 505 #endif //(BLE_WSC_SERVER) 506 507 #if (BLE_WSC_CLIENT) 508 case TASK_ID_WSCC: 509 prf_cbs = wscc_prf_itf_get(); 510 break; 511 #endif //(BLE_WSC_CLIENT) 512 513 #if (BLE_BCS_SERVER) 514 case TASK_ID_BCSS: 515 prf_cbs = bcss_prf_itf_get(); 516 break; 517 #endif //(BLE_BCS_SERVER) 518 519 #if (BLE_BCS_CLIENT) 520 case TASK_ID_BCSC: 521 prf_cbs = bcsc_prf_itf_get(); 522 break; 523 #endif //(BLE_BCS_CLIENT) 524 525 #if (BLE_UDS_SERVER) 526 case TASK_ID_UDSS: 527 prf_cbs = udss_prf_itf_get(); 528 break; 529 #endif //(BLE_UDS_SERVER) 530 531 #if (BLE_UDS_CLIENT) 532 case TASK_ID_UDSC: 533 prf_cbs = udsc_prf_itf_get(); 534 break; 535 #endif //(BLE_UDS_CLIENT) 536 537 #if (BLE_WPT_SERVER) 538 case TASK_ID_WPTS: 539 prf_cbs = wpts_prf_itf_get(); 540 break; 541 #endif //(BLE_WPT_SERVER) 542 543 #if (BLE_WPT_CLIENT) 544 case TASK_ID_WPTC: 545 prf_cbs = wptc_prf_itf_get(); 546 break; 547 #endif //(BLE_WPT_CLIENT) 548 549 #if (BLE_PLX_SERVER) 550 case TASK_ID_PLXS: 551 prf_cbs = plxs_prf_itf_get(); 552 break; 553 #endif //(BLE_PLX_SERVER) 554 555 #if (BLE_PLX_CLIENT) 556 case TASK_ID_PLXC: 557 prf_cbs = plxc_prf_itf_get(); 558 break; 559 #endif //(BLE_PLX_CLIENT) 560 561 #if (BLE_CGM_SERVER) 562 case TASK_ID_CGMS: 563 prf_cbs = cgms_prf_itf_get(); 564 break; 565 #endif //(BLE_CGM_SERVER) 566 567 #if (BLE_CGM_CLIENT) 568 case TASK_ID_CGMC: 569 prf_cbs = cgmc_prf_itf_get(); 570 break; 571 #endif //(BLE_CGM_CLIENT) 572 573 #if (BLE_DBG_THPP) 574 case TASK_ID_THPP: 575 prf_cbs = thpp_prf_itf_get(); 576 break; 577 #endif //(BLE_DBG_THPP) 578 579 #if (BLE_MESH) 580 case TASK_ID_MESH: 581 prf_cbs = mal_prf_itf_get(); 582 break; 583 #endif //(BLE_MESH) 584 585 #if (BLE_SMARTCONFIG) 586 case TASK_ID_SMARTCONFIG: 587 prf_cbs = smartconfig_prf_itf_get(); 588 break; 589 #endif //(BLE_SMARTVOICE) 590 591 default: /* Nothing to do */ break; 592 } 593 594 return prf_cbs; 595 } 596 597 #endif // (BLE_PROFILES) 598