struttura PNP_SERIAL_BUS_DESCRIPTOR (reshub.h)
La struttura PNP_SERIAL_BUS_DESCRIPTOR descrive la connessione fisica di un dispositivo di destinazione a un bus seriale (I2C, SPI o UART).
Sintassi
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;
Membri
Tag
Tipo di bus seriale. Questo membro è impostato su 0x8e per una connessione del bus seriale (I2C, SPI o UART). Per altre informazioni, vedere la descrizione del descrittore di connessione del bus seriale nella specifica ACPI 5.0 .
Length
Lunghezza, in byte, del descrittore di connessione del bus seriale. Per essere coerente con la specifica ACPI 5.0, il conteggio dei byte nel membro length della struttura PNP_SERIAL_BUS_DESCRIPTOR è uguale alla dimensione della struttura, meno i tre byte nella Tag e membri Length all'inizio della struttura, più il numero di byte di dati specifici del tipo bus e stringa origine risorsa che seguono la struttura. La stringa origine risorsa, che è un campo obbligatorio, ha una dimensione minima di due byte (per un nome origine risorsa di un carattere e un valore Null di terminazione). Pertanto, il valore minimo valido Length è 11. Per altre informazioni, vedere la specifica ACPI 5.0.
RevisionId
ID revisione del descrittore di connessione del bus seriale. Questo membro è impostato sulla costante SERIAL_BUS_DESCRIPTOR_REVISION, definita nel file di intestazione Reshub.h.
ResourceSourceIndex
Riservato per uso futuro. Questo membro non è usato e impostato su zero.
SerialBusType
Tipo di bus seriale. Questo membro è impostato su 1 (per I2C), 2 (per SPI) o 3 (per UART). Altri valori sono riservati per un uso futuro o sono definiti dal fornitore dell'hardware. Per altre informazioni, vedere la specifica ACPI 5.0.
GeneralFlags
Flag comuni a tutti i tipi di bus seriali. Bit 0 è il flag in modalità subordinata. Se questo bit è impostato su 1, la comunicazione di questa connessione viene avviata dal controller del bus; in caso contrario, la comunicazione viene avviata dal dispositivo di destinazione. Bit 1 è il flag consumer/producer ed è sempre impostato su 1. Non sono attualmente definiti altri bit di flag. Per altre informazioni, vedere la specifica ACPI 5.0.
TypeSpecificFlags
Flag specifici del tipo di bus seriale. Per un bus I2C, il bit 0 viene impostato se la connessione usa indirizzi a 10 bit; in caso contrario, la connessione usa indirizzi a 7 bit. Nessun altro bit di flag è attualmente definito per I2C. Per altre informazioni, vedere la specifica ACPI 5.0.
TypeSpecificRevisionId
ID revisione della variante di questa struttura utilizzata per il tipo di bus seriale (I2C, SPI e UART) specificato dal membro Tag. Ogni tipo di bus seriale estende la struttura PNP_SERIAL_BUS_DESCRIPTOR aggiungendo campi specifici del tipo di bus. Per altre informazioni, vedere la specifica ACPI 5.0.
TypeDataLength
Lunghezza, in byte, dei dati specifici del tipo di bus che seguono la struttura PNP_SERIAL_BUS_DESCRIPTOR. Questo valore di lunghezza include i dati tra la fine del membro TypeDataLength e l'inizio della stringa origine risorsa, ma non include la stringa origine risorsa. Per altre informazioni, vedere la specifica ACPI 5.0.
Osservazioni
Questa struttura definisce i campi dati in un descrittore di connessione al bus seriale, come descritto nella sezione 6.4.3.8.2 della specifica ACPI 5.0. Questo descrittore descrive la connessione del bus a un dispositivo di destinazione connesso a un bus seriale (I2C, SPI o UART).
Ad esempio, per un dispositivo in un bus I2C, la struttura PNP_SERIAL_BUS_DESCRIPTOR (e l'estensione specifica del tipo di bus) specificano l'indirizzo del bus del dispositivo, la modalità indirizzo (7 bit o 10 bit) e la frequenza in cui eseguire l'orologio del bus quando si accede al dispositivo. Per un esempio di codice che mostra come un driver del controller I2C estrae queste informazioni dalla struttura, vedere Come ottenere le impostazioni di connessione per un dispositivo.
La definizione della struttura PNP_SERIAL_BUS_DESCRIPTOR nel file di intestazione Reshub.h è preceduta da un'istruzione include per il file di intestazione Pshpack1.h, che configura il compilatore per comprimere i membri della struttura adiacenti ai limiti dei byte, senza spazi intermedi. Il software può quindi sovrapporre la struttura compressa sull'immagine di memoria del descrittore di connessione del bus seriale per accedere ai singoli campi di questo descrittore. I membri di USHORT della struttura potrebbero non essere allineati ai limiti di byte pari in memoria. I byte nei membri USHORT vengono archiviati in ordine little-endian per le architetture del processore x86, x64 e ARM.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Supportato a partire da Windows 8. |
intestazione | reshub.h |