diff options
author | Andrew Kaster <akaster@serenityos.org> | 2023-01-07 13:52:06 -0700 |
---|---|---|
committer | Andrew Kaster <andrewdkaster@gmail.com> | 2023-01-21 10:43:59 -0700 |
commit | 100fb38c3e4e0299a2fb4f8b84be7cc7e8cb43e7 (patch) | |
tree | 7fef0724da31a40ce9051dff4b79ccc83020f9c9 /Kernel/API | |
parent | ddea37b52113b4cdbb20a7063d2e062bc7ee83c3 (diff) | |
download | serenity-100fb38c3e4e0299a2fb4f8b84be7cc7e8cb43e7.zip |
Kernel+Userland: Move LibC/sys/ioctl_numbers to Kernel/API/Ioctl.h
This header has always been fundamentally a Kernel API file. Move it
where it belongs. Include it directly in Kernel files, and make
Userland applications include it via sys/ioctl.h rather than directly.
Diffstat (limited to 'Kernel/API')
-rw-r--r-- | Kernel/API/Ioctl.h | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/Kernel/API/Ioctl.h b/Kernel/API/Ioctl.h new file mode 100644 index 0000000000..354944b135 --- /dev/null +++ b/Kernel/API/Ioctl.h @@ -0,0 +1,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 |