| // SPDX-License-Identifier: GPL-2.0 |
| // test ir decoder |
| // |
| // Copyright (C) 2018 Sean Young <sean@mess.org> |
| |
| #include <linux/bpf.h> |
| #include <linux/lirc.h> |
| #include <bpf/bpf_helpers.h> |
| |
| SEC("lirc_mode2") |
| int bpf_decoder(unsigned int *sample) |
| { |
| if (LIRC_IS_PULSE(*sample)) { |
| unsigned int duration = LIRC_VALUE(*sample); |
| |
| if (duration & 0x10000) |
| bpf_rc_keydown(sample, 0x40, duration & 0xffff, 0); |
| if (duration & 0x20000) |
| bpf_rc_pointer_rel(sample, (duration >> 8) & 0xff, |
| duration & 0xff); |
| } |
| |
| return 0; |
| } |
| |
| char _license[] SEC("license") = "GPL"; |