Back to home page

OSCL-LXR

 
 

    


0001 .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
0002 .. c:namespace:: RC
0003 
0004 .. _lirc_get_features:
0005 
0006 ***********************
0007 ioctl LIRC_GET_FEATURES
0008 ***********************
0009 
0010 Name
0011 ====
0012 
0013 LIRC_GET_FEATURES - Get the underlying hardware device's features
0014 
0015 Synopsis
0016 ========
0017 
0018 .. c:macro:: LIRC_GET_FEATURES
0019 
0020 ``int ioctl(int fd, LIRC_GET_FEATURES, __u32 *features)``
0021 
0022 Arguments
0023 =========
0024 
0025 ``fd``
0026     File descriptor returned by open().
0027 
0028 ``features``
0029     Bitmask with the LIRC features.
0030 
0031 Description
0032 ===========
0033 
0034 Get the underlying hardware device's features. If a driver does not
0035 announce support of certain features, calling of the corresponding ioctls
0036 is undefined.
0037 
0038 LIRC features
0039 =============
0040 
0041 .. _LIRC-CAN-REC-RAW:
0042 
0043 ``LIRC_CAN_REC_RAW``
0044 
0045     Unused. Kept just to avoid breaking uAPI.
0046 
0047 .. _LIRC-CAN-REC-PULSE:
0048 
0049 ``LIRC_CAN_REC_PULSE``
0050 
0051     Unused. Kept just to avoid breaking uAPI.
0052     :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>` can only be used for transmitting.
0053 
0054 .. _LIRC-CAN-REC-MODE2:
0055 
0056 ``LIRC_CAN_REC_MODE2``
0057 
0058     This is raw IR driver for receiving. This means that
0059     :ref:`LIRC_MODE_MODE2 <lirc-mode-MODE2>` is used. This also implies
0060     that :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported,
0061     as long as the kernel is recent enough. Use the
0062     :ref:`lirc_set_rec_mode` to switch modes.
0063 
0064 .. _LIRC-CAN-REC-LIRCCODE:
0065 
0066 ``LIRC_CAN_REC_LIRCCODE``
0067 
0068     Unused. Kept just to avoid breaking uAPI.
0069 
0070 .. _LIRC-CAN-REC-SCANCODE:
0071 
0072 ``LIRC_CAN_REC_SCANCODE``
0073 
0074     This is a scancode driver for receiving. This means that
0075     :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is used.
0076 
0077 .. _LIRC-CAN-SET-SEND-CARRIER:
0078 
0079 ``LIRC_CAN_SET_SEND_CARRIER``
0080 
0081     The driver supports changing the modulation frequency via
0082     :ref:`ioctl LIRC_SET_SEND_CARRIER <LIRC_SET_SEND_CARRIER>`.
0083 
0084 .. _LIRC-CAN-SET-SEND-DUTY-CYCLE:
0085 
0086 ``LIRC_CAN_SET_SEND_DUTY_CYCLE``
0087 
0088     The driver supports changing the duty cycle using
0089     :ref:`ioctl LIRC_SET_SEND_DUTY_CYCLE <LIRC_SET_SEND_DUTY_CYCLE>`.
0090 
0091 .. _LIRC-CAN-SET-TRANSMITTER-MASK:
0092 
0093 ``LIRC_CAN_SET_TRANSMITTER_MASK``
0094 
0095     The driver supports changing the active transmitter(s) using
0096     :ref:`ioctl LIRC_SET_TRANSMITTER_MASK <LIRC_SET_TRANSMITTER_MASK>`.
0097 
0098 .. _LIRC-CAN-SET-REC-CARRIER:
0099 
0100 ``LIRC_CAN_SET_REC_CARRIER``
0101 
0102     The driver supports setting the receive carrier frequency using
0103     :ref:`ioctl LIRC_SET_REC_CARRIER <LIRC_SET_REC_CARRIER>`.
0104 
0105 .. _LIRC-CAN-SET-REC-CARRIER-RANGE:
0106 
0107 ``LIRC_CAN_SET_REC_CARRIER_RANGE``
0108 
0109     The driver supports
0110     :ref:`ioctl LIRC_SET_REC_CARRIER_RANGE <LIRC_SET_REC_CARRIER_RANGE>`.
0111 
0112 .. _LIRC-CAN-GET-REC-RESOLUTION:
0113 
0114 ``LIRC_CAN_GET_REC_RESOLUTION``
0115 
0116     The driver supports
0117     :ref:`ioctl LIRC_GET_REC_RESOLUTION <LIRC_GET_REC_RESOLUTION>`.
0118 
0119 .. _LIRC-CAN-SET-REC-TIMEOUT:
0120 
0121 ``LIRC_CAN_SET_REC_TIMEOUT``
0122 
0123     The driver supports
0124     :ref:`ioctl LIRC_SET_REC_TIMEOUT <LIRC_SET_REC_TIMEOUT>`.
0125 
0126 .. _LIRC-CAN-MEASURE-CARRIER:
0127 
0128 ``LIRC_CAN_MEASURE_CARRIER``
0129 
0130     The driver supports measuring of the modulation frequency using
0131     :ref:`ioctl LIRC_SET_MEASURE_CARRIER_MODE <LIRC_SET_MEASURE_CARRIER_MODE>`.
0132 
0133 .. _LIRC-CAN-USE-WIDEBAND-RECEIVER:
0134 
0135 ``LIRC_CAN_USE_WIDEBAND_RECEIVER``
0136 
0137     The driver supports learning mode using
0138     :ref:`ioctl LIRC_SET_WIDEBAND_RECEIVER <LIRC_SET_WIDEBAND_RECEIVER>`.
0139 
0140 .. _LIRC-CAN-SEND-RAW:
0141 
0142 ``LIRC_CAN_SEND_RAW``
0143 
0144     Unused. Kept just to avoid breaking uAPI.
0145 
0146 .. _LIRC-CAN-SEND-PULSE:
0147 
0148 ``LIRC_CAN_SEND_PULSE``
0149 
0150     The driver supports sending (also called as IR blasting or IR TX) using
0151     :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`. This implies that
0152     :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported for
0153     transmit, as long as the kernel is recent enough. Use the
0154     :ref:`lirc_set_send_mode` to switch modes.
0155 
0156 .. _LIRC-CAN-SEND-MODE2:
0157 
0158 ``LIRC_CAN_SEND_MODE2``
0159 
0160     Unused. Kept just to avoid breaking uAPI.
0161     :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` can only be used for receiving.
0162 
0163 .. _LIRC-CAN-SEND-LIRCCODE:
0164 
0165 ``LIRC_CAN_SEND_LIRCCODE``
0166 
0167     Unused. Kept just to avoid breaking uAPI.
0168 
0169 Return Value
0170 ============
0171 
0172 On success 0 is returned, on error -1 and the ``errno`` variable is set
0173 appropriately. The generic error codes are described at the
0174 :ref:`Generic Error Codes <gen-errors>` chapter.