compute-runtime/opencl/source/tracing/tracing_api.h

87 lines
2.6 KiB
C

/*
* Copyright (C) 2019-2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#pragma once
#include "opencl/source/tracing/tracing_types.h"
#ifdef __cplusplus
extern "C" {
#endif
/*!
Function creates a tracing handle object
\param[in] device Device to create tracing handle for
\param[in] callback User-defined callback that will be called along with
traced API function
\param[in] userData Pointer to any data user would like to pass into the
callback, can be zero
\param[out] handle Tracing handle object that describes current tracing
session
\return Status code for current operation
Thread Safety: yes
*/
cl_int CL_API_CALL clCreateTracingHandleINTEL(cl_device_id device, cl_tracing_callback callback, void *userData, cl_tracing_handle *handle);
/*!
Function allows to specify which target API call should be traced.
By default function will NOT be traced
\param[in] handle Tracing handle object
\param[in] fid Target function identifier
\param[in] enable Flag to enable/disable tracing for target function
\return Status code for current operation
Thread Safety: no
*/
cl_int CL_API_CALL clSetTracingPointINTEL(cl_tracing_handle handle, cl_function_id fid, cl_bool enable);
/*!
Function destroys the tracing handle object and releases all the associated
resources
\param[in] handle Tracing handle object
\return Status code for current operation
Thread Safety: no
*/
cl_int CL_API_CALL clDestroyTracingHandleINTEL(cl_tracing_handle handle);
/*!
Function enables the tracing process for the handle. Multiple handles
can be enabled at a time
\param[in] handle Tracing handle object
\return Status code for current operation
Thread Safety: yes
*/
cl_int CL_API_CALL clEnableTracingINTEL(cl_tracing_handle handle);
/*!
Function disables the tracing process for the handle. It will wait until
all currently running callbacks are done
\param[in] handle Tracing handle object
\return Status code for current operation
Thread Safety: yes
*/
cl_int CL_API_CALL clDisableTracingINTEL(cl_tracing_handle handle);
/*!
Function requests the tracing state for the handle
\param[in] handle Tracing handle object
\param[out] enable Returns TRUE if tracing handle is in use and
FALSE otherwise
\return Status code for current operation
Thread Safety: yes
*/
cl_int CL_API_CALL clGetTracingStateINTEL(cl_tracing_handle handle, cl_bool *enable);
#ifdef __cplusplus
}
#endif