Subversion Repositories Kolibri OS

Rev

Rev 6110 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. /**
  2.  * \file xf86drm.c
  3.  * User-level interface to DRM device
  4.  *
  5.  * \author Rickard E. (Rik) Faith <faith@valinux.com>
  6.  * \author Kevin E. Martin <martin@valinux.com>
  7.  */
  8.  
  9. /*
  10.  * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
  11.  * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
  12.  * All Rights Reserved.
  13.  *
  14.  * Permission is hereby granted, free of charge, to any person obtaining a
  15.  * copy of this software and associated documentation files (the "Software"),
  16.  * to deal in the Software without restriction, including without limitation
  17.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  18.  * and/or sell copies of the Software, and to permit persons to whom the
  19.  * Software is furnished to do so, subject to the following conditions:
  20.  *
  21.  * The above copyright notice and this permission notice (including the next
  22.  * paragraph) shall be included in all copies or substantial portions of the
  23.  * Software.
  24.  *
  25.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  26.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  27.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  28.  * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
  29.  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
  30.  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  31.  * DEALINGS IN THE SOFTWARE.
  32.  */
  33.  
  34. #ifdef HAVE_CONFIG_H
  35. # include <config.h>
  36. #endif
  37. #include <stdio.h>
  38. #include <stdlib.h>
  39. #include <stdbool.h>
  40. #include <unistd.h>
  41. #include <string.h>
  42. #include <strings.h>
  43. #include <ctype.h>
  44. #include <dirent.h>
  45. #include <stddef.h>
  46. #include <fcntl.h>
  47. #include <errno.h>
  48. #include <limits.h>
  49. #include <time.h>
  50. #include <sys/types.h>
  51. #include <sys/stat.h>
  52. #include <sys/time.h>
  53. #include <stdarg.h>
  54.  
  55. /* Not all systems have MAP_FAILED defined */
  56. #ifndef MAP_FAILED
  57. #define MAP_FAILED ((void *)-1)
  58. #endif
  59.  
  60. #include "xf86drm.h"
  61. #include "libdrm_macros.h"
  62.  
  63. #include <kos32sys.h>
  64.  
  65. #ifndef DRM_MAJOR
  66. #define DRM_MAJOR 226           /* Linux */
  67. #endif
  68.  
  69.  
  70. int drmGetMagic(int fd, drm_magic_t * magic)
  71. {
  72.     drm_auth_t auth;
  73.  
  74.     *magic = 1;
  75. //    if (drmIoctl(fd, DRM_IOCTL_GET_MAGIC, &auth))
  76. //    return -errno;
  77. //    *magic = auth.magic;
  78.     return 0;
  79. }
  80.  
  81. void drmFreeVersion(drmVersionPtr v)
  82. {
  83.     if (!v)
  84.         return;
  85. //    drmFree(v->name);
  86. //    drmFree(v->date);
  87. //    drmFree(v->desc);
  88.     free(v);
  89. }
  90. drmVersionPtr drmGetVersion(int fd)
  91. {
  92.     drmVersionPtr v;
  93.  
  94.     v = malloc(sizeof(*v));
  95.  
  96.     v->version_major      = 1;
  97.     v->version_minor      = 6;
  98.     v->version_patchlevel = 0;
  99.     v->name_len           = 4;
  100.     v->name               = "i915";
  101.     v->date_len           = 8;
  102.     v->date               = "20151010";
  103.     v->desc_len           = 14;
  104.     v->desc               = "Intel Graphics";
  105.     return v;
  106. }
  107.  
  108. int drmIoctl(int fd, unsigned long request, void *arg)
  109. {
  110.     ioctl_t  io;
  111.  
  112.     io.handle   = fd;
  113.     io.io_code  = request;
  114.     io.input    = arg;
  115.     io.inp_size = 64;
  116.     io.output   = NULL;
  117.     io.out_size = 0;
  118.  
  119.     return call_service(&io);
  120. }
  121.