roctracer 4.1.60201
Loading...
Searching...
No Matches
roctracer.h
Go to the documentation of this file.
1/* Copyright (c) 2018-2022 Advanced Micro Devices, Inc.
2
3 Permission is hereby granted, free of charge, to any person obtaining a copy
4 of this software and associated documentation files (the "Software"), to deal
5 in the Software without restriction, including without limitation the rights
6 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 copies of the Software, and to permit persons to whom the Software is
8 furnished to do so, subject to the following conditions:
9
10 The above copyright notice and this permission notice shall be included in
11 all copies or substantial portions of the Software.
12
13 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 THE SOFTWARE. */
20
47#ifndef ROCTRACER_H_
48#define ROCTRACER_H_
49
50/* Placeholder for calling convention and import/export macros */
51#if !defined(ROCTRACER_CALL)
52#define ROCTRACER_CALL
53#endif /* !defined (ROCTRACER_CALL) */
54
55#if !defined(ROCTRACER_EXPORT_DECORATOR)
56#if defined(__GNUC__)
57#define ROCTRACER_EXPORT_DECORATOR __attribute__((visibility("default")))
58#elif defined(_MSC_VER)
59#define ROCTRACER_EXPORT_DECORATOR __declspec(dllexport)
60#endif /* defined (_MSC_VER) */
61#endif /* !defined (ROCTRACER_EXPORT_DECORATOR) */
62
63#if !defined(ROCTRACER_IMPORT_DECORATOR)
64#if defined(__GNUC__)
65#define ROCTRACER_IMPORT_DECORATOR
66#elif defined(_MSC_VER)
67#define ROCTRACER_IMPORT_DECORATOR __declspec(dllimport)
68#endif /* defined (_MSC_VER) */
69#endif /* !defined (ROCTRACER_IMPORT_DECORATOR) */
70
71#define ROCTRACER_EXPORT ROCTRACER_EXPORT_DECORATOR ROCTRACER_CALL
72#define ROCTRACER_IMPORT ROCTRACER_IMPORT_DECORATOR ROCTRACER_CALL
73
74#if !defined(ROCTRACER)
75#if defined(ROCTRACER_EXPORTS)
76#define ROCTRACER_API ROCTRACER_EXPORT
77#else /* !defined (ROCTRACER_EXPORTS) */
78#define ROCTRACER_API ROCTRACER_IMPORT
79#endif /* !defined (ROCTRACER_EXPORTS) */
80#endif /* !defined (ROCTRACER) */
81
82#include <stddef.h>
83#include <stdint.h>
84
85#include "ext/prof_protocol.h"
86
87#ifdef __cplusplus
88extern "C" {
89#endif /* __cplusplus */
90
110#define ROCTRACER_VERSION_4_1
111
131#define ROCTRACER_VERSION_MAJOR 4
132
137#define ROCTRACER_VERSION_MINOR 1
138
147
156
245
258
272typedef activity_domain_t roctracer_domain_t;
273
288 uint32_t domain, uint32_t op, uint32_t kind) ROCTRACER_VERSION_4_1;
289
311roctracer_op_code(uint32_t domain, const char* str, uint32_t* op,
312 uint32_t* kind) ROCTRACER_VERSION_4_1;
313
327 roctracer_domain_t domain, void* properties) ROCTRACER_VERSION_4_1;
328
346typedef activity_rtapi_callback_t roctracer_rtapi_callback_t;
347
369 activity_domain_t domain, uint32_t op, activity_rtapi_callback_t callback,
370 void* arg) ROCTRACER_VERSION_4_1;
371
388 activity_domain_t domain, activity_rtapi_callback_t callback,
389 void* arg) ROCTRACER_VERSION_4_1;
390
407 activity_domain_t domain, uint32_t op) ROCTRACER_VERSION_4_1;
408
420 activity_domain_t domain) ROCTRACER_VERSION_4_1;
421
439typedef activity_record_t roctracer_record_t;
440
456roctracer_next_record(const activity_record_t* record,
457 const activity_record_t** next) ROCTRACER_VERSION_4_1;
458
478typedef void (*roctracer_allocator_t)(char** ptr, size_t size, void* arg);
479
492typedef void (*roctracer_buffer_callback_t)(const char* begin, const char* end,
493 void* arg);
494
532
536typedef void roctracer_pool_t;
537
563
583
599
611
623
630
649 activity_domain_t domain, uint32_t op,
651
666 activity_domain_t domain, uint32_t op) ROCTRACER_VERSION_4_1;
667
684 activity_domain_t domain, roctracer_pool_t* pool) ROCTRACER_VERSION_4_1;
685
698 activity_domain_t domain) ROCTRACER_VERSION_4_1;
699
711 activity_domain_t domain, uint32_t op) ROCTRACER_VERSION_4_1;
712
722 activity_domain_t domain) ROCTRACER_VERSION_4_1;
723
739
752
771 roctracer_timestamp_t* timestamp) ROCTRACER_VERSION_4_1;
772
775#ifdef __cplusplus
776} /* extern "C" block */
777#endif /* __cplusplus */
778
779#endif /* ROCTRACER_H_ */
ROCTRACER_API roctracer_status_t roctracer_disable_op_activity(activity_domain_t domain, uint32_t op) ROCTRACER_VERSION_4_1
Disable activity record logging for a specified operation of a domain.
void roctracer_pool_t
Tracer memory pool type.
Definition roctracer.h:536
void(* roctracer_buffer_callback_t)(const char *begin, const char *end, void *arg)
Memory pool buffer callback.
Definition roctracer.h:492
ROCTRACER_API roctracer_pool_t * roctracer_default_pool() ROCTRACER_VERSION_4_1
Query the current default memory pool.
ROCTRACER_API roctracer_status_t roctracer_next_record(const activity_record_t *record, const activity_record_t **next) ROCTRACER_VERSION_4_1
Get a pointer to the next activity record.
ROCTRACER_API roctracer_status_t roctracer_flush_activity_expl(roctracer_pool_t *pool) ROCTRACER_VERSION_4_1
Flush available activity records for a memory pool.
ROCTRACER_API roctracer_status_t roctracer_flush_activity() ROCTRACER_VERSION_4_1
Flush available activity records for the default memory pool.
ROCTRACER_API roctracer_status_t roctracer_open_pool_expl(const roctracer_properties_t *properties, roctracer_pool_t **pool) ROCTRACER_VERSION_4_1
Create tracer memory pool.
activity_record_t roctracer_record_t
Activity record.
Definition roctracer.h:439
ROCTRACER_API roctracer_status_t roctracer_enable_op_activity_expl(activity_domain_t domain, uint32_t op, roctracer_pool_t *pool) ROCTRACER_VERSION_4_1
Enable activity record logging for a specified operation of a domain providing a memory pool.
ROCTRACER_API roctracer_status_t roctracer_close_pool_expl(roctracer_pool_t *pool) ROCTRACER_VERSION_4_1
Close tracer memory pool.
ROCTRACER_API roctracer_status_t roctracer_enable_domain_activity(activity_domain_t domain) ROCTRACER_VERSION_4_1
Enable activity record logging for all operations of a domain using the default memory pool.
ROCTRACER_API roctracer_status_t roctracer_close_pool() ROCTRACER_VERSION_4_1
Close default tracer memory pool, if defined, and set to undefined.
void(* roctracer_allocator_t)(char **ptr, size_t size, void *arg)
Memory pool allocator callback.
Definition roctracer.h:478
ROCTRACER_API roctracer_status_t roctracer_open_pool(const roctracer_properties_t *properties) ROCTRACER_VERSION_4_1
Create tracer memory pool.
ROCTRACER_API roctracer_status_t roctracer_disable_domain_activity(activity_domain_t domain) ROCTRACER_VERSION_4_1
Disable activity record logging for all operations of a domain.
ROCTRACER_API roctracer_status_t roctracer_enable_domain_activity_expl(activity_domain_t domain, roctracer_pool_t *pool) ROCTRACER_VERSION_4_1
Enable activity record logging for all operations of a domain providing a memory pool.
ROCTRACER_API roctracer_status_t roctracer_enable_op_activity(activity_domain_t domain, uint32_t op) ROCTRACER_VERSION_4_1
Enable activity record logging for a specified operation of a domain using the default memory pool.
ROCTRACER_API roctracer_pool_t * roctracer_default_pool_expl(roctracer_pool_t *pool) ROCTRACER_VERSION_4_1
Query and set the default memory pool.
ROCTRACER_API roctracer_status_t roctracer_enable_domain_callback(activity_domain_t domain, activity_rtapi_callback_t callback, void *arg) ROCTRACER_VERSION_4_1
Enable runtime API callback for all operations of a domain.
ROCTRACER_API roctracer_status_t roctracer_enable_op_callback(activity_domain_t domain, uint32_t op, activity_rtapi_callback_t callback, void *arg) ROCTRACER_VERSION_4_1
Enable runtime API callback for a specific operation of a domain.
activity_rtapi_callback_t roctracer_rtapi_callback_t
Runtime API callback type.
Definition roctracer.h:346
ROCTRACER_API roctracer_status_t roctracer_disable_domain_callback(activity_domain_t domain) ROCTRACER_VERSION_4_1
Disable runtime API callback for all operations of a domain.
ROCTRACER_API roctracer_status_t roctracer_disable_op_callback(activity_domain_t domain, uint32_t op) ROCTRACER_VERSION_4_1
Disable runtime API callback for a specific operation of a domain.
ROCTRACER_API roctracer_status_t roctracer_set_properties(roctracer_domain_t domain, void *properties) ROCTRACER_VERSION_4_1
Set the properties of a domain.
ROCTRACER_API roctracer_status_t roctracer_op_code(uint32_t domain, const char *str, uint32_t *op, uint32_t *kind) ROCTRACER_VERSION_4_1
Query the operation code given a domain and the name of an operation.
activity_domain_t roctracer_domain_t
Enumeration of domains that can be traced.
Definition roctracer.h:272
ROCTRACER_API const char * roctracer_op_string(uint32_t domain, uint32_t op, uint32_t kind) ROCTRACER_VERSION_4_1
Query textual name of an operation of a domain.
roctracer_status_t
ROC Tracer API status codes.
Definition roctracer.h:169
ROCTRACER_API const char * roctracer_error_string() ROCTRACER_VERSION_4_1
Query the textual description of the last error for the current thread.
@ ROCTRACER_STATUS_HIP_API_ERR
Deprecated error code.
Definition roctracer.h:227
@ ROCTRACER_STATUS_ERROR_DEFAULT_POOL_UNDEFINED
No default pool is defined.
Definition roctracer.h:189
@ ROCTRACER_STATUS_HSA_ERR
Deprecated error code.
Definition roctracer.h:239
@ ROCTRACER_STATUS_ERROR_DEFAULT_POOL_ALREADY_DEFINED
The default pool is already defined.
Definition roctracer.h:193
@ ROCTRACER_STATUS_HIP_OPS_ERR
Deprecated error code.
Definition roctracer.h:231
@ ROCTRACER_STATUS_HCC_OPS_ERR
Deprecated error code.
Definition roctracer.h:235
@ ROCTRACER_STATUS_ERROR_INVALID_DOMAIN_ID
The domain ID is invalid.
Definition roctracer.h:181
@ ROCTRACER_STATUS_ERROR_INVALID_ARGUMENT
An invalid argument was given to the function.
Definition roctracer.h:185
@ ROCTRACER_STATUS_ERROR_NOT_IMPLEMENTED
The operation is not currently implemented.
Definition roctracer.h:207
@ ROCTRACER_STATUS_ERROR_MISMATCHED_EXTERNAL_CORRELATION_ID
External correlation ID pop mismatch.
Definition roctracer.h:201
@ ROCTRACER_STATUS_UNINIT
Deprecated error code.
Definition roctracer.h:211
@ ROCTRACER_STATUS_ERROR_MEMORY_ALLOCATION
Memory allocation error.
Definition roctracer.h:197
@ ROCTRACER_STATUS_ERROR
A generic error has occurred.
Definition roctracer.h:177
@ ROCTRACER_STATUS_BAD_PARAMETER
Deprecated error code.
Definition roctracer.h:223
@ ROCTRACER_STATUS_ROCTX_ERR
Deprecated error code.
Definition roctracer.h:243
@ ROCTRACER_STATUS_SUCCESS
The function has executed successfully.
Definition roctracer.h:173
@ ROCTRACER_STATUS_BREAK
Deprecated error code.
Definition roctracer.h:215
@ ROCTRACER_STATUS_BAD_DOMAIN
Deprecated error code.
Definition roctracer.h:219
#define ROCTRACER_VERSION_4_1
The function was introduced in version 4.1 of the interface and has the symbol version string of "ROC...
Definition roctracer.h:110
ROCTRACER_API roctracer_status_t roctracer_get_timestamp(roctracer_timestamp_t *timestamp) ROCTRACER_VERSION_4_1
Get the system clock timestamp.
ROCTRACER_API uint32_t roctracer_version_major() ROCTRACER_VERSION_4_1
Query the major version of the installed library.
ROCTRACER_API uint32_t roctracer_version_minor() ROCTRACER_VERSION_4_1
Query the minor version of the installed library.
#define ROCTRACER_API
Definition roctracer.h:78
Memory pool properties.
Definition roctracer.h:500
size_t buffer_size
Size of buffer in bytes.
Definition roctracer.h:509
uint32_t mode
ROC Tracer mode.
Definition roctracer.h:504
roctracer_allocator_t alloc_fun
The allocator function to use to allocate and deallocate the buffer.
Definition roctracer.h:515
roctracer_buffer_callback_t buffer_callback_fun
The function to call when a buffer becomes full or is flushed.
Definition roctracer.h:525
void * alloc_arg
The argument to pass when invoking the alloc_fun allocator.
Definition roctracer.h:520
void * buffer_callback_arg
The argument to pass when invoking the buffer_callback_fun callback.
Definition roctracer.h:530