File QnnSystemInterface.h

Parent directory (include/QNN/System)

QNN System Interface API.

Definition (include/QNN/System/QnnSystemInterface.h)

Detailed Description

QNN System Interface is an abstraction combining all QNN System APIs. QNN System Interface provides typedef variant of QNN System APIs and API to get QNN System interface object(s). QNN System Interface API can coexist with QNN System APIs. Visibility of Interface and System APIs is determined by build configuration, specifically by QNN_SYSTEM_API and QNN_SYSTEM_INTERFACE macro definitions.

Includes

Full File Listing

QNN System Interface API.

    QNN System Interface is an abstraction combining all QNN System APIs.
    QNN System Interface provides typedef variant of QNN System APIs and
    API to get QNN System interface object(s).
    QNN System Interface API can coexist with QNN System APIs. Visibility
    of Interface and System APIs is determined by build configuration,
    specifically by QNN_SYSTEM_API and QNN_SYSTEM_INTERFACE macro definitions.

Defines

QNN_SYSTEM_INTERFACE
QNN_SYSTEM_INTERFACE_VER_EVAL(major, minor) QNN_PASTE_THREE(major, _, minor)
QNN_SYSTEM_INTERFACE_NAME_EVAL(prefix, body, suffix) QNN_PASTE_THREE(prefix, body, suffix)
QNN_SYSTEM_INTERFACE_VER_TYPE_EVAL(ver_major, ver_minor) QNN_SYSTEM_INTERFACE_NAME_EVAL

(                                \

QnnSystemInterface_ImplementationV,

QNN_SYSTEM_INTERFACE_VER_EVAL(ver_major, ver_minor), _t)
QNN_SYSTEM_INTERFACE_VER_NAME_EVAL(ver_major, ver_minor) QNN_SYSTEM_INTERFACE_NAME_EVAL(v, QNN_SYSTEM_INTERFACE_VER_EVAL(ver_major, ver_minor), )
QNN_SYSTEM_INTERFACE_VER_TYPE QNN_SYSTEM_INTERFACE_VER_TYPE_EVAL(QNN_SYSTEM_API_VERSION_MAJOR, QNN_SYSTEM_API_VERSION_MINOR)
QNN_SYSTEM_INTERFACE_VER_NAME QNN_SYSTEM_INTERFACE_VER_NAME_EVAL(QNN_SYSTEM_API_VERSION_MAJOR, QNN_SYSTEM_API_VERSION_MINOR)
QNN_SYSTEM_INTERFACE_VER_TYPE_INIT

{ \

NULL, /*systemContextCreate*/ \

NULL, /*systemContextGetBinaryInfo*/ \

NULL, /*systemContextGetMetaData*/ \

NULL, /*systemContextFree*/ \

}


QNN_INTERFACE_VER_TYPE initializer macro.

QNN_SYSTEM_INTERFACE_INIT   {                                                                        \     QNN_BACKEND_ID_NULL

,     /*backendId*/                                 \

NULL,                    /*providerName*/                              \

QNN_VERSION_INIT

,        /*apiVersion*/                                \

{                                                                      \

QNN_SYSTEM_INTERFACE_VER_TYPE_INIT /*QNN_SYSTEM_INTERFACE_VER_NAME

*/ \

}                                                                      \

}


QnnSystemInterface_t initializer macro.

Typedefs

typedef Qnn_ErrorHandle_t (*QnnSystemContext_CreateFn_t)(QnnSystemContext_Handle_t *sysCtxHandle)

See QnnSystemContext_create()

typedef Qnn_ErrorHandle_t (*QnnSystemContext_GetBinaryInfoFn_t)(QnnSystemContext_Handle_t sysCtxHandle, void *binaryBuffer, uint64_t binaryBufferSize, const QnnSystemContext_BinaryInfo_t **binaryInfo, Qnn_ContextBinarySize_t *binaryInfoSize)

See QnnSystemContext_getBinaryInfo()

typedef Qnn_ErrorHandle_t (*QnnSystemContext_GetMetaDataFn_t)(QnnSystemContext_Handle_t sysCtxHandle, const void *binaryBuffer, uint64_t binaryBufferSize, const QnnSystemContext_BinaryInfo_t **binaryInfo)

See QnnSystemContext_getMetadata()

typedef Qnn_ErrorHandle_t (*QnnSystemContext_FreeFn_t)(QnnSystemContext_Handle_t sysCtxHandle)

See QnnSystemContext_free()

Enums

enum QnnSystemInterface_Error_t

QNN System Interface API result / error codes.

Values:

enumerator QNN_SYSTEM_INTERFACE_MIN_ERROR = 30000
enumerator QNN_SYSTEM_INTERFACE_NO_ERROR = 0
enumerator QNN_SYSTEM_INTERFACE_ERROR_NOT_SUPPORTED = QNN_COMMON_ERROR_NOT_SUPPORTED
enumerator QNN_SYSTEM_INTERFACE_ERROR_INVALID_PARAMETER = QNN_COMMON_ERROR_INVALID_ARGUMENT
enumerator QNN_SYSTEM_INTERFACE_MAX_ERROR = 49999

Functions

Qnn_ErrorHandle_t QnnSystemInterface_getProviders(const QnnSystemInterface_t ***providerList, uint32_t *numProviders)

Get list of available interface providers.

Parameters
  • providerList[out] A pointer to an array of available interface providers. The lifetime of returned interface object pointers corresponds to the lifetime of the provider library. Contents are to be considered invalid if the provider library is terminated/unloaded. This function can be called immediately after provider library has been loaded.

  • numProviders[out] Number of available interface objects in providerList.

Returns

Error code:

  • QNN_SUCCESS: No error.

  • QNN_SYSTEM_INTERFACE_INVALID_PARAMETER: Invalid parameter was provided. Either providerList or numProviders was NULL.

  • QNN_SYSTEM_INTERFACE_ERROR_NOT_SUPPORTED: API not supported.

struct QnnSystemInterface_ImplementationV1_2_t
#include <QnnSystemInterface.h>

This struct defines Qnn system interface specific to version. Interface functions are allowed to be NULL if not supported/available.

Public Members

QnnSystemContext_CreateFn_t systemContextCreate
QnnSystemContext_GetBinaryInfoFn_t systemContextGetBinaryInfo
QnnSystemContext_GetMetaDataFn_t systemContextGetMetaData
QnnSystemContext_FreeFn_t systemContextFree
struct QnnSystemInterface_t
#include <QnnSystemInterface.h>

Public Members

uint32_t backendId

Backend identifier. See QnnCommon.h for details. Allowed to be QNN_BACKEND_ID_NULL in case of single backend library or a dedicated system library, in which case clients can deduce backend identifier based on library being loaded.

const char *providerName

Interface provider name. Allowed to be NULL.

Qnn_Version_t systemApiVersion
union unnamed
#include <QnnSystemInterface.h>