PNP_SERIAL_BUS_DESCRIPTOR 구조체(reshub.h)

PNP_SERIAL_BUS_DESCRIPTOR 구조는 대상 디바이스를 직렬 버스(I2C, SPI 또는 UART)에 물리적으로 연결하는 방법을 설명합니다.

구문

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;

멤버

Tag

직렬 버스 유형입니다. 이 멤버는 직렬 버스(I2C, SPI 또는 UART) 연결에 대한 0x8e 설정됩니다. 자세한 내용은 ACPI 5.0 사양의 직렬 버스 연결 설명자에 대한 설명을 참조하세요.

Length

직렬 버스 연결 설명자의 길이(바이트)입니다. ACPI 5.0 사양과 일치하기 위해 PNP_SERIAL_BUS_DESCRIPTOR 구조체의 Length 멤버의 바이트 수는 구조체의 시작 부분에 있는 TagLength 멤버의 3바이트를 뺀 구조체 크기와 같으며 구조체 뒤에 있는 버스 형식별 데이터 및 리소스 원본 문자열의 바이트 수를 뺀 값입니다. 필수 필드인 리소스 원본 문자열의 최소 크기는 2바이트입니다(한 문자 리소스 원본 이름 및 종료 null의 경우). 따라서 유효한 최소 길이 값은 11입니다. 자세한 내용은 ACPI 5.0 사양을 참조하세요.

RevisionId

직렬 버스 연결 설명자의 수정 ID입니다. 이 멤버는 Reshub.h 헤더 파일에 정의된 SERIAL_BUS_DESCRIPTOR_REVISION 상수로 설정됩니다.

ResourceSourceIndex

다음에 사용하도록 예약됩니다. 이 멤버는 사용되지 않으며 0으로 설정됩니다.

SerialBusType

직렬 버스 유형입니다. 이 멤버는 1(I2C의 경우), 2(SPI의 경우) 또는 3(UART의 경우)으로 설정됩니다. 다른 값은 나중에 사용하도록 예약되거나 하드웨어 공급업체에서 정의합니다. 자세한 내용은 ACPI 5.0 사양을 참조하세요.

GeneralFlags

모든 직렬 버스 유형에 공통적인 플래그입니다. 비트 0은 하위 모드 플래그입니다. 이 비트가 1로 설정되면 이 연결의 통신은 버스 컨트롤러에 의해 시작됩니다. 그렇지 않으면 통신이 대상 디바이스에 의해 시작됩니다. 비트 1은 소비자/생산자 플래그이며 항상 1로 설정됩니다. 다른 플래그 비트는 현재 정의되어 있지 않습니다. 자세한 내용은 ACPI 5.0 사양을 참조하세요.

TypeSpecificFlags

직렬 버스 유형과 관련된 플래그입니다. I2C 버스의 경우 연결에서 10비트 주소를 사용하는 경우 비트 0이 설정됩니다. 그렇지 않으면 연결에서 7비트 주소를 사용합니다. 현재 I2C에 대해 정의된 다른 플래그 비트는 없습니다. 자세한 내용은 ACPI 5.0 사양을 참조하세요.

TypeSpecificRevisionId

Tag 멤버에 의해 지정된 직렬 버스 유형(I2C, SPI 및 UART)에 사용되는 이 구조체의 변형 수정 ID입니다. 각 직렬 버스 유형은 버스 유형과 관련된 필드를 추가하여 PNP_SERIAL_BUS_DESCRIPTOR 구조를 확장합니다. 자세한 내용은 ACPI 5.0 사양을 참조하세요.

TypeDataLength

PNP_SERIAL_BUS_DESCRIPTOR 구조 뒤에 있는 버스 형식별 데이터의 길이(바이트)입니다. 이 길이 값은 TypeDataLength 멤버의 끝과 리소스 원본 문자열의 시작 사이의 데이터를 포함하지만 리소스 원본 문자열은 포함하지 않습니다. 자세한 내용은 ACPI 5.0 사양을 참조하세요.

설명

이 구조체는 ACPI 5.0 사양의 섹션 6.4.3.8.2에 설명된 대로 직렬 버스 연결 설명자의 데이터 필드를 정의합니다. 이 설명자는 직렬 버스(I2C, SPI 또는 UART)에 연결된 대상 디바이스에 대한 버스 연결을 설명합니다.

예를 들어 I2C 버스의 디바이스에 대해 PNP_SERIAL_BUS_DESCRIPTOR 구조(및 해당 버스 유형별 확장)는 디바이스의 버스 주소, 주소 모드(7비트 또는 10비트) 및 디바이스에 액세스할 때 버스 시계를 실행할 빈도를 지정합니다. I2C 컨트롤러 드라이버가 구조에서 이 정보를 추출하는 방법을 보여 주는 코드 예제는 디바이스에 대한 연결 설정을 가져오는 방법을 참조하세요.

Reshub.h 헤더 파일의 PNP_SERIAL_BUS_DESCRIPTOR 구조 정의 앞에는 인접한 구조체 멤버를 바이트 경계로 압축하도록 컴파일러를 구성하는 Pshpack1.h 헤더 파일에 대한 include 문이 앞에 붙습니다. 그런 다음 소프트웨어는 직렬 버스 연결 설명자의 메모리 이미지 위에 압축된 구조를 오버레이하여 이 설명자의 개별 필드에 액세스할 수 있습니다. 구조체의 USHORT 멤버는 메모리의 바이트 경계에도 맞지 않을 수 있습니다. USHORT 멤버의 바이트는 x86, x64 및 ARM 프로세서 아키텍처에 대해 little-endian 순서로 저장됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 부터 지원합니다.
머리글 reshub.h