Partager via


structure PNP_SERIAL_BUS_DESCRIPTOR (reshub.h)

La structure PNP_SERIAL_BUS_DESCRIPTOR décrit la connexion physique d’un appareil cible à un bus série (I2C, SPI ou UART).

Syntaxe

typedef struct _PNP_SERIAL_BUS_DESCRIPTOR {
  UCHAR  Tag;
  USHORT Length;
  UCHAR  RevisionId;
  UCHAR  ResourceSourceIndex;
  UCHAR  SerialBusType;
  UCHAR  GeneralFlags;
  USHORT TypeSpecificFlags;
  UCHAR  TypeSpecificRevisionId;
  USHORT TypeDataLength;
} PNP_SERIAL_BUS_DESCRIPTOR, *PPNP_SERIAL_BUS_DESCRIPTOR;

Membres

Tag

Type de bus série. Ce membre est défini sur 0x8e pour une connexion de bus série (I2C, SPI ou UART). Pour plus d’informations, consultez la description du descripteur de connexion de bus série dans la spécification ACPI 5.0.

Length

Longueur, en octets, du descripteur de connexion de bus série. Pour être cohérent avec la spécification ACPI 5.0, le nombre d’octets dans le membre Length de la structure PNP_SERIAL_BUS_DESCRIPTOR est égal à la taille de la structure, moins les trois octets des membres Tag et Length au début de la structure, plus le nombre d’octets de données spécifiques au type de bus et la chaîne source de ressource qui suivent la structure. La chaîne source de ressource, qui est un champ obligatoire, a une taille minimale de deux octets (pour un nom de source de ressource d’un caractère et une valeur null de fin). Par conséquent, la valeur de longueur minimale valide est 11. Pour plus d’informations, consultez la spécification ACPI 5.0.

RevisionId

ID de révision du descripteur de connexion de bus série. Ce membre est défini sur la constante SERIAL_BUS_DESCRIPTOR_REVISION, qui est définie dans le fichier d’en-tête Reshub.h.

ResourceSourceIndex

Réservé pour un usage futur. Ce membre est inutilisé et défini sur zéro.

SerialBusType

Type de bus série. Ce membre est défini sur 1 (pour I2C), 2 (pour SPI) ou 3 (pour UART). Les autres valeurs sont soit réservées à une utilisation ultérieure, soit définies par le fournisseur de matériel. Pour plus d’informations, consultez la spécification ACPI 5.0.

GeneralFlags

Indicateurs communs à tous les types de bus série. Bit 0 est l’indicateur de mode subordonné. Si ce bit est défini sur 1, la communication de cette connexion est lancée par le contrôleur de bus ; sinon, la communication est lancée par l’appareil cible. Bit 1 est l’indicateur consommateur/producteur et est toujours défini sur 1. Aucun autre bits d’indicateur n’est actuellement défini. Pour plus d’informations, consultez la spécification ACPI 5.0.

TypeSpecificFlags

Indicateurs spécifiques au type de bus série. Pour un bus I2C, le bit 0 est défini si la connexion utilise des adresses 10 bits ; sinon, la connexion utilise des adresses 7 bits. Aucun autre bits d’indicateur n’est actuellement défini pour I2C. Pour plus d’informations, consultez la spécification ACPI 5.0.

TypeSpecificRevisionId

ID de révision de la variante de cette structure utilisée pour le type de bus série (I2C, SPI et UART) spécifié par le membre Tag . Chaque type de bus série étend la structure PNP_SERIAL_BUS_DESCRIPTOR en ajoutant des champs spécifiques au type de bus. Pour plus d’informations, consultez la spécification ACPI 5.0.

TypeDataLength

Longueur, en octets, des données spécifiques au type de bus qui suivent la structure PNP_SERIAL_BUS_DESCRIPTOR . Cette valeur de longueur inclut les données comprises entre la fin du membre TypeDataLength et le début de la chaîne source de ressource, mais n’inclut pas la chaîne Source de ressource. Pour plus d’informations, consultez la spécification ACPI 5.0.

Remarques

Cette structure définit les champs de données dans un descripteur de connexion de bus série, comme décrit dans la section 6.4.3.8.2 de la spécification ACPI 5.0. Ce descripteur décrit la connexion de bus à un appareil cible connecté à un bus série (I2C, SPI ou UART).

Par exemple, pour un appareil sur un bus I2C, la structure PNP_SERIAL_BUS_DESCRIPTOR (et son extension spécifique au type de bus) spécifient l’adresse du bus de l’appareil, le mode d’adresse (7 bits ou 10 bits) et la fréquence à laquelle exécuter l’horloge du bus lorsque l’appareil est accessible. Pour obtenir un exemple de code qui montre comment un pilote de contrôleur I2C extrait ces informations de la structure, consultez Comment obtenir les paramètres de connexion d’un appareil.

La définition de structure PNP_SERIAL_BUS_DESCRIPTOR dans le fichier d’en-tête Reshub.h est précédée d’une instruction include pour le fichier d’en-tête Pshpack1.h, qui configure le compilateur pour qu’il empaquete les membres de structure adjacents aux limites d’octets, sans intercaler les lacunes. Le logiciel peut ensuite superposer la structure empaquetée sur l’image mémoire du descripteur de connexion de bus série pour accéder aux champs individuels de ce descripteur. Les membres USHORT de la structure peuvent ne pas être alignés sur les limites d’octets même dans la mémoire. Les octets des membres USHORT sont stockés dans un ordre peu endian pour les architectures de processeur x86, x64 et ARM.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Pris en charge à partir de Windows 8.
En-tête reshub.h