smcinvoke: ADCI changes for SMCInvoke Driver

Change consists creation of ADCI thread at SMCInvoke
driver initialization

 Change consists creation of ADCI thread at SMCInvoke driver initialization
 Following scenario have been tested for this change
  (1) ADCI thread creation and QTEE invocation during driver initialization
  (2) Backward Compatibility - IF ADCI feature is not supported (OBJECT_ERROR_INVALID)
        then exit the ADCI thread gracefully after cleaning up all the resources
  (3) Leak Test: All the resources held by ADCI thread should be released if ADCI feature
      is not supported by QTEE
      (i) adci task_struct state and exit state:
            state =  TASK_RUNNING , exit_state = 0 (While ADCI thread execution)
            state =  TASK_DEAD , exit_state = EXIT_DEAD (During ADCI thread termination)
     (ii) adci task_struct = NULL (fetched based on adci thread_id) which make sure
             task_struct has been deallocated
  (4) SMCInvoke related Test: All the internal(suuported),memobj and cbo testing has been performed.

Change-Id: I2916ce260fae293b88fbc8b9d24baccdee1ea89f
Signed-off-by: Pawan Rai <quic_pawarai@quicinc.com>
This commit is contained in:
Pawan Rai
2022-12-29 13:42:59 +05:30
کامیت شده توسط Gerrit - the friendly Code Review server
والد 4ed6950035
کامیت ef2c3ba718
4فایلهای تغییر یافته به همراه103 افزوده شده و 10 حذف شده

مشاهده پرونده

@@ -11,6 +11,8 @@
#define IClientEnv_OP_registerWithWhitelist 3
#define IClientEnv_OP_notifyDomainChange 4
#define IClientEnv_OP_registerWithCredentials 5
#define IClientEnv_OP_accept 6
#define IClientEnv_OP_adciShutdown 7
#include "smcinvoke_object.h"
@@ -118,3 +120,14 @@ IClientEnv_registerWithCredentials(struct Object self, struct Object
return result;
}
static inline int32_t
IClientEnv_accept(struct Object self)
{
return Object_invoke(self, IClientEnv_OP_accept, 0, 0);
}
static inline int32_t
IClientEnv_adciShutdown(struct Object self)
{
return Object_invoke(self, IClientEnv_OP_adciShutdown, 0, 0);
}