nl::Weave::Encoding::BigEndian

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 big endian para tipos de 16, 32 y 64 bits.
  • Realizar de forma segura accesos simples y eficientes con asignación de memoria, potencialmente a ubicaciones de memoria no alineadas, con o sin reordenamiento de bytes, a cantidades ordenadas de bytes big endian de 8, 16, 32 y 64 bits, con y sin administración de punteros.

En los sistemas host grandes de extremo, 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 de bytes big 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 en la memoria, posiblemente no alineada, del valor de 32 bits ordenado de bytes big 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 de bytes big 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 está en orden de bytes big 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 está en orden de bytes big 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 está en orden de bytes big 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 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 big endian.
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 big 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 big endian.
Read16(uint8_t *& p)
uint16_t
Realiza una lectura de memoria posiblemente no alineada del valor de 16 bits ordenado de byte big 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).
Read16(const uint8_t *& p)
uint16_t
Realiza una lectura de memoria posiblemente no alineada del valor de 16 bits ordenado de byte big 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 de byte big 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 de byte big 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 potencialmente no alineada del valor de 64 bits ordenado de byte big 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 potencialmente no alineada del valor de 64 bits ordenado de byte big 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).
Write16(uint8_t *& p, uint16_t v)
void
Realiza una escritura en la memoria, potencialmente 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 big 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 big 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 big endian.

Funciones

Get16

uint16_t Get16(
  const uint8_t *p
)

Realiza una lectura en la memoria, posiblemente no alineada, del valor de 16 bits ordenado de bytes big 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 big 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 en la memoria, posiblemente no alineada, del valor de 32 bits ordenado de bytes big 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 big 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 de bytes big 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 big 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 está en orden de bytes big endian para el sistema de destino (es decir,

host).

En consecuencia, en los sistemas de destino bit-endian, esto es una no-op y en los sistemas de destino big endian, esto 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 está en orden de bytes big endian para el sistema de destino (es decir,

host).

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

Detalles
Parámetros
[in] v
El valor de 32 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.

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 está en orden de bytes big endian para el sistema de destino (es decir,

host).

En consecuencia, en los sistemas de destino bit-endian, esto es una no-op y en los sistemas de destino big endian, esto 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 big endian.

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 big endian.
[in] v
El valor de 16 bits que se escribirá, si es necesario, se intercambió el orden de 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 big 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 big endian.
[in] v
El valor de 32 bits que se escribirá, si es necesario, se intercambió el orden de 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 big endian.

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 big endian.
[in] v
El valor de 64 bits que se escribirá, si es necesario, se intercambió el orden de bytes.

Read16

uint16_t Read16(
  uint8_t *& p
)

Realiza una lectura de memoria posiblemente no alineada del valor de 16 bits ordenado de byte big 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).

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 big 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 posiblemente no alineada del valor de 16 bits ordenado de byte big 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).

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 big 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 de byte big 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, potencialmente no alineada, para leer el valor ordenado de bytes big 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.

Read32

uint32_t Read32(
  const uint8_t *& p
)

Realiza una lectura de memoria posiblemente no alineada del valor de 32 bits ordenado de byte big 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 no alineada, para leer el valor ordenado de bytes big 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 potencialmente no alineada del valor de 64 bits ordenado de byte big 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).

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 big 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 potencialmente no alineada del valor de 64 bits ordenado de byte big 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).

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 big endian de 64 bits 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, potencialmente 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 big endian.

Detalles
Parámetros
[in] p
Es una referencia a una dirección de puntero, potencialmente no alineada, para escribir el valor de 16 bits ordenado por bytes del sistema de destino en orden de bytes big 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 big endian.

Detalles
Parámetros
[in] p
Es una referencia a una dirección de puntero, potencialmente no alineada, para escribir el valor de 32 bits ordenado por bytes del sistema de destino en orden de bytes big 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 big endian.

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