dc68054305
- 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
83 lines
3.1 KiB
Diff
83 lines
3.1 KiB
Diff
From f69c8e8cb4feb81b3923d869a2f529b2b4d58c1c Mon Sep 17 00:00:00 2001
|
|
From: Red Bear OS <vasilito@redbearos.org>
|
|
Date: Thu, 11 Jun 2026 02:07:44 +0300
|
|
Subject: [PATCH] add sys/ioccom.h for DRM UAPI ioctl encoding
|
|
|
|
---
|
|
include/sys/ioccom.h | 63 ++++++++++++++++++++++++++++++++++++++++++++
|
|
1 file changed, 63 insertions(+)
|
|
create mode 100644 include/sys/ioccom.h
|
|
|
|
diff --git a/include/sys/ioccom.h b/include/sys/ioccom.h
|
|
new file mode 100644
|
|
index 0000000..4722557
|
|
--- /dev/null
|
|
+++ b/include/sys/ioccom.h
|
|
@@ -0,0 +1,63 @@
|
|
+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
|
+/*
|
|
+ * Linux UAPI asm-generic/ioctl.h — ioctl command encoding macros.
|
|
+ * Required by DRM UAPI headers (drm-uapi/drm.h, drm-uapi/sync_file.h)
|
|
+ * which include <sys/ioccom.h> for _IO/_IOR/_IOW/_IOWR.
|
|
+ *
|
|
+ * On glibc/musl this is provided by the libc. On Redox (relibc) it
|
|
+ * is not, because ioctl direction encoding is a Linux UAPI convention
|
|
+ * rather than a POSIX requirement.
|
|
+ *
|
|
+ * This header is a pure compile-time macro encoding; the values never
|
|
+ * reach a real ioctl(2) syscall on Redox. The DRM dispatch surface
|
|
+ * (libdrm's drmIoctl -> scheme:drm/SchemeSync in
|
|
+ * local/sources/redox-drm/) is the runtime source of truth, and it
|
|
+ * uses different encoding internally.
|
|
+ */
|
|
+#ifndef _SYS_IOCCOM_H
|
|
+#define _SYS_IOCCOM_H
|
|
+
|
|
+#define _IOC_NRBITS 8
|
|
+#define _IOC_TYPEBITS 8
|
|
+#define _IOC_SIZEBITS 14
|
|
+#define _IOC_DIRBITS 2
|
|
+
|
|
+#define _IOC_NRMASK ((1 << _IOC_NRBITS) - 1)
|
|
+#define _IOC_TYPEMASK ((1 << _IOC_TYPEBITS) - 1)
|
|
+#define _IOC_SIZEMASK ((1 << _IOC_SIZEBITS) - 1)
|
|
+#define _IOC_DIRMASK ((1 << _IOC_DIRBITS) - 1)
|
|
+
|
|
+#define _IOC_NRSHIFT 0
|
|
+#define _IOC_TYPESHIFT (_IOC_NRSHIFT + _IOC_NRBITS)
|
|
+#define _IOC_SIZESHIFT (_IOC_TYPESHIFT + _IOC_TYPEBITS)
|
|
+#define _IOC_DIRSHIFT (_IOC_SIZESHIFT + _IOC_SIZEBITS)
|
|
+
|
|
+#define _IOC_NONE 0U
|
|
+#define _IOC_WRITE 1U
|
|
+#define _IOC_READ 2U
|
|
+
|
|
+#define _IOC(dir, type, nr, size) \
|
|
+ (((dir) << _IOC_DIRSHIFT) | \
|
|
+ ((type) << _IOC_TYPESHIFT) | \
|
|
+ ((nr) << _IOC_NRSHIFT) | \
|
|
+ ((size) << _IOC_SIZESHIFT))
|
|
+
|
|
+#define _IOC_TYPECHECK(t) (sizeof(t))
|
|
+
|
|
+#define _IO(type, nr) _IOC(_IOC_NONE, (type), (nr), 0)
|
|
+#define _IOR(type, nr, argtype) _IOC(_IOC_READ, (type), (nr), (_IOC_TYPECHECK(argtype)))
|
|
+#define _IOW(type, nr, argtype) _IOC(_IOC_WRITE, (type), (nr), (_IOC_TYPECHECK(argtype)))
|
|
+#define _IOWR(type, nr, argtype) _IOC(_IOC_READ | _IOC_WRITE, (type), (nr), (_IOC_TYPECHECK(argtype)))
|
|
+
|
|
+#define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
|
|
+#define _IOC_TYPE(nr) (((nr) >> _IOC_TYPESHIFT) & _IOC_TYPEMASK)
|
|
+#define _IOC_NR(nr) (((nr) >> _IOC_NRSHIFT) & _IOC_NRMASK)
|
|
+#define _IOC_SIZE(nr) (((nr) >> _IOC_SIZESHIFT) & _IOC_SIZEMASK)
|
|
+
|
|
+#define IOC_IN (_IOC_WRITE << _IOC_DIRSHIFT)
|
|
+#define IOC_OUT (_IOC_READ << _IOC_DIRSHIFT)
|
|
+#define IOC_INOUT ((_IOC_WRITE | _IOC_READ) << _IOC_DIRSHIFT)
|
|
+#define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT)
|
|
+#define IOCSIZE_SHIFT (_IOC_SIZESHIFT)
|
|
+
|
|
+#endif /* _SYS_IOCCOM_H */
|
|
--
|
|
2.54.0
|
|
|