TIOVX User Guide
tivx_platform.h
Go to the documentation of this file.
1 /*
2 *
3 * Copyright (c) 2017 Texas Instruments Incorporated
4 *
5 * All rights reserved not granted herein.
6 *
7 * Limited License.
8 *
9 * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10 * license under copyrights and patents it now or hereafter owns or controls to make,
11 * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12 * terms herein. With respect to the foregoing patent license, such license is granted
13 * solely to the extent that any such patent is necessary to Utilize the software alone.
14 * The patent license shall not apply to any combinations which include this software,
15 * other than combinations with devices manufactured by or for TI ("TI Devices").
16 * No hardware patent is licensed hereunder.
17 *
18 * Redistributions must preserve existing copyright notices and reproduce this license
19 * (including the above copyright notice and the disclaimer and (if applicable) source
20 * code license limitations below) in the documentation and/or other materials provided
21 * with the distribution
22 *
23 * Redistribution and use in binary form, without modification, are permitted provided
24 * that the following conditions are met:
25 *
26 * * No reverse engineering, decompilation, or disassembly of this software is
27 * permitted with respect to any software provided in binary form.
28 *
29 * * any redistribution and use are licensed by TI for use only with TI Devices.
30 *
31 * * Nothing shall obligate TI to provide you with source code for the software
32 * licensed and provided to you in object code.
33 *
34 * If software source code is provided to you, modification and redistribution of the
35 * source code are permitted provided that the following conditions are met:
36 *
37 * * any redistribution and use of the source code, including any resulting derivative
38 * works, are licensed by TI for use only with TI Devices.
39 *
40 * * any redistribution and use of any object code compiled from the source code
41 * and any resulting derivative works, are licensed by TI for use only with TI Devices.
42 *
43 * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44 *
45 * may be used to endorse or promote products derived from this software without
46 * specific prior written permission.
47 *
48 * DISCLAIMER.
49 *
50 * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53 * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59 * OF THE POSSIBILITY OF SUCH DAMAGE.
60 *
61 */
62 
63 
64 
65 
66 #ifndef TIVX_PLATFORM_H_
67 #define TIVX_PLATFORM_H_
68 
69 #ifdef __cplusplus
70 extern "C" {
71 #endif
72 
73 #include <tivx_obj_desc_priv.h>
74 
85 typedef enum {
86 
89 
92 
95 
98 
101 
104 
106 
116 vx_enum tivxPlatformGetTargetId(const char *target_name);
117 
126 void tivxPlatformGetTargetName(vx_enum target_id, char *target_name);
127 
138 vx_bool tivxPlatformTargetMatch(const char *kernel_target_name, const char *target_string);
139 
140 
150 
159 void tivxPlatformGetLogRtShmInfo(void **shm_base, uint32_t *shm_size);
160 
169 void tivxPlatformSystemLock(vx_enum lock_id);
170 
176 void tivxPlatformSystemUnlock(vx_enum lock_id);
177 
183 uint64_t tivxPlatformGetTimeInUsecs(void);
184 
191 
197 void tivxPlatformDeInit(void);
198 
204 void tivxPlatformPrintf(const char *format);
205 
214 void tivxPlatformCreateTargets(void);
215 
221 void tivxPlatformDeleteTargets(void);
222 
229 void tivxPlatformActivate(void);
230 
237 void tivxPlatformDeactivate(void);
238 
245 void *tivxPlatformGetDmaObj(void);
246 
247 #ifdef __cplusplus
248 }
249 #endif
250 
251 #endif
vx_bool
void tivxPlatformGetLogRtShmInfo(void **shm_base, uint32_t *shm_size)
Return shared memory info which holds the run-time logger buffer.
int32_t vx_enum
void tivxPlatformSystemLock(vx_enum lock_id)
Take a system level lock.
tivx_platform_lock_type_e
Types of system level locks.
Definition: tivx_platform.h:85
void tivxPlatformSystemUnlock(vx_enum lock_id)
Release system level lock.
Internal private implementation of object descriptor.
void tivxPlatformDeactivate(void)
Utility function to disable Platform specific things Currently Used for EVE algorithm to disable EDMA...
vx_bool tivxPlatformTargetMatch(const char *kernel_target_name, const char *target_string)
Match a user specified target_string with kernel suported target name.
vx_enum vx_status
Lock the shared object descriptor table.
Definition: tivx_platform.h:88
void tivxPlatformActivate(void)
Utility function to enable Platform specific things Currently Used for EVE algorithm to enable EDMA.
void tivxPlatformCreateTargets(void)
Function to set the target configuration.
Data structure to hold info about object descriptor table.
Lock the context during context create and delete.
Definition: tivx_platform.h:91
Lock the run-time logger.
void tivxPlatformDeleteTargets(void)
Function to destroy created targets.
vx_enum tivxPlatformGetTargetId(const char *target_name)
Convert a target name to a specific target ID.
Max number of locks.
void tivxPlatformGetTargetName(vx_enum target_id, char *target_name)
Convert a specific target ID to a target name.
Lock the index information of run-time logger.
Definition: tivx_platform.h:97
void tivxPlatformGetObjDescTableInfo(tivx_obj_desc_table_info_t *table_info)
Return shared memory info which holds the object descriptors.
void tivxPlatformDeInit(void)
DeInit Platform module.
uint64_t tivxPlatformGetTimeInUsecs(void)
Get the time in micro seconds.
void tivxPlatformPrintf(const char *format)
Print given string.
vx_status tivxPlatformInit(void)
Init Platform module.
void * tivxPlatformGetDmaObj(void)
Utility function to get Platform specific things Used to obtain DMA handle.
Lock the data reference queue during enqueue and dequeue.
Definition: tivx_platform.h:94