nl::Weave::Encoding::BigEndian

Ta przestrzeń nazw oferuje funkcje:

Podsumowanie

  • Zmienianie kolejności bajtów w odniesieniu do systemu hosta według wartości uporządkowanych bajtów 16-, 32- i 64-bitowych Big Endian.
  • Bezpieczne wykonywanie prostych i wydajnych operacji dostępu z mapowaniem pamięci, 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 ilości uporządkowanych bajtów typu big endian, zarówno z zarządzaniem wskaźnikami, jak i bez nich.

W dużych systemach hostów nie następuje faktyczna zmiana kolejności bajtów. W innych systemach kolejność bajtów jest obsługiwana odpowiednio do potrzeb.

Funkcje

Get16(const uint8_t *p)
uint16_t
Przeprowadź, potencjalnie niedopasowaną, odczyt z pamięci 16-bitowej wartości 16-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w docelowej kolejności bajtów w systemie.
Get32(const uint8_t *p)
uint32_t
Przeprowadź, potencjalnie niedopasowaną, odczyt z pamięci 32-bitowej wartości 32-bitowej bajtów big end_endia z podanego adresu wskaźnika. W razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w docelowej kolejności bajtów w systemie.
Get64(const uint8_t *p)
uint64_t
Przeprowadź, potencjalnie niedopasowaną, odczyt z pamięci 64-bitowej wartości Big Endian uporządkowanej w obecnym adresie wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w docelowej kolejności bajtów w systemie.
HostSwap16(uint16_t v)
uint16_t
To warunkowo wykonuje, zgodnie z potrzebami systemu docelowego, zamianę bajtów według wartości o określonej 16-bitowej wartości, przy założeniu, że jest ona zgodna z wielkim porządkowaniem bajtów w systemie docelowym (tzn.
HostSwap32(uint32_t v)
uint32_t
To warunkowo wykonuje, zgodnie z potrzebami systemu docelowego, zamianę kolejności bajtów według wartości określonej 32-bitowej wartości, przy założeniu, że jest ona w dużej kolejności bajtów w systemie docelowym (tzn.
HostSwap64(uint64_t v)
uint64_t
To warunkowo wykonuje, zgodnie z potrzebami systemu docelowego, zamianę bajtów według wartości o określonej 64-bitowej wartości, przy założeniu, że jest ona w dużej kolejności bajtów w systemie docelowym (tzn.
Put16(uint8_t *p, uint16_t v)
void
Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 16-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.
Put32(uint8_t *p, uint32_t v)
void
Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 32-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.
Put64(uint8_t *p, uint64_t v)
void
Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 64-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.
Read16(uint8_t *& p)
uint16_t
Wykonaj potencjalnie niedopasowany odczyt z pamięci 16-bitowej wartości 16-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w kolejności bajtów w systemie docelowym, i zwiększ wskaźnik o 16 bitów (2 bajty).
Read16(const uint8_t *& p)
uint16_t
Wykonaj potencjalnie niedopasowany odczyt z pamięci 16-bitowej wartości 16-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w kolejności bajtów w systemie docelowym, i zwiększ wskaźnik o 16 bitów (2 bajty).
Read32(uint8_t *& p)
uint32_t
Wykonaj potencjalnie niedopasowany odczyt z pamięci 32-bitowej wartości 32-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w kolejności bajtów w systemie docelowym, i zwiększ wskaźnik o 32 bity (4 bajty).
Read32(const uint8_t *& p)
uint32_t
Wykonaj potencjalnie niedopasowany odczyt z pamięci 32-bitowej wartości 32-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w 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 niedopasowany odczyt pamięci 64-bitowej wartości 64-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w 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 niedopasowany odczyt pamięci 64-bitowej wartości 64-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w 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 uporządkowanego 16-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.
Write32(uint8_t *& p, uint32_t v)
void
Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 32-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.
Write64(uint8_t *& p, uint64_t v)
void
Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 64-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.

Funkcje

Get16

uint16_t Get16(
  const uint8_t *p
)

Przeprowadź, potencjalnie niedopasowaną, odczyt z pamięci 16-bitowej wartości 16-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w docelowej kolejności bajtów w systemie.

Szczegóły
Parametry
[in] p
Adres wskaźnika (potencjalnie niewyrównany) umożliwiający odczyt 16-bitowej wartości uporządkowanych bajtów Big Endian.
Zwroty
16-bitowa wartość pod określonym adresem wskaźnika (w razie potrzeby) o zmianie kolejności bajtów.

Get32

uint32_t Get32(
  const uint8_t *p
)

Przeprowadź, potencjalnie niedopasowaną, odczyt z pamięci 32-bitowej wartości 32-bitowej bajtów big end_endia z podanego adresu wskaźnika. W razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w docelowej kolejności bajtów w systemie.

Szczegóły
Parametry
[in] p
Adres wskaźnika (potencjalnie niewyrównany) umożliwiający odczyt 32-bitowej wartości uporządkowanych bajtów Big Endian.
Zwroty
Wartość 32-bitowa pod określonym adresem wskaźnika, w razie potrzeby, o zmianie kolejności bajtów.

Get64

uint64_t Get64(
  const uint8_t *p
)

Przeprowadź, potencjalnie niedopasowaną, odczyt z pamięci 64-bitowej wartości Big Endian uporządkowanej w obecnym adresie wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w docelowej kolejności bajtów w systemie.

Szczegóły
Parametry
[in] p
Adres wskaźnika (potencjalnie niewyrównany) umożliwiający odczyt 64-bitowej wartości uporządkowanych bajtów Big Endian.
Zwroty
Wartość 64-bitowa pod określonym adresem wskaźnika, w razie potrzeby, o zmianie kolejności bajtów.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

To warunkowo wykonuje, zgodnie z potrzebami systemu docelowego, zamianę bajtów według wartości o określonej 16-bitowej wartości, przy założeniu, że jest ona zgodna z wielkim porządkowaniem bajtów w systemie docelowym (tzn.

hosta).

Dlatego w bitowych systemach docelowych jest to niemożliwe, a w wielkich systemach docelowych wymaga to zmiany kolejności.

Szczegóły
Parametry
[in] v
16-bitowa wartość zamieniona kolejność bajtów.
Zwroty
W razie potrzeby nadana wartość została zamieniona na wartość wejściową.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

To warunkowo wykonuje, zgodnie z potrzebami systemu docelowego, zamianę kolejności bajtów według wartości określonej 32-bitowej wartości, przy założeniu, że jest ona w dużej kolejności bajtów w systemie docelowym (tzn.

hosta).

Dlatego w bitowych systemach docelowych jest to niemożliwe, a w wielkich systemach docelowych wymaga to zmiany kolejności.

Szczegóły
Parametry
[in] v
32-bitowa wartość zamieniana kolejność bajtów.
Zwroty
W razie potrzeby nadana wartość została zamieniona na wartość wejściową.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

To warunkowo wykonuje, zgodnie z potrzebami systemu docelowego, zamianę bajtów według wartości o określonej 64-bitowej wartości, przy założeniu, że jest ona w dużej kolejności bajtów w systemie docelowym (tzn.

hosta).

Dlatego w bitowych systemach docelowych jest to niemożliwe, a w wielkich systemach docelowych wymaga to zmiany kolejności.

Szczegóły
Parametry
[in] v
64-bitowa wartość zamieniana kolejność bajtów.
Zwroty
W razie potrzeby nadana wartość została zamieniona na wartość wejściową.

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 16-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.

Szczegóły
Parametry
[in] p
Adres wskaźnika (potencjalnie niewyrównany) do zapisywania 16-bitowej wartości bajtowej uporządkowanej w docelowych bajtach systemu docelowego w kolejności bajtów na wielkie końce.
[in] v
16-bitowa wartość do zapisania zamieniona w razie potrzeby.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 32-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.

Szczegóły
Parametry
[in] p
Adres wskaźnika (potencjalnie niewyrównany) do zapisywania 32-bitowej wartości bajtowej uporządkowanej w docelowych bajtach systemu docelowego w kolejności bajtów na wielkie końce.
[in] v
32-bitowa wartość do zapisania zamieniona w razie potrzeby.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 64-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.

Szczegóły
Parametry
[in] p
Adres wskaźnika (potencjalnie niewyrównany) do zapisywania 64-bitowej wartości bajtowej systemowej uporządkowanej 64-bitowej w kolejności bajtów systemu docelowego.
[in] v
64-bitowa wartość do zapisania zamieniona w razie potrzeby.

Read16

uint16_t Read16(
  uint8_t *& p
)

Wykonaj potencjalnie niedopasowany odczyt z pamięci 16-bitowej wartości 16-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w kolejności bajtów w systemie docelowym, i zwiększ wskaźnik o 16 bitów (2 bajty).

Szczegóły
Parametry
[in,out] p
Odwołanie do adresu wskaźnika, potencjalnie niewyrównanego, aby odczytywać 16-bitową wartość uporządkowaną bajtami Big Endian, a następnie zwiększać ją o 16 bitów (2 bajty).
Zwroty
16-bitowa wartość pod określonym adresem wskaźnika, w razie potrzeby zamieniana na kolejne bajty.

Read16

uint16_t Read16(
  const uint8_t *& p
)

Wykonaj potencjalnie niedopasowany odczyt z pamięci 16-bitowej wartości 16-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w kolejności bajtów w systemie docelowym, i zwiększ wskaźnik o 16 bitów (2 bajty).

Szczegóły
Parametry
[in,out] p
Odwołanie do stałego adresu wskaźnika, potencjalnie niewyrównanego, aby odczytywać 16-bitową wartość uporządkowanych bajtów Big Endian, a następnie zwiększać jej wartość co 16 bitów (2 bajty).
Zwroty
16-bitowa wartość pod określonym adresem wskaźnika, w razie potrzeby zamieniana na kolejne bajty.

Read32

uint32_t Read32(
  uint8_t *& p
)

Wykonaj potencjalnie niedopasowany odczyt z pamięci 32-bitowej wartości 32-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w 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 niewyrównanego, aby odczytywać 32-bitową wartość uporządkowaną bajtami Big Endian, a następnie zwiększać ją o 32 bity (4 bajty).
Zwroty
W razie potrzeby 32-bitowa wartość pod określonym adresem wskaźnika została zamieniona.

Read32

uint32_t Read32(
  const uint8_t *& p
)

Wykonaj potencjalnie niedopasowany odczyt z pamięci 32-bitowej wartości 32-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w 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 stałego adresu wskaźnika, potencjalnie niewyrównanego, aby odczytywać 32-bitową wartość uporządkowanej bajtów w dużych bajtach, a następnie zwiększać ją o 32 bity (4 bajty).
Zwroty
W razie potrzeby 32-bitowa wartość pod określonym adresem wskaźnika została zamieniona.

Read64

uint64_t Read64(
  uint8_t *& p
)

Przeprowadź, potencjalnie niedopasowany odczyt pamięci 64-bitowej wartości 64-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w 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 niewyrównanego, aby odczytywać 64-bitową wartość uporządkowaną bajtami Big Endian, a następnie zwiększać ją o 64 bity (8 bajtów).
Zwroty
64-bitowa wartość pod określonym adresem wskaźnika, w razie potrzeby zamieniana na kolejne bajty.

Read64

uint64_t Read64(
  const uint8_t *& p
)

Przeprowadź, potencjalnie niedopasowany odczyt pamięci 64-bitowej wartości 64-bitowej bajta big endowego uporządkowanego pod określonym adresem wskaźnika, w razie potrzeby zmień kolejność bajtów, aby system docelowy umieścił wartość w 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 stałego adresu wskaźnika, potencjalnie niewyrównanego, aby odczytywać 64-bitową, uporządkowaną bajtowo wartość big Endian, a następnie zwiększać jej wartość co 64 bity (8 bajtów).
Zwroty
64-bitowa wartość pod określonym adresem wskaźnika, w razie potrzeby zamieniana na kolejne bajty.

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 16-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.

Szczegóły
Parametry
[in] p
Odwołanie do adresu wskaźnika, potencjalnie niewyrównanego, do zapisywania 16-bitowej wartości bajtowej uporządkowanej wartości w docelowym systemie w kolejności bajtów na wielkie końce, a następnie zwiększana o 16 bitów (2 bajty).
[in] v
16-bitowa wartość do zapisania zamieniona w razie potrzeby.

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 32-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.

Szczegóły
Parametry
[in] p
Odwołanie do adresu wskaźnika, potencjalnie niewyrównanego, w celu zapisu 32-bitowej wartości bajtowej uporządkowanej wartości w docelowym systemie w kolejności bajtów na wielkie końce, a następnie zwiększana o 32 bity (4 bajty).
[in] v
32-bitowa wartość do zapisania zamieniona w razie potrzeby.

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

Wykonaj (potencjalnie niedopasowany) zapis w pamięci uporządkowanego 64-bitowego bajta systemowego docelowego pod określonym adresem wskaźnika i w razie potrzeby zmień kolejność bajtów, aby system docelowy mógł zapisać wartość w kolejności wielkich bajtów.

Szczegóły
Parametry
[in] p
Odwołanie do adresu wskaźnika, potencjalnie niewyrównanego, do zapisywania 64-bitowej wartości bajtowej uporządkowanej w docelowych bajtach systemu w kolejności bajtów dużych końcowych, a następnie zwiększana o 64 bity (8 bajtów).
[in] v
64-bitowa wartość do zapisania zamieniona w razie potrzeby.