nl::Weave::Encoding::LittleEndian

Esse namespace oferece funções para:

Resumo

  • Realizar a reordenação de bytes, relativa ao sistema host, por valor de valores ordenados de byte pequenos endian para tipos de 16, 32 e 64 bits.
  • Execução segura de acessos mapeados na memória simples e eficientes, potencialmente para locais de memória desalinhados, com ou sem reordenação de bytes, para quantidades ordenadas de bytes pequenos de 8, 16, 32 e 64 bits, com e sem gerenciamento de ponteiro.

Em pequenos sistemas host endian, não ocorrerá reordenação real de bytes. Em outros sistemas, a reordenação de bytes é realizada conforme apropriado.

remotas

Get16(const uint8_t *p)
uint16_t
Executar uma leitura de memória, potencialmente não alinhada, do valor de 16 bits ordenado de byte Little endian do endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordenação de bytes do sistema de destino.
Get32(const uint8_t *p)
uint32_t
Realizar uma leitura de memória, potencialmente não alinhada, do valor de 32 bits ordenado de byte Little endian do endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordenação de bytes do sistema de destino.
Get64(const uint8_t *p)
uint64_t
Executar uma leitura de memória, potencialmente não alinhada, do valor de 64 bits ordenado de byte Little endian do endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordenação de bytes do sistema de destino.
HostSwap16(uint16_t v)
uint16_t
Isso realiza condicionalmente, conforme necessário para o sistema de destino, uma troca de ordem de bytes pelo valor do valor de 16 bits especificado, que se presume estar em ordenação de bytes Little endian para o sistema de destino (ou seja,
HostSwap32(uint32_t v)
uint32_t
Isso executa condicionalmente, conforme necessário para o sistema de destino, uma troca de ordem de bytes pelo valor do valor de 32 bits especificado, que se presume estar em ordenação de bytes Little endian para o sistema de destino (ou seja,
HostSwap64(uint64_t v)
uint64_t
Isso executa condicionalmente, conforme necessário para o sistema de destino, uma troca de ordem de bytes pelo valor do valor de 64 bits especificado, que presume-se estar em ordenação de bytes Little endian para o sistema de destino (ou seja,
Put16(uint8_t *p, uint16_t v)
void
Executar uma gravação de memória, potencialmente não alinhada, do valor de 16 bits ordenado de bytes do sistema de destino para o endereço do ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.
Put32(uint8_t *p, uint32_t v)
void
Executar uma gravação de memória, potencialmente não alinhada, do valor de 32 bits ordenado de bytes do sistema de destino para o endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.
Put64(uint8_t *p, uint64_t v)
void
Executar uma gravação de memória, potencialmente não alinhada, do valor ordenado de byte do sistema de destino de 64 bits para o endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.
Read16(uint8_t *& p)
uint16_t
Executa uma leitura de memória, potencialmente não alinhada, do valor de 16 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realiza a reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 16 bits (2 bytes).
Read16(const uint8_t *& p)
uint16_t
Executa uma leitura de memória, potencialmente não alinhada, do valor de 16 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realiza a reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 16 bits (2 bytes).
Read32(uint8_t *& p)
uint32_t
Executa uma leitura de memória, potencialmente não alinhada, do valor de 32 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realiza a reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 32 bits (4 bytes).
Read32(const uint8_t *& p)
uint32_t
Executa uma leitura de memória, potencialmente não alinhada, do valor de 32 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realiza a reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 32 bits (4 bytes).
Read64(uint8_t *& p)
uint64_t
Realizar uma leitura de memória, potencialmente não alinhada, do valor de 64 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 64 bits (8 bytes).
Read64(const uint8_t *& p)
uint64_t
Realizar uma leitura de memória, potencialmente não alinhada, do valor de 64 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 64 bits (8 bytes).
Write16(uint8_t *& p, uint16_t v)
void
Executar uma gravação de memória, potencialmente não alinhada, do valor de 16 bits ordenado de bytes do sistema de destino para o endereço do ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.
Write32(uint8_t *& p, uint32_t v)
void
Executar uma gravação de memória, potencialmente não alinhada, do valor de 32 bits ordenado de bytes do sistema de destino para o endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.
Write64(uint8_t *& p, uint64_t v)
void
Executar uma gravação de memória, potencialmente não alinhada, do valor ordenado de byte do sistema de destino de 64 bits para o endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.

remotas

Get16

uint16_t Get16(
  const uint8_t *p
)

Executar uma leitura de memória, potencialmente não alinhada, do valor de 16 bits ordenado de byte Little endian do endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordenação de bytes do sistema de destino.

Detalhes
Parâmetros
[in] p
Um endereço de ponteiro, possivelmente sem alinhamento, para ler o valor ordenado de byte Little endian de 16 bits.
Retorna
O valor de 16 bits no endereço de ponteiro especificado, se necessário, byte reorganizado.

Get32

uint32_t Get32(
  const uint8_t *p
)

Realizar uma leitura de memória, potencialmente não alinhada, do valor de 32 bits ordenado de byte Little endian do endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordenação de bytes do sistema de destino.

Detalhes
Parâmetros
[in] p
Um endereço de ponteiro, possivelmente sem alinhamento, para ler o valor ordenado de byte Little endian de 32 bits.
Retorna
O valor de 32 bits no endereço de ponteiro especificado, se necessário, byte reordenado.

Get64

uint64_t Get64(
  const uint8_t *p
)

Executar uma leitura de memória, potencialmente não alinhada, do valor de 64 bits ordenado de byte Little endian do endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordenação de bytes do sistema de destino.

Detalhes
Parâmetros
[in] p
Um endereço de ponteiro, possivelmente sem alinhamento, para ler o valor ordenado de byte Little endian de 64 bits.
Retorna
O valor de 64 bits no endereço de ponteiro especificado, se necessário, byte reordenado.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

Isso realiza condicionalmente, conforme necessário para o sistema de destino, uma troca de ordem de bytes pelo valor do valor de 16 bits especificado, que se presume estar em ordenação de bytes Little endian para o sistema de destino (ou seja,

host).

Consequentemente, em sistemas de destino small endian, isso é um ambiente autônomo e, em sistemas de destino big endian, isso realiza uma reordenação.

Detalhes
Parâmetros
[in] v
O valor de 16 bits a ser trocado na ordem dos bytes.
Retorna
O valor de entrada, se necessário, a ordem dos bytes trocada.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

Isso executa condicionalmente, conforme necessário para o sistema de destino, uma troca de ordem de bytes pelo valor do valor de 32 bits especificado, que se presume estar em ordenação de bytes Little endian para o sistema de destino (ou seja,

host).

Consequentemente, em sistemas de destino small endian, isso é um ambiente autônomo e, em sistemas de destino big endian, isso realiza uma reordenação.

Detalhes
Parâmetros
[in] v
O valor de 32 bits na qual a ordem dos bytes será trocada.
Retorna
O valor de entrada, se necessário, a ordem dos bytes trocada.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

Isso executa condicionalmente, conforme necessário para o sistema de destino, uma troca de ordem de bytes pelo valor do valor de 64 bits especificado, que presume-se estar em ordenação de bytes Little endian para o sistema de destino (ou seja,

host).

Consequentemente, em sistemas de destino small endian, isso é um ambiente autônomo e, em sistemas de destino big endian, isso realiza uma reordenação.

Detalhes
Parâmetros
[in] v
O valor de 64 bits em que a ordem dos bytes será trocada.
Retorna
O valor de entrada, se necessário, a ordem dos bytes trocada.

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

Executar uma gravação de memória, potencialmente não alinhada, do valor de 16 bits ordenado de bytes do sistema de destino para o endereço do ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.

Detalhes
Parâmetros
[in] p
Um endereço de ponteiro, possivelmente desalinhado, para gravar o valor de 16 bits ordenado de byte do sistema de destino em ordenação de bytes Little endian.
[in] v
O valor de 16 bits a ser gravado, se necessário, byte reordenado.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

Executar uma gravação de memória, potencialmente não alinhada, do valor de 32 bits ordenado de bytes do sistema de destino para o endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.

Detalhes
Parâmetros
[in] p
Um endereço de ponteiro, potencialmente desalinhado, para gravar o valor ordenado de byte do sistema de destino de 32 bits em ordenação de bytes Little endian.
[in] v
O valor de 32 bits a ser gravado, se necessário, byte reordenado.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

Executar uma gravação de memória, potencialmente não alinhada, do valor ordenado de byte do sistema de destino de 64 bits para o endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.

Detalhes
Parâmetros
[in] p
Um endereço de ponteiro, potencialmente desalinhado, para gravar o valor de 64 bits do sistema de destino ordenado de 64 bits na ordem de bytes Little endian.
[in] v
O valor de 64 bits a ser gravado, se necessário, byte reordenado.

Read16

uint16_t Read16(
  uint8_t *& p
)

Executa uma leitura de memória, potencialmente não alinhada, do valor de 16 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realiza a reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 16 bits (2 bytes).

Detalhes
Parâmetros
[in,out] p
Uma referência a um endereço de ponteiro, possivelmente sem alinhamento, para ler o valor ordenado de byte Little endian de 16 bits de e para então incrementar em 16 bits (2 bytes).
Retorna
O valor de 16 bits no endereço de ponteiro especificado, se necessário, a ordem dos bytes trocada.

Read16

uint16_t Read16(
  const uint8_t *& p
)

Executa uma leitura de memória, potencialmente não alinhada, do valor de 16 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realiza a reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 16 bits (2 bytes).

Detalhes
Parâmetros
[in,out] p
Uma referência a um endereço de ponteiro constante, possivelmente sem alinhamento, para ler o valor ordenado de byte Little endian de 16 bits de e para então incrementar em 16 bits (2 bytes).
Retorna
O valor de 16 bits no endereço de ponteiro especificado, se necessário, a ordem dos bytes trocada.

Read32

uint32_t Read32(
  uint8_t *& p
)

Executa uma leitura de memória, potencialmente não alinhada, do valor de 32 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realiza a reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 32 bits (4 bytes).

Detalhes
Parâmetros
[in,out] p
Uma referência a um endereço de ponteiro, possivelmente sem alinhamento, para ler o valor ordenado de byte Little endian de 32 bits de e para então incrementar em 32 bits (4 bytes).
Retorna
O valor de 32 bits no endereço de ponteiro especificado, se necessário, a ordem dos bytes trocada.

Read32

uint32_t Read32(
  const uint8_t *& p
)

Executa uma leitura de memória, potencialmente não alinhada, do valor de 32 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realiza a reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 32 bits (4 bytes).

Detalhes
Parâmetros
[in,out] p
Uma referência a um endereço de ponteiro constante, potencialmente sem alinhamento, para ler o valor ordenado de byte Little endian de 32 bits de e para então incrementar em 32 bits (4 bytes).
Retorna
O valor de 32 bits no endereço de ponteiro especificado, se necessário, a ordem dos bytes trocada.

Read64

uint64_t Read64(
  uint8_t *& p
)

Realizar uma leitura de memória, potencialmente não alinhada, do valor de 64 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 64 bits (8 bytes).

Detalhes
Parâmetros
[in,out] p
Uma referência a um endereço de ponteiro, possivelmente sem alinhamento, para ler o valor ordenado de byte Little endian de 64 bits de e para então incrementar em 64 bits (8 bytes).
Retorna
O valor de 64 bits no endereço de ponteiro especificado, se necessário, a ordem dos bytes trocada.

Read64

uint64_t Read64(
  const uint8_t *& p
)

Realizar uma leitura de memória, potencialmente não alinhada, do valor de 64 bits ordenado de byte Little endian com base no endereço do ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes do sistema de destino e incremente o ponteiro em 64 bits (8 bytes).

Detalhes
Parâmetros
[in,out] p
Uma referência a um endereço de ponteiro constante, possivelmente sem alinhamento, para ler o valor ordenado de byte Little endian de 64 bits de e para então incrementar em 64 bits (8 bytes).
Retorna
O valor de 64 bits no endereço de ponteiro especificado, se necessário, a ordem dos bytes trocada.

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Executar uma gravação de memória, potencialmente não alinhada, do valor de 16 bits ordenado de bytes do sistema de destino para o endereço do ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.

Detalhes
Parâmetros
[in] p
Uma referência a um endereço de ponteiro, possivelmente sem alinhamento, para gravar o valor de 16 bits ordenado de 16 bits do sistema de destino na ordem de byte Little endian e, em seguida, incrementar em 16 bits (2 bytes).
[in] v
O valor de 16 bits a ser gravado, se necessário, na ordem dos bytes trocada.

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

Executar uma gravação de memória, potencialmente não alinhada, do valor de 32 bits ordenado de bytes do sistema de destino para o endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.

Detalhes
Parâmetros
[in] p
Uma referência a um endereço de ponteiro, possivelmente sem alinhamento, para gravar o valor de 32 bits ordenado de byte do sistema de destino em ordenação de bytes Little endian e, em seguida, incrementar em 32 bits (4 bytes).
[in] v
O valor de 32 bits a ser gravado, se necessário, na ordem dos bytes trocada.

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

Executar uma gravação de memória, potencialmente não alinhada, do valor ordenado de byte do sistema de destino de 64 bits para o endereço de ponteiro especificado, realizar reordenação de bytes, conforme necessário, para que o sistema de destino coloque o valor na ordem de bytes Little endian.

Detalhes
Parâmetros
[in] p
Uma referência a um endereço de ponteiro, possivelmente sem alinhamento, para gravar o valor de 64 bits ordenado de byte do sistema de destino em ordenação de bytes Little endian e, em seguida, incrementar em 64 bits (8 bytes).
[in] v
O valor de 64 bits a ser gravado, se necessário, na ordem dos bytes trocada.