-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
termios.cr
154 lines (147 loc) · 3.38 KB
/
termios.cr
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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
require "c/termios"
module Termios
@[Flags]
enum InputMode
BRKINT = LibC::BRKINT
ICRNL = LibC::ICRNL
IGNBRK = LibC::IGNBRK
IGNCR = LibC::IGNCR
IGNPAR = LibC::IGNPAR
INLCR = LibC::INLCR
INPCK = LibC::INPCK
ISTRIP = LibC::ISTRIP
IXANY = LibC::IXANY
IXOFF = LibC::IXOFF
IXON = LibC::IXON
PARMRK = LibC::PARMRK
end
{% if flag?(:freebsd) %}
@[Flags]
enum OutputMode
OPOST = LibC::OPOST
ONLCR = LibC::ONLCR
OCRNL = LibC::OCRNL
ONOCR = LibC::ONOCR
ONLRET = LibC::ONLRET
TABDLY = LibC::TABDLY
TAB0 = LibC::TAB0
TAB3 = LibC::TAB3
end
{% elsif flag?(:dragonfly) %}
# FIXME: Verify
@[Flags]
enum OutputMode
OPOST = LibC::OPOST
ONLCR = LibC::ONLCR
OCRNL = LibC::OCRNL
ONOCR = LibC::ONOCR
ONLRET = LibC::ONLRET
TABDLY = LibC::TABDLY
TAB0 = LibC::TAB0
TAB3 = LibC::TAB3
end
{% elsif flag?(:netbsd) || flag?(:openbsd) %}
@[Flags]
enum OutputMode
OPOST = LibC::OPOST
ONLCR = LibC::ONLCR
OCRNL = LibC::OCRNL
ONOCR = LibC::ONOCR
ONLRET = LibC::ONLRET
end
{% else %}
@[Flags]
enum OutputMode
OPOST = LibC::OPOST
ONLCR = LibC::ONLCR
OCRNL = LibC::OCRNL
ONOCR = LibC::ONOCR
ONLRET = LibC::ONLRET
OFDEL = LibC::OFDEL
OFILL = LibC::OFILL
CRDLY = LibC::CRDLY
CR0 = LibC::CR0
CR1 = LibC::CR1
CR2 = LibC::CR2
CR3 = LibC::CR3
TABDLY = LibC::TABDLY
TAB0 = LibC::TAB0
TAB1 = LibC::TAB1
TAB2 = LibC::TAB2
TAB3 = LibC::TAB3
BSDLY = LibC::BSDLY
BS0 = LibC::BS0
BS1 = LibC::BS1
VTDLY = LibC::VTDLY
VT0 = LibC::VT0
VT1 = LibC::VT1
FFDLY = LibC::FFDLY
FF0 = LibC::FF0
FF1 = LibC::FF1
NLDLY = LibC::NLDLY
NL0 = LibC::NL0
NL1 = LibC::NL1
end
{% end %}
enum BaudRate
B0 = LibC::B0
B50 = LibC::B50
B75 = LibC::B75
B110 = LibC::B110
B134 = LibC::B134
B150 = LibC::B150
B200 = LibC::B200
B300 = LibC::B300
B600 = LibC::B600
B1200 = LibC::B1200
B1800 = LibC::B1800
B2400 = LibC::B2400
B4800 = LibC::B4800
B9600 = LibC::B9600
B19200 = LibC::B19200
B38400 = LibC::B38400
end
enum ControlMode
CSIZE = LibC::CSIZE
CS5 = LibC::CS5
CS6 = LibC::CS6
CS7 = LibC::CS7
CS8 = LibC::CS8
CSTOPB = LibC::CSTOPB
CREAD = LibC::CREAD
PARENB = LibC::PARENB
PARODD = LibC::PARODD
HUPCL = LibC::HUPCL
CLOCAL = LibC::CLOCAL
end
@[Flags]
enum LocalMode : Int64
ECHO = LibC::ECHO
ECHOE = LibC::ECHOE
ECHOK = LibC::ECHOK
ECHONL = LibC::ECHONL
ICANON = LibC::ICANON
IEXTEN = LibC::IEXTEN
ISIG = LibC::ISIG
NOFLSH = LibC::NOFLSH
TOSTOP = LibC::TOSTOP
end
@[Flags]
enum AttributeSelection
TCSANOW = LibC::TCSANOW
TCSADRAIN = LibC::TCSADRAIN
TCSAFLUSH = LibC::TCSAFLUSH
end
enum LineControl
TCSANOW = LibC::TCSANOW
TCSADRAIN = LibC::TCSADRAIN
TCSAFLUSH = LibC::TCSAFLUSH
TCIFLUSH = LibC::TCIFLUSH
TCIOFLUSH = LibC::TCIOFLUSH
TCOFLUSH = LibC::TCOFLUSH
TCIOFF = LibC::TCIOFF
TCION = LibC::TCION
TCOOFF = LibC::TCOOFF
TCOON = LibC::TCOON
end
end