Files
RedBear-OS/local/patches/libdrm/00-xf86drm-redox-header.patch
T
vasilito dc68054305 restore lost packages from 0.2.3 + fix overwritten 0.2.4 files
- Restore 29 recipe symlinks (libdrm, qtbase, dbus, sddm, pipewire, etc.)
- Restore 33 patches (KDE, libdrm, mesa, pipewire, sddm, wireplumber)
- Restore 20+ local/scripts (audit, lint, test, build helpers)
- Restore src/cook/scheduler.rs, status.rs, gnu-config/
- Restore scripts/patch-inclusion-gate.sh, run_mini1.sh, validate-collision-log.sh
- Recover TLC source from HEAD (was overwritten by 0.2.3 checkout)
- Recover 11 local/docs plans from HEAD (were overwritten)
- Recover qt6-wayland-smoke symlink from HEAD
- Fix MOTD: remove garbled ASCII art, use clean text
- Update version: 0.2.0 -> 0.2.4 in os-release, motd, config
- Reduce filesystem_size: 1536 -> 512 MiB
- Add ABSOLUTE RULE to AGENTS.md: never delete/ignore packages
- Reduce pcid scheme log verbosity: info -> debug
2026-06-19 12:39:14 +03:00

187 lines
5.5 KiB
Diff

diff --git a/xf86drm_redox.h b/xf86drm_redox.h
new file mode 100644
index 0000000..425b079
--- /dev/null
+++ b/xf86drm_redox.h
@@ -0,0 +1,180 @@
+#ifndef _XF86DRM_REDOX_H_
+#define _XF86DRM_REDOX_H_
+
+#if defined(__redox__)
+
+#include <stddef.h>
+#include <stdint.h>
+
+#define REDOX_DRM_IOCTL_BASE 0x00A0UL
+
+#define REDOX_LINUX_IOCTL_NR(request) ((unsigned long)((request) & 0xffUL))
+#define REDOX_LINUX_IOCTL_SIZE(request) (((unsigned long)(request) >> 16) & 0x3fffUL)
+
+#define REDOX_DRM_IOCTL_MODE_GETRESOURCES (REDOX_DRM_IOCTL_BASE + 0)
+#define REDOX_DRM_IOCTL_MODE_SETCRTC (REDOX_DRM_IOCTL_BASE + 2)
+#define REDOX_DRM_IOCTL_MODE_GETCRTC (REDOX_DRM_IOCTL_BASE + 3)
+#define REDOX_DRM_IOCTL_MODE_GETENCODER (REDOX_DRM_IOCTL_BASE + 6)
+#define REDOX_DRM_IOCTL_MODE_GETCONNECTOR (REDOX_DRM_IOCTL_BASE + 7)
+#define REDOX_DRM_IOCTL_MODE_PAGE_FLIP (REDOX_DRM_IOCTL_BASE + 16)
+#define REDOX_DRM_IOCTL_MODE_CREATE_DUMB (REDOX_DRM_IOCTL_BASE + 18)
+#define REDOX_DRM_IOCTL_MODE_MAP_DUMB (REDOX_DRM_IOCTL_BASE + 19)
+#define REDOX_DRM_IOCTL_MODE_DESTROY_DUMB (REDOX_DRM_IOCTL_BASE + 20)
+#define REDOX_DRM_IOCTL_MODE_ADDFB (REDOX_DRM_IOCTL_BASE + 21)
+#define REDOX_DRM_IOCTL_MODE_RMFB (REDOX_DRM_IOCTL_BASE + 22)
+#define REDOX_DRM_IOCTL_GET_CAP (REDOX_DRM_IOCTL_BASE + 23)
+#define REDOX_DRM_IOCTL_SET_CLIENT_CAP (REDOX_DRM_IOCTL_BASE + 24)
+#define REDOX_DRM_IOCTL_VERSION (REDOX_DRM_IOCTL_BASE + 25)
+#define REDOX_DRM_IOCTL_GEM_CLOSE (REDOX_DRM_IOCTL_BASE + 27)
+#define REDOX_DRM_IOCTL_PRIME_HANDLE_TO_FD (REDOX_DRM_IOCTL_BASE + 29)
+#define REDOX_DRM_IOCTL_PRIME_FD_TO_HANDLE (REDOX_DRM_IOCTL_BASE + 30)
+#define REDOX_DRM_IOCTL_VIRTGPU_MAP (REDOX_DRM_IOCTL_BASE + 31)
+#define REDOX_DRM_IOCTL_VIRTGPU_EXECBUFFER (REDOX_DRM_IOCTL_BASE + 32)
+#define REDOX_DRM_IOCTL_VIRTGPU_GETPARAM (REDOX_DRM_IOCTL_BASE + 33)
+#define REDOX_DRM_IOCTL_VIRTGPU_RESOURCE_CREATE (REDOX_DRM_IOCTL_BASE + 34)
+#define REDOX_DRM_IOCTL_VIRTGPU_RESOURCE_INFO (REDOX_DRM_IOCTL_BASE + 35)
+#define REDOX_DRM_IOCTL_VIRTGPU_TRANSFER_FROM_HOST (REDOX_DRM_IOCTL_BASE + 36)
+#define REDOX_DRM_IOCTL_VIRTGPU_TRANSFER_TO_HOST (REDOX_DRM_IOCTL_BASE + 37)
+#define REDOX_DRM_IOCTL_VIRTGPU_WAIT (REDOX_DRM_IOCTL_BASE + 38)
+#define REDOX_DRM_IOCTL_VIRTGPU_GET_CAPS (REDOX_DRM_IOCTL_BASE + 39)
+#define REDOX_DRM_IOCTL_VIRTGPU_RESOURCE_CREATE_BLOB (REDOX_DRM_IOCTL_BASE + 40)
+#define REDOX_DRM_IOCTL_VIRTGPU_CONTEXT_INIT (REDOX_DRM_IOCTL_BASE + 41)
+
+#define REDOX_DRM_IOCTL_GET_MAGIC (REDOX_DRM_IOCTL_BASE + 33)
+#define REDOX_DRM_IOCTL_AUTH_MAGIC (REDOX_DRM_IOCTL_BASE + 34)
+#define REDOX_DRM_IOCTL_SET_MASTER (REDOX_DRM_IOCTL_BASE + 35)
+#define REDOX_DRM_IOCTL_DROP_MASTER (REDOX_DRM_IOCTL_BASE + 36)
+#define REDOX_DRM_IOCTL_GET_PCI_INFO (REDOX_DRM_IOCTL_BASE + 0x60)
+
+struct redox_drm_resources_wire {
+ uint32_t connector_count;
+ uint32_t crtc_count;
+ uint32_t encoder_count;
+};
+
+struct redox_drm_connector_wire {
+ uint32_t connector_id;
+ uint32_t connection;
+ uint32_t connector_type;
+ uint32_t mm_width;
+ uint32_t mm_height;
+ uint32_t encoder_id;
+ uint32_t mode_count;
+};
+
+struct redox_drm_mode_wire {
+ uint32_t clock;
+ uint16_t hdisplay;
+ uint16_t hsync_start;
+ uint16_t hsync_end;
+ uint16_t htotal;
+ uint16_t hskew;
+ uint16_t vdisplay;
+ uint16_t vsync_start;
+ uint16_t vsync_end;
+ uint16_t vtotal;
+ uint16_t vscan;
+ uint32_t vrefresh;
+ uint32_t flags;
+ uint32_t type;
+};
+
+struct redox_drm_set_crtc_wire {
+ uint32_t crtc_id;
+ uint32_t fb_handle;
+ uint32_t connector_count;
+ uint32_t connectors[8];
+ struct redox_drm_mode_wire mode;
+};
+
+struct redox_drm_page_flip_wire {
+ uint32_t crtc_id;
+ uint32_t fb_handle;
+ uint32_t flags;
+};
+
+struct redox_drm_create_dumb_wire {
+ uint32_t width;
+ uint32_t height;
+ uint32_t bpp;
+ uint32_t flags;
+ uint32_t pitch;
+ uint32_t reserved0;
+ uint64_t size;
+ uint32_t handle;
+ uint32_t reserved1;
+};
+
+struct redox_drm_map_dumb_wire {
+ uint32_t handle;
+ uint32_t pad;
+ uint64_t offset;
+};
+
+struct redox_drm_destroy_dumb_wire {
+ uint32_t handle;
+};
+
+struct redox_drm_add_fb_wire {
+ uint32_t width;
+ uint32_t height;
+ uint32_t pitch;
+ uint32_t bpp;
+ uint32_t depth;
+ uint32_t handle;
+ uint32_t fb_id;
+};
+
+struct redox_drm_rm_fb_wire {
+ uint32_t fb_id;
+};
+
+struct redox_drm_get_crtc_wire {
+ uint32_t crtc_id;
+ uint32_t fb_id;
+ uint32_t x;
+ uint32_t y;
+ uint32_t mode_valid;
+ struct redox_drm_mode_wire mode;
+};
+
+struct redox_drm_version_wire {
+ int32_t major;
+ int32_t minor;
+ int32_t patch;
+ char name[64];
+};
+
+struct redox_drm_prime_handle_to_fd_wire {
+ uint32_t handle;
+ uint32_t flags;
+};
+
+struct redox_drm_prime_handle_to_fd_response_wire {
+ int32_t fd;
+ uint32_t pad;
+};
+
+struct redox_drm_prime_fd_to_handle_wire {
+ int32_t fd;
+ uint32_t pad;
+};
+
+struct redox_drm_prime_fd_to_handle_response_wire {
+ uint32_t handle;
+ uint32_t pad;
+};
+
+unsigned long redox_translate_request(unsigned long linux_nr);
+int redox_drm_simple_ioctl(int fd, unsigned long request, void *arg);
+int redox_drm_exchange(int fd, unsigned long request_code,
+ const void *payload, size_t payload_size,
+ void *response, size_t response_capacity,
+ size_t *response_size);
+int redox_drm_exchange_alloc(int fd, unsigned long request_code,
+ const void *payload, size_t payload_size,
+ void **response, size_t *response_size);
+
+#endif
+
+#endif