detail/utils.hpp
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2025, NVIDIA CORPORATION.
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 #pragma once
6 
7 #include <cstring>
8 
9 namespace kvikio::detail {
10 
18 [[nodiscard]] std::size_t align_up(std::size_t value, std::size_t alignment);
19 
27 [[nodiscard]] void* align_up(void* addr, std::size_t alignment);
28 
36 [[nodiscard]] std::size_t align_down(std::size_t value, std::size_t alignment);
37 
45 [[nodiscard]] void* align_down(void* addr, std::size_t alignment);
46 
54 bool is_aligned(std::size_t value, std::size_t alignment);
55 
63 bool is_aligned(void* addr, std::size_t alignment);
64 
65 } // namespace kvikio::detail