nl::Weave::Encoding::BigEndian

Esse namespace oferece funções para:

Resumo

  • Realização da reordenação de bytes, relativa ao sistema host, por valor de valores ordenados de byte big 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 big endian de 8, 16, 32 e 64 bits, com e sem gerenciamento de ponteiro.

Em sistemas host big-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 big 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
Executa uma leitura de memória, potencialmente não alinhada, do valor de 32 bits ordenado de byte big endian do endereço de ponteiro especificado, realiza 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
Executa uma leitura de memória, potencialmente não alinhada, do valor de 64 bits ordenado de byte big endian do endereço de ponteiro especificado, realiza 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 executa condicionalmente, conforme necessário para o sistema de destino, uma troca de ordem de bytes pelo valor do valor de 16 bits especificado, que supostamente está na ordenação de bytes big 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 presume-se estar na ordenação de bytes big 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 na ordenação de bytes big 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 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 de big endian.
Put32(uint8_t *p, uint32_t v)
void
Executar uma gravação de memória, potencialmente não alinhada, do valor ordenado de byte do sistema de destino de 32 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 ordenação de bytes de big 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 ordenação de bytes de big endian.
Read16(uint8_t *& p)
uint16_t
Realizar uma leitura de memória, potencialmente não alinhada, do valor ordenado de 16 bits do big endian 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 16 bits (2 bytes).
Read16(const uint8_t *& p)
uint16_t
Realizar uma leitura de memória, potencialmente não alinhada, do valor ordenado de 16 bits do big endian 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 16 bits (2 bytes).
Read32(uint8_t *& p)
uint32_t
Realizar uma leitura de memória, potencialmente não alinhada, do valor ordenado de 32 bits do big endian 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 32 bits (4 bytes).
Read32(const uint8_t *& p)
uint32_t
Realizar uma leitura de memória, potencialmente não alinhada, do valor ordenado de 32 bits do big endian 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 32 bits (4 bytes).
Read64(uint8_t *& p)
uint64_t
Realizar uma leitura de memória, potencialmente não alinhada, do valor ordenado de 64 bits do big endian 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 ordenado de 64 bits do big endian 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 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 de big endian.
Write32(uint8_t *& p, uint32_t v)
void
Executar uma gravação de memória, potencialmente não alinhada, do valor ordenado de byte do sistema de destino de 32 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 ordenação de bytes de big 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 ordenação de bytes de big 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 big 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 bytes big 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
)

Executa uma leitura de memória, potencialmente não alinhada, do valor de 32 bits ordenado de byte big endian do endereço de ponteiro especificado, realiza 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 bytes big 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
)

Executa uma leitura de memória, potencialmente não alinhada, do valor de 64 bits ordenado de byte big endian do endereço de ponteiro especificado, realiza 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 bytes big 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 executa condicionalmente, conforme necessário para o sistema de destino, uma troca de ordem de bytes pelo valor do valor de 16 bits especificado, que supostamente está na ordenação de bytes big endian para o sistema de destino (ou seja,

host).

Consequentemente, em sistemas de destino de bit 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 presume-se estar na ordenação de bytes big endian para o sistema de destino (ou seja,

host).

Consequentemente, em sistemas de destino de bit 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 na ordenação de bytes big endian para o sistema de destino (ou seja,

host).

Consequentemente, em sistemas de destino de bit 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 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 de big endian.

Detalhes
Parâmetros
[in] p
Um endereço de ponteiro, potencialmente sem alinhamento, para gravar o valor de 16 bits do sistema de destino ordenado de 16 bits na ordem de bytes big endian.
[in] v
O valor de 16 bits a ser gravado, se necessário, na ordem dos bytes trocada.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

Executar uma gravação de memória, potencialmente não alinhada, do valor ordenado de byte do sistema de destino de 32 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 ordenação de bytes de big endian.

Detalhes
Parâmetros
[in] p
Um endereço de ponteiro, potencialmente sem alinhamento, para gravar o valor de 32 bits ordenado de bytes do sistema de destino na ordenação de bytes do big endian.
[in] v
O valor de 32 bits a ser gravado, se necessário, na ordem dos bytes trocada.

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 ordenação de bytes de big endian.

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

Read16

uint16_t Read16(
  uint8_t *& p
)

Realizar uma leitura de memória, potencialmente não alinhada, do valor ordenado de 16 bits do big endian 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 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 big 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
)

Realizar uma leitura de memória, potencialmente não alinhada, do valor ordenado de 16 bits do big endian 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 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 big 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
)

Realizar uma leitura de memória, potencialmente não alinhada, do valor ordenado de 32 bits do big endian 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 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 big 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
)

Realizar uma leitura de memória, potencialmente não alinhada, do valor ordenado de 32 bits do big endian 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 32 bits (4 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 big 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 ordenado de 64 bits do big endian 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 big 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 ordenado de 64 bits do big endian 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 big 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 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 de big 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 do sistema de destino ordenado de 16 bits na ordem de bytes big 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 ordenado de byte do sistema de destino de 32 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 ordenação de bytes de big 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 do sistema de destino ordenado de 32 bits na ordem de bytes big 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 ordenação de bytes de big 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 do sistema de destino ordenado de 64 bits na ordem de bytes big 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.