diff options
| author | Sean Young <sean@mess.org> | 2018-05-27 07:24:10 -0400 |
|---|---|---|
| committer | Daniel Borkmann <daniel@iogearbox.net> | 2018-05-30 06:40:14 -0400 |
| commit | 6bdd533cee9aadbcd476af30bfff079abe68fcdb (patch) | |
| tree | a153475f8949a8c9d6340b4f52c37b8912d0622d /tools/include/uapi/linux | |
| parent | f4364dcfc86df7c1ca47b256eaf6b6d0cdd0d936 (diff) | |
bpf: add selftest for lirc_mode2 type program
This is simple test over rc-loopback.
Acked-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Diffstat (limited to 'tools/include/uapi/linux')
| -rw-r--r-- | tools/include/uapi/linux/bpf.h | 79 | ||||
| -rw-r--r-- | tools/include/uapi/linux/lirc.h | 217 |
2 files changed, 282 insertions, 14 deletions
diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index 3f556b35ac8d..64ac0f7a689e 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h | |||
| @@ -143,6 +143,7 @@ enum bpf_prog_type { | |||
| 143 | BPF_PROG_TYPE_RAW_TRACEPOINT, | 143 | BPF_PROG_TYPE_RAW_TRACEPOINT, |
| 144 | BPF_PROG_TYPE_CGROUP_SOCK_ADDR, | 144 | BPF_PROG_TYPE_CGROUP_SOCK_ADDR, |
| 145 | BPF_PROG_TYPE_LWT_SEG6LOCAL, | 145 | BPF_PROG_TYPE_LWT_SEG6LOCAL, |
| 146 | BPF_PROG_TYPE_LIRC_MODE2, | ||
| 146 | }; | 147 | }; |
| 147 | 148 | ||
| 148 | enum bpf_attach_type { | 149 | enum bpf_attach_type { |
| @@ -162,6 +163,7 @@ enum bpf_attach_type { | |||
| 162 | BPF_CGROUP_INET6_POST_BIND, | 163 | BPF_CGROUP_INET6_POST_BIND, |
| 163 | BPF_CGROUP_UDP4_SENDMSG, | 164 | BPF_CGROUP_UDP4_SENDMSG, |
| 164 | BPF_CGROUP_UDP6_SENDMSG, | 165 | BPF_CGROUP_UDP6_SENDMSG, |
| 166 | BPF_LIRC_MODE2, | ||
| 165 | __MAX_BPF_ATTACH_TYPE | 167 | __MAX_BPF_ATTACH_TYPE |
| 166 | }; | 168 | }; |
| 167 | 169 | ||
| @@ -1852,10 +1854,10 @@ union bpf_attr { | |||
| 1852 | * If lookup is successful and result shows packet is to be | 1854 | * If lookup is successful and result shows packet is to be |
| 1853 | * forwarded, the neighbor tables are searched for the nexthop. | 1855 | * forwarded, the neighbor tables are searched for the nexthop. |
| 1854 | * If successful (ie., FIB lookup shows forwarding and nexthop | 1856 | * If successful (ie., FIB lookup shows forwarding and nexthop |
| 1855 | * is resolved), the nexthop address is returned in ipv4_dst, | 1857 | * is resolved), the nexthop address is returned in ipv4_dst |
| 1856 | * ipv6_dst or mpls_out based on family, smac is set to mac | 1858 | * or ipv6_dst based on family, smac is set to mac address of |
| 1857 | * address of egress device, dmac is set to nexthop mac address, | 1859 | * egress device, dmac is set to nexthop mac address, rt_metric |
| 1858 | * rt_metric is set to metric from route. | 1860 | * is set to metric from route (IPv4/IPv6 only). |
| 1859 | * | 1861 | * |
| 1860 | * *plen* argument is the size of the passed in struct. | 1862 | * *plen* argument is the size of the passed in struct. |
| 1861 | * *flags* argument can be a combination of one or more of the | 1863 | * *flags* argument can be a combination of one or more of the |
| @@ -2005,6 +2007,53 @@ union bpf_attr { | |||
| 2005 | * direct packet access. | 2007 | * direct packet access. |
| 2006 | * Return | 2008 | * Return |
| 2007 | * 0 on success, or a negative error in case of failure. | 2009 | * 0 on success, or a negative error in case of failure. |
| 2010 | * | ||
| 2011 | * int bpf_rc_keydown(void *ctx, u32 protocol, u64 scancode, u32 toggle) | ||
| 2012 | * Description | ||
| 2013 | * This helper is used in programs implementing IR decoding, to | ||
| 2014 | * report a successfully decoded key press with *scancode*, | ||
| 2015 | * *toggle* value in the given *protocol*. The scancode will be | ||
| 2016 | * translated to a keycode using the rc keymap, and reported as | ||
| 2017 | * an input key down event. After a period a key up event is | ||
| 2018 | * generated. This period can be extended by calling either | ||
| 2019 | * **bpf_rc_keydown** () again with the same values, or calling | ||
| 2020 | * **bpf_rc_repeat** (). | ||
| 2021 | * | ||
| 2022 | * Some protocols include a toggle bit, in case the button was | ||
| 2023 | * released and pressed again between consecutive scancodes. | ||
| 2024 | * | ||
| 2025 | * The *ctx* should point to the lirc sample as passed into | ||
| 2026 | * the program. | ||
| 2027 | * | ||
| 2028 | * The *protocol* is the decoded protocol number (see | ||
| 2029 | * **enum rc_proto** for some predefined values). | ||
| 2030 | * | ||
| 2031 | * This helper is only available is the kernel was compiled with | ||
| 2032 | * the **CONFIG_BPF_LIRC_MODE2** configuration option set to | ||
| 2033 | * "**y**". | ||
| 2034 | * | ||
| 2035 | * Return | ||
| 2036 | * 0 | ||
| 2037 | * | ||
| 2038 | * int bpf_rc_repeat(void *ctx) | ||
| 2039 | * Description | ||
| 2040 | * This helper is used in programs implementing IR decoding, to | ||
| 2041 | * report a successfully decoded repeat key message. This delays | ||
| 2042 | * the generation of a key up event for previously generated | ||
| 2043 | * key down event. | ||
| 2044 | * | ||
| 2045 | * Some IR protocols like NEC have a special IR message for | ||
| 2046 | * repeating last button, for when a button is held down. | ||
| 2047 | * | ||
| 2048 | * The *ctx* should point to the lirc sample as passed into | ||
| 2049 | * the program. | ||
| 2050 | * | ||
| 2051 | * This helper is only available is the kernel was compiled with | ||
| 2052 | * the **CONFIG_BPF_LIRC_MODE2** configuration option set to | ||
| 2053 | * "**y**". | ||
| 2054 | * | ||
| 2055 | * Return | ||
| 2056 | * 0 | ||
| 2008 | */ | 2057 | */ |
| 2009 | #define __BPF_FUNC_MAPPER(FN) \ | 2058 | #define __BPF_FUNC_MAPPER(FN) \ |
| 2010 | FN(unspec), \ | 2059 | FN(unspec), \ |
| @@ -2083,7 +2132,9 @@ union bpf_attr { | |||
| 2083 | FN(lwt_push_encap), \ | 2132 | FN(lwt_push_encap), \ |
| 2084 | FN(lwt_seg6_store_bytes), \ | 2133 | FN(lwt_seg6_store_bytes), \ |
| 2085 | FN(lwt_seg6_adjust_srh), \ | 2134 | FN(lwt_seg6_adjust_srh), \ |
| 2086 | FN(lwt_seg6_action), | 2135 | FN(lwt_seg6_action), \ |
| 2136 | FN(rc_repeat), \ | ||
| 2137 | FN(rc_keydown), | ||
| 2087 | 2138 | ||
| 2088 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper | 2139 | /* integer value in 'imm' field of BPF_CALL instruction selects which helper |
| 2089 | * function eBPF program intends to call | 2140 | * function eBPF program intends to call |
| @@ -2537,8 +2588,10 @@ struct bpf_raw_tracepoint_args { | |||
| 2537 | #define BPF_FIB_LOOKUP_OUTPUT BIT(1) | 2588 | #define BPF_FIB_LOOKUP_OUTPUT BIT(1) |
| 2538 | 2589 | ||
| 2539 | struct bpf_fib_lookup { | 2590 | struct bpf_fib_lookup { |
| 2540 | /* input */ | 2591 | /* input: network family for lookup (AF_INET, AF_INET6) |
| 2541 | __u8 family; /* network family, AF_INET, AF_INET6, AF_MPLS */ | 2592 | * output: network family of egress nexthop |
| 2593 | */ | ||
| 2594 | __u8 family; | ||
| 2542 | 2595 | ||
| 2543 | /* set if lookup is to consider L4 data - e.g., FIB rules */ | 2596 | /* set if lookup is to consider L4 data - e.g., FIB rules */ |
| 2544 | __u8 l4_protocol; | 2597 | __u8 l4_protocol; |
| @@ -2554,22 +2607,20 @@ struct bpf_fib_lookup { | |||
| 2554 | __u8 tos; /* AF_INET */ | 2607 | __u8 tos; /* AF_INET */ |
| 2555 | __be32 flowlabel; /* AF_INET6 */ | 2608 | __be32 flowlabel; /* AF_INET6 */ |
| 2556 | 2609 | ||
| 2557 | /* output: metric of fib result */ | 2610 | /* output: metric of fib result (IPv4/IPv6 only) */ |
| 2558 | __u32 rt_metric; | 2611 | __u32 rt_metric; |
| 2559 | }; | 2612 | }; |
| 2560 | 2613 | ||
| 2561 | union { | 2614 | union { |
| 2562 | __be32 mpls_in; | ||
| 2563 | __be32 ipv4_src; | 2615 | __be32 ipv4_src; |
| 2564 | __u32 ipv6_src[4]; /* in6_addr; network order */ | 2616 | __u32 ipv6_src[4]; /* in6_addr; network order */ |
| 2565 | }; | 2617 | }; |
| 2566 | 2618 | ||
| 2567 | /* input to bpf_fib_lookup, *dst is destination address. | 2619 | /* input to bpf_fib_lookup, ipv{4,6}_dst is destination address in |
| 2568 | * output: bpf_fib_lookup sets to gateway address | 2620 | * network header. output: bpf_fib_lookup sets to gateway address |
| 2621 | * if FIB lookup returns gateway route | ||
| 2569 | */ | 2622 | */ |
| 2570 | union { | 2623 | union { |
| 2571 | /* return for MPLS lookups */ | ||
| 2572 | __be32 mpls_out[4]; /* support up to 4 labels */ | ||
| 2573 | __be32 ipv4_dst; | 2624 | __be32 ipv4_dst; |
| 2574 | __u32 ipv6_dst[4]; /* in6_addr; network order */ | 2625 | __u32 ipv6_dst[4]; /* in6_addr; network order */ |
| 2575 | }; | 2626 | }; |
diff --git a/tools/include/uapi/linux/lirc.h b/tools/include/uapi/linux/lirc.h new file mode 100644 index 000000000000..f189931042a7 --- /dev/null +++ b/tools/include/uapi/linux/lirc.h | |||
| @@ -0,0 +1,217 @@ | |||
| 1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ | ||
| 2 | /* | ||
| 3 | * lirc.h - linux infrared remote control header file | ||
| 4 | * last modified 2010/07/13 by Jarod Wilson | ||
| 5 | */ | ||
| 6 | |||
| 7 | #ifndef _LINUX_LIRC_H | ||
| 8 | #define _LINUX_LIRC_H | ||
| 9 | |||
| 10 | #include <linux/types.h> | ||
| 11 | #include <linux/ioctl.h> | ||
| 12 | |||
| 13 | #define PULSE_BIT 0x01000000 | ||
| 14 | #define PULSE_MASK 0x00FFFFFF | ||
| 15 | |||
| 16 | #define LIRC_MODE2_SPACE 0x00000000 | ||
| 17 | #define LIRC_MODE2_PULSE 0x01000000 | ||
| 18 | #define LIRC_MODE2_FREQUENCY 0x02000000 | ||
| 19 | #define LIRC_MODE2_TIMEOUT 0x03000000 | ||
| 20 | |||
| 21 | #define LIRC_VALUE_MASK 0x00FFFFFF | ||
| 22 | #define LIRC_MODE2_MASK 0xFF000000 | ||
| 23 | |||
| 24 | #define LIRC_SPACE(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_SPACE) | ||
| 25 | #define LIRC_PULSE(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_PULSE) | ||
| 26 | #define LIRC_FREQUENCY(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_FREQUENCY) | ||
| 27 | #define LIRC_TIMEOUT(val) (((val)&LIRC_VALUE_MASK) | LIRC_MODE2_TIMEOUT) | ||
| 28 | |||
| 29 | #define LIRC_VALUE(val) ((val)&LIRC_VALUE_MASK) | ||
| 30 | #define LIRC_MODE2(val) ((val)&LIRC_MODE2_MASK) | ||
| 31 | |||
| 32 | #define LIRC_IS_SPACE(val) (LIRC_MODE2(val) == LIRC_MODE2_SPACE) | ||
| 33 | #define LIRC_IS_PULSE(val) (LIRC_MODE2(val) == LIRC_MODE2_PULSE) | ||
| 34 | #define LIRC_IS_FREQUENCY(val) (LIRC_MODE2(val) == LIRC_MODE2_FREQUENCY) | ||
| 35 | #define LIRC_IS_TIMEOUT(val) (LIRC_MODE2(val) == LIRC_MODE2_TIMEOUT) | ||
| 36 | |||
| 37 | /* used heavily by lirc userspace */ | ||
| 38 | #define lirc_t int | ||
| 39 | |||
| 40 | /*** lirc compatible hardware features ***/ | ||
| 41 | |||
| 42 | #define LIRC_MODE2SEND(x) (x) | ||
| 43 | #define LIRC_SEND2MODE(x) (x) | ||
| 44 | #define LIRC_MODE2REC(x) ((x) << 16) | ||
| 45 | #define LIRC_REC2MODE(x) ((x) >> 16) | ||
| 46 | |||
| 47 | #define LIRC_MODE_RAW 0x00000001 | ||
| 48 | #define LIRC_MODE_PULSE 0x00000002 | ||
| 49 | #define LIRC_MODE_MODE2 0x00000004 | ||
| 50 | #define LIRC_MODE_SCANCODE 0x00000008 | ||
| 51 | #define LIRC_MODE_LIRCCODE 0x00000010 | ||
| 52 | |||
| 53 | |||
| 54 | #define LIRC_CAN_SEND_RAW LIRC_MODE2SEND(LIRC_MODE_RAW) | ||
| 55 | #define LIRC_CAN_SEND_PULSE LIRC_MODE2SEND(LIRC_MODE_PULSE) | ||
| 56 | #define LIRC_CAN_SEND_MODE2 LIRC_MODE2SEND(LIRC_MODE_MODE2) | ||
| 57 | #define LIRC_CAN_SEND_LIRCCODE LIRC_MODE2SEND(LIRC_MODE_LIRCCODE) | ||
| 58 | |||
| 59 | #define LIRC_CAN_SEND_MASK 0x0000003f | ||
| 60 | |||
| 61 | #define LIRC_CAN_SET_SEND_CARRIER 0x00000100 | ||
| 62 | #define LIRC_CAN_SET_SEND_DUTY_CYCLE 0x00000200 | ||
| 63 | #define LIRC_CAN_SET_TRANSMITTER_MASK 0x00000400 | ||
| 64 | |||
| 65 | #define LIRC_CAN_REC_RAW LIRC_MODE2REC(LIRC_MODE_RAW) | ||
| 66 | #define LIRC_CAN_REC_PULSE LIRC_MODE2REC(LIRC_MODE_PULSE) | ||
| 67 | #define LIRC_CAN_REC_MODE2 LIRC_MODE2REC(LIRC_MODE_MODE2) | ||
| 68 | #define LIRC_CAN_REC_SCANCODE LIRC_MODE2REC(LIRC_MODE_SCANCODE) | ||
| 69 | #define LIRC_CAN_REC_LIRCCODE LIRC_MODE2REC(LIRC_MODE_LIRCCODE) | ||
| 70 | |||
| 71 | #define LIRC_CAN_REC_MASK LIRC_MODE2REC(LIRC_CAN_SEND_MASK) | ||
| 72 | |||
| 73 | #define LIRC_CAN_SET_REC_CARRIER (LIRC_CAN_SET_SEND_CARRIER << 16) | ||
| 74 | #define LIRC_CAN_SET_REC_DUTY_CYCLE (LIRC_CAN_SET_SEND_DUTY_CYCLE << 16) | ||
| 75 | |||
| 76 | #define LIRC_CAN_SET_REC_DUTY_CYCLE_RANGE 0x40000000 | ||
| 77 | #define LIRC_CAN_SET_REC_CARRIER_RANGE 0x80000000 | ||
| 78 | #define LIRC_CAN_GET_REC_RESOLUTION 0x20000000 | ||
| 79 | #define LIRC_CAN_SET_REC_TIMEOUT 0x10000000 | ||
| 80 | #define LIRC_CAN_SET_REC_FILTER 0x08000000 | ||
| 81 | |||
| 82 | #define LIRC_CAN_MEASURE_CARRIER 0x02000000 | ||
| 83 | #define LIRC_CAN_USE_WIDEBAND_RECEIVER 0x04000000 | ||
| 84 | |||
| 85 | #define LIRC_CAN_SEND(x) ((x)&LIRC_CAN_SEND_MASK) | ||
| 86 | #define LIRC_CAN_REC(x) ((x)&LIRC_CAN_REC_MASK) | ||
| 87 | |||
| 88 | #define LIRC_CAN_NOTIFY_DECODE 0x01000000 | ||
| 89 | |||
| 90 | /*** IOCTL commands for lirc driver ***/ | ||
| 91 | |||
| 92 | #define LIRC_GET_FEATURES _IOR('i', 0x00000000, __u32) | ||
| 93 | |||
| 94 | #define LIRC_GET_SEND_MODE _IOR('i', 0x00000001, __u32) | ||
| 95 | #define LIRC_GET_REC_MODE _IOR('i', 0x00000002, __u32) | ||
| 96 | #define LIRC_GET_REC_RESOLUTION _IOR('i', 0x00000007, __u32) | ||
| 97 | |||
| 98 | #define LIRC_GET_MIN_TIMEOUT _IOR('i', 0x00000008, __u32) | ||
| 99 | #define LIRC_GET_MAX_TIMEOUT _IOR('i', 0x00000009, __u32) | ||
| 100 | |||
| 101 | /* code length in bits, currently only for LIRC_MODE_LIRCCODE */ | ||
| 102 | #define LIRC_GET_LENGTH _IOR('i', 0x0000000f, __u32) | ||
| 103 | |||
| 104 | #define LIRC_SET_SEND_MODE _IOW('i', 0x00000011, __u32) | ||
| 105 | #define LIRC_SET_REC_MODE _IOW('i', 0x00000012, __u32) | ||
| 106 | /* Note: these can reset the according pulse_width */ | ||
| 107 | #define LIRC_SET_SEND_CARRIER _IOW('i', 0x00000013, __u32) | ||
| 108 | #define LIRC_SET_REC_CARRIER _IOW('i', 0x00000014, __u32) | ||
| 109 | #define LIRC_SET_SEND_DUTY_CYCLE _IOW('i', 0x00000015, __u32) | ||
| 110 | #define LIRC_SET_TRANSMITTER_MASK _IOW('i', 0x00000017, __u32) | ||
| 111 | |||
| 112 | /* | ||
| 113 | * when a timeout != 0 is set the driver will send a | ||
| 114 | * LIRC_MODE2_TIMEOUT data packet, otherwise LIRC_MODE2_TIMEOUT is | ||
| 115 | * never sent, timeout is disabled by default | ||
| 116 | */ | ||
| 117 | #define LIRC_SET_REC_TIMEOUT _IOW('i', 0x00000018, __u32) | ||
| 118 | |||
| 119 | /* 1 enables, 0 disables timeout reports in MODE2 */ | ||
| 120 | #define LIRC_SET_REC_TIMEOUT_REPORTS _IOW('i', 0x00000019, __u32) | ||
| 121 | |||
| 122 | /* | ||
| 123 | * if enabled from the next key press on the driver will send | ||
| 124 | * LIRC_MODE2_FREQUENCY packets | ||
| 125 | */ | ||
| 126 | #define LIRC_SET_MEASURE_CARRIER_MODE _IOW('i', 0x0000001d, __u32) | ||
| 127 | |||
| 128 | /* | ||
| 129 | * to set a range use LIRC_SET_REC_CARRIER_RANGE with the | ||
| 130 | * lower bound first and later LIRC_SET_REC_CARRIER with the upper bound | ||
| 131 | */ | ||
| 132 | #define LIRC_SET_REC_CARRIER_RANGE _IOW('i', 0x0000001f, __u32) | ||
| 133 | |||
| 134 | #define LIRC_SET_WIDEBAND_RECEIVER _IOW('i', 0x00000023, __u32) | ||
| 135 | |||
| 136 | /* | ||
| 137 | * struct lirc_scancode - decoded scancode with protocol for use with | ||
| 138 | * LIRC_MODE_SCANCODE | ||
| 139 | * | ||
| 140 | * @timestamp: Timestamp in nanoseconds using CLOCK_MONOTONIC when IR | ||
| 141 | * was decoded. | ||
| 142 | * @flags: should be 0 for transmit. When receiving scancodes, | ||
| 143 | * LIRC_SCANCODE_FLAG_TOGGLE or LIRC_SCANCODE_FLAG_REPEAT can be set | ||
| 144 | * depending on the protocol | ||
| 145 | * @rc_proto: see enum rc_proto | ||
| 146 | * @keycode: the translated keycode. Set to 0 for transmit. | ||
| 147 | * @scancode: the scancode received or to be sent | ||
| 148 | */ | ||
| 149 | struct lirc_scancode { | ||
| 150 | __u64 timestamp; | ||
| 151 | __u16 flags; | ||
| 152 | __u16 rc_proto; | ||
| 153 | __u32 keycode; | ||
| 154 | __u64 scancode; | ||
| 155 | }; | ||
| 156 | |||
| 157 | /* Set if the toggle bit of rc-5 or rc-6 is enabled */ | ||
| 158 | #define LIRC_SCANCODE_FLAG_TOGGLE 1 | ||
| 159 | /* Set if this is a nec or sanyo repeat */ | ||
| 160 | #define LIRC_SCANCODE_FLAG_REPEAT 2 | ||
| 161 | |||
| 162 | /** | ||
| 163 | * enum rc_proto - the Remote Controller protocol | ||
| 164 | * | ||
| 165 | * @RC_PROTO_UNKNOWN: Protocol not known | ||
| 166 | * @RC_PROTO_OTHER: Protocol known but proprietary | ||
| 167 | * @RC_PROTO_RC5: Philips RC5 protocol | ||
| 168 | * @RC_PROTO_RC5X_20: Philips RC5x 20 bit protocol | ||
| 169 | * @RC_PROTO_RC5_SZ: StreamZap variant of RC5 | ||
| 170 | * @RC_PROTO_JVC: JVC protocol | ||
| 171 | * @RC_PROTO_SONY12: Sony 12 bit protocol | ||
| 172 | * @RC_PROTO_SONY15: Sony 15 bit protocol | ||
| 173 | * @RC_PROTO_SONY20: Sony 20 bit protocol | ||
| 174 | * @RC_PROTO_NEC: NEC protocol | ||
| 175 | * @RC_PROTO_NECX: Extended NEC protocol | ||
| 176 | * @RC_PROTO_NEC32: NEC 32 bit protocol | ||
| 177 | * @RC_PROTO_SANYO: Sanyo protocol | ||
| 178 | * @RC_PROTO_MCIR2_KBD: RC6-ish MCE keyboard | ||
| 179 | * @RC_PROTO_MCIR2_MSE: RC6-ish MCE mouse | ||
| 180 | * @RC_PROTO_RC6_0: Philips RC6-0-16 protocol | ||
| 181 | * @RC_PROTO_RC6_6A_20: Philips RC6-6A-20 protocol | ||
| 182 | * @RC_PROTO_RC6_6A_24: Philips RC6-6A-24 protocol | ||
| 183 | * @RC_PROTO_RC6_6A_32: Philips RC6-6A-32 protocol | ||
| 184 | * @RC_PROTO_RC6_MCE: MCE (Philips RC6-6A-32 subtype) protocol | ||
| 185 | * @RC_PROTO_SHARP: Sharp protocol | ||
| 186 | * @RC_PROTO_XMP: XMP protocol | ||
| 187 | * @RC_PROTO_CEC: CEC protocol | ||
| 188 | * @RC_PROTO_IMON: iMon Pad protocol | ||
| 189 | */ | ||
| 190 | enum rc_proto { | ||
| 191 | RC_PROTO_UNKNOWN = 0, | ||
| 192 | RC_PROTO_OTHER = 1, | ||
| 193 | RC_PROTO_RC5 = 2, | ||
| 194 | RC_PROTO_RC5X_20 = 3, | ||
| 195 | RC_PROTO_RC5_SZ = 4, | ||
| 196 | RC_PROTO_JVC = 5, | ||
| 197 | RC_PROTO_SONY12 = 6, | ||
| 198 | RC_PROTO_SONY15 = 7, | ||
| 199 | RC_PROTO_SONY20 = 8, | ||
| 200 | RC_PROTO_NEC = 9, | ||
| 201 | RC_PROTO_NECX = 10, | ||
| 202 | RC_PROTO_NEC32 = 11, | ||
| 203 | RC_PROTO_SANYO = 12, | ||
| 204 | RC_PROTO_MCIR2_KBD = 13, | ||
| 205 | RC_PROTO_MCIR2_MSE = 14, | ||
| 206 | RC_PROTO_RC6_0 = 15, | ||
| 207 | RC_PROTO_RC6_6A_20 = 16, | ||
| 208 | RC_PROTO_RC6_6A_24 = 17, | ||
| 209 | RC_PROTO_RC6_6A_32 = 18, | ||
| 210 | RC_PROTO_RC6_MCE = 19, | ||
| 211 | RC_PROTO_SHARP = 20, | ||
| 212 | RC_PROTO_XMP = 21, | ||
| 213 | RC_PROTO_CEC = 22, | ||
| 214 | RC_PROTO_IMON = 23, | ||
| 215 | }; | ||
| 216 | |||
| 217 | #endif | ||
