32 #include "hal_assert.h" 44 #define ICALL_SERVICE_CLASS_MASK 0xFFF8 52 #define ICALL_SERVICE_INSTANCE_MASK 0x0007 60 #define ICALL_SERVICE_CLASS_PRIMITIVE 0x0008 65 #define ICALL_SERVICE_CLASS_BLE 0x0010 68 #define ICALL_SERVICE_CLASS_TIMAC 0x0018 71 #define ICALL_SERVICE_CLASS_REMOTI_RTI 0x0020 74 #define ICALL_SERVICE_CLASS_REMOTI_RCN 0x0028 77 #define ICALL_SERVICE_CLASS_ZSTACK 0x0030 80 #define ICALL_SERVICE_CLASS_NPI 0x0038 83 #define ICALL_SERVICE_CLASS_UNPI 0x0040 86 #define ICALL_SERVICE_CLASS_BLE_MSG 0x0050 96 #define ICALL_SERVICE_CLASS_CRYPTO 0x0080 103 #define ICALL_SERVICE_CLASS_BLE_BOARD 0x0088 110 #define ICALL_SERVICE_CLASS_TIMAC_BOARD 0x0090 117 #define ICALL_SERVICE_CLASS_RADIO 0x0098 124 #define ICALL_SERVICE_CLASS_DUMMY 0x0100 132 #define ICALL_SERVICE_CLASS_DUMMY_BOARD 0x0200 137 #define ICALL_INVALID_ENTITY_ID 0xffu 142 #define ICALL_INVALID_TIMER_ID NULL 152 #define ICALL_UNDEF_DEST_ID 0xffu 156 #define ICALL_ERRNO_SUCCESS 0 159 #define ICALL_ERRNO_TIMEOUT 1 162 #define ICALL_ERRNO_NOMSG 2 169 #define ICALL_ERRNO_INVALID_SERVICE -1 175 #define ICALL_ERRNO_INVALID_FUNCTION -2 178 #define ICALL_ERRNO_INVALID_PARAMETER -3 181 #define ICALL_ERRNO_NO_RESOURCE -4 188 #define ICALL_ERRNO_UNKNOWN_THREAD -5 191 #define ICALL_ERRNO_CORRUPT_MSG -6 194 #define ICALL_ERRNO_OVERFLOW -7 197 #define ICALL_ERRNO_UNDERFLOW -8 200 #define ICALL_MSG_FORMAT_KEEP 0 206 #define ICALL_MSG_FORMAT_1ST_CHAR_TASK_ID 1 212 #define ICALL_MSG_FORMAT_3RD_CHAR_TASK_ID 2 218 #define ICALL_MSG_FORMAT_DIRECT_API_ID 3 223 #define ICALL_LITE_DIRECT_API_DONE_CMD_ID 0x42 230 #define ICALL_TIMEOUT_FOREVER 0xfffffffful 236 #ifndef ICALL_TIMEOUT_PREDEFINE 237 #define ICALL_TIMEOUT_PREDEFINE 5000 243 #define ICALL_SEMAPHORE_MODE_COUNTING 0 248 #define ICALL_SEMAPHORE_MODE_BINARY 1 254 #define ICALL_PRIMITIVE_FUNC_ENROLL 0 257 #define ICALL_PRIMITIVE_FUNC_REGISTER_APP 1 260 #define ICALL_PRIMITIVE_FUNC_MSG_ALLOC 2 263 #define ICALL_PRIMITIVE_FUNC_MSG_FREE 3 266 #define ICALL_PRIMITIVE_FUNC_MALLOC 4 269 #define ICALL_PRIMITIVE_FUNC_FREE 5 272 #define ICALL_PRIMITIVE_FUNC_SEND_MSG 6 275 #define ICALL_PRIMITIVE_FUNC_FETCH_MSG 7 278 #define ICALL_PRIMITIVE_FUNC_SEND_SERV_MSG 8 281 #define ICALL_PRIMITIVE_FUNC_FETCH_SERV_MSG 9 284 #define ICALL_PRIMITIVE_FUNC_WAIT 10 287 #define ICALL_PRIMITIVE_FUNC_SIGNAL 11 290 #define ICALL_PRIMITIVE_FUNC_ABORT 12 293 #define ICALL_PRIMITIVE_FUNC_ENABLE_INT 13 296 #define ICALL_PRIMITIVE_FUNC_DISABLE_INT 14 299 #define ICALL_PRIMITIVE_FUNC_ENABLE_MINT 15 302 #define ICALL_PRIMITIVE_FUNC_DISABLE_MINT 16 305 #define ICALL_PRIMITIVE_FUNC_REGISTER_ISR 17 308 #define ICALL_PRIMITIVE_FUNC_GET_TICKS 18 311 #define ICALL_PRIMITIVE_FUNC_SET_TIMER_MSECS 19 314 #define ICALL_PRIMITIVE_FUNC_GET_TICK_PERIOD 20 317 #define ICALL_PRIMITIVE_FUNC_GET_MAX_MILLISECONDS 21 320 #define ICALL_PRIMITIVE_FUNC_ENTITY2SERVICE 22 323 #define ICALL_PRIMITIVE_FUNC_PWR_UPD_ACTIVITY_COUNTER 23 326 #define ICALL_PRIMITIVE_FUNC_PWR_REGISTER_NOTIFY 24 329 #define ICALL_PRIMITIVE_FUNC_WAIT_MATCH 25 332 #define ICALL_PRIMITIVE_FUNC_GET_ENTITY_ID 26 335 #define ICALL_PRIMITIVE_FUNC_SET_TIMER 27 338 #define ICALL_PRIMITIVE_FUNC_STOP_TIMER 28 344 #define ICALL_PRIMITIVE_FUNC_PWR_CONFIG_AC_ACTION 29 347 #define ICALL_PRIMITIVE_FUNC_PWR_REQUIRE 30 350 #define ICALL_PRIMITIVE_FUNC_PWR_DISPENSE 31 353 #define ICALL_PRIMITIVE_FUNC_THREAD_SERVES 32 356 #define ICALL_PRIMITIVE_FUNC_PWR_IS_STABLE_XOSC_HF 33 359 #define ICALL_PRIMITIVE_FUNC_PWR_GET_TRANSITION_STATE 34 362 #define ICALL_PRIMITIVE_FUNC_CREATE_TASK 35 365 #define ICALL_PRIMITIVE_FUNC_CREATE_SEMAPHORE 36 368 #define ICALL_PRIMITIVE_FUNC_WAIT_SEMAPHORE 37 371 #define ICALL_PRIMITIVE_FUNC_SWITCH_XOSC_HF 38 374 #define ICALL_PRIMITIVE_FUNC_PWR_GET_XOSC_STARTUP_TIME 39 377 #define ICALL_PRIMITIVE_FUNC_REGISTER_ISR_EXT 40 381 #define ICALL_PRIMITIVE_FUNC_POST_SEMAPHORE 41 384 #define ICALL_PRIMITIVE_FUNC_CREATE_EVENT 42 387 #define ICALL_PRIMITIVE_FUNC_WAIT_EVENT 43 390 #define ICALL_PRIMITIVE_FUNC_POST_EVENT 44 398 #define ICALL_MSG_FUNC_GET_LOCAL_MSG_ENTITY_ID 0 407 #define ICALL_MSG_EVENT_ID Event_Id_31 414 #define ICALL_WAITMATCH_EVENT_ID Event_Id_29 458 uint32_t totalFreeSize;
459 uint32_t largestFreeSize;
582 void (*isrfunc)(void);
590 void (*isrfunc)(void);
669 void (*entryfn)(
size_t arg);
675 #ifdef ICALL_RTOS_SEMAPHORE_API 706 #ifdef ICALL_RTOS_EVENTS_API 708 typedef struct _icall_create_event_args_t
712 } ICall_CreateEventArgs;
715 typedef struct _icall_post_event_args_t
720 } ICall_PostEventArgs;
723 typedef struct _icall_wait_event_args_t
727 uint_least32_t milliseconds;
728 } ICall_WaitEventArgs;
738 typedef struct _icall_msg_hdr_t
936 PACKED_TYPEDEF_STRUCT
938 uint_least32_t *pointerStack;
939 icall_lite_id_t directAPI;
940 } icall_directAPIMsg_t;
942 PACKED_TYPEDEF_STRUCT
945 icall_directAPIMsg_t msg;
953 uint_least32_t imgTaskPriority;
954 uint_least32_t imgTaskStackSize;
955 void *ICall_imgInitParam;
956 } ICall_RemoteTask_t;
1074 ICall_EntityID dest,
1075 ICall_MSGFormat format,
1094 ICall_Errno
ICall_registerApp(ICall_EntityID *entity, ICall_SyncHandle *msgSyncHdl);
1165 ICall_ServiceEnum dest,
1166 ICall_MSGFormat format,
void *msg);
1198 ICall_EntityID *dest,
1214 ICall_Errno
ICall_wait(uint_fast32_t milliseconds);
1240 ICall_EntityID *entity,
1241 ICall_SyncHandle *msgSyncHdl);
1285 ICall_EntityID dest,
1286 ICall_MSGFormat format,
1309 ICall_EntityID *dest,
1332 ICall_ServiceEnum *servId);
1335 #ifdef HEAPMGR_METRICS 1636 uint_fast16_t stacksize,
size_t arg);
1638 #ifdef ICALL_RTOS_SEMAPHORE_API 1653 #ifdef ICALL_RTOS_SEMAPHORE_API 1665 #ifdef ICALL_RTOS_EVENTS_API 1673 ICall_createEvent(
void);
1682 ICall_postEvent(ICall_Event event, uint32_t events);
1697 ICall_waitEvent(ICall_Event event, uint_fast32_t milliseconds);
1700 #ifdef ICALL_RTOS_SEMAPHORE_API 1747 ICall_ServiceEnum *src,
1748 ICall_EntityID *dest,
1806 ICall_SyncHandle *msgSyncHdl)
1811 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_REGISTER_APP;
1831 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_MSG_ALLOC;
1850 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_MSG_FREE;
1897 ICall_ServiceEnum dest,
1898 ICall_MSGFormat format,
void *msg)
1902 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_SEND_SERV_MSG;
1940 ICall_EntityID *dest,
1946 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_FETCH_SERV_MSG;
1967 static ICall_Errno
ICall_wait(uint_fast32_t milliseconds)
1971 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_WAIT;
1981 static ICall_Errno
ICall_signal(ICall_SyncHandle msgSyncHdl)
1985 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_SIGNAL;
2009 ICall_EntityID *entity,
2010 ICall_SyncHandle *msgSyncHdl)
2015 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_ENROLL;
2037 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_MALLOC;
2056 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_FREE;
2075 static ICall_Errno
ICall_send(ICall_EntityID src,
2076 ICall_EntityID dest,
2077 ICall_MSGFormat format,
2082 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_SEND_MSG;
2110 ICall_EntityID *dest,
2116 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_FETCH_MSG;
2145 ICall_ServiceEnum *servId)
2150 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_ENTITY2SERVICE;
2168 HAL_ASSERT( HAL_ASSERT_CAUSE_ICALL_ABORT );
2172 args.
func = ICALL_PRIMITIVE_FUNC_ABORT;
2186 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_ENABLE_INT;
2201 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_DISABLE_INT;
2215 args.
func = ICALL_PRIMITIVE_FUNC_ENABLE_MINT;
2228 args.
func = ICALL_PRIMITIVE_FUNC_DISABLE_MINT;
2245 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_REGISTER_ISR;
2256 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_REGISTER_ISR_EXT;
2267 static uint_fast32_t
2272 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_GET_TICKS;
2281 static uint_fast32_t
2286 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_GET_TICK_PERIOD;
2297 static uint_fast32_t
2302 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_GET_MAX_MILLISECONDS;
2340 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_SET_TIMER_MSECS;
2383 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_SET_TIMER;
2404 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_STOP_TIMER;
2430 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_PWR_UPD_ACTIVITY_COUNTER;
2458 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_PWR_CONFIG_AC_ACTION;
2479 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_PWR_REQUIRE;
2500 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_PWR_DISPENSE;
2518 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_PWR_IS_STABLE_XOSC_HF;
2534 args.
func = ICALL_PRIMITIVE_FUNC_SWITCH_XOSC_HF;
2548 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_PWR_GET_XOSC_STARTUP_TIME;
2573 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_PWR_REGISTER_NOTIFY;
2592 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_PWR_GET_TRANSITION_STATE;
2615 uint_fast16_t stacksize,
size_t arg)
2620 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_CREATE_TASK;
2628 #ifdef ICALL_RTOS_SEMAPHORE_API 2639 static ICall_Semaphore
2646 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_CREATE_SEMAPHORE;
2658 #ifdef ICALL_RTOS_SEMAPHORE_API 2672 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_POST_SEMAPHORE;
2678 #ifdef ICALL_RTOS_EVENTS_API 2686 ICall_createEvent(
void)
2688 ICall_CreateEventArgs args;
2692 args.hdr.func = ICALL_PRIMITIVE_FUNC_CREATE_EVENT;
2709 ICall_postEvent(ICall_Event event, uint32_t events)
2711 ICall_PostEventArgs args;
2714 args.hdr.func = ICALL_PRIMITIVE_FUNC_POST_EVENT;
2716 args.events = events;
2733 ICall_waitEvent(ICall_Event event, uint_fast32_t milliseconds)
2735 ICall_WaitEventArgs args;
2738 args.hdr.func = ICALL_PRIMITIVE_FUNC_WAIT_EVENT;
2740 args.milliseconds = milliseconds;
2745 #ifdef ICALL_RTOS_SEMAPHORE_API 2765 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_WAIT_SEMAPHORE;
2801 ICall_ServiceEnum *src,
2802 ICall_EntityID *dest,
2808 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_WAIT_MATCH;
2834 static ICall_EntityID
2840 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_GET_ENTITY_ID;
2864 args.
hdr.
func = ICALL_PRIMITIVE_FUNC_THREAD_SERVES;
2907 #ifdef ICALL_NO_APP_EVENTS 2908 typedef uint8_t (*appCallback_t)(uint8_t event, uint8_t *msg);
2909 ICall_Errno ICall_registerAppCback(uint8_t *selfEntity, appCallback_t appCallback);
uint_fast8_t ICall_threadServes(ICall_ServiceEnum service)
Checks whether the calling thread provides the designated service.
ICall_FuncArgsHdr hdr
common arguments field to store source of the message
Definition: icall.h:527
ICall_Errno ICall_createTask(void(*entryfn)(size_t arg), uint_fast8_t priority, uint_fast16_t stacksize, size_t arg)
Creates a new RTOS task.
ICall_RemotiCmdEvent_t
RemoTI RNP and Remote Icall Messaging Interface Enumeration.
Definition: icall.h:917
ICall_Semaphore sem
semaphore
Definition: icall.h:694
void * ICall_Event
Event data type.
Definition: icall.h:446
uint32_t ICall_pwrGetXOSCStartupTime(uint_fast32_t timeUntilWakeupInMs)
uint_least32_t timeUntilWakeupInMs
field matching timeUntilWakeupInMs argument
Definition: icall.h:653
void * ICall_TimerID
Timer id data type.
Definition: icall.h:453
ICall_Errno ICall_enrollService(ICall_ServiceEnum service, ICall_ServiceFunc fn, ICall_EntityID *entity, ICall_SyncHandle *msgSyncHdl)
Registers a service entity.
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:809
void * ICall_SyncHandle
Synchronization object data type.
Definition: icall.h:436
uint_fast8_t ICall_PwrTransition
Power state transition type of the following values:
Definition: icall.h:758
ICall_Errno ICall_pwrDispense(ICall_PwrBitmap_t bitmap)
Releases power constraints and dependencies.
ICall_enrollService arguments
Definition: icall.h:881
bool incFlag
a boolean flag to indicate either increment or decrement
Definition: icall.h:619
ICall_MSGFormat format
Message format.
Definition: icall.h:520
uint_least8_t mode
semaphore mode. Either ICALL_SEMAPHORE_MODE_BINARY or ICALL_SEMAPHORE_MODE_COUNTING ...
Definition: icall.h:685
struct _icall_thread_serves_args_t ICall_ThreadServesArgs
ICall_threadServes argument
uint_least8_t localId
local entity ID
Definition: icall.h:913
struct _icall_send_args_t ICall_SendArgs
ICall_sendServiceMsg and ICall_send arguments
ICall_LeaveCS leavecs
leave CS
Definition: icall.h:856
ICall_CSState(* ICall_EnterCS)(void)
Critical section entry function pointer type.
Definition: icall.h:831
int intPriority
interrupt priority
Definition: icall.h:591
void(* ICall_TimerCback)(void *arg)
Prototype of a callback function for timer.
Definition: icall.h:478
int_fast16_t ICall_Errno
Error code data type.
Definition: icall.h:424
ICall_Errno ICall_wait(uint_fast32_t milliseconds)
Waits for a signal to the semaphore associated with the calling thread.
ICall_sendServiceMsg and ICall_send arguments
Definition: icall.h:511
void(* ICall_LeaveCS)(ICall_CSState key)
Critical section exit function pointer type.
Definition: icall.h:839
ICall_pwrRegisterNotify arguments
Definition: icall.h:788
ICall_Errno ICall_pwrRequire(ICall_PwrBitmap_t bitmap)
Sets power constraints and dependencies.
struct _icall_post_semaphore_args_t ICall_PostSemaphoreArgs
ICall_postSemaphore argument
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:652
uint_fast32_t ICall_getTickPeriod(void)
Gets the tick period.
uint_least16_t stacksize
task priority as understood by underlying RTOS implementation
Definition: icall.h:671
uint_least8_t priority
task priority as understood by underlying RTOS implementation
Definition: icall.h:670
ICall_Errno ICall_enableInt(int intnum)
Enables interrupt.
ICall_signal arguments
Definition: icall.h:552
uint_least32_t ICall_CSState
Critical section state data type.
Definition: icall.h:824
struct _icall_register_isr_args_t ICall_RegisterISRArgs
ICall_registerISR arguments
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:693
struct _icall_set_timer_args_t ICall_SetTimerArgs
ICall_setTimer arguments
bool(* ICall_MsgMatchFn)(ICall_ServiceEnum src, ICall_EntityID dest, const void *msg)
Prototype of a function used to compare a received message for a match.
Definition: icall.h:471
ICall_createTask argument
Definition: icall.h:666
ICall_ServiceEnum servId
service id
Definition: icall.h:801
Event for app RTI->stack RTI module.
Definition: icall.h:921
ICall_EntityID entityId
entity id
Definition: icall.h:531
ICall_signal arguments
Definition: icall.h:545
ICall Lite Command Status.
Definition: icall.h:931
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:634
ICall_stopTimer arguments
Definition: icall.h:901
struct _icall_getuint32_args_t ICall_GetUint32Args
ICall_getTicks , ICall_getTickPeriod and ICall_getMaxMSecs arguments
ICall_ServiceEnum servId
Service ID of destination.
Definition: icall.h:518
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:700
uint_fast32_t ICall_getMaxMSecs(void)
Gets the maximum timeout period supported by ICall_setTimerMSecs function.
struct _icall_wait_semaphore_args_t ICall_WaitSemaphoreArgs
ICall_waitSemaphore argument
uint_least32_t value
field to store the retrieved value
Definition: icall.h:601
ICall_ServiceFunc fn
handler function which handles function calls to the service
Definition: icall.h:885
uint_fast8_t ICall_pwrGetTransitionState(void)
Retrieves power transition state.
ICall_EntityID entity
client entity id
Definition: icall.h:810
ICall_FuncID func
function id
Definition: icall.h:484
struct _ICall_LiteCmdStatus_ ICall_LiteCmdStatus
ICall Lite Command Status.
#define ICALL_ERRNO_SUCCESS
ICall function return value for successful operation.
Definition: icall.h:156
ICall_SyncHandle msgSyncHdl
field to store the synchronous object handle associated with the calling thread
Definition: icall.h:492
ICall_PwrNotifyData * obj
data object
Definition: icall.h:792
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:565
void * msg
field to store the starting address of the message body
Definition: icall.h:803
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:668
Power state transition notify function data object type.
Definition: icall.h:778
bool pwrRequired
the result of current activity counter
Definition: icall.h:620
uint_least8_t ICall_MSGFormat
Message conversion format data type.
Definition: icall.h:430
union _icall_send_args_t::@0 dest
union of entity and service ID's
ICall_Errno ICall_registerISR(int intnum, void(*isrfunc)(void))
Registers an interrupt service routine.
uint_least16_t ICall_FuncID
Function id data type.
Definition: icall.h:433
ICall_FuncArgsHdr hdr
Common arguments.
Definition: icall.h:910
struct _icall_pwr_get_transition_state_args_t ICall_PwrGetTransitionStateArgs
ICall_pwrGetTransitionState arguments
struct _icall_pwr_bitmap_args_t ICall_PwrBitmapArgs
ICall_pwrConfigActivityCounterAction , ICall_pwrRequire and ICall_pwrDispense arguments.
ICall_pwrGetTransitionState arguments
Definition: icall.h:641
struct _icall_intnum_args_t ICall_IntNumArgs
ICall_enableInt and ICall_disableInt arguments
ICall_EnterCS entercs
enter CS
Definition: icall.h:855
ICall_pwrIsStableXOSCHF arguments
Definition: icall.h:607
ICall_freeMsg or ICall_free arguments
Definition: icall.h:504
ICall_postSemaphore argument
Definition: icall.h:691
ICall_Errno ICall_pwrConfigACAction(ICall_PwrBitmap_t bitmap)
Configures power constraint/dependency set/release actions upon activity counter change.
ICall_enableInt and ICall_disableInt arguments
Definition: icall.h:571
ICall_Semaphore ICall_createSemaphore(uint_fast8_t mode, int initcount)
Creates a semaphore.
void * ptr
pointer to the address of a memory block to free
Definition: icall.h:507
ICall_threadServes argument
Definition: icall.h:658
struct _icall_register_isr_args_ext_t ICall_RegisterISRArgs_Ext
ICall_registerISR_Ext arguments.
void ICall_freeMsg(void *msg)
Frees the memory block allocated for a message.
Common service function arguments.
Definition: icall.h:481
ICall_EntityID entityId
Entity ID of destination.
Definition: icall.h:517
ICall_Dispatcher dispatch
ICall dispatcher.
Definition: icall.h:854
ICall_fetchServiceMsg and ICall_fetchMsg arguments
Definition: icall.h:525
bool value
Definition: icall.h:612
ICall_EntityID entity
entity id
Definition: icall.h:912
void ICall_createRemoteTasksAtRuntime(ICall_RemoteTask_t *remoteTaskTable, uint8_t nb_elems)
Create remote tasks with parameters define at runtime.
struct _icall_register_app_args_t ICall_RegisterAppArgs
ICall_registerApp arguments
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:903
struct _icall_remote_task_arg_t ICall_RemoteTaskArg
Data type of the first argument passed to the entry point of an image which contains a remote task...
void ICall_free(void *msg)
Frees an allocated memory block.
size_t arg
argument passed to the task entry function
Definition: icall.h:672
ICall_registerISR_Ext arguments.
Definition: icall.h:586
struct _icall_wait_match_args_t ICall_WaitMatchArgs
ICall_waitMatch arguments
void * ICall_allocMsg(size_t size)
Allocates memory block for a message.
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:580
size_t size
size of the message body in bytes
Definition: icall.h:499
struct _icall_create_task_args_t ICall_CreateTaskArgs
ICall_createTask argument
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:506
ICall_SyncHandle msgSyncHdl
field to store the synchronous object handle associated with the calling thread
Definition: icall.h:887
ICall_Errno ICall_waitSemaphore(ICall_Semaphore sem, uint_fast32_t milliseconds)
Waits on a semaphore.
ICall_EntityID entity
field to store the entity id assigned to the application
Definition: icall.h:491
struct _icall_enroll_service_args_t ICall_EnrollServiceArgs
ICall_enrollService arguments
#define ICALL_MSG_FUNC_GET_LOCAL_MSG_ENTITY_ID
Messaging service function id for translating ICall_entityID to locally understandable id...
Definition: icall.h:398
ICall_Errno ICall_disableInt(int intnum)
Disables interrupt.
struct _icall_alloc_args_t ICall_AllocArgs
ICall_allocMsg or ICall_malloc arguments
Data type of the first argument passed to the entry point of an image which contains a remote task...
Definition: icall.h:852
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:643
ICall_Errno ICall_signal(ICall_SyncHandle msgSyncHdl)
Signals a semaphore.
void * msg
pointer to the message body to send
Definition: icall.h:521
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:618
ICall_ServiceEnum servId
Service ID of destination.
Definition: icall.h:661
ICall_Errno ICall_entityId2ServiceId(ICall_EntityID entityId, ICall_ServiceEnum *servId)
Transforms and entityId into a serviceId. Note that this function is useful in case an application wa...
struct _icall_get_local_msg_entity_id_args_t ICall_GetLocalMsgEntityIdArgs
ICall_getLocalMsgEntityId arguments
void * ICall_malloc(uint_least16_t size)
Allocates a memory block.
struct _icall_func_args_hdr_t ICall_FuncArgsHdr
Common service function arguments.
ICall_Errno ICall_disableMInt(void)
Disables master interrupt and context switching.
ICall_SyncHandle syncHandle
handle of a synchronous object to signal
Definition: icall.h:548
struct _icall_pwr_get_xosc_startup_time_args_t ICall_PwrGetXOSCStartupTimeArgs
ICall_pwrGetXOSCStartupTime arguments
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:798
void * ptr
pointer to store the start address of the newly allocated memory block
Definition: icall.h:500
ICall_LeaveCS ICall_leaveCriticalSection
Leave critical section function pointer of the current image.
ICall_Errno ICall_abort(void)
Aborts.
void(* ICall_PwrNotifyFn)(ICall_PwrTransition pwrTrans, struct _icall_pwr_notify_data_t *obj)
Definition: icall.h:772
#define ICALL_INVALID_ENTITY_ID
Entity ID used to indicate invalid entity.
Definition: icall.h:137
ICall_EntityID dest
field to store the entity id of the destination of the message
Definition: icall.h:533
ICall_getTicks , ICall_getTickPeriod and ICall_getMaxMSecs arguments
Definition: icall.h:598
ICall_Errno(* ICall_ServiceFunc)(ICall_FuncArgsHdr *args)
Call dispatcher service handler function pointer type.
Definition: icall.h:878
ICall_EntityID ICall_searchServiceEntity(ICall_ServiceEnum service)
Search for a service entity entry.
void * ICall_allocMsgLimited(size_t size)
ICall_Errno ICall_sendServiceMsg(ICall_EntityID src, ICall_ServiceEnum dest, ICall_MSGFormat format, void *msg)
Sends a message to a registered server.
struct _icall_free_args_t ICall_FreeArgs
ICall_freeMsg or ICall_free arguments
ICall_SyncHandle syncHandle
handle of a synchronous object to signal
Definition: icall.h:555
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:498
struct _icall_entity2service_args_t ICall_EntityId2ServiceIdArgs
ICall_entityId2ServiceId arguments
ICall_pwrConfigActivityCounterAction , ICall_pwrRequire and ICall_pwrDispense arguments.
Definition: icall.h:632
uint_fast32_t ICall_PwrBitmap_t
Power control bitmap type.
Definition: icall.h:626
ICall_PwrNotifyFn _private
a field for private use. Do not access the field. User data should follow this field.
Definition: icall.h:784
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:600
uint32_t events
events
Definition: icall.h:556
ICall_ServiceEnum service
service id
Definition: icall.h:483
ICall_ServiceEnum servId
field to store the service id
Definition: icall.h:567
ICall_Errno ICall_send(ICall_EntityID src, ICall_EntityID dest, ICall_MSGFormat format, void *msg)
Sends a message to an entity.
ICall_entityId2ServiceId arguments
Definition: icall.h:563
#define ICALL_SERVICE_CLASS_PRIMITIVE
Service class enumerated value for primitive service.
Definition: icall.h:60
void * msg
field to store the starting address of the message body
Definition: icall.h:534
ICall_Errno ICall_postSemaphore(ICall_Semaphore sem)
Post on a semaphore.
uint_least32_t milliseconds
timeout period in milliseconds
Definition: icall.h:799
ICall_Errno(* ICall_Dispatcher)(ICall_FuncArgsHdr *args)
Call dispatcher function pointer type.
Definition: icall.h:819
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:490
struct _icall_get_entity_id_args_t ICall_GetEntityIdArgs
ICall_getEntityId arguments
Event for app RTI->stack RC App.
Definition: icall.h:919
void(* isrfunc)(void)
pointer to the interrupt service function
Definition: icall.h:582
uint_fast8_t state
power transition state
Definition: icall.h:644
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:660
uint_fast8_t ICall_getLocalMsgEntityId(ICall_ServiceEnum service, ICall_EntityID entity)
Retrieves an internal ID understood only by a service entity, corresponding to an ICall entity ID...
void ICall_stopTimer(ICall_TimerID id)
Stops a timer.
struct _icall_getbool_args_t ICall_GetBoolArgs
ICall_pwrIsStableXOSCHF arguments
int initcount
semaphore initial count value
Definition: icall.h:686
struct _icall_pwr_notify_data_t ICall_PwrNotifyData
Power state transition notify function data object type.
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:554
struct _icall_stop_timer_args_t ICall_StopTimerArgs
ICall_stopTimer arguments
ICall_getEntityId arguments
Definition: icall.h:807
ICall_allocMsg or ICall_malloc arguments
Definition: icall.h:496
ICall_Errno ICall_registerISR_Ext(int intnum, void(*isrfunc)(void), int intPriority)
ICall Register ISR.
ICall_Errno ICall_pwrSwitchXOSCHF(void)
Switch clock source to HF XOSC. This function must be called after HF XOSC is stable.
ICall_waitMatch arguments
Definition: icall.h:796
ICall_EnterCS ICall_enterCriticalSection
Enter critical section function pointer of the current image.
bool ICall_pwrIsStableXOSCHF(void)
Checks whether HF XOSC is stable. This function must be called after HF XOSC is turned on (through po...
ICall_EntityID dest
field to store the entity id of the destination of the message
Definition: icall.h:802
int_least32_t intnum
interrupt number
Definition: icall.h:589
struct _icall_signal_args_t ICall_SignalArgs
ICall_signal arguments
ICall_Errno ICall_pwrRegisterNotify(ICall_PwrNotifyFn fn, ICall_PwrNotifyData *obj)
Registers a power state transition notify function.
ICall_Errno ICall_setTimerMSecs(uint_fast32_t msecs, ICall_TimerCback cback, void *arg, ICall_TimerID *id)
Set up or restart a timer. Note that the timer setup initially by this function may be restarted usin...
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:883
uint_least32_t value
field to store the retrieved value
Definition: icall.h:654
ICall_wait arguments
Definition: icall.h:538
ICall_Errno ICall_sendServiceComplete(ICall_EntityID src, ICall_EntityID dest, ICall_MSGFormat format, void *msg)
function to indicate that servicing an direct API call is done
void ICall_createRemoteTasks(void)
Create remote tasks.
struct _icall_wait_args_t ICall_WaitArgs
ICall_wait arguments
ICall_TimerID timerid
timer ID
Definition: icall.h:895
void * arg
pointer to an argument to be passed to the callback function
Definition: icall.h:897
SYNC message from RNP app -> stack.
Definition: icall.h:924
ICall_ServiceEnum service
service id
Definition: icall.h:911
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:513
ICall_waitSemaphore argument
Definition: icall.h:698
ICall_Errno ICall_setTimer(uint32_t ticks, ICall_TimerCback cback, void *arg, ICall_TimerID *id)
Set up or restart a timer. Note that the timer setup initially by this function may be restarted usin...
int_least32_t intnum
interrupt number
Definition: icall.h:574
struct _icall_pwr_upd_activity_counter_args_t ICall_PwrUpdActivityCounterArgs
ICall_pwrUpdActivityCounter arguments
uint_least32_t milliseconds
timeout in milliseconds
Definition: icall.h:702
Event for stack RTI->app RTI module.
Definition: icall.h:922
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:790
uint_least8_t cmdId
command id (applicable only to User Profile subgrp)
Definition: icall.h:933
ICall_TaskHandle ICall_getRemoteTaskHandle(uint8 index)
return the task handle of a task.
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:679
ICall_registerISR arguments
Definition: icall.h:578
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:573
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:540
ICall_EntityID entityId
entity id
Definition: icall.h:566
void * ICall_TaskHandle
Synchronization object data type.
Definition: icall.h:439
void * ICall_Semaphore
Semaphore used for ICall.
Definition: icall.h:442
uint_least32_t icall_lite_id_t
ICall Lite ID.
Definition: icall.h:928
void(* entryfn)(size_t arg)
task entry function
Definition: icall.h:669
uint_least32_t milliseconds
timeout period in milliseconds
Definition: icall.h:541
ICall_EntityID entity
field to store the assigned entity id
Definition: icall.h:886
ICall_MsgMatchFn matchFn
match function
Definition: icall.h:800
ICall_TimerCback cback
callback function
Definition: icall.h:896
void(* isrfunc)(void)
pointer to ISR
Definition: icall.h:590
struct _icall_create_semaphore_args_t ICall_CreateSemaphoreArgs
ICall_createSemaphore argument
ICall_registerApp arguments
Definition: icall.h:488
Event for stack->app RC App.
Definition: icall.h:920
ICall_FuncArgsHdr hdr
Definition: icall.h:610
ICall_pwrUpdActivityCounter arguments
Definition: icall.h:616
ICall_Semaphore sem
semaphore
Definition: icall.h:701
uint_fast32_t ICall_getTicks(void)
Gets the current tick counter value.
void ICall_init(void)
Initializes the dispatcher implementation.
void * ICall_mallocLimited(uint_least16_t size)
ICall_getLocalMsgEntityId arguments
Definition: icall.h:908
void ICall_getHeapMgrGetMetrics(uint32_t *pBlkMax, uint32_t *pBlkCnt, uint32_t *pBlkFree, uint32_t *pMemAlo, uint32_t *pMemMax, uint32_t *pMemUB)
the function retrieve information about the osal heap. Note :ICall_getHeapMgrGetMetrics will not work...
ICall_ServiceEnum servId
service id
Definition: icall.h:530
ICall_createSemaphore argument
Definition: icall.h:677
struct _icall_pwr_register_notify_args_t ICall_PwrRegisterNotifyArgs
ICall_pwrRegisterNotify arguments
uint_least8_t ICall_resetReason
Special global variable to set the reset reason by the boot code, before ICall is initialized...
ICall_pwrGetXOSCStartupTime arguments
Definition: icall.h:650
uint_least8_t ICall_EntityID
Entity id data type.
Definition: icall.h:450
int_least32_t intnum
interrupt number
Definition: icall.h:581
ASYNC message from RNP app->stack.
Definition: icall.h:923
ICall_Dispatcher ICall_dispatcher
Call dispatcher pointer of the current image.
ICall_EntityID src
Entity id of the sender of the message Destination id.
Definition: icall.h:514
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:588
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:547
struct _icall_fetch_msg_args_t ICall_FetchMsgArgs
ICall_fetchServiceMsg and ICall_fetchMsg arguments
ICall_PwrNotifyFn fn
notify function to handle notification
Definition: icall.h:791
ICall_Errno ICall_fetchMsg(ICall_EntityID *src, ICall_EntityID *dest, void **msg)
Retrieves a message, queued to receive queue of the calling thread.
ICall_setTimer arguments
Definition: icall.h:891
ICall_Errno ICall_fetchServiceMsg(ICall_ServiceEnum *src, ICall_EntityID *dest, void **msg)
Retrieves a message received at the message queue associated with the calling thread.
uint_least32_t timeout
timeout period
Definition: icall.h:894
ICall_ServiceEnum service
service id of the enrolling service
Definition: icall.h:884
ICall_Errno ICall_enableMInt(void)
Enables master interrupt and context switching.
void(* ICall_RemoteTaskEntry)(const ICall_RemoteTaskArg *arg0, void *arg1)
Service entry function prototype.
Definition: icall.h:869
uint_fast8_t result
Result (true or false)
Definition: icall.h:662
ICall_TimerID timerid
timer ID
Definition: icall.h:904
uint_least16_t ICall_ServiceEnum
Service enumeration data type.
Definition: icall.h:427
ICall_Semaphore sem
created semaphore
Definition: icall.h:687
void ICall_getHeapStats(ICall_heapStats_t *stats)
Get Statistic on Heap.
ICall_Errno ICall_waitMatch(uint_least32_t milliseconds, ICall_MsgMatchFn matchFn, ICall_ServiceEnum *src, ICall_EntityID *dest, void **msg)
Waits for and retrieves a message received at the message queue associated with the calling thread...
struct _icall_signal_events_args_t ICall_SignalEventsArgs
ICall_signal arguments
uint32_t icall_directAPI(uint8_t service, icall_lite_id_t id,...)
generic variadic function to translate API id to a functional call in the stack context,
union _icall_fetch_msg_args_t::@1 src
union of service and entity id's
ICall_EntityID ICall_getEntityId(void)
Retrieves an entity ID of (arbitrary) one of the entities registered from the calling thread...
ICall_FuncArgsHdr hdr
common arguments
Definition: icall.h:893
bool ICall_pwrUpdActivityCounter(bool incFlag)
Increments or decrements power activity counter.
ICall_Errno ICall_registerApp(ICall_EntityID *entity, ICall_SyncHandle *msgSyncHdl)
Registers an application.
ICall_PwrBitmap_t bitmap
power configuration bitmap
Definition: icall.h:635