39b209c2a7
* Update and rename rocprofiler.h to rocprofiler.h.in - Removing Service IDs - Fixing agent_id to be agent * [0/N] New rocprofiler headers - created rocprofiler/defines.h - ppdef macros - created rocprofiler/hip.h - HIP specific types - created rocprofiler/hsa.h - HSA specific types - created rocprofiler/marker.h - Marker (ROCTx) specific types - create version.h.in - file containing version info - updated source/lib/rocprofiler/CMakeLists.txt - set DEFINE_SYMBOL - compile defs provided by rocprofiler::rocprofiler-headers * [1/N] Update rocprofiler.h - pragma once - removed some ppdefs (in version.h.in and defines.h) - extern "C" after includes - added *_NONE and *_LAST enum values to all enums - provided some rocprofiler_status_t enums - tweaked rocprofiler_agent_type_t enum fields - tweaked rocprofiler_agent_info_t enum fields - provided rocprofiler_tracer_activity_domain_t - added missing rocprofiler_counter_instance_id_t typedef - may not be correct - provided rocprofiler_record_header_t struct - provided rocprofiler_record_tracer_t struct - add ROCPROFILER_NONNULL attribute where appropriate - CMakeLists.txt: add subdirectories for hsa, hip, and marker - defines.h: remove ROCPROFILER_CALL ppdef - rocprofiler.h - ROCPROFILER_STATUS_ERROR_NOT_IMPLEMENTED - extend rocprofiler_agent_t - modify rocprofiler_query_available_agents signature to callback - rocprofiler_pc_sampling_config_array_t - update rocprofiler_buffer_callback_t to include context id - update rocprofiler_create_buffer to accept context - rocprofiler_plugin.h - non-const rocprofiler_record_header_t** * [2/N] Update include/rocprofiler/rocprofiler_plugin.h - change prototype of rocprofiler_plugin_write_buffer_records to resemble rocprofiler_buffer_callback_t * [3/N] Update include/rocprofiler/hsa - Update hsa.h - Details in hsa subfolder * [4/N] Update include/rocprofiler/hip - Update hip.h - Details in hip subfolder * [5/N] Update include/rocprofiler/marker - Update marker.h - Details in marker subfolder * [6/N] Update samples/pc_sampling - fix issues with macros - fix API changes --------- Co-authored-by: Jonathan Madsen <jrmadsen@users.noreply.github.com>
98 righe
3.4 KiB
C++
98 righe
3.4 KiB
C++
// MIT License
|
|
//
|
|
// Copyright (c) 2023 ROCm Developer Tools
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
// of this software and associated documentation files (the "Software"), to deal
|
|
// in the Software without restriction, including without limitation the rights
|
|
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
// copies of the Software, and to permit persons to whom the Software is
|
|
// furnished to do so, subject to the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be included in all
|
|
// copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
// SOFTWARE.
|
|
|
|
#pragma once
|
|
|
|
#if !defined(ROCPROFILER_ATTRIBUTE)
|
|
# if defined(_MSC_VER)
|
|
# define ROCPROFILER_ATTRIBUTE(...) __declspec(__VA_ARGS__)
|
|
# else
|
|
# define ROCPROFILER_ATTRIBUTE(...) __attribute__((__VA_ARGS__))
|
|
# endif
|
|
#endif
|
|
|
|
#if !defined(ROCPROFILER_PUBLIC_API)
|
|
# if defined(_MSC_VER)
|
|
# define ROCPROFILER_PUBLIC_API ROCPROFILER_ATTRIBUTE(dllexport)
|
|
# else
|
|
# define ROCPROFILER_PUBLIC_API ROCPROFILER_ATTRIBUTE(visibility("default"))
|
|
# endif
|
|
#endif
|
|
|
|
#if !defined(ROCPROFILER_HIDDEN_API)
|
|
# if defined(_MSC_VER)
|
|
# define ROCPROFILER_HIDDEN_API
|
|
# else
|
|
# define ROCPROFILER_HIDDEN_API ROCPROFILER_ATTRIBUTE(visibility("hidden"))
|
|
# endif
|
|
#endif
|
|
|
|
#if !defined(ROCPROFILER_EXPORT_DECORATOR)
|
|
# define ROCPROFILER_EXPORT_DECORATOR ROCPROFILER_PUBLIC_API
|
|
#endif
|
|
|
|
#if !defined(ROCPROFILER_IMPORT_DECORATOR)
|
|
# if defined(_MSC_VER)
|
|
# define ROCPROFILER_IMPORT_DECORATOR ROCPROFILER_ATTRIBUTE(dllimport)
|
|
# else
|
|
# define ROCPROFILER_IMPORT_DECORATOR
|
|
# endif
|
|
#endif
|
|
|
|
#define ROCPROFILER_EXPORT ROCPROFILER_EXPORT_DECORATOR
|
|
#define ROCPROFILER_IMPORT ROCPROFILER_IMPORT_DECORATOR
|
|
|
|
#if !defined(ROCPROFILER_API)
|
|
# if defined(rocprofiler_EXPORTS)
|
|
# define ROCPROFILER_API ROCPROFILER_EXPORT
|
|
# else
|
|
# define ROCPROFILER_API ROCPROFILER_IMPORT
|
|
# endif
|
|
#endif
|
|
|
|
#if defined(__has_attribute)
|
|
# if __has_attribute(nonnull)
|
|
# define ROCPROFILER_NONNULL(...) __attribute__((nonnull(__VA_ARGS__)))
|
|
# else
|
|
# define ROCPROFILER_NONNULL(...)
|
|
# endif
|
|
#else
|
|
# if defined(__GNUC__)
|
|
# define ROCPROFILER_NONNULL(...) __attribute__((nonnull(__VA_ARGS__)))
|
|
# else
|
|
# define ROCPROFILER_NONNULL(...)
|
|
# endif
|
|
#endif
|
|
|
|
#if __cplusplus >= 201103L // C++11
|
|
/* c++11 allows extended initializer lists. */
|
|
# define ROCPROFILER_HANDLE_LITERAL(type, value) (type{value})
|
|
#elif __STDC_VERSION__ >= 199901L
|
|
/* c99 allows compound literals. */
|
|
# define ROCPROFILER_HANDLE_LITERAL(type, value) ((type){value})
|
|
#else
|
|
# define ROCPROFILER_HANDLE_LITERAL(type, value) \
|
|
{ \
|
|
value \
|
|
}
|
|
#endif
|