in TAs/optee_ta/AuthVars/AuthVars.c [312:359]
TEE_Result TA_InvokeCommandEntryPoint(void *sess_ctx,
uint32_t cmd_id,
uint32_t param_types,
TEE_Param params[4])
{
TEE_Result Status;
// Unused parameter(s)
UNREFERENCED_PARAMETER(sess_ctx);
// Can't proceed without init
if (!AuthVarInitialized && (cmd_id != TA_AUTHVAR_EXIT_BOOT_SERVICES))
{
return TEE_ERROR_BAD_STATE;
}
// Handle command invocation
switch (cmd_id) {
case TA_AUTHVAR_GET_VARIABLE: {
Status = AuthVarGet(param_types, params);
return Status;
}
case TA_AUTHVAR_GET_NEXT_VARIABLE: {
Status = AuthVarGetNext(param_types, params);
return Status;
}
case TA_AUTHVAR_SET_VARIABLE: {
Status = AuthVarSet(param_types, params);
return Status;
}
case TA_AUTHVAR_QUERY_VARINFO: {
Status = AuthVarQuery(param_types, params);
return Status;
}
case TA_AUTHVAR_EXIT_BOOT_SERVICES: {
AuthVarIsRuntime = true;
return TEE_SUCCESS;
}
default: {
return TEE_ERROR_BAD_PARAMETERS;
}
}
}