Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: mojo/services/files/public/interfaces/ioctl_terminal.mojom

Issue 1388413005: Move //mojo/services/X/public/... to //mojo/services/X/... (part 1). (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Defines constants, etc. to be used with the |kIoctlTerminal| ioctl.
6 //
7 // TODO(vtl): Add constants for indices?
8
9 [DartPackage="mojo_services"]
10 module mojo.files;
11
12 // For:
13 // Ioctl(kIoctlTerminal, array<uint32>? in_values)
14 // => (Error error, array<uint32>? out_values);
15 //
16 // A file that is *not* terminal-like should always respond with error
17 // |UNIMPLEMENTED| (|out_values| is then undefined). The following applies to
18 // files that *are* terminal-like.
19 //
20 // If |in_values| is null or empty, the response should be |OK| (|out_values| is
21 // undefined). Thus |Ioctl(kIoctlTerminal, null)| can be used as a test for "is
22 // a terminal".
23 //
24 // Otherwise, |in_values[0]| should be one of "subrequest" values described
25 // below. (Subrequest values unknown to the implementation should be responded
26 // to with error |UNIMPLEMENTED|.)
27 //
28 // Unless otherwise specified, nothing in |in_values| is required. Unless
29 // otherwise specified, the presence of extra values beyond those specified (if
30 // any) should result in error |INVALID_ARGUMENT|. In contrast, extra values in
31 // |out_values| beyond those specified should be ignored.
32
33 // Invalid subrequest. The response should error |UNIMPLEMENTED|.
34 const uint32 kIoctlTerminalInvalid = 0;
35
36 // Get terminal ("termios") settings subrequest. On |OK|:
37 // * |out_values[0]| is "iflag" (input mode flags);
38 // * |out_values[1]| is "oflag" (output mode flags);
39 // * |out_values[2]| is "cflag" (control mode flags);
40 // * |out_values[3]| is "lflag" (local mode flags);
41 // * |out_values[4]| is "ispeed" (input speed; 0 if unavailable);
42 // * |out_values[5]| is "ospeed" (output speed; 1 if unavailable);
43 // * |out_values[6..]| are "cc" (control/special characters -- there may be
44 // any number of these).
45 // Constants for the flags, etc. are defined further below.
46 const uint32 kIoctlTerminalGetSettings = 1;
47
48 // Set terminal ("termios") settings subrequest. |in_values[1..6]| should be
49 // like |out_values[0..5]| for |kIoctlTerminalGetSettings|, and |in_values[7..]|
50 // should be like |out_values[6..]| (any missing "cc" values are left
51 // untouched and unknown/extra "cc" values are ignored).
52 const uint32 kIoctlTerminalSetSettings = 2;
53
54 // Get terminal "window" size subrequest. |out_values[0..1]| should be the
55 // number of rows and columns, respectively. This may also result in error
56 // |UNAVAILABLE| (and no |out_values|), if the size is not available for
57 // whatever reason.
58 // TODO(vtl): This is unlike the Linux/POSIX ioctl, I think, which will just use
59 // a previous/default value.
60 const uint32 kIoctlTerminalGetWindowSize = 3;
61
62 // Set terminal "window" size subrequest. |in_values[1..2]| should be the
63 // requested number of rows and and columns, respectively. If the error is |OK|
64 // or |OUT_OF_RANGE|, |out_values[0..1]| should be the actual set number of rows
65 // and columns (if |OK| these should be the same as the requested values; on
66 // other errors, |out_values| is undefined).
67 const uint32 kIoctlTerminalSetWindowSize = 4;
68
69 // Constants for "termios" fields ----------------------------------------------
70
71 // Number of base/nonoptional fields:
72 const uint32 kIoctlTerminalTermiosBaseFieldCount = 6;
73
74 // Indices for the base fields:
75 const uint32 kIoctlTerminalTermiosIFlagIndex = 0;
76 const uint32 kIoctlTerminalTermiosOFlagIndex = 1;
77 const uint32 kIoctlTerminalTermiosCFlagIndex = 2;
78 const uint32 kIoctlTerminalTermiosLFlagIndex = 3;
79 const uint32 kIoctlTerminalTermiosISpeedIndex = 4;
80 const uint32 kIoctlTerminalTermiosOSpeedIndex = 5;
81
82 // Current number of "cc" fields:
83 const uint32 kIoctlTerminalTermiosCtrlCharCount = 17;
84
85 // "cc" field indices:
86 // Note: Not all of these may be available.
87 const uint32 kIoctlTerminalTermiosCtrlCharVINTRIndex = 17;
88 const uint32 kIoctlTerminalTermiosCtrlCharVQUITIndex = 18;
89 const uint32 kIoctlTerminalTermiosCtrlCharVERASEIndex = 19;
90 const uint32 kIoctlTerminalTermiosCtrlCharVKILLIndex = 20;
91 const uint32 kIoctlTerminalTermiosCtrlCharVEOFIndex = 21;
92 const uint32 kIoctlTerminalTermiosCtrlCharVTIMEIndex = 22;
93 const uint32 kIoctlTerminalTermiosCtrlCharVMINIndex = 23;
94 const uint32 kIoctlTerminalTermiosCtrlCharVSWTCIndex = 24;
95 const uint32 kIoctlTerminalTermiosCtrlCharVSTARTIndex = 25;
96 const uint32 kIoctlTerminalTermiosCtrlCharVSTOPIndex = 26;
97 const uint32 kIoctlTerminalTermiosCtrlCharVSUSPIndex = 27;
98 const uint32 kIoctlTerminalTermiosCtrlCharVEOLIndex = 28;
99 const uint32 kIoctlTerminalTermiosCtrlCharVREPRINTIndex = 29;
100 const uint32 kIoctlTerminalTermiosCtrlCharVDISCARDIndex = 30;
101 const uint32 kIoctlTerminalTermiosCtrlCharVWERASEIndex = 31;
102 const uint32 kIoctlTerminalTermiosCtrlCharVLNEXTIndex = 32;
103 const uint32 kIoctlTerminalTermiosCtrlCharVEOL2Index = 33;
104
105 // "iflag" flag values:
106 const uint32 kIoctlTerminalTermiosIFlagIGNBRK = 0x0001;
107 const uint32 kIoctlTerminalTermiosIFlagBRKINT = 0x0002;
108 const uint32 kIoctlTerminalTermiosIFlagIGNPAR = 0x0004;
109 const uint32 kIoctlTerminalTermiosIFlagPARMRK = 0x0008;
110 const uint32 kIoctlTerminalTermiosIFlagINPCK = 0x0010;
111 const uint32 kIoctlTerminalTermiosIFlagISTRIP = 0x0020;
112 const uint32 kIoctlTerminalTermiosIFlagINLCR = 0x0040;
113 const uint32 kIoctlTerminalTermiosIFlagIGNCR = 0x0080;
114 const uint32 kIoctlTerminalTermiosIFlagICRNL = 0x0100;
115 const uint32 kIoctlTerminalTermiosIFlagIUCLC = 0x0200;
116 const uint32 kIoctlTerminalTermiosIFlagIXON = 0x0400;
117 const uint32 kIoctlTerminalTermiosIFlagIXANY = 0x0800;
118 const uint32 kIoctlTerminalTermiosIFlagIXOFF = 0x1000;
119 const uint32 kIoctlTerminalTermiosIFlagIMAXBEL = 0x2000;
120 const uint32 kIoctlTerminalTermiosIFlagIUTF8 = 0x4000;
121
122 // "oflag" flag values:
123 const uint32 kIoctlTerminalTermiosOFlagOPOST = 0x0001;
124 const uint32 kIoctlTerminalTermiosOFlagOLCUC = 0x0002;
125 const uint32 kIoctlTerminalTermiosOFlagONLCR = 0x0004;
126 const uint32 kIoctlTerminalTermiosOFlagOCRNL = 0x0008;
127 const uint32 kIoctlTerminalTermiosOFlagONOCR = 0x0010;
128 const uint32 kIoctlTerminalTermiosOFlagONLRET = 0x0020;
129 const uint32 kIoctlTerminalTermiosOFlagOFILL = 0x0040;
130 const uint32 kIoctlTerminalTermiosOFlagOFDEL = 0x0080;
131
132 const uint32 kIoctlTerminalTermiosOFlagNLDLY = 0x0100; // Mask.
133 const uint32 kIoctlTerminalTermiosOFlagNL0 = 0x0000;
134 const uint32 kIoctlTerminalTermiosOFlagNL1 = 0x0100;
135
136 const uint32 kIoctlTerminalTermiosOFlagCRDLY = 0x0600; // Mask.
137 const uint32 kIoctlTerminalTermiosOFlagCR0 = 0x0000;
138 const uint32 kIoctlTerminalTermiosOFlagCR1 = 0x0200;
139 const uint32 kIoctlTerminalTermiosOFlagCR2 = 0x0400;
140 const uint32 kIoctlTerminalTermiosOFlagCR3 = 0x0600;
141
142 const uint32 kIoctlTerminalTermiosOFlagTABDLY = 0x1800; // Mask.
143 const uint32 kIoctlTerminalTermiosOFlagTAB0 = 0x0000;
144 const uint32 kIoctlTerminalTermiosOFlagTAB1 = 0x0800;
145 const uint32 kIoctlTerminalTermiosOFlagTAB2 = 0x1000;
146 const uint32 kIoctlTerminalTermiosOFlagTAB3 = 0x1800;
147
148 const uint32 kIoctlTerminalTermiosOFlagBSDLY = 0x2000; // Mask.
149 const uint32 kIoctlTerminalTermiosOFlagBS0 = 0x0000;
150 const uint32 kIoctlTerminalTermiosOFlagBS1 = 0x2000;
151
152 const uint32 kIoctlTerminalTermiosOFlagVTDLY = 0x4000; // Mask.
153 const uint32 kIoctlTerminalTermiosOFlagVT0 = 0x0000;
154 const uint32 kIoctlTerminalTermiosOFlagVT1 = 0x4000;
155
156 const uint32 kIoctlTerminalTermiosOFlagFFDLY = 0x8000; // Mask.
157 const uint32 kIoctlTerminalTermiosOFlagFF0 = 0x0000;
158 const uint32 kIoctlTerminalTermiosOFlagFF1 = 0x8000;
159
160 // "cflag" flag values:
161 // Note: We don't have "CBAUD" in our "cflag".
162 const uint32 kIoctlTerminalTermiosCFlagCSIZE = 0x0003; // Mask.
163 const uint32 kIoctlTerminalTermiosCFlagCS5 = 0x0000;
164 const uint32 kIoctlTerminalTermiosCFlagCS6 = 0x0001;
165 const uint32 kIoctlTerminalTermiosCFlagCS7 = 0x0002;
166 const uint32 kIoctlTerminalTermiosCFlagCS8 = 0x0003;
167
168 const uint32 kIoctlTerminalTermiosCFlagCSTOPB = 0x0004;
169 const uint32 kIoctlTerminalTermiosCFlagCREAD = 0x0008;
170 const uint32 kIoctlTerminalTermiosCFlagPARENB = 0x0010;
171 const uint32 kIoctlTerminalTermiosCFlagPARODD = 0x0020;
172 const uint32 kIoctlTerminalTermiosCFlagHUPCL = 0x0040;
173 const uint32 kIoctlTerminalTermiosCFlagCLOCAL = 0x0080;
174
175 // "lflag" flag values:
176 const uint32 kIoctlTerminalTermiosLFlagISIG = 0x0001;
177 const uint32 kIoctlTerminalTermiosLFlagICANON = 0x0002;
178 const uint32 kIoctlTerminalTermiosLFlagXCASE = 0x0004;
179 const uint32 kIoctlTerminalTermiosLFlagECHO = 0x0008;
180 const uint32 kIoctlTerminalTermiosLFlagECHOE = 0x0010;
181 const uint32 kIoctlTerminalTermiosLFlagECHOK = 0x0020;
182 const uint32 kIoctlTerminalTermiosLFlagECHONL = 0x0040;
183 const uint32 kIoctlTerminalTermiosLFlagNOFLSH = 0x0080;
184 const uint32 kIoctlTerminalTermiosLFlagTOSTOP = 0x0100;
OLDNEW
« no previous file with comments | « mojo/services/files/public/interfaces/ioctl.mojom ('k') | mojo/services/files/public/interfaces/types.mojom » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698