nl::Weave::Encoding::BigEndian

この名前空間は、次の関数を提供します。

概要

  • ホスト・システムを基準として、16、32、および 64 ビット型のビッグ・エンディアンのバイト順の値によるバイト並べ替えの実行。
  • 8、16、32、64 ビットのビッグ エンディアンのバイト順序数(ポインタ管理の有無にかかわらず)に対して、単純で効率的なメモリマップ アクセスを安全に実行する。不整合なメモリ位置へのアクセスは、バイト順序変更の有無にかかわらず可能。

ビッグ エンディアン ホストシステムでは、実際のバイト並べ替えは行われません。他のシステムでは、必要に応じてバイト並べ替えが行われます。

関数

Get16(const uint8_t *p)
uint16_t
指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 16 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト順序変更を行って、その値がターゲット・システムのバイト順で格納されるようにします。
Get32(const uint8_t *p)
uint32_t
指定されたポインタ アドレスからビッグ エンディアン バイトの順序付けされた 32 ビット値のビッグ エンディアン バイト値の(調整されていない可能性がある)メモリ読み取りを実行し、必要に応じてバイト順序変更を行って、ターゲット システムが値をターゲット システムのバイト順序付けします。
Get64(const uint8_t *p)
uint64_t
指定されたポインタ アドレスから 64 ビットのビッグ エンディアン バイトオーダーの値(不整合の可能性がある)のメモリ読み取りを実行し、必要に応じてバイト並べ替えを行って、ターゲット システムが値をターゲット システムのバイト順序に置くようにします。
HostSwap16(uint16_t v)
uint16_t
これにより、ターゲット システムで必要に応じて、指定された 16 ビット値の値によるバイト順序のスワップが条件付きで実行されます。ターゲット システム(すなわち、
HostSwap32(uint32_t v)
uint32_t
これにより、ターゲット システムで必要に応じて、指定された 32 ビット値の値によるバイト順のスワップが条件付きで実行されます。これは、ターゲット システム(すなわち、
HostSwap64(uint64_t v)
uint64_t
これにより、ターゲット システムで必要に応じて、指定された 64 ビット値の値によるバイト順のスワップが条件付きで実行されます。これは、ターゲット システム(すなわち、
Put16(uint8_t *p, uint16_t v)
void
ターゲット システムが値をビッグ エンディアンのバイト順で格納できるように、指定されたポインタ アドレスに 16 ビット値でターゲット システムバイトをオーダーし、必要に応じてバイト並べ替えを行います(アライメントされていない場合もあります)。
Put32(uint8_t *p, uint32_t v)
void
ターゲット システムが値をビッグ エンディアンのバイト順に格納できるように、32 ビット値でターゲット システム バイトを指定されたポインタ アドレスに、(アライメントされていない可能性のある)メモリ書き込みを行います。必要に応じてバイト並べ替えを行います。
Put64(uint8_t *p, uint64_t v)
void
ターゲット システムが値をビッグ エンディアンのバイト順に格納できるように、指定されたポインタ アドレスに 64 ビット値でターゲット システム バイトの順序付けを行い、場合によってはアライメントされていない可能性のあるメモリ書き込みを行い、必要に応じてバイト順序を変更します。
Read16(uint8_t *& p)
uint16_t
指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 16 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト順序変更を行って、ターゲット・システムがその値をターゲット・システムのバイト順に格納し、ポインタを 16 ビット(2 バイト)だけインクリメントします。
Read16(const uint8_t *& p)
uint16_t
指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 16 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト順序変更を行って、ターゲット・システムがその値をターゲット・システムのバイト順に格納し、ポインタを 16 ビット(2 バイト)だけインクリメントします。
Read32(uint8_t *& p)
uint32_t
指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 32 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト順序変更を行って、ターゲット・システムがその値をターゲット・システムのバイト順序に置き、ポインタを 32 ビット(4 バイト)だけインクリメントします。
Read32(const uint8_t *& p)
uint32_t
指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 32 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト順序変更を行って、ターゲット・システムがその値をターゲット・システムのバイト順序に置き、ポインタを 32 ビット(4 バイト)だけインクリメントします。
Read64(uint8_t *& p)
uint64_t
指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 64 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット・システムがその値をターゲット・システムのバイト順に格納し、ポインタを 64 ビット(8 バイト)だけインクリメントします。
Read64(const uint8_t *& p)
uint64_t
指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 64 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット・システムがその値をターゲット・システムのバイト順に格納し、ポインタを 64 ビット(8 バイト)だけインクリメントします。
Write16(uint8_t *& p, uint16_t v)
void
ターゲット システムが値をビッグ エンディアンのバイト順で格納できるように、指定されたポインタ アドレスに 16 ビット値でターゲット システムバイトをオーダーし、必要に応じてバイト並べ替えを行います(アライメントされていない場合もあります)。
Write32(uint8_t *& p, uint32_t v)
void
ターゲット システムが値をビッグ エンディアンのバイト順に格納できるように、32 ビット値でターゲット システム バイトを指定されたポインタ アドレスに、(アライメントされていない可能性のある)メモリ書き込みを行います。必要に応じてバイト並べ替えを行います。
Write64(uint8_t *& p, uint64_t v)
void
ターゲット システムが値をビッグ エンディアンのバイト順に格納できるように、指定されたポインタ アドレスに 64 ビット値でターゲット システム バイトの順序付けを行い、場合によってはアライメントされていない可能性のあるメモリ書き込みを行い、必要に応じてバイト順序を変更します。

関数

Get16

uint16_t Get16(
  const uint8_t *p
)

指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 16 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト順序変更を行って、その値がターゲット・システムのバイト順で格納されるようにします。

詳細
パラメータ
[in] p
16 ビットのビッグ エンディアン バイトの順序付き値を読み取るためのポインタ アドレス(不整合の可能性がある)。
戻り値
指定されたポインタ アドレスにある 16 ビットの値。必要に応じてバイトの順序が並べ替えられます。

Get32

uint32_t Get32(
  const uint8_t *p
)

指定されたポインタ アドレスからビッグ エンディアン バイトの順序付けされた 32 ビット値のビッグ エンディアン バイト値の(調整されていない可能性がある)メモリ読み取りを実行し、必要に応じてバイト順序変更を行って、ターゲット システムが値をターゲット システムのバイト順序付けします。

詳細
パラメータ
[in] p
32 ビットのビッグ エンディアン バイト順の値を読み取るためのポインタ アドレス(調整されていない可能性がある)。
戻り値
指定されたポインタ アドレスの 32 ビット値(必要に応じてバイトの順序が並べ替えられます)。

Get64

uint64_t Get64(
  const uint8_t *p
)

指定されたポインタ アドレスから 64 ビットのビッグ エンディアン バイトオーダーの値(不整合の可能性がある)のメモリ読み取りを実行し、必要に応じてバイト並べ替えを行って、ターゲット システムが値をターゲット システムのバイト順序に置くようにします。

詳細
パラメータ
[in] p
64 ビットのビッグ エンディアン バイトの順序付き値を読み取るためのポインタ アドレス(不整合の可能性がある)。
戻り値
必要に応じてバイト順序が変更された、指定されたポインタ アドレスの 64 ビット値。

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

これにより、ターゲット システムで必要に応じて、指定された 16 ビット値の値によるバイト順序のスワップが条件付きで実行されます。ターゲット システム(すなわち、

バイトの順序付けを行います。

そのため、ビット エンディアン ターゲット システムでは何も行われず、ビッグ エンディアン ターゲット システムでは並べ替えが行われます。

詳細
パラメータ
[in] v
バイトオーダーがスワップされる 16 ビット値。
戻り値
入力値(必要に応じてバイトオーダーがスワップされます)。

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

これにより、ターゲット システムで必要に応じて、指定された 32 ビット値の値によるバイト順のスワップが条件付きで実行されます。これは、ターゲット システム(すなわち、

バイトの順序付けを行います。

そのため、ビット エンディアン ターゲット システムでは何も行われず、ビッグ エンディアン ターゲット システムでは並べ替えが行われます。

詳細
パラメータ
[in] v
バイトオーダーがスワップされる 32 ビット値。
戻り値
入力値(必要に応じてバイトオーダーがスワップされます)。

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

これにより、ターゲット システムで必要に応じて、指定された 64 ビット値の値によるバイト順のスワップが条件付きで実行されます。これは、ターゲット システム(すなわち、

バイトの順序付けを行います。

そのため、ビット エンディアン ターゲット システムでは何も行われず、ビッグ エンディアン ターゲット システムでは並べ替えが行われます。

詳細
パラメータ
[in] v
バイトオーダーがスワップされる 64 ビット値。
戻り値
入力値(必要に応じてバイトオーダーがスワップされます)。

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

ターゲット システムが値をビッグ エンディアンのバイト順で格納できるように、指定されたポインタ アドレスに 16 ビット値でターゲット システムバイトをオーダーし、必要に応じてバイト並べ替えを行います(アライメントされていない場合もあります)。

詳細
パラメータ
[in] p
ターゲット システム バイトの順序付けされた 16 ビット値をビッグ エンディアン バイトの順序付けで書き込むためのポインタ アドレス(調整されていない可能性がある)。
[in] v
必要に応じて、スワップされたバイトオーダーを書き込む 16 ビットの値。

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

ターゲット システムが値をビッグ エンディアンのバイト順で格納できるように、32 ビット値のターゲット システム バイトを指定されたポインタ アドレスに、(アライメントされていない可能性がある)メモリ書き込みを行います。必要に応じてバイト並べ替えを行います。

詳細
パラメータ
[in] p
ターゲット システム バイトの順序付けされた 32 ビット値をビッグ エンディアン バイト順で書き込むためのポインタ アドレス(調整されていない可能性がある)。
[in] v
必要に応じて、スワップされたバイトオーダーを書き込む 32 ビット値。

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

ターゲット システムが値をビッグ エンディアンのバイト順に格納できるように、指定されたポインタ アドレスに 64 ビット値でターゲット システム バイトの順序付けを行い、場合によってはアライメントされていない可能性のあるメモリ書き込みを行い、必要に応じてバイト順序を変更します。

詳細
パラメータ
[in] p
ターゲット システム バイトの順序付けされた 64 ビット値をビッグ エンディアン バイト順で書き込むためのポインタ アドレス。不整合の可能性があります。
[in] v
必要に応じて、スワップされたバイトオーダーを書き込む 64 ビット値。

Read16

uint16_t Read16(
  uint8_t *& p
)

指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 16 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト順序変更を行って、ターゲット・システムがその値をターゲット・システムのバイト順に格納し、ポインタを 16 ビット(2 バイト)だけインクリメントします。

詳細
パラメータ
[in,out] p
16 ビットのビッグ エンディアン バイトの順序付き値を読み取り、16 ビット(2 バイト)単位でインクリメントするためのポインタ アドレスへの参照(調整されていない可能性がある)。
戻り値
指定されたポインタ アドレスの 16 ビット値(必要に応じて、バイトオーダーがスワップされます)。

Read16

uint16_t Read16(
  const uint8_t *& p
)

指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 16 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト順序変更を行って、ターゲット・システムがその値をターゲット・システムのバイト順に格納し、ポインタを 16 ビット(2 バイト)だけインクリメントします。

詳細
パラメータ
[in,out] p
16 ビットのビッグ エンディアン バイトの順序付けされた値を読み取り、16 ビット(2 バイト)単位でインクリメントする定数ポインタ アドレスへの参照(調整されていない可能性がある)。
戻り値
指定されたポインタ アドレスの 16 ビット値(必要に応じて、バイトオーダーがスワップされます)。

Read32

uint32_t Read32(
  uint8_t *& p
)

指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 32 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト順序変更を行って、ターゲット・システムがその値をターゲット・システムのバイト順序に置き、ポインタを 32 ビット(4 バイト)だけインクリメントします。

詳細
パラメータ
[in,out] p
32 ビットのビッグ エンディアン バイトの順序付けされた値を読み取り、32 ビット(4 バイト)単位でインクリメントするためのポインタ アドレスへの参照(調整されていない可能性がある)。
戻り値
必要に応じて、指定されたポインタ アドレスの 32 ビット値で、バイトオーダーがスワップされます。

Read32

uint32_t Read32(
  const uint8_t *& p
)

指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 32 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト順序変更を行って、ターゲット・システムがその値をターゲット・システムのバイト順序に置き、ポインタを 32 ビット(4 バイト)だけインクリメントします。

詳細
パラメータ
[in,out] p
32 ビットのビッグ エンディアン バイトの順序付き値を読み取り、32 ビット(4 バイト)単位でインクリメントするための定数ポインタ アドレスへの参照(調整されていない可能性がある)。
戻り値
必要に応じて、指定されたポインタ アドレスの 32 ビット値で、バイトオーダーがスワップされます。

Read64

uint64_t Read64(
  uint8_t *& p
)

指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 64 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット・システムがその値をターゲット・システムのバイト順に格納し、ポインタを 64 ビット(8 バイト)だけインクリメントします。

詳細
パラメータ
[in,out] p
64 ビットのビッグ エンディアン バイトの順序付けされた値を読み取り、64 ビット(8 バイト)単位でインクリメントするためのポインタ アドレスへの参照(調整されていない可能性がある)。
戻り値
必要に応じて、指定されたポインタ アドレスのバイトオーダーがスワップされた 64 ビット値。

Read64

uint64_t Read64(
  const uint8_t *& p
)

指定されたポインタ・アドレスからビッグ・エンディアンのバイト順の 64 ビット値のメモリ(不整合がある可能性がある)のメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット・システムがその値をターゲット・システムのバイト順に格納し、ポインタを 64 ビット(8 バイト)だけインクリメントします。

詳細
パラメータ
[in,out] p
64 ビットのビッグ エンディアン バイト順の値を読み取り、64 ビット(8 バイト)単位でインクリメントするための定数ポインタ アドレスへの参照(調整されていない可能性がある)。
戻り値
必要に応じて、指定されたポインタ アドレスのバイトオーダーがスワップされた 64 ビット値。

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

ターゲット システムが値をビッグ エンディアンのバイト順で格納できるように、指定されたポインタ アドレスに 16 ビット値でターゲット システム バイトをオーダーし、必要に応じてバイト並べ替えを行います(アライメントされていない場合もあります)。

詳細
パラメータ
[in] p
ターゲット システム バイトの順序付けされた 16 ビット値をビッグ エンディアン バイトの順序付けで書き込んでから、16 ビット(2 バイト)単位でインクリメントするためのポインタ アドレスへの参照(調整されていない可能性がある)。
[in] v
必要に応じて、スワップされたバイトオーダーを書き込む 16 ビットの値。

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

ターゲット システムが値をビッグ エンディアンのバイト順で格納できるように、32 ビット値のターゲット システム バイトを指定されたポインタ アドレスに、(アライメントされていない可能性がある)メモリ書き込みを行います。必要に応じてバイト並べ替えを行います。

詳細
パラメータ
[in] p
32 ビット値のターゲット システム バイトをビッグ エンディアン バイトの順序付けで書き込んでから、32 ビット(4 バイト)単位でインクリメントするためのポインタ アドレスへの参照(調整されていない可能性がある)。
[in] v
必要に応じて、スワップされたバイトオーダーを書き込む 32 ビット値。

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

ターゲット システムが値をビッグ エンディアンのバイト順に格納できるように、指定されたポインタ アドレスに 64 ビット値でターゲット システム バイトの順序付けを行い、場合によってはアライメントされていない可能性のあるメモリ書き込みを行い、必要に応じてバイト順序を変更します。

詳細
パラメータ
[in] p
ターゲット システム バイトの順序付けされた 64 ビット値をビッグ エンディアン バイトの順序付けで書き込んでから、64 ビット(8 バイト)ずつインクリメントするためのポインタ アドレスへの参照(調整されていない可能性がある)。
[in] v
必要に応じて、スワップされたバイトオーダーを書き込む 64 ビット値。