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 位元數值 (可能未對齊) 的記憶體讀取作業,並視需要執行位元組重新排序,以便目標系統將值放入目標系統位元組排序。
詳細資料 | |||
---|---|---|---|
參數 |
|
||
傳回 |
指定指標位址的 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 )
對指定指標位址的目標系統位元組 (可能未對齊) 執行記憶體 (可能未對齊),必要時執行位元組重新排序,讓目標系統能夠採用大端位元組排序。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|
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 )
對指定指標位址的目標系統位元組 (可能未對齊) 執行記憶體 (可能未對齊),必要時執行位元組重新排序,讓目標系統能夠採用大端位元組排序。
詳細資料 | |||||
---|---|---|---|---|---|
參數 |
|