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 ビット値の値によるバイト順のスワップが条件付きで実行されます。対象システム(つまり、
バイトの順序付けを行います。
そのため、リトル エンディアンのターゲット システムでは何も行われず、ビッグ エンディアンのターゲット システムでは並べ替えが行われます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
入力値(必要に応じてバイトオーダーがスワップされます)。
|
HostSwap32
uint32_t HostSwap32( uint32_t v )
これにより、ターゲット システムで必要に応じて、指定された 32 ビット値の値によるバイト オーダーのスワップが条件付きで実行されます。ターゲット システム(つまり、
バイトの順序付けを行います。
そのため、リトル エンディアンのターゲット システムでは何も行われず、ビッグ エンディアンのターゲット システムでは並べ替えが行われます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
入力値(必要に応じてバイトオーダーがスワップされます)。
|
HostSwap64
uint64_t HostSwap64( uint64_t v )
これにより、ターゲット システムで必要に応じて、指定された 64 ビット値の値によるバイト順のスワップが条件付きで実行されます。対象システム(つまり、
バイトの順序付けを行います。
そのため、リトル エンディアンのターゲット システムでは何も行われず、ビッグ エンディアンのターゲット システムでは並べ替えが行われます。
詳細 | |||
---|---|---|---|
パラメータ |
|
||
戻り値 |
入力値(必要に応じてバイトオーダーがスワップされます)。
|
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 ビット値でターゲット システム バイトをオーダーし、必要に応じてバイト並べ替えを行います(アライメントされていない場合もあります)。
詳細 | |||||
---|---|---|---|---|---|
パラメータ |
|