TI BLE Stack API Documentation  2.03.09
icall.h
1 /******************************************************************************
2 
3  @file icall.h
4 
5  @brief Indirect function Call dispatcher interface definition
6 
7  Group: WCS, LPC, BTS
8  $Target Device: DEVICES $
9 
10  ******************************************************************************
11  $License: BSD3 2013 $
12  ******************************************************************************
13  $Release Name: PACKAGE NAME $
14  $Release Date: PACKAGE RELEASE DATE $
15  *****************************************************************************/
16 #ifndef ICALL_H
17 #define ICALL_H
18 
19 #include <stdbool.h>
20 #include <stdint.h>
21 #include <stdlib.h>
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 #include "hal_assert.h"
28 
33 #define ICALL_SERVICE_CLASS_MASK 0xFFF8
34 
40 #define ICALL_SERVICE_INSTANCE_MASK 0x0007
41 
47 #define ICALL_SERVICE_CLASS_PRIMITIVE 0x0008
48 
49 /* Radio stack services */
50 
52 #define ICALL_SERVICE_CLASS_BLE 0x0010
53 
55 #define ICALL_SERVICE_CLASS_TIMAC 0x0018
56 
58 #define ICALL_SERVICE_CLASS_REMOTI_RTI 0x0020
59 
61 #define ICALL_SERVICE_CLASS_REMOTI_RCN 0x0028
62 
64 #define ICALL_SERVICE_CLASS_ZSTACK 0x0030
65 
67 #define ICALL_SERVICE_CLASS_NPI 0x0038
68 
70 #define ICALL_SERVICE_CLASS_BLE_MSG 0x0050
71 
72 /* Services that are visible only for other services
73  * but not for applications */
74 
79 #define ICALL_SERVICE_CLASS_CRYPTO 0x0080
80 
85 #define ICALL_SERVICE_CLASS_BLE_BOARD 0x0088
86 
91 #define ICALL_SERVICE_CLASS_TIMAC_BOARD 0x0090
92 
97 #define ICALL_SERVICE_CLASS_RADIO 0x0098
98 
104 #define ICALL_SERVICE_CLASS_DUMMY 0x0100
105 
111 #define ICALL_SERVICE_CLASS_DUMMY_BOARD 0x0200
112 
116 #define ICALL_INVALID_ENTITY_ID 0xffu
117 
121 #define ICALL_INVALID_TIMER_ID NULL
122 
130 #define ICALL_UNDEF_DEST_ID 0xffu
131 
133 #define ICALL_ERRNO_SUCCESS 0
134 
136 #define ICALL_ERRNO_TIMEOUT 1
137 
139 #define ICALL_ERRNO_NOMSG 2
140 
146 #define ICALL_ERRNO_INVALID_SERVICE -1
147 
152 #define ICALL_ERRNO_INVALID_FUNCTION -2
153 
155 #define ICALL_ERRNO_INVALID_PARAMETER -3
156 
158 #define ICALL_ERRNO_NO_RESOURCE -4
159 
165 #define ICALL_ERRNO_UNKNOWN_THREAD -5
166 
168 #define ICALL_ERRNO_CORRUPT_MSG -6
169 
171 #define ICALL_ERRNO_OVERFLOW -7
172 
174 #define ICALL_ERRNO_UNDERFLOW -8
175 
177 #define ICALL_MSG_FORMAT_KEEP 0
178 
183 #define ICALL_MSG_FORMAT_1ST_CHAR_TASK_ID 1
184 
189 #define ICALL_MSG_FORMAT_3RD_CHAR_TASK_ID 2
190 
191 #ifdef ICALL_SLIM
192 
195 #define ICALL_MSG_FORMAT_DIRECT_API_ID 3
196 
200 #define ICALL_SLIM_DIRECT_API_DONE_CMD_ID 0x42
201 
202 #endif /* ICALL_SLIM */
203 
207 #define ICALL_TIMEOUT_FOREVER 0xfffffffful
208 
213 #ifndef ICALL_TIMEOUT_PREDEFINE
214 #define ICALL_TIMEOUT_PREDEFINE 5000
215 #endif /* ICALL_TIMEOUT_PREDEFINE */
216 
220 #define ICALL_SEMAPHORE_MODE_COUNTING 0
221 
225 #define ICALL_SEMAPHORE_MODE_BINARY 1
226 
227 /* Primitive service function enumeration */
228 
230 #define ICALL_PRIMITIVE_FUNC_ENROLL 0
231 
233 #define ICALL_PRIMITIVE_FUNC_REGISTER_APP 1
234 
236 #define ICALL_PRIMITIVE_FUNC_MSG_ALLOC 2
237 
239 #define ICALL_PRIMITIVE_FUNC_MSG_FREE 3
240 
242 #define ICALL_PRIMITIVE_FUNC_MALLOC 4
243 
245 #define ICALL_PRIMITIVE_FUNC_FREE 5
246 
248 #define ICALL_PRIMITIVE_FUNC_SEND_MSG 6
249 
251 #define ICALL_PRIMITIVE_FUNC_FETCH_MSG 7
252 
254 #define ICALL_PRIMITIVE_FUNC_SEND_SERV_MSG 8
255 
257 #define ICALL_PRIMITIVE_FUNC_FETCH_SERV_MSG 9
258 
260 #define ICALL_PRIMITIVE_FUNC_WAIT 10
261 
263 #define ICALL_PRIMITIVE_FUNC_SIGNAL 11
264 
266 #define ICALL_PRIMITIVE_FUNC_ABORT 12
267 
269 #define ICALL_PRIMITIVE_FUNC_ENABLE_INT 13
270 
272 #define ICALL_PRIMITIVE_FUNC_DISABLE_INT 14
273 
275 #define ICALL_PRIMITIVE_FUNC_ENABLE_MINT 15
276 
278 #define ICALL_PRIMITIVE_FUNC_DISABLE_MINT 16
279 
281 #define ICALL_PRIMITIVE_FUNC_REGISTER_ISR 17
282 
284 #define ICALL_PRIMITIVE_FUNC_GET_TICKS 18
285 
287 #define ICALL_PRIMITIVE_FUNC_SET_TIMER_MSECS 19
288 
290 #define ICALL_PRIMITIVE_FUNC_GET_TICK_PERIOD 20
291 
293 #define ICALL_PRIMITIVE_FUNC_GET_MAX_MILLISECONDS 21
294 
296 #define ICALL_PRIMITIVE_FUNC_ENTITY2SERVICE 22
297 
299 #define ICALL_PRIMITIVE_FUNC_PWR_UPD_ACTIVITY_COUNTER 23
300 
302 #define ICALL_PRIMITIVE_FUNC_PWR_REGISTER_NOTIFY 24
303 
305 #define ICALL_PRIMITIVE_FUNC_WAIT_MATCH 25
306 
308 #define ICALL_PRIMITIVE_FUNC_GET_ENTITY_ID 26
309 
311 #define ICALL_PRIMITIVE_FUNC_SET_TIMER 27
312 
314 #define ICALL_PRIMITIVE_FUNC_STOP_TIMER 28
315 
320 #define ICALL_PRIMITIVE_FUNC_PWR_CONFIG_AC_ACTION 29
321 
323 #define ICALL_PRIMITIVE_FUNC_PWR_REQUIRE 30
324 
326 #define ICALL_PRIMITIVE_FUNC_PWR_DISPENSE 31
327 
329 #define ICALL_PRIMITIVE_FUNC_THREAD_SERVES 32
330 
332 #define ICALL_PRIMITIVE_FUNC_PWR_IS_STABLE_XOSC_HF 33
333 
335 #define ICALL_PRIMITIVE_FUNC_PWR_GET_TRANSITION_STATE 34
336 
338 #define ICALL_PRIMITIVE_FUNC_CREATE_TASK 35
339 
341 #define ICALL_PRIMITIVE_FUNC_CREATE_SEMAPHORE 36
342 
344 #define ICALL_PRIMITIVE_FUNC_WAIT_SEMAPHORE 37
345 
347 #define ICALL_PRIMITIVE_FUNC_SWITCH_XOSC_HF 38
348 
350 #define ICALL_PRIMITIVE_FUNC_PWR_GET_XOSC_STARTUP_TIME 39
351 
353 #define ICALL_PRIMITIVE_FUNC_REGISTER_ISR_EXT 40
354 
355 #ifdef ICALL_EVENTS
356 
357 #define ICALL_PRIMITIVE_FUNC_POST_SEMAPHORE 41
358 
360 #define ICALL_PRIMITIVE_FUNC_CREATE_EVENT 42
361 
363 #define ICALL_PRIMITIVE_FUNC_WAIT_EVENT 43
364 
366 #define ICALL_PRIMITIVE_FUNC_POST_EVENT 44
367 #endif /* ICALL_EVENTS */
368 
373 #define ICALL_MSG_FUNC_GET_LOCAL_MSG_ENTITY_ID 0
374 
375 #ifdef ICALL_EVENTS
376 
380 #define ICALL_MSG_EVENT_ID Event_Id_31
381 #endif
382 
384 typedef int_fast16_t ICall_Errno;
385 
387 typedef uint_least16_t ICall_ServiceEnum;
388 
390 typedef uint_least8_t ICall_MSGFormat;
391 
393 typedef uint_least16_t ICall_FuncID;
394 
396 typedef void *ICall_SyncHandle;
397 
398 typedef void *ICall_Semaphore;
399 
400 #ifdef ICALL_EVENTS
401 
402 typedef void *ICall_Event;
403 #endif /* ICALL_EVENTS */
404 
406 typedef uint_least8_t ICall_EntityID;
407 
409 typedef void *ICall_TimerID;
410 
419 typedef bool (*ICall_MsgMatchFn)(ICall_ServiceEnum src, ICall_EntityID dest,
420  const void *msg);
421 
426 typedef void (*ICall_TimerCback)(void *arg);
427 
430 {
432  ICall_ServiceEnum service;
434  ICall_FuncID func;
436 
439 {
443  ICall_EntityID entity;
446  ICall_SyncHandle msgSyncHdl;
448 
450 typedef struct _icall_alloc_args_t
451 {
455  size_t size;
457  void * ptr;
459 
461 typedef struct _icall_free_args_t
462 {
466  void * ptr;
468 
470 typedef struct _icall_send_args_t
471 {
475  ICall_EntityID src;
477  union
478  {
480  ICall_EntityID entityId;
482  ICall_ServiceEnum servId;
483  } dest;
485  ICall_MSGFormat format;
487  void *msg;
489 
492 {
496  union
497  {
499  ICall_ServiceEnum servId;
501  ICall_EntityID entityId;
502  } src;
504  ICall_EntityID dest;
506  void *msg;
508 
510 typedef struct _icall_wait_args_t
511 {
515  uint_least32_t milliseconds;
517 
519 typedef struct _icall_signal_args_t
520 {
524  ICall_SyncHandle syncHandle;
526 
529 {
533  ICall_SyncHandle syncHandle;
534  uint32_t events;
536 
537 /* forward reference */
539 
542 {
546  ICall_EntityID entityId;
548  ICall_ServiceEnum servId;
550 
552 typedef struct _icall_intnum_args_t
553 {
557  int_least32_t intnum;
559 
562 {
566  int_least32_t intnum;
568  void (*isrfunc)(void);
570 
573 {
574  ICall_FuncArgsHdr hdr; // common arguments
575  int_least32_t intnum; // interrupt number
576  void (*isrfunc)(void); // pointer to ISR
577  int intPriority; // interrupt priority
579 
585 {
589  uint_least32_t value;
591 
595 typedef struct _icall_getbool_args_t
596 {
600  bool value;
602 
605 {
609  bool incFlag;
613 
617 typedef uint_fast32_t ICall_PwrBitmap_t;
618 
624 {
628  ICall_PwrBitmap_t bitmap;
630 
635 {
639  uint_fast8_t state;
641 
646 {
650  uint_least32_t timeUntilWakeupInMs;
652  uint_least32_t value;
654 
657 {
661  ICall_ServiceEnum servId;
663  uint_fast8_t result;
665 
668 {
672  void (*entryfn)(size_t arg);
674  uint_least8_t priority;
676  uint_least16_t stacksize;
678  size_t arg;
680 
681 #ifdef ICALL_RTOS_SEMAPHORE_API
682 
683 typedef struct _icall_create_semaphore_args_t
684 {
686  ICall_FuncArgsHdr hdr;
692  uint_least8_t mode;
694  int initcount;
696  ICall_Semaphore sem;
697 } ICall_CreateSemaphoreArgs;
698 
700 typedef struct _icall_post_semaphore_args_t
701 {
703  ICall_FuncArgsHdr hdr;
705  ICall_Semaphore sem;
706 } ICall_PostSemaphoreArgs;
707 
709 typedef struct _icall_wait_semaphore_args_t
710 {
712  ICall_FuncArgsHdr hdr;
714  ICall_Semaphore sem;
716  uint_least32_t milliseconds;
717 } ICall_WaitSemaphoreArgs;
718 #endif /* ICALL_RTOS_SEMAPHORE_API */
719 
720 #ifdef ICALL_RTOS_EVENTS_API
721 
722 typedef struct _icall_create_event_args_t
723 {
725  ICall_FuncArgsHdr hdr;
727  ICall_Event event;
728 } ICall_CreateEventArgs;
729 
731 typedef struct _icall_post_event_args_t
732 {
734  ICall_FuncArgsHdr hdr;
736  ICall_Event event;
738  uint32_t events;
739 } ICall_PostEventArgs;
740 
742 typedef struct _icall_wait_event_args_t
743 {
745  ICall_FuncArgsHdr hdr;
747  ICall_Event event;
749  uint_least32_t milliseconds;
750 } ICall_WaitEventArgs;
751 #endif /* ICALL_RTOS_EVENTS_API */
752 
759 typedef struct _icall_msg_hdr_t
760 {
761  void *next;
762  uint8_t srcentity; /* Source entity across threads */
763  uint8_t dstentity; /* Destination entity across threads */
764  uint8_t format; /* message transformation request */
765  uint16_t len;
766  uint8_t dest_id;
767 } ICall_MsgHdr;
768 
776 typedef uint_fast8_t ICall_PwrTransition;
777 
778 /* Forward reference */
780 
789 typedef void (*ICall_PwrNotifyFn)(ICall_PwrTransition pwrTrans,
790  struct _icall_pwr_notify_data_t *obj);
791 
796 {
801  ICall_PwrNotifyFn _private;
803 
806 {
810  ICall_PwrNotifyFn fn;
814 
817 {
821  uint_least32_t milliseconds;
823  ICall_MsgMatchFn matchFn;
825  ICall_ServiceEnum servId;
827  ICall_EntityID dest;
829  void *msg;
831 
834 {
838  ICall_EntityID entity;
840 
846 typedef ICall_Errno (*ICall_Dispatcher)(ICall_FuncArgsHdr *args);
847 
851 typedef uint_least32_t ICall_CSState;
852 
857 typedef ICall_CSState (*ICall_EnterCS)(void);
858 
864 typedef void (*ICall_LeaveCS)(ICall_CSState key);
865 
867 extern ICall_Dispatcher ICall_dispatcher;
868 
870 extern ICall_EnterCS ICall_enterCriticalSection;
871 
873 extern ICall_LeaveCS ICall_leaveCriticalSection;
874 
878 {
879  ICall_Dispatcher dispatch;
880  ICall_EnterCS entercs;
881  ICall_LeaveCS leavecs;
883 
893 typedef void (*ICall_RemoteTaskEntry)(const ICall_RemoteTaskArg *arg0,
894  void *arg1);
895 
901 typedef ICall_Errno (*ICall_ServiceFunc)(ICall_FuncArgsHdr *args);
902 
905 {
909  ICall_ServiceEnum service;
911  ICall_ServiceFunc fn;
913  ICall_EntityID entity;
916  ICall_SyncHandle msgSyncHdl;
918 
921 {
925  uint_least32_t timeout;
927  ICall_TimerID timerid;
929  ICall_TimerCback cback;
931  void *arg;
933 
936 {
940  ICall_TimerID timerid;
942 
945 {
949  ICall_ServiceEnum service;
951  ICall_EntityID entity;
953  uint_least8_t localId;
955 
956 /* RemoTI RNP and Remote Icall Messaging Interface Enumeration */
957 typedef enum
958 {
960  ICALL_RTI_APP_CMD_EVENT = 0xE0,
962  ICALL_RTI_STACK_CMD_EVENT = 0xE1,
964  ICALL_RTI_APP_ASYNC_CMD_EVENT = 0xE2,
966  ICALL_RTI_APP_SYNC_CMD_EVENT = 0xE3,
968  ICALL_RCN_APP_ASYNC_CMD_EVENT = 0xE4,
970  ICALL_RCN_APP_SYNC_CMD_EVENT = 0xE5
971 }ICall_RemotiCmdEvent_t;
972 
973 #ifdef ICALL_SLIM
974 typedef uint_least32_t icall_slim_id_t;
975 
976 typedef struct _ICall_SlimCmdStatus_
977 {
978  uint_least8_t cmdId;
979 } ICall_SlimCmdStatus;
980 
981 PACKED_TYPEDEF_STRUCT
982 {
983  uint_least32_t * pointerStack;
984  icall_slim_id_t directAPI;
985 } icall_directAPIMsg_t;
986 
987 PACKED_TYPEDEF_STRUCT
988 {
989  ICall_MsgHdr hdr;
990  icall_directAPIMsg_t msg;
991 } icallSlimMsg_t;
992 
993 #endif /* ICALL_SLIM */
994 
1000 extern uint_least8_t ICall_resetReason;
1001 
1007 extern void ICall_init(void);
1008 
1030 extern void ICall_createRemoteTasks(void);
1031 
1039 extern ICall_EntityID ICall_searchServiceEntity(ICall_ServiceEnum service);
1040 
1041 #ifdef ICALL_SLIM
1042  /*******************************************************************************
1043  * @fn icall_directAPI
1044  *
1045  * @brief variadic function. will translate API id to the stack, with
1046  * up to 8 parameters (8 * uint32_t)
1047  *
1048  *
1049  * input parameters
1050  *
1051  * @param service: service the API belongs to
1052  * id: Id of the stack API to call.
1053  * ... : all parameters corresponding to the stack API to call.
1054  *
1055  * output parameters
1056  *
1057  * @param None
1058  *
1059  * @return register r0 will be populated with any return value fill by the Stack API.
1060  */
1061 uint32_t icall_directAPI( uint8_t service, icall_slim_id_t id, ... );
1062 #endif /* ICALL_SLIM */
1063 
1064 #ifdef ICALL_JT
1065 
1077 ICall_Errno ICall_registerApp(ICall_EntityID *entity, ICall_SyncHandle *msgSyncHdl);
1078 
1086 void *ICall_allocMsg(size_t size);
1087 
1093 void ICall_freeMsg(void *msg);
1094 
1134 ICall_Errno
1135 ICall_sendServiceMsg(ICall_EntityID src,
1136  ICall_ServiceEnum dest,
1137  ICall_MSGFormat format, void *msg);
1138 
1167 ICall_Errno
1168 ICall_fetchServiceMsg(ICall_ServiceEnum *src,
1169  ICall_EntityID *dest,
1170  void **msg);
1171 
1185 ICall_Errno ICall_wait(uint_fast32_t milliseconds);
1186 
1192 ICall_Errno ICall_signal(ICall_SyncHandle msgSyncHdl);
1193 
1208 ICall_Errno
1209 ICall_enrollService(ICall_ServiceEnum service,
1210  ICall_ServiceFunc fn,
1211  ICall_EntityID *entity,
1212  ICall_SyncHandle *msgSyncHdl);
1213 
1220 void *ICall_malloc(uint_least16_t size);
1221 
1226 void ICall_free(void *msg);
1227 
1241 ICall_Errno ICall_send(ICall_EntityID src,
1242  ICall_EntityID dest,
1243  ICall_MSGFormat format,
1244  void *msg);
1245 
1265 ICall_Errno ICall_fetchMsg(ICall_EntityID *src,
1266  ICall_EntityID *dest,
1267  void **msg);
1268 
1288 ICall_Errno ICall_entityId2ServiceId(ICall_EntityID entityId,
1289  ICall_ServiceEnum *servId);
1290 
1299 ICall_Errno
1300 ICall_abort(void);
1306 ICall_Errno
1307 ICall_enableInt(int intnum);
1313 ICall_Errno
1314 ICall_disableInt(int intnum);
1315 
1320 ICall_Errno
1321 ICall_enableMInt(void);
1322 
1327 ICall_Errno
1328 ICall_disableMInt(void);
1329 
1338 ICall_Errno
1339 ICall_registerISR(int intnum, void (*isrfunc)(void));
1340 
1341 ICall_Errno
1342 ICall_registerISR_Ext(int intnum, void (*isrfunc)(void), int intPriority );
1343 
1348 uint_fast32_t
1349 ICall_getTicks(void);
1350 
1355 uint_fast32_t
1356 ICall_getTickPeriod(void);
1363 uint_fast32_t
1364 ICall_getMaxMSecs(void);
1365 
1390 ICall_Errno
1391 ICall_setTimerMSecs(uint_fast32_t msecs,
1392  ICall_TimerCback cback,
1393  void *arg,
1394  ICall_TimerID *id);
1395 
1418 ICall_Errno
1419 ICall_setTimer(uint_fast32_t ticks,
1420  ICall_TimerCback cback,
1421  void *arg,
1422  ICall_TimerID *id);
1423 
1429 void
1430 ICall_stopTimer(ICall_TimerID id);
1447 bool
1448 ICall_pwrUpdActivityCounter(bool incFlag);
1449 
1467 ICall_Errno
1468 ICall_pwrConfigACAction(ICall_PwrBitmap_t bitmap);
1480 ICall_Errno
1481 ICall_pwrRequire(ICall_PwrBitmap_t bitmap);
1482 
1494 ICall_Errno
1495 ICall_pwrDispense(ICall_PwrBitmap_t bitmap);
1496 
1505 bool
1506 ICall_pwrIsStableXOSCHF(void);
1507 
1514 ICall_Errno
1515 ICall_pwrSwitchXOSCHF(void);
1521 uint32_t
1522 ICall_pwrGetXOSCStartupTime(uint_fast32_t timeUntilWakeupInMs);
1523 
1538 ICall_Errno
1539 ICall_pwrRegisterNotify(ICall_PwrNotifyFn fn, ICall_PwrNotifyData *obj);
1546 uint_fast8_t
1547 ICall_pwrGetTransitionState(void);
1548 
1560 ICall_Errno
1561 ICall_createTask(void (*entryfn)(size_t arg), uint_fast8_t priority,
1562  uint_fast16_t stacksize, size_t arg);
1563 
1564 #ifdef ICALL_RTOS_SEMAPHORE_API
1565 
1575 ICall_Semaphore
1576 ICall_createSemaphore(uint_fast8_t mode, int initcount);
1577 #endif
1578 
1579 #ifdef ICALL_RTOS_SEMAPHORE_API
1580 
1587 ICall_Errno
1588 ICall_postSemaphore(ICall_Semaphore sem);
1589 #endif /* ICALL_RTOS_SEMAPHORE_API */
1590 
1591 #ifdef ICALL_RTOS_EVENTS_API
1592 
1598 ICall_Event
1599 ICall_createEvent(void);
1607 ICall_Errno
1608 ICall_postEvent(ICall_Event event, uint32_t events);
1622 ICall_Errno
1623 ICall_waitEvent(ICall_Event event, uint_fast32_t milliseconds);
1624 #endif /* ICALL_RTOS_EVENTS_API */
1625 
1626 #ifdef ICALL_RTOS_SEMAPHORE_API
1627 
1640 ICall_Errno
1641 ICall_waitSemaphore(ICall_Semaphore sem, uint_fast32_t milliseconds);
1642 #endif /* ICALL_RTOS_SEMAPHORE_API */
1643 
1670 ICall_Errno
1671 ICall_waitMatch(uint_least32_t milliseconds,
1672  ICall_MsgMatchFn matchFn,
1673  ICall_ServiceEnum *src,
1674  ICall_EntityID *dest,
1675  void **msg);
1676 
1687 ICall_EntityID
1688 ICall_getEntityId(void);
1697 uint_fast8_t
1698 ICall_threadServes(ICall_ServiceEnum service);
1699 
1714 uint_fast8_t
1715 ICall_getLocalMsgEntityId(ICall_ServiceEnum service, ICall_EntityID entity);
1716 
1717 #else /* ICALL_JT */
1718 
1731 static ICall_Errno ICall_registerApp(ICall_EntityID *entity,
1732  ICall_SyncHandle *msgSyncHdl)
1733 {
1734  ICall_RegisterAppArgs args;
1735  ICall_Errno errno;
1736  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
1737  args.hdr.func = ICALL_PRIMITIVE_FUNC_REGISTER_APP;
1738  errno = ICall_dispatcher(&args.hdr);
1739  *entity = args.entity;
1740  *msgSyncHdl = args.msgSyncHdl;
1741  return errno;
1742 }
1743 
1751 static void *ICall_allocMsg(size_t size)
1752 {
1753  ICall_AllocArgs args;
1754  ICall_Errno errno;
1755 
1756  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
1757  args.hdr.func = ICALL_PRIMITIVE_FUNC_MSG_ALLOC;
1758  args.size = size;
1759  errno = ICall_dispatcher(&args.hdr);
1760  if (errno != ICALL_ERRNO_SUCCESS)
1761  {
1762  return NULL;
1763  }
1764  return args.ptr;
1765 }
1766 
1772 static void ICall_freeMsg(void *msg)
1773 {
1774  ICall_FreeArgs args;
1775  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
1776  args.hdr.func = ICALL_PRIMITIVE_FUNC_MSG_FREE;
1777  args.ptr = msg;
1778  (void) ICall_dispatcher(&args.hdr);
1779 }
1780 
1820 static ICall_Errno
1821 ICall_sendServiceMsg(ICall_EntityID src,
1822  ICall_ServiceEnum dest,
1823  ICall_MSGFormat format, void *msg)
1824 {
1825  ICall_SendArgs args;
1826  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
1827  args.hdr.func = ICALL_PRIMITIVE_FUNC_SEND_SERV_MSG;
1828  args.src = src;
1829  args.dest.servId = dest;
1830  args.format = format;
1831  args.msg = msg;
1832  return ICall_dispatcher(&args.hdr);
1833 }
1834 
1863 static ICall_Errno
1864 ICall_fetchServiceMsg(ICall_ServiceEnum *src,
1865  ICall_EntityID *dest,
1866  void **msg)
1867 {
1868  ICall_FetchMsgArgs args;
1869  ICall_Errno errno;
1870  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
1871  args.hdr.func = ICALL_PRIMITIVE_FUNC_FETCH_SERV_MSG;
1872  errno = ICall_dispatcher(&args.hdr);
1873  *src = args.src.servId;
1874  *dest = args.dest;
1875  *msg = args.msg;
1876  return errno;
1877 }
1878 
1892 static ICall_Errno ICall_wait(uint_fast32_t milliseconds)
1893 {
1894  ICall_WaitArgs args;
1895  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
1896  args.hdr.func = ICALL_PRIMITIVE_FUNC_WAIT;
1897  args.milliseconds = milliseconds;
1898  return ICall_dispatcher(&args.hdr);
1899 }
1900 
1906 static ICall_Errno ICall_signal(ICall_SyncHandle msgSyncHdl)
1907 {
1908  ICall_SignalArgs args;
1909  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
1910  args.hdr.func = ICALL_PRIMITIVE_FUNC_SIGNAL;
1911  args.syncHandle = msgSyncHdl;
1912 
1913  return ICall_dispatcher(&args.hdr);
1914 }
1915 
1930 static ICall_Errno
1931 ICall_enrollService(ICall_ServiceEnum service,
1932  ICall_ServiceFunc fn,
1933  ICall_EntityID *entity,
1934  ICall_SyncHandle *msgSyncHdl)
1935 {
1937  ICall_Errno errno;
1938  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
1939  args.hdr.func = ICALL_PRIMITIVE_FUNC_ENROLL;
1940  args.service = service;
1941  args.fn = fn;
1942  errno = ICall_dispatcher(&args.hdr);
1943  *entity = args.entity;
1944  *msgSyncHdl = args.msgSyncHdl;
1945  return errno;
1946 }
1947 
1954 static void *ICall_malloc(uint_least16_t size)
1955 {
1956  ICall_AllocArgs args;
1957  ICall_Errno errno;
1958 
1959  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
1960  args.hdr.func = ICALL_PRIMITIVE_FUNC_MALLOC;
1961  args.size = size;
1962  errno = ICall_dispatcher(&args.hdr);
1963  if (errno != ICALL_ERRNO_SUCCESS)
1964  {
1965  return NULL;
1966  }
1967  return args.ptr;
1968 }
1969 
1974 static void ICall_free(void *msg)
1975 {
1976  ICall_FreeArgs args;
1977  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
1978  args.hdr.func = ICALL_PRIMITIVE_FUNC_FREE;
1979  args.ptr = msg;
1980  (void) ICall_dispatcher(&args.hdr);
1981 }
1982 
1996 static ICall_Errno ICall_send(ICall_EntityID src,
1997  ICall_EntityID dest,
1998  ICall_MSGFormat format,
1999  void *msg)
2000 {
2001  ICall_SendArgs args;
2002  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2003  args.hdr.func = ICALL_PRIMITIVE_FUNC_SEND_MSG;
2004  args.src = src;
2005  args.dest.entityId = dest;
2006  args.format = format;
2007  args.msg = msg;
2008  return ICall_dispatcher(&args.hdr);
2009 }
2010 
2030 static ICall_Errno ICall_fetchMsg(ICall_EntityID *src,
2031  ICall_EntityID *dest,
2032  void **msg)
2033 {
2034  ICall_FetchMsgArgs args;
2035  ICall_Errno errno;
2036  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2037  args.hdr.func = ICALL_PRIMITIVE_FUNC_FETCH_MSG;
2038  errno = ICall_dispatcher(&args.hdr);
2039  *src = args.src.entityId;
2040  *dest = args.dest;
2041  *msg = args.msg;
2042  return errno;
2043 }
2044 
2064 static ICall_Errno ICall_entityId2ServiceId(ICall_EntityID entityId,
2065  ICall_ServiceEnum *servId)
2066 {
2068  ICall_Errno errno;
2069  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2070  args.hdr.func = ICALL_PRIMITIVE_FUNC_ENTITY2SERVICE;
2071  args.entityId = entityId;
2072  errno = ICall_dispatcher(&args.hdr);
2073  *servId = args.servId;
2074  return errno;
2075 }
2076 
2085 static ICall_Errno
2086 ICall_abort(void)
2087 {
2088  HAL_ASSERT( HAL_ASSERT_CAUSE_ICALL_ABORT );
2089 
2090  ICall_FuncArgsHdr args;
2091  args.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2092  args.func = ICALL_PRIMITIVE_FUNC_ABORT;
2093  return ICall_dispatcher(&args);
2094 }
2095 
2101 static ICall_Errno
2102 ICall_enableInt(int intnum)
2103 {
2104  ICall_IntNumArgs args;
2105  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2106  args.hdr.func = ICALL_PRIMITIVE_FUNC_ENABLE_INT;
2107  args.intnum = intnum;
2108  return ICall_dispatcher(&args.hdr);
2109 }
2110 
2116 static ICall_Errno
2117 ICall_disableInt(int intnum)
2118 {
2119  ICall_IntNumArgs args;
2120  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2121  args.hdr.func = ICALL_PRIMITIVE_FUNC_DISABLE_INT;
2122  args.intnum = intnum;
2123  return ICall_dispatcher(&args.hdr);
2124 }
2125 
2130 static ICall_Errno
2131 ICall_enableMInt(void)
2132 {
2133  ICall_FuncArgsHdr args;
2134  args.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2135  args.func = ICALL_PRIMITIVE_FUNC_ENABLE_MINT;
2136  return ICall_dispatcher(&args);
2137 }
2138 
2143 static ICall_Errno
2144 ICall_disableMInt(void)
2145 {
2146  ICall_FuncArgsHdr args;
2147  args.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2148  args.func = ICALL_PRIMITIVE_FUNC_DISABLE_MINT;
2149  return ICall_dispatcher(&args);
2150 }
2151 
2160 static ICall_Errno
2161 ICall_registerISR(int intnum, void (*isrfunc)(void))
2162 {
2163  ICall_RegisterISRArgs args;
2164  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2165  args.hdr.func = ICALL_PRIMITIVE_FUNC_REGISTER_ISR;
2166  args.intnum = intnum;
2167  args.isrfunc = isrfunc;
2168  return ICall_dispatcher(&args.hdr);
2169 }
2170 
2171 static ICall_Errno
2172 ICall_registerISR_Ext(int intnum, void (*isrfunc)(void), int intPriority )
2173 {
2175  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2176  args.hdr.func = ICALL_PRIMITIVE_FUNC_REGISTER_ISR_EXT;
2177  args.intnum = intnum;
2178  args.isrfunc = isrfunc;
2179  args.intPriority = intPriority;
2180  return ICall_dispatcher(&args.hdr);
2181 }
2182 
2187 static uint_fast32_t
2188 ICall_getTicks(void)
2189 {
2190  ICall_GetUint32Args args;
2191  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2192  args.hdr.func = ICALL_PRIMITIVE_FUNC_GET_TICKS;
2193  (void) ICall_dispatcher(&args.hdr);
2194  return args.value;
2195 }
2196 
2201 static uint_fast32_t
2202 ICall_getTickPeriod(void)
2203 {
2204  ICall_GetUint32Args args;
2205  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2206  args.hdr.func = ICALL_PRIMITIVE_FUNC_GET_TICK_PERIOD;
2207  (void) ICall_dispatcher(&args.hdr);
2208  return args.value;
2209 }
2210 
2217 static uint_fast32_t
2218 ICall_getMaxMSecs(void)
2219 {
2220  ICall_GetUint32Args args;
2221  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2222  args.hdr.func = ICALL_PRIMITIVE_FUNC_GET_MAX_MILLISECONDS;
2223  (void) ICall_dispatcher(&args.hdr);
2224  return args.value;
2225 }
2226 
2251 static ICall_Errno
2252 ICall_setTimerMSecs(uint_fast32_t msecs,
2253  ICall_TimerCback cback,
2254  void *arg,
2255  ICall_TimerID *id)
2256 {
2257  ICall_SetTimerArgs args;
2258  ICall_Errno errno;
2259  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2260  args.hdr.func = ICALL_PRIMITIVE_FUNC_SET_TIMER_MSECS;
2261  args.timeout = msecs;
2262  args.cback = cback;
2263  args.arg = arg;
2264  args.timerid = *id;
2265  errno = ICall_dispatcher(&args.hdr);
2266  *id = args.timerid;
2267 
2268  return errno;
2269 }
2270 
2293 static ICall_Errno
2294 ICall_setTimer(uint_fast32_t ticks,
2295  ICall_TimerCback cback,
2296  void *arg,
2297  ICall_TimerID *id)
2298 {
2299  ICall_SetTimerArgs args;
2300  ICall_Errno errno;
2301  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2302  args.hdr.func = ICALL_PRIMITIVE_FUNC_SET_TIMER;
2303  args.timeout = ticks;
2304  args.cback = cback;
2305  args.arg = arg;
2306  args.timerid = *id;
2307  errno = ICall_dispatcher(&args.hdr);
2308  *id = args.timerid;
2309 
2310  return errno;
2311 }
2312 
2318 static void
2319 ICall_stopTimer(ICall_TimerID id)
2320 {
2321  ICall_StopTimerArgs args;
2322  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2323  args.hdr.func = ICALL_PRIMITIVE_FUNC_STOP_TIMER;
2324  args.timerid = id;
2325  (void) ICall_dispatcher(&args.hdr);
2326 }
2327 
2344 static bool
2345 ICall_pwrUpdActivityCounter(bool incFlag)
2346 {
2348  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2349  args.hdr.func = ICALL_PRIMITIVE_FUNC_PWR_UPD_ACTIVITY_COUNTER;
2350  args.incFlag = incFlag;
2351  (void)ICall_dispatcher(&args.hdr);
2352  return (args.pwrRequired);
2353 }
2354 
2372 static ICall_Errno
2373 ICall_pwrConfigACAction(ICall_PwrBitmap_t bitmap)
2374 {
2375  ICall_PwrBitmapArgs args;
2376  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2377  args.hdr.func = ICALL_PRIMITIVE_FUNC_PWR_CONFIG_AC_ACTION;
2378  args.bitmap = bitmap;
2379  return ICall_dispatcher(&args.hdr);
2380 }
2381 
2393 static ICall_Errno
2394 ICall_pwrRequire(ICall_PwrBitmap_t bitmap)
2395 {
2396  ICall_PwrBitmapArgs args;
2397  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2398  args.hdr.func = ICALL_PRIMITIVE_FUNC_PWR_REQUIRE;
2399  args.bitmap = bitmap;
2400  return ICall_dispatcher(&args.hdr);
2401 }
2402 
2414 static ICall_Errno
2415 ICall_pwrDispense(ICall_PwrBitmap_t bitmap)
2416 {
2417  ICall_PwrBitmapArgs args;
2418  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2419  args.hdr.func = ICALL_PRIMITIVE_FUNC_PWR_DISPENSE;
2420  args.bitmap = bitmap;
2421  return ICall_dispatcher(&args.hdr);
2422 }
2423 
2432 static bool
2433 ICall_pwrIsStableXOSCHF(void)
2434 {
2435  ICall_GetBoolArgs args;
2436  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2437  args.hdr.func = ICALL_PRIMITIVE_FUNC_PWR_IS_STABLE_XOSC_HF;
2438  (void) ICall_dispatcher(&args.hdr);
2439  return args.value;
2440 }
2441 
2448 static ICall_Errno
2449 ICall_pwrSwitchXOSCHF(void)
2450 {
2451  ICall_FuncArgsHdr args;
2452  args.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2453  args.func = ICALL_PRIMITIVE_FUNC_SWITCH_XOSC_HF;
2454  return ICall_dispatcher(&args);
2455 }
2456 
2462 static uint32_t
2463 ICall_pwrGetXOSCStartupTime(uint_fast32_t timeUntilWakeupInMs)
2464 {
2466  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2467  args.hdr.func = ICALL_PRIMITIVE_FUNC_PWR_GET_XOSC_STARTUP_TIME;
2468  args.timeUntilWakeupInMs = timeUntilWakeupInMs;
2469  (void) ICall_dispatcher(&args.hdr);
2470  return args.value;
2471 }
2472 
2487 static ICall_Errno
2488 ICall_pwrRegisterNotify(ICall_PwrNotifyFn fn, ICall_PwrNotifyData *obj)
2489 {
2491  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2492  args.hdr.func = ICALL_PRIMITIVE_FUNC_PWR_REGISTER_NOTIFY;
2493  args.fn = fn;
2494  args.obj = obj;
2495  return ICall_dispatcher(&args.hdr);
2496 }
2497 
2504 static uint_fast8_t
2505 ICall_pwrGetTransitionState(void)
2506 {
2508  ICall_Errno errno;
2509 
2510  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2511  args.hdr.func = ICALL_PRIMITIVE_FUNC_PWR_GET_TRANSITION_STATE;
2512  errno = ICall_dispatcher(&args.hdr);
2513 
2514  if (errno == ICALL_ERRNO_SUCCESS)
2515  {
2516  return args.state;
2517  }
2518  return 0;
2519 }
2520 
2532 static ICall_Errno
2533 ICall_createTask(void (*entryfn)(size_t arg), uint_fast8_t priority,
2534  uint_fast16_t stacksize, size_t arg)
2535 {
2536  ICall_CreateTaskArgs args;
2537 
2538  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2539  args.hdr.func = ICALL_PRIMITIVE_FUNC_CREATE_TASK;
2540  args.entryfn = entryfn;
2541  args.priority = priority;
2542  args.stacksize = stacksize;
2543  args.arg = arg;
2544  return ICall_dispatcher(&args.hdr);
2545 }
2546 
2547 #ifdef ICALL_RTOS_SEMAPHORE_API
2548 
2558 static ICall_Semaphore
2559 ICall_createSemaphore(uint_fast8_t mode, int initcount)
2560 {
2561  ICall_CreateSemaphoreArgs args;
2562  ICall_Errno errno;
2563 
2564  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2565  args.hdr.func = ICALL_PRIMITIVE_FUNC_CREATE_SEMAPHORE;
2566  args.mode = mode;
2567  args.initcount = initcount;
2568  errno = ICall_dispatcher(&args.hdr);
2569  if (errno == ICALL_ERRNO_SUCCESS)
2570  {
2571  return args.sem;
2572  }
2573  return NULL;
2574 }
2575 #endif
2576 
2577 #ifdef ICALL_RTOS_SEMAPHORE_API
2578 
2585 static ICall_Errno
2586 ICall_postSemaphore(ICall_Semaphore sem)
2587 {
2588  ICall_PostSemaphoreArgs args;
2589 
2590  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2591  args.hdr.func = ICALL_PRIMITIVE_FUNC_POST_SEMAPHORE;
2592  args.sem = sem;
2593  return ICall_dispatcher(&args.hdr);
2594 }
2595 #endif /* ICALL_RTOS_SEMAPHORE_API */
2596 
2597 #ifdef ICALL_RTOS_EVENTS_API
2598 
2604 static ICall_Event
2605 ICall_createEvent(void)
2606 {
2607  ICall_CreateEventArgs args;
2608  ICall_Errno errno;
2609 
2610  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2611  args.hdr.func = ICALL_PRIMITIVE_FUNC_CREATE_EVENT;
2612  errno = ICall_dispatcher(&args.hdr);
2613  if (errno == ICALL_ERRNO_SUCCESS)
2614  {
2615  return args.event;
2616  }
2617  return NULL;
2618 }
2619 
2627 static ICall_Errno
2628 ICall_postEvent(ICall_Event event, uint32_t events)
2629 {
2630  ICall_PostEventArgs args;
2631 
2632  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2633  args.hdr.func = ICALL_PRIMITIVE_FUNC_POST_EVENT;
2634  args.event = event;
2635  args.events = events;
2636  return ICall_dispatcher(&args.hdr);
2637 }
2651 static ICall_Errno
2652 ICall_waitEvent(ICall_Event event, uint_fast32_t milliseconds)
2653 {
2654  ICall_WaitEventArgs args;
2655 
2656  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2657  args.hdr.func = ICALL_PRIMITIVE_FUNC_WAIT_EVENT;
2658  args.event = event;
2659  args.milliseconds = milliseconds;
2660  return ICall_dispatcher(&args.hdr);
2661 }
2662 #endif /* ICALL_RTOS_EVENTS_API */
2663 
2664 #ifdef ICALL_RTOS_SEMAPHORE_API
2665 
2678 static ICall_Errno
2679 ICall_waitSemaphore(ICall_Semaphore sem, uint_fast32_t milliseconds)
2680 {
2681  ICall_WaitSemaphoreArgs args;
2682 
2683  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2684  args.hdr.func = ICALL_PRIMITIVE_FUNC_WAIT_SEMAPHORE;
2685  args.sem = sem;
2686  args.milliseconds = milliseconds;
2687  return ICall_dispatcher(&args.hdr);
2688 }
2689 #endif /* ICALL_RTOS_SEMAPHORE_API */
2690 
2717 static ICall_Errno
2718 ICall_waitMatch(uint_least32_t milliseconds,
2719  ICall_MsgMatchFn matchFn,
2720  ICall_ServiceEnum *src,
2721  ICall_EntityID *dest,
2722  void **msg)
2723 {
2724  ICall_WaitMatchArgs args;
2725  ICall_Errno errno;
2726  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2727  args.hdr.func = ICALL_PRIMITIVE_FUNC_WAIT_MATCH;
2728  args.milliseconds = milliseconds;
2729  args.matchFn = matchFn;
2730  errno = ICall_dispatcher(&args.hdr);
2731  if (src != NULL)
2732  {
2733  *src = args.servId;
2734  }
2735  if (dest != NULL)
2736  {
2737  *dest = args.dest;
2738  }
2739  *msg = args.msg;
2740  return errno;
2741 }
2742 
2753 static ICall_EntityID
2754 ICall_getEntityId(void)
2755 {
2756  ICall_GetEntityIdArgs args;
2757  ICall_Errno errno;
2758  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2759  args.hdr.func = ICALL_PRIMITIVE_FUNC_GET_ENTITY_ID;
2760  errno = ICall_dispatcher(&args.hdr);
2761  if (errno == ICALL_ERRNO_SUCCESS)
2762  {
2763  return args.entity;
2764  }
2765  return ICALL_INVALID_ENTITY_ID;
2766 }
2767 
2776 static uint_fast8_t
2777 ICall_threadServes(ICall_ServiceEnum service)
2778 {
2780  ICall_Errno errno;
2781 
2782  args.hdr.service = ICALL_SERVICE_CLASS_PRIMITIVE;
2783  args.hdr.func = ICALL_PRIMITIVE_FUNC_THREAD_SERVES;
2784  args.servId = service;
2785  errno = ICall_dispatcher(&args.hdr);
2786  if (errno == ICALL_ERRNO_SUCCESS)
2787  {
2788  return args.result;
2789  }
2790  return 0;
2791 }
2792 
2807 static uint_fast8_t
2808 ICall_getLocalMsgEntityId(ICall_ServiceEnum service, ICall_EntityID entity)
2809 {
2811  ICall_Errno errno;
2812  args.hdr.service = service;
2813  args.hdr.func = ICALL_MSG_FUNC_GET_LOCAL_MSG_ENTITY_ID;
2814  args.entity = entity;
2815  errno = ICall_dispatcher(&args.hdr);
2816  if (errno == ICALL_ERRNO_SUCCESS)
2817  {
2818  return args.localId;
2819  }
2820  return 0xFF;
2821 }
2822 #endif /* ICALL_JT */
2823 
2824 #ifdef __cplusplus
2825 }
2826 #endif
2827 
2828 #endif /* ICALL_H */
ICall_FuncArgsHdr hdr
Definition: icall.h:598
ICall_FuncArgsHdr hdr
Definition: icall.h:531
ICall_PwrNotifyData * obj
Definition: icall.h:812
ICall_TimerCback cback
Definition: icall.h:929
Definition: icall.h:904
ICall_EntityID entityId
Definition: icall.h:501
ICall_MsgMatchFn matchFn
Definition: icall.h:823
ICall_ServiceEnum servId
Definition: icall.h:482
ICall_FuncArgsHdr hdr
Definition: icall.h:564
Definition: icall.h:470
ICall_EntityID dest
Definition: icall.h:827
ICall_ServiceEnum servId
Definition: icall.h:548
Definition: icall.h:759
Definition: icall.h:805
ICall_SyncHandle syncHandle
Definition: icall.h:533
void * ptr
Definition: icall.h:466
uint_least8_t localId
Definition: icall.h:953
Definition: icall.h:528
ICall_FuncArgsHdr hdr
Definition: icall.h:607
Definition: icall.h:667
ICall_EntityID entity
Definition: icall.h:838
Definition: icall.h:519
Definition: icall.h:935
ICall_SyncHandle syncHandle
Definition: icall.h:524
size_t arg
Definition: icall.h:678
ICall_EntityID entity
Definition: icall.h:913
uint_least8_t priority
Definition: icall.h:674
void * msg
Definition: icall.h:829
uint_fast8_t state
Definition: icall.h:639
ICall_ServiceEnum servId
Definition: icall.h:661
ICall_FuncArgsHdr hdr
Definition: icall.h:555
Definition: icall.h:795
uint_least32_t timeUntilWakeupInMs
Definition: icall.h:650
Definition: icall.h:595
Definition: icall.h:461
void * arg
Definition: icall.h:931
ICall_FuncArgsHdr hdr
Definition: icall.h:659
ICall_FuncArgsHdr hdr
Definition: icall.h:947
uint_least32_t value
Definition: icall.h:652
Definition: icall.h:552
uint_fast8_t result
Definition: icall.h:663
Definition: icall.h:656
void(* entryfn)(size_t arg)
Definition: icall.h:672
bool value
Definition: icall.h:600
Definition: icall.h:429
Definition: icall.h:491
uint_least32_t milliseconds
Definition: icall.h:515
ICall_ServiceEnum servId
Definition: icall.h:499
void * msg
Definition: icall.h:506
Definition: icall.h:572
ICall_EntityID src
Definition: icall.h:475
ICall_FuncArgsHdr hdr
Definition: icall.h:544
ICall_EntityID entity
Definition: icall.h:951
Definition: icall.h:877
ICall_EntityID entity
Definition: icall.h:443
ICall_FuncArgsHdr hdr
Definition: icall.h:819
ICall_TimerID timerid
Definition: icall.h:940
ICall_FuncArgsHdr hdr
Definition: icall.h:587
ICall_ServiceEnum service
Definition: icall.h:909
size_t size
Definition: icall.h:455
uint_least32_t value
Definition: icall.h:589
ICall_PwrNotifyFn fn
Definition: icall.h:810
void(* isrfunc)(void)
Definition: icall.h:568
Definition: icall.h:584
ICall_ServiceFunc fn
Definition: icall.h:911
ICall_FuncArgsHdr hdr
Definition: icall.h:938
ICall_FuncArgsHdr hdr
Definition: icall.h:453
ICall_FuncArgsHdr hdr
Definition: icall.h:441
Definition: icall.h:623
union _icall_fetch_msg_args_t::@1 src
ICall_EntityID entityId
Definition: icall.h:480
ICall_FuncArgsHdr hdr
Definition: icall.h:648
Definition: icall.h:541
ICall_FuncArgsHdr hdr
Definition: icall.h:670
ICall_ServiceEnum service
Definition: icall.h:432
bool incFlag
Definition: icall.h:609
uint_least32_t milliseconds
Definition: icall.h:821
ICall_EntityID entityId
Definition: icall.h:546
ICall_PwrBitmap_t bitmap
Definition: icall.h:628
Definition: icall.h:833
Definition: icall.h:450
Definition: icall.h:816
bool pwrRequired
Definition: icall.h:611
ICall_FuncArgsHdr hdr
Definition: icall.h:626
ICall_TimerID timerid
Definition: icall.h:927
Definition: icall.h:510
ICall_FuncArgsHdr hdr
Definition: icall.h:836
uint_least32_t timeout
Definition: icall.h:925
ICall_FuncID func
Definition: icall.h:434
ICall_MSGFormat format
Definition: icall.h:485
ICall_FuncArgsHdr hdr
Definition: icall.h:637
ICall_EntityID dest
Definition: icall.h:504
ICall_FuncArgsHdr hdr
Definition: icall.h:473
ICall_SyncHandle msgSyncHdl
Definition: icall.h:916
ICall_ServiceEnum servId
Definition: icall.h:825
union _icall_send_args_t::@0 dest
Definition: icall.h:561
ICall_FuncArgsHdr hdr
Definition: icall.h:513
ICall_FuncArgsHdr hdr
Definition: icall.h:494
Definition: icall.h:438
ICall_FuncArgsHdr hdr
Definition: icall.h:808
uint_least16_t stacksize
Definition: icall.h:676
ICall_SyncHandle msgSyncHdl
Definition: icall.h:446
void * msg
Definition: icall.h:487
int_least32_t intnum
Definition: icall.h:566
ICall_FuncArgsHdr hdr
Definition: icall.h:923
ICall_FuncArgsHdr hdr
Definition: icall.h:907
ICall_FuncArgsHdr hdr
Definition: icall.h:522
ICall_ServiceEnum service
Definition: icall.h:949
Definition: icall.h:920
int_least32_t intnum
Definition: icall.h:557
ICall_PwrNotifyFn _private
Definition: icall.h:801
ICall_FuncArgsHdr hdr
Definition: icall.h:464
void * ptr
Definition: icall.h:457