/** @file  IFeatureVersions.idl */

// Copyright (c) 2018, 2020 Qualcomm Technologies, Inc.
// All Rights Reserved.
// Confidential and Proprietary - Qualcomm Technologies, Inc.

/** @cond */
interface IFeatureVersions {
/** @endcond */

	/**
    * @addtogroup IFeatureVersions
    * @{
    */
    
     /** @cond */
    /** Return this error if the provided feature ID for getVersionId() is not valid */
    error ERROR_INVALID_ID;
    /** @endcond */

    /** @cond */
    const uint32 PIL = 0;
    const uint32 XPU_CONFIG = 1;
    const uint32 POWER_COLLAPSE = 2;
    const uint32 NS_IF = 3;
    const uint32 SECURE_IF = 4;
    const uint32 SSD = 5;
    const uint32 DIAG = 6;
    const uint32 NS_WATCHDOG = 7;
    const uint32 QDSS = 8;
    const uint32 MMU = 9;
    const uint32 QSEE = 10;
    const uint32 KS = 11;
    const uint32 CP = 12;
    const uint32 CE_DRV = 14;
    const uint32 TA_WLIST = 15;
    const uint32 TZ_VAR_MD = 16;
    /** @endcond */

    /**
    For a given feature, return the current version.
    @param[in]  feature_id  Unique identifier for a given feature.
    @param[out] version     Holds the version information.
    
    @returns Object_OK on success, ERROR_INVALID_ID on failure.
    */

    method getVersionId (in uint32 feature_id, out uint32 version);

    /** @} */ /* end_addtogroup IFeatureVersions */
};
