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
|
/*
* 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
#ifdef __cplusplus
extern "C" {
#endif
struct winsize {
unsigned short ws_row;
unsigned short ws_col;
unsigned short ws_xpixel;
unsigned short ws_ypixel;
};
struct GraphicsConnectorProperties {
unsigned char multihead_support;
unsigned char doublebuffer_support;
unsigned char flushing_support;
unsigned char partial_flushing_support;
unsigned char refresh_rate_support;
unsigned max_buffer_bytes;
};
struct GraphicsHeadModeSetting {
int horizontal_stride;
int pixel_clock_in_khz;
int horizontal_active;
int horizontal_front_porch_pixels;
int horizontal_sync_time_pixels;
int horizontal_blank_pixels;
int vertical_active;
int vertical_front_porch_lines;
int vertical_sync_time_lines;
int vertical_blank_lines;
int horizontal_offset;
int vertical_offset;
};
struct GraphicsHeadEDID {
unsigned char* bytes;
unsigned bytes_size;
};
struct GraphicsHeadVerticalOffset {
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;
};
enum ConsoleModes {
KD_TEXT = 0x00,
KD_GRAPHICS = 0x01,
};
#ifdef __cplusplus
}
#endif
enum IOCtlNumber {
TIOCGPGRP,
TIOCSPGRP,
TCGETS,
TCSETS,
TCSETSW,
TCSETSF,
TCFLSH,
TIOCGWINSZ,
TIOCSCTTY,
TIOCSTI,
TIOCNOTTY,
TIOCSWINSZ,
TIOCGPTN,
GRAPHICS_IOCTL_GET_PROPERTIES,
GRAPHICS_IOCTL_SET_HEAD_VERTICAL_OFFSET_BUFFER,
GRAPHICS_IOCTL_GET_HEAD_VERTICAL_OFFSET_BUFFER,
GRAPHICS_IOCTL_FLUSH_HEAD_BUFFERS,
GRAPHICS_IOCTL_FLUSH_HEAD,
GRAPHICS_IOCTL_SET_HEAD_MODE_SETTING,
GRAPHICS_IOCTL_GET_HEAD_MODE_SETTING,
GRAPHICS_IOCTL_SET_SAFE_HEAD_MODE_SETTING,
GRAPHICS_IOCTL_SET_RESPONSIBLE,
GRAPHICS_IOCTL_UNSET_RESPONSIBLE,
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,
FIOCLEX,
FIONCLEX,
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,
KDSETMODE,
KDGETMODE,
};
#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 GRAPHICS_IOCTL_GET_PROPERTIES GRAPHICS_IOCTL_GET_PROPERTIES
#define GRAPHICS_IOCTL_SET_HEAD_VERTICAL_OFFSET_BUFFER GRAPHICS_IOCTL_SET_HEAD_VERTICAL_OFFSET_BUFFER
#define GRAPHICS_IOCTL_GET_HEAD_VERTICAL_OFFSET_BUFFER GRAPHICS_IOCTL_GET_HEAD_VERTICAL_OFFSET_BUFFER
#define GRAPHICS_IOCTL_FLUSH_HEAD_BUFFERS GRAPHICS_IOCTL_FLUSH_HEAD_BUFFERS
#define GRAPHICS_IOCTL_FLUSH_HEAD GRAPHICS_IOCTL_FLUSH_HEAD
#define GRAPHICS_IOCTL_SET_HEAD_MODE_SETTING GRAPHICS_IOCTL_SET_HEAD_MODE_SETTING
#define GRAPHICS_IOCTL_GET_HEAD_MODE_SETTING GRAPHICS_IOCTL_GET_HEAD_MODE_SETTING
#define GRAPHICS_IOCTL_SET_SAFE_HEAD_MODE_SETTING GRAPHICS_IOCTL_SET_SAFE_HEAD_MODE_SETTING
#define GRAPHICS_IOCTL_SET_RESPONSIBLE GRAPHICS_IOCTL_SET_RESPONSIBLE
#define GRAPHICS_IOCTL_UNSET_RESPONSIBLE GRAPHICS_IOCTL_UNSET_RESPONSIBLE
#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
#define KDSETMODE KDSETMODE
#define KDGETMODE KDGETMODE
|