// 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";
