Ioctl.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. * Copyright (c) 2021, Edwin Hoksberg <mail@edwinhoksberg.nl>
  4. *
  5. * SPDX-License-Identifier: BSD-2-Clause
  6. */
  7. #pragma once
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. struct winsize {
  12. unsigned short ws_row;
  13. unsigned short ws_col;
  14. unsigned short ws_xpixel;
  15. unsigned short ws_ypixel;
  16. };
  17. struct GraphicsConnectorProperties {
  18. unsigned char multihead_support;
  19. unsigned char doublebuffer_support;
  20. unsigned char flushing_support;
  21. unsigned char partial_flushing_support;
  22. unsigned char refresh_rate_support;
  23. unsigned max_buffer_bytes;
  24. };
  25. struct GraphicsHeadModeSetting {
  26. int horizontal_stride;
  27. int pixel_clock_in_khz;
  28. int horizontal_active;
  29. int horizontal_front_porch_pixels;
  30. int horizontal_sync_time_pixels;
  31. int horizontal_blank_pixels;
  32. int vertical_active;
  33. int vertical_front_porch_lines;
  34. int vertical_sync_time_lines;
  35. int vertical_blank_lines;
  36. int horizontal_offset;
  37. int vertical_offset;
  38. };
  39. struct GraphicsHeadEDID {
  40. unsigned char* bytes;
  41. unsigned bytes_size;
  42. };
  43. struct GraphicsHeadVerticalOffset {
  44. int head_index;
  45. int offsetted;
  46. };
  47. struct FBRect {
  48. int head_index;
  49. unsigned x;
  50. unsigned y;
  51. unsigned width;
  52. unsigned height;
  53. };
  54. struct FBBufferOffset {
  55. int buffer_index;
  56. unsigned offset;
  57. };
  58. struct FBFlushRects {
  59. int buffer_index;
  60. unsigned count;
  61. struct FBRect const* rects;
  62. };
  63. enum ConsoleModes {
  64. KD_TEXT = 0x00,
  65. KD_GRAPHICS = 0x01,
  66. };
  67. #ifdef __cplusplus
  68. }
  69. #endif
  70. enum IOCtlNumber {
  71. TIOCGPGRP,
  72. TIOCSPGRP,
  73. TCGETS,
  74. TCSETS,
  75. TCSETSW,
  76. TCSETSF,
  77. TCFLSH,
  78. TIOCGWINSZ,
  79. TIOCSCTTY,
  80. TIOCSTI,
  81. TIOCNOTTY,
  82. TIOCSWINSZ,
  83. TIOCGPTN,
  84. GRAPHICS_IOCTL_GET_PROPERTIES,
  85. GRAPHICS_IOCTL_SET_HEAD_VERTICAL_OFFSET_BUFFER,
  86. GRAPHICS_IOCTL_GET_HEAD_VERTICAL_OFFSET_BUFFER,
  87. GRAPHICS_IOCTL_FLUSH_HEAD_BUFFERS,
  88. GRAPHICS_IOCTL_FLUSH_HEAD,
  89. GRAPHICS_IOCTL_SET_HEAD_MODE_SETTING,
  90. GRAPHICS_IOCTL_GET_HEAD_MODE_SETTING,
  91. GRAPHICS_IOCTL_SET_SAFE_HEAD_MODE_SETTING,
  92. GRAPHICS_IOCTL_SET_RESPONSIBLE,
  93. GRAPHICS_IOCTL_UNSET_RESPONSIBLE,
  94. KEYBOARD_IOCTL_GET_NUM_LOCK,
  95. KEYBOARD_IOCTL_SET_NUM_LOCK,
  96. KEYBOARD_IOCTL_GET_CAPS_LOCK,
  97. KEYBOARD_IOCTL_SET_CAPS_LOCK,
  98. MOUNT_IOCTL_SET_MOUNT_SPECIFIC_FLAG,
  99. SIOCATMARK,
  100. SIOCSIFADDR,
  101. SIOCGIFADDR,
  102. SIOCGIFHWADDR,
  103. SIOCGIFNAME,
  104. SIOCGIFINDEX,
  105. SIOCGIFNETMASK,
  106. SIOCSIFNETMASK,
  107. SIOCGIFBRDADDR,
  108. SIOCGIFMTU,
  109. SIOCGIFFLAGS,
  110. SIOCGIFCONF,
  111. SIOCADDRT,
  112. SIOCDELRT,
  113. SIOCSARP,
  114. SIOCDARP,
  115. FIBMAP,
  116. FIONBIO,
  117. FIONREAD,
  118. FIOCLEX,
  119. FIONCLEX,
  120. KCOV_SETBUFSIZE,
  121. KCOV_ENABLE,
  122. KCOV_DISABLE,
  123. SOUNDCARD_IOCTL_SET_SAMPLE_RATE,
  124. SOUNDCARD_IOCTL_GET_SAMPLE_RATE,
  125. STORAGE_DEVICE_GET_SIZE,
  126. STORAGE_DEVICE_GET_BLOCK_SIZE,
  127. VIRGL_IOCTL_CREATE_CONTEXT,
  128. VIRGL_IOCTL_CREATE_RESOURCE,
  129. VIRGL_IOCTL_SUBMIT_CMD,
  130. VIRGL_IOCTL_TRANSFER_DATA,
  131. KDSETMODE,
  132. KDGETMODE,
  133. };
  134. #define TIOCGPGRP TIOCGPGRP
  135. #define TIOCSPGRP TIOCSPGRP
  136. #define TCGETS TCGETS
  137. #define TCSETS TCSETS
  138. #define TCSETSW TCSETSW
  139. #define TCSETSF TCSETSF
  140. #define TCFLSH TCFLSH
  141. #define TIOCGWINSZ TIOCGWINSZ
  142. #define TIOCSCTTY TIOCSCTTY
  143. #define TIOCSTI TIOCSTI
  144. #define TIOCNOTTY TIOCNOTTY
  145. #define TIOCSWINSZ TIOCSWINSZ
  146. #define TIOCGPTN TIOCGPTN
  147. #define GRAPHICS_IOCTL_GET_PROPERTIES GRAPHICS_IOCTL_GET_PROPERTIES
  148. #define GRAPHICS_IOCTL_SET_HEAD_VERTICAL_OFFSET_BUFFER GRAPHICS_IOCTL_SET_HEAD_VERTICAL_OFFSET_BUFFER
  149. #define GRAPHICS_IOCTL_GET_HEAD_VERTICAL_OFFSET_BUFFER GRAPHICS_IOCTL_GET_HEAD_VERTICAL_OFFSET_BUFFER
  150. #define GRAPHICS_IOCTL_FLUSH_HEAD_BUFFERS GRAPHICS_IOCTL_FLUSH_HEAD_BUFFERS
  151. #define GRAPHICS_IOCTL_FLUSH_HEAD GRAPHICS_IOCTL_FLUSH_HEAD
  152. #define GRAPHICS_IOCTL_SET_HEAD_MODE_SETTING GRAPHICS_IOCTL_SET_HEAD_MODE_SETTING
  153. #define GRAPHICS_IOCTL_GET_HEAD_MODE_SETTING GRAPHICS_IOCTL_GET_HEAD_MODE_SETTING
  154. #define GRAPHICS_IOCTL_SET_SAFE_HEAD_MODE_SETTING GRAPHICS_IOCTL_SET_SAFE_HEAD_MODE_SETTING
  155. #define GRAPHICS_IOCTL_SET_RESPONSIBLE GRAPHICS_IOCTL_SET_RESPONSIBLE
  156. #define GRAPHICS_IOCTL_UNSET_RESPONSIBLE GRAPHICS_IOCTL_UNSET_RESPONSIBLE
  157. #define KEYBOARD_IOCTL_GET_NUM_LOCK KEYBOARD_IOCTL_GET_NUM_LOCK
  158. #define KEYBOARD_IOCTL_SET_NUM_LOCK KEYBOARD_IOCTL_SET_NUM_LOCK
  159. #define KEYBOARD_IOCTL_GET_CAPS_LOCK KEYBOARD_IOCTL_GET_CAPS_LOCK
  160. #define KEYBOARD_IOCTL_SET_CAPS_LOCK KEYBOARD_IOCTL_SET_CAPS_LOCK
  161. #define SIOCATMARK SIOCATMARK
  162. #define SIOCSIFADDR SIOCSIFADDR
  163. #define SIOCGIFADDR SIOCGIFADDR
  164. #define SIOCGIFHWADDR SIOCGIFHWADDR
  165. #define SIOCGIFNETMASK SIOCGIFNETMASK
  166. #define SIOCGIFNAME SIOCGIFNAME
  167. #define SIOCGIFINDEX SIOCGIFINDEX
  168. #define SIOCSIFNETMASK SIOCSIFNETMASK
  169. #define SIOCGIFBRDADDR SIOCGIFBRDADDR
  170. #define SIOCGIFMTU SIOCGIFMTU
  171. #define SIOCGIFFLAGS SIOCGIFFLAGS
  172. #define SIOCGIFCONF SIOCGIFCONF
  173. #define SIOCADDRT SIOCADDRT
  174. #define SIOCDELRT SIOCDELRT
  175. #define SIOCSARP SIOCSARP
  176. #define SIOCDARP SIOCDARP
  177. #define FIBMAP FIBMAP
  178. #define FIONBIO FIONBIO
  179. #define FIONREAD FIONREAD
  180. #define MOUNT_IOCTL_SET_MOUNT_SPECIFIC_FLAG MOUNT_IOCTL_SET_MOUNT_SPECIFIC_FLAG
  181. #define SOUNDCARD_IOCTL_SET_SAMPLE_RATE SOUNDCARD_IOCTL_SET_SAMPLE_RATE
  182. #define SOUNDCARD_IOCTL_GET_SAMPLE_RATE SOUNDCARD_IOCTL_GET_SAMPLE_RATE
  183. #define STORAGE_DEVICE_GET_SIZE STORAGE_DEVICE_GET_SIZE
  184. #define STORAGE_DEVICE_GET_BLOCK_SIZE STORAGE_DEVICE_GET_BLOCK_SIZE
  185. #define VIRGL_IOCTL_CREATE_CONTEXT VIRGL_IOCTL_CREATE_CONTEXT
  186. #define VIRGL_IOCTL_CREATE_RESOURCE VIRGL_IOCTL_CREATE_RESOURCE
  187. #define VIRGL_IOCTL_SUBMIT_CMD VIRGL_IOCTL_SUBMIT_CMD
  188. #define VIRGL_IOCTL_TRANSFER_DATA VIRGL_IOCTL_TRANSFER_DATA
  189. #define KDSETMODE KDSETMODE
  190. #define KDGETMODE KDGETMODE