The OpenVX Specification  a73e458
vx_import.h
1 /*
2  * Copyright (c) 2012-2017 The Khronos Group Inc.
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a
5  * copy of this software and/or associated documentation files (the
6  * "Materials"), to deal in the Materials without restriction, including
7  * without limitation the rights to use, copy, modify, merge, publish,
8  * distribute, sublicense, and/or sell copies of the Materials, and to
9  * permit persons to whom the Materials are furnished to do so, subject to
10  * the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included
13  * in all copies or substantial portions of the Materials.
14  *
15  * MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
16  * KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
17  * SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
18  * https://www.khronos.org/registry/
19  *
20  * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
21  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
23  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
24  * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25  * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26  * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
27  */
28 #ifndef _OPENVX_IMPORT_H_
29 #define _OPENVX_IMPORT_H_
30 
41 #define VX_ENUM_IX_USE 0x18
42 
45 #define VX_IX_USE_APPLICATION_CREATE (VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_IX_USE) + 0x0)
49 #define VX_IX_USE_EXPORT_VALUES (VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_IX_USE) + 0x1)
53 #define VX_IX_USE_NO_EXPORT_VALUES (VX_ENUM_BASE(VX_ID_KHRONOS, VX_ENUM_IX_USE) + 0x2)
55 /*=============================================================================
56 IMPORT
57 =============================================================================*/
58 
62 typedef struct _vx_import *vx_import;
63 
68 #define VX_TYPE_IMPORT 0x814
137 VX_API_ENTRY vx_import VX_API_CALL vxImportObjectsFromMemory(
138  vx_context context,
139  vx_size numrefs,
140  vx_reference *refs,
141  const vx_enum * uses,
142  const vx_uint8 * ptr,
143  vx_size length);
144 
159 VX_API_ENTRY vx_status VX_API_CALL vxReleaseImport(vx_import *import);
191 VX_API_ENTRY vx_reference VX_API_CALL vxGetImportReferenceByName(vx_import import, const vx_char *name);
192 
193 #endif
uint8_t vx_uint8
An 8-bit unsigned value.
Definition: vx_types.h:87
size_t vx_size
A wrapper of size_t to keep the naming convention uniform.
Definition: vx_types.h:165
struct _vx_import * vx_import
The Import Object. Import is a container of OpenVX objects, which may be retreived by name...
Definition: vx_import.h:62
int32_t vx_enum
Sets the standard enumeration type size to be a fixed quantity.
Definition: vx_types.h:160
char vx_char
An 8 bit ASCII character.
Definition: vx_types.h:82
vx_enum vx_status
A formal status type with known fixed size.
Definition: vx_types.h:434
struct _vx_context * vx_context
An opaque reference to the implementation context.
Definition: vx_types.h:226
struct _vx_reference * vx_reference
A generic opaque reference to any object within OpenVX.
Definition: vx_types.h:153
vx_reference VX_API_CALL vxGetImportReferenceByName(vx_import import, const vx_char *name)
Get a reference from the import object by name.
vx_status VX_API_CALL vxReleaseImport(vx_import *import)
Releases an import object when no longer required.
#define VX_API_CALL
Defines calling convention for OpenVX API.
Definition: vx_types.h:68