Andrew Boie | 6d79fe5 | 2017-09-29 02:56:55 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (c) 2017 Intel Corporation |
| 3 | * |
| 4 | * SPDX-License-Identifier: Apache-2.0 |
| 5 | */ |
| 6 | |
Anas Nashif | 8c1f89f | 2019-06-25 15:54:00 -0400 | [diff] [blame^] | 7 | #include <drivers/sensor.h> |
Andrew Boie | 6d79fe5 | 2017-09-29 02:56:55 -0700 | [diff] [blame] | 8 | #include <syscall_handler.h> |
| 9 | |
Andrew Boie | 8345e5e | 2018-05-04 15:57:57 -0700 | [diff] [blame] | 10 | Z_SYSCALL_HANDLER(sensor_attr_set, dev, chan, attr, val) |
Andrew Boie | 6d79fe5 | 2017-09-29 02:56:55 -0700 | [diff] [blame] | 11 | { |
Andrew Boie | 8345e5e | 2018-05-04 15:57:57 -0700 | [diff] [blame] | 12 | Z_OOPS(Z_SYSCALL_DRIVER_SENSOR(dev, attr_set)); |
| 13 | Z_OOPS(Z_SYSCALL_MEMORY_READ(val, sizeof(struct sensor_value))); |
Patrik Flykt | 4344e27 | 2019-03-08 14:19:05 -0700 | [diff] [blame] | 14 | return z_impl_sensor_attr_set((struct device *)dev, chan, attr, |
Andrew Boie | 6d79fe5 | 2017-09-29 02:56:55 -0700 | [diff] [blame] | 15 | (const struct sensor_value *)val); |
| 16 | } |
| 17 | |
Flavio Ceolin | 20e5c25 | 2018-11-01 13:09:43 -0700 | [diff] [blame] | 18 | Z_SYSCALL_HANDLER(sensor_sample_fetch, dev) |
Andrew Boie | 6d79fe5 | 2017-09-29 02:56:55 -0700 | [diff] [blame] | 19 | { |
Andrew Boie | 8345e5e | 2018-05-04 15:57:57 -0700 | [diff] [blame] | 20 | Z_OOPS(Z_SYSCALL_DRIVER_SENSOR(dev, sample_fetch)); |
Patrik Flykt | 4344e27 | 2019-03-08 14:19:05 -0700 | [diff] [blame] | 21 | return z_impl_sensor_sample_fetch((struct device *)dev); |
Leandro Pereira | c200367 | 2018-04-04 13:50:32 -0700 | [diff] [blame] | 22 | } |
| 23 | |
Andrew Boie | 8345e5e | 2018-05-04 15:57:57 -0700 | [diff] [blame] | 24 | Z_SYSCALL_HANDLER(sensor_sample_fetch_chan, dev, type) |
Leandro Pereira | c200367 | 2018-04-04 13:50:32 -0700 | [diff] [blame] | 25 | { |
Andrew Boie | 8345e5e | 2018-05-04 15:57:57 -0700 | [diff] [blame] | 26 | Z_OOPS(Z_SYSCALL_DRIVER_SENSOR(dev, sample_fetch)); |
Patrik Flykt | 4344e27 | 2019-03-08 14:19:05 -0700 | [diff] [blame] | 27 | return z_impl_sensor_sample_fetch_chan((struct device *)dev, type); |
Andrew Boie | 6d79fe5 | 2017-09-29 02:56:55 -0700 | [diff] [blame] | 28 | } |
| 29 | |
Andrew Boie | 8345e5e | 2018-05-04 15:57:57 -0700 | [diff] [blame] | 30 | Z_SYSCALL_HANDLER(sensor_channel_get, dev, chan, val) |
Andrew Boie | 6d79fe5 | 2017-09-29 02:56:55 -0700 | [diff] [blame] | 31 | { |
Andrew Boie | 8345e5e | 2018-05-04 15:57:57 -0700 | [diff] [blame] | 32 | Z_OOPS(Z_SYSCALL_DRIVER_SENSOR(dev, channel_get)); |
| 33 | Z_OOPS(Z_SYSCALL_MEMORY_WRITE(val, sizeof(struct sensor_value))); |
Patrik Flykt | 4344e27 | 2019-03-08 14:19:05 -0700 | [diff] [blame] | 34 | return z_impl_sensor_channel_get((struct device *)dev, chan, |
Andrew Boie | 6d79fe5 | 2017-09-29 02:56:55 -0700 | [diff] [blame] | 35 | (struct sensor_value *)val); |
| 36 | } |