aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/smcclient.c8
-rw-r--r--demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/smcclient.h12
2 files changed, 13 insertions, 7 deletions
diff --git a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/smcclient.c b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/smcclient.c
index 8b9f0edeb..6a56bff14 100644
--- a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/smcclient.c
+++ b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/smcclient.c
@@ -56,11 +56,11 @@ msg_t smcInvoke(smc_service_t handle, smc_params_area_t data,
msg_t smcInvokeService(smc_service_t handle, smc_params_area_t data,
size_t size)
{
- msg_t result;
+ msg_t result = MSG_OK;
- do {
- result = smcInvoke(handle, data, size);
- } while (result == MSG_TIMEOUT);
+ result = smcInvoke(handle, data, size);
+ while (result == SMC_SVC_INTR)
+ result = smcInvoke(SMC_HND_REENTER, 0, 0);
return result;
}
diff --git a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/smcclient.h b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/smcclient.h
index f631e30f6..ceb2941b7 100644
--- a/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/smcclient.h
+++ b/demos/ATSAMA5D2/RT-SAMA5D2-XPLAINED-NSEC/smcclient.h
@@ -34,13 +34,19 @@
/*
* Service registry errors
*/
-#define SMC_SVC_OK MSG_OK /* No error */
+#define SMC_SVC_OK MSG_OK /* No error */
+#define SMC_SVC_INTR (msg_t)-1 /* Service interrupted */
+#define SMC_SVC_NOENT (msg_t)-2 /* No existent service */
+#define SMC_SVC_INVALID (msg_t)-3 /* Invalid service parameter(s) */
+#define SMC_SVC_BADH (msg_t)-4 /* Invalid service handle */
+#define SMC_SVC_EXIST (msg_t)-5 /* Service already exists */
/*
* Special service handles
*/
-#define SMC_HND_TRAMP ((smc_service_t)0)
-#define SMC_HND_GET ((smc_service_t)1)
+#define SMC_HND_TRAMP ((smc_service_t *)0) /* Trampoline service handle */
+#define SMC_HND_DISCOVERY ((smc_service_t *)1) /* Discovery service handle */
+#define SMC_HND_REENTER ((smc_service_t *)2) /* Reentering a service service handle */
/*===========================================================================*/
/* Module pre-compile time settings. */