• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)254 const 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