23#ifndef PROTOCORE_ENDIAN_H
24#define PROTOCORE_ENDIAN_H
35 p[1] = (uint8_t)(v >> 8);
43 p[1] = (uint8_t)(v >> 8);
44 p[2] = (uint8_t)(v >> 16);
45 p[3] = (uint8_t)(v >> 24);
52 for (
int i = 0; i < 8; i++)
54 p[i] = (uint8_t)(v >> (8 * i));
62 return (uint16_t)((uint16_t)p[0] | ((uint16_t)p[1] << 8));
68 return (uint32_t)p[0] | ((uint32_t)p[1] << 8) | ((uint32_t)p[2] << 16) | ((uint32_t)p[3] << 24);
75 for (
int i = 0; i < 8; i++)
77 v |= (uint64_t)p[i] << (8 * i);
87 p[0] = (uint8_t)(v >> 8);
95 p[0] = (uint8_t)(v >> 24);
96 p[1] = (uint8_t)(v >> 16);
97 p[2] = (uint8_t)(v >> 8);
105 for (
int i = 0; i < 8; i++)
107 p[i] = (uint8_t)(v >> (8 * (7 - i)));
115 return (uint16_t)(((uint16_t)p[0] << 8) | (uint16_t)p[1]);
121 return ((uint32_t)p[0] << 24) | ((uint32_t)p[1] << 16) | ((uint32_t)p[2] << 8) | (uint32_t)p[3];
128 for (
int i = 0; i < 8; i++)
size_t pc_wr64be(uint8_t *p, uint64_t v)
Write v big-endian at p.
uint32_t pc_rd32be(const uint8_t *p)
Read a big-endian u32 at p.
size_t pc_wr64le(uint8_t *p, uint64_t v)
Write v little-endian at p.
uint64_t pc_rd64le(const uint8_t *p)
Read a little-endian u64 at p.
uint64_t pc_rd64be(const uint8_t *p)
Read a big-endian u64 at p.
uint32_t pc_rd32le(const uint8_t *p)
Read a little-endian u32 at p.
size_t pc_wr16be(uint8_t *p, uint16_t v)
Write v big-endian at p.
size_t pc_wr32le(uint8_t *p, uint32_t v)
Write v little-endian at p.
uint16_t pc_rd16le(const uint8_t *p)
Read a little-endian u16 at p.
uint16_t pc_rd16be(const uint8_t *p)
Read a big-endian u16 at p.
size_t pc_wr16le(uint8_t *p, uint16_t v)
Write v little-endian at p.
size_t pc_wr32be(uint8_t *p, uint32_t v)
Write v big-endian at p.