nl::Weave::Encoding::LittleEndian

Este espacio de nombres proporciona funciones para lo siguiente:

Resumen

  • Realizar el reordenamiento de bytes, en relación con el sistema host, por valor de valores ordenados de bytes de tipo endian para tipos de 16, 32 y 64 bits.
  • Realizar de forma segura accesos simples y eficientes a la memoria asignada, potencialmente a ubicaciones de memoria no alineadas, con o sin reordenamiento de bytes, a cantidades ordenadas de bytes de bit endian de 8, 16, 32 y 64 bits, con y sin administración de punteros.

En los sistemas host de tipo endian poco, no se producirá un reordenamiento real de bytes. En otros sistemas, el reordenamiento de bytes se realiza según corresponda.

Funciones

Get16(const uint8_t *p)
uint16_t
Realiza una lectura de memoria, posiblemente no alineada, del valor de 16 bits ordenado en bytes de Little endian a partir de la dirección del puntero especificado, 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 posiblemente no alineada del valor de 32 bits ordenado por bytes de endian a partir de la dirección del puntero especificado 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 en la memoria, posiblemente no alineada, del valor de 64 bits ordenado por bytes de Little endian a partir de la dirección del puntero especificado, 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
Esto realiza condicionalmente, según sea necesario para el sistema de destino, un intercambio de orden de bytes por valor del valor de 16 bits especificado, que se supone que tiene un orden de bytes de tipo endian para el sistema de destino (es decir,
HostSwap32(uint32_t v)
uint32_t
Esto realiza condicionalmente, según sea necesario para el sistema de destino, un intercambio de orden de bytes por valor del valor de 32 bits especificado, que se supone que tiene un orden de bytes de tipo endian para el sistema de destino (es decir,
HostSwap64(uint64_t v)
uint64_t
Esto realiza condicionalmente, según sea necesario para el sistema de destino, un intercambio de orden de bytes por valor del valor de 64 bits especificado, que se supone que tiene un orden de bytes de tipo endian para el sistema de destino (es decir,
Put16(uint8_t *p, uint16_t v)
void
Realiza una escritura en la memoria, posiblemente no alineada, del valor de 16 bits ordenado por bytes del sistema de destino en la dirección del puntero especificado y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes bit a extremo.
Put32(uint8_t *p, uint32_t v)
void
Realiza una escritura en la memoria, posiblemente no alineada, del valor de 32 bits ordenado por bytes del sistema de destino en la dirección del puntero especificado y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes bitian endian.
Put64(uint8_t *p, uint64_t v)
void
Realiza una escritura en la memoria, posiblemente no alineada, del valor de 64 bits ordenado por bytes del sistema de destino a la dirección del puntero especificado y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes bit a extremo.
Read16(uint8_t *& p)
uint16_t
Realiza una lectura de memoria potencialmente no alineada del valor de 16 bits ordenado por bytes de endian desde la dirección del puntero especificado, 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 y aumenta el puntero en 16 bits (2 bytes).
Read16(const uint8_t *& p)
uint16_t
Realiza una lectura de memoria posiblemente no alineada del valor de 16 bits ordenado por bytes de Little endian a partir de la dirección del puntero especificado, 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 y aumenta el puntero en 16 bits (2 bytes).
Read32(uint8_t *& p)
uint32_t
Realiza una lectura de memoria posiblemente no alineada del valor de 32 bits ordenado por bytes de Little endian a partir de la dirección del puntero especificado, 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 y aumenta el puntero en 32 bits (4 bytes).
Read32(const uint8_t *& p)
uint32_t
Realiza una lectura de memoria posiblemente no alineada del valor de 32 bits ordenado por bytes de Little endian a partir de la dirección del puntero especificado, 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 y aumenta el puntero en 32 bits (4 bytes).
Read64(uint8_t *& p)
uint64_t
Realiza una lectura de memoria posiblemente no alineada del valor de 64 bits ordenado por bytes de Little endian a partir de la dirección del puntero especificado, 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 y aumenta el puntero en 64 bits (8 bytes).
Read64(const uint8_t *& p)
uint64_t
Realiza una lectura de memoria posiblemente no alineada del valor de 64 bits ordenado por bytes de endian desde la dirección del puntero especificado, 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 y aumenta el puntero en 8 bytes (8 bytes).
Write16(uint8_t *& p, uint16_t v)
void
Realiza una escritura en la memoria, posiblemente no alineada, del valor de 16 bits ordenado por bytes del sistema de destino en la dirección del puntero especificado y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes de tipo Little endian.
Write32(uint8_t *& p, uint32_t v)
void
Realiza una escritura en la memoria, posiblemente no alineada, del valor de 32 bits ordenado por bytes del sistema de destino en la dirección del puntero especificado y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes bitian endian.
Write64(uint8_t *& p, uint64_t v)
void
Realiza una escritura en la memoria, posiblemente no alineada, del valor de 64 bits ordenado por bytes del sistema de destino en la dirección del puntero especificado y reordena los bytes, según sea necesario, para que el sistema de destino coloque el valor en orden de bytes de tipo Little endian.

Funciones

Get16

uint16_t Get16(
  const uint8_t *p
)

Realiza una lectura de memoria, posiblemente no alineada, del valor de 16 bits ordenado en bytes de Little endian a partir de la dirección del puntero especificado, 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 desalineada, desde la que se leerá el valor ordenado de bytes de bit endian de 16 bits.
Resultado que se muestra
El valor de 16 bits en la dirección del puntero especificada, si es necesario, se reordenan los bytes.

Get32

uint32_t Get32(
  const uint8_t *p
)

Realiza una lectura de memoria posiblemente no alineada del valor de 32 bits ordenado por bytes de endian a partir de la dirección del puntero especificado 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 desalineada, desde la que se leerá el valor ordenado de bytes de Little Endian de 32 bits.
Resultado que se muestra
El valor de 32 bits en la dirección del puntero especificada, si es necesario, se reordena en bytes.

Get64

uint64_t Get64(
  const uint8_t *p
)

Realiza una lectura en la memoria, posiblemente no alineada, del valor de 64 bits ordenado por bytes de Little endian a partir de la dirección del puntero especificado, 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 desalineada, desde la que se leerá el valor ordenado de bytes de bit endian de 64 bits.
Resultado que se muestra
El valor de 64 bits en la dirección del puntero especificada, si es necesario, se reordenan los bytes.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

Esto realiza condicionalmente, según sea necesario para el sistema de destino, un intercambio de orden de bytes por valor del valor de 16 bits especificado, que se supone que tiene un orden de bytes de tipo endian para el sistema de destino (es decir,

host).

En consecuencia, en los sistemas de destino pequeñas y endian, esto es una no-op y, en los sistemas de destino grandes, se realiza un reordenamiento.

Detalles
Parámetros
[in] v
El valor de 16 bits que se intercambiará en el orden de bytes.
Resultado que se muestra
El valor de entrada, si es necesario, el orden de bytes cambiado.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

Esto realiza condicionalmente, según sea necesario para el sistema de destino, un intercambio de orden de bytes por valor del valor de 32 bits especificado, que se supone que tiene un orden de bytes de tipo endian para el sistema de destino (es decir,

host).

En consecuencia, en los sistemas de destino pequeñas y endian, esto es una no-op y, en los sistemas de destino grandes, se realiza un reordenamiento.

Detalles
Parámetros
[in] v
El valor de 32 bits que se cambiará el orden de bytes.
Resultado que se muestra
El valor de entrada, si es necesario, el orden de bytes cambiado.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

Esto realiza condicionalmente, según sea necesario para el sistema de destino, un intercambio de orden de bytes por valor del valor de 64 bits especificado, que se supone que tiene un orden de bytes de tipo endian para el sistema de destino (es decir,

host).

En consecuencia, en los sistemas de destino pequeñas y endian, esto es una no-op y, en los sistemas de destino grandes, se realiza un reordenamiento.

Detalles
Parámetros
[in] v
El valor de 64 bits que se intercambiará en el orden de bytes.
Resultado que se muestra
El valor de entrada, si es necesario, el orden de bytes cambiado.

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

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

Detalles
Parámetros
[in] p
Una dirección de puntero, potencialmente desalineada, para escribir el valor de 16 bits ordenado por bytes del sistema de destino en orden de bytes poco endian.
[in] v
El valor de 16 bits que se debe escribir, si es necesario, se reordena en bytes.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

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

Detalles
Parámetros
[in] p
Una dirección de puntero, potencialmente desalineada, para escribir el valor de 32 bits ordenado por bytes del sistema de destino en orden de bytes poco endian.
[in] v
El valor de 32 bits que se debe escribir, si es necesario, se reordena en bytes.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

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

Detalles
Parámetros
[in] p
Una dirección de puntero, potencialmente desalineada, para escribir el valor de 64 bits ordenado por bytes del sistema de destino en orden de bytes poco endian.
[in] v
El valor de 64 bits que se debe escribir, si es necesario, se reordena en bytes.

Read16

uint16_t Read16(
  uint8_t *& p
)

Realiza una lectura de memoria potencialmente no alineada del valor de 16 bits ordenado por bytes de endian desde la dirección del puntero especificado, 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 y aumenta el puntero en 16 bits (2 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a la dirección de un puntero, posiblemente no alineada, para leer el valor ordenado de bytes de tipo endian de 16 bits desde y, luego, aumentarlo en 16 bits (2 bytes).
Resultado que se muestra
El valor de 16 bits en la dirección del puntero especificada, si es necesario. Se cambió 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 por bytes de endian desde la dirección del puntero especificado, 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 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 de Little endian de 16 bits y, luego, aumentarlo en 16 bits (2 bytes).
Resultado que se muestra
El valor de 16 bits en la dirección del puntero especificada, si es necesario. Se cambió el orden de bytes.

Read32

uint32_t Read32(
  uint8_t *& p
)

Realiza una lectura de memoria posiblemente no alineada del valor de 32 bits ordenado por bytes de Little endian a partir de la dirección del puntero especificado, 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 y aumenta el puntero en 32 bits (4 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a la dirección de un puntero, posiblemente no alineada, para leer el valor ordenado de bytes de tipo endian de 32 bits desde y, luego, aumentarlo en 32 bits (4 bytes).
Resultado que se muestra
El valor de 32 bits en la dirección del puntero especificada, si es necesario. Se cambió el orden de bytes.

Read32

uint32_t Read32(
  const uint8_t *& p
)

Realiza una lectura de memoria posiblemente no alineada del valor de 32 bits ordenado por bytes de Little endian a partir de la dirección del puntero especificado, 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 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 desalineada, para leer el valor ordenado de bytes de Little endian de 32 bits y, luego, aumentarlo en 32 bits (4 bytes).
Resultado que se muestra
El valor de 32 bits en la dirección del puntero especificada, si es necesario. Se cambió el orden de bytes.

Read64

uint64_t Read64(
  uint8_t *& p
)

Realiza una lectura de memoria posiblemente no alineada del valor de 64 bits ordenado por bytes de endian desde la dirección del puntero especificado, 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 y aumenta el puntero en 8 bytes (8 bytes).

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

Read64

uint64_t Read64(
  const uint8_t *& p
)

Realiza una lectura de memoria posiblemente no alineada del valor de 64 bits ordenado por bytes de endian desde la dirección del puntero especificado, 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 y aumenta el puntero en 8 bytes (8 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección de puntero constante, potencialmente desalineada, para leer el valor ordenado de bytes de bit endian de 64 bits desde y, luego, aumentarlo en 64 bits (8 bytes).
Resultado que se muestra
El valor de 64 bits en la dirección del puntero especificada, si es necesario. Se cambió el orden de bytes.

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

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

Detalles
Parámetros
[in] p
Es una referencia a la dirección de un puntero, posiblemente no alineada, para escribir el valor de 16 bits ordenado por bytes del sistema de destino en un orden de bytes de tipo endian y, luego, aumentarlo 16 bits (2 bytes).
[in] v
El valor de 16 bits que se escribirá, si es necesario, se intercambió el orden de bytes.

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

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

Detalles
Parámetros
[in] p
Es una referencia a la dirección de un puntero, potencialmente no alineada, para escribir el valor de 32 bits ordenado por bytes del sistema de destino en orden de bytes de tipo endian y, luego, aumentarlo en 32 bits (4 bytes).
[in] v
El valor de 32 bits que se escribirá, si es necesario, se intercambió el orden de bytes.

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

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

Detalles
Parámetros
[in] p
Es una referencia a una dirección de un puntero, posiblemente no alineada, para escribir el valor de 64 bits ordenado por bytes del sistema de destino en un orden de bytes de tipo endian y, luego, aumentarlo 64 bits (8 bytes).
[in] v
El valor de 64 bits que se escribirá, si es necesario, se intercambió el orden de bytes.