nl:: Weave:: Encoding:: LittleEndian
この名前空間は次の関数を提供します。
概要
- 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 ビット順)に対して、アライメントされていない可能性のあるメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をターゲット システムのバイト順に配置します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
指定されたポインタ アドレスの 16 ビット値。必要に応じてバイトが並べ替えられます。
|
Get32
uint32_t Get32( const uint8_t *p )
指定されたポインタ アドレスから、32 ビット順のリトル エンディアン バイト値に対して、アライメントされていない可能性のあるメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をターゲット システムのバイト 順序で配置します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
指定されたポインタ アドレスの 32 ビット値。必要に応じてバイトが並べ替えられます。
|
Get64
uint64_t Get64( const uint8_t *p )
指定されたポインタ アドレスから、64 ビット順のリトル エンディアン バイトに対して、場合によってはアラインされていないメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をターゲット システムのバイト 順序で配置します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
指定されたポインタ アドレスの 64 ビット値。必要に応じてバイトが並べ替えられる。
|
HostSwap16
uint16_t HostSwap16( uint16_t v )
これは、ターゲット システムに対する必要に応じて、指定された 16 ビット値の値によるバイトオーダーのスワップを条件付きで実行します。ターゲット システム(すなわち、リトル エンディアン バイト順序であると仮定)
host など)のバイト順序です。
そのため、リトル エンディアン ターゲット システムでは何も実行されず、ビッグ エンディアン ターゲット システムでは並べ替えが実行されます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
必要に応じてバイト順がスワップされた入力値。
|
HostSwap32
uint32_t HostSwap32( uint32_t v )
これは、ターゲット システムに対する必要に応じて、指定された 32 ビット値の値によるバイトオーダーのスワップを条件付きで実行します。ターゲット システムに対するリトル エンディアン バイトオーダーであると仮定されます(例:
host など)のバイト順序です。
そのため、リトル エンディアン ターゲット システムでは何も実行されず、ビッグ エンディアン ターゲット システムでは並べ替えが実行されます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
必要に応じてバイト順がスワップされた入力値。
|
HostSwap64
uint64_t HostSwap64( uint64_t v )
これは、ターゲット システムに対する必要に応じて、指定された 64 ビット値の値によるバイトオーダーのスワップを条件付きで実行します。ターゲット システムに対するリトル エンディアン バイトオーダーであると仮定されます(例:
host など)のバイト順序です。
そのため、リトル エンディアン ターゲット システムでは何も実行されず、ビッグ エンディアン ターゲット システムでは並べ替えが実行されます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
必要に応じてバイト順がスワップされた入力値。
|
Put16
void Put16( uint8_t *p, uint16_t v )
指定されたポインタ アドレスに、ターゲット システムのバイト順(16 ビット順)に、アライメントされていない可能性のあるメモリ書き込みを実行し、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をリトル エンディアン バイト順序で入力します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
Put32
void Put32( uint8_t *p, uint32_t v )
指定されたポインタ アドレスに、ターゲット システムの 32 ビット値の順序付けされたバイトを、アライメントされていない可能性のあるメモリ書き込みを実行して、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をリトル エンディアンのバイト順序で配置します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
Put64
void Put64( uint8_t *p, uint64_t v )
指定されたポインタ アドレスに、ターゲット システムの 64 ビット値の順序付けされたバイトを、アライメントされていない可能性のあるメモリ書き込みを実行して、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をリトル エンディアンのバイト順序で配置します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
Read16
uint16_t Read16( uint8_t *& p )
指定されたポインタ アドレスから、リトル エンディアンのバイト順(16 ビット順)に対して、アライメントされていない可能性のあるメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をターゲット システムのバイト順序で入力し、ポインタを 16 ビット(2 バイト)増分します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
必要に応じてバイト順がスワップされた、指定されたポインタ アドレスの 16 ビット値。
|
Read16
uint16_t Read16( const uint8_t *& p )
指定されたポインタ アドレスから、リトル エンディアンのバイト順(16 ビット順)に対して、アライメントされていない可能性のあるメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をターゲット システムのバイト順序で入力し、ポインタを 16 ビット(2 バイト)増分します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
必要に応じてバイト順がスワップされた、指定されたポインタ アドレスの 16 ビット値。
|
Read32
uint32_t Read32( uint8_t *& p )
指定されたポインタ アドレスから、32 ビット順のリトル エンディアン バイトのメモリ読み取り(アライメントされていない可能性がある)を実行します。ターゲット システムでは必要に応じてバイト並べ替えを行い、値をターゲット システムのバイト オーダーにして、ポインタを 32 ビット(4 バイト)増分します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
指定されたポインタ アドレスの 32 ビット値(必要に応じてバイト順がスワップ)。
|
Read32
uint32_t Read32( const uint8_t *& p )
指定されたポインタ アドレスから、32 ビット順のリトル エンディアン バイトのメモリ読み取り(アライメントされていない可能性がある)を実行します。ターゲット システムでは必要に応じてバイト並べ替えを行い、値をターゲット システムのバイト オーダーにして、ポインタを 32 ビット(4 バイト)増分します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
指定されたポインタ アドレスの 32 ビット値(必要に応じてバイト順がスワップ)。
|
Read64
uint64_t Read64( uint8_t *& p )
指定されたポインタ アドレスから、リトル エンディアンのバイト順(64 ビット順)に対して、アライメントされていない可能性のあるメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をターゲット システムのバイト順にして、ポインタを 64 ビット(8 バイト)だけ増分します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
必要に応じてバイト順がスワップされた、指定されたポインタ アドレスの 64 ビット値。
|
Read64
uint64_t Read64( const uint8_t *& p )
指定されたポインタ アドレスから、リトル エンディアンのバイト順(64 ビット順)に対して、アライメントされていない可能性のあるメモリ読み取りを実行し、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をターゲット システムのバイト順にして、ポインタを 64 ビット(8 バイト)だけ増分します。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
必要に応じてバイト順がスワップされた、指定されたポインタ アドレスの 64 ビット値。
|
Write16
void Write16( uint8_t *& p, uint16_t v )
指定されたポインタ アドレスに、ターゲット システムのバイト順(16 ビット順)に、アライメントされていない可能性のあるメモリ書き込みを実行し、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をリトル エンディアン バイト順序で入力します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
Write32
void Write32( uint8_t *& p, uint32_t v )
指定されたポインタ アドレスに、ターゲット システムの 32 ビット値の順序付けされたバイトを、アライメントされていない可能性のあるメモリ書き込みを実行して、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をリトル エンディアンのバイト順序で配置します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|
Write64
void Write64( uint8_t *& p, uint64_t v )
指定されたポインタ アドレスに、ターゲット システムの 64 ビット値の順序付けされたバイトを、アライメントされていない可能性のあるメモリ書き込みを実行して、必要に応じてバイト並べ替えを実行して、ターゲット システムが値をリトル エンディアンのバイト順序で配置します。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|