From 0e57f8046035e63f6e52a544ac4d104cc80ed722 Mon Sep 17 00:00:00 2001 From: Sahan Fernando Date: Fri, 18 Feb 2022 16:32:02 +1100 Subject: [PATCH] LibC: Add ioctls for VirGL --- Kernel/API/VirGL.h | 38 +++++++++++++++++++++ Userland/Libraries/LibC/sys/ioctl_numbers.h | 6 ++++ 2 files changed, 44 insertions(+) create mode 100644 Kernel/API/VirGL.h diff --git a/Kernel/API/VirGL.h b/Kernel/API/VirGL.h new file mode 100644 index 0000000000..de6e1c6a43 --- /dev/null +++ b/Kernel/API/VirGL.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2022, Sahan Fernando + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +#include + +struct VirGL3DResourceSpec { + u32 target; + u32 format; + u32 bind; + u32 width; + u32 height; + u32 depth; + u32 array_size; + u32 last_level; + u32 nr_samples; + u32 flags; + u32 created_resource_id; +}; + +struct VirGLCommandBuffer { + const u32* data; + u32 num_elems; +}; + +#define VIRGL_DATA_DIR_GUEST_TO_HOST 1 +#define VIRGL_DATA_DIR_HOST_TO_GUEST 2 + +struct VirGLTransferDescriptor { + void* data; + size_t offset_in_region; + size_t num_bytes; + int direction; +}; diff --git a/Userland/Libraries/LibC/sys/ioctl_numbers.h b/Userland/Libraries/LibC/sys/ioctl_numbers.h index 5d07800f99..86709457b5 100644 --- a/Userland/Libraries/LibC/sys/ioctl_numbers.h +++ b/Userland/Libraries/LibC/sys/ioctl_numbers.h @@ -125,6 +125,9 @@ enum IOCtlNumber { SOUNDCARD_IOCTL_GET_SAMPLE_RATE, STORAGE_DEVICE_GET_SIZE, STORAGE_DEVICE_GET_BLOCK_SIZE, + VIRGL_IOCTL_CREATE_RESOURCE, + VIRGL_IOCTL_SUBMIT_CMD, + VIRGL_IOCTL_TRANSFER_DATA, }; #define TIOCGPGRP TIOCGPGRP @@ -172,3 +175,6 @@ enum IOCtlNumber { #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_RESOURCE VIRGL_IOCTL_CREATE_RESOURCE +#define VIRGL_IOCTL_SUBMIT_CMD VIRGL_IOCTL_SUBMIT_CMD +#define VIRGL_IOCTL_TRANSFER_DATA VIRGL_IOCTL_TRANSFER_DATA