xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/counter.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_COUNTER_H_
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_COUNTER_H_
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/ioctl.h>
10*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
11*8d67ca89SAndroid Build Coastguard Worker enum counter_component_type {
12*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COMPONENT_NONE,
13*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COMPONENT_SIGNAL,
14*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COMPONENT_COUNT,
15*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COMPONENT_FUNCTION,
16*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COMPONENT_SYNAPSE_ACTION,
17*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COMPONENT_EXTENSION,
18*8d67ca89SAndroid Build Coastguard Worker };
19*8d67ca89SAndroid Build Coastguard Worker enum counter_scope {
20*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SCOPE_DEVICE,
21*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SCOPE_SIGNAL,
22*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SCOPE_COUNT,
23*8d67ca89SAndroid Build Coastguard Worker };
24*8d67ca89SAndroid Build Coastguard Worker struct counter_component {
25*8d67ca89SAndroid Build Coastguard Worker   __u8 type;
26*8d67ca89SAndroid Build Coastguard Worker   __u8 scope;
27*8d67ca89SAndroid Build Coastguard Worker   __u8 parent;
28*8d67ca89SAndroid Build Coastguard Worker   __u8 id;
29*8d67ca89SAndroid Build Coastguard Worker };
30*8d67ca89SAndroid Build Coastguard Worker enum counter_event_type {
31*8d67ca89SAndroid Build Coastguard Worker   COUNTER_EVENT_OVERFLOW,
32*8d67ca89SAndroid Build Coastguard Worker   COUNTER_EVENT_UNDERFLOW,
33*8d67ca89SAndroid Build Coastguard Worker   COUNTER_EVENT_OVERFLOW_UNDERFLOW,
34*8d67ca89SAndroid Build Coastguard Worker   COUNTER_EVENT_THRESHOLD,
35*8d67ca89SAndroid Build Coastguard Worker   COUNTER_EVENT_INDEX,
36*8d67ca89SAndroid Build Coastguard Worker   COUNTER_EVENT_CHANGE_OF_STATE,
37*8d67ca89SAndroid Build Coastguard Worker   COUNTER_EVENT_CAPTURE,
38*8d67ca89SAndroid Build Coastguard Worker };
39*8d67ca89SAndroid Build Coastguard Worker struct counter_watch {
40*8d67ca89SAndroid Build Coastguard Worker   struct counter_component component;
41*8d67ca89SAndroid Build Coastguard Worker   __u8 event;
42*8d67ca89SAndroid Build Coastguard Worker   __u8 channel;
43*8d67ca89SAndroid Build Coastguard Worker };
44*8d67ca89SAndroid Build Coastguard Worker #define COUNTER_ADD_WATCH_IOCTL _IOW(0x3E, 0x00, struct counter_watch)
45*8d67ca89SAndroid Build Coastguard Worker #define COUNTER_ENABLE_EVENTS_IOCTL _IO(0x3E, 0x01)
46*8d67ca89SAndroid Build Coastguard Worker #define COUNTER_DISABLE_EVENTS_IOCTL _IO(0x3E, 0x02)
47*8d67ca89SAndroid Build Coastguard Worker struct counter_event {
48*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 timestamp;
49*8d67ca89SAndroid Build Coastguard Worker   __aligned_u64 value;
50*8d67ca89SAndroid Build Coastguard Worker   struct counter_watch watch;
51*8d67ca89SAndroid Build Coastguard Worker   __u8 status;
52*8d67ca89SAndroid Build Coastguard Worker };
53*8d67ca89SAndroid Build Coastguard Worker enum counter_count_direction {
54*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_DIRECTION_FORWARD,
55*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_DIRECTION_BACKWARD,
56*8d67ca89SAndroid Build Coastguard Worker };
57*8d67ca89SAndroid Build Coastguard Worker enum counter_count_mode {
58*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_MODE_NORMAL,
59*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_MODE_RANGE_LIMIT,
60*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_MODE_NON_RECYCLE,
61*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_MODE_MODULO_N,
62*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_MODE_INTERRUPT_ON_TERMINAL_COUNT,
63*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_MODE_HARDWARE_RETRIGGERABLE_ONESHOT,
64*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_MODE_RATE_GENERATOR,
65*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_MODE_SQUARE_WAVE_MODE,
66*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_MODE_SOFTWARE_TRIGGERED_STROBE,
67*8d67ca89SAndroid Build Coastguard Worker   COUNTER_COUNT_MODE_HARDWARE_TRIGGERED_STROBE,
68*8d67ca89SAndroid Build Coastguard Worker };
69*8d67ca89SAndroid Build Coastguard Worker enum counter_function {
70*8d67ca89SAndroid Build Coastguard Worker   COUNTER_FUNCTION_INCREASE,
71*8d67ca89SAndroid Build Coastguard Worker   COUNTER_FUNCTION_DECREASE,
72*8d67ca89SAndroid Build Coastguard Worker   COUNTER_FUNCTION_PULSE_DIRECTION,
73*8d67ca89SAndroid Build Coastguard Worker   COUNTER_FUNCTION_QUADRATURE_X1_A,
74*8d67ca89SAndroid Build Coastguard Worker   COUNTER_FUNCTION_QUADRATURE_X1_B,
75*8d67ca89SAndroid Build Coastguard Worker   COUNTER_FUNCTION_QUADRATURE_X2_A,
76*8d67ca89SAndroid Build Coastguard Worker   COUNTER_FUNCTION_QUADRATURE_X2_B,
77*8d67ca89SAndroid Build Coastguard Worker   COUNTER_FUNCTION_QUADRATURE_X4,
78*8d67ca89SAndroid Build Coastguard Worker };
79*8d67ca89SAndroid Build Coastguard Worker enum counter_signal_level {
80*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SIGNAL_LEVEL_LOW,
81*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SIGNAL_LEVEL_HIGH,
82*8d67ca89SAndroid Build Coastguard Worker };
83*8d67ca89SAndroid Build Coastguard Worker enum counter_synapse_action {
84*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SYNAPSE_ACTION_NONE,
85*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SYNAPSE_ACTION_RISING_EDGE,
86*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SYNAPSE_ACTION_FALLING_EDGE,
87*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SYNAPSE_ACTION_BOTH_EDGES,
88*8d67ca89SAndroid Build Coastguard Worker };
89*8d67ca89SAndroid Build Coastguard Worker enum counter_signal_polarity {
90*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SIGNAL_POLARITY_POSITIVE,
91*8d67ca89SAndroid Build Coastguard Worker   COUNTER_SIGNAL_POLARITY_NEGATIVE,
92*8d67ca89SAndroid Build Coastguard Worker };
93*8d67ca89SAndroid Build Coastguard Worker #endif
94