cpp-common/bt2c: change some `static inline` functions to just `inline`
[babeltrace.git] / src / cpp-common / bt2c / endian.hpp
CommitLineData
df34434f
PP
1/*
2 * Copyright (c) 2022 Philippe Proulx <pproulx@efficios.com>
3 *
4 * SPDX-License-Identifier: MIT
5 */
6
094bf3f2
SM
7#ifndef BABELTRACE_CPP_COMMON_BT2C_ENDIAN_HPP
8#define BABELTRACE_CPP_COMMON_BT2C_ENDIAN_HPP
df34434f
PP
9
10#include <cstdint>
11
83ad336c 12#include "compat/endian.h" /* IWYU pragma: keep */
df34434f 13
094bf3f2 14namespace bt2c {
df34434f 15
485083ae 16inline std::uint8_t littleEndianToNative(const std::uint8_t val) noexcept
df34434f
PP
17{
18 return val;
19}
20
485083ae 21inline std::uint8_t bigEndianToNative(const std::uint8_t val) noexcept
df34434f
PP
22{
23 return val;
24}
25
485083ae 26inline std::int8_t littleEndianToNative(const std::int8_t val) noexcept
df34434f
PP
27{
28 return val;
29}
30
485083ae 31inline std::int8_t bigEndianToNative(const std::int8_t val) noexcept
df34434f
PP
32{
33 return val;
34}
35
485083ae 36inline std::uint16_t littleEndianToNative(const std::uint16_t val) noexcept
df34434f
PP
37{
38 return static_cast<std::uint16_t>(le16toh(val));
39}
40
485083ae 41inline std::uint16_t bigEndianToNative(const std::uint16_t val) noexcept
df34434f
PP
42{
43 return static_cast<std::uint16_t>(be16toh(val));
44}
45
485083ae 46inline std::int16_t littleEndianToNative(const std::int16_t val) noexcept
df34434f
PP
47{
48 return static_cast<std::int16_t>(littleEndianToNative(static_cast<std::uint16_t>(val)));
49}
50
485083ae 51inline std::int16_t bigEndianToNative(const std::int16_t val) noexcept
df34434f
PP
52{
53 return static_cast<std::int16_t>(bigEndianToNative(static_cast<std::uint16_t>(val)));
54}
55
485083ae 56inline std::uint32_t littleEndianToNative(const std::uint32_t val) noexcept
df34434f
PP
57{
58 return static_cast<std::uint32_t>(le32toh(val));
59}
60
485083ae 61inline std::uint32_t bigEndianToNative(const std::uint32_t val) noexcept
df34434f
PP
62{
63 return static_cast<std::uint32_t>(be32toh(val));
64}
65
485083ae 66inline std::int32_t littleEndianToNative(const std::int32_t val) noexcept
df34434f
PP
67{
68 return static_cast<std::int32_t>(littleEndianToNative(static_cast<std::uint32_t>(val)));
69}
70
485083ae 71inline std::int32_t bigEndianToNative(const std::int32_t val) noexcept
df34434f
PP
72{
73 return static_cast<std::int32_t>(bigEndianToNative(static_cast<std::uint32_t>(val)));
74}
75
485083ae 76inline std::uint64_t littleEndianToNative(const std::uint64_t val) noexcept
df34434f
PP
77{
78 return static_cast<std::uint64_t>(le64toh(val));
79}
80
485083ae 81inline std::uint64_t bigEndianToNative(const std::uint64_t val) noexcept
df34434f
PP
82{
83 return static_cast<std::uint64_t>(be64toh(val));
84}
85
485083ae 86inline std::int64_t littleEndianToNative(const std::int64_t val) noexcept
df34434f
PP
87{
88 return static_cast<std::int64_t>(littleEndianToNative(static_cast<std::uint64_t>(val)));
89}
90
485083ae 91inline std::int64_t bigEndianToNative(const std::int64_t val) noexcept
df34434f
PP
92{
93 return static_cast<std::int64_t>(bigEndianToNative(static_cast<std::uint64_t>(val)));
94}
95
094bf3f2 96} /* namespace bt2c */
df34434f 97
094bf3f2 98#endif /* BABELTRACE_CPP_COMMON_BT2C_ENDIAN_HPP */
This page took 0.035837 seconds and 4 git commands to generate.