estructura de PNP_SERIAL_BUS_DESCRIPTOR (reshub.h)

La estructura de PNP_SERIAL_BUS_DESCRIPTOR describe la conexión física de un dispositivo de destino a un bus serie (I2C, SPI o UART).

Sintaxis

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;

Miembros

Tag

Tipo de bus serie. Este miembro se establece en 0x8e para una conexión de bus serie (I2C, SPI o UART). Para obtener más información, vea la descripción del descriptor de conexión de bus serie en la especificación ACPI 5.0.

Length

Longitud, en bytes, del descriptor de conexión de bus serie. Para ser coherente con la especificación ACPI 5.0, el recuento de bytes del miembro Length de la estructura de PNP_SERIAL_BUS_DESCRIPTOR es igual al tamaño de la estructura, menos los tres bytes de los miembros Tag y Length al principio de la estructura, además del número de bytes de datos específicos del tipo bus y la cadena de origen de recursos que siguen la estructura. La cadena de origen de recursos, que es un campo obligatorio, tiene un tamaño mínimo de dos bytes (para un nombre de origen de recurso de un carácter y un valor NULL de terminación). Por lo tanto, el valor de Longitud mínimo válido es 11. Para obtener más información, consulte la especificación ACPI 5.0.

RevisionId

Identificador de revisión del descriptor de conexión de bus serie. Este miembro se establece en la constante SERIAL_BUS_DESCRIPTOR_REVISION, que se define en el archivo de encabezado Reshub.h.

ResourceSourceIndex

Reservado para uso futuro. Este miembro no se usa y se establece en cero.

SerialBusType

Tipo de bus serie. Este miembro se establece en 1 (para I2C), 2 (para SPI) o 3 (para UART). Otros valores están reservados para uso futuro o están definidos por el proveedor de hardware. Para obtener más información, consulte la especificación ACPI 5.0.

GeneralFlags

Marcas que son comunes a todos los tipos de bus serie. Bit 0 es la marca de modo subordinado. Si este bit se establece en 1, el controlador de bus inicia la comunicación de esta conexión; de lo contrario, el dispositivo de destino inicia la comunicación. El bit 1 es la marca de consumidor o productor y siempre se establece en 1. Actualmente no se definen otros bits de marca. Para obtener más información, consulte la especificación ACPI 5.0.

TypeSpecificFlags

Marcas específicas del tipo de bus serie. Para un bus I2C, se establece el bit 0 si la conexión usa direcciones de 10 bits; de lo contrario, la conexión usa direcciones de 7 bits. Actualmente no se han definido otros bits de marca para I2C. Para obtener más información, consulte la especificación ACPI 5.0.

TypeSpecificRevisionId

Identificador de revisión de la variante de esta estructura que se usa para el tipo de bus serie (I2C, SPI y UART) especificado por el miembro Tag . Cada tipo de bus serie extiende la estructura de PNP_SERIAL_BUS_DESCRIPTOR agregando campos específicos del tipo de bus. Para obtener más información, consulte la especificación ACPI 5.0.

TypeDataLength

Longitud, en bytes, de los datos específicos del tipo de bus que siguen a la estructura de PNP_SERIAL_BUS_DESCRIPTOR . Este valor de longitud incluye los datos entre el final del miembro TypeDataLength y el inicio de la cadena de origen de recursos, pero no incluye la cadena de origen de recursos. Para obtener más información, consulte la especificación ACPI 5.0.

Comentarios

Esta estructura define los campos de datos en un descriptor de conexión de bus serie, como se describe en la sección 6.4.3.8.2 de la especificación ACPI 5.0. Este descriptor describe la conexión de bus a un dispositivo de destino que está conectado a un bus serie (I2C, SPI o UART).

Por ejemplo, para un dispositivo en un bus I2C, la estructura de PNP_SERIAL_BUS_DESCRIPTOR (y su extensión específica del tipo de bus) especifica la dirección del bus del dispositivo, el modo de dirección (7 o 10 bits) y la frecuencia con la que se ejecuta el reloj del bus cuando se accede al dispositivo. Para obtener un ejemplo de código que muestra cómo un controlador de controlador I2C extrae esta información de la estructura, vea Cómo obtener la configuración de conexión de un dispositivo.

La definición de estructura de PNP_SERIAL_BUS_DESCRIPTOR en el archivo de encabezado Reshub.h está precedida por una instrucción include para el archivo de encabezado Pshpack1.h, que configura el compilador para empaquetar miembros de estructura adyacentes a límites de bytes, sin espacios intermedios. A continuación, el software puede superponer la estructura empaquetada sobre la imagen de memoria del descriptor de conexión de bus serie para acceder a los campos individuales de este descriptor. Es posible que los miembros de USHORT de la estructura no estén alineados con límites de bytes en la memoria. Los bytes de los miembros de USHORT se almacenan en orden little-endian para las arquitecturas de procesador x86, x64 y ARM.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite a partir de Windows 8.
Encabezado reshub.h