65 #ifndef TIVX_TARGET_KERNEL_H_ 66 #define TIVX_TARGET_KERNEL_H_ 128 tivx_target_kernel_instance kernel, uint32_t node_cmd_id,
148 const char *target_name,
164 const char *kernel_name,
165 const char *target_name,
180 tivx_target_kernel target_kernel);
190 tivx_target_kernel_instance target_kernel_instance,
191 void *kernel_context, uint32_t kernel_context_size);
201 tivx_target_kernel_instance target_kernel_instance,
202 void **kernel_context, uint32_t *kernel_context_size);
212 tivx_target_kernel_instance target_kernel_instance,
223 tivx_target_kernel_instance target_kernel_instance,
233 static inline vx_bool tivxFlagIsBitSet(uint32_t flag_var, uint32_t flag_val);
234 static inline void tivxFlagBitSet(
volatile uint32_t *flag_var, uint32_t flag_val);
235 static inline void tivxFlagBitClear(
volatile uint32_t *flag_var, uint32_t flag_val);
240 static inline vx_bool tivxFlagIsBitSet(uint32_t flag_var, uint32_t flag_val)
242 return (
vx_bool)((flag_var & flag_val) == flag_val);
248 static inline void tivxFlagBitSet(
volatile uint32_t *flag_var, uint32_t flag_val)
250 *flag_var |= flag_val;
256 static inline void tivxFlagBitClear(
volatile uint32_t *flag_var, uint32_t flag_val)
258 uint32_t value = *flag_var;
260 value = value & ~flag_val;
struct _tivx_target_kernel * tivx_target_kernel
Handle to kernel on a target.
VX_API_ENTRY vx_status VX_API_CALL tivxGetTargetKernelInstanceState(tivx_target_kernel_instance target_kernel_instance, vx_enum *state)
Get a kernel state with a target kernel instance.
VX_API_ENTRY void tivxGetTargetKernelInstanceBorderMode(tivx_target_kernel_instance target_kernel_instance, vx_border_t *border_mode)
Get the border mode for the target kernel instance.
tivx_target_kernel tivxTargetKernelInstanceGetKernel(tivx_target_kernel_instance target_kernel_instance)
Get target kernel for a given target kernel instance.
Interface to object descriptor.
struct _tivx_target_kernel_instance * tivx_target_kernel_instance
Handle to instance of kernel on a target.
vx_status(VX_CALLBACK * tivx_target_kernel_control_f)(tivx_target_kernel_instance kernel, uint32_t node_cmd_id, tivx_obj_desc_t *obj_desc[], uint16_t num_params, void *priv_arg)
The target kernel callback for control command.
VX_API_ENTRY tivx_target_kernel VX_API_CALL tivxAddTargetKernelByName(const char *kernel_name, const char *target_name, tivx_target_kernel_f process_func, tivx_target_kernel_f create_func, tivx_target_kernel_f delete_func, tivx_target_kernel_control_f control_func, void *priv_arg)
Allows users to add native kernels implementation to specific targets.
vx_status(VX_CALLBACK * tivx_target_kernel_f)(tivx_target_kernel_instance kernel, tivx_obj_desc_t *obj_desc[], uint16_t num_params, void *priv_arg)
The target kernel callback.
VX_API_ENTRY vx_status VX_API_CALL tivxRemoveTargetKernel(tivx_target_kernel target_kernel)
Allows users to remove native kernels implementation to specific targets.
VX_API_ENTRY vx_status VX_API_CALL tivxGetTargetKernelInstanceContext(tivx_target_kernel_instance target_kernel_instance, void **kernel_context, uint32_t *kernel_context_size)
Get a kernel function context or handle with a target kernel instance.
VX_API_ENTRY vx_status VX_API_CALL tivxSetTargetKernelInstanceContext(tivx_target_kernel_instance target_kernel_instance, void *kernel_context, uint32_t kernel_context_size)
Associate a kernel function context or handle with a target kernel instance.
vx_status(* VX_API_CALL)(vx_reference *ref)
Callback type used to register release callbacks from object dervied from references.
VX_API_ENTRY tivx_target_kernel VX_API_CALL tivxAddTargetKernel(vx_enum kernel_id, const char *target_name, tivx_target_kernel_f process_func, tivx_target_kernel_f create_func, tivx_target_kernel_f delete_func, tivx_target_kernel_control_f control_func, void *priv_arg)
Allows users to add native kernels implementation to specific targets.