// Copyright (c) Advanced Micro Devices, Inc. // SPDX-License-Identifier: MIT #pragma once #include "common/defines.h" #include "core/common.hpp" #include "core/components/fwd.hpp" #include "library/thread_data.hpp" #include #include #include #include #include namespace rocprofsys { namespace causal { struct delay : comp::empty_base { using value_type = void; static void setup(); static void process(); static void credit(); static void preblock(); static void postblock(std::int64_t); static std::int64_t sync(); static std::atomic& get_global(); static std::int64_t& get_local(std::int64_t _tid = threading::get_id()); static bool is_local_available(); static std::int64_t get(std::int64_t _tid = threading::get_id()); static std::uint64_t compute_total_delay(std::uint64_t); }; } // namespace causal } // namespace rocprofsys