1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
use generated;
#[inline] pub fn lirc_space(value: u32) -> u32 { (value & generated::LIRC_VALUE_MASK) | generated::LIRC_MODE2_SPACE }
#[inline] pub fn lirc_pulse(value: u32) -> u32 { (value & generated::LIRC_VALUE_MASK) | generated::LIRC_MODE2_PULSE }
#[inline] pub fn lirc_frequency(value: u32) -> u32 { (value & generated::LIRC_VALUE_MASK) | generated::LIRC_MODE2_FREQUENCY }
#[inline] pub fn lirc_timeout(value: u32) -> u32 { (value & generated::LIRC_VALUE_MASK) | generated::LIRC_MODE2_TIMEOUT }
#[inline] pub fn lirc_value(value: u32) -> u32 { value & generated::LIRC_VALUE_MASK }
#[inline] pub fn lirc_mode2(value: u32) -> u32 { value & generated::LIRC_MODE2_MASK }
#[inline] pub fn lirc_is_space(value: u32) -> bool { lirc_mode2(value) == generated::LIRC_MODE2_SPACE }
#[inline] pub fn lirc_is_pulse(value: u32) -> bool { lirc_mode2(value) == generated::LIRC_MODE2_PULSE }
#[inline] pub fn lirc_is_frequency(value: u32) -> bool { lirc_mode2(value) == generated::LIRC_MODE2_FREQUENCY }
#[inline] pub fn lirc_is_timeout(value: u32) -> bool { lirc_mode2(value) == generated::LIRC_MODE2_TIMEOUT }
#[inline] pub fn lirc_mode2send(value: u32) -> u32 { value }
#[inline] pub fn lirc_send2mode(value: u32) -> u32 { value }
#[inline] pub fn lirc_mode2rec(value: u32) -> u32 { value << 16 }
#[inline] pub fn lirc_rec2mode(value: u32) -> u32 { value >> 16 }
pub const LIRC_CAN_SEND_RAW: u32 = generated::LIRC_MODE_RAW;
pub const LIRC_CAN_SEND_PULSE: u32 = generated::LIRC_MODE_PULSE;
pub const LIRC_CAN_SEND_MODE2: u32 = generated::LIRC_MODE_MODE2;
pub const LIRC_CAN_SEND_LIRCCODE: u32 = generated::LIRC_MODE_LIRCCODE;
pub const LIRC_CAN_REC_RAW: u32 = generated::LIRC_MODE_RAW << 16;
pub const LIRC_CAN_REC_PULSE: u32 = generated::LIRC_MODE_PULSE << 16;
pub const LIRC_CAN_REC_MODE2: u32 = generated::LIRC_MODE_MODE2 << 16;
pub const LIRC_CAN_REC_SCANCODE: u32 = generated::LIRC_MODE_SCANCODE << 16;
pub const LIRC_CAN_REC_LIRCCODE: u32 = generated::LIRC_MODE_LIRCCODE << 16;
pub const LIRC_CAN_REC_MASK: u32 = generated::LIRC_CAN_SEND_MASK << 16;
#[inline] pub fn lirc_can_send(value: u32) -> u32 { value & generated::LIRC_CAN_SEND_MASK }
#[inline] pub fn lirc_can_rec(value: u32) -> u32 { value & LIRC_CAN_REC_MASK }
const LIRC_IOCTL_MAGIC: u8 = b'i';
ioctl_read!(ioctl_lirc_get_features, LIRC_IOCTL_MAGIC, 0x00, generated::__u32);
ioctl_read!(ioctl_lirc_get_send_mode, LIRC_IOCTL_MAGIC, 0x01, generated::__u32);
ioctl_read!(ioctl_lirc_get_rec_mode, LIRC_IOCTL_MAGIC, 0x02, generated::__u32);
ioctl_read!(ioctl_lirc_get_rec_resolution, LIRC_IOCTL_MAGIC, 0x07, generated::__u32);
ioctl_read!(ioctl_lirc_get_min_timeout, LIRC_IOCTL_MAGIC, 0x08, generated::__u32);
ioctl_read!(ioctl_lirc_get_max_timeout, LIRC_IOCTL_MAGIC, 0x09, generated::__u32);
ioctl_read!(ioctl_lirc_get_length, LIRC_IOCTL_MAGIC, 0x0f, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_send_mode, LIRC_IOCTL_MAGIC, 0x11, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_rec_mode, LIRC_IOCTL_MAGIC, 0x12, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_send_carrier, LIRC_IOCTL_MAGIC, 0x13, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_rec_carrier, LIRC_IOCTL_MAGIC, 0x14, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_send_duty_cycle, LIRC_IOCTL_MAGIC, 0x15, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_transmitter_mask, LIRC_IOCTL_MAGIC, 0x17, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_rec_timeout, LIRC_IOCTL_MAGIC, 0x18, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_rec_timeout_reports, LIRC_IOCTL_MAGIC, 0x19, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_measure_carrier_mode, LIRC_IOCTL_MAGIC, 0x1d, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_rec_carrier_range, LIRC_IOCTL_MAGIC, 0x1f, generated::__u32);
ioctl_write_ptr!(ioctl_lirc_set_wideband_receiver, LIRC_IOCTL_MAGIC, 0x23, generated::__u32);
ioctl_read!(ioctl_lirc_get_rec_timeout, LIRC_IOCTL_MAGIC, 0x24, generated::__u32);
#[cfg(test)]
mod test {
use super::*;
quickcheck!{ fn prop_lirc_space(x: u32) -> bool { lirc_space(x) == x } }
quickcheck!{ fn prop_lirc_pulse(x: u32) -> bool { lirc_pulse(x) == x | generated::LIRC_MODE2_PULSE } }
quickcheck!{ fn prop_lirc_frequency(x: u32) -> bool { lirc_frequency(x) == x | generated::LIRC_MODE2_FREQUENCY } }
quickcheck!{ fn prop_lirc_timeout(x: u32) -> bool { lirc_timeout(x) == x | generated::LIRC_MODE2_TIMEOUT } }
quickcheck!{ fn prop_lirc_value(x: u32) -> bool { lirc_value(x) == x & generated::LIRC_VALUE_MASK} }
quickcheck!{ fn prop_lirc_mode2(x: u32) -> bool { lirc_mode2(x) == x & generated::LIRC_MODE2_MASK} }
quickcheck!{ fn prop_lirc_is_space(x: u32) -> bool { lirc_is_space((x & generated::LIRC_MODE2_MASK) | generated::LIRC_MODE2_SPACE) } }
quickcheck!{ fn prop_lirc_is_pulse(x: u32) -> bool { lirc_is_pulse((x & generated::LIRC_MODE2_MASK) | generated::LIRC_MODE2_PULSE) } }
quickcheck!{ fn prop_lirc_is_frequency(x: u32) -> bool { lirc_is_frequency((x & generated::LIRC_MODE2_MASK) | generated::LIRC_MODE2_FREQUENCY) } }
quickcheck!{ fn prop_lirc_is_timeout(x: u32) -> bool { lirc_is_timeout((x & generated::LIRC_MODE2_MASK) | generated::LIRC_MODE2_TIMEOUT) } }
quickcheck!{ fn prop_lirc_mode2send(x: u32) -> bool { lirc_mode2send(x) == x } }
quickcheck!{ fn prop_lirc_send2mode(x: u32) -> bool { lirc_send2mode(x) == x } }
quickcheck!{ fn prop_lirc_mode2rec(x: u32) -> bool { lirc_mode2rec(x) == x << 16 } }
quickcheck!{ fn prop_lirc_rec2mode(x: u32) -> bool { lirc_rec2mode(x) == x >> 16 } }
quickcheck!{ fn prop_lirc_can_send(x: u32) -> bool { lirc_can_send(x) == x & generated::LIRC_CAN_SEND_MASK} }
quickcheck!{ fn prop_lirc_can_rec(x: u32) -> bool { lirc_can_rec(x) == x & LIRC_CAN_REC_MASK} }
}