Subversion Repositories Kolibri OS

Rev

Rev 5068 | Go to most recent revision | 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 <string.h>
  40. #include <strings.h>
  41. #include <ctype.h>
  42. #include <stddef.h>
  43. #include <fcntl.h>
  44. #include <errno.h>
  45. #include <time.h>
  46. #include <sys/types.h>
  47. #include <sys/stat.h>
  48. #include <stdarg.h>
  49.  
  50. /* Not all systems have MAP_FAILED defined */
  51. #ifndef MAP_FAILED
  52. #define MAP_FAILED ((void *)-1)
  53. #endif
  54.  
  55. #include "xf86drm.h"
  56. #include "libdrm_macros.h"
  57.  
  58. #include <kos32sys.h>
  59.  
  60. #ifndef DRM_MAJOR
  61. #define DRM_MAJOR 226           /* Linux */
  62. #endif
  63.  
  64.  
  65. int drmGetMagic(int fd, drm_magic_t * magic)
  66. {
  67.     drm_auth_t auth;
  68.  
  69.     *magic = 1;
  70. //    if (drmIoctl(fd, DRM_IOCTL_GET_MAGIC, &auth))
  71. //    return -errno;
  72. //    *magic = auth.magic;
  73.     return 0;
  74. }
  75.  
  76. void drmFreeVersion(drmVersionPtr v)
  77. {
  78.     if (!v)
  79.         return;
  80. //    drmFree(v->name);
  81. //    drmFree(v->date);
  82. //    drmFree(v->desc);
  83.     free(v);
  84. }
  85. drmVersionPtr drmGetVersion(int fd)
  86. {
  87.     drmVersionPtr v;
  88.  
  89.     v = malloc(sizeof(*v));
  90.  
  91.     v->version_major      = 1;
  92.     v->version_minor      = 6;
  93.     v->version_patchlevel = 0;
  94.     v->name_len           = 4;
  95.     v->name               = "i915";
  96.     v->date_len           = 8;
  97.     v->date               = "20151010";
  98.     v->desc_len           = 14;
  99.     v->desc               = "Intel Graphics";
  100.     return v;
  101. }
  102.  
  103. int drmIoctl(int fd, unsigned long request, void *arg)
  104. {
  105.     ioctl_t  io;
  106.  
  107.     io.handle   = fd;
  108.     io.io_code  = request;
  109.     io.input    = arg;
  110.     io.inp_size = 64;
  111.     io.output   = NULL;
  112.     io.out_size = 0;
  113.  
  114.     return call_service(&io);
  115. }
  116.