← Documents Documentation/userspace-api/media/rc/lirc-get-rec-mode.rst GitHub 원문 ↗

Linux 6.18.37 · Userspace API / Media / Remote Controller

LIRC receive mode 조회와 설정

현재 수신 mode를 MODE2 또는 SCANCODE로 조회·설정합니다.

Source pathDocumentation/userspace-api/media/rc/lirc-get-rec-mode.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

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

1. 요약·해설

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

요약·해설

lirc-get-rec-mode.rst:1-69

수신 mode는 raw IR MODE2와 decoded SCANCODE 두 가지입니다. Feature 조회로 지원 여부를 확인하고 ENODEV, ENOTTY, EINVAL을 구분합니다.

2. 영어 원문 전체

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

원문 전체 펼치기
1 .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
2 .. c:namespace:: RC
3
4 .. _lirc_get_rec_mode:
5 .. _lirc_set_rec_mode:
6
7 **********************************************
8 ioctls LIRC_GET_REC_MODE and LIRC_SET_REC_MODE
9 **********************************************
10
11 Name
12 ====
13
14 LIRC_GET_REC_MODE/LIRC_SET_REC_MODE - Get/set current receive mode.
15
16 Synopsis
17 ========
18
19 .. c:macro:: LIRC_GET_REC_MODE
20
21 ``int ioctl(int fd, LIRC_GET_REC_MODE, __u32 *mode)``
22
23 .. c:macro:: LIRC_SET_REC_MODE
24
25 ``int ioctl(int fd, LIRC_SET_REC_MODE, __u32 *mode)``
26
27 Arguments
28 =========
29
30 ``fd``
31 File descriptor returned by open().
32
33 ``mode``
34 Mode used for receive.
35
36 Description
37 ===========
38
39 Get and set the current receive mode. Only
40 :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` and
41 :ref:`LIRC_MODE_SCANCODE <lirc-mode-scancode>` are supported.
42 Use :ref:`lirc_get_features` to find out which modes the driver supports.
43
44 Return Value
45 ============
46
47 .. tabularcolumns:: |p{2.5cm}|p{15.0cm}|
48
49 .. flat-table::
50 :header-rows: 0
51 :stub-columns: 0
52
53 - .. row 1
54
55 - ``ENODEV``
56
57 - Device not available.
58
59 - .. row 2
60
61 - ``ENOTTY``
62
63 - Device does not support receiving.
64
65 - .. row 3
66
67 - ``EINVAL``
68
69 - Invalid mode or invalid mode for this device.
70

3. 한국어 전문 번역

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

이름, 선언과 인자

1-35

`LIRC_GET_REC_MODE`는 현재 수신 mode를 읽고 `LIRC_SET_REC_MODE`는 수신 mode를 설정합니다. 두 ioctl 모두 `open()`이 반환한 LIRC 장치 `fd`와 `__u32 mode` pointer를 사용합니다.

int ioctl(int fd, LIRC_GET_REC_MODE, __u32 *mode);
int ioctl(int fd, LIRC_SET_REC_MODE, __u32 *mode);
수신 mode ioctl 인자
인자설명
fd열린 LIRC 장치 file descriptor
mode조회하거나 설정할 receive mode

같은 mode pointer가 조회 결과 또는 설정 입력으로 쓰입니다.

.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
.. c:namespace:: RC

.. _lirc_get_rec_mode:
.. _lirc_set_rec_mode:

**********************************************
ioctls LIRC_GET_REC_MODE and LIRC_SET_REC_MODE
**********************************************

Name
====

LIRC_GET_REC_MODE/LIRC_SET_REC_MODE - Get/set current receive mode.

Synopsis
========

.. c:macro:: LIRC_GET_REC_MODE

``int ioctl(int fd, LIRC_GET_REC_MODE, __u32 *mode)``

.. c:macro:: LIRC_SET_REC_MODE

``int ioctl(int fd, LIRC_SET_REC_MODE, __u32 *mode)``

Arguments
=========

``fd``
    File descriptor returned by open().

``mode``
    Mode used for receive.

지원 수신 mode

36-43

수신 mode로는 raw pulse/space를 전달하는 `LIRC_MODE_MODE2`와 decode된 scan code를 전달하는 `LIRC_MODE_SCANCODE`만 지원합니다.

Driver마다 가능한 mode가 다르므로 전환 전에 `LIRC_GET_FEATURES`로 feature를 확인해야 합니다.

지원되는 receive mode
modedata
LIRC_MODE_MODE2u32 raw IR pulse/space packet 수신
LIRC_MODE_SCANCODEstruct lirc_scancode 수신

수신 data representation을 선택합니다.

Description
===========

Get and set the current receive mode. Only
:ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` and
:ref:`LIRC_MODE_SCANCODE <lirc-mode-scancode>` are supported.
Use :ref:`lirc_get_features` to find out which modes the driver supports.

오류 코드

44-69

오류이면 해당 errno 조건으로 실패합니다. 이 표는 get과 set 양쪽에 적용되는 장치 가용성 및 mode 검증 결과입니다.

수신 mode ioctl 오류
errno조건
ENODEV장치를 사용할 수 없음
ENOTTY장치가 수신을 지원하지 않음
EINVALMode 값이 잘못됐거나 이 장치에서 지원하지 않는 mode

장치 capability와 요청 값을 구분합니다.

Return Value
============

.. tabularcolumns:: |p{2.5cm}|p{15.0cm}|

.. flat-table::
    :header-rows:  0
    :stub-columns: 0

    -  .. row 1

       -  ``ENODEV``

       -  Device not available.

    -  .. row 2

       -  ``ENOTTY``

       -  Device does not support receiving.

    -  .. row 3

       -  ``EINVAL``

       -  Invalid mode or invalid mode for this device.