nl::Weave::Encoding::LittleEndian

Dieser Namespace bietet Funktionen für:

Zusammenfassung

  • Neuanordnung von Byte relativ zum Hostsystem nach Wert von Werten in Little-Endian-Bytereihenfolgen für 16-, 32- und 64-Bit-Typen.
  • Sichere Durchführung einfacher, effizienter, im Speicher zugeordneter Zugriffe, möglicherweise auf nicht abgestimmte Speicherbereiche, mit oder ohne Byte-Neuanordnung auf 8-, 16-, 32- und 64-Bit-Little-Endian-Byte-Reihenfolgen, mit und ohne Zeigerverwaltung.

Auf Little-Endian-Hostsystemen findet keine tatsächliche Byte-Neuordnung statt. In anderen Systemen wird die Byte-Neuordnung entsprechend vorgenommen.

Funktionen

Get16(const uint8_t *p)
uint16_t
Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-sortierten 16-Bit-Werts aus der angegebenen Zeigeradresse durch. Führen Sie bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet.
Get32(const uint8_t *p)
uint32_t
Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse durch und führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet.
Get64(const uint8_t *p)
uint64_t
Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse durch und führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet.
HostSwap16(uint16_t v)
uint16_t
Dies führt, wie für das Zielsystem erforderlich, einen Bytereihenfolge-Austausch nach Wert des angegebenen 16-Bit-Werts durch, wobei angenommen wird, dass dies in Little-Endian-Byte-Reihenfolge zum Zielsystem erfolgt (d.h.
HostSwap32(uint32_t v)
uint32_t
Dies führt, wie für das Zielsystem erforderlich, einen Bytereihenfolge-Austausch nach Wert des angegebenen 32-Bit-Werts durch, wobei angenommen wird, dass er in Little-Endian-Byte-Reihenfolge zum Zielsystem vorliegt (d.h.
HostSwap64(uint64_t v)
uint64_t
Dies führt, wie für das Zielsystem erforderlich, einen Bytereihenfolge-Swap nach Wert des angegebenen 64-Bit-Werts durch, wobei angenommen wird, dass die Reihenfolge in Little-Endian-Byte-Reihenfolge im Zielsystem vorliegt (d.h.
Put16(uint8_t *p, uint16_t v)
void
Führt einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 16-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch. Führen Sie nach Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Little-Endian-Byte-Reihenfolge verordnet.
Put32(uint8_t *p, uint32_t v)
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 32-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Little-Endian-Byte-Reihenfolge verordnet.
Put64(uint8_t *p, uint64_t v)
void
Führt einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 64-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch. Führen Sie nach Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Byte-Reihenfolge einordnet.
Read16(uint8_t *& p)
uint16_t
Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 16 Bit (2 Byte) erhöhen.
Read16(const uint8_t *& p)
uint16_t
Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 16 Bit (2 Byte) erhöhen.
Read32(uint8_t *& p)
uint32_t
Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 32 Bit (4 Byte) erhöhen.
Read32(const uint8_t *& p)
uint32_t
Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 32 Bit (4 Byte) erhöhen.
Read64(uint8_t *& p)
uint64_t
Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 64 Bit (8 Byte) erhöhen.
Read64(const uint8_t *& p)
uint64_t
Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 64 Bit (8 Byte) erhöhen.
Write16(uint8_t *& p, uint16_t v)
void
Führt einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 16-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch. Führen Sie nach Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Little-Endian-Byte-Reihenfolge verordnet.
Write32(uint8_t *& p, uint32_t v)
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 32-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Little-Endian-Byte-Reihenfolge verordnet.
Write64(uint8_t *& p, uint64_t v)
void
Führt einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 64-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch. Führen Sie nach Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Byte-Reihenfolge einordnet.

Funktionen

Get16

uint16_t Get16(
  const uint8_t *p
)

Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-sortierten 16-Bit-Werts aus der angegebenen Zeigeradresse durch. Führen Sie bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet.

Details
Parameter
[in] p
Eine Zeigeradresse, möglicherweise nicht ausgerichtet, aus der der 16-Bit-Little-Endian-Wert in Bytereihenfolge gelesen werden soll.
Rückgabe
Der 16-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Byte neu angeordnet.

Get32

uint32_t Get32(
  const uint8_t *p
)

Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse durch und führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet.

Details
Parameter
[in] p
Eine Zeigeradresse, möglicherweise nicht ausgerichtet, aus der der 32-Bit-Little-Endian-Wert in Bytereihenfolge gelesen werden kann.
Rückgabe
Der 32-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Byte neu angeordnet.

Get64

uint64_t Get64(
  const uint8_t *p
)

Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse durch und führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet.

Details
Parameter
[in] p
Eine Zeigeradresse, möglicherweise nicht ausgerichtet, aus der der 64-Bit-Little-Endian-Wert in Bytereihenfolge gelesen werden soll.
Rückgabe
Der 64-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Byte neu angeordnet.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

Dies führt, wie für das Zielsystem erforderlich, einen Bytereihenfolge-Austausch nach Wert des angegebenen 16-Bit-Werts durch, wobei angenommen wird, dass dies in Little-Endian-Byte-Reihenfolge zum Zielsystem erfolgt (d.h.

Host) Bytesortierung.

Folglich ist dies bei Little-Endian-Zielsystemen ein managementfrei und bei Big-Endian-Zielsystemen erfolgt eine Neuanordnung.

Details
Parameter
[in] v
Der 16-Bit-Wert, für den die Bytereihenfolge vertauscht werden soll.
Rückgabe
Der Eingabewert, falls erforderlich, Bytereihenfolge vertauscht.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

Dies führt, wie für das Zielsystem erforderlich, einen Bytereihenfolge-Austausch nach Wert des angegebenen 32-Bit-Werts durch, wobei angenommen wird, dass er in Little-Endian-Byte-Reihenfolge zum Zielsystem vorliegt (d.h.

Host) Bytesortierung.

Folglich ist dies bei Little-Endian-Zielsystemen ein managementfrei und bei Big-Endian-Zielsystemen erfolgt eine Neuanordnung.

Details
Parameter
[in] v
Der 32-Bit-Wert, für den die Bytereihenfolge vertauscht werden soll.
Rückgabe
Der Eingabewert, falls erforderlich, Bytereihenfolge vertauscht.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

Dies führt, wie für das Zielsystem erforderlich, einen Bytereihenfolge-Swap nach Wert des angegebenen 64-Bit-Werts durch, wobei angenommen wird, dass die Reihenfolge in Little-Endian-Byte-Reihenfolge im Zielsystem vorliegt (d.h.

Host) Bytesortierung.

Folglich ist dies bei Little-Endian-Zielsystemen ein managementfrei und bei Big-Endian-Zielsystemen erfolgt eine Neuanordnung.

Details
Parameter
[in] v
Der 64-Bit-Wert, für den die Bytereihenfolge vertauscht werden soll.
Rückgabe
Der Eingabewert, falls erforderlich, Bytereihenfolge vertauscht.

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

Führt einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 16-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch. Führen Sie nach Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Little-Endian-Byte-Reihenfolge verordnet.

Details
Parameter
[in] p
Eine Zeigeradresse, die möglicherweise nicht ausgerichtet ist, um den bytegeordneten 16-Bit-Wert des Zielsystems in Little-Endian-Byte-Reihenfolge zu schreiben.
[in] v
Der 16-Bit-Wert, zu dem bei Bedarf Byte geschrieben werden sollen.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 32-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Little-Endian-Byte-Reihenfolge verordnet.

Details
Parameter
[in] p
Eine Zeigeradresse, die möglicherweise nicht ausgerichtet ist, um den Byte-geordneten 32-Bit-Wert des Zielsystems in Little-Endian-Byte-Reihenfolge zu schreiben.
[in] v
Der 32-Bit-Wert, zu dem bei Bedarf Byte geschrieben werden sollen.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

Führt einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 64-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch. Führen Sie nach Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Byte-Reihenfolge einordnet.

Details
Parameter
[in] p
Eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den Bytereihenfolge des Zielsystems in 64-Bit-Werte in Little-Endian-Byte-Reihenfolge zu schreiben.
[in] v
Der 64-Bit-Wert, zu dem bei Bedarf Byte geschrieben werden sollen.

Read16

uint16_t Read16(
  uint8_t *& p
)

Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 16 Bit (2 Byte) erhöhen.

Details
Parameter
[in,out] p
Ein Verweis auf eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den 16-Bit-Wert der Little-Endian-Byte-Reihenfolge ausgelesen und dann um 16 Bit (2 Byte) zu erhöhen.
Rückgabe
Der 16-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.

Read16

uint16_t Read16(
  const uint8_t *& p
)

Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 16 Bit (2 Byte) erhöhen.

Details
Parameter
[in,out] p
Ein Verweis auf eine konstante Zeigeradresse, die möglicherweise nicht ausgerichtet ist, um den 16-Bit-Wert im Little-Endian-Byte-sortiert zu lesen und dann um 16 Bit (2 Byte) zu erhöhen.
Rückgabe
Der 16-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.

Read32

uint32_t Read32(
  uint8_t *& p
)

Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 32 Bit (4 Byte) erhöhen.

Details
Parameter
[in,out] p
Ein Verweis auf eine Zeigeradresse, die möglicherweise nicht ausgerichtet ist, um den 32-Bit-Wert der Little-Endian-Bytereihenfolge zu lesen und dann um 32 Bit (4 Byte) zu erhöhen.
Rückgabe
Der 32-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.

Read32

uint32_t Read32(
  const uint8_t *& p
)

Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 32 Bit (4 Byte) erhöhen.

Details
Parameter
[in,out] p
Ein Verweis auf eine konstante Zeigeradresse, die möglicherweise nicht ausgerichtet ist, um den 32-Bit-Wert im Little-Endian-Byte-sortiert zu lesen und dann um 32 Bit (4 Byte) zu erhöhen.
Rückgabe
Der 32-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.

Read64

uint64_t Read64(
  uint8_t *& p
)

Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 64 Bit (8 Byte) erhöhen.

Details
Parameter
[in,out] p
Ein Verweis auf eine Zeigeradresse, die möglicherweise nicht ausgerichtet ist, um den 64-Bit-Wert des Little-Endian-Byte-sortierten Byte auszulesen und dann um 64 Bit (8 Byte) zu erhöhen.
Rückgabe
Der 64-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.

Read64

uint64_t Read64(
  const uint8_t *& p
)

Führt einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Little-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führt bei Bedarf eine Byte-Reihenfolge durch, damit das Zielsystem den Wert in die Bytereihenfolge des Zielsystems einordnet und den Zeiger um 64 Bit (8 Byte) erhöhen.

Details
Parameter
[in,out] p
Ein Verweis auf eine konstante Zeigeradresse, die möglicherweise nicht ausgerichtet ist, um den 64-Bit-Wert des Little-Endian-Bytes zu lesen und dann um 64 Bit (8 Byte) zu erhöhen.
Rückgabe
Der 64-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Führt einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 16-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch. Führen Sie nach Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Little-Endian-Byte-Reihenfolge verordnet.

Details
Parameter
[in] p
Ein Verweis auf eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den in Byte sortierten 16-Bit-Wert des Zielsystems in Little-Endian-Bytereihenfolge zu schreiben und dann um 16 Bit (2 Byte) zu erhöhen.
[in] v
Der 16-Bit-Wert zum Schreiben der bei Bedarf ausgetauschten Bytereihenfolge.

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 32-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Little-Endian-Byte-Reihenfolge verordnet.

Details
Parameter
[in] p
Ein Verweis auf eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den in Byte sortierten 32-Bit-Wert des Zielsystems in Little-Endian-Bytereihenfolge zu schreiben und dann um 32 Bit (4 Byte) zu erhöhen.
[in] v
Der 32-Bit-Wert zum Schreiben der bei Bedarf ausgetauschten Bytereihenfolge.

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

Führt einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des in Byte sortierten 64-Bit-Werts des Zielsystems an die angegebene Zeigeradresse durch. Führen Sie nach Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in eine Little-Endian-Byte-Reihenfolge einordnet.

Details
Parameter
[in] p
Ein Verweis auf eine Zeigeradresse, die möglicherweise nicht ausgerichtet ist, um den in Byte sortierten 64-Bit-Wert des Zielsystems in Little-Endian-Bytereihenfolge zu schreiben und dann um 64 Bit (8 Byte) zu erhöhen.
[in] v
Der 64-Bit-Wert zum Schreiben der bei Bedarf ausgetauschten Bytereihenfolge.