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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
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 |
|
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 |
|
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
||
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 |
|
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 |
|
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 |
|