mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-18 19:30:15 +00:00
45 lines
1.3 KiB
C++
45 lines
1.3 KiB
C++
//
|
|
// MemoryPacker.hpp
|
|
// Clock Signal
|
|
//
|
|
// Created by Thomas Harte on 03/05/2019.
|
|
// Copyright © 2019 Thomas Harte. All rights reserved.
|
|
//
|
|
|
|
#ifndef MemoryPacker_hpp
|
|
#define MemoryPacker_hpp
|
|
|
|
#include <cstdint>
|
|
#include <vector>
|
|
|
|
namespace Memory {
|
|
|
|
/*!
|
|
Copies the bytes from @c source into @c target, interpreting them
|
|
as big-endian 16-bit data.
|
|
*/
|
|
void PackBigEndian16(const std::vector<uint8_t> &source, uint16_t *target);
|
|
|
|
/*!
|
|
Copies the bytes from @c source to @c target, interpreting them as
|
|
big-endian 16-bit data, and writing them as host-endian 16-bit data.
|
|
*/
|
|
void PackBigEndian16(const std::vector<uint8_t> &source, uint8_t *target);
|
|
|
|
/*!
|
|
Copies the bytes from @c source into @c target, interpreting them
|
|
as big-endian 16-bit data. @c target will be resized to the proper size
|
|
exactly to contain the contents of @c source.
|
|
*/
|
|
void PackBigEndian16(const std::vector<uint8_t> &source, std::vector<uint16_t> &target);
|
|
|
|
/*!
|
|
Copies the bytes from @c source into @c target, interpreting them
|
|
as big-endian 16-bit data and writing them as host-endian 16-bit data.
|
|
@c target will be resized to the proper size exactly to contain the contents of @c source.
|
|
*/
|
|
void PackBigEndian16(const std::vector<uint8_t> &source, std::vector<uint8_t> &target);
|
|
|
|
}
|
|
#endif /* MemoryPacker_hpp */
|