static TEE_Result AuthVarSet()

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;
}