summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMiguel de Icaza <miguel@nuclecu.unam.mx>1997-08-05 18:24:12 +0000
committerMiguel de Icaza <miguel@nuclecu.unam.mx>1997-08-05 18:24:12 +0000
commit17a005074429bbf143e40401f405ae4363e56828 (patch)
tree95f1c96fb8754e51462e4342189abd6f7fb930ce /include
parent46d540d9d9b86572cfc6c6a3bbffd83db7daf412 (diff)
Missing file.
Diffstat (limited to 'include')
-rw-r--r--include/asm-mips/rrm.h88
1 files changed, 88 insertions, 0 deletions
diff --git a/include/asm-mips/rrm.h b/include/asm-mips/rrm.h
new file mode 100644
index 000000000..501fa6c1e
--- /dev/null
+++ b/include/asm-mips/rrm.h
@@ -0,0 +1,88 @@
+/*
+ * SGI Rendering Resource Manager API (?).
+ *
+ * written by Miguel de Icaza (miguel@nuclecu.unam.mx)
+ *
+ * Ok, even if SGI choosed to do mmap trough ioctls, their
+ * kernel support for virtualizing the graphics card is nice.
+ *
+ * We should be able to make graphic applications on Linux
+ * fly.
+ *
+ * This header file should be included from GNU libc as well.
+ */
+
+
+/* Why like this you say? Well, gdb can print enums */
+#define RRM_BASE 1000
+#define RRM_CMD_LIMIT (RRM_BASE + 100)
+
+enum {
+ RRM_OPENRN = RRM_BASE, /* open rendering node */
+ RRM_CLOSERN,
+ RRM_BINDPROCTORN, /* set current rendering region for node */
+ RRM_BINDRNTOCLIP,
+ RRM_UNBINDRNFROMCLIP,
+ RRM_SWAPBUF,
+ RRM_SETSWAPINTERVAL,
+ RRM_WAITFORRETRACE,
+ RRM_SETDISPLAYMODE,
+ RRM_MESSAGE,
+ RRM_INVALIDATERN,
+ RRM_VALIDATECLIP,
+ RRM_VALIDATESWAPBUF,
+ RRM_SWAPGROUP,
+ RRM_SWAPUNGROUP,
+ RRM_VALIDATEMESSAGE,
+ RRM_GETDISPLAYMODES,
+ RRM_LOADDISPLAYMODE,
+ RRM_CUSHIONBUFFER,
+ RRM_SWAPREADY,
+ RRM_MGR_SWAPBUF,
+ RRM_SETVSYNC,
+ RRM_GETVSYNC,
+ RRM_WAITVSYNC,
+ RRM_BINDRNTOREADANDCLIP,
+ RRM_MAPCLIPTOSWPBUFID
+};
+
+/* Parameters for the above ioctls
+ *
+ * All of the ioctls take as their first argument the rendering node id.
+ *
+ */
+
+/*
+ * RRM_OPENRN:
+ *
+ * This is called by the IRIX X server with:
+ * rnid = 0xffffffff rmask = 0
+ *
+ * Returns a number like this: 0x10001.
+ * If you run the X server over and over, you get a value
+ * that is of the form (n * 0x10000) + 1.
+ *
+ * The return value seems to be the RNID.
+ */
+struct RRM_OpenRN {
+ int rnid;
+ unsigned int rmask;
+};
+
+struct RRM_CloseRN {
+ int rnid;
+};
+
+/*
+ * RRM_BINDPROCTORN:
+ *
+ * Return value when the X server calls it: 0
+ */
+struct RRM_BindProcToRN {
+ int rnid;
+};
+
+#ifdef __KERNEL__
+int rrm_command (unsigned int cmd, void *arg);
+int rrm_close (struct inode *inode, struct file *file);
+#endif