This file is indexed.

/usr/include/wine/windows/ddk/ntddser.h is in wine1.4-dev 1.4-0ubuntu4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
/*
 * DDK definitions for serial port
 *
 * Copyright (C) 2006 Eric Pouech
 * From w32api package
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 */

#ifndef _NTDDSER_H_
#define _NTDDSER_H_

#ifdef __cplusplus
extern "C" {
#endif

#define IOCTL_SERIAL_CLEAR_STATS                                        \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 36, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_CLR_DTR                                            \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 10, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_CLR_RTS                                            \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 13, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_CONFIG_SIZE                                        \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 32, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_BAUD_RATE                                      \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 20, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_CHARS                                          \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 22, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_COMMSTATUS                                     \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 27, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_DTRRTS                                         \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 30, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_HANDFLOW                                       \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 24, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_LINE_CONTROL                                   \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 21, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_MODEM_CONTROL                                  \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 37, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_MODEMSTATUS                                    \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 26, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_PROPERTIES                                     \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 29, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_STATS                                          \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 35, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_TIMEOUTS                                       \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 8, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_GET_WAIT_MASK                                      \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 16, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_IMMEDIATE_CHAR                                     \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 6, METHOD_BUFFERED, FILE_ANY_ACCESS)
#ifndef IOCTL_SERIAL_LSRMST_INSERT
/* it's already defined in winioctl.h */
#define IOCTL_SERIAL_LSRMST_INSERT                             \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 31, METHOD_BUFFERED, FILE_ANY_ACCESS)
#endif
#define IOCTL_SERIAL_PURGE                                              \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 19, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_RESET_DEVICE                                       \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 11, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_BAUD_RATE                                      \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_BREAK_ON                                       \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 4, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_BREAK_OFF                                      \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 5, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_CHARS                                          \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 23, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_DTR                                            \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 9, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_FIFO_CONTROL                                   \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 39, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_HANDFLOW                                       \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 25, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_LINE_CONTROL                                   \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 3, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_MODEM_CONTROL                                  \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 38, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_QUEUE_SIZE                                     \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 2, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_RTS                                            \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 12, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_TIMEOUTS                                       \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 7, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_WAIT_MASK                                      \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 17, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_XOFF                                           \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 14, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_SET_XON                                            \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 15, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_WAIT_ON_MASK                                       \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 18, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SERIAL_XOFF_COUNTER                                       \
    CTL_CODE (FILE_DEVICE_SERIAL_PORT, 28, METHOD_BUFFERED, FILE_ANY_ACCESS)

typedef struct _SERIAL_BAUD_RATE
{
    ULONG       BaudRate;
} SERIAL_BAUD_RATE, *PSERIAL_BAUD_RATE;

/* SERIAL_BAUD_RATE.BaudRate constants */
#define SERIAL_BAUD_075                   0x00000001
#define SERIAL_BAUD_110                   0x00000002
#define SERIAL_BAUD_134_5                 0x00000004
#define SERIAL_BAUD_150                   0x00000008
#define SERIAL_BAUD_300                   0x00000010
#define SERIAL_BAUD_600                   0x00000020
#define SERIAL_BAUD_1200                  0x00000040
#define SERIAL_BAUD_1800                  0x00000080
#define SERIAL_BAUD_2400                  0x00000100
#define SERIAL_BAUD_4800                  0x00000200
#define SERIAL_BAUD_7200                  0x00000400
#define SERIAL_BAUD_9600                  0x00000800
#define SERIAL_BAUD_14400                 0x00001000
#define SERIAL_BAUD_19200                 0x00002000
#define SERIAL_BAUD_38400                 0x00004000
#define SERIAL_BAUD_56K                   0x00008000
#define SERIAL_BAUD_128K                  0x00010000
#define SERIAL_BAUD_115200                0x00020000
#define SERIAL_BAUD_57600                 0x00040000
#define SERIAL_BAUD_USER                  0x10000000

typedef struct _SERIAL_CHARS
{
    UCHAR       EofChar;
    UCHAR       ErrorChar;
    UCHAR       BreakChar;
    UCHAR       EventChar;
    UCHAR       XonChar;
    UCHAR       XoffChar;
} SERIAL_CHARS, *PSERIAL_CHARS;

typedef struct _SERIAL_STATUS
{
    ULONG       Errors;
    ULONG       HoldReasons;
    ULONG       AmountInInQueue;
    ULONG       AmountInOutQueue;
    BOOLEAN     EofReceived;
    BOOLEAN     WaitForImmediate;
} SERIAL_STATUS, *PSERIAL_STATUS;

typedef struct _SERIAL_HANDFLOW
{
    ULONG       ControlHandShake;
    ULONG       FlowReplace;
    LONG        XonLimit;
    LONG        XoffLimit;
} SERIAL_HANDFLOW, *PSERIAL_HANDFLOW;

#define SERIAL_DTR_MASK                   0x00000003
#define SERIAL_DTR_CONTROL                0x00000001
#define SERIAL_DTR_HANDSHAKE              0x00000002
#define SERIAL_CTS_HANDSHAKE              0x00000008
#define SERIAL_DSR_HANDSHAKE              0x00000010
#define SERIAL_DCD_HANDSHAKE              0x00000020
#define SERIAL_OUT_HANDSHAKEMASK          0x00000038
#define SERIAL_DSR_SENSITIVITY            0x00000040
#define SERIAL_ERROR_ABORT                0x80000000
#define SERIAL_CONTROL_INVALID            0x7fffff84
#define SERIAL_AUTO_TRANSMIT              0x00000001
#define SERIAL_AUTO_RECEIVE               0x00000002
#define SERIAL_ERROR_CHAR                 0x00000004
#define SERIAL_NULL_STRIPPING             0x00000008
#define SERIAL_BREAK_CHAR                 0x00000010
#define SERIAL_RTS_MASK                   0x000000c0
#define SERIAL_RTS_CONTROL                0x00000040
#define SERIAL_RTS_HANDSHAKE              0x00000080
#define SERIAL_TRANSMIT_TOGGLE            0x000000c0
#define SERIAL_XOFF_CONTINUE              0x80000000
#define SERIAL_FLOW_INVALID               0x7fffff20

typedef struct _SERIAL_LINE_CONTROL
{
    UCHAR       StopBits;
    UCHAR       Parity;
    UCHAR       WordLength;
} SERIAL_LINE_CONTROL, *PSERIAL_LINE_CONTROL;

/* SERIAL_LINE_CONTROL.StopBits constants */
#define STOP_BIT_1                        0x00
#define STOP_BITS_1_5                     0x01
#define STOP_BITS_2                       0x02

/* SERIAL_LINE_CONTROL.Parity constants */
#define NO_PARITY                         0x00
#define ODD_PARITY                        0x01
#define EVEN_PARITY                       0x02
#define MARK_PARITY                       0x03
#define SPACE_PARITY                      0x04

/* IOCTL_SERIAL_(GET_MODEM_CONTROL, SET_MODEM_CONTROL) flags */
#define SERIAL_IOC_MCR_DTR                0x00000001
#define SERIAL_IOC_MCR_RTS                0x00000002
#define SERIAL_IOC_MCR_OUT1               0x00000004
#define SERIAL_IOC_MCR_OUT2               0x00000008
#define SERIAL_IOC_MCR_LOOP               0x00000010

typedef struct _SERIAL_COMMPROP
{
    USHORT      PacketLength;
    USHORT      PacketVersion;
    ULONG       ServiceMask;
    ULONG       Reserved1;
    ULONG       MaxTxQueue;
    ULONG       MaxRxQueue;
    ULONG       MaxBaud;
    ULONG       ProvSubType;
    ULONG       ProvCapabilities;
    ULONG       SettableParams;
    ULONG       SettableBaud;
    USHORT      SettableData;
    USHORT      SettableStopParity;
    ULONG       CurrentTxQueue;
    ULONG       CurrentRxQueue;
    ULONG       ProvSpec1;
    ULONG       ProvSpec2;
    WCHAR       ProvChar[1];
} SERIAL_COMMPROP, *PSERIAL_COMMPROP;

/* SERIAL_COMMPROP.SettableParams flags */
#define SERIAL_SP_PARITY                  0x0001
#define SERIAL_SP_BAUD                    0x0002
#define SERIAL_SP_DATABITS                0x0004
#define SERIAL_SP_STOPBITS                0x0008
#define SERIAL_SP_HANDSHAKING             0x0010
#define SERIAL_SP_PARITY_CHECK            0x0020
#define SERIAL_SP_CARRIER_DETECT          0x0040

/* SERIAL_COMMPROP.ProvCapabilities flags */
#define SERIAL_PCF_DTRDSR                 0x00000001
#define SERIAL_PCF_RTSCTS                 0x00000002
#define SERIAL_PCF_CD                     0x00000004
#define SERIAL_PCF_PARITY_CHECK           0x00000008
#define SERIAL_PCF_XONXOFF                0x00000010
#define SERIAL_PCF_SETXCHAR               0x00000020
#define SERIAL_PCF_TOTALTIMEOUTS          0x00000040
#define SERIAL_PCF_INTTIMEOUTS            0x00000080
#define SERIAL_PCF_SPECIALCHARS           0x00000100
#define SERIAL_PCF_16BITMODE              0x00000200

/* SERIAL_COMMPROP.SettableData flags */
#define SERIAL_DATABITS_5                 0x0001
#define SERIAL_DATABITS_6                 0x0002
#define SERIAL_DATABITS_7                 0x0004
#define SERIAL_DATABITS_8                 0x0008
#define SERIAL_DATABITS_16                0x0010
#define SERIAL_DATABITS_16X               0x0020

/* SERIAL_COMMPROP.SettableStopParity flags */
#define SERIAL_STOPBITS_10                0x0001
#define SERIAL_STOPBITS_15                0x0002
#define SERIAL_STOPBITS_20                0x0004
#define SERIAL_PARITY_NONE                0x0100
#define SERIAL_PARITY_ODD                 0x0200
#define SERIAL_PARITY_EVEN                0x0400
#define SERIAL_PARITY_MARK                0x0800
#define SERIAL_PARITY_SPACE               0x1000

typedef struct _SERIALPERF_STATS
{
    ULONG       ReceivedCount;
    ULONG       TransmittedCount;
    ULONG       FrameErrorCount;
    ULONG       SerialOverrunErrorCount;
    ULONG       BufferOverrunErrorCount;
    ULONG       ParityErrorCount;
} SERIALPERF_STATS, *PSERIALPERF_STATS;

typedef struct _SERIAL_TIMEOUTS
{
    ULONG       ReadIntervalTimeout;
    ULONG       ReadTotalTimeoutMultiplier;
    ULONG       ReadTotalTimeoutConstant;
    ULONG       WriteTotalTimeoutMultiplier;
    ULONG       WriteTotalTimeoutConstant;
} SERIAL_TIMEOUTS, *PSERIAL_TIMEOUTS;

/* IOCTL_SERIAL_(GET_WAIT_MASK, SET_WAIT_MASK, WAIT_ON_MASK) flags */
#define SERIAL_EV_RXCHAR                  0x0001
#define SERIAL_EV_RXFLAG                  0x0002
#define SERIAL_EV_TXEMPTY                 0x0004
#define SERIAL_EV_CTS                     0x0008
#define SERIAL_EV_DSR                     0x0010
#define SERIAL_EV_RLSD                    0x0020
#define SERIAL_EV_BREAK                   0x0040
#define SERIAL_EV_ERR                     0x0080
#define SERIAL_EV_RING                    0x0100
#define SERIAL_EV_PERR                    0x0200
#define SERIAL_EV_RX80FULL                0x0400
#define SERIAL_EV_EVENT1                  0x0800
#define SERIAL_EV_EVENT2                  0x1000

/* IOCTL_SERIAL_LSRMST_INSERT constants */
#define SERIAL_LSRMST_LSR_DATA            0x01
#define SERIAL_LSRMST_LSR_NODATA          0x02
#define SERIAL_LSRMST_MST                 0x03
#define SERIAL_LSRMST_ESCAPE              0x00

/* IOCTL_SERIAL_PURGE constants */
#define SERIAL_PURGE_TXABORT              0x00000001
#define SERIAL_PURGE_RXABORT              0x00000002
#define SERIAL_PURGE_TXCLEAR              0x00000004
#define SERIAL_PURGE_RXCLEAR              0x00000008

/* IOCTL_SERIAL_SET_FIFO_CONTROL constants */
#define SERIAL_IOC_FCR_FIFO_ENABLE        0x00000001
#define SERIAL_IOC_FCR_RCVR_RESET         0x00000002
#define SERIAL_IOC_FCR_XMIT_RESET         0x00000004
#define SERIAL_IOC_FCR_DMA_MODE           0x00000008
#define SERIAL_IOC_FCR_RES1               0x00000010
#define SERIAL_IOC_FCR_RES2               0x00000020
#define SERIAL_IOC_FCR_RCVR_TRIGGER_LSB   0x00000040
#define SERIAL_IOC_FCR_RCVR_TRIGGER_MSB   0x00000080

typedef struct _SERIAL_QUEUE_SIZE
{
    ULONG       InSize;
    ULONG       OutSize;
} SERIAL_QUEUE_SIZE, *PSERIAL_QUEUE_SIZE;

typedef struct _SERIAL_XOFF_COUNTER
{
    ULONG       Timeout;
    LONG        Counter;
    UCHAR       XoffChar;
} SERIAL_XOFF_COUNTER, *PSERIAL_XOFF_COUNTER;

typedef struct _SERIAL_BASIC_SETTINGS
{
    SERIAL_TIMEOUTS     Timeouts;
    SERIAL_HANDFLOW     HandFlow;
    ULONG       RxFifo;
    ULONG       TxFifo;
} SERIAL_BASIC_SETTINGS, *PSERIAL_BASIC_SETTINGS;

#define SERIAL_ERROR_BREAK                0x00000001
#define SERIAL_ERROR_FRAMING              0x00000002
#define SERIAL_ERROR_OVERRUN              0x00000004
#define SERIAL_ERROR_QUEUEOVERRUN         0x00000008
#define SERIAL_ERROR_PARITY               0x00000010

#define SERIAL_SP_UNSPECIFIED             0x00000000
#define SERIAL_SP_RS232                   0x00000001
#define SERIAL_SP_PARALLEL                0x00000002
#define SERIAL_SP_RS422                   0x00000003
#define SERIAL_SP_RS423                   0x00000004
#define SERIAL_SP_RS449                   0x00000005
#define SERIAL_SP_MODEM                   0X00000006
#define SERIAL_SP_FAX                     0x00000021
#define SERIAL_SP_SCANNER                 0x00000022
#define SERIAL_SP_BRIDGE                  0x00000100
#define SERIAL_SP_LAT                     0x00000101
#define SERIAL_SP_TELNET                  0x00000102
#define SERIAL_SP_X25                     0x00000103
#define SERIAL_SP_SERIALCOMM              0x00000001

#define SERIAL_TX_WAITING_FOR_CTS         0x00000001
#define SERIAL_TX_WAITING_FOR_DSR         0x00000002
#define SERIAL_TX_WAITING_FOR_DCD         0x00000004
#define SERIAL_TX_WAITING_FOR_XON         0x00000008
#define SERIAL_TX_WAITING_XOFF_SENT       0x00000010
#define SERIAL_TX_WAITING_ON_BREAK        0x00000020
#define SERIAL_RX_WAITING_FOR_DSR         0x00000040

#define SERIAL_DTR_STATE                  0x00000001
#define SERIAL_RTS_STATE                  0x00000002
#define SERIAL_CTS_STATE                  0x00000010
#define SERIAL_DSR_STATE                  0x00000020
#define SERIAL_RI_STATE                   0x00000040
#define SERIAL_DCD_STATE                  0x00000080

typedef struct _SERIALCONFIG
{
    ULONG       Size;
    USHORT      Version;
    ULONG       SubType;
    ULONG       ProvOffset;
    ULONG       ProviderSize;
    WCHAR       ProviderData[1];
} SERIALCONFIG,*PSERIALCONFIG;

#ifdef __cplusplus
}
#endif

#endif /* _NTDDSER_H_ */