# QairtDevice

Device management API.

**Include:** `#include "QairtDevice/QairtDevice.h"`

- struct QairtDevice\_V1\_t

    - *#include &lt;QairtDevice.h&gt;*

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 &lt;QairtDeviceConfig.h&gt;*

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 &lt;QairtDeviceInfrastructure.h&gt;*

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 &lt;QairtDevicePlatformInfo.h&gt;*

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 &lt;QairtDevicePlatformInfo.h&gt;*

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 &lt;QairtDevicePlatformInfo.h&gt;*

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 &lt;QairtDevicePlatformInfo.h&gt;*

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: Jun 04, 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)