nl::Weave::Encoding::LittleEndian

Este espacio de nombres proporciona funciones para lo siguiente:

Resumen

  • Reordenamiento de bytes, en relación con el sistema host, por valor de valores ordenados de bytes Little endian para tipos de 16, 32 y 64 bits
  • Proporcionar de forma segura accesos sencillos y eficientes asignados a la memoria, posiblemente a ubicaciones de memoria no alineadas, con o sin reordenamiento de bytes, a cantidades ordenadas de bit endian de 8, 16, 32 y 64 bits, con y sin administración del puntero.

En los sistemas host Little Endian, no se producirá ningún reordenamiento real de bytes. En otros sistemas, el reordenamiento de bytes se realiza según corresponda.

remotas

Get16(const uint8_t *p)
uint16_t
Realiza una lectura de memoria, potencialmente no alineada, del valor de 16 bits ordenado de 16 bits de Little endian desde la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.
Get32(const uint8_t *p)
uint32_t
Realiza una lectura de memoria, potencialmente no alineada, del valor de 32 bits ordenado de byte Little endian desde la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.
Get64(const uint8_t *p)
uint64_t
Realiza una lectura de memoria, potencialmente no alineada, del valor de 64 bits ordenado de byte Little endian desde la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.
HostSwap16(uint16_t v)
uint16_t
De forma condicional, según sea necesario para el sistema de destino, realiza un intercambio de orden de bytes por valor del valor de 16 bits especificado, que se supone que está en un orden de bytes en formato small endian para el sistema de destino (es decir,
HostSwap32(uint32_t v)
uint32_t
De forma condicional, según sea necesario para el sistema de destino, genera un intercambio de orden de bytes por el valor del valor de 32 bits especificado, que se supone que está en un orden de bytes en formato small endian para el sistema de destino (es decir,
HostSwap64(uint64_t v)
uint64_t
De forma condicional, según sea necesario para el sistema de destino, se realiza un intercambio de orden de bytes por valor del valor de 64 bits especificado, que se supone que está en un orden de bytes en formato small endian para el sistema de destino (es decir,
Put16(uint8_t *p, uint16_t v)
void
Realiza una escritura en la memoria, potencialmente no alineada, del valor de 16 bits ordenado de los bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes small endian.
Put32(uint8_t *p, uint32_t v)
void
Realiza una escritura de memoria, potencialmente no alineada, del valor de 32 bits ordenado de bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes small endian.
Put64(uint8_t *p, uint64_t v)
void
Realiza una escritura en la memoria, potencialmente no alineada, del valor de 64 bits ordenado de los bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes Little endian.
Read16(uint8_t *& p)
uint16_t
Realiza una lectura de memoria, potencialmente no alineada, del valor de 16 bits ordenado de 16 bits de la dirección del puntero especificado, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 16 bits (2 bytes).
Read16(const uint8_t *& p)
uint16_t
Realiza una lectura de memoria, potencialmente no alineada, del valor de 16 bits ordenado de 16 bits de la dirección del puntero especificado, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 16 bits (2 bytes).
Read32(uint8_t *& p)
uint32_t
Realiza una lectura de memoria, potencialmente no alineada, del valor de 32 bits ordenado de 32 bits de la dirección del puntero especificada, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 32 bits (4 bytes).
Read32(const uint8_t *& p)
uint32_t
Realiza una lectura de memoria, potencialmente no alineada, del valor de 32 bits ordenado de 32 bits de la dirección del puntero especificada, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 32 bits (4 bytes).
Read64(uint8_t *& p)
uint64_t
Realiza una lectura de memoria, potencialmente no alineada, del valor de 64 bits ordenado de 64 bits pequeño de la dirección especificada, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 64 bits (8 bytes).
Read64(const uint8_t *& p)
uint64_t
Realiza una lectura de memoria, potencialmente no alineada, del valor de 64 bits ordenado de 64 bits pequeño de la dirección especificada, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 64 bits (8 bytes).
Write16(uint8_t *& p, uint16_t v)
void
Realiza una escritura en la memoria, potencialmente no alineada, del valor de 16 bits ordenado de los bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes small endian.
Write32(uint8_t *& p, uint32_t v)
void
Realiza una escritura de memoria, potencialmente no alineada, del valor de 32 bits ordenado de bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes small endian.
Write64(uint8_t *& p, uint64_t v)
void
Realiza una escritura en la memoria, potencialmente no alineada, del valor de 64 bits ordenado de los bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes Little endian.

remotas

Get16

uint16_t Get16(
  const uint8_t *p
)

Realiza una lectura de memoria, potencialmente no alineada, del valor de 16 bits ordenado de 16 bits de Little endian desde la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.

Detalles
Parámetros
[in] p
Una dirección de puntero, potencialmente sin alinear, desde la que se lee el valor ordenado de 16 bits de Little Endian.
Qué muestra
El valor de 16 bits en la dirección del puntero especificada (si es necesario, el byte reordenado)

Get32

uint32_t Get32(
  const uint8_t *p
)

Realiza una lectura de memoria, potencialmente no alineada, del valor de 32 bits ordenado de byte Little endian desde la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.

Detalles
Parámetros
[in] p
Una dirección de puntero, posiblemente sin alinear, para leer el valor ordenado de 32 bits de Little Endian.
Qué muestra
El valor de 32 bits en la dirección del puntero especificada (si es necesario, el byte reordenado)

Get64

uint64_t Get64(
  const uint8_t *p
)

Realiza una lectura de memoria, potencialmente no alineada, del valor de 64 bits ordenado de byte Little endian desde la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino.

Detalles
Parámetros
[in] p
Una dirección de puntero, posiblemente sin alinear, para leer el valor ordenado de 64 bits de Little Endian.
Qué muestra
El valor de 64 bits en la dirección del puntero especificada (si es necesario, el byte reordenado)

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

De forma condicional, según sea necesario para el sistema de destino, realiza un intercambio de orden de bytes por valor del valor de 16 bits especificado, que se supone que está en un orden de bytes en formato small endian para el sistema de destino (es decir,

host) en el orden de bytes.

En consecuencia, en los sistemas de destino Little endian, esta es una no-op y en los sistemas de destino big endian, se realiza un reordenamiento.

Detalles
Parámetros
[in] v
Valor de 16 bits que se intercambiará por orden de bytes.
Qué muestra
El valor de entrada, si es necesario, el pedido de bytes intercambiado.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

De forma condicional, según sea necesario para el sistema de destino, genera un intercambio de orden de bytes por el valor del valor de 32 bits especificado, que se supone que está en un orden de bytes en formato small endian para el sistema de destino (es decir,

host) en el orden de bytes.

En consecuencia, en los sistemas de destino Little endian, esta es una no-op y en los sistemas de destino big endian, se realiza un reordenamiento.

Detalles
Parámetros
[in] v
Valor de 32 bits que se intercambiará por orden de bytes.
Qué muestra
El valor de entrada, si es necesario, el pedido de bytes intercambiado.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

De forma condicional, según sea necesario para el sistema de destino, se realiza un intercambio de orden de bytes por valor del valor de 64 bits especificado, que se supone que está en un orden de bytes en formato small endian para el sistema de destino (es decir,

host) en el orden de bytes.

En consecuencia, en los sistemas de destino Little endian, esta es una no-op y en los sistemas de destino big endian, se realiza un reordenamiento.

Detalles
Parámetros
[in] v
Valor de 64 bits que se intercambiará por orden de bytes.
Qué muestra
El valor de entrada, si es necesario, el pedido de bytes intercambiado.

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

Realiza una escritura en la memoria, potencialmente no alineada, del valor de 16 bits ordenado de los bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes small endian.

Detalles
Parámetros
[in] p
Una dirección de puntero, potencialmente no alineada, para escribir el valor de 16 bits ordenado de los bytes del sistema de destino en el orden de bytes small endian.
[in] v
Valor de 16 bits para escribir (si es necesario) el reordenamiento de bytes.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

Realiza una escritura de memoria, potencialmente no alineada, del valor de 32 bits ordenado de bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes small endian.

Detalles
Parámetros
[in] p
Una dirección de puntero, potencialmente no alineada, para escribir el valor de 32 bits ordenado de bytes del sistema de destino en orden de bytes small endian.
[in] v
Valor de 32 bits para escribir (si es necesario) el reordenamiento de bytes.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

Realiza una escritura en la memoria, potencialmente no alineada, del valor de 64 bits ordenado de los bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes Little endian.

Detalles
Parámetros
[in] p
Una dirección de puntero, potencialmente no alineada, para escribir el valor de 64 bits ordenado de los bytes del sistema de destino en el orden de bytes small endian.
[in] v
Valor de 64 bits que se debe escribir (si es necesario) reordenar.

Read16

uint16_t Read16(
  uint8_t *& p
)

Realiza una lectura de memoria, potencialmente no alineada, del valor de 16 bits ordenado de 16 bits de la dirección del puntero especificado, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 16 bits (2 bytes).

Detalles
Parámetros
[in,out] p
Referencia a la dirección de un puntero, potencialmente no alineada, para leer el valor ordenado de bytes de 16 bits de Little endian y, luego, aumentarlo en 16 bits (2 bytes).
Qué muestra
El valor de 16 bits en la dirección del puntero especificada, si es necesario, intercambió el orden de bytes.

Read16

uint16_t Read16(
  const uint8_t *& p
)

Realiza una lectura de memoria, potencialmente no alineada, del valor de 16 bits ordenado de 16 bits de la dirección del puntero especificado, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 16 bits (2 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección de puntero constante, potencialmente no alineada, para leer el valor ordenado de bytes Little endian de 16 bits y, luego, aumentarlo 16 bits (2 bytes).
Qué muestra
El valor de 16 bits en la dirección del puntero especificada, si es necesario, intercambió el orden de bytes.

Read32

uint32_t Read32(
  uint8_t *& p
)

Realiza una lectura de memoria, potencialmente no alineada, del valor de 32 bits ordenado de 32 bits de la dirección del puntero especificada, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 32 bits (4 bytes).

Detalles
Parámetros
[in,out] p
Referencia a la dirección de un puntero, potencialmente no alineada, para leer el valor ordenado de bytes de 32 bits de Little endian y, luego, aumentarlo en 32 bits (4 bytes).
Qué muestra
El valor de 32 bits en la dirección del puntero especificada, si es necesario, intercambió el orden de bytes.

Read32

uint32_t Read32(
  const uint8_t *& p
)

Realiza una lectura de memoria, potencialmente no alineada, del valor de 32 bits ordenado de 32 bits de la dirección del puntero especificada, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 32 bits (4 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección de puntero constante, potencialmente no alineada, para leer el valor ordenado de bytes Little endian de 32 bits y, luego, aumentarlo en 32 bits (4 bytes).
Qué muestra
El valor de 32 bits en la dirección del puntero especificada, si es necesario, intercambió el orden de bytes.

Read64

uint64_t Read64(
  uint8_t *& p
)

Realiza una lectura de memoria, potencialmente no alineada, del valor de 64 bits ordenado de 64 bits pequeño de la dirección especificada, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 64 bits (8 bytes).

Detalles
Parámetros
[in,out] p
Referencia a la dirección de un puntero, posiblemente desalineada, para leer el valor ordenado de bytes small endian de 64 bits y, luego, aumentarlo en 64 bits (8 bytes).
Qué muestra
El valor de 64 bits en la dirección del puntero especificada, si es necesario, intercambió el orden de bytes.

Read64

uint64_t Read64(
  const uint8_t *& p
)

Realiza una lectura de memoria, potencialmente no alineada, del valor de 64 bits ordenado de 64 bits pequeño de la dirección especificada, realiza un reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en el orden de bytes del sistema de destino y aumenta el puntero en 64 bits (8 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección de puntero constante, potencialmente no alineada, para leer el valor ordenado de bytes Little endian de 64 bits y, luego, aumentarlo en 64 bits (8 bytes).
Qué muestra
El valor de 64 bits en la dirección del puntero especificada, si es necesario, intercambió el orden de bytes.

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Realiza una escritura en la memoria, potencialmente no alineada, del valor de 16 bits ordenado de los bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes small endian.

Detalles
Parámetros
[in] p
Referencia a la dirección de un puntero, posiblemente desalineada, para escribir el byte del sistema de destino ordenado de 16 bits en orden de bytes small endian y, luego, el incremento en 16 bits (2 bytes).
[in] v
El valor de 16 bits para escribir, si es necesario, el orden de bytes intercambiado.

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

Realiza una escritura de memoria, potencialmente no alineada, del valor de 32 bits ordenado de bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes small endian.

Detalles
Parámetros
[in] p
Es una referencia a la dirección de un puntero, posiblemente desalineada, para escribir el valor de 32 bits ordenado de los bytes del sistema de destino en un orden de bytes small endian y, luego, el incremento en 32 bits (4 bytes).
[in] v
El valor de 32 bits para escribir, si es necesario, el orden de bytes intercambiado.

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

Realiza una escritura en la memoria, potencialmente no alineada, del valor de 64 bits ordenado de los bytes del sistema de destino a la dirección del puntero especificada y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes Little endian.

Detalles
Parámetros
[in] p
Es una referencia a la dirección de un puntero, posiblemente desalineada, para escribir el byte del sistema de destino ordenado de 64 bits en un orden de bytes small endian y, luego, el incremento en 64 bits (8 bytes).
[in] v
Valor de 64 bits para escribir, si es necesario, el orden de bytes intercambiado.