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
|
/*
* Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
* Copyright (c) 2021, Edwin Hoksberg <mail@edwinhoksberg.nl>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <sys/cdefs.h>
__BEGIN_DECLS
struct winsize {
unsigned short ws_row;
unsigned short ws_col;
unsigned short ws_xpixel;
unsigned short ws_ypixel;
};
struct FBProperties {
unsigned char multihead_support;
unsigned char doublebuffer_support;
unsigned char flushing_support;
unsigned char partial_flushing_support;
};
struct FBHeadProperties {
int head_index;
unsigned pitch;
unsigned width;
unsigned height;
unsigned offset;
unsigned buffer_length;
};
struct FBHeadResolution {
int head_index;
int pitch;
int width;
int height;
};
struct FBHeadEDID {
int head_index;
unsigned char* bytes;
unsigned bytes_size;
};
struct FBHeadVerticalOffset {
int head_index;
int offsetted;
};
struct FBRect {
int head_index;
unsigned x;
unsigned y;
unsigned width;
unsigned height;
};
struct FBBufferOffset {
int buffer_index;
unsigned offset;
};
struct FBFlushRects {
int buffer_index;
unsigned count;
struct FBRect const* rects;
};
__END_DECLS
enum IOCtlNumber {
TIOCGPGRP,
TIOCSPGRP,
TCGETS,
TCSETS,
TCSETSW,
TCSETSF,
TCFLSH,
TIOCGWINSZ,
TIOCSCTTY,
TIOCSTI,
TIOCNOTTY,
TIOCSWINSZ,
TIOCGPTN,
FB_IOCTL_GET_PROPERTIES,
FB_IOCTL_GET_HEAD_PROPERTIES,
FB_IOCTL_SET_HEAD_RESOLUTION,
FB_IOCTL_GET_HEAD_EDID,
FB_IOCTL_SET_HEAD_VERTICAL_OFFSET_BUFFER,
FB_IOCTL_GET_HEAD_VERTICAL_OFFSET_BUFFER,
FB_IOCTL_FLUSH_HEAD_BUFFERS,
FB_IOCTL_FLUSH_HEAD,
KEYBOARD_IOCTL_GET_NUM_LOCK,
KEYBOARD_IOCTL_SET_NUM_LOCK,
KEYBOARD_IOCTL_GET_CAPS_LOCK,
KEYBOARD_IOCTL_SET_CAPS_LOCK,
SIOCATMARK,
SIOCSIFADDR,
SIOCGIFADDR,
SIOCGIFHWADDR,
SIOCGIFNETMASK,
SIOCSIFNETMASK,
SIOCGIFBRDADDR,
SIOCGIFMTU,
SIOCGIFFLAGS,
SIOCGIFCONF,
SIOCADDRT,
SIOCDELRT,
SIOCSARP,
SIOCDARP,
FIBMAP,
FIONBIO,
FIONREAD,
KCOV_SETBUFSIZE,
KCOV_ENABLE,
KCOV_DISABLE,
SOUNDCARD_IOCTL_SET_SAMPLE_RATE,
SOUNDCARD_IOCTL_GET_SAMPLE_RATE,
STORAGE_DEVICE_GET_SIZE,
STORAGE_DEVICE_GET_BLOCK_SIZE,
VIRGL_IOCTL_CREATE_CONTEXT,
VIRGL_IOCTL_CREATE_RESOURCE,
VIRGL_IOCTL_SUBMIT_CMD,
VIRGL_IOCTL_TRANSFER_DATA,
};
#define TIOCGPGRP TIOCGPGRP
#define TIOCSPGRP TIOCSPGRP
#define TCGETS TCGETS
#define TCSETS TCSETS
#define TCSETSW TCSETSW
#define TCSETSF TCSETSF
#define TCFLSH TCFLSH
#define TIOCGWINSZ TIOCGWINSZ
#define TIOCSCTTY TIOCSCTTY
#define TIOCSTI TIOCSTI
#define TIOCNOTTY TIOCNOTTY
#define TIOCSWINSZ TIOCSWINSZ
#define TIOCGPTN TIOCGPTN
#define FB_IOCTL_GET_PROPERTIES FB_IOCTL_GET_PROPERTIES
#define FB_IOCTL_GET_HEAD_PROPERTIES FB_IOCTL_GET_HEAD_PROPERTIES
#define FB_IOCTL_GET_HEAD_EDID FB_IOCTL_GET_HEAD_EDID
#define FB_IOCTL_SET_HEAD_RESOLUTION FB_IOCTL_SET_HEAD_RESOLUTION
#define FB_IOCTL_SET_HEAD_VERTICAL_OFFSET_BUFFER FB_IOCTL_SET_HEAD_VERTICAL_OFFSET_BUFFER
#define FB_IOCTL_GET_HEAD_VERTICAL_OFFSET_BUFFER FB_IOCTL_GET_HEAD_VERTICAL_OFFSET_BUFFER
#define FB_IOCTL_FLUSH_HEAD_BUFFERS FB_IOCTL_FLUSH_HEAD_BUFFERS
#define FB_IOCTL_FLUSH_HEAD FB_IOCTL_FLUSH_HEAD
#define KEYBOARD_IOCTL_GET_NUM_LOCK KEYBOARD_IOCTL_GET_NUM_LOCK
#define KEYBOARD_IOCTL_SET_NUM_LOCK KEYBOARD_IOCTL_SET_NUM_LOCK
#define KEYBOARD_IOCTL_GET_CAPS_LOCK KEYBOARD_IOCTL_GET_CAPS_LOCK
#define KEYBOARD_IOCTL_SET_CAPS_LOCK KEYBOARD_IOCTL_SET_CAPS_LOCK
#define SIOCATMARK SIOCATMARK
#define SIOCSIFADDR SIOCSIFADDR
#define SIOCGIFADDR SIOCGIFADDR
#define SIOCGIFHWADDR SIOCGIFHWADDR
#define SIOCGIFNETMASK SIOCGIFNETMASK
#define SIOCSIFNETMASK SIOCSIFNETMASK
#define SIOCGIFBRDADDR SIOCGIFBRDADDR
#define SIOCGIFMTU SIOCGIFMTU
#define SIOCGIFFLAGS SIOCGIFFLAGS
#define SIOCGIFCONF SIOCGIFCONF
#define SIOCADDRT SIOCADDRT
#define SIOCDELRT SIOCDELRT
#define SIOCSARP SIOCSARP
#define SIOCDARP SIOCDARP
#define FIBMAP FIBMAP
#define FIONBIO FIONBIO
#define FIONREAD FIONREAD
#define SOUNDCARD_IOCTL_SET_SAMPLE_RATE SOUNDCARD_IOCTL_SET_SAMPLE_RATE
#define SOUNDCARD_IOCTL_GET_SAMPLE_RATE SOUNDCARD_IOCTL_GET_SAMPLE_RATE
#define STORAGE_DEVICE_GET_SIZE STORAGE_DEVICE_GET_SIZE
#define STORAGE_DEVICE_GET_BLOCK_SIZE STORAGE_DEVICE_GET_BLOCK_SIZE
#define VIRGL_IOCTL_CREATE_CONTEXT VIRGL_IOCTL_CREATE_CONTEXT
#define VIRGL_IOCTL_CREATE_RESOURCE VIRGL_IOCTL_CREATE_RESOURCE
#define VIRGL_IOCTL_SUBMIT_CMD VIRGL_IOCTL_SUBMIT_CMD
#define VIRGL_IOCTL_TRANSFER_DATA VIRGL_IOCTL_TRANSFER_DATA
|