in TAs/optee_ta/AuthVars/AuthVars.c [224:260]
static TEE_Result AuthVarSet(
uint32_t ParamTypes,
TEE_Param Params[4]
)
{
VARIABLE_SET_PARAM *SetParam;
uint32_t SetParamSize;
uint32_t ExpectedTypes;
TEE_Result Status;
DMSG("AV cmd");
ExpectedTypes = TEE_PARAM_TYPES(
TEE_PARAM_TYPE_MEMREF_INPUT,
TEE_PARAM_TYPE_MEMREF_OUTPUT, // <-- Not used for Set!
TEE_PARAM_TYPE_VALUE_OUTPUT,
TEE_PARAM_TYPE_NONE);
// Validate parameter types
if (ParamTypes != ExpectedTypes) {
DMSG("AuthVarSet: bad param types");
return TEE_ERROR_BAD_PARAMETERS;
}
SetParam = (VARIABLE_SET_PARAM *)Params[0].memref.buffer;
SetParamSize = Params[0].memref.size;
// Call VarOps
Status = SetVariable(SetParamSize, SetParam);
DMSG("Status: 0x%x", Status);
Params[2].value.a = 0;
Params[2].value.b = Status;
return Status;
}