nl::Weave::Encoding::BigEndian

Cet espace de noms fournit des fonctions pour:

Résumé

  • Réorganisation des octets, par rapport au système hôte, par valeur de valeurs ordonnées en mode big-endian pour les types 16, 32 et 64 bits.
  • Exécution sûre et efficace d'accès mappés en mémoire, potentiellement non alignés, avec ou sans réorganisation des octets, vers des quantités ordonnées d'octets 8, 16, 32 et 64 bits en big endian, avec et sans gestion des pointeurs.

Sur les systèmes hôtes big endian, aucune réorganisation des octets ne se produit. Sur d'autres systèmes, la réorganisation des octets est effectuée de façon appropriée.

Fonctions

Get16(const uint8_t *p)
uint16_t
Effectuer une lecture dans la mémoire, potentiellement non alignée, de la valeur de 16 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, puis réarranger les octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible.
Get32(const uint8_t *p)
uint32_t
Effectuer une lecture dans la mémoire, potentiellement non alignée, de la valeur 32 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, puis réarranger les octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible.
Get64(const uint8_t *p)
uint64_t
Effectue une lecture de mémoire, potentiellement non alignée, de la valeur de 64 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible.
HostSwap16(uint16_t v)
uint16_t
Si nécessaire pour le système cible, cette commande effectue de manière conditionnelle un échange de l'ordre des octets par valeur de la valeur 16 bits spécifiée, présumé dans un ordre d'octets en mode big-endian vers le système cible (par exemple,
HostSwap32(uint32_t v)
uint32_t
Si nécessaire pour le système cible, cette opération effectue de manière conditionnelle un échange de l'ordre des octets par valeur de la valeur 32 bits spécifiée, présumé dans un ordre d'octets en mode big-endian vers le système cible (par exemple,
HostSwap64(uint64_t v)
uint64_t
Si nécessaire pour le système cible, cette commande effectue de manière conditionnelle un échange de l'ordre des octets par valeur de la valeur 64 bits spécifiée, présumé dans un ordre d'octets en mode big-endian vers le système cible (par exemple,
Put16(uint8_t *p, uint16_t v)
void
Effectuer une écriture dans la mémoire, potentiellement non alignée, de la valeur de 16 bits triée par les octets du système cible dans l'adresse de pointeur spécifiée, réarranger les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.
Put32(uint8_t *p, uint32_t v)
void
Effectue une écriture dans la mémoire, potentiellement non alignée, de la valeur de 32 bits ordonnée par les octets du système cible dans l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.
Put64(uint8_t *p, uint64_t v)
void
Effectue une écriture dans la mémoire, potentiellement non alignée, de la valeur de 64 bits ordonnée par les octets du système cible dans l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.
Read16(uint8_t *& p)
uint16_t
Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur de 16 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisation des octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, et incrémente le pointeur de 16 bits (2 octets).
Read16(const uint8_t *& p)
uint16_t
Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur de 16 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisation des octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, et incrémente le pointeur de 16 bits (2 octets).
Read32(uint8_t *& p)
uint32_t
Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur 32 bits triée par octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, puis incrémentez le pointeur de 32 bits (4 octets).
Read32(const uint8_t *& p)
uint32_t
Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur 32 bits triée par octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, puis incrémentez le pointeur de 32 bits (4 octets).
Read64(uint8_t *& p)
uint64_t
Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur de 64 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisation des octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, et incrémente le pointeur de 64 bits (8 octets).
Read64(const uint8_t *& p)
uint64_t
Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur de 64 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisation des octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, et incrémente le pointeur de 64 bits (8 octets).
Write16(uint8_t *& p, uint16_t v)
void
Effectuer une écriture dans la mémoire, potentiellement non alignée, de la valeur de 16 bits triée par les octets du système cible dans l'adresse de pointeur spécifiée, réarranger les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.
Write32(uint8_t *& p, uint32_t v)
void
Effectue une écriture dans la mémoire, potentiellement non alignée, de la valeur de 32 bits ordonnée par les octets du système cible dans l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.
Write64(uint8_t *& p, uint64_t v)
void
Effectue une écriture dans la mémoire, potentiellement non alignée, de la valeur de 64 bits ordonnée par les octets du système cible dans l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.

Fonctions

Get16

uint16_t Get16(
  const uint8_t *p
)

Effectuer une lecture dans la mémoire, potentiellement non alignée, de la valeur de 16 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, puis réarranger les octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible.

Détails
Paramètres
[in] p
Adresse de pointeur, potentiellement non alignée, à partir de laquelle lire la valeur ordonnée de l'octet 16 bits big endian.
Renvoie
Valeur de 16 bits à l'adresse de pointeur spécifiée, si nécessaire, dans l'ordre des octets.

Get32

uint32_t Get32(
  const uint8_t *p
)

Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur 32 bits triée en octets big-endian à partir de l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible.

Détails
Paramètres
[in] p
Adresse de pointeur, potentiellement non alignée, à partir de laquelle lire la valeur ordonnée de l'octet 32 bits big endian.
Renvoie
Valeur 32 bits à l'adresse de pointeur spécifiée, si nécessaire, dans l'ordre des octets.

Get64

uint64_t Get64(
  const uint8_t *p
)

Effectue une lecture de mémoire, potentiellement non alignée, de la valeur de 64 bits ordonnée par des octets big-endian à partir de l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible.

Détails
Paramètres
[in] p
Adresse de pointeur, potentiellement non alignée, à partir de laquelle lire la valeur ordonnée de l'octet 64 bits big endian.
Renvoie
Valeur 64 bits à l'adresse de pointeur spécifiée, si nécessaire, dans l'ordre des octets.

HostSwap16

uint16_t HostSwap16(
  uint16_t v
)

Si nécessaire pour le système cible, cette commande effectue de manière conditionnelle un échange de l'ordre des octets par valeur de la valeur 16 bits spécifiée, présumé dans un ordre d'octets en mode big-endian vers le système cible (par exemple,

l'ordre des octets).

Par conséquent, sur les systèmes cibles Bit-Endian, il s'agit d'une opération no-op et sur les systèmes cibles Big Endian, cela effectue une réorganisation.

Détails
Paramètres
[in] v
Valeur de 16 bits à échanger dans l'ordre des octets.
Renvoie
Valeur d'entrée, si nécessaire, ordre des octets échangé.

HostSwap32

uint32_t HostSwap32(
  uint32_t v
)

Si nécessaire pour le système cible, cette opération effectue de manière conditionnelle un échange de l'ordre des octets par valeur de la valeur 32 bits spécifiée, présumé dans un ordre d'octets en mode big-endian vers le système cible (par exemple,

l'ordre des octets).

Par conséquent, sur les systèmes cibles Bit-Endian, il s'agit d'une opération no-op et sur les systèmes cibles Big Endian, cela effectue une réorganisation.

Détails
Paramètres
[in] v
Valeur 32 bits à échanger dans l'ordre des octets.
Renvoie
Valeur d'entrée, si nécessaire, ordre des octets échangé.

HostSwap64

uint64_t HostSwap64(
  uint64_t v
)

Si nécessaire pour le système cible, cette commande effectue de manière conditionnelle un échange de l'ordre des octets par valeur de la valeur 64 bits spécifiée, présumé dans un ordre d'octets en mode big-endian vers le système cible (par exemple,

l'ordre des octets).

Par conséquent, sur les systèmes cibles Bit-Endian, il s'agit d'une opération no-op et sur les systèmes cibles Big Endian, cela effectue une réorganisation.

Détails
Paramètres
[in] v
Valeur 64 bits à échanger dans l'ordre des octets.
Renvoie
Valeur d'entrée, si nécessaire, ordre des octets échangé.

Put16

void Put16(
  uint8_t *p,
  uint16_t v
)

Effectue une écriture dans la mémoire, potentiellement non alignée, de la valeur de 16 bits ordonnée par les octets du système cible dans l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.

Détails
Paramètres
[in] p
Adresse de pointeur, potentiellement non alignée, pour écrire la valeur de 16 bits triée en octets du système cible dans l'ordre des octets en mode big endian.
[in] v
Valeur 16 bits à écrire, si nécessaire, dans l'ordre des octets échangé.

Put32

void Put32(
  uint8_t *p,
  uint32_t v
)

Effectue une écriture dans la mémoire, potentiellement non alignée, de la valeur de 32 bits ordonnée par les octets du système cible dans l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.

Détails
Paramètres
[in] p
Adresse de pointeur, potentiellement non alignée, pour écrire la valeur de 32 bits triée en octets du système cible dans l'ordre des octets en mode big endian.
[in] v
Valeur 32 bits à écrire, si nécessaire, dans l'ordre des octets échangé.

Put64

void Put64(
  uint8_t *p,
  uint64_t v
)

Effectue une écriture dans la mémoire, potentiellement non alignée, de la valeur de 64 bits ordonnée par les octets du système cible dans l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.

Détails
Paramètres
[in] p
Adresse de pointeur, potentiellement non alignée, pour écrire la valeur de 64 bits ordonnée en octets du système cible dans l'ordre des octets en mode big endian.
[in] v
Valeur 64 bits à écrire, si nécessaire, dans l'ordre des octets échangé.

Read16

uint16_t Read16(
  uint8_t *& p
)

Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur de 16 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisation des octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, et incrémente le pointeur de 16 bits (2 octets).

Détails
Paramètres
[in,out] p
Référence à une adresse de pointeur, potentiellement non alignée, pour lire la valeur ordonnée en octets Big Endian 16 bits à partir de, puis l'incrémenter de 16 bits (2 octets).
Renvoie
Valeur 16 bits à l'adresse de pointeur spécifiée, si nécessaire, ordre des octets échangé.

Read16

uint16_t Read16(
  const uint8_t *& p
)

Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur de 16 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisation des octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, et incrémente le pointeur de 16 bits (2 octets).

Détails
Paramètres
[in,out] p
Référence à une adresse de pointeur constante, potentiellement non alignée, pour lire la valeur ordonnée en octets Big Endian 16 bits à partir de, puis l'incrémenter de 16 bits (2 octets).
Renvoie
Valeur 16 bits à l'adresse de pointeur spécifiée, si nécessaire, ordre des octets échangé.

Read32

uint32_t Read32(
  uint8_t *& p
)

Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur de 32 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisation des octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, et incrémente le pointeur de 32 bits (4 octets).

Détails
Paramètres
[in,out] p
Référence à une adresse de pointeur, potentiellement non alignée, pour lire la valeur ordonnée en octets Big Endian 32 bits à partir de, puis l'incrémenter de 32 bits (4 octets).
Renvoie
Valeur 32 bits à l'adresse de pointeur spécifiée, si nécessaire, ordre des octets échangé.

Read32

uint32_t Read32(
  const uint8_t *& p
)

Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur de 32 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisation des octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, et incrémente le pointeur de 32 bits (4 octets).

Détails
Paramètres
[in,out] p
Référence à une adresse de pointeur constante, potentiellement non alignée, pour lire la valeur ordonnée en octets Big Endian 32 bits à partir de, puis l'incrémenter de 32 bits (4 octets).
Renvoie
Valeur 32 bits à l'adresse de pointeur spécifiée, si nécessaire, ordre des octets échangé.

Read64

uint64_t Read64(
  uint8_t *& p
)

Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur de 64 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisation des octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, et incrémente le pointeur de 64 bits (8 octets).

Détails
Paramètres
[in,out] p
Référence à une adresse de pointeur, potentiellement non alignée, pour lire la valeur ordonnée en octets big endian 64 bits à partir de, puis l'incrémenter de 64 bits (8 octets).
Renvoie
Valeur 64 bits à l'adresse de pointeur spécifiée, si nécessaire, ordre des octets échangé.

Read64

uint64_t Read64(
  const uint8_t *& p
)

Effectue une lecture dans la mémoire, potentiellement non alignée, de la valeur de 64 bits triée par des octets big-endian à partir de l'adresse de pointeur spécifiée, réorganisation des octets, si nécessaire, pour que le système cible place la valeur dans l'ordre des octets du système cible, et incrémente le pointeur de 64 bits (8 octets).

Détails
Paramètres
[in,out] p
Référence à une adresse de pointeur constante, potentiellement non alignée, pour lire la valeur ordonnée en octets Big Endian 64 bits à partir de, puis l'incrémenter de 64 bits (8 octets).
Renvoie
Valeur 64 bits à l'adresse de pointeur spécifiée, si nécessaire, ordre des octets échangé.

Write16

void Write16(
  uint8_t *& p,
  uint16_t v
)

Effectuer une écriture dans la mémoire, potentiellement non alignée, de la valeur de 16 bits triée par les octets du système cible dans l'adresse de pointeur spécifiée, réarranger les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.

Détails
Paramètres
[in] p
Référence à une adresse de pointeur, potentiellement non alignée, pour écrire la valeur de 16 bits ordonnée en octets du système cible dans un ordre d'octets en mode big-endian, puis l'incrémenter de 16 bits (2 octets).
[in] v
Valeur 16 bits à écrire, si nécessaire, dans l'ordre des octets échangé.

Write32

void Write32(
  uint8_t *& p,
  uint32_t v
)

Effectue une écriture dans la mémoire, potentiellement non alignée, de la valeur de 32 bits ordonnée par les octets du système cible dans l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.

Détails
Paramètres
[in] p
Référence à une adresse de pointeur, potentiellement non alignée, pour écrire la valeur de 32 bits ordonnée en octets du système cible dans un ordre d'octets en mode big-endian, puis l'incrémenter de 32 bits (4 octets).
[in] v
Valeur 32 bits à écrire, si nécessaire, dans l'ordre des octets échangé.

Write64

void Write64(
  uint8_t *& p,
  uint64_t v
)

Effectue une écriture dans la mémoire, potentiellement non alignée, de la valeur de 64 bits ordonnée par les octets du système cible dans l'adresse de pointeur spécifiée. Réorganisez les octets, si nécessaire, pour que le système cible place la valeur dans un ordre d'octets en mode big-endian.

Détails
Paramètres
[in] p
Référence à une adresse de pointeur, potentiellement non alignée, pour écrire la valeur de 64 bits ordonnée en octets du système cible dans un ordre d'octets en mode big-endian, puis l'incrémenter de 64 bits (8 octets).
[in] v
Valeur 64 bits à écrire, si nécessaire, dans l'ordre des octets échangé.