# QairtProfile

Profiling API — collect and query performance events.

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

- struct QairtProfile\_V1\_t

    - Public Members

- uint64\_t size

    - 

- [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface

    - 

- [QairtProfile\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_FreeFn_t) free

    - 

- [QairtProfile\_SetConfigFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_SetConfigFn_t) setConfig

    - 

- [QairtProfile\_GetNumEventsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv429QairtProfile_GetNumEventsFn_t) getNumEvents

    - 

- [QairtProfile\_GetEventAtFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_GetEventAtFn_t) getEventAt

    - 

- [QairtProfile\_GetNumSubEventsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv432QairtProfile_GetNumSubEventsFn_t) getNumSubEvents

    - 

- [QairtProfile\_GetSubEventAtFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv430QairtProfile_GetSubEventAtFn_t) getSubEventAt

    -

Functions

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_free([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t) profileHandle)

    - Free a profile handle and associated resources.

- Parameters

    - **profileHandle** – **[in]** A handle to a created profile.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Profile was successfully freed.
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *profileHandle* is not a valid handle.
- QAIRT\_PROFILE\_ERROR\_MEM\_ALLOC: Memory deallocation error.

Note

Use corresponding API through [QairtProfile\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_setConfig([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t) profileHandle, [QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t) configHandle)

    - A function to set/modify configuration options on an already created profile.

- Parameters

    - - **profileHandle** – **[in]** A profile handle.
- **configHandle** – **[in]** A created profile config handle. NULL is allowed and indicates no config options are provided. All config options have default value, in case not provided. If same config option type is provided multiple times, the last option value will be used. If a backend cannot support all provided configs it will fail.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *profileHandle* or *configHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: at least one config option is invalid
- QAIRT\_PROFILE\_ERROR\_HANDLE\_IN\_USE: when attempting to reconfigure a profile handle
- QAIRT\_PROFILE\_ERROR\_UNSUPPORTED: at least one valid config option is not supported

Note

Use corresponding API through [QairtProfile\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_getNumEvents([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t) profileHandle, uint32\_t \*numEvents)

    - Get the number of profile events collected on the profile handle.

- Parameters

    - - **profileHandle** – **[in]** A profile handle.
- **numEvents** – **[out]** Number of profile events.

- Returns

    - Error code

- QAIRT\_SUCCESS: No error encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *profileHandle* is not a valid handle.
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *numEvents* is NULL.

Note

profileEvents parameter: profile event memory is associated with the profile object and released on profile object release in QairtProfile\_free().

Note

Use corresponding API through [QairtProfile\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_getEventAt([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t) profileHandle, uint32\_t index, [QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) \*eventHandle)

    - Get profile events collected on the profile handle at a specific index.

- Parameters

    - - **profileHandle** – **[in]** A profile handle.
- **index** – **[in]** index of event to return.
- **eventHandle** – **[out]** Returns handle to profile event at specified index

- Returns

    - Error code

- QAIRT\_SUCCESS: No error encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *profileHandle* is not a valid handle.
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *eventHandles* or *numEvents* is NULL.

Note

profileEvents parameter: profile event memory is associated with the profile object and released on profile object release in QairtProfile\_free().

Note

Use corresponding API through [QairtProfile\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__V1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_getNumSubEvents([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t) profileHandle, [QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, uint64\_t \*numSubEvents)

    - Get the number of profile sub-events collected on the profile event handle.

- Parameters

    - - **profileHandle** – **[in]** A profile handle.
- **eventHandle** – **[in]** A profile event handle.
- **numSubEvents** – **[out]** The number of subevents.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *profileHandle* or *eventHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *numSubEvents* is invalid

Note

profileEvents parameter: profile event memory is associated with the profile object and released on profile object release in QairtProfile\_free().

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_getSubEventAt([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t) profileHandle, [QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, uint32\_t index, [QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) \*subEventHandle)

    - Get profile events collected on the profile handle at a specific index.

- Parameters

    - - **profileHandle** – **[in]** A profile handle.
- **eventHandle** – **[in]** A profile event handle.
- **index** – **[out]** Index of sub-event to return.
- **subEventHandle** – **[out]** Returns handle to profile sub-event at specified index

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *profileHandle* or *eventHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *numSubEvents* is invalid

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

Enums

- enum QairtProfile\_Error\_t

    - *Values:*

- enumerator QAIRT\_PROFILE\_MIN\_ERROR = QAIRT\_MIN\_ERROR\_PROFILE

    - 

- enumerator QAIRT\_PROFILE\_NO\_ERROR = QAIRT\_SUCCESS

    - Qairt Profile success.

- enumerator QAIRT\_PROFILE\_ERROR\_UNSUPPORTED = [QAIRT\_COMMON\_ERROR\_NOT\_SUPPORTED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N19QairtCommon_Error_t32QAIRT_COMMON_ERROR_NOT_SUPPORTEDE)

    - Backend does not support requested functionality.

- enumerator QAIRT\_PROFILE\_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\_PROFILE\_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)

    - General error relating to memory allocation in Profile API.

- enumerator QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE = 12000

    - Invalid/NULL QAIRT profile handle.

- enumerator QAIRT\_PROFILE\_ERROR\_HANDLE\_IN\_USE = 12001

    - Attempt to free or reconfigure a profile handle that is in-use.

- enumerator QAIRT\_PROFILE\_ERROR\_INCOMPATIBLE\_EVENT = 12002

    - Event is incompatible with API.

- enumerator QAIRT\_PROFILE\_ERROR\_DATA\_NOT\_AVAILABLE = 12003

    - Event does not have requested data field.

- enumerator QAIRT\_PROFILE\_MAX\_ERROR = QAIRT\_MAX\_ERROR\_PROFILE

    - 

- enumerator QAIRT\_PROFILE\_ERROR\_UNDEFINED = 0x7FFFFFFF

    -

Typedefs

- typedef struct \_QairtProfile\_Handle\_t \*QairtProfile\_Handle\_t

    - 

- typedef uint32\_t QairtProfile\_Level\_t

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_FreeFn\_t)([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_SetConfigFn\_t)([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t), [QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_GetNumEventsFn\_t)([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t), uint32\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_GetEventAtFn\_t)([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t), uint32\_t, [QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_GetNumSubEventsFn\_t)([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t), [QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), uint64\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_GetSubEventAtFn\_t)([QairtProfile\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv421QairtProfile_Handle_t), [QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), uint32\_t, [QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t)\*)

    -

Defines

- QAIRT\_PROFILE\_V1\_ID QAIRT\_MIN\_ID\_PROFILE

    - 

- QAIRT\_PROFILE\_EVENT\_V1\_ID QAIRT\_MIN\_ID\_PROFILE + 1

    - 

- QAIRT\_PROFILE\_CONFIG\_V1\_ID QAIRT\_MIN\_ID\_PROFILE + 2

    - 

- QAIRT\_PROFILE\_BACKEND\_OPAQUE\_OBJECT\_V1\_ID QAIRT\_MIN\_ID\_PROFILE + 3

    - 

- QAIRT\_PROFILE\_LEVEL\_BASIC 1

    - Basic QairtProfile\_Level\_t definition that allows to collect performance metrics for graph finalization and execution stages.

- QAIRT\_PROFILE\_LEVEL\_DETAILED 2

    - Detailed QairtProfile\_Level\_t definition that allows to collect performance metrics for each operation in the graph.

- QAIRT\_PROFILE\_LEVEL\_BACKEND 1000

    - QairtProfile\_Level\_t definition reserved for each back end to define and extend.

* * *

Backend-opaque profiling objects.

**Include:** `#include "QairtProfile/QairtProfileBackendOpaqueObject.h"`

- struct QairtProfile\_BackendOpaqueObjectV1\_t

    - Public Members

- uint64\_t size

    - 

- [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface

    - 

- [QairtProfile\_BackendOpaqueObject\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv443QairtProfile_BackendOpaqueObject_CreateFn_t) create

    - 

- [QairtProfile\_BackendOpaqueObject\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv441QairtProfile_BackendOpaqueObject_FreeFn_t) free

    - 

- [QairtProfile\_BackendOpaqueObject\_SetOpaqueObjectFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv452QairtProfile_BackendOpaqueObject_SetOpaqueObjectFn_t) setData

    - 

- [QairtProfile\_BackendOpaqueObject\_GetOpaqueObjectFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv452QairtProfile_BackendOpaqueObject_GetOpaqueObjectFn_t) getData

    - 

- [QairtProfile\_BackendOpaqueObject\_SetFileNameFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv448QairtProfile_BackendOpaqueObject_SetFileNameFn_t) setFileName

    - 

- [QairtProfile\_BackendOpaqueObject\_GetFileNameFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv448QairtProfile_BackendOpaqueObject_GetFileNameFn_t) getFileName

    -

Functions

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_BackendOpaqueObject\_create([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t) \*opaqueObjectHandle)

    - Create a profile backend opqaue object.

- Parameters

    - **opaqueObjectHandle** – **[out]** A handle to the created profile backend opqaue object.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Config was successfully created.
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: Config handle is invalid.
- QAIRT\_PROFILE\_ERROR\_MEM\_ALLOC: Config creation failed due to memory/resource allocation issues.

Note

Use corresponding API through [QairtProfile\_BackendOpaqueObjectV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__BackendOpaqueObjectV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_BackendOpaqueObject\_free([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t) opaqueObjectHandle)

    - Free a profile backend opqaue object handle and associated resources.

- Parameters

    - **opaqueObjectHandle** – **[in]** A handle to a created profile backend opqaue object.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Profile was successfully freed.
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *opaqueObjectHandle* is not a valid handle.
- QAIRT\_PROFILE\_ERROR\_MEM\_ALLOC: Memory deallocation error.

Note

Use corresponding API through [QairtProfile\_BackendOpaqueObjectV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__BackendOpaqueObjectV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_BackendOpaqueObject\_setData([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t) opaqueObjectHandle, void \*data, uint64\_t size)

    - Set the opaque object related to the backend opaque object.

- Parameters

    - - **opaqueObjectHandle** – **[in]** A profile backend opaque object handle.
- **data** – **[in]** Buffer containing the opaque object.
- **size** – **[in]** Size of the buffer, in bytes, containting the opaque object.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *opaqueObjectHandle* or *bufferHandle* is not a valid handle

Note

Use corresponding API through [QairtProfile\_BackendOpaqueObjectV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__BackendOpaqueObjectV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_BackendOpaqueObject\_getData([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t) opaqueObjectHandle, void \*\*data, uint64\_t \*size)

    - Get the underlying opaque object from the backend opaque object.

- Parameters

    - - **opaqueObjectHandle** – **[in]** A profile backend opaque object handle.
- **data** – **[out]** Buffer containing the opaque object.
- **size** – **[out]** Size of the buffer, in bytes, containting the opaque object.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *opaqueObjectHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *bufferHandle* is NULL

Note

Use corresponding API through [QairtProfile\_BackendOpaqueObjectV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__BackendOpaqueObjectV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_BackendOpaqueObject\_setFileName([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t) opaqueObjectHandle, const char \*fileName)

    - This config sets the maximum number of profiling events that can be stored in the profile handle.

- Parameters

    - - **opaqueObjectHandle** – **[in]** A profile backend opaque object handle.
- **fileName** – **[in]** The corresponding file name for the profile backend opaque object

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *opaqueObjectHandle* is not a valid handle

Note

Use corresponding API through [QairtProfile\_BackendOpaqueObjectV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__BackendOpaqueObjectV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_BackendOpaqueObject\_getFileName([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t) opaqueObjectHandle, const char \*\*fileName)

    - Get the maximum number of profiling events that can be stored in the profile handle.

- Parameters

    - - **opaqueObjectHandle** – **[in]** A profile backend opaque object handle.
- **fileName** – **[out]** The corresponding file name for the profile backend opaque object

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *opaqueObjectHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *maxEvents* is NULL

Note

Use corresponding API through [QairtProfile\_BackendOpaqueObjectV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__BackendOpaqueObjectV1__t).

Typedefs

- typedef struct \_QairtProfile\_BackendOpaqueObjectHandle\_t \*QairtProfile\_BackendOpaqueObjectHandle\_t

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_BackendOpaqueObject\_CreateFn\_t)([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_BackendOpaqueObject\_FreeFn\_t)([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_BackendOpaqueObject\_SetOpaqueObjectFn\_t)([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t), void\*, uint64\_t)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_BackendOpaqueObject\_GetOpaqueObjectFn\_t)([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t), void\*\*, uint64\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_BackendOpaqueObject\_SetFileNameFn\_t)([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t), const char\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_BackendOpaqueObject\_GetFileNameFn\_t)([QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t), const char\*\*)

    -

* * *

Profiling configuration options.

**Include:** `#include "QairtProfile/QairtProfileConfig.h"`

- struct QairtProfile\_ConfigV1\_t

    - Public Members

- uint64\_t size

    - 

- [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface

    - 

- [QairtProfile\_Config\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv430QairtProfile_Config_CreateFn_t) create

    - 

- [QairtProfile\_Config\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv428QairtProfile_Config_FreeFn_t) free

    - 

- [QairtProfile\_Config\_SetEnableOpTraceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_Config_SetEnableOpTraceFn_t) setEnableOpTrace

    - 

- [QairtProfile\_Config\_GetEnableOpTraceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_Config_GetEnableOpTraceFn_t) getEnableOpTrace

    - 

- [QairtProfile\_Config\_SetMaxEventsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv436QairtProfile_Config_SetMaxEventsFn_t) setMaxEvents

    - 

- [QairtProfile\_Config\_GetMaxEventsFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv436QairtProfile_Config_GetMaxEventsFn_t) getMaxEvents

    - 

- [QairtProfile\_Config\_SetCustomConfigFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv439QairtProfile_Config_SetCustomConfigFn_t) setCustomConfig

    - 

- [QairtProfile\_Config\_GetCustomConfigFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv439QairtProfile_Config_GetCustomConfigFn_t) getCustomConfig

    -

Functions

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Config\_create([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t) \*configHandle)

    - Create a profile config.

- Parameters

    - **configHandle** – **[out]** A handle to the created profile config.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Config was successfully created.
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: Config handle is invalid.
- QAIRT\_PROFILE\_ERROR\_MEM\_ALLOC: Config creation failed due to memory/resource allocation issues.

Note

Use corresponding API through [QairtProfile\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__ConfigV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Config\_free([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t) configHandle)

    - Free a profile config handle and associated resources.

- Parameters

    - **configHandle** – **[in]** A handle to a created profile config.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Profile was successfully freed.
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle.
- QAIRT\_PROFILE\_ERROR\_MEM\_ALLOC: Memory deallocation error.

Note

Use corresponding API through [QairtProfile\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__ConfigV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Config\_setEnableOpTrace([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t) configHandle, uint8\_t enableOpTrace)

    - Set optrace profiling support via enableOptrace flag.

- Parameters

    - - **configHandle** – **[in]** A profile config handle.
- **enableOpTrace** – **[in]** Whether to enable optrace or not.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle

Note

Use corresponding API through [QairtProfile\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__ConfigV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Config\_getEnableOpTrace([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t) configHandle, uint8\_t \*enableOpTrace)

    - Get optrace profiling support flag.

- Parameters

    - - **configHandle** – **[in]** A profile config handle.
- **enableOpTrace** – **[out]** Whether optrace is enabled or not.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *enableOpTrace* is NULL

Note

Use corresponding API through [QairtProfile\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__ConfigV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Config\_setMaxEvents([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t) configHandle, uint64\_t maxEvents)

    - This config sets the maximum number of profiling events that can be stored in the profile handle.

- Parameters

    - - **configHandle** – **[in]** A profile config handle.
- **maxEvents** – **[in]** Max number of events. Once the maximum number of events is reached, no more events will be stored. The absolute maximum number of events is subject to a maximum limit determined by the backend and available system resources. The default maximum number of events is backend-specific, refer to SDK documentation.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle

Note

Use corresponding API through [QairtProfile\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__ConfigV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Config\_getMaxEvents([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t) configHandle, uint64\_t \*maxEvents)

    - Get the maximum number of profiling events that can be stored in the profile handle.

- Parameters

    - - **configHandle** – **[in]** A profile config handle.
- **maxEvents** – **[out]** Max number of events. The absolute maximum number of events is subject to a maximum limit determined by the backend and available system resources. The default maximum number of events is backend-specific, refer to SDK documentation.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *maxEvents* is NULL

Note

Use corresponding API through [QairtProfile\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__ConfigV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Config\_setCustomConfig([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t) configHandle, [QairtProfile\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv433QairtProfile_CustomConfigHandle_t) customConfig)

    - Sets backend custom configs, see backend specific documentation.

- Parameters

    - - **configHandle** – **[in]** A profile config handle.
- **customConfig** – **[in]** Backend specific custom config.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: either *configHandle* or *QairtProfile\_CustomConfigHandle\_t* is not a valid handle

Note

Use corresponding API through [QairtProfile\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__ConfigV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Config\_getCustomConfig([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t) configHandle, [QairtProfile\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv433QairtProfile_CustomConfigHandle_t) \*customConfig)

    - Gets custom config from the profile config object.

- Parameters

    - - **configHandle** – **[in]** A profile config handle.
- **customConfig** – **[out]** A referenced backend custom config 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 is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *configHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *customConfig* is NULL

Note

Use corresponding API through [QairtProfile\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__ConfigV1__t).

Typedefs

- typedef struct \_QairtProfile\_ConfigHandle\_t \*QairtProfile\_ConfigHandle\_t

    - 

- typedef struct \_QairtProfile\_CustomConfigHandle\_t \*QairtProfile\_CustomConfigHandle\_t

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Config\_CreateFn\_t)([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Config\_FreeFn\_t)([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Config\_SetEnableOpTraceFn\_t)([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t), uint8\_t)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Config\_GetEnableOpTraceFn\_t)([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t), uint8\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Config\_SetMaxEventsFn\_t)([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t), uint64\_t)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Config\_GetMaxEventsFn\_t)([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t), uint64\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Config\_SetCustomConfigFn\_t)([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t), [QairtProfile\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv433QairtProfile_CustomConfigHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Config\_GetCustomConfigFn\_t)([QairtProfile\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_ConfigHandle_t), [QairtProfile\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv433QairtProfile_CustomConfigHandle_t)\*)

    -

* * *

Profiling event types and accessors.

**Include:** `#include "QairtProfile/QairtProfileEvent.h"`

- struct QairtProfile\_EventV1\_t

    - Public Members

- uint64\_t size

    - 

- [Qairt\_GetInterfaceFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv422Qairt_GetInterfaceFn_t) getInterface

    - 

- [QairtProfile\_Event\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv429QairtProfile_Event_CreateFn_t) create

    - 

- [QairtProfile\_Event\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv427QairtProfile_Event_FreeFn_t) free

    - 

- [QairtProfile\_Event\_SupportsExtendedEventFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv444QairtProfile_Event_SupportsExtendedEventFn_t) supportsExtendedEvent

    - 

- [QairtProfile\_Event\_SetEventTypeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv435QairtProfile_Event_SetEventTypeFn_t) setEventType

    - 

- [QairtProfile\_Event\_GetEventTypeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv435QairtProfile_Event_GetEventTypeFn_t) getEventType

    - 

- [QairtProfile\_Event\_SetUnitFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv430QairtProfile_Event_SetUnitFn_t) setUnit

    - 

- [QairtProfile\_Event\_GetUnitFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv430QairtProfile_Event_GetUnitFn_t) getUnit

    - 

- [QairtProfile\_Event\_SetIdentifierFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv436QairtProfile_Event_SetIdentifierFn_t) setIdentifier

    - 

- [QairtProfile\_Event\_GetIdentifierFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv436QairtProfile_Event_GetIdentifierFn_t) getIdentifier

    - 

- [QairtProfile\_Event\_SetTimestampFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv435QairtProfile_Event_SetTimestampFn_t) setTimestamp

    - 

- [QairtProfile\_Event\_GetTimestampFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv435QairtProfile_Event_GetTimestampFn_t) getTimestamp

    - 

- [QairtProfile\_Event\_SetScalarFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv432QairtProfile_Event_SetScalarFn_t) setScalar

    - 

- [QairtProfile\_Event\_GetScalarFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv432QairtProfile_Event_GetScalarFn_t) getScalar

    - 

- [QairtProfile\_Event\_SetBackendOpaqueObjectFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv445QairtProfile_Event_SetBackendOpaqueObjectFn_t) setBackendOpaqueObject

    - 

- [QairtProfile\_Event\_GetBackendOpaqueObjectFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv445QairtProfile_Event_GetBackendOpaqueObjectFn_t) getBackendOpaqueObject

    -

Functions

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_create([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) \*eventHandle)

    - Create a profile event.

- Parameters

    - **eventHandle** – **[out]** A handle to the created profile event.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Event was successfully created.
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: Event handle is invalid.
- QAIRT\_PROFILE\_ERROR\_MEM\_ALLOC: Event creation failed due to memory/resource allocation issues.

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_free([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle)

    - Free a profile event handle and associated resources.

- Parameters

    - **eventHandle** – **[in]** A handle to a created profile event.

- Returns

    - Error code:

- QAIRT\_SUCCESS: Profile event was successfully freed.
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle.
- QAIRT\_PROFILE\_ERROR\_MEM\_ALLOC: Memory deallocation error.

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_supportsExtendedEvent([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, uint8\_t \*value)

    - A function to get whether a profile event supports extended event fields.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **supportsExtendedEvent** – **[out]** Whether this profile event supports extended event fields This includes timestamp and backendOpaqueObject support

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_setEventType([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, [QairtProfile\_EventType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv424QairtProfile_EventType_t) eventType)

    - A function to set the event type of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **eventType** – **[in]** The event type for this profiling event

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *eventType* is invalid

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_getEventType([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, [QairtProfile\_EventType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv424QairtProfile_EventType_t) \*eventType)

    - A function to get the event type of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **eventType** – **[out]** The event type for this profiling event

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_setUnit([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, [QairtProfile\_EventUnit\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv424QairtProfile_EventUnit_t) unit)

    - A function to set the unit of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **unit** – **[in]** The unit for this profiling event

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *unit* is invalid

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_getUnit([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, [QairtProfile\_EventUnit\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv424QairtProfile_EventUnit_t) \*unit)

    - A function to get the unit of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **unit** – **[out]** The unit for this profiling event

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_setIdentifier([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, const char \*identifier)

    - A function to set the identifier of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **identifier** – **[in]** The identifier for this profiling event

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *identifier* is invalid

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_getIdentifier([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, const char \*\*identifier)

    - A function to get the identifier of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **identifier** – **[out]** The identifier for this profiling event

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *identifier* is invalid

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_setTimestamp([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, uint64\_t timestamp)

    - A function to set the timestamp of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **timestamp** – **[in]** The timestamp for this profiling event

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INCOMPATIBLE\_EVENT: event does not support timestamp

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_getTimestamp([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, uint64\_t \*timestamp)

    - A function to get the timestamp of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **timestamp** – **[out]** The timestamp for this profiling event. If timestamp information is not available, 0 will be returned.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *timestamp* is invalid
- QAIRT\_PROFILE\_ERROR\_DATA\_NOT\_AVAILABLE: data is not available for this event

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_setScalar([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, [QairtScalar\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv420QairtScalar_Handle_t) scalarHandle)

    - A function to set the scalar value of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **scalarHandle** – **[in]** A handle to a scalar value for this profiling event. If this event does not support extended data fields, the scalar value will be cast to a uint64\_t before being stored.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* or *scalarHandle* is not a valid handle

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_getScalar([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, [QairtScalar\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv420QairtScalar_Handle_t) \*scalarHandle)

    - A function to get the scalar value of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **scalarHandle** – **[out]** A handle to store the scalar value for this profiling event.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *scalarHandle* is invalid
- QAIRT\_PROFILE\_ERROR\_DATA\_NOT\_AVAILABLE: data is not available for this event

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_setBackendOpaqueObject([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, [QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t) backendOpaqueObjectHandle)

    - A function to set the backend opaque object of a profile event.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **backendOpaqueObjectHandle** – **[in]** A handle to a backend opaque object for this profiling event. If this event does not support extended data fields, an error will be returned.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* or *backendOpaqueObjectHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INCOMPATIBLE\_EVENT: This event does not support backend opaque objects

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

- [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) QairtProfile\_Event\_getBackendOpaqueObject([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t) eventHandle, [QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t) \*backendOpaqueObjectHandle)

    - A function to get the backend opaque object of a profile event if supported.

- Parameters

    - - **eventHandle** – **[in]** A profile event handle.
- **backendOpaqueObjectHandle** – **[out]** A handle to a backend opaque object for this profiling event. If this event does not support extended data fields, an error will be returned.

- Returns

    - Error code:

- QAIRT\_SUCCESS: no error is encountered
- QAIRT\_PROFILE\_ERROR\_INVALID\_HANDLE: *eventHandle* is not a valid handle
- QAIRT\_PROFILE\_ERROR\_INVALID\_ARGUMENT: *backendOpaqueObjectHandle* is invalid
- QAIRT\_PROFILE\_ERROR\_DATA\_NOT\_AVAILABLE: data is not available for this event

Note

Use corresponding API through [QairtProfile\_EventV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#structQairtProfile__EventV1__t).

Typedefs

- typedef struct \_QairtProfile\_EventHandle\_t \*QairtProfile\_EventHandle\_t

    - 

- typedef uint32\_t QairtProfile\_EventType\_t

    - 

- typedef uint32\_t QairtProfile\_EventUnit\_t

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_CreateFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_FreeFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_SupportsExtendedEventFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), uint8\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_SetEventTypeFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), [QairtProfile\_EventType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv424QairtProfile_EventType_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_GetEventTypeFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), [QairtProfile\_EventType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv424QairtProfile_EventType_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_SetUnitFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), [QairtProfile\_EventUnit\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv424QairtProfile_EventUnit_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_GetUnitFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), [QairtProfile\_EventUnit\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv424QairtProfile_EventUnit_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_SetIdentifierFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), const char\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_GetIdentifierFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), const char\*\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_SetTimestampFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), uint64\_t)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_GetTimestampFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), uint64\_t\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_SetScalarFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), [QairtScalar\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv420QairtScalar_Handle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_GetScalarFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), [QairtScalar\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv420QairtScalar_Handle_t)\*)

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_SetBackendOpaqueObjectFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), [QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t))

    - 

- typedef [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) (\*QairtProfile\_Event\_GetBackendOpaqueObjectFn\_t)([QairtProfile\_EventHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv426QairtProfile_EventHandle_t), [QairtProfile\_BackendOpaqueObjectHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtProfile.html#_CPPv440QairtProfile_BackendOpaqueObjectHandle_t)\*)

    -

Defines

- QAIRT\_PROFILE\_EVENTTYPE\_INIT 100

    - QairtProfile\_EventType\_t definition to get stats related to creation of context and graphs.

If supported, this profile data captures stats starting with the context creation (QairtContext\_create) and ending with graph finalize (QairtGraph\_finalize). Alternatively, in case of loading a cached context, it captures stats for creating context from the cache (QairtContext\_createFromBinary).

Note

init information maybe available on both QAIRT\_PROFILE\_LEVEL\_BASIC and QAIRT\_PROFILE\_LEVEL\_DETAILED levels

Note

If unit information is not available, the value should be interpreted as time in microseconds.

- QAIRT\_PROFILE\_EVENTTYPE\_FINALIZE 300

    - QairtProfile\_EventType\_t definition to get stats related to finalize operation on graphs in a context.

If supported, this profile data captures stats for graph finalize (QairtGraph\_finalize).

Note

finalize information maybe available on both QAIRT\_PROFILE\_LEVEL\_BASIC and QAIRT\_PROFILE\_LEVEL\_DETAILED levels

Note

If unit information is not available, the value should be interpreted as time in microseconds.

- QAIRT\_PROFILE\_EVENTTYPE\_EXECUTE 400

    - QairtProfile\_EventType\_t definition to get stats related to execution of graphs in a context (QairtGraph\_execute or QairtGraph\_executeAsync).

Basic level might include stats related to execution of entire graphs. In addition, detailed level can include stats related to individual nodes in graphs as sub-events.

Note

execute information maybe available on both QAIRT\_PROFILE\_LEVEL\_BASIC and QAIRT\_PROFILE\_LEVEL\_DETAILED levels

Note

If unit information is not available, the value should be interpreted as time in microseconds.

- QAIRT\_PROFILE\_EVENTTYPE\_NODE 404

    - QairtProfile\_EventType\_t definition to get data related to execution of an operation.

This value can be interpreted appropriately in conjunction with the unit.

Note

node specific information is available on QAIRT\_PROFILE\_LEVEL\_DETAILED level

Note

This is a sub-event of the QAIRT\_PROFILE\_EVENTTYPE\_EXECUTE event.

- QAIRT\_PROFILE\_EVENTTYPE\_EXECUTE\_QUEUE\_WAIT 405

    - QairtProfile\_EventType\_t definition to get stats related to time spent waiting in a queue when executing a graph.

Note

execute enqueue information maybe available on both QAIRT\_PROFILE\_LEVEL\_BASIC and QAIRT\_PROFILE\_LEVEL\_DETAILED levels

Note

This is a sub-event of the QAIRT\_PROFILE\_EVENTTYPE\_EXECUTE event.

- QAIRT\_PROFILE\_EVENTTYPE\_EXECUTE\_PREPROCESS 406

    - QairtProfile\_EventType\_t definition to get stats related to time spent pre-processing in preparation of executing a graph.

Note

execute preprocess information maybe available on both QAIRT\_PROFILE\_LEVEL\_BASIC and QAIRT\_PROFILE\_LEVEL\_DETAILED levels

Note

This is a sub-event of the QAIRT\_PROFILE\_EVENTTYPE\_EXECUTE event.

- QAIRT\_PROFILE\_EVENTTYPE\_EXECUTE\_DEVICE 407

    - QairtProfile\_EventType\_t definition to get stats related to time spent on-device executing a graph.

Note

execute device information maybe available on both QAIRT\_PROFILE\_LEVEL\_BASIC and QAIRT\_PROFILE\_LEVEL\_DETAILED levels

Note

This is a sub-event of the QAIRT\_PROFILE\_EVENTTYPE\_EXECUTE event.

- QAIRT\_PROFILE\_EVENTTYPE\_EXECUTE\_POSTPROCESS 408

    - QairtProfile\_EventType\_t definition to get stats related to time spent post-processing after execution of a graph.

Note

execute postprocess information maybe available on both QAIRT\_PROFILE\_LEVEL\_BASIC and QAIRT\_PROFILE\_LEVEL\_DETAILED levels

Note

This is a sub-event of the QAIRT\_PROFILE\_EVENTTYPE\_EXECUTE event.

- QAIRT\_PROFILE\_EVENTTYPE\_DEINIT 500

    - QairtProfile\_EventType\_t definition to get stats related to deinit graphs and free context operation.

This profile data captures stats for QairtContext\_free.

Note

deinit information maybe available on both QAIRT\_PROFILE\_LEVEL\_BASIC and QAIRT\_PROFILE\_LEVEL\_DETAILED levels

Note

If unit information is not available, the value should be interpreted as time in microseconds.

- QAIRT\_PROFILE\_EVENTTYPE\_TRACE 600

    - QairtProfile\_EventType\_t definition to get traces related to graph preparation and execution steps.

This profile data captures stats for QairtGraph\_execute.

Note

trace information is available on QAIRT\_PROFILE\_LEVEL\_DETAILED level only.

- QAIRT\_PROFILE\_EVENTTYPE\_BACKEND 1000

    - QairtProfile\_EventType\_t definition reserved for each back end to define and extend.

Note

The client should consult the backend-specific SDK documentation for information regarding interpretation of unit, value and identifier.

- QAIRT\_PROFILE\_EVENTUNIT\_MICROSEC 1

    - QairtProfile\_EventUnit\_t definition to provide profiling measurement as time in microseconds.

- QAIRT\_PROFILE\_EVENTUNIT\_BYTES 2

    - QairtProfile\_EventUnit\_t definition to provide profiling measurement as memory in bytes.

- QAIRT\_PROFILE\_EVENTUNIT\_CYCLES 3

    - QairtProfile\_EventUnit\_t definition to provide profiling measurement as time in cycles.

- QAIRT\_PROFILE\_EVENTUNIT\_COUNT 4

    - QairtProfile\_EventUnit\_t definition to provide profiling measurement as a count.

- QAIRT\_PROFILE\_EVENTUNIT\_OBJECT 5

    - QairtProfile\_EventUnit\_t definition to provide profiling measurement as an opaque object.

- QAIRT\_PROFILE\_EVENTUNIT\_NONE 6

    - QairtProfile\_EventUnit\_t definition to provide profiling measurement with no unit.

- QAIRT\_PROFILE\_EVENTUNIT\_BACKEND 1000

    - QairtProfile\_EventUnit\_t definition reserved for each back end to define and extend.

Last Published: Jun 04, 2026

[Previous Topic
QairtMem](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/QairtMem.md) [Next Topic
QairtLog](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/QairtLog.md)