# QairtDevice Device management API. **Include:** `#include "QairtDevice/QairtDevice.h"` - struct QairtDevice\_V1\_t - *#include <QairtDevice.h>* Public Members - uint64\_t size - - [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface - - [QairtDevice\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv422QairtDevice_CreateFn_t) create - - [QairtDevice\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv420QairtDevice_FreeFn_t) free - - [QairtDevice\_SetConfigFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv425QairtDevice_SetConfigFn_t) setConfig - - [QairtDevice\_GetConfigFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv425QairtDevice_GetConfigFn_t) getConfig - Functions - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_create([QairtLog\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtLog.html#_CPPv417QairtLog_Handle_t) logHandle, [QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) configHandle, [QairtDevice\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv420QairtDevice_Handle_t) \*deviceHandle) - Create a logical device handle to a subset of hardware resources available on the platform. - Parameters - - **logHandle** – **[in]** A handle to the logger. Use a NULL handle to disable logging. QairtDevice does not manage the lifecycle of the logger and must be freed by using [QairtLog\_free()](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtLog.html#QairtLog_8h_1af60ca9cb29a9a35c1d71d3dbdd1570b8). - **configHandle** – **[in]** A handle to a device configuration, which is managed from the DeviceConfig component APIs. NULL is allowed and indicates no config options are provided. This handle may be freed once the device is created. - **deviceHandle** – **[out]** A handle to the created device. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *deviceHandle* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *logHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_INVALID\_CONFIG: One or more configuration values is invalid - QAIRT\_DEVICE\_ERROR\_MEM\_ALLOC: Failure in allocating memory when creating device - QAIRT\_DEVICE\_ERROR\_HARDWARE\_UNAVAILABLE: Requested hardware resources are unavailable - QAIRT\_DEVICE\_ERROR\_UNSUPPORTED\_FEATURE: API is not supported - QAIRT\_COMMON\_ERROR\_SYSTEM\_COMMUNICATION: SSR occurence (successful recovery) - QAIRT\_COMMON\_ERROR\_SYSTEM\_COMMUNICATION\_FATAL: SSR occurence (unsuccessful recovery) Note NULL value for *configHandle* creates a device handle with default configuration. Unless mentioned in backend specific headers, default configuration would enable all the devices and cores present on a platform for which a backend can control. Note Use corresponding API through [QairtDevice\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__V1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_free([QairtDevice\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv420QairtDevice_Handle_t) deviceHandle) - Free the created device and perform any deallocation of the resources allocated during device create. - Parameters - **deviceHandle** – **[in]** A device handle. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *deviceHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_MEM\_ALLOC: An error is encountered with de-allocation of associated memory, failure to invalidate handles or other allocated resources - QAIRT\_DEVICE\_ERROR\_ASSOCIATED\_TO\_CONTEXT: One or more contexts associated with the device handle is not freed - QAIRT\_DEVICE\_ERROR\_UNSUPPORTED\_FEATURE: API is not supported Note Use corresponding API through [QairtDevice\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__V1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_setConfig([QairtDevice\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv420QairtDevice_Handle_t) deviceHandle, [QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) configHandle) - A function to set/modify configuration options on an already created device. Backends are not required to support this API. - Parameters - - **deviceHandle** – **[in]** A device handle. - **configHandle** – **[in]** A handle to a device configuration, which is managed from the DeviceConfig component APIs. NULL is allowed and indicates no config options are provided. This handle may be freed once the device is created. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *deviceHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: At least one argument is invalid - QAIRT\_DEVICE\_ERROR\_INVALID\_CONFIG: One or more configuration values is invalid - QAIRT\_DEVICE\_ERROR\_UNSUPPORTED\_FEATURE: API is not supported - QAIRT\_DEVICE\_ERROR\_ASSOCIATED\_TO\_CONTEXT: *deviceHandle* has associated contexts. Free the associations before attempting to change the config. Note Use corresponding API through [QairtDevice\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__V1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_getConfig([QairtDevice\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv420QairtDevice_Handle_t) deviceHandle, [QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) \*configHandle) - A function to get configuration associated with a device handle. - Parameters - - **deviceHandle** – **[in]** A device handle. - **configHandle** – **[out]** A referenced handle device configuration handle. Reference handles should not be freed. Referenced handles are invalidated if modification operations are performed from the same component API. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *deviceHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *configHandle* is NULL - QAIRT\_DEVICE\_ERROR\_UNSUPPORTED\_FEATURE: API is not supported Note Use corresponding API through [QairtDevice\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__V1__t). Typedefs - typedef struct \_QairtDevice\_Handle\_t \*QairtDevice\_Handle\_t - Device handle used to interface with Device APIs. The handle itself is created and freed by the client. Copy to clipboard - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_CreateFn\_t)([QairtLog\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtLog.html#_CPPv417QairtLog_Handle_t), [QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t), [QairtDevice\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv420QairtDevice_Handle_t)\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_FreeFn\_t)([QairtDevice\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv420QairtDevice_Handle_t)) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_SetConfigFn\_t)([QairtDevice\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv420QairtDevice_Handle_t), [QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t)) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_GetConfigFn\_t)([QairtDevice\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv420QairtDevice_Handle_t), [QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t)\*) - Defines - QAIRT\_DEVICE\_V1\_ID QAIRT\_MIN\_ID\_DEVICE - - QAIRT\_DEVICE\_CONFIG\_V1\_ID QAIRT\_MIN\_ID\_DEVICE + 1 - - QAIRT\_DEVICE\_INRFA\_PROVIDER\_V1\_ID QAIRT\_MIN\_ID\_DEVICE + 2 - - QAIRT\_DEVICE\_INRFA\_V1\_ID QAIRT\_MIN\_ID\_DEVICE + 3 - - QAIRT\_DEVICE\_PLATFORM\_INFO\_PROVIDER\_V1\_ID QAIRT\_MIN\_ID\_DEVICE + 4 - - QAIRT\_DEVICE\_PLATFORM\_INFO\_V1\_ID QAIRT\_MIN\_ID\_DEVICE + 5 - - QAIRT\_DEVICE\_HW\_DEVICE\_INFO\_V1\_ID QAIRT\_MIN\_ID\_DEVICE + 6 - - QAIRT\_DEVICE\_HW\_CORE\_INFO\_V1\_ID QAIRT\_MIN\_ID\_DEVICE + 7 - - QAIRT\_DEVICE\_HW\_EXT\_DEVICE\_INFO\_V1\_ID QAIRT\_MIN\_ID\_DEVICE + 8 - - QAIRT\_DEVICE\_HW\_EXT\_CORE\_INFO\_V1\_ID QAIRT\_MIN\_ID\_DEVICE + 9 - - QAIRT\_DEVICE\_DEFAULT\_DEVICE\_ID 0xFFFFFFFF - Reserved value to select a default device. - QAIRT\_DEVICE\_DEFAULT\_CORE\_ID 0xFFFFFFFF - Reserved value to select a default core. * * * Common device types and error codes. **Include:** `#include "QairtDevice/QairtDeviceCommon.h"` Enums - enum QairtDevice\_Error\_t - QAIRT Device API result / error codes. *Values:* - enumerator QAIRT\_DEVICE\_MIN\_ERROR = QAIRT\_MIN\_ERROR\_DEVICE - - enumerator QAIRT\_DEVICE\_NO\_ERROR = QAIRT\_SUCCESS - Qairt Device success. - enumerator QAIRT\_DEVICE\_ERROR\_UNSUPPORTED\_FEATURE = [QAIRT\_COMMON\_ERROR\_NOT\_SUPPORTED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N19QairtCommon_Error_t32QAIRT_COMMON_ERROR_NOT_SUPPORTEDE) - There is optional API component that is not supported yet. See QairtCapability. - enumerator QAIRT\_DEVICE\_ERROR\_MEM\_ALLOC = [QAIRT\_COMMON\_ERROR\_MEM\_ALLOC](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N19QairtCommon_Error_t28QAIRT_COMMON_ERROR_MEM_ALLOCE) - Memory allocation/deallocation failure. - enumerator QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT = [QAIRT\_COMMON\_ERROR\_INVALID\_ARGUMENT](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N19QairtCommon_Error_t35QAIRT_COMMON_ERROR_INVALID_ARGUMENTE) - Invalid function argument. - enumerator QAIRT\_DEVICE\_ERROR\_OUT\_OF\_RANGE = [QAIRT\_COMMON\_ERROR\_OUT\_OF\_RANGE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N19QairtCommon_Error_t31QAIRT_COMMON_ERROR_OUT_OF_RANGEE) - Requested element is out of range. - enumerator QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE = 14000 - Invalid handle. - enumerator QAIRT\_DEVICE\_ERROR\_INVALID\_CONFIG = 14001 - Invalid config values. - enumerator QAIRT\_DEVICE\_ERROR\_HARDWARE\_UNAVAILABLE = 14002 - Hardware unavailable. - enumerator QAIRT\_DEVICE\_ERROR\_ASSOCIATED\_TO\_CONTEXT = 14003 - Device is associated to a context. - enumerator QAIRT\_DEVICE\_MAX\_ERROR = QAIRT\_MAX\_ERROR\_DEVICE - - enumerator QAIRT\_DEVICE\_ERROR\_UNDEFINED = 0x7FFFFFFF - * * * Device configuration options. **Include:** `#include "QairtDevice/QairtDeviceConfig.h"` - struct QairtDevice\_ConfigV1\_t - *#include <QairtDeviceConfig.h>* Public Members - uint64\_t size - - [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface - - [QairtDevice\_Config\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv429QairtDevice_Config_CreateFn_t) create - - [QairtDevice\_Config\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv427QairtDevice_Config_FreeFn_t) free - - [QairtDevice\_Config\_SetPlatformInfoFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_Config_SetPlatformInfoFn_t) setPlatformInfo - - [QairtDevice\_Config\_GetPlatformInfoFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_Config_GetPlatformInfoFn_t) getPlatformInfo - - [QairtDevice\_Config\_SetCustomConfigFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_Config_SetCustomConfigFn_t) setCustomConfig - - [QairtDevice\_Config\_GetNumCustomConfigsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv442QairtDevice_Config_GetNumCustomConfigsFn_t) getNumCustomConfig - - [QairtDevice\_Config\_GetCustomConfigAtFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv440QairtDevice_Config_GetCustomConfigAtFn_t) getCustomConfigAt - - [QairtDevice\_Config\_ClearCustomConfigsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv441QairtDevice_Config_ClearCustomConfigsFn_t) clearCustomConfigs - Functions - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_Config\_create([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) \*configHandle) - Create a device configuration handle. - Parameters - **configHandle** – **[out]** A handle to the created device configuration. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *configHandle* is NULL - QAIRT\_DEVICE\_ERROR\_MEM\_ALLOC: Failure in allocating memory Note Use corresponding API through [QairtDevice\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__ConfigV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_Config\_free([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) configHandle) - Free a device configuration handle and associated resources. - Parameters - **configHandle** – **[in]** A handle to the device configuration. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_MEM\_ALLOC: Error in de-allocating memory Note Use corresponding API through [QairtDevice\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__ConfigV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_Config\_setPlatformInfo([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) configHandle, [QairtDevice\_PlatformInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_PlatformInfoHandle_t) platformInfoHandle) - Set platform info in the device configuration. - Parameters - - **configHandle** – **[in]** A handle to the device configuration. - **platformInfoHandle** – **[in]** A handle to the platform info to set. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *platformInfoHandle* is NULL Note Use corresponding API through [QairtDevice\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__ConfigV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_Config\_getPlatformInfo([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) configHandle, [QairtDevice\_PlatformInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_PlatformInfoHandle_t) \*platformInfoHandle) - Get platform info from the device configuration. - Parameters - - **configHandle** – **[in]** A handle to the device configuration. - **platformInfoHandle** – **[out]** A referenced platform info handle. Reference handles should not be freed. Referenced handles are invalidated if modification operations are performed from the same component API. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *platformInfoHandle* is NULL Note Use corresponding API through [QairtDevice\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__ConfigV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_Config\_setCustomConfig([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) configHandle, [QairtDevice\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_CustomConfigHandle_t) customConfigHandle) - Set custom configuration in the device configuration. - Parameters - - **configHandle** – **[in]** A handle to the device configuration. - **customConfigHandle** – **[in]** A handle to the custom configuration to set. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *customConfigHandle* is NULL Note Use corresponding API through [QairtDevice\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__ConfigV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_Config\_getNumCustomConfigs([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) configHandle, uint32\_t \*numCustomConfigs) - Get the number of custom configurations in the device configuration. - Parameters - - **configHandle** – **[in]** A handle to the device configuration. - **numCustomConfigs** – **[out]** Number of custom configurations. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *numCustomConfigs* is NULL Note Use corresponding API through [QairtDevice\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__ConfigV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_Config\_getCustomConfigAt([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) configHandle, uint32\_t index, [QairtDevice\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_CustomConfigHandle_t) \*customConfigHandle) - Get a custom configuration handle at the specified index. - Parameters - - **configHandle** – **[in]** A handle to the device configuration. - **index** – **[in]** Index of the custom configuration to retrieve. - **customConfigHandle** – **[out]** A referenced custom configuration handle at the specified index. Reference handles should not be freed. Referenced handles are invalidated if modification operations are performed from the same component API. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *customConfigHandle* is NULL - QAIRT\_DEVICE\_ERROR\_OUT\_OF\_RANGE: *index* is out of range Note Use corresponding API through [QairtDevice\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__ConfigV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_Config\_clearCustomConfigs([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t) configHandle) - Clear all custom configurations from the device configuration. - Parameters - **configHandle** – **[in]** A handle to the device configuration. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle Note Use corresponding API through [QairtDevice\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__ConfigV1__t). Typedefs - typedef struct \_QairtDevice\_ConfigHandle\_t \*QairtDevice\_ConfigHandle\_t - - typedef struct \_QairtDevice\_CustomConfigHandle\_t \*QairtDevice\_CustomConfigHandle\_t - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_Config\_CreateFn\_t)([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t)\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_Config\_FreeFn\_t)([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t)) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_Config\_SetPlatformInfoFn\_t)([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t), [QairtDevice\_PlatformInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_PlatformInfoHandle_t)) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_Config\_GetPlatformInfoFn\_t)([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t), [QairtDevice\_PlatformInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_PlatformInfoHandle_t)\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_Config\_SetCustomConfigFn\_t)([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t), [QairtDevice\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_CustomConfigHandle_t)) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_Config\_GetNumCustomConfigsFn\_t)([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t), uint32\_t\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_Config\_GetCustomConfigAtFn\_t)([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t), uint32\_t, [QairtDevice\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_CustomConfigHandle_t)\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_Config\_ClearCustomConfigsFn\_t)([QairtDevice\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv426QairtDevice_ConfigHandle_t)) - * * * Device infrastructure types. **Include:** `#include "QairtDevice/QairtDeviceInfrastructure.h"` - struct QairtDevice\_InfrastructureProviderV1\_t - *#include <QairtDeviceInfrastructure.h>* Public Members - uint64\_t size - - [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface - - [QairtDevice\_InfrastructureProvider\_GetInfrastructureFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv456QairtDevice_InfrastructureProvider_GetInfrastructureFn_t) getDeviceInfra - Functions - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_InfrastructureProvider\_getInfrastructure([QairtDevice\_InfrastructureHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv434QairtDevice_InfrastructureHandle_t) \*deviceInfraHandle) - Get device hardware infrastructure interface object. This is optional capability, support is advertised via QairtCapability. If supported, please refer to documentation and/or header file provided by the backend for usage information. - Parameters - **deviceInfraHandle** – **[out]** Pointer to infrastructure interface object. The pointer returned is a backend owned memory. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_UNSUPPORTED\_FEATURE: API is not supported - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *deviceInfraHandle* is NULL - QAIRT\_DEVICE\_ERROR\_MEM\_ALLOC: Insufficient memory to return *deviceInfraHandle* Note Use corresponding API through [QairtDevice\_InfrastructureProviderV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__InfrastructureProviderV1__t). Typedefs - typedef struct \_QairtDevice\_InfrastructureHandle\_t \*QairtDevice\_InfrastructureHandle\_t - Backend specific opaque infrastructure object. Please refer to the documentation provided by the backend for usage information. Copy to clipboard - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_InfrastructureProvider\_GetInfrastructureFn\_t)([QairtDevice\_InfrastructureHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv434QairtDevice_InfrastructureHandle_t)\*) - * * * Platform information accessors. **Include:** `#include "QairtDevice/QairtDevicePlatformInfo.h"` - struct QairtDevice\_PlatformInfoProviderV1\_t - *#include <QairtDevicePlatformInfo.h>* Public Members - uint64\_t size - - [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface - - [QairtDevice\_PlatformInfoProvider\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv443QairtDevice_PlatformInfoProvider_CreateFn_t) create - - [QairtDevice\_PlatformInfoProvider\_GetPlatformInfoFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv452QairtDevice_PlatformInfoProvider_GetPlatformInfoFn_t) getPlatformInfo - - [QairtDevice\_PlatformInfoProvider\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv441QairtDevice_PlatformInfoProvider_FreeFn_t) free - - struct QairtDevice\_PlatformInfoV1\_t - *#include <QairtDevicePlatformInfo.h>* Public Members - uint64\_t size - - [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface - - [QairtDevice\_PlatformInfo\_GetNumHardwareDeviceInfoFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv453QairtDevice_PlatformInfo_GetNumHardwareDeviceInfoFn_t) getNumHwDeviceInfo - - [QairtDevice\_PlatformInfo\_GetNumHardwareDeviceInfoAtFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv455QairtDevice_PlatformInfo_GetNumHardwareDeviceInfoAtFn_t) getHwDeviceInfoAt - - struct QairtDevice\_HardwareDeviceInfoV1\_t - *#include <QairtDevicePlatformInfo.h>* Public Members - uint64\_t size - - [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface - - [QairtDevice\_HardwareDeviceInfo\_GetDeviceIdFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv446QairtDevice_HardwareDeviceInfo_GetDeviceIdFn_t) getDeviceId - - [QairtDevice\_HardwareDeviceInfo\_GetDeviceTypeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv448QairtDevice_HardwareDeviceInfo_GetDeviceTypeFn_t) getDeviceType - - [QairtDevice\_HardwareDeviceInfo\_GetNumCoreInfosFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv450QairtDevice_HardwareDeviceInfo_GetNumCoreInfosFn_t) getNumCoreInfos - - [QairtDevice\_HardwareDeviceInfo\_GetHardwareCoreInfoAtFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv456QairtDevice_HardwareDeviceInfo_GetHardwareCoreInfoAtFn_t) getHardwareCoreInfoAt - - [QairtDevice\_HardwareDeviceInfo\_GetHardwareDeviceExtendedInfoFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv464QairtDevice_HardwareDeviceInfo_GetHardwareDeviceExtendedInfoFn_t) getHardwareDeviceExtendedInfo - - struct QairtDevice\_HardwareCoreInfoV1\_t - *#include <QairtDevicePlatformInfo.h>* Public Members - uint64\_t size - - [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface - - [QairtDevice\_HardwareCoreInfo\_GetCoreIdFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv442QairtDevice_HardwareCoreInfo_GetCoreIdFn_t) getCoreId - - [QairtDevice\_HardwareCoreInfo\_GetCoreTypeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv444QairtDevice_HardwareCoreInfo_GetCoreTypeFn_t) getCoreType - - [QairtDevice\_HardwareCoreInfo\_GetHardwareCoreExtendedInfoFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv460QairtDevice_HardwareCoreInfo_GetHardwareCoreExtendedInfoFn_t) getHardwareCoreExtendedInfo - Functions - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_PlatformInfoProvider\_create([QairtLog\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtLog.html#_CPPv417QairtLog_Handle_t) logHandle, [QairtDevice\_PlatformInfoProviderHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv440QairtDevice_PlatformInfoProviderHandle_t) \*platformInfoProviderHandle) - Create a platform info provider handle to query platform information. - Parameters - - **logHandle** – **[in]** A handle to the logger. Use a NULL handle to disable logging. QairtDevice does not manage the lifecycle of the logger and must be freed by using [QairtLog\_free()](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtLog.html#QairtLog_8h_1af60ca9cb29a9a35c1d71d3dbdd1570b8). - **platformInfoProviderHandle** – **[out]** A handle to the created platform info provider. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *platformInfoProviderHandle* is NULL - QAIRT\_DEVICE\_ERROR\_MEM\_ALLOC: Failure in allocating memory Note Use corresponding API through [QairtDevice\_PlatformInfoProviderV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__PlatformInfoProviderV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_PlatformInfoProvider\_getPlatformInfo([QairtDevice\_PlatformInfoProviderHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv440QairtDevice_PlatformInfoProviderHandle_t) platformInfoProviderHandle, [QairtDevice\_PlatformInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_PlatformInfoHandle_t) \*platformInfoHandle) - Get a platform info handle. - Parameters - - **platformInfoProviderHandle** – **[in]** A handle to the platform info provider. - **index** – **[in]** Index of the platform info to retrieve. - **platformInfoHandle** – **[out]** A handle to the platform info at the specified index. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *platformInfoHandle* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *platformInfoProviderHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_OUT\_OF\_RANGE: *index* is out of range Note Use corresponding API through [QairtDevice\_PlatformInfoProviderV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__PlatformInfoProviderV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_PlatformInfoProvider\_free([QairtDevice\_PlatformInfoProviderHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv440QairtDevice_PlatformInfoProviderHandle_t) platformInfoProviderHandle) - Free the platform info provider handle and associated resources. - Parameters - **platformInfoProviderHandle** – **[in]** A handle to the platform info provider. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *platformInfoProviderHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_MEM\_ALLOC: Error in de-allocating memory Note Use corresponding API through [QairtDevice\_PlatformInfoProviderV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__PlatformInfoProviderV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_PlatformInfo\_getNumHardwareDeviceInfo([QairtDevice\_PlatformInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_PlatformInfoHandle_t) platformInfoHandle, uint32\_t \*numHwDeviceInfo) - Get the number of hardware device info entries in the platform info. - Parameters - - **platformInfoHandle** – **[in]** A handle to the platform info. - **numHwDeviceInfo** – **[out]** Number of hardware device info entries. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *numHwDeviceInfo* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *platformInfoHandle* is not a valid handle Note Use corresponding API through [QairtDevice\_PlatformInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__PlatformInfoV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_PlatformInfo\_getHardwareDeviceInfoAt([QairtDevice\_PlatformInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_PlatformInfoHandle_t) platformInfoHandle, uint32\_t index, [QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t) \*hwDeviceInfoHandle) - Get a hardware device info handle at the specified index. - Parameters - - **platformInfoHandle** – **[in]** A handle to the platform info. - **index** – **[in]** Index of the hardware device info to retrieve. - **hwDeviceInfoHandle** – **[out]** A handle to the hardware device info at the specified index. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *hwDeviceInfoHandle* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *platformInfoHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_OUT\_OF\_RANGE: *index* is out of range Note Use corresponding API through [QairtDevice\_PlatformInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__PlatformInfoV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_HardwareDeviceInfo\_getDeviceId([QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t) hwDeviceInfoHandle, uint32\_t \*deviceId) - Get the device ID from hardware device info. - Parameters - - **hwDeviceInfoHandle** – **[in]** A handle to the hardware device info. - **deviceId** – **[out]** The device ID. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *deviceId* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *hwDeviceInfoHandle* is not a valid handle Note Use corresponding API through [QairtDevice\_HardwareDeviceInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__HardwareDeviceInfoV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_HardwareDeviceInfo\_getDeviceType([QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t) hwDeviceInfoHandle, uint32\_t \*deviceType) - Get the device type from hardware device info. - Parameters - - **hwDeviceInfoHandle** – **[in]** A handle to the hardware device info. - **deviceType** – **[out]** The device type. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *deviceType* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *hwDeviceInfoHandle* is not a valid handle Note Use corresponding API through [QairtDevice\_HardwareDeviceInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__HardwareDeviceInfoV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_HardwareDeviceInfo\_getNumCoreInfos([QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t) hwDeviceInfoHandle, uint32\_t \*numCores) - Get the number of core info entries in the hardware device info. - Parameters - - **hwDeviceInfoHandle** – **[in]** A handle to the hardware device info. - **numCores** – **[out]** Number of core info entries. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *numCores* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *hwDeviceInfoHandle* is not a valid handle Note Use corresponding API through [QairtDevice\_HardwareDeviceInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__HardwareDeviceInfoV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_HardwareDeviceInfo\_getHardwareCoreInfoAt([QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t) hwDeviceInfoHandle, uint32\_t index, [QairtDevice\_HardwareCoreInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv436QairtDevice_HardwareCoreInfoHandle_t) \*hwCoreInfoHandle) - Get a hardware core info handle at the specified index. - Parameters - - **hwDeviceInfoHandle** – **[in]** A handle to the hardware device info. - **index** – **[in]** Index of the hardware core info to retrieve. - **hwCoreInfoHandle** – **[out]** A referenced hardware core info handle at the specified index. Reference handles should not be freed. Referenced handles are invalidated if modification operations are performed from the same component API. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *hwCoreInfoHandle* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *hwDeviceInfoHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_OUT\_OF\_RANGE: *index* is out of range Note Use corresponding API through [QairtDevice\_HardwareDeviceInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__HardwareDeviceInfoV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_HardwareDeviceInfo\_getHardwareDeviceExtendedInfo([QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t) hwDeviceInfoHandle, [QairtDevice\_HardwareDeviceExtendedInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv446QairtDevice_HardwareDeviceExtendedInfoHandle_t) \*extHwDeviceInfoHandle) - Get the hardware device extended info handle. - Parameters - - **hwDeviceInfoHandle** – **[in]** A handle to the hardware device info. - **extHwDeviceInfoHandle** – **[out]** A referenced hardware device extended info handle. Reference handles should not be freed. Referenced handles are invalidated if modification operations are performed from the same component API. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *extHwDeviceInfoHandle* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *hwDeviceInfoHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_UNSUPPORTED\_FEATURE: Extended info is not supported Note Use corresponding API through [QairtDevice\_HardwareDeviceInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__HardwareDeviceInfoV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_HardwareCoreInfo\_getCoreId([QairtDevice\_HardwareCoreInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv436QairtDevice_HardwareCoreInfoHandle_t) hwCoreInfoHandle, uint32\_t \*coreId) - Get the core ID from hardware core info. - Parameters - - **hwCoreInfoHandle** – **[in]** A handle to the hardware core info. - **coreId** – **[out]** The core ID. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *coreId* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *hwCoreInfoHandle* is not a valid handle Note Use corresponding API through [QairtDevice\_HardwareCoreInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__HardwareCoreInfoV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_HardwareCoreInfo\_getCoreType([QairtDevice\_HardwareCoreInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv436QairtDevice_HardwareCoreInfoHandle_t) hwCoreInfoHandle, uint32\_t \*coreType) - Get the core type from hardware core info. - Parameters - - **hwCoreInfoHandle** – **[in]** A handle to the hardware core info. - **coreType** – **[out]** The core type. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *coreType* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *hwCoreInfoHandle* is not a valid handle Note Use corresponding API through [QairtDevice\_HardwareCoreInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__HardwareCoreInfoV1__t). - [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtDevice\_HardwareCoreInfo\_getHardwareCoreExtendedInfo([QairtDevice\_HardwareCoreInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv436QairtDevice_HardwareCoreInfoHandle_t) hwCoreInfoHandle, [QairtDevice\_HardwareDeviceExtendedInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv446QairtDevice_HardwareDeviceExtendedInfoHandle_t) \*extHwCoreInfoHandle) - Get the hardware core extended info handle. - Parameters - - **hwCoreInfoHandle** – **[in]** A handle to the hardware core info. - **extHwCoreInfoHandle** – **[out]** A referenced extended hardware info handle. Reference handles should not be freed. Referenced handles are invalidated if modification operations are performed from the same component API. - Returns - Error code: - QAIRT\_SUCCESS: No error encountered - QAIRT\_DEVICE\_ERROR\_INVALID\_ARGUMENT: *extHwCoreInfoHandle* is NULL - QAIRT\_DEVICE\_ERROR\_INVALID\_HANDLE: *hwCoreInfoHandle* is not a valid handle - QAIRT\_DEVICE\_ERROR\_UNSUPPORTED\_FEATURE: Extended info is not supported Note Use corresponding API through [QairtDevice\_HardwareCoreInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#structQairtDevice__HardwareCoreInfoV1__t). Typedefs - typedef struct \_QairtDevice\_PlatformInfoProviderHandle\_t \*QairtDevice\_PlatformInfoProviderHandle\_t - - typedef struct \_QairtDevice\_PlatformInfoHandle\_t \*QairtDevice\_PlatformInfoHandle\_t - - typedef struct \_QairtDevice\_HardwareDeviceInfoHandle\_t \*QairtDevice\_HardwareDeviceInfoHandle\_t - - typedef struct \_QairtDevice\_HardwareCoreInfoHandle\_t \*QairtDevice\_HardwareCoreInfoHandle\_t - - typedef struct \_QairtDevice\_HardwareDeviceExtendedInfoHandle\_t \*QairtDevice\_HardwareDeviceExtendedInfoHandle\_t - - typedef struct \_QairtDevice\_HardwareCoreExtendedInfoHandle\_t \*QairtDevice\_HardwareCoreExtendedInfoHandle\_t - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_PlatformInfoProvider\_CreateFn\_t)([QairtLog\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtLog.html#_CPPv417QairtLog_Handle_t), [QairtDevice\_PlatformInfoProviderHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv440QairtDevice_PlatformInfoProviderHandle_t)\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_PlatformInfoProvider\_GetPlatformInfoFn\_t)([QairtDevice\_PlatformInfoProviderHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv440QairtDevice_PlatformInfoProviderHandle_t), [QairtDevice\_PlatformInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_PlatformInfoHandle_t)\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_PlatformInfoProvider\_FreeFn\_t)([QairtDevice\_PlatformInfoProviderHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv440QairtDevice_PlatformInfoProviderHandle_t)) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_PlatformInfo\_GetNumHardwareDeviceInfoFn\_t)([QairtDevice\_PlatformInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_PlatformInfoHandle_t), uint32\_t\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_PlatformInfo\_GetNumHardwareDeviceInfoAtFn\_t)([QairtDevice\_PlatformInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_PlatformInfoHandle_t), uint32\_t, [QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t)\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_HardwareDeviceInfo\_GetDeviceIdFn\_t)([QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t), uint32\_t\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_HardwareDeviceInfo\_GetDeviceTypeFn\_t)([QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t), uint32\_t\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_HardwareDeviceInfo\_GetNumCoreInfosFn\_t)([QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t), uint32\_t\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_HardwareDeviceInfo\_GetHardwareCoreInfoAtFn\_t)([QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t), uint32\_t, [QairtDevice\_HardwareCoreInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv436QairtDevice_HardwareCoreInfoHandle_t)\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_HardwareDeviceInfo\_GetHardwareDeviceExtendedInfoFn\_t)([QairtDevice\_HardwareDeviceInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_HardwareDeviceInfoHandle_t), [QairtDevice\_HardwareDeviceExtendedInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv446QairtDevice_HardwareDeviceExtendedInfoHandle_t)\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_HardwareCoreInfo\_GetCoreIdFn\_t)([QairtDevice\_HardwareCoreInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv436QairtDevice_HardwareCoreInfoHandle_t), uint32\_t\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_HardwareCoreInfo\_GetCoreTypeFn\_t)([QairtDevice\_HardwareCoreInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv436QairtDevice_HardwareCoreInfoHandle_t), uint32\_t\*) - - typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtDevice\_HardwareCoreInfo\_GetHardwareCoreExtendedInfoFn\_t)([QairtDevice\_HardwareCoreInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv436QairtDevice_HardwareCoreInfoHandle_t), [QairtDevice\_HardwareDeviceExtendedInfoHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv446QairtDevice_HardwareDeviceExtendedInfoHandle_t)\*) - Last Published: Aug 06, 2026 [Previous Topic QairtBackend](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/QairtBackend.md) [Next Topic QairtMem](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/QairtMem.md)