OSDN Git Service

IRDA-3484: Optionally read window size from filter specification
[android-x86/hardware-intel-libsensors.git] / enumeration.h
1 /*
2  * Copyright (C) 2014 Intel Corporation.
3  */
4
5 #ifndef __ENUMERATION_H__
6 #define __ENUMERATION_H__
7
8 #include "common.h"
9
10 /*
11  * Macros associating iio sysfs entries to to sensor types ; see
12  * linux/kernel/drivers/iio/industrialio-core.c and
13  * hardware/libhardware/include/hardware/sensor.h
14  */
15
16 #define DECLARE_CHANNEL(tag, spacer, name)              \
17                 {                                       \
18                         name,                           \
19                         "in_"tag spacer name"_en",      \
20                         "in_"tag spacer name"_type",    \
21                         "in_"tag spacer name"_index",   \
22                         "in_"tag spacer name"_raw",     \
23                         "in_"tag spacer name"_input",   \
24                         "in_"tag spacer name"_scale",   \
25                 },
26
27 #define DECLARE_NAMED_CHANNEL(tag, name)        DECLARE_CHANNEL(tag, "_", name)
28
29 #define DECLARE_GENERIC_CHANNEL(tag)            DECLARE_CHANNEL(tag, "", "")
30
31 #define DECLARE_VIRTUAL(type)                   \
32 {                                                       \
33         "", type, 0, 1,                         \
34         {                                               \
35                 DECLARE_GENERIC_CHANNEL("")             \
36         }                                               \
37 },
38
39 #define DECLARE_SENSOR0(tag, type)                      \
40 {                                                       \
41         tag, type, 1, 0,                                        \
42         {                                               \
43                 DECLARE_GENERIC_CHANNEL(tag)            \
44         }                                               \
45 },
46
47 #define DECLARE_SENSOR1(tag, type, ch1)                 \
48 {                                                       \
49         tag, type, 1, 0,                                        \
50         {                                               \
51                 DECLARE_NAMED_CHANNEL(tag, ch1)         \
52         }                                               \
53 },
54
55 #define DECLARE_SENSOR2(tag, type, ch1, ch2)            \
56 {                                                       \
57         tag, type, 2, 0,                                        \
58         {                                               \
59                 DECLARE_NAMED_CHANNEL(tag, ch1)         \
60                 DECLARE_NAMED_CHANNEL(tag, ch2)         \
61         }                                               \
62 },
63
64 #define DECLARE_SENSOR3(tag, type, ch1, ch2, ch3)       \
65 {                                                       \
66         tag, type, 3, 0,                                \
67         {                                               \
68                 DECLARE_NAMED_CHANNEL(tag, ch1)         \
69                 DECLARE_NAMED_CHANNEL(tag, ch2)         \
70                 DECLARE_NAMED_CHANNEL(tag, ch3)         \
71         }                                               \
72 },
73
74 #define DECLARE_SENSOR4(tag, type, ch1, ch2, ch3, ch4)  \
75 {                                                       \
76         tag, type, 4, 0,                                        \
77         {                                               \
78                 DECLARE_NAMED_CHANNEL(tag, ch1)         \
79                 DECLARE_NAMED_CHANNEL(tag, ch2)         \
80                 DECLARE_NAMED_CHANNEL(tag, ch3)         \
81                 DECLARE_NAMED_CHANNEL(tag, ch4)         \
82         }                                               \
83 },
84
85 int     get_sensors_list        (struct sensors_module_t* module,
86                                  struct sensor_t const** list);
87
88 void    enumerate_sensors       (void);
89 void    delete_enumeration_data (void);
90
91 #endif