nl::Weave::Encoding::LittleEndian

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

Podsumowanie

  • Zmienianie kolejności bajtów w odniesieniu do systemu hosta przez zastosowanie małych wartości uporządkowanych w bajtach endian dla typów 16-, 32- i 64-bitowych.
  • Bezpieczne przeprowadzanie prostych i wydajnych operacji związanych z mapowaniem na pamięć, potencjalnie do niedopasowanych lokalizacji pamięci, z możliwością zmiany kolejności bajtów lub bez niej – na 8-, 16-, 32- i 64-bitowe małe uporządkowane liczby bajtów na końcu, zarówno z zarządzaniem wskaźnikami, jak i bez nich.

W systemach hosta typu 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 podręcznej, uporządkowanej według 16-bitowej wartości na końcu kodu, z 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 podręcznej stanu uporządkowanej 32-bitowej wartości na końcu kodu z 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.
Get64(const uint8_t *p)
uint64_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci małej, uporządkowanej według 64-bitowej wartości na końcu 64-bitowej wartości wskaźnika na końcu podanego adresu wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w odpowiedniej 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 o wartość określonej 16-bitowej wartości, która ma mieć małą kolejność bajtową 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 o wartość określonej 32-bitowej wartości, która ma mieć małą kolejność bajtową 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, która ma mieć małą kolejność bajtową w systemie docelowym (tzn.
Put16(uint8_t *p, uint16_t v)
void
Wykonaj (potencjalnie niedopasowany) zapis w pamięci systemu docelowego 16-bitowej wartości w uporządkowanej 16-bitowej wartości na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w małej kolejności bajtów na końcu.
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 małym porządkowaniu bajtów na końcu.
Put64(uint8_t *p, uint64_t v)
void
Przeprowadź (potencjalnie niedopasowany) zapis w pamięci systemu docelowego 64-bitowej wartości uporządkowanej według 64-bitowej wartości na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieszczał wartość w małym porządkowaniu bajtów na końcu.
Read16(uint8_t *& p)
uint16_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci podręcznej, uporządkowanej według 16-bitowej wartości na końcu kodu, z określonego adresu wskaźnika, a w razie potrzeby dokonaj zmiany kolejności bajtów, aby system docelowy zastosował 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 podręcznej, uporządkowanej według 16-bitowej wartości na końcu kodu, z określonego adresu wskaźnika, a w razie potrzeby dokonaj zmiany kolejności bajtów, aby system docelowy zastosował 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ądkowaną w porządku 32-bitowej wartości na końcu kodu 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ądkowaną w porządku 32-bitowej wartości na końcu kodu 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 małej, uporządkowanej na końcu 64-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 64 bity (8 bajtów).
Read64(const uint8_t *& p)
uint64_t
Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci małej, uporządkowanej na końcu 64-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 64 bity (8 bajtów).
Write16(uint8_t *& p, uint16_t v)
void
Wykonaj (potencjalnie niedopasowany) zapis w pamięci systemu docelowego 16-bitowej wartości w uporządkowanej 16-bitowej wartości na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w małej kolejności bajtów na końcu.
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 małym porządkowaniu bajtów na końcu.
Write64(uint8_t *& p, uint64_t v)
void
Przeprowadź (potencjalnie niedopasowany) zapis w pamięci systemu docelowego 64-bitowej wartości uporządkowanej według 64-bitowej wartości na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieszczał wartość w małym porządkowaniu bajtów na końcu.

Funkcje

Get16

uint16_t Get16(
  const uint8_t *p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci podręcznej, uporządkowanej według 16-bitowej wartości na końcu kodu, z 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, potencjalnie nierówny, z którego ma być odczytywana 16-bitowa wartość uporządkowana w bajtach typu 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 podręcznej stanu uporządkowanej 32-bitowej wartości na końcu kodu z 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, potencjalnie nierówny, z którego ma być odczytywana 32-bitowa wartość uporządkowana w kolejności małych bajtów na końcu.
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 małej, uporządkowanej według 64-bitowej wartości na końcu 64-bitowej wartości wskaźnika na końcu podanego adresu wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w odpowiedniej kolejności bajtów w systemie docelowym.

Szczegóły
Parametry
[in] p
Adres wskaźnika, potencjalnie nierówny, z którego ma być odczytywana 64-bitowa wartość uporządkowana w bajtach typu 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 o wartość określonej 16-bitowej wartości, która ma mieć małą kolejność bajtową w systemie docelowym (tzn.

hosta) w bajtach.

W rezultacie w systemach docelowych małych Endian jest to jedyny sposób, a w systemach Big Endian trzeba zmienić ich kolejność.

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 o wartość określonej 32-bitowej wartości, która ma mieć małą kolejność bajtową w systemie docelowym (tzn.

hosta) w bajtach.

W rezultacie w systemach docelowych małych Endian jest to jedyny sposób, a w systemach Big Endian trzeba zmienić ich kolejność.

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, która ma mieć małą kolejność bajtową w systemie docelowym (tzn.

hosta) w bajtach.

W rezultacie w systemach docelowych małych Endian jest to jedyny sposób, a w systemach Big Endian trzeba zmienić ich kolejność.

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 16-bitowej wartości w uporządkowanej 16-bitowej wartości na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w małej kolejności bajtów na końcu.

Szczegóły
Parametry
[in] p
Adres wskaźnika, potencjalnie nierówny, do zapisywania bajtów systemu docelowego uporządkowanej 16-bitowej wartości z zachowaniem kolejności małych bajtów na końcu.
[in] v
16-bitowa wartość do zapisu w razie potrzeby. Zmieniono kolejność 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 małym porządkowaniu bajtów na końcu.

Szczegóły
Parametry
[in] p
Adres wskaźnika, potencjalnie nierówny, do zapisywania bajtów systemu docelowego uporządkowanej 32-bitowej wartości z zachowaniem kolejności małych bajtów na końcu.
[in] v
32-bitowa wartość do zapisu w razie potrzeby. Zmieniono kolejność bajtów.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

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

Szczegóły
Parametry
[in] p
Adres wskaźnika (potencjalnie niedopasowany) do zapisywania 64-bitowych wartości w systemie docelowym z uporządkowaną 64-bitową wartością z zachowaniem kolejności małych bajtów na końcu.
[in] v
64-bitowa wartość do zapisu w razie potrzeby. Zmieniono kolejność bajtów.

Read16

uint16_t Read16(
  uint8_t *& p
)

Przeprowadź (potencjalnie niedopasowaną) wartość z pamięci podręcznej, uporządkowanej według 16-bitowej wartości na końcu kodu, z określonego adresu wskaźnika, a w razie potrzeby dokonaj zmiany kolejności bajtów, aby system docelowy zastosował 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 odczytywania 16-bitowej uporządkowanej wartości w bajtach małego 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 podręcznej, uporządkowanej według 16-bitowej wartości na końcu kodu, z określonego adresu wskaźnika, a w razie potrzeby dokonaj zmiany kolejności bajtów, aby system docelowy zastosował 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 według małych wartości w bajtach endian, a następnie przyrostu 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ądkowaną w porządku 32-bitowej wartości na końcu kodu 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 odczytywania uporządkowanej liczby 32-bitowych bajtów na końcu i w celu zwiększania 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ądkowaną w porządku 32-bitowej wartości na końcu kodu 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 nieprzypisanego do odczytu, które umożliwia odczytywanie 32-bitowej uporządkowanej wartości w bajtach małego endian, a następnie zwiększanie tej wartości 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 małej, uporządkowanej na końcu 64-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 64 bity (8 bajtów).

Szczegóły
Parametry
[in,out] p
Odwołanie do adresu wskaźnika, potencjalnie niedopasowane, służące do odczytu uporządkowanej liczby 64-bitowych bajtów na końcu i w celu zwiększenia jej wartości 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 małej, uporządkowanej na końcu 64-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 64 bity (8 bajtów).

Szczegóły
Parametry
[in,out] p
Odwołanie do adresu stałego wskaźnika, potencjalnie niedopasowanego, służące do odczytywania 64-bitowej uporządkowanej wartości w bajtach małego endian, a następnie zwiększanie tej wartości 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 16-bitowej wartości w uporządkowanej 16-bitowej wartości na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w małej kolejności bajtów na końcu.

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 małych bajtów na końcu, 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 małym porządkowaniu bajtów na końcu.

Szczegóły
Parametry
[in] p
Odwołanie do adresu wskaźnika, potencjalnie niedopasowane, służące do zapisywania uporządkowanej 32-bitowej wartości systemu docelowego z zachowaniem kolejności małych bajtów na końcu, 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 64-bitowej wartości uporządkowanej według 64-bitowej wartości na określony adres wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieszczał wartość w małym porządkowaniu bajtów na końcu.

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 małych bajtów na końcu, 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.