Documentation/driver-api/wmi.rst GitHub 원문 ↗

Linux 6.18.37 · Driver API

WMI Driver API

Deprecated GUID interface와 동일 GUID device를 지원하는 modern WMI bus·driver API를 설명하는 한국어 전문 번역입니다.

Source pathDocumentation/driver-api/wmi.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

wmi.rst:1-20

Modern WMI bus는 firmware device마다 struct wmi_device를 만들어 같은 GUID를 공유하는 여러 instance도 안전하게 driver와 matching합니다. 새 driver는 deprecated GUID-based interface를 피해야 합니다.

문서 구성
원문 줄핵심 내용
1-15Modern bus와 deprecated GUID interface
16-20Header와 core kernel-doc

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0-or-later
2
3 ==============
4 WMI Driver API
5 ==============
6
7 The WMI driver core supports a more modern bus-based interface for interacting
8 with WMI devices, and an older GUID-based interface. The latter interface is
9 considered to be deprecated, so new WMI drivers should generally avoid it since
10 it has some issues with multiple WMI devices sharing the same GUID.
11 The modern bus-based interface instead maps each WMI device to a
12 :c:type:`struct wmi_device <wmi_device>`, so it supports WMI devices sharing the
13 same GUID. Drivers can then register a :c:type:`struct wmi_driver <wmi_driver>`
14 which will be bound to compatible WMI devices by the driver core.
15
16 .. kernel-doc:: include/linux/wmi.h
17 :internal:
18
19 .. kernel-doc:: drivers/platform/x86/wmi.c
20 :export:
21

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Modern WMI bus interface와 GUID 호환성

1-15

WMI driver core는 WMI device와 통신하는 modern bus-based interface와 older GUID-based interface를 모두 지원합니다.

GUID-based interface는 deprecated로 간주됩니다. 같은 GUID를 공유하는 여러 WMI device를 다루는 데 문제가 있으므로 새 WMI driver는 일반적으로 이 interface를 피해야 합니다.

Modern bus interface는 각 WMI device를 `struct wmi_device` 하나에 mapping하므로 동일 GUID를 공유하는 device도 지원합니다. Driver는 `struct wmi_driver`를 등록하고 driver core가 compatible WMI device에 bind합니다.

Modern WMI driver binding
Firmware exposes one or more WMI devicesCore maps each instance to `struct wmi_device`Driver registers `struct wmi_driver`WMI bus matches compatible instancesCore binds driver per device

Device instance별 structure를 사용해 GUID 충돌 없이 bus core가 driver를 matching합니다.

.. SPDX-License-Identifier: GPL-2.0-or-later

==============
WMI Driver API
==============

The WMI driver core supports a more modern bus-based interface for interacting
with WMI devices, and an older GUID-based interface. The latter interface is
considered to be deprecated, so new WMI drivers should generally avoid it since
it has some issues with multiple WMI devices sharing the same GUID.
The modern bus-based interface instead maps each WMI device to a
:c:type:`struct wmi_device <wmi_device>`, so it supports WMI devices sharing the
same GUID. Drivers can then register a :c:type:`struct wmi_driver <wmi_driver>`
which will be bound to compatible WMI devices by the driver core.

WMI header와 core implementation

16-20

`include/linux/wmi.h`의 internal kernel-doc은 WMI type과 core-facing declaration을 설명합니다. `drivers/platform/x86/wmi.c`의 exported kernel-doc은 driver가 사용할 WMI core function을 설명합니다.

WMI API source
Source path범위
`include/linux/wmi.h`Internal type와 declaration
`drivers/platform/x86/wmi.c`Exported WMI driver-core API

.. kernel-doc:: include/linux/wmi.h
   :internal:

.. kernel-doc:: drivers/platform/x86/wmi.c
   :export: