nl::Weave::Encoding::BigEndian

Ta przestrzeń nazw zapewnia funkcje, które umożliwiają:

Podsumowanie

  • Zmienianie kolejności bajtów w odniesieniu do systemu hosta przez wartości uporządkowanej liczby bajtów w typie 16-, 32- i 64-bitowym.
  • Bezpieczne przeprowadzanie prostych i wydajnych operacji związanych z mapowaniem na pamięć, potencjalnie do nieustawionych lokalizacji pamięci, z możliwością zmiany kolejności bajtów lub bez niej. Dotyczy to 8-, 16-, 32- i 64-bitowych, uporządkowanych wielkości bajtów w formacie big endian, zarówno z zarządzaniem wskaźnikami, jak i bez nich.

W systemach hostów big endian nie zachodzi faktyczna zmiana kolejności bajtów. W innych systemach zmiana kolejności bajtów jest ustawiana odpowiednio.

Funkcje

Get16(const uint8_t *p)
uint16_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej 16-bitowej wartości 16-bitowej uporządkowanej według określonego adresu wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość zgodnie z kolejnością bajtów w systemie docelowym.
Get32(const uint8_t *p)
uint32_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej według 32-bitowej wartości 32-bitowej z określonego adresu wskaźnika w pamięci podręcznej. W razie potrzeby dokonaj zmiany kolejności bajtów, aby system docelowy umieścił wartość zgodnie z kolejnością bajtów w systemie docelowym.
Get64(const uint8_t *p)
uint64_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci podręcznej stanu 64-bitowej wartości 64-bitowej uporządkowanej według określonego adresu wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość zgodnie z kolejnością bajtów w systemie docelowym.
HostSwap16(uint16_t v)
uint16_t
W ramach tego warunku w ramach systemu docelowego przeprowadzana jest zamiana bajtów w kolejności bajtów na podstawie określonej 16-bitowej wartości, co ma zostać uznane za zachowanie kolejności bajtów w systemie docelowym (tzn.
HostSwap32(uint32_t v)
uint32_t
W ramach tego warunku w ramach systemu docelowego przeprowadzana jest zamiana bajtów w kolejności bajtów według wartości określonej 32-bitowej wartości, co ma zostać uznane za zachowanie kolejności bajtów w systemie docelowym (tzn.
HostSwap64(uint64_t v)
uint64_t
W ramach tego warunku w ramach systemu docelowego przeprowadzana jest zamiana bajtów w kolejności bajtów o wartość określonej 64-bitowej wartości, co ma zostać uznane za zachowanie kolejności bajtów w systemie docelowym (tzn.
Put16(uint8_t *p, uint16_t v)
void
Wykonaj (potencjalnie niedopasowany) zapis w pamięci systemu docelowego, uporządkowanej 16-bitowej wartości 16-bitowej na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w porządku dużych liter.
Put32(uint8_t *p, uint32_t v)
void
Przeprowadź (potencjalnie niedopasowany) zapis w pamięci systemu docelowego w uporządkowanej 32-bitowej wartości w określonym adresie wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w odpowiednim porządkowaniu bajtów.
Put64(uint8_t *p, uint64_t v)
void
Przeprowadź (potencjalnie niedopasowany) zapis w pamięci systemu docelowego, uporządkowanej 64-bitowej wartości 64-bitowej na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w odpowiednim porządkowaniu bajtów.
Read16(uint8_t *& p)
uint16_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej 16-bitowej wartości 16-bitowej z określonego adresu wskaźnika, jeśli jest to konieczne, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym i zwiększy wskaźnik o 16 bitów (2 bajty).
Read16(const uint8_t *& p)
uint16_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej 16-bitowej wartości 16-bitowej z określonego adresu wskaźnika, jeśli jest to konieczne, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym i zwiększy wskaźnik o 16 bitów (2 bajty).
Read32(uint8_t *& p)
uint32_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej według 32-bitowej wartości z określonego adresu wskaźnika, a w razie potrzeby dokonaj zmiany kolejności bajtów, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym, i zwiększ wskaźnik o 32 bity (4 bajty).
Read32(const uint8_t *& p)
uint32_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej według 32-bitowej wartości z określonego adresu wskaźnika, a w razie potrzeby dokonaj zmiany kolejności bajtów, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym, i zwiększ wskaźnik o 32 bity (4 bajty).
Read64(uint8_t *& p)
uint64_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej według 64-bitowej wartości 64-bitowej z określonego adresu wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym, i zwiększ wskaźnik o 64 bity (8 bajtów).
Read64(const uint8_t *& p)
uint64_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej według 64-bitowej wartości 64-bitowej z określonego adresu wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym, i zwiększ wskaźnik o 64 bity (8 bajtów).
Write16(uint8_t *& p, uint16_t v)
void
Wykonaj (potencjalnie niedopasowany) zapis w pamięci systemu docelowego, uporządkowanej 16-bitowej wartości 16-bitowej na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w porządku dużych liter.
Write32(uint8_t *& p, uint32_t v)
void
Przeprowadź (potencjalnie niedopasowany) zapis w pamięci systemu docelowego w uporządkowanej 32-bitowej wartości w określonym adresie wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w odpowiednim porządkowaniu bajtów.
Write64(uint8_t *& p, uint64_t v)
void
Przeprowadź (potencjalnie niedopasowany) zapis w pamięci systemu docelowego, uporządkowanej 64-bitowej wartości 64-bitowej na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w odpowiednim porządkowaniu bajtów.

Funkcje

Get16

uint16_t Get16(
  const uint8_t *p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej 16-bitowej wartości 16-bitowej uporządkowanej według określonego adresu wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość zgodnie z kolejnością bajtów w systemie docelowym.

Szczegóły
Parametry
[in] p
Adres wskaźnika, który może być niedopasowany, do odczytywania 16-bitowej wartości uporządkowanej według bajtów endian.
Zwroty
16-bitowa wartość w podanym adresie wskaźnika (w razie potrzeby) została zmieniona ponownie w bajtach.

Get32

uint32_t Get32(
  const uint8_t *p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej według 32-bitowej wartości 32-bitowej z określonego adresu wskaźnika w pamięci podręcznej. W razie potrzeby dokonaj zmiany kolejności bajtów, aby system docelowy umieścił wartość zgodnie z kolejnością bajtów w systemie docelowym.

Szczegóły
Parametry
[in] p
Adres wskaźnika, który może być niedopasowany, do odczytu 32-bitowej uporządkowanej wartości w bajtach big endian.
Zwroty
Wartość 32-bitowa w podanym adresie wskaźnika (w razie potrzeby) została zmieniona ponownie w bajtach.

Get64

uint64_t Get64(
  const uint8_t *p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci podręcznej stanu 64-bitowej wartości 64-bitowej uporządkowanej według określonego adresu wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość zgodnie z kolejnością bajtów w systemie docelowym.

Szczegóły
Parametry
[in] p
Adres wskaźnika, który może być niedopasowany, do odczytu 64-bitowej uporządkowanej wartości w bajtach big endian.
Zwroty
64-bitowa wartość w podanym adresie wskaźnika (w razie potrzeby) została zmieniona ponownie w bajtach.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

W ramach tego warunku w ramach systemu docelowego przeprowadzana jest zamiana bajtów w kolejności bajtów na podstawie określonej 16-bitowej wartości, co ma zostać uznane za zachowanie kolejności bajtów w systemie docelowym (tzn.

hosta) w bajtach.

W rezultacie w bitowych systemach docelowych typu endian nie jest to operacja, a w systemach big endian – zmiana kolejności.

Szczegóły
Parametry
[in] v
16-bitowa wartość do zastąpienia kolejności bajtów.
Zwroty
Wartość wejściowa (w razie potrzeby) z zamienną kolejnością bajtów.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

W ramach tego warunku w ramach systemu docelowego przeprowadzana jest zamiana bajtów w kolejności bajtów według wartości określonej 32-bitowej wartości, co ma zostać uznane za zachowanie kolejności bajtów w systemie docelowym (tzn.

hosta) w bajtach.

W rezultacie w bitowych systemach docelowych typu endian nie jest to operacja, a w systemach big endian – zmiana kolejności.

Szczegóły
Parametry
[in] v
32-bitowa wartość do zastąpienia kolejności bajtów.
Zwroty
Wartość wejściowa (w razie potrzeby) z zamienną kolejnością bajtów.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

W ramach tego warunku w ramach systemu docelowego przeprowadzana jest zamiana bajtów w kolejności bajtów o wartość określonej 64-bitowej wartości, co ma zostać uznane za zachowanie kolejności bajtów w systemie docelowym (tzn.

hosta) w bajtach.

W rezultacie w bitowych systemach docelowych typu endian nie jest to operacja, a w systemach big endian – zmiana kolejności.

Szczegóły
Parametry
[in] v
64-bitowa wartość do zastąpienia kolejności bajtów.
Zwroty
Wartość wejściowa (w razie potrzeby) z zamienną kolejnością bajtów.

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

Wykonaj (potencjalnie niedopasowany) zapis w pamięci systemu docelowego, uporządkowanej 16-bitowej wartości 16-bitowej na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w porządku dużych liter.

Szczegóły
Parametry
[in] p
Adres wskaźnika, potencjalnie nierówny, do zapisania bajta docelowego systemu, w którym uporządkowane są 16-bitowe wartości z zachowaniem kolejności bajtów w formacie big endian.
[in] v
16-bitowa wartość do zapisu (w razie potrzeby) z zastąpieniem kolejności bajtów.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

Przeprowadź (potencjalnie niedopasowany) zapis w pamięci systemu docelowego w uporządkowanej 32-bitowej wartości w określonym adresie wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w odpowiednim porządkowaniu bajtów.

Szczegóły
Parametry
[in] p
Adres wskaźnika, potencjalnie nierówny, do zapisania bajta systemu docelowego uporządkowanego według 32-bitowej wartości w kolejności bajtów big end.
[in] v
32-bitowa wartość do zapisu w razie potrzeby z zamianą bajtów.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

Przeprowadź (potencjalnie niedopasowany) zapis w pamięci systemu docelowego, uporządkowanej 64-bitowej wartości 64-bitowej na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w odpowiednim porządkowaniu bajtów.

Szczegóły
Parametry
[in] p
Adres wskaźnika, potencjalnie niedopasowany, do zapisania bajta docelowego systemu w uporządkowanej 64-bitowej wartości w kolejności bajtów big endian.
[in] v
64-bitowa wartość do zapisu w razie potrzeby z zamianą bajtów.

Read16

uint16_t Read16(
  uint8_t *& p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej 16-bitowej wartości 16-bitowej z określonego adresu wskaźnika, jeśli jest to konieczne, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym i zwiększy wskaźnik o 16 bitów (2 bajty).

Szczegóły
Parametry
[in,out] p
Odwołanie do adresu wskaźnika, potencjalnie niedopasowane, służące do odczytu 16-bitowej uporządkowanej wartości w bajtach typu big endian i w celu zwiększenia jej wartości o 16 bitów (2 bajty).
Zwroty
16-bitowa wartość w podanym adresie wskaźnika (w razie potrzeby) z zamianą bajtów.

Read16

uint16_t Read16(
  const uint8_t *& p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej 16-bitowej wartości 16-bitowej z określonego adresu wskaźnika, jeśli jest to konieczne, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym i zwiększy wskaźnik o 16 bitów (2 bajty).

Szczegóły
Parametry
[in,out] p
Odwołanie do adresu stałego wskaźnika, potencjalnie niedopasowane, służące do odczytywania 16-bitowej uporządkowanej wartości w kolejności bajtowej big endian i do zwiększania o 16 bitów (2 bajty).
Zwroty
16-bitowa wartość w podanym adresie wskaźnika (w razie potrzeby) z zamianą bajtów.

Read32

uint32_t Read32(
  uint8_t *& p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej według 32-bitowej wartości z określonego adresu wskaźnika, a w razie potrzeby dokonaj zmiany kolejności bajtów, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym, i zwiększ wskaźnik o 32 bity (4 bajty).

Szczegóły
Parametry
[in,out] p
Odwołanie do adresu wskaźnika, potencjalnie niedopasowane, służące do odczytu uporządkowanej wartości w kolejności bajtowej big endian i w celu zwiększenia jej wartości o 32 bity (4 bajty).
Zwroty
32-bitowa wartość w określonym adresie wskaźnika (w razie potrzeby) z zamianą bajtów.

Read32

uint32_t Read32(
  const uint8_t *& p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej według 32-bitowej wartości z określonego adresu wskaźnika, a w razie potrzeby dokonaj zmiany kolejności bajtów, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym, i zwiększ wskaźnik o 32 bity (4 bajty).

Szczegóły
Parametry
[in,out] p
Odwołanie do adresu stałego wskaźnika, potencjalnie niedopasowane, służące do odczytywania 32-bitowej uporządkowanej wartości w bajtach typu big endian i do wartości, która jest następnie zwiększana o 32 bity (4 bajty).
Zwroty
32-bitowa wartość w określonym adresie wskaźnika (w razie potrzeby) z zamianą bajtów.

Read64

uint64_t Read64(
  uint8_t *& p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej według 64-bitowej wartości 64-bitowej z określonego adresu wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym, i zwiększ wskaźnik o 64 bity (8 bajtów).

Szczegóły
Parametry
[in,out] p
Odwołanie do adresu wskaźnika, potencjalnie niedopasowane, służące do odczytywania 64-bitowej uporządkowanej wartości w bajtach typu big endian, a następnie zwiększania o 64 bity (8 bajtów).
Zwroty
64-bitowa wartość w określonym adresie wskaźnika (w razie potrzeby) z zamienioną kolejnością bajtów.

Read64

uint64_t Read64(
  const uint8_t *& p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci uporządkowanej według 64-bitowej wartości 64-bitowej z określonego adresu wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość zgodnie z właściwą kolejnością bajtów w systemie docelowym, i zwiększ wskaźnik o 64 bity (8 bajtów).

Szczegóły
Parametry
[in,out] p
Odwołanie do adresu stałego wskaźnika, potencjalnie niedopasowane, służące do odczytywania 64-bitowej uporządkowanej wartości w kolejności bajtowej big endian, a następnie zwiększania o 64 bity (8 bajtów).
Zwroty
64-bitowa wartość w określonym adresie wskaźnika (w razie potrzeby) z zamienioną kolejnością bajtów.

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Wykonaj (potencjalnie niedopasowany) zapis w pamięci systemu docelowego, uporządkowanej 16-bitowej wartości 16-bitowej na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w porządku dużych liter.

Szczegóły
Parametry
[in] p
Odwołanie do adresu wskaźnika, potencjalnie niedopasowane, służące do zapisywania uporządkowanej 16-bitowej wartości w bajtach systemu docelowego z zachowaniem kolejności bajtów w formacie big endian, a następnie zwiększanie tej wartości o 16 bitów (2 bajty).
[in] v
16-bitowa wartość do zapisu (w razie potrzeby) z zastąpieniem kolejności bajtów.

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

Przeprowadź (potencjalnie niedopasowany) zapis w pamięci systemu docelowego w uporządkowanej 32-bitowej wartości w określonym adresie wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w odpowiednim porządkowaniu bajtów.

Szczegóły
Parametry
[in] p
Odwołanie do adresu wskaźnika, potencjalnie niedopasowane, służące do zapisywania uporządkowanej 32-bitowej wartości w bajtach systemu docelowego z zachowaniem kolejności bajtów w formacie big endian, a następnie zwiększanie tej wartości o 32 bity (4 bajty).
[in] v
32-bitowa wartość do zapisu w razie potrzeby z zamianą bajtów.

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

Przeprowadź (potencjalnie niedopasowany) zapis w pamięci systemu docelowego, uporządkowanej 64-bitowej wartości 64-bitowej na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w odpowiednim porządkowaniu bajtów.

Szczegóły
Parametry
[in] p
Odwołanie do adresu wskaźnika, potencjalnie niedopasowane, służące do zapisywania uporządkowanej 64-bitowej wartości w bajtach systemu docelowego z zachowaniem kolejności bajtów w formacie big endian, a następnie zwiększanie tej wartości o 64 bity (8 bajtów).
[in] v
64-bitowa wartość do zapisu w razie potrzeby z zamianą bajtów.