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
指定されたポインタ アドレスに、ターゲット システムのバイト順序があるバイトを(アライメントされていない可能性がある)メモリ書き込みを行い、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をビッグ エンディアン バイト順序で配置します。
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
指定されたポインタ アドレスに、ターゲット システムのバイト順序があるバイトを(アライメントされていない可能性がある)メモリ書き込みを行い、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をビッグ エンディアン バイト順序で配置します。
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 ビット値の値によるバイトオーダーのスワップを条件付きで実行します。これは、ターゲット システムに対するビッグ エンディアン バイト順序であると仮定されます(つまり、

host など)のバイト順序です。

したがって、ビット エンディアン ターゲット システムでは何も実行されず、ビッグ エンディアン ターゲット システムでは並べ替えが実行されます。

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

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

これは、ターゲット システムに対する必要に応じて、指定された 32 ビット値の値によるバイトオーダーのスワップを条件付きで実行します。これは、ターゲット システムに対するビッグ エンディアン バイト順序であると仮定されます(つまり、

host など)のバイト順序です。

したがって、ビット エンディアン ターゲット システムでは何も実行されず、ビッグ エンディアン ターゲット システムでは並べ替えが実行されます。

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

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

これは、ターゲット システムに対する必要に応じて、指定された 64 ビット値の値によるバイトオーダーのスワップを条件付きで実行します。これは、ターゲット システムに対するビッグ エンディアン バイト順序であると仮定されます(つまり、

host など)のバイト順序です。

したがって、ビット エンディアン ターゲット システムでは何も実行されず、ビッグ エンディアン ターゲット システムでは並べ替えが実行されます。

詳細
パラメータ
[in] v
バイト順でスワップされる 64 ビットの値。
戻り値
必要に応じてバイト順がスワップされた入力値。

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

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

詳細
パラメータ
[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
)

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

詳細
パラメータ
[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 ビットの値。