estrutura PNP_SERIAL_BUS_DESCRIPTOR (reshub.h)

A estrutura PNP_SERIAL_BUS_DESCRIPTOR descreve a conexão física de um dispositivo de destino com um barramento serial (I2C, SPI ou UART).

Sintaxe

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;

Membros

Tag

O tipo de barramento serial. Esse membro está definido como 0x8e para uma conexão de barramento serial (I2C, SPI ou UART). Para obter mais informações, consulte a descrição do descritor de conexão de barramento serial na especificação ACPI 5.0.

Length

O comprimento, em bytes, do descritor de conexão do barramento serial. Para ser consistente com a especificação ACPI 5.0, a contagem de bytes no membro Length da estrutura PNP_SERIAL_BUS_DESCRIPTOR é igual ao tamanho da estrutura, menos os três bytes nos membros Marca e Comprimento no início da estrutura, além do número de bytes de dados específicos do tipo de barramento e da cadeia de caracteres fonte de recurso que seguem a estrutura. A cadeia de caracteres Fonte de Recurso, que é um campo obrigatório, tem um tamanho mínimo de dois bytes (para um nome de Fonte de Recurso de um caractere e um nulo de terminação). Assim, o valor mínimo válido de Length é 11. Para obter mais informações, consulte a especificação ACPI 5.0.

RevisionId

A ID de revisão do descritor de conexão do barramento serial. Esse membro é definido como a constante SERIAL_BUS_DESCRIPTOR_REVISION, que é definida no arquivo de cabeçalho Reshub.h.

ResourceSourceIndex

Reservado para uso futuro. Esse membro não é utilizado e definido como zero.

SerialBusType

O tipo de barramento serial. Esse membro é definido como 1 (para I2C), 2 (para SPI) ou 3 (para UART). Outros valores são reservados para uso futuro ou são definidos pelo fornecedor de hardware. Para obter mais informações, consulte a especificação ACPI 5.0.

GeneralFlags

Sinalizadores comuns a todos os tipos de barramento serial. O bit 0 é o sinalizador de modo subordinado. Se esse bit for definido como 1, a comunicação dessa conexão será iniciada pelo controlador de barramento; caso contrário, a comunicação é iniciada pelo dispositivo de destino. O bit 1 é o sinalizador de consumidor/produtor e sempre é definido como 1. Nenhum outro bit de sinalizador está definido no momento. Para obter mais informações, consulte a especificação ACPI 5.0.

TypeSpecificFlags

Sinalizadores específicos para o tipo de barramento serial. Para um barramento I2C, o bit 0 será definido se a conexão usar endereços de 10 bits; caso contrário, a conexão usa endereços de 7 bits. Nenhum outro bit de sinalizador está definido no momento para I2C. Para obter mais informações, consulte a especificação ACPI 5.0.

TypeSpecificRevisionId

A ID de revisão da variante dessa estrutura que é usada para o tipo de barramento serial (I2C, SPI e UART) especificado pelo membro Tag . Cada tipo de barramento serial estende a estrutura PNP_SERIAL_BUS_DESCRIPTOR adicionando campos específicos ao tipo de barramento. Para obter mais informações, consulte a especificação ACPI 5.0.

TypeDataLength

O comprimento, em bytes, dos dados específicos do tipo de barramento que seguem a estrutura PNP_SERIAL_BUS_DESCRIPTOR . Esse valor de comprimento inclui os dados entre o final do membro TypeDataLength e o início da cadeia de caracteres fonte de recurso, mas não inclui a cadeia de caracteres fonte de recurso. Para obter mais informações, consulte a especificação ACPI 5.0.

Comentários

Essa estrutura define os campos de dados em um descritor de conexão de barramento serial, conforme descrito na seção 6.4.3.8.2 da especificação ACPI 5.0. Esse descritor descreve a conexão de barramento com um dispositivo de destino conectado a um barramento serial (I2C, SPI ou UART).

Por exemplo, para um dispositivo em um barramento I2C, a estrutura de PNP_SERIAL_BUS_DESCRIPTOR (e sua extensão específica do tipo de barramento) especificam o endereço do barramento do dispositivo, o modo de endereço (7 bits ou 10 bits) e a frequência em que o relógio do barramento é acessado. Para obter um exemplo de código que mostra como um driver de controlador I2C extrai essas informações da estrutura, consulte Como obter as configurações de conexão de um dispositivo.

A definição de estrutura PNP_SERIAL_BUS_DESCRIPTOR no arquivo de cabeçalho Reshub.h é precedida por uma instrução include para o arquivo de cabeçalho Pshpack1.h, que configura o compilador para empacotar membros de estrutura adjacentes para limites de bytes, sem intervindo lacunas. Em seguida, o software pode sobrepor a estrutura empacotada sobre a imagem de memória do descritor de conexão do barramento serial para acessar os campos individuais desse descritor. Os membros do USHORT da estrutura podem não estar alinhados até mesmo aos limites de bytes na memória. Os bytes nos membros do USHORT são armazenados em ordem little-endian para as arquiteturas de processador x86, x64 e ARM.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte começando com Windows 8.
Cabeçalho reshub.h