nl::Weave::Codificación::LittleEndian

Este espacio de nombres proporciona funciones para lo siguiente:

Resumen

  • Realizar un reordenamiento de bytes relativo al sistema host por el valor de pequeños valores de bytes ordenados para tipos de 16, 32 y 64 bits.
  • Realizar de forma segura accesos simples y eficientes en la memoria asignados, posiblemente a ubicaciones de memoria no alineadas, con o sin reordenamiento de bytes, a cantidades pequeñas de bytes ordenadas de 8, 16, 32 y 64 bits, con y sin administración de punteros.

En los sistemas host pequeños, no se realizará un reordenamiento real de los bytes. En otros sistemas, el reordenamiento de bytes se realiza según corresponda.

Functions

Get16(const uint8_t *p)
uint16_t
Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de 16 bits desde la dirección del puntero especificado, realiza el 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.
Get32(const uint8_t *p)
uint32_t
Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de 32 bits desde la dirección del puntero especificada, realiza el 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.
Get64(const uint8_t *p)
uint64_t
Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado con un valor de 64 bits desde la dirección del puntero especificado, realiza el 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.
HostSwap16(uint16_t v)
uint16_t
Esto, de forma condicional, realiza, según sea necesario para el sistema de destino, un intercambio de orden de bytes por el valor del valor especificado de 16 bits, que se supone que se realiza en poco orden de bytes en endian al sistema de destino (es decir,
HostSwap32(uint32_t v)
uint32_t
Esto, de forma condicional, realiza, según sea necesario, para el sistema de destino un intercambio de orden de bytes por valor del valor especificado de 32 bits, que se supone que se realiza en poco orden de bytes en endian al sistema de destino (es decir,
HostSwap64(uint64_t v)
uint64_t
Esto, de forma condicional, realiza, según sea necesario para el sistema de destino, un intercambio de orden de bytes por el valor del valor especificado de 64 bits, que se supone que se realiza en poco orden de bytes en bytes al sistema de destino (es decir,
Put16(uint8_t *p, uint16_t v)
void
Realiza una operación de escritura de memoria potencialmente sin alinear del byte de sistema de destino ordenado de 16 bits a la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en poco orden de bytes endian.
Put32(uint8_t *p, uint32_t v)
void
Realiza una escritura de memoria potencialmente alineada, posiblemente no alineada, del valor del byte de sistema de destino ordenado de 32 bits en la dirección del puntero especificada, realiza el reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en poco orden de bytes endian.
Put64(uint8_t *p, uint64_t v)
void
Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 64 bits a la dirección del puntero especificada, reordena los bytes según sea necesario para que el sistema de destino coloque el valor en poco orden de bytes endian.
Read16(uint8_t *& p)
uint16_t
Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de 16 bits desde la dirección del puntero especificado, realiza el 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 pequeño byte endian ordenado de 16 bits desde la dirección del puntero especificado, realiza el 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 pequeño byte endian ordenado de valor de 32 bits desde la dirección del puntero especificada, realiza el 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 pequeño byte endian ordenado de valor de 32 bits desde la dirección del puntero especificada, realiza el 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 pequeño byte endian ordenado de un valor de 64 bits desde 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 64 bits (8 bytes).
Read64(const uint8_t *& p)
uint64_t
Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de un valor de 64 bits desde 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 64 bits (8 bytes).
Write16(uint8_t *& p, uint16_t v)
void
Realiza una operación de escritura de memoria potencialmente sin alinear del byte de sistema de destino ordenado de 16 bits a la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en poco orden de bytes endian.
Write32(uint8_t *& p, uint32_t v)
void
Realiza una escritura de memoria potencialmente alineada, posiblemente no alineada, del valor del byte de sistema de destino ordenado de 32 bits en la dirección del puntero especificada, realiza el reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en poco orden de bytes endian.
Write64(uint8_t *& p, uint64_t v)
void
Realiza una escritura en la memoria potencialmente no alineada del byte de sistema de destino ordenado de 64 bits a la dirección del puntero especificada, reordena los bytes según sea necesario para que el sistema de destino coloque el valor en poco orden de bytes endian.

Functions

Get16

uint16_t Get16(
  const uint8_t *p
)

Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de 16 bits desde la dirección del puntero especificado, realiza el 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.

Detalles
Parámetros
[in] p
Una dirección de puntero, posiblemente desalineada, para leer el valor de orden de bytes en formato pequeño de 16 bits.
Qué muestra
El valor de 16 bits en la dirección del puntero especificado, si es necesario, bytes reordenados.

Get32

uint32_t Get32(
  const uint8_t *p
)

Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de 32 bits desde la dirección del puntero especificada, realiza el 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.

Detalles
Parámetros
[in] p
Una dirección de puntero, posiblemente desalineada, para leer el valor de pedido de byte pequeño de 32 bits.
Qué muestra
El valor de 32 bits en la dirección del puntero especificado, si es necesario, bytes reordenados.

Get64

uint64_t Get64(
  const uint8_t *p
)

Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado con un valor de 64 bits desde la dirección del puntero especificado, realiza el 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.

Detalles
Parámetros
[in] p
Una dirección de puntero, posiblemente desalineada, para leer el valor de orden de byte pequeño de 64 bits.
Qué muestra
El valor de 64 bits en la dirección del puntero especificado, si es necesario, bytes reordenados.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

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

host) de orden de bytes.

En consecuencia, en los sistemas objetivo objetivo pequeños, esto es una no-op, y en los sistemas de destino endian grandes, 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, se intercambia el orden de bytes.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

Esto, de forma condicional, realiza, según sea necesario, para el sistema de destino un intercambio de orden de bytes por valor del valor especificado de 32 bits, que se supone que se realiza en poco orden de bytes en endian al sistema de destino (es decir,

host) de orden de bytes.

En consecuencia, en los sistemas objetivo objetivo pequeños, esto es una no-op, y en los sistemas de destino endian grandes, 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, se intercambia el orden de bytes.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

Esto, de forma condicional, realiza, según sea necesario para el sistema de destino, un intercambio de orden de bytes por el valor del valor especificado de 64 bits, que se supone que se realiza en poco orden de bytes en bytes al sistema de destino (es decir,

host) de orden de bytes.

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

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

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

Realiza una operación de escritura de memoria potencialmente sin alinear del byte de sistema de destino ordenado de 16 bits a la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en poco orden de bytes endian.

Detalles
Parámetros
[in] p
Una dirección del puntero, posiblemente no alineada, para escribir el byte de sistema de destino ordenado de 16 bits en poco orden de bytes endian.
[in] v
El valor de 16 bits para escribir, si es necesario, bytes reordenados.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

Realiza una escritura de memoria potencialmente alineada, posiblemente no alineada, del valor del byte de sistema de destino ordenado de 32 bits en la dirección del puntero especificada, realiza el reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en poco orden de bytes endian.

Detalles
Parámetros
[in] p
Una dirección de puntero, posiblemente no alineada, para escribir el byte de sistema de destino ordenado de 32 bits en poco orden de bytes endian.
[in] v
El valor de 32 bits para escribir, si es necesario, bytes reordenados.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

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

Detalles
Parámetros
[in] p
Una dirección del puntero, posiblemente no alineada, para escribir el byte de sistema de destino ordenado de 64 bits en poco orden de bytes endian.
[in] v
El valor de 64 bits para escribir, si es necesario, bytes reordenados.

Lectura16

uint16_t Read16(
  uint8_t *& p
)

Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de 16 bits desde la dirección del puntero especificado, realiza el 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 del puntero, posiblemente no alineada, para leer el valor del pequeño byte endian de 16 bits y, luego, aumentarlo por 16 bits (2 bytes).
Qué muestra
El valor de 16 bits en la dirección del puntero especificado, si es necesario, se cambia el orden de bytes.

Lectura16

uint16_t Read16(
  const uint8_t *& p
)

Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de 16 bits desde la dirección del puntero especificado, realiza el 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, posiblemente desalineada, para leer el valor del pequeño byte endian de 16 bits y, luego, aumentarlo por 16 bits (2 bytes).
Qué muestra
El valor de 16 bits en la dirección del puntero especificado, si es necesario, se cambia el orden de bytes.

Lectura 32

uint32_t Read32(
  uint8_t *& p
)

Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de valor de 32 bits desde la dirección del puntero especificada, realiza el 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 del puntero, posiblemente desalineada, para leer el valor del pequeño byte endian de 32 bits y, luego, aumentarlo por 32 bits (4 bytes).
Qué muestra
El valor de 32 bits en la dirección del puntero especificado, si es necesario, se cambia el orden de bytes.

Lectura 32

uint32_t Read32(
  const uint8_t *& p
)

Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de valor de 32 bits desde la dirección del puntero especificada, realiza el 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
Una referencia a una dirección de puntero constante, posiblemente desalineada, para leer el valor del pequeño byte endian de 32 bits y, luego, aumentarlo por 32 bits (4 bytes).
Qué muestra
El valor de 32 bits en la dirección del puntero especificado, si es necesario, se cambia el orden de bytes.

Lectura64

uint64_t Read64(
  uint8_t *& p
)

Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de un valor de 64 bits desde 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 64 bits (8 bytes).

Detalles
Parámetros
[in,out] p
Es una referencia a una dirección del puntero, posiblemente desalineada, para leer el valor del pequeño byte endian de 64 bits y, luego, aumentarlo por 64 bits (8 bytes).
Qué muestra
El valor de 64 bits en la dirección del puntero especificado, si es necesario, se intercambia el orden de bytes.

Lectura64

uint64_t Read64(
  const uint8_t *& p
)

Realiza una lectura de memoria potencialmente no alineada del pequeño byte endian ordenado de un valor de 64 bits desde 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 64 bits (8 bytes).

Detalles
Parámetros
[in,out] p
Una referencia a una dirección de puntero constante, posiblemente desalineada, para leer el valor del pequeño byte endian de 64 bits y, luego, aumentarlo por 64 bits (8 bytes).
Qué muestra
El valor de 64 bits en la dirección del puntero especificado, si es necesario, se intercambia el orden de bytes.

Escritura16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Realiza una operación de escritura de memoria potencialmente sin alinear del byte de sistema de destino ordenado de 16 bits a la dirección del puntero especificada, realiza el reordenamiento de bytes según sea necesario para que el sistema de destino coloque el valor en poco orden de bytes endian.

Detalles
Parámetros
[in] p
Es una referencia a una dirección del puntero, posiblemente no alineada, para escribir el byte del sistema de destino ordenado de 16 bits en poco orden de bytes endian y, luego, aumentar por 16 bits (2 bytes).
[in] v
El valor de 16 bits para escribir, de ser necesario, se intercambia el orden de los bytes.

Escritura 32

void Write32(
  uint8_t *& p,
  uint32_t v
)

Realiza una escritura de memoria potencialmente alineada, posiblemente no alineada, del valor del byte de sistema de destino ordenado de 32 bits en la dirección del puntero especificada, realiza el reordenamiento de bytes, según sea necesario, para que el sistema de destino coloque el valor en poco orden de bytes endian.

Detalles
Parámetros
[in] p
Es una referencia a una dirección del puntero, posiblemente no alineada, para escribir el byte de sistema de destino ordenado de 32 bits en poco orden de bytes endian y, luego, aumentar por 32 bits (4 bytes).
[in] v
El valor de 32 bits para escribir, si es necesario, se cambia el orden de bytes.

Escritura 64

void Write64(
  uint8_t *& p,
  uint64_t v
)

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

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