Boot Linux faster!

Check our new training course

Boot Linux faster!

Check our new training course
and Creative Commons CC-BY-SA
lecture and lab materials

Bootlin logo

Elixir Cross Referencer

/*
 * Copyright (c) 2017 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <syscall_handler.h>
#include <drivers/counter.h>

/* For those APIs that just take one argument which is a counter driver
 * instance and return an integral value
 */
#define COUNTER_HANDLER(name) \
	Z_SYSCALL_HANDLER(counter_ ## name, dev) \
	{ \
		Z_OOPS(Z_SYSCALL_DRIVER_COUNTER(dev, name)); \
		return z_impl_counter_ ## name((struct device *)dev); \
	}

COUNTER_HANDLER(get_pending_int)
COUNTER_HANDLER(read)
COUNTER_HANDLER(stop)
COUNTER_HANDLER(start)
COUNTER_HANDLER(get_top_value)
COUNTER_HANDLER(get_max_relative_alarm)

Z_SYSCALL_HANDLER(counter_get_guard_period, dev, flags)
{
	Z_OOPS(Z_SYSCALL_DRIVER_COUNTER(dev, get_guard_period));
	return z_impl_counter_get_guard_period((struct device *)dev, flags);
}

Z_SYSCALL_HANDLER(counter_set_guard_period, dev, ticks, flags)
{
	Z_OOPS(Z_SYSCALL_DRIVER_COUNTER(dev, set_guard_period));
	return z_impl_counter_set_guard_period((struct device *)dev, ticks,
						flags);
}