nl::Weave::Encoding::BigEndian

Dieser Namespace bietet Funktionen für:

Zusammenfassung

  • Byte-Neuanordnung relativ zum Hostsystem nach dem Wert von Big-Endian-Byte-geordneten Werten für 16-, 32- und 64-Bit-Typen.
  • Sichere Ausführung einfacher, effizienter speicherzuordnungsfähiger Zugriffe, möglicherweise auf nicht ausgerichtete Speicherstandorte mit oder ohne Byte-Neuanordnung auf Big-Endian-Byte-Mengen mit oder ohne 8-, 16-, 32- und 64-Bit-Byte-Reihenfolge, sowohl mit als auch ohne Zeigerverwaltung.

Auf Big-Endian-Hostsystemen findet keine tatsächliche Byte-Neuordnung statt. Auf anderen Systemen wird die Bytereihenfolge entsprechend durchgeführt.

Funktionen

Get16(const uint8_t *p)
uint16_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt.
Get32(const uint8_t *p)
uint32_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt.
Get64(const uint8_t *p)
uint64_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt.
HostSwap16(uint16_t v)
uint16_t
Dadurch wird, soweit für das Zielsystem erforderlich, bedingt ein Wechsel der Bytereihenfolge nach dem Wert des angegebenen 16-Bit-Werts durchgeführt, bei dem angenommen wird, dass es in der Big-Endian-Bytereihenfolge liegt (d.h.
HostSwap32(uint32_t v)
uint32_t
Dadurch wird, wie für das Zielsystem erforderlich, ein Bytereihenfolge-Swap nach dem Wert des angegebenen 32-Bit-Werts durchgeführt, der vermutlich in Big-Endian-Bytereihenfolge zum Zielsystem erfolgt (d.h.
HostSwap64(uint64_t v)
uint64_t
Dadurch wird, wie für das Zielsystem erforderlich, ein Bytereihenfolge-Swap nach dem Wert des angegebenen 64-Bit-Werts durchgeführt, der vermutlich in Big-Endian-Bytereihenfolge zum Zielsystem erfolgt (d.h.
Put16(uint8_t *p, uint16_t v)
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 16-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Big-Endian-Bytereihenfolge setzt.
Put32(uint8_t *p, uint32_t v)
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 32-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Big-Endian-Bytereihenfolge setzt.
Put64(uint8_t *p, uint64_t v)
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 64-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Big-Endian-Bytereihenfolge setzt.
Read16(uint8_t *& p)
uint16_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 16 Bit (2 Byte).
Read16(const uint8_t *& p)
uint16_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 16 Bit (2 Byte).
Read32(uint8_t *& p)
uint32_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 32 Bit (4 Byte).
Read32(const uint8_t *& p)
uint32_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 32 Bit (4 Byte).
Read64(uint8_t *& p)
uint64_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 64 Bit (8 Byte).
Read64(const uint8_t *& p)
uint64_t
Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 64 Bit (8 Byte).
Write16(uint8_t *& p, uint16_t v)
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 16-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Big-Endian-Bytereihenfolge setzt.
Write32(uint8_t *& p, uint32_t v)
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 32-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Big-Endian-Bytereihenfolge setzt.
Write64(uint8_t *& p, uint64_t v)
void
Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 64-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Big-Endian-Bytereihenfolge setzt.

Funktionen

Get16

uint16_t Get16(
  const uint8_t *p
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt.

Details
Parameter
[in] p
Eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den geordneten 16-Bit-Big-Endian-Bytewert zu lesen.
Rückgabe
Der 16-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Byte neu angeordnet.

Get32

uint32_t Get32(
  const uint8_t *p
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt.

Details
Parameter
[in] p
Eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den geordneten 32-Bit-Big-Endian-Bytewert zu lesen.
Rückgabe
Der 32-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Byte neu angeordnet.

Get64

uint64_t Get64(
  const uint8_t *p
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt.

Details
Parameter
[in] p
Eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den geordneten 64-Bit-Big-Endian-Bytewert zu lesen.
Rückgabe
Der 64-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Byte neu angeordnet.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

Dadurch wird, wie für das Zielsystem erforderlich, ein Bytereihenfolge-Swap nach dem Wert des angegebenen 16-Bit-Werts durchgeführt, der vermutlich in Big-Endian-Bytereihenfolge in Bezug auf das Zielsystem erfolgt (d.h.

Host) Byte-Reihenfolge.

Folglich ist dies bei Bit-Endian-Zielsystemen eine Nulloperation und bei Big-Endian-Zielsystemen eine Neuordnung.

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

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

Dadurch wird, wie für das Zielsystem erforderlich, ein Bytereihenfolge-Swap nach dem Wert des angegebenen 32-Bit-Werts durchgeführt, der vermutlich in Big-Endian-Bytereihenfolge zum Zielsystem erfolgt (d.h.

Host) Byte-Reihenfolge.

Folglich ist dies bei Bit-Endian-Zielsystemen eine Nulloperation und bei Big-Endian-Zielsystemen eine Neuordnung.

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

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

Dadurch wird, wie für das Zielsystem erforderlich, ein Bytereihenfolge-Swap nach dem Wert des angegebenen 64-Bit-Werts durchgeführt, der vermutlich in Big-Endian-Bytereihenfolge zum Zielsystem erfolgt (d.h.

Host) Byte-Reihenfolge.

Folglich ist dies bei Bit-Endian-Zielsystemen eine Nulloperation und bei Big-Endian-Zielsystemen eine Neuordnung.

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

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 16-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Big-Endian-Bytereihenfolge setzt.

Details
Parameter
[in] p
Eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den byte-geordneten 16-Bit-Zielwert des Zielsystems in Big-Endian-Bytereihenfolge zu schreiben.
[in] v
Der 16-Bit-Wert, für den bei Bedarf Bytereihenfolge vertauscht werden soll.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

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

Details
Parameter
[in] p
Eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den byte-geordneten 32-Bit-Zielwert des Zielsystems in Big-Endian-Bytereihenfolge zu schreiben.
[in] v
Der 32-Bit-Wert, für den bei Bedarf die Bytereihenfolge vertauscht werden soll.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 64-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Big-Endian-Bytereihenfolge setzt.

Details
Parameter
[in] p
Eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den byte-geordneten 64-Bit-Zielwert des Zielsystems in Big-Endian-Bytereihenfolge zu schreiben.
[in] v
Der 64-Bit-Wert, für den bei Bedarf die Bytereihenfolge vertauscht werden soll.

Read16

uint16_t Read16(
  uint8_t *& p
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 16 Bit (2 Byte).

Details
Parameter
[in,out] p
Ein Verweis auf eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den geordneten 16-Bit-Big-Endian-Byte-Wert 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.

Read16

uint16_t Read16(
  const uint8_t *& p
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 16-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 16 Bit (2 Byte).

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

Read32

uint32_t Read32(
  uint8_t *& p
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 32 Bit (4 Byte).

Details
Parameter
[in,out] p
Ein Verweis auf eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den geordneten 32-Bit-Big-Endian-Byte-Wert 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ühren Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 32-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 32 Bit (4 Byte).

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

Read64

uint64_t Read64(
  uint8_t *& p
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 64 Bit (8 Byte).

Details
Parameter
[in,out] p
Ein Verweis auf eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den geordneten 64-Bit-Big-Endian-Byte-Wert 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.

Read64

uint64_t Read64(
  const uint8_t *& p
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherlesevorgang des Big-Endian-Byte-geordneten 64-Bit-Werts von der angegebenen Zeigeradresse aus, führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Zielsystem-Bytesortierung einfügt, und inkrementieren Sie den Zeiger um 64 Bit (8 Byte).

Details
Parameter
[in,out] p
Ein Verweis auf eine Konstanten-Zeigeradresse, möglicherweise nicht ausgerichtet, um den geordneten 64-Bit-Big-Endian-Byte-Wert zu lesen und dann um 64 Bit (8 Byte) zu inkrementieren.
Rückgabe
Der 64-Bit-Wert an der angegebenen Zeigeradresse, falls erforderlich, Bytereihenfolge vertauscht.

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 16-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in die Big-Endian-Bytereihenfolge setzt.

Details
Parameter
[in] p
Ein Verweis auf eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den bytebasierten 16-Bit-Zielwert des Zielsystems in Big-Endian-Bytereihenfolge zu schreiben und dann um 16 Bit (2 Byte) zu erhöhen.
[in] v
Der 16-Bit-Wert, für den bei Bedarf Bytereihenfolge vertauscht werden soll.

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

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

Details
Parameter
[in] p
Ein Verweis auf eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den byte-geordneten 32-Bit-Zielwert des Zielsystems in Big-Endian-Bytereihenfolge zu schreiben und dann um 32 Bit (4 Byte) zu erhöhen.
[in] v
Der 32-Bit-Wert, für den bei Bedarf die Bytereihenfolge vertauscht werden soll.

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

Führen Sie einen möglicherweise nicht ausgerichteten Speicherschreibvorgang des bytebasierten 64-Bit-Werts des Zielsystems in die angegebene Zeigeradresse durch und führen Sie bei Bedarf eine Byte-Neuanordnung durch, damit das Zielsystem den Wert in Big-Endian-Bytereihenfolge setzt.

Details
Parameter
[in] p
Ein Verweis auf eine Zeigeradresse, möglicherweise nicht ausgerichtet, um den byte-geordneten 64-Bit-Zielwert des Zielsystems in Big-Endian-Bytereihenfolge zu schreiben und dann um 64 Bit (8 Byte) zu erhöhen.
[in] v
Der 64-Bit-Wert, für den bei Bedarf die Bytereihenfolge vertauscht werden soll.