rrm.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * SGI Rendering Resource Manager API (?).
  3.  *
  4.  * written by Miguel de Icaza (miguel@nuclecu.unam.mx)
  5.  *
  6.  * Ok, even if SGI choosed to do mmap trough ioctls, their
  7.  * kernel support for virtualizing the graphics card is nice.
  8.  *
  9.  * We should be able to make graphic applications on Linux
  10.  * fly.
  11.  *
  12.  * This header file should be included from GNU libc as well.
  13.  */
  14. /* Why like this you say?  Well, gdb can print enums */
  15. #define RRM_BASE 1000
  16. #define RRM_CMD_LIMIT (RRM_BASE + 100)
  17. enum {
  18. RRM_OPENRN = RRM_BASE, /* open rendering node */
  19. RRM_CLOSERN,
  20. RRM_BINDPROCTORN, /* set current rendering region for node */
  21. RRM_BINDRNTOCLIP,
  22. RRM_UNBINDRNFROMCLIP,
  23. RRM_SWAPBUF,
  24. RRM_SETSWAPINTERVAL,
  25. RRM_WAITFORRETRACE,
  26. RRM_SETDISPLAYMODE,
  27. RRM_MESSAGE,
  28. RRM_INVALIDATERN,
  29. RRM_VALIDATECLIP,
  30. RRM_VALIDATESWAPBUF,
  31. RRM_SWAPGROUP,
  32. RRM_SWAPUNGROUP,
  33. RRM_VALIDATEMESSAGE,
  34. RRM_GETDISPLAYMODES,
  35. RRM_LOADDISPLAYMODE,
  36. RRM_CUSHIONBUFFER,
  37. RRM_SWAPREADY,
  38. RRM_MGR_SWAPBUF,
  39. RRM_SETVSYNC,
  40. RRM_GETVSYNC,
  41. RRM_WAITVSYNC,
  42. RRM_BINDRNTOREADANDCLIP,
  43. RRM_MAPCLIPTOSWPBUFID
  44. };
  45. /* Parameters for the above ioctls
  46.  *
  47.  * All of the ioctls take as their first argument the rendering node id.
  48.  *
  49.  */
  50. /*
  51.  * RRM_OPENRN:
  52.  *
  53.  * This is called by the IRIX X server with:
  54.  * rnid = 0xffffffff rmask = 0
  55.  *
  56.  * Returns a number like this: 0x10001.
  57.  * If you run the X server over and over, you get a value
  58.  * that is of the form (n * 0x10000) + 1.
  59.  *
  60.  * The return value seems to be the RNID.
  61.  */
  62. struct RRM_OpenRN {
  63. int      rnid;
  64. unsigned int rmask;
  65. };
  66. struct RRM_CloseRN {
  67. int rnid;
  68. };
  69. /*
  70.  * RRM_BINDPROCTORN:
  71.  *
  72.  * Return value when the X server calls it: 0
  73.  */
  74. struct RRM_BindProcToRN {
  75. int      rnid;
  76. };
  77. #ifdef __KERNEL__
  78. int rrm_command (unsigned int cmd, void *arg);
  79. int rrm_close (struct inode *inode, struct file *file);
  80. #endif