openMSX
Classes | Namespaces | Typedefs | Functions | Variables
endian.hh File Reference
#include "inline.hh"
#include "narrow.hh"
#include <array>
#include <bit>
#include <cassert>
#include <concepts>
#include <cstdint>
#include <cstring>
Include dependency graph for endian.hh:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Endian::Ident
 
struct  Endian::ByteSwap
 
class  Endian::EndianT< T, Op >
 
struct  Endian::ConvBig< true >
 
struct  Endian::ConvBig< false >
 
struct  Endian::ConvLittle< true >
 
struct  Endian::ConvLittle< false >
 
class  Endian::UA_B16
 
class  Endian::UA_L16
 
class  Endian::UA_L24
 
class  Endian::UA_B32
 
class  Endian::UA_L32
 
struct  Endian::Little< uint8_t >
 
struct  Endian::Little< uint16_t >
 
struct  Endian::Little< uint32_t >
 
struct  Endian::Big< uint8_t >
 
struct  Endian::Big< uint16_t >
 
struct  Endian::Big< uint32_t >
 

Namespaces

namespace  Endian
 

Typedefs

using Endian::B16 = EndianT< uint16_t, ConvBig< BIG > >
 
using Endian::L16 = EndianT< uint16_t, ConvLittle< BIG > >
 
using Endian::B32 = EndianT< uint32_t, ConvBig< BIG > >
 
using Endian::L32 = EndianT< uint32_t, ConvLittle< BIG > >
 
using Endian::B64 = EndianT< uint64_t, ConvBig< BIG > >
 
using Endian::L64 = EndianT< uint64_t, ConvLittle< BIG > >
 

Functions

void Endian::writeB16 (void *p, uint16_t x)
 
void Endian::writeL16 (void *p, uint16_t x)
 
void Endian::writeB32 (void *p, uint32_t x)
 
void Endian::writeL32 (void *p, uint32_t x)
 
uint16_t Endian::readB16 (const void *p)
 
uint16_t Endian::readL16 (const void *p)
 
uint32_t Endian::readB32 (const void *p)
 
uint32_t Endian::readL32 (const void *p)
 
ALWAYS_INLINE void Endian::write_UA_B16 (void *p, uint16_t x)
 
ALWAYS_INLINE void Endian::write_UA_L16 (void *p, uint16_t x)
 
ALWAYS_INLINE void Endian::write_UA_L24 (void *p, uint32_t x)
 
ALWAYS_INLINE void Endian::write_UA_B32 (void *p, uint32_t x)
 
ALWAYS_INLINE void Endian::write_UA_L32 (void *p, uint32_t x)
 
ALWAYS_INLINE void Endian::write_UA_B64 (void *p, uint64_t x)
 
ALWAYS_INLINE void Endian::write_UA_L64 (void *p, uint64_t x)
 
ALWAYS_INLINE uint16_t Endian::read_UA_B16 (const void *p)
 
ALWAYS_INLINE uint16_t Endian::read_UA_L16 (const void *p)
 
ALWAYS_INLINE uint32_t Endian::read_UA_L24 (const void *p)
 
ALWAYS_INLINE uint32_t Endian::read_UA_B32 (const void *p)
 
ALWAYS_INLINE uint32_t Endian::read_UA_L32 (const void *p)
 
ALWAYS_INLINE uint64_t Endian::read_UA_B64 (const void *p)
 
ALWAYS_INLINE uint64_t Endian::read_UA_L64 (const void *p)
 

Variables

constexpr bool Endian::BIG = std::endian::native == std::endian::big
 
constexpr bool Endian::LITTLE = std::endian::native == std::endian::little