# File QnnOpPackage.h

↰ [Parent directory](https://docs.qualcomm.com/doc/80-63442-10/topic/dir_include_QNN.html#dir-include-qnn) (`include/QNN`)

QNN Operation Package API.

Contents

- [Definition (`include/QNN/QnnOpPackage.h`)](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#definition-include-qnn-qnnoppackage-h)
- [Detailed Description](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#detailed-description)
- [Includes](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#includes)
- [Included By](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#included-by)
- [Classes](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#classes)
- [Enums](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#enums)
- [Defines](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#defines)
- [Typedefs](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#typedefs)
- [Unions](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#unions)
- [Full File Listing](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#full-file-listing)

## Definition (`include/QNN/QnnOpPackage.h`)

- [Program Listing for File QnnOpPackage.h](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_program_listing_file_include_QNN_QnnOpPackage_h.html)

## Detailed Description

> 
> 
> Provides interface to the backend to use registered OpPackage libraries.

## Includes

- `QnnCommon.h` ([File QnnCommon.h](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnCommon_h.html#file-include-qnn-qnncommon-h))
- `QnnLog.h` ([File QnnLog.h](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnLog_h.html#file-include-qnn-qnnlog-h))
- `QnnTypes.h` ([File QnnTypes.h](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnTypes_h.html#file-include-qnn-qnntypes-h))

## Included By

- [File QnnAipOpPackage.h](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_AIP_QnnAipOpPackage_h.html#file-include-qnn-aip-qnnaipoppackage-h)
- [File QnnCpuOpPackage.h](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_CPU_QnnCpuOpPackage_h.html#file-include-qnn-cpu-qnncpuoppackage-h)
- [File QnnDspOpPackage.h](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_DSP_QnnDspOpPackage_h.html#file-include-qnn-dsp-qnndspoppackage-h)
- [File QnnGpuOpPackage.h](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_GPU_QnnGpuOpPackage_h.html#file-include-qnn-gpu-qnngpuoppackage-h)
- [File QnnInterface.h](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnInterface_h.html#file-include-qnn-qnninterface-h)

## Classes

- [Struct QnnOpPackage\_ImplementationV1\_4\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnnOpPackage__ImplementationV1__4__t.html#exhale-struct-structqnnoppackage-implementationv1-4-t)
- [Struct QnnOpPackage\_ImplementationV2\_0\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnnOpPackage__ImplementationV2__0__t.html#exhale-struct-structqnnoppackage-implementationv2-0-t)
- [Struct QnnOpPackage\_Info\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnnOpPackage__Info__t.html#exhale-struct-structqnnoppackage-info-t)
- [Struct QnnOpPackage\_Interface\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnnOpPackage__Interface__t.html#exhale-struct-structqnnoppackage-interface-t)

## Enums

- [Enum QnnOpPackage\_Error\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/enum_QnnOpPackage_8h_1a7cfdb5aae322cae6f30de8e730443fbc.html#exhale-enum-qnnoppackage-8h-1a7cfdb5aae322cae6f30de8e730443fbc)

## Defines

- [Define QNN\_OP\_PACKAGE\_API\_VERSION\_1\_4\_0](https://docs.qualcomm.com/doc/80-63442-10/topic/define_QnnOpPackage_8h_1a25562831fc189d1f9dc525228d9169a2.html#exhale-define-qnnoppackage-8h-1a25562831fc189d1f9dc525228d9169a2)
- [Define QNN\_OP\_PACKAGE\_API\_VERSION\_2\_0\_0](https://docs.qualcomm.com/doc/80-63442-10/topic/define_QnnOpPackage_8h_1a416ecc1f53e3aeb8afbd63158e9927dd.html#exhale-define-qnnoppackage-8h-1a416ecc1f53e3aeb8afbd63158e9927dd)
- [Define QNN\_OP\_PACKAGE\_IMPLEMENTATION\_V1\_4\_INIT](https://docs.qualcomm.com/doc/80-63442-10/topic/define_QnnOpPackage_8h_1ab6be92c6a72d978f4a5ca46409e5a9a2.html#exhale-define-qnnoppackage-8h-1ab6be92c6a72d978f4a5ca46409e5a9a2)
- [Define QNN\_OP\_PACKAGE\_IMPLEMENTATION\_V2\_0\_INIT](https://docs.qualcomm.com/doc/80-63442-10/topic/define_QnnOpPackage_8h_1aee5570b4c347dea30c01d15c8bd16f4f.html#exhale-define-qnnoppackage-8h-1aee5570b4c347dea30c01d15c8bd16f4f)
- [Define QNN\_OP\_PACKAGE\_INFO\_INIT](https://docs.qualcomm.com/doc/80-63442-10/topic/define_QnnOpPackage_8h_1ab22abb1613784492dbe0b2b5be69e2d3.html#exhale-define-qnnoppackage-8h-1ab22abb1613784492dbe0b2b5be69e2d3)
- [Define QNN\_OP\_PACKAGE\_INTERFACE\_INIT](https://docs.qualcomm.com/doc/80-63442-10/topic/define_QnnOpPackage_8h_1a1f1e092b1c11e5c293d5074fbca79e30.html#exhale-define-qnnoppackage-8h-1a1f1e092b1c11e5c293d5074fbca79e30)
- [Define QNN\_OP\_PACKAGE\_RESERVED\_INFO\_SIZE](https://docs.qualcomm.com/doc/80-63442-10/topic/define_QnnOpPackage_8h_1a401004dcd193bac32dea2dbdb468e860.html#exhale-define-qnnoppackage-8h-1a401004dcd193bac32dea2dbdb468e860)

## Typedefs

- [Typedef Qnn\_OpPackageHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1af313f3e4439e7f79362d1065938e0960.html#exhale-typedef-qnnoppackage-8h-1af313f3e4439e7f79362d1065938e0960)
- [Typedef QnnOpPackage\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a4485c95f5e6b9eba3394da35703f6b39.html#exhale-typedef-qnnoppackage-8h-1a4485c95f5e6b9eba3394da35703f6b39)
- [Typedef QnnOpPackage\_CreateOpImplFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a4a28f68bc4f3e46c4310f3991445b6e9.html#exhale-typedef-qnnoppackage-8h-1a4a28f68bc4f3e46c4310f3991445b6e9)
- [Typedef QnnOpPackage\_CreateOpImplHandleFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a5bcd1f43e0e30582a75188228a4a66ff.html#exhale-typedef-qnnoppackage-8h-1a5bcd1f43e0e30582a75188228a4a66ff)
- [Typedef QnnOpPackage\_FreeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a3b0611a7d9105b853af4ce005b3bace7.html#exhale-typedef-qnnoppackage-8h-1a3b0611a7d9105b853af4ce005b3bace7)
- [Typedef QnnOpPackage\_FreeOpImplFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1ae26cd784792e4d3c3c09133ad3ba730f.html#exhale-typedef-qnnoppackage-8h-1ae26cd784792e4d3c3c09133ad3ba730f)
- [Typedef QnnOpPackage\_FreeOpImplHandleFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1ae4dac9216b2e6d8ac60d12e7b79e346d.html#exhale-typedef-qnnoppackage-8h-1ae4dac9216b2e6d8ac60d12e7b79e346d)
- [Typedef QnnOpPackage\_GetInfoFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a1f7646062abbbd782c32e6bed72dd564.html#exhale-typedef-qnnoppackage-8h-1a1f7646062abbbd782c32e6bed72dd564)
- [Typedef QnnOpPackage\_InitFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a131cec9cecddbdbf9d6819a14a001fe9.html#exhale-typedef-qnnoppackage-8h-1a131cec9cecddbdbf9d6819a14a001fe9)
- [Typedef QnnOpPackage\_InterfaceProvider\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1afbda7b99e80794c5340f500d52df7cde.html#exhale-typedef-qnnoppackage-8h-1afbda7b99e80794c5340f500d52df7cde)
- [Typedef QnnOpPackage\_LogInitializeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a2a2611c2e2ab753026744d80b68c7f9f.html#exhale-typedef-qnnoppackage-8h-1a2a2611c2e2ab753026744d80b68c7f9f)
- [Typedef QnnOpPackage\_LogSetLevelFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a0d38a8da3f01f8030a1c039efb987965.html#exhale-typedef-qnnoppackage-8h-1a0d38a8da3f01f8030a1c039efb987965)
- [Typedef QnnOpPackage\_LogSetLevelHandleFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a27c09fc21487527b170ea41a22d9e03b.html#exhale-typedef-qnnoppackage-8h-1a27c09fc21487527b170ea41a22d9e03b)
- [Typedef QnnOpPackage\_LogTerminateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a24ee97abd62ee02485729b354895e960.html#exhale-typedef-qnnoppackage-8h-1a24ee97abd62ee02485729b354895e960)
- [Typedef QnnOpPackage\_TerminateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a6ed084a085bca8d7780fc91c651a91c9.html#exhale-typedef-qnnoppackage-8h-1a6ed084a085bca8d7780fc91c651a91c9)
- [Typedef QnnOpPackage\_ValidateOpConfigFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1ad8cdd8de3e34c264d3925064f8790920.html#exhale-typedef-qnnoppackage-8h-1ad8cdd8de3e34c264d3925064f8790920)
- [Typedef QnnOpPackage\_ValidateOpConfigHandleFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a81873772d7ff2530ffc3601502c8fea6.html#exhale-typedef-qnnoppackage-8h-1a81873772d7ff2530ffc3601502c8fea6)

## Unions

- [Union QnnOpPackage\_Interface\_t::unnamed](https://docs.qualcomm.com/doc/80-63442-10/topic/unionQnnOpPackage__Interface__t_1_1unnamed.html#exhale-union-unionqnnoppackage-interface-t-1-1unnamed)

## Full File Listing

QNN Operation Package API.

Provides interface to the backend to use registered OpPackage libraries.
    Copy to clipboard

Defines

- QNN\_OP\_PACKAGE\_RESERVED\_INFO\_SIZE 12

    - 

- QNN\_OP\_PACKAGE\_INFO\_INIT 
{                                \

NULL,     /\*packageName\*/      \

NULL,     /\*operationNames\*/   \

NULL,     /\*operationInfo\*/    \

0u,       /\*numOperations\*/    \

NULL,     /\*optimizations\*/    \

0u,       /\*numOptimizations\*/ \

NULL,     /\*sdkBuildId\*/       \

NULL,     /\*sdkApiVersion\*/    \

NULL,     /\*packageInfo\*/      \

NULL,     /\*opsetVersion\*/     \

{ 0u }    /\*reserved\*/         \

}

    - [QnnOpPackage\_Info\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#structQnnOpPackage__Info__t) initializer macro.

- QNN\_OP\_PACKAGE\_API\_VERSION\_1\_4\_0 
{                                        \

1u, /\*major\*/                          \

4u, /\*minor\*/                          \

0u  /\*patch\*/                          \

}

    - [QnnOpPackage\_ImplementationV1\_4\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#structQnnOpPackage__ImplementationV1__4__t) version initializer macro.

- QNN\_OP\_PACKAGE\_IMPLEMENTATION\_V1\_4\_INIT 
{                                             \

NULL,     /\*init\*/                          \

NULL,     /\*terminate\*/                     \

NULL,     /\*getInfo\*/                       \

NULL,     /\*validateOpConfig\*/              \

NULL,     /\*createOpImpl\*/                  \

NULL,     /\*freeOpImpl\*/                    \

NULL,     /\*logInitialize\*/                 \

NULL,     /\*logSetLevel\*/                   \

NULL      /\*logTerminate\*/                  \

}

    - [QnnOpPackage\_ImplementationV1\_4\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#structQnnOpPackage__ImplementationV1__4__t) initializer macro.

- QNN\_OP\_PACKAGE\_API\_VERSION\_2\_0\_0 
{                                        \

2u, /\*major\*/                          \

0u, /\*minor\*/                          \

0u  /\*patch\*/                          \

}

    - [QnnOpPackage\_ImplementationV2\_0\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#structQnnOpPackage__ImplementationV2__0__t) version initializer macro.

- QNN\_OP\_PACKAGE\_IMPLEMENTATION\_V2\_0\_INIT 
{                                             \

NULL,     /\*create\*/                        \

NULL,     /\*getInfo\*/                       \

NULL,     /\*validateOpConfig\*/              \

NULL,     /\*createOpImpl\*/                  \

NULL,     /\*freeOpImpl\*/                    \

NULL,     /\*logSetLevel\*/                   \

NULL      /\*free\*/                          \

}

    - [QnnOpPackage\_ImplementationV2\_0\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#structQnnOpPackage__ImplementationV2__0__t) initializer macro.

- QNN\_OP\_PACKAGE\_INTERFACE\_INIT   {                                                        \
    [QNN\_OP\_PACKAGE\_API\_VERSION\_1\_4\_0](https://docs.qualcomm.com/doc/80-63442-10/topic/define_QnnOpPackage_8h_1a25562831fc189d1f9dc525228d9169a2.html#QnnOpPackage_8h_1a25562831fc189d1f9dc525228d9169a2)
, /\*interfaceVersion\*/ \

{                                                      \

[QNN\_OP\_PACKAGE\_IMPLEMENTATION\_V1\_4\_INIT](https://docs.qualcomm.com/doc/80-63442-10/topic/define_QnnOpPackage_8h_1ab6be92c6a72d978f4a5ca46409e5a9a2.html#QnnOpPackage_8h_1ab6be92c6a72d978f4a5ca46409e5a9a2)
/\*v1\_4\*/     \

}                                                      \

}

    - [QnnOpPackage\_Interface\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#structQnnOpPackage__Interface__t) initializer macro.

Typedefs

- typedef [Qnn\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a661adc2cc9e4c2079ab49e3ed733612a.html#_CPPv412Qnn_Handle_t) Qnn\_OpPackageHandle\_t

    - A typedef for op package handles.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_InitFn\_t)(QnnOpPackage\_GlobalInfrastructure\_t infrastructure)

    - Initialize an Op package library’s data structures. This function must be called before any other library functions. Calling multiple times will result in errors after the first call. This function can be called again after QnnOpPackage\_TerminateFn\_t.

- Param infrastructure

    - **[in]** Global infrastructure object provided by the backend, for use in all operations in the package. This is guaranteed to live at least until QnnOpPackage\_TerminateFn\_t returns, and is safe to cache.

- Return

    - Error code:

- QNN\_SUCCESS: Op package library was successfully initialized.
- QNN\_OP\_PACKAGE\_ERROR\_LIBRARY\_ALREADY\_INITIALIZED: This package library has already been initialized.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_INFRASTRUCTURE: Op package initialization failed due to invalid infrastructure content.
- QNN\_OP\_PACKAGE\_ERROR\_GENERAL: Op package library failed to initialize.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_TerminateFn\_t)()

    - Terminate an Op package library, freeing all data structures and invalidating any memory or handles provided by the library. This function may be called again after a subsequent call to QnnOpPackage\_InitFn\_t.

- Return

    - Error code:

- QNN\_SUCCESS: Op package library was successfully terminated.
- QNN\_OP\_PACKAGE\_ERROR\_GENERAL: Op package library termination failed.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_GetInfoFn\_t)(const [QnnOpPackage\_Info\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnnOpPackage__Info__t.html#_CPPv419QnnOpPackage_Info_t) \*\*info)

    - Retrieve a [QnnOpPackage\_Info\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnOpPackage_h.html#structQnnOpPackage__Info__t) struct from an Op package library describing all operations and optimizations provided by the library.

- Param info

    - **[out]** Info object for the library. This pointer shall point to memory owned by the op package library and remain valid until QnnOpPackage\_TerminateFn\_t is called on the library. The contents of this struct shall not change before QnnOpPackage\_TerminateFn\_t is called.

- Return

    - Error code:

- QNN\_SUCCESS: Info is fetched successfully.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_INFO: ‘info’ argument was NULL or invalid.
- QNN\_OP\_PACKAGE\_ERROR\_GENERAL: Other error occurred.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_ValidateOpConfigFn\_t)([Qnn\_OpConfig\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnn__OpConfig__t.html#_CPPv414Qnn_OpConfig_t) opConfig)

    - Verifies that this op with the specified config can be successfully executed.

- Param opConfig

    - **[in]** Op configuration in question.

- Return

    - error code:

- QNN\_SUCCESS if validation is successful
- QNN\_OP\_PACKAGE\_ERROR\_VALIDATION\_FAILURE: op config validation failed
- QNN\_OP\_PACKAGE\_ERROR\_UNSUPPORTED\_FEATURE: Validation API not supported

Note

*inputTensors* and *outputTensors* inside opConfig must be fully qualified for complete validation. However, their unique IDs (*id*) are ignored during validation.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_CreateOpImplFn\_t)(QnnOpPackage\_GraphInfrastructure\_t graphInfrastructure, QnnOpPackage\_Node\_t node, QnnOpPackage\_OpImpl\_t \*opImpl)

    - Create Op implementation with executable content for a given node.

- Param graphInfrastructure

    - **[in]** Infrastructure for the graph to which the node and kernels belong. This memory is guaranteed to live at least until all created kernels are freed, and may be safely cached.

- Param node

    - **[in]** Node object for which kernels should be created. This node may be freed before the created kernels. Neither the node nor it’s members should be cached.

- Param opImpl

    - **[out]** Op implementation with executable content to compute the operation specified by *node*. The Op implementation contents will be freed by the backend with QnnOpPackage\_FreeOpImplFn\_t.

- Pre

    - The corresponding QnnOpPackage\_ValidateOpConfigFn\_t should return QNN\_SUCCESS for the supplied node.

- Return

    - Error code:

- QNN\_SUCCESS: Op implementation is created successfully
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_INFRASTRUCTURE: Failed to create op implementation due to invalid graph infrastructure content.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_ARGUMENT: one or more invalid arguments (e.g. NULL)
- QNN\_OP\_PACKAGE\_ERROR\_UNSUPPORTED\_FEATURE: API not supported
- QNN\_OP\_PACKAGE\_ERROR\_GENERAL: Other error occurred.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_FreeOpImplFn\_t)(QnnOpPackage\_OpImpl\_t opImpl)

    - Free the resources associated with Op implementation previously allocated by QnnOpPackage\_CreateOpImplFn\_t.

- Param opImpl

    - **[in]** Op implementation which should be freed.

- Return

    - Error code:

- QNN\_SUCCESS if Op implementation resources are successfully freed.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_ARGUMENT: *opImpl* argument was NULL.
- QNN\_OP\_PACKAGE\_ERROR\_UNSUPPORTED\_FEATURE: API not supported.
- QNN\_OP\_PACKAGE\_ERROR\_GENERAL: Other error occurred.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_LogInitializeFn\_t)([QnnLog\_Callback\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnLog_8h_1af2b3739b9f4b81c8554bd0c1b02a968c.html#_CPPv417QnnLog_Callback_t) callback, [QnnLog\_Level\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnLog_h.html#_CPPv414QnnLog_Level_t) maxLogLevel)

    - See [QnnLog\_create()](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnLog_h.html#QnnLog_8h_1a786ad69e2c24827d911b89f558ee7829) in QnnLog.h for documentation.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_LogSetLevelFn\_t)([QnnLog\_Level\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnLog_h.html#_CPPv414QnnLog_Level_t) maxLogLevel)

    - See [QnnLog\_setLogLevel()](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnLog_h.html#QnnLog_8h_1aeb1ae7105285d54ff710f935109fc5ad) in QnnLog.h for documentation.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_LogTerminateFn\_t)(void)

    - See [QnnLog\_free()](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnLog_h.html#QnnLog_8h_1aacd47e923c528453f17e46280c96c53e) in QnnLog.h for documentation.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_CreateFn\_t)(QnnOpPackage\_GlobalInfrastructure\_t infrastructure, [QnnLog\_Callback\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnLog_8h_1af2b3739b9f4b81c8554bd0c1b02a968c.html#_CPPv417QnnLog_Callback_t) callback, [QnnLog\_Level\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnLog_h.html#_CPPv414QnnLog_Level_t) maxLogLevel, [Qnn\_OpPackageHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1af313f3e4439e7f79362d1065938e0960.html#_CPPv421Qnn_OpPackageHandle_t) \*opPackage)

    - Initialize an op package library and create an op package handle.

- Param infrastructure

    - **[in]** Global infrastructure object provided by the backend for use in all operations in the package.

- Param callback

    - **[in]** Callback to handle op package generated logging messages. NULL represents that logging is disabled.

- Param maxLogLevel

    - **[in]** Maximum level of messages which the op package will generate.

- Param opPackage

    - **[out]** The created op package handle.

- Return

    - Error code:

- QNN\_SUCCESS: Op package was successfully created.
- QNN\_OP\_PACKAGE\_ERROR\_UNSUPPORTED\_PLATFORM: Op package attempted to be created on an unsupported platform.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_ARGUMENT: if one or more arguments is invalid.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_INFRASTRUCTURE: Op package initialization failed due to invalid infrastructure content.
- QNN\_OP\_PACKAGE\_ERROR\_GENERAL: Op package library failed to initialize.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_ValidateOpConfigHandleFn\_t)([Qnn\_OpPackageHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1af313f3e4439e7f79362d1065938e0960.html#_CPPv421Qnn_OpPackageHandle_t) opPackage, [Qnn\_OpConfig\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnn__OpConfig__t.html#_CPPv414Qnn_OpConfig_t) opConfig)

    - Verifies that this op with the specified config can be successfully executed.

- Param opPackage

    - **[in]** An op package handle.

- Param opConfig

    - **[in]** Op configuration in question.

- Return

    - error code:

- QNN\_SUCCESS No error encountered.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_HANDLE: *opPackage* is not a valid handle.
- QNN\_OP\_PACKAGE\_ERROR\_VALIDATION\_FAILURE: op config validation failed
- QNN\_OP\_PACKAGE\_ERROR\_UNSUPPORTED\_FEATURE: Validation API not supported

Note

*inputTensors* and *outputTensors* inside opConfig must be fully qualified for complete validation. However, their unique *id* and *name* are ignored during validation.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_CreateOpImplHandleFn\_t)([Qnn\_OpPackageHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1af313f3e4439e7f79362d1065938e0960.html#_CPPv421Qnn_OpPackageHandle_t) opPackage, QnnOpPackage\_GraphInfrastructure\_t graphInfrastructure, QnnOpPackage\_Node\_t node, QnnOpPackage\_OpImpl\_t \*opImpl)

    - Create op implementation with executable content for a given node.

- Param opPackage

    - **[in]** An op package handle.

- Param graphInfrastructure

    - **[in]** Infrastructure for the graph to which the node and kernels belong. This memory is guaranteed to live at least until all created kernels are freed and may be safely cached.

- Param node

    - **[in]** Node object for which kernels should be created. This node may be freed before the created kernels. Neither the node nor it’s members should be cached.

- Param opImpl

    - **[out]** Op implementation with executable content to compute the operation specified by *node*. The Op implementation contents will be freed by the backend with QnnOpPackage\_FreeOpImplFn\_t.

- Pre

    - The corresponding QnnOpPackage\_ValidateOpConfigFn\_t should return QNN\_SUCCESS for the supplied node.

- Return

    - Error code:

- QNN\_SUCCESS: No error encountered.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_HANDLE: *opPackage* is not a valid handle.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_INFRASTRUCTURE: Failed to create op implementation due to invalid graph infrastructure content.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_ARGUMENT: one or more invalid arguments (e.g. NULL)
- QNN\_OP\_PACKAGE\_ERROR\_UNSUPPORTED\_FEATURE: API not supported
- QNN\_OP\_PACKAGE\_ERROR\_GENERAL: Other error occurred.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_FreeOpImplHandleFn\_t)([Qnn\_OpPackageHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1af313f3e4439e7f79362d1065938e0960.html#_CPPv421Qnn_OpPackageHandle_t) opPackage, QnnOpPackage\_OpImpl\_t opImpl)

    - Free the resources associated with Op implementation previously allocated by QnnOpPackage\_CreateOpImplFn\_t.

- Param opPackage

    - **[in]** An op package handle.

- Param opImpl

    - **[in]** Op implementation which should be freed.

- Return

    - Error code:

- QNN\_SUCCESS No error encountered.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_HANDLE: *opPackage* is not a valid handle.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_ARGUMENT: *opImpl* argument was NULL.
- QNN\_OP\_PACKAGE\_ERROR\_UNSUPPORTED\_FEATURE: API not supported.
- QNN\_OP\_PACKAGE\_ERROR\_GENERAL: Other error occurred.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_LogSetLevelHandleFn\_t)([Qnn\_OpPackageHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1af313f3e4439e7f79362d1065938e0960.html#_CPPv421Qnn_OpPackageHandle_t) opPackage, [QnnLog\_Level\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnLog_h.html#_CPPv414QnnLog_Level_t) maxLogLevel)

    - A function to change the log level for the supplied op package handle.

- Param opPackage

    - **[in]** An op package handle.

- Param maxLogLevel

    - **[in]** New maximum log level.

- Return

    - Error code:

- QNN\_SUCCESS: No error encountered.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_HANDLE: *opPackage* is not a valid handle.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_ARGUMENT: if maxLogLevel is not a valid log level.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_FreeFn\_t)([Qnn\_OpPackageHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1af313f3e4439e7f79362d1065938e0960.html#_CPPv421Qnn_OpPackageHandle_t) opPackage)

    - Free all resources associated with an op package handle.

- Param Op

    - **[in]** package handle to be freed.

- Return

    - Error code:

- QNN\_SUCCESS: No error encountered.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_HANDLE: *opPackage* is not a valid handle.
- QNN\_OP\_PACKAGE\_ERROR\_GENERAL: Indicates failure to free op package allocated resources.

- typedef [Qnn\_ErrorHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnCommon_8h_1a8e21e7c6a7471103b59098ef81c28570.html#_CPPv417Qnn_ErrorHandle_t) (\*QnnOpPackage\_InterfaceProvider\_t)([QnnOpPackage\_Interface\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnnOpPackage__Interface__t.html#_CPPv424QnnOpPackage_Interface_t) \*intface\_)

    - A function to retrieve the interface provided by the Op package. The name of this function is not prescribed by Op Package API, but must be documented by the package developer and supplied to QNN backend by the client. See [QnnBackend\_registerOpPackage()](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnBackend_h.html#QnnBackend_8h_1a95dd59ad0b59872f3649f7c363c23441).

- Param interface

    - **[out]** QNN Op Package interface structure, populated with the version and interface methods this Op package provides. Caller to manage the lifetime of the pointer, though the contents are to be considered invalid if the op package library is terminated/unloaded.

- Return

    - Error code:

- QNN\_SUCCESS: Op package interface is successfully retrieved.
- QNN\_OP\_PACKAGE\_ERROR\_INVALID\_ARGUMENT: *interface* argument was NULL.
- QNN\_OP\_PACKAGE\_ERROR\_GENERAL: Other error occurred.

Enums

- enum QnnOpPackage\_Error\_t

    - QNN OpPackage API result / error codes.

*Values:*

- enumerator QNN\_OP\_PACKAGE\_MIN\_ERROR = 3000

    - 

- enumerator QNN\_OP\_PACKAGE\_NO\_ERROR = 0

    - 

- enumerator QNN\_OP\_PACKAGE\_ERROR\_UNSUPPORTED\_FEATURE = [QNN\_COMMON\_ERROR\_NOT\_SUPPORTED](https://docs.qualcomm.com/doc/80-63442-10/topic/api_error_codes.html#_CPPv4N17QnnCommon_Error_t30QNN_COMMON_ERROR_NOT_SUPPORTEDE)

    - There is optional API component that is not supported yet. See QnnProperty.

- enumerator QNN\_OP\_PACKAGE\_ERROR\_LIBRARY\_ALREADY\_INITIALIZED = 3000 + 0

    - Op package library was already initialized.

- enumerator QNN\_OP\_PACKAGE\_ERROR\_LIBRARY\_NOT\_INITIALIZED = 3000 + 1

    - Attempt to call a function in an uninitialized op package library.

- enumerator QNN\_OP\_PACKAGE\_ERROR\_INVALID\_HANDLE = 3000 + 2

    - An invalid op package handle was provided.

- enumerator QNN\_OP\_PACKAGE\_ERROR\_INVALID\_INFRASTRUCTURE = 3000 + 100

    - Invalid infrastructure object used in initializing op package.

- enumerator QNN\_OP\_PACKAGE\_ERROR\_INVALID\_INFO = 3000 + 101

    - Invalid op package info object used in initializing op package.

- enumerator QNN\_OP\_PACKAGE\_ERROR\_VALIDATION\_FAILURE = 3000 + 110

    - Op configuration failed validation.

- enumerator QNN\_OP\_PACKAGE\_ERROR\_INVALID\_ARGUMENT = 3000 + 200

    - Invalid function argument.

- enumerator QNN\_OP\_PACKAGE\_ERROR\_GENERAL = [QNN\_COMMON\_ERROR\_GENERAL](https://docs.qualcomm.com/doc/80-63442-10/topic/api_error_codes.html#_CPPv4N17QnnCommon_Error_t24QNN_COMMON_ERROR_GENERALE)

    - Indicates an error has occurred due to a condition unforeseen by QNN, and possibly meaningful only in the context of the particular op package. Unless otherwise noted, any op package function may return this error.

- enumerator QNN\_OP\_PACKAGE\_MAX\_ERROR = 3999

    - 

- enumerator QNN\_OP\_PACKAGE\_ERROR\_UNDEFINED = 0x7FFFFFFF

    -

- struct QnnOpPackage\_Info\_t

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

Struct describing the contents of an Op package.

Reported to the backend by QnnOpPackage\_GetInfoFn\_t.

Public Members

- const char \*packageName

    - Op package name. Must not be NULL nor empty string.

- const char \*\*operationNames

    - Array holding names of operations provided by the op package. Must not be NULL. Number of elements in the array is specified with *numOperations*.

- const QnnOpPackage\_OperationInfo\_t \*operationInfo

    - Array holding backend-defined operation information. This is optional, backend-specific information. Can be NULL. If not NULL, number of elements in the array is specified with *numOperations*.

- uint32\_t numOperations

    - Number of elements in *operationNames* and *operationInfo* arrays.

- const QnnOpPackage\_Optimization\_t \*optimizations

    - Array holding backend-defined graph optimizations. This is optional, backend-specific information. Can be NULL. If not NULL, number of elements in the array is specified with *numOptimizations*.

- uint32\_t numOptimizations

    - Number of elements in *optimizations* array.

- const char \*sdkBuildId

    - BuildId (as returned by [QnnBackend\_getBuildId()](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnBackend_h.html#QnnBackend_8h_1a463608b6e9568457becaeeb59e115534), also see QNN\_SDK\_BUILD\_ID) from QNN SDK which was used to create this OpPackage with. Allowed to be NULL.

- const [Qnn\_ApiVersion\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnn__ApiVersion__t.html#_CPPv416Qnn_ApiVersion_t) \*sdkApiVersion

    - API Version (as returned by [QnnBackend\_getApiVersion()](https://docs.qualcomm.com/doc/80-63442-10/topic/api-rst_file_include_QNN_QnnBackend_h.html#QnnBackend_8h_1aa2317e971e9ac56b21cf482552e4bd02)) from QNN SDK which was used to create this OpPackage with. Allowed to be NULL.

- const QnnOpPackage\_PackageInfo\_t \*packageInfo

    - Op package level information. Allowed to be NULL.

- const [Qnn\_Version\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnn__Version__t.html#_CPPv413Qnn_Version_t) \*opsetVersion

    - Version of the set of operations implemented in the op package.

- size\_t reserved[12]

    - Reserved for future extensibility. Must be memset to 0.

- struct QnnOpPackage\_ImplementationV1\_4\_t

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

Version 1.4 QNN Op Package Implementation structure.

Contains function pointers for each interface method defined in the
       1.4 QNN Op Package API.
    Copy to clipboard

Public Members

- [QnnOpPackage\_InitFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a131cec9cecddbdbf9d6819a14a001fe9.html#_CPPv421QnnOpPackage_InitFn_t) init

    - 

- [QnnOpPackage\_TerminateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a6ed084a085bca8d7780fc91c651a91c9.html#_CPPv426QnnOpPackage_TerminateFn_t) terminate

    - 

- [QnnOpPackage\_GetInfoFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a1f7646062abbbd782c32e6bed72dd564.html#_CPPv424QnnOpPackage_GetInfoFn_t) getInfo

    - 

- [QnnOpPackage\_ValidateOpConfigFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1ad8cdd8de3e34c264d3925064f8790920.html#_CPPv433QnnOpPackage_ValidateOpConfigFn_t) validateOpConfig

    - 

- [QnnOpPackage\_CreateOpImplFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a4a28f68bc4f3e46c4310f3991445b6e9.html#_CPPv429QnnOpPackage_CreateOpImplFn_t) createOpImpl

    - 

- [QnnOpPackage\_FreeOpImplFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1ae26cd784792e4d3c3c09133ad3ba730f.html#_CPPv427QnnOpPackage_FreeOpImplFn_t) freeOpImpl

    - 

- [QnnOpPackage\_LogInitializeFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a2a2611c2e2ab753026744d80b68c7f9f.html#_CPPv430QnnOpPackage_LogInitializeFn_t) logInitialize

    - 

- [QnnOpPackage\_LogSetLevelFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a0d38a8da3f01f8030a1c039efb987965.html#_CPPv428QnnOpPackage_LogSetLevelFn_t) logSetLevel

    - 

- [QnnOpPackage\_LogTerminateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a24ee97abd62ee02485729b354895e960.html#_CPPv429QnnOpPackage_LogTerminateFn_t) logTerminate

    -

- struct QnnOpPackage\_ImplementationV2\_0\_t

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

Version 2.0 QNN Op Package Implementation structure.

Contains function pointers for each interface method defined in the
       2.0 QNN Op Package API.
    Copy to clipboard

Public Members

- [QnnOpPackage\_CreateFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a4485c95f5e6b9eba3394da35703f6b39.html#_CPPv423QnnOpPackage_CreateFn_t) create

    - 

- [QnnOpPackage\_GetInfoFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a1f7646062abbbd782c32e6bed72dd564.html#_CPPv424QnnOpPackage_GetInfoFn_t) getInfo

    - 

- [QnnOpPackage\_ValidateOpConfigHandleFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a81873772d7ff2530ffc3601502c8fea6.html#_CPPv439QnnOpPackage_ValidateOpConfigHandleFn_t) validateOpConfig

    - 

- [QnnOpPackage\_CreateOpImplHandleFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a5bcd1f43e0e30582a75188228a4a66ff.html#_CPPv435QnnOpPackage_CreateOpImplHandleFn_t) createOpImpl

    - 

- [QnnOpPackage\_FreeOpImplHandleFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1ae4dac9216b2e6d8ac60d12e7b79e346d.html#_CPPv433QnnOpPackage_FreeOpImplHandleFn_t) freeOpImpl

    - 

- [QnnOpPackage\_LogSetLevelHandleFn\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/typedef_QnnOpPackage_8h_1a27c09fc21487527b170ea41a22d9e03b.html#_CPPv434QnnOpPackage_LogSetLevelHandleFn_t) logSetLevel

    - 

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

    -

- struct QnnOpPackage\_Interface\_t

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

Structure which provides the package version and implementation for a given package. Will be queried by the backend using the package’s implementation provider.

Public Members

- [Qnn\_Version\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnn__Version__t.html#_CPPv413Qnn_Version_t) interfaceVersion

    - Version of the QNN Op Package Interface which this package provides. The Op Package Interface is accessed through correspondingly named implementation.

- union unnamed

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

Public Members

- [QnnOpPackage\_ImplementationV1\_4\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnnOpPackage__ImplementationV1__4__t.html#_CPPv433QnnOpPackage_ImplementationV1_4_t) v1\_4

    - 

- [QnnOpPackage\_ImplementationV2\_0\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/structQnnOpPackage__ImplementationV2__0__t.html#_CPPv433QnnOpPackage_ImplementationV2_0_t) v2\_0

    -

Last Published: Jun 04, 2026