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
對指定指標位址的目標系統位元組 (可能未對齊) 執行記憶體 (可能未對齊),必要時執行位元組重新排序,讓目標系統能夠以較小的位元組位元組順序排列這個值。
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
對指定指標位址的目標系統位元組 (可能未對齊) 執行記憶體 (可能未對齊),必要時執行位元組重新排序,讓目標系統能夠以較小的位元組位元組順序排列這個值。

函式

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 位元值的 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
)

對指定指標位址的目標系統位元組 (可能未對齊) 執行記憶體 (可能未對齊),必要時執行位元組重新排序,讓目標系統能夠以較小的位元組位元組順序排列這個值。

詳細資料
參數
[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
)

對指定指標位址的目標系統位元組 (可能未對齊) 執行記憶體 (可能未對齊),必要時執行位元組重新排序,讓目標系統能夠以較小的位元組位元組順序排列這個值。

詳細資料
參數
[in] p
這是指標位址 (可能未對齊) 的參照,這會將目標系統位元組排序的 64 位元值,依小行位元組順序寫入,再依 64 位元 (8 位元組) 遞增。
[in] v
要寫入的 64 位元值 (如有必要,已交換位元組順序)。